(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024111121
(43)【公開日】2024-08-16
(54)【発明の名称】ゲームプログラム、情報処理装置、情報処理システム、および情報処理方法
(51)【国際特許分類】
A63F 13/56 20140101AFI20240808BHJP
A63F 13/42 20140101ALI20240808BHJP
A63F 13/58 20140101ALI20240808BHJP
【FI】
A63F13/56
A63F13/42
A63F13/58
【審査請求】未請求
【請求項の数】28
【出願形態】OL
(21)【出願番号】P 2024098038
(22)【出願日】2024-06-18
(62)【分割の表示】P 2022180222の分割
【原出願日】2022-11-10
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】深田 直希
(72)【発明者】
【氏名】大川 喬史
(57)【要約】
【課題】プレイヤの操作により地形オブジェクトを動かすことが可能なゲームプログラムを提供する。
【解決手段】本実施形態のゲームプログラムは、コンピュータに、第1の操作に基づいた操作入力に応じて、仮想空間内においてプレイヤキャラクタに少なくとも移動を含む第1の制御を行わせ、第2の操作に基づいた操作入力に応じて、複数の操作可能オブジェクトのいずれかを操作対象として、当該操作対象の回転を含む第2の制御を行わせ、操作可能オブジェクトである第1のオブジェクトの姿勢の変化に応じて、地形オブジェクトを回転させる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
第1の操作に基づいた操作入力に応じて、仮想空間内においてプレイヤキャラクタの第1の制御を行わせ、当該第1の制御は前記仮想空間内の地形オブジェクト上での移動を少なくとも含み、
第2の操作に基づいた操作入力に応じて、前記仮想空間内の複数のオブジェクトのうち、前記第2の操作の対象となる複数の操作可能オブジェクトのいずれかを操作対象として、当該操作対象の第2の制御を行わせ、当該第2の制御は前記仮想空間内における回転を少なくとも含み、
前記仮想空間内において、前記操作可能オブジェクトである第1のオブジェクトの姿勢の変化に応じて、前記地形オブジェクトである第2のオブジェクトを回転させる、ゲームプログラム。
【請求項2】
前記コンピュータに、
前記第2の制御として、前記操作対象とされたオブジェクトを所定軸回りに回転させる制御と、前記操作対象とされたオブジェクトを指示方向に移動させる制御とを少なくとも行わせる、請求項1に記載のゲームプログラム。
【請求項3】
前記コンピュータに、
前記第2の制御として、さらに、前記操作対象とされたオブジェクトを他のオブジェクトに連結させる制御を行わせる、請求項2に記載のゲームプログラム。
【請求項4】
前記操作可能オブジェクトは、仮想的な推進力を発生させる推進オブジェクトを含み、
前記コンピュータにさらに、
前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、前記仮想的な推進力に基づいた運動を行わせ、
前記第1のオブジェクトに前記推進オブジェクトが連結された場合、当該推進オブジェクトによる前記仮想的な推進力に基づいて、前記推進オブジェクトが連結された前記第1のオブジェクトを運動させる、請求項3に記載のゲームプログラム。
【請求項5】
前記コンピュータにさらに、
前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、仮想的な重力に基づいた運動を行わせ、
前記第1のオブジェクトに、前記第1のオブジェクトとは異なる前記操作可能オブジェクトである第3のオブジェクトが連結された場合、前記仮想的な重力に基づいて、前記第3のオブジェクトが連結された前記第1のオブジェクトを運動させる、請求項3に記載のゲームプログラム。
【請求項6】
前記第1のオブジェクトは、前記仮想的な重力に関わらず、前記仮想空間内の空中に浮いた状態で維持される、請求項5に記載のゲームプログラム。
【請求項7】
前記仮想空間内において、前記第1のオブジェクトの位置は固定、又は、前記第1のオブジェクトの移動範囲は制限される、請求項6に記載のゲームプログラム。
【請求項8】
前記コンピュータにさらに、
前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、仮想的な重力に基づいた運動を行わせ、
前記第1のオブジェクトは、前記仮想的な重力に関わらず、前記仮想空間内の空中に浮いた状態で維持される、請求項1に記載のゲームプログラム。
【請求項9】
前記コンピュータに、
前記プレイヤキャラクタを仮想的な重力に基づいて落下させ、
前記プレイヤキャラクタが前記第1のオブジェクトに乗っている場合、前記プレイヤキャラクタに対する前記仮想的な重力に基づいて、前記第1のオブジェクトを運動させる、請求項8に記載のゲームプログラム。
【請求項10】
前記コンピュータにさらに、
前記プレイヤキャラクタが前記第2のオブジェクト上に乗っている場合、前記第1のオブジェクトに対する前記第2の制御を制限させる、請求項1に記載のゲームプログラム。
【請求項11】
前記コンピュータに、
前記第2の制御として、前記第2のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量が、前記第1のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量に近づくように、第2のオブジェクトを所定の回転速度で回転させる、請求項1から10の何れかに記載のゲームプログラム。
【請求項12】
プロセッサを備える情報処理システムであって、前記プロセッサは、
第1の操作に基づいた操作入力に応じて、仮想空間内においてプレイヤキャラクタの第1の制御を行い、当該第1の制御は前記仮想空間内の地形オブジェクト上での移動を少なくとも含み、
第2の操作に基づいた操作入力に応じて、前記仮想空間内の複数のオブジェクトのうち、前記第2の操作の対象となる複数の操作可能オブジェクトのいずれかを操作対象として、当該操作対象の第2の制御を行い、当該第2の制御は前記仮想空間内における回転を少なくとも含み、
前記仮想空間内において、前記操作可能オブジェクトである第1のオブジェクトの姿勢の変化に応じて、前記地形オブジェクトである第2のオブジェクトを回転させる、情報処理システム。
【請求項13】
前記プロセッサは、
前記第2の制御として、前記操作対象とされたオブジェクトを所定軸回りに回転させる制御と、前記操作対象とされたオブジェクトを指示方向に移動させる制御とを少なくとも行う、請求項12に記載の情報処理システム。
【請求項14】
前記プロセッサは、
前記第2の制御として、さらに、前記操作対象とされたオブジェクトを他のオブジェクトに連結させる制御を行う、請求項13に記載の情報処理システム。
【請求項15】
前記操作可能オブジェクトは、仮想的な推進力を発生させる推進オブジェクトを含み、
前記プロセッサはさらに、
前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、前記仮想的な推進力に基づいた運動を行わせ、
前記第1のオブジェクトに前記推進オブジェクトが連結された場合、当該推進オブジェクトによる前記仮想的な推進力に基づいて、前記推進オブジェクトが連結された前記第1のオブジェクトを運動させる、請求項14に記載の情報処理システム。
【請求項16】
前記プロセッサはさらに、
前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、仮想的な重力に基づいた運動を行わせ、
前記第1のオブジェクトに、前記第1のオブジェクトとは異なる前記操作可能オブジェクトである第3のオブジェクトが連結された場合、前記仮想的な重力に基づいて、前記第3のオブジェクトが連結された前記第1のオブジェクトを運動させる、請求項14に記載の情報処理システム。
【請求項17】
前記第1のオブジェクトは、前記仮想的な重力に関わらず、前記仮想空間内の空中に浮いた状態で維持される、請求項16に記載の情報処理システム。
【請求項18】
前記仮想空間内において、前記第1のオブジェクトの位置は固定、又は、前記第1のオブジェクトの移動範囲は制限される、請求項17に記載の情報処理システム。
【請求項19】
前記プロセッサはさらに、
前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、仮想的な重力に基づいた運動を行わせ、
前記第1のオブジェクトは、前記仮想的な重力に関わらず、前記仮想空間内の空中に浮いた状態で維持される、請求項12に記載の情報処理システム。
【請求項20】
前記プロセッサは、
前記プレイヤキャラクタを仮想的な重力に基づいて落下させ、
前記プレイヤキャラクタが前記第1のオブジェクトに乗っている場合、前記プレイヤキャラクタに対する前記仮想的な重力に基づいて、前記第1のオブジェクトを運動させる、請求項19に記載の情報処理システム。
【請求項21】
前記プロセッサはさらに、
前記プレイヤキャラクタが前記第2のオブジェクト上に乗っている場合、前記第1のオブジェクトに対する前記第2の制御を制限する、請求項12に記載の情報処理システム。
【請求項22】
前記プロセッサは、
前記第2の制御として、前記第2のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量が、前記第1のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量に近づくように、第2のオブジェクトを所定の回転速度で回転させる、請求項12から21の何れかに記載の情報処理システム。
【請求項23】
プロセッサを備える情報処理装置であって、前記プロセッサは、
第1の操作に基づいた操作入力に応じて、仮想空間内においてプレイヤキャラクタの第1の制御を行い、当該第1の制御は前記仮想空間内の地形オブジェクト上での移動を少なくとも含み、
第2の操作に基づいた操作入力に応じて、前記仮想空間内の複数のオブジェクトのうち、前記第2の操作の対象となる複数の操作可能オブジェクトのいずれかを操作対象として、当該操作対象の第2の制御を行い、当該第2の制御は前記仮想空間内における回転を少なくとも含み、
前記仮想空間内において、前記操作可能オブジェクトである第1のオブジェクトの姿勢の変化に応じて、前記地形オブジェクトである第2のオブジェクトを回転させる、情報処理装置。
【請求項24】
前記プロセッサは、
前記第2の制御として、前記操作対象とされたオブジェクトを所定軸回りに回転させる制御と、前記操作対象とされたオブジェクトを指示方向に移動させる制御とを少なくとも行う、請求項23に記載の情報処理装置。
【請求項25】
前記プロセッサは、
前記第2の制御として、前記第2のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量が、前記第1のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量に近づくように、第2のオブジェクトを所定の回転速度で回転させる、請求項23又は24に記載の情報処理装置。
【請求項26】
情報処理システムにおいて行われる情報処理方法であって、
第1の操作に基づいた操作入力に応じて、仮想空間内においてプレイヤキャラクタの第1の制御を行うステップと、当該第1の制御は前記仮想空間内の地形オブジェクト上での移動を少なくとも含み、
第2の操作に基づいた操作入力に応じて、前記仮想空間内の複数のオブジェクトのうち、前記第2の操作の対象となる複数の操作可能オブジェクトのいずれかを操作対象として、当該操作対象の第2の制御を行うステップと、当該第2の制御は前記仮想空間内における回転を少なくとも含み、
前記仮想空間内において、前記操作可能オブジェクトである第1のオブジェクトの姿勢の変化に応じて、前記地形オブジェクトである第2のオブジェクトを回転させるステップと、を備える、情報処理方法。
【請求項27】
前記第2の制御は、前記操作対象とされたオブジェクトを所定軸回りに回転させる制御と、前記操作対象とされたオブジェクトを指示方向に移動させる制御とを少なくとも含む、請求項26に記載の情報処理方法。
【請求項28】
前記第2の制御として、前記第2のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量が、前記第1のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量に近づくように、第2のオブジェクトを所定の回転速度で回転させる、請求項26又は27に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【0002】
従来より、プレイヤキャラクタを仮想空間内の地形オブジェクト上で移動させるゲームがある(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】“TheLegend of Zelda: Breath of the Wild”、[online]、2022年、任天堂株式会社、[令和4年11月4日検索]、インターネット<URL:https://www.zelda.com/breath-of-the-wild/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のゲームにおいては、プレイヤキャラクタが所定のオブジェクトを動かす操作をすることができた。一方、地形オブジェクトをプレイヤの操作に基づいて動かすこともできたが、特別な操作場面において操作が行われていた。すなわち、特別な操作場面を用意する必要があった。
【0005】
それ故、本発明の目的は、プレイヤの操作によってプレイヤキャラクタがオブジェクトを動かすシステムを用いて、地形オブジェクトをも動かすことで、簡易な構成で地形を制御することが可能なゲームプログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【0007】
(第1の構成)
第1の構成に係るゲームプログラムは、情報処理装置のコンピュータに、第1の操作に基づいた操作入力に応じて、仮想空間内においてプレイヤキャラクタの第1の制御を行わせる。当該第1の制御は前記仮想空間内の地形オブジェクト上での移動を少なくとも含む。また、前記ゲームプログラムは、前記コンピュータに、第2の操作に基づいた操作入力に応じて、前記仮想空間内の複数のオブジェクトのうち、前記第2の操作の対象となる複数の操作可能オブジェクトのいずれかを操作対象として、当該操作対象の第2の制御を行わせる。当該第2の制御は前記仮想空間内における回転を少なくとも含む。そして、前記ゲームプログラムは、前記コンピュータに、前記仮想空間内において、前記操作可能オブジェクトである第1のオブジェクトの姿勢の変化に応じて、前記地形オブジェクトである第2のオブジェクトを回転させる。
【0008】
上記によれば、第2の操作に基づいた操作入力に応じて、複数の操作可能オブジェクトのうちの何れかを操作対象として、当該操作対象に回転を含む第2の制御を行い、操作可能オブジェクトである第1のオブジェクトの姿勢の変化に応じて、地形オブジェクトを回転させることができる。これにより、プレイヤは、第1のオブジェクトを操作対象として回転させることで、地形オブジェクトを仮想空間内で回転させることができる。
【0009】
(第2の構成)
第2の構成では、上記第1の構成において、前記コンピュータに、前記第2の制御として、前記操作対象とされたオブジェクトを所定軸回りに回転させる制御と、前記操作対象とされたオブジェクトを指示方向に移動させる制御とを少なくとも行わせてもよい。
【0010】
上記によれば、第2の操作に基づいた操作入力に応じて、操作対象であるオブジェクトを回転又は移動させることができる。
【0011】
(第3の構成)
第3の構成では、上記第2の構成において、前記コンピュータに、前記第2の制御として、さらに、前記操作対象とされたオブジェクトを他のオブジェクトに連結させる制御を行わせてもよい。
【0012】
上記によれば、第2の操作に基づいた操作入力に応じて、操作対象であるオブジェクトに、他のオブジェクトを連結させることができる。
【0013】
(第4の構成)
第4の構成では、上記第3の構成において、前記操作可能オブジェクトは、仮想的な推進力を発生させる推進オブジェクトを含んでもよい。前記ゲームプログラムは、前記コンピュータにさらに、前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、前記仮想的な推進力に基づいた運動を行わせ、前記第1のオブジェクトに前記推進オブジェクトが連結された場合、当該推進オブジェクトによる前記仮想的な推進力に基づいて、前記推進オブジェクトが連結された前記第1のオブジェクトを運動させてもよい。
【0014】
上記によれば、第1のオブジェクトに推進オブジェクトを連結させることで、第1のオブジェクトを運動させることができる。これにより、第1のオブジェクトが回転した場合に、地形オブジェクトを回転させることができる。
【0015】
(第5の構成)
第5の構成では、上記第3又は第4の構成において、前記ゲームプログラムは、前記コンピュータにさらに、前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、仮想的な重力に基づいた運動を行わせ、前記第1のオブジェクトに、前記第1のオブジェクトとは異なる前記操作可能オブジェクトである第3のオブジェクトが連結された場合、前記仮想的な重力に基づいて、前記第3のオブジェクトが連結された前記第1のオブジェクトを運動させてもよい。
【0016】
上記によれば、第1のオブジェクトに第3のオブジェクトを連結させることで、第3のオブジェクトの重力に基づいて、第1のオブジェクトを運動させることができる。これにより、第1のオブジェクトが回転した場合に、地形オブジェクトを回転させることができる。
【0017】
(第6の構成)
第6の構成では、上記第5の構成において、前記第1のオブジェクトは、前記仮想的な重力に関わらず、前記仮想空間内の空中に浮いた状態で維持されてもよい。
【0018】
上記によれば、第1のオブジェクトは空中に浮いているため、プレイヤは、第1のオブジェクトの姿勢を確認しながら、第2の操作により第1のオブジェクトを回転させ易くすることができる。
【0019】
(第7の構成)
第7の構成では、上記第6の構成において、前記仮想空間内において、前記第1のオブジェクトの位置は固定、又は、前記第1のオブジェクトの移動範囲は制限されてもよい。
【0020】
上記によれば、第1のオブジェクトを仮想空間内において固定、又は、第1のオブジェクトの移動範囲を制限し、第1のオブジェクトの姿勢を制御することができる。
【0021】
(第8の構成)
第8の構成では、上記第1から第7の何れかの構成において、前記ゲームプログラムは、前記コンピュータにさらに、前記操作可能オブジェクトの少なくとも1つのオブジェクトについて、前記第2の制御を行っていない場合に、仮想的な重力に基づいた運動を行わせてもよい。前記第1のオブジェクトは、前記仮想的な重力に関わらず、前記仮想空間内の空中に浮いた状態で維持されてもよい。
【0022】
上記によれば、第1のオブジェクトが空中に浮いているため、プレイヤは、第1のオブジェクトの姿勢を確認しながら、第2の操作により第1のオブジェクトを回転させ易くすることができる。
【0023】
(第9の構成)
第9の構成では、上記第8の構成において、前記ゲームプログラムは、前記コンピュータに、前記プレイヤキャラクタを仮想的な重力に基づいて落下させ、前記プレイヤキャラクタが前記第1のオブジェクトに乗っている場合、前記プレイヤキャラクタに対する前記仮想的な重力に基づいて、前記第1のオブジェクトを運動させてもよい。
【0024】
上記によれば、プレイヤキャラクタが第1のオブジェクトに乗っている場合、プレイヤキャラクタの重力に基づいて第1のオブジェクトを運動させることができ、第1のオブジェクトが回転した場合に、地形オブジェクトを回転させることができる。
【0025】
(第10の構成)
第10の構成では、上記第1から第9の何れかの構成において、前記ゲームプログラムは、前記コンピュータにさらに、前記プレイヤキャラクタが前記第2のオブジェクト上に乗っている場合、前記第1のオブジェクトに対する前記第2の制御を制限させてもよい。
【0026】
上記によれば、プレイヤキャラクタが第1のオブジェクトに乗っている場合、第1のオブジェクトに対する第2の制御を制限することができる。これにより、例えば、プレイヤキャラクタが第1のオブジェクトから落下することを防止することができる。
【0027】
(第11の構成)
第11の構成では、上記第1から第10の何れかの構成において、前記ゲームプログラムは、前記コンピュータに、前記第2の制御として、前記第2のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量が、前記第1のオブジェクトの姿勢の基準姿勢に対する回転方向及び回転量に近づくように、第2のオブジェクトを所定の回転速度で回転させてもよい。
【0028】
上記によれば、地形オブジェクトを所定の回転速度で回転させることで、地形オブジェクトの姿勢を第1のオブジェクトの姿勢に近づけることができる。
【0029】
また、他の構成は、上記ゲームプログラムを実行する情報処理装置であってもよいし、情報処理システムであってもよいし、情報処理システムにおいて行われる情報処理方法であってもよい。
【発明の効果】
【0030】
本発明によれば、第1のオブジェクトを操作対象として回転させることで、地形オブジェクトを仮想空間内で回転させることができる。
【図面の簡単な説明】
【0031】
【
図2】本体装置2の内部構成の一例を示すブロック図
【
図3】本実施形態のゲームが実行された場合に表示されるゲーム画像の一例を示す図
【
図4】第1のオブジェクトを含むゲーム画像の一例を示す図
【
図5】プレイヤキャラクタPCの特殊能力を用いて第1のオブジェクト70が操作されるときのゲーム画像の一例を示す図
【
図6】
図5に示される状態で所定の回転操作が行われた場合のゲーム画像の一例を示す図
【
図7】第1のオブジェクト70が操作される前の第1のオブジェクト70及び地形オブジェクト50を仮想空間を上方から見た図
【
図8】第1のオブジェクト70と地形オブジェクト50を仮想空間を上方から見た図であって、第1のオブジェクト70と地形オブジェクト50とが連動する様子を表す図
【
図10】第1のオブジェクト70及び地形オブジェクト50がY軸回りに負方向に90度回転した後の図
【
図11】
図10に示される状態において画面に表示されるゲーム画像の一例を示す図
【
図12】第1のオブジェクト70及び地形オブジェクト50がY軸回りに180度回転した後の図
【
図13】
図12に示される状態において画面に表示されるゲーム画像の一例を示す図
【
図14】第1のオブジェクト70を画面の横方向の軸回りに回転させる様子を示す図
【
図15】仮想空間に配置された複数の仮想オブジェクト80の一例を示す図
【
図16】仮想空間に配置された岩オブジェクト80aが操作対象として選択されて操作される様子を示す図
【
図17】第1のオブジェクト70に岩オブジェクト80aが連結されたときのゲーム画像の一例を示す図
【
図18】第1のオブジェクト70に推進オブジェクト80bが連結されたときのゲーム画像の一例を示す図
【
図19】ゲーム処理の実行中に本体装置2のメモリに記憶されるデータの一例を示す図
【
図20】本体装置2のプロセッサ21によって実行されるゲーム処理の一例を示すフローチャート
【
図21】ステップS104の第1のオブジェクト操作制御処理の一例を示すフローチャート
【
図22】ステップS106の仮想オブジェクト操作制御処理の一例を示すフローチャート
【
図23】ステップS108の地形オブジェクト制御処理の一例を示すフローチャート
【発明を実施するための形態】
【0032】
(ゲームシステムの構成)
以下、本実施形態の一例に係るゲームシステムについて説明する。
図1は、ゲームシステムの一例を示す図である。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部の一例として、複数のボタン5(Aボタン、Bボタン、Xボタン、Yボタン)と、アナログスティック6とを含む。
【0033】
本体装置2は、左コントローラ3および右コントローラ4をそれぞれ着脱可能に構成される。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できるし、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0034】
図2は、本体装置2の内部構成の一例を示すブロック図である。
図2に示されるように、本体装置2は、プロセッサ21を備える。プロセッサ21は、本体装置2において実行される各種の情報処理(例えばゲーム処理)を実行する情報処理部であって、例えば、CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)とを含む。なお、プロセッサ21は、CPUのみから構成されてもよいし、CPU機能、GPU機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ21は、記憶部(具体的には、フラッシュメモリ26等の内部記憶媒体、あるいは、スロット29に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0035】
また、本体装置2は、ディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。ディスプレイ12は、プロセッサ21に接続される。プロセッサ21は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0036】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子23と、本体装置2が右コントローラ4と有線通信を行うための右側端子22を備える。
【0037】
また、本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ26およびDRAM(Dynamic Random Access Memory)27を備える。フラッシュメモリ26およびDRAM27は、プロセッサ21に接続される。フラッシュメモリ26は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM27は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0038】
本体装置2は、スロット29を備える。スロット29は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、ゲームアプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、ゲームプログラム等)を記憶するために用いられる。
【0039】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)28を備える。スロットI/F28は、プロセッサ21に接続される。スロットI/F28は、スロット29に接続され、スロット29に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ21の指示に応じて行う。
【0040】
プロセッサ21は、フラッシュメモリ26およびDRAM27、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0041】
また、本体装置2は、ネットワーク通信部24を備える。ネットワーク通信部24は、プロセッサ21に接続される。ネットワーク通信部24は、ネットワークを介して外部の装置と無線又は有線により通信を行う。本実施形態においては、ネットワーク通信部24は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部24は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0042】
本体装置2は、コントローラ通信部25を備える。コントローラ通信部25は、プロセッサ21に接続される。コントローラ通信部25は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部25は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0043】
プロセッサ21は、上述の左側端子23および右側端子22に接続される。プロセッサ21は、左コントローラ3と有線通信を行う場合、左側端子23を介して左コントローラ3へデータを送信するとともに、左側端子23を介して左コントローラ3から操作データを受信する。また、プロセッサ21は、右コントローラ4と有線通信を行う場合、右側端子22を介して右コントローラ4へデータを送信するとともに、右側端子22を介して右コントローラ4から操作データを受信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。
【0044】
なお、本体装置2は、
図2に示す各要素の他にも、電源を供給するためのバッテリー、ディスプレイ12とは別の表示装置(例えばテレビ)に画像及び音声を出力するための出力端子を備える。
【0045】
(ゲームの概要)
次に、本実施形態のゲームについて説明する。
図3は、本実施形態のゲームが実行された場合に表示されるゲーム画像の一例を示す図である。
図3に示されるように、仮想空間(ゲーム空間)に、プレイヤキャラクタPCが配置される。仮想空間には、鉛直上向きのY軸と、Y軸に垂直なX軸及びZ軸が設定される。
【0046】
仮想空間には、プレイヤキャラクタPCが移動可能な複数の地形オブジェクト40、50、60が配置される。地形オブジェクト40の地面41上には、プレイヤキャラクタPCが配置される。地面41は、例えば、仮想空間のXZ平面に平行な面である。また、プレイヤキャラクタPCの前方には、地形オブジェクト50が配置されている。また、地形オブジェクト50の左側には、別の地形オブジェクト60が配置されている。地形オブジェクト50は、仮想空間内で浮いている。仮想空間には下方(Y軸負方向)に仮想的な重力が働いているが、地形オブジェクト50には、当該重力は働かない(又は重力と反対方向の仮想的な浮力が働いている)。このため、地形オブジェクト50は、宙に浮いた状態を維持する。
【0047】
プレイヤキャラクタPCは、プレイヤの第1の操作に基づいた操作入力に応じて、仮想空間内を移動したり、仮想空間内でジャンプしたり、仮想空間内で所定の動作を行ったりする。例えば、プレイヤキャラクタPCは、左コントローラ3のアナログスティック6に対する方向入力に応じて、地形オブジェクト40上を移動する。また、プレイヤキャラクタPCは、プレイヤの第2の操作に基づいた操作入力に応じて、操作可能オブジェクトのうちの何れかを操作する能力(以下、特殊能力という)を有する。
【0048】
操作可能オブジェクトは、プレイヤキャラクタPCの特殊能力によって操作可能なオブジェクトであり、地形オブジェクト上に配置される。操作可能オブジェクトの詳細については後述する。また、図示は省略するが、地形オブジェクト上には、操作可能オブジェクトの他にも、プレイヤキャラクタPCの特殊能力によって操作されない様々なオブジェクト(例えば、敵キャラクタ、仮想空間に固定された木オブジェクト等)が配置される。
【0049】
地形オブジェクト40、50、60の間には、それぞれ、間隙が存在している。地形オブジェクト40と地形オブジェクト50とは比較的離れているため、
図3に示される状態では、プレイヤキャラクタPCは、地形オブジェクト40から地形オブジェクト50上に移動できない。また、地形オブジェクト40と地形オブジェクト60とは比較的離れているため、プレイヤキャラクタPCは、地形オブジェクト40から地形オブジェクト60上に移動できない。また、地形オブジェクト50と地形オブジェクト60とは比較的離れているため、プレイヤキャラクタPCが仮に地形オブジェクト50上に位置していたとしても、プレイヤキャラクタPCは、地形オブジェクト50から地形オブジェクト60上に移動できない。
【0050】
ここで、地形オブジェクト40および60は、仮想空間内の所定の位置に所定の姿勢で固定される。一方、地形オブジェクト50は、仮想空間内で少なくとも姿勢を変化可能に構成される。
【0051】
本実施形態のゲームでは、地形オブジェクト50の少なくとも姿勢を制御するための第1のオブジェクトが配置される。
図4は、第1のオブジェクトを含むゲーム画像の一例を示す図である。
【0052】
図4に示されるように、仮想空間には第1のオブジェクト70が配置される。第1のオブジェクト70は、プレイヤの第2の操作に基づいた操作入力に応じて制御される操作可能オブジェクトの一例である。
【0053】
第1のオブジェクト70は、地形オブジェクト40の地面41から所定距離だけ離れた位置に配置されている。第1のオブジェクト70には、仮想的な重力は働かない(又は重力と反対方向の仮想的な浮力が働いている)ため、第1のオブジェクト70は空中に浮いた状態を維持する。
【0054】
第1のオブジェクト70は、地形オブジェクト50を制御するためのオブジェクトである。第1のオブジェクト70は、地形オブジェクト50と同一又は類似の形状であってもよい。第1のオブジェクト70の姿勢の変化に応じて、地形オブジェクト50の姿勢が変化する。プレイヤは、プレイヤキャラクタPCの特殊能力を用いて第1のオブジェクトの少なくとも姿勢を制御する。
【0055】
図5は、プレイヤキャラクタPCの特殊能力を用いて第1のオブジェクト70が操作されるときのゲーム画像の一例を示す図である。
図6は、
図5に示される状態で所定の回転操作が行われた場合のゲーム画像の一例を示す図である。
【0056】
例えば、プレイヤキャラクタPCは、ゲーム中に所定のアイテムを取得したり、所定の敵キャラクタを倒したり、所定のゲームキャラクタと話をしたりすることにより、仮想空間内の操作可能オブジェクトを操作する特殊能力を獲得する。あるいは、プレイヤキャラクタPCは、初期的に当該特殊能力を備えてもよい。
【0057】
図5に示されるように、プレイヤの選択操作に基づいて、仮想空間内の複数の操作可能オブジェクトのうち、第1のオブジェクト70が操作対象として選択される。例えば、プレイヤキャラクタPCの前方に第1のオブジェクト70が位置しているときに、所定の選択ボタンが押下された場合、第1のオブジェクト70が操作対象として選択される。第1のオブジェクト70が操作対象として選択されている場合、プレイヤキャラクタPCの手からビームが発射され、第1のオブジェクト70が強調表示される。
【0058】
第1のオブジェクト70は、初期的には地形オブジェクト40の上面である地面41からY軸方向の所定の位置に所定の姿勢で配置されている。ここでは、第1のオブジェクト70の初期的な位置を「基準位置」といい、第1のオブジェクト70の初期的な姿勢を「基準姿勢」という。
図5に示されるX1-Y1-Z1座標系は、第1のオブジェクト70に固定の座標系である。第1のオブジェクト70は、第1部分71と第2部分72と第4部分74とを有する。第1のオブジェクト70の第4部分74は、第1部分71の上面からY1軸方向に延びるように形成され、第1のオブジェクト70の第2部分72は、第1部分71の右側面からX1軸方向に延びるように形成される。
【0059】
この状態でプレイヤが所定の回転操作を行った場合、
図6に示されるように、第1のオブジェクト70が、Y軸回りに回転する。この第1のオブジェクト70の回転に応じて、地形オブジェクト50が回転する。具体的には、地形オブジェクト50は、初期的には基準姿勢で仮想空間内に配置されており、第1のオブジェクト70の基準姿勢からの変化に応じて、地形オブジェクト50は基準姿勢から変化する。例えば、第1のオブジェクト70がY軸方向に反時計回りに第1の角度だけ回転した場合、地形オブジェクト50も、Y軸方向に反時計回りに第1の角度だけ回転するように、地形オブジェクト50の姿勢が制御される。具体的には、地形オブジェクト50の姿勢の基準姿勢に対する回転方向及び回転量が、第1のオブジェクト70の姿勢の基準姿勢に対する回転方向及び回転量に近づくように、地形オブジェクト50が所定の回転速度で回転される。
【0060】
この第1のオブジェクト70と地形オブジェクト50との姿勢の連動について、
図7から
図9を参照して説明する。
【0061】
図7は、第1のオブジェクト70が操作される前の第1のオブジェクト70及び地形オブジェクト50を仮想空間を上方から見た図である。
図8は、第1のオブジェクト70と地形オブジェクト50を仮想空間を上方から見た図であって、第1のオブジェクト70と地形オブジェクト50とが連動する様子を表す図である。
図9は、
図8の状態から所定時間が経過した後の図である。
【0062】
図7に示されるように、プレイヤキャラクタPCは、地形オブジェクト40の地面上41に位置している。プレイヤキャラクタPCの背後には仮想カメラVCが配置されており、当該仮想カメラVCに基づいて生成されたゲーム画像が、表示装置に表示される。仮想カメラVCは、プレイヤキャラクタPCの移動に応じて移動する。仮想カメラVCには、仮想カメラVCに固定のXc-Yc-Zc座標系が設定される。Zc軸は、仮想カメラVCの視線方向の軸であり、Xc軸は、仮想カメラVCの右方向の軸であり、Yc軸は、仮想カメラVCの上方向の軸である。
【0063】
また、地面41からY軸方向に所定距離離れた位置であって、プレイヤキャラクタPCの前方に、第1のオブジェクト70が配置されている。例えば、第1のオブジェクト70が基準姿勢である場合、第1のオブジェクト70に固定のY1軸及びX1軸は、それぞれ、仮想空間に固定のY軸及びX軸と平行である。また、第1のオブジェクト70の第2部分72は、第1部分71からX1軸方向に延び、第1のオブジェクト70の第3部分73は、第1部分71からZ1軸方向に延びるように形成されている。
【0064】
また、地形オブジェクト40のZ軸方向の所定位置には、地形オブジェクト50が配置されている。
図7に示されるXg-Yg-Zg座標系は、地形オブジェクト50に固定の座標系である。地形オブジェクト50が基準姿勢である場合、地形オブジェクト50に固定のYg軸及びXg軸は、それぞれ、仮想空間に固定のY軸及びX軸と平行である。また、地形オブジェクト50は、第1部分51と第2部分52と第3部分53とを有する。地形オブジェクト50の第2部分52は、第1部分51からXg軸方向に延び、地形オブジェクト50の第3部分53は、第1部分51からZg軸方向に延びるように形成されている。
【0065】
地形オブジェクト50が基準姿勢であるときは、地形オブジェクト50の第2部分52は第1部分51から仮想空間のX軸方向に延び、地形オブジェクト50の第3部分53は第1部分51から仮想空間のZ軸方向に延びる。地形オブジェクト50が基準姿勢であるときは、地形オブジェクト40と地形オブジェクト50(の第1部分51)との距離は、例えば、L1である。
【0066】
図8に示されるように、第1のオブジェクト70が操作対象として選択されているときに、プレイヤが所定の回転操作を行った場合、第1のオブジェクト70は、Y軸回りに回転する。例えば、右コントローラ4の複数のボタン5のうち、Aボタンが押下されたことに応じて、第1のオブジェクト70は、Y軸回りに負方向に(
図8では時計回りに)第1の角度だけ回転する。また、例えば、右コントローラ4の複数のボタン5のうち、Yボタンが押下されたことに応じて、第1のオブジェクト70は、Y軸回りに正方向に(
図8では反時計回りに)第1の角度だけ回転する。
【0067】
第1のオブジェクト70が基準姿勢から回転した場合、地形オブジェクト50も回転する。例えば、第1のオブジェクト70がY軸回りに負方向に(
図8では時計回りに)第1の角度だけ回転した場合、地形オブジェクト50もY軸回りに負方向に第1の角度だけ回転する。具体的には、第1のオブジェクト70の基準姿勢からの回転方向及び回転量に近づくように、地形オブジェクト50が、基準姿勢から回転される。例えば、第1のオブジェクト70は、Aボタンの押下に応じて、第1の回転速度でY軸回りに負方向に回転し、地形オブジェクト50は、第1の回転速度よりも遅い第2の回転速度でY軸回りに負方向に回転する。すなわち、地形オブジェクト50の姿勢は、第1のオブジェクト70の姿勢の変化に応じて、第1のオブジェクト70よりも遅れて、変化する。例えば、
図8では、第1のオブジェクト70は基準姿勢からY軸回りに30度回転した状態であるが、地形オブジェクト50は基準姿勢からY軸回りに15度回転した状態である。この
図8の状態で第1のオブジェクト70がさらに回転せず、所定時間が経過すると、
図9に示されるように、第1のオブジェクト70の姿勢の変化量と、地形オブジェクト50の姿勢の変化量とは一致する。
【0068】
図9の状態からさらに第1のオブジェクト70が回転されると、地形オブジェクト50もさらに回転される。
図10は、第1のオブジェクト70及び地形オブジェクト50がY軸回りに負方向に90度回転した後の図である。
図11は、
図10に示される状態において画面に表示されるゲーム画像の一例を示す図である。
【0069】
図10に示されるように、第1のオブジェクト70が基準姿勢からY軸回りに負方向に90度回転し、所定時間が経過した場合、地形オブジェクト50も基準姿勢からY軸回りに負方向に90度回転した状態になる。この状態では、地形オブジェクト50の第2部分52は、第1部分51から仮想空間のZ軸負方向に延び、地形オブジェクト40と地形オブジェクト50との距離は、基準姿勢のときよりも縮まる(
図11参照)。このため、
図10及び
図11に示される状態では、プレイヤキャラクタPCは、地形オブジェクト40から地形オブジェクト50に歩いて又はジャンプ動作により移動可能となる。しかしながらこの状態でも、地形オブジェクト50と地形オブジェクト60とは、距離L2だけ離れており、プレイヤキャラクタPCは、地形オブジェクト50から地形オブジェクト60に歩いて又はジャンプ動作により移動することはできない。
【0070】
したがって、プレイヤは、プレイヤキャラクタPCを地形オブジェクト40から地形オブジェクト60まで移動させる場合、第1のオブジェクト70をさらに回転させる。
図12は、第1のオブジェクト70及び地形オブジェクト50がY軸回りに180度回転した後の図である。
図13は、
図12に示される状態において画面に表示されるゲーム画像の一例を示す図である。
【0071】
図12に示されるように、第1のオブジェクト70をY軸回りに180度回転させた場合、地形オブジェクト50もY軸回りに180度回転する。この状態では、地形オブジェクト50の第2部分52は、第1部分51から仮想空間のX軸負方向に延び、地形オブジェクト50の第3部分53は、第1部分51から仮想空間のZ軸負方向に延びる。このため、地形オブジェクト40と地形オブジェクト50との距離は、基準姿勢のときよりも縮まり、地形オブジェクト40と地形オブジェクト60との距離も基準姿勢のときよりも縮まる(
図13参照)。このため、
図12及び
図13に示される状態では、プレイヤキャラクタPCは、歩いて又はジャンプ動作により、地形オブジェクト40から地形オブジェクト50に移動可能であり、さらに地形オブジェクト50から地形オブジェクト60に移動可能である。
【0072】
なお、
図8から
図13では、第1のオブジェクト70を仮想空間の上下方向の軸回りに(すなわち、ヨー方向に)回転させる場合について説明した。本実施形態では、第1のオブジェクト70が操作対象として選択されている場合、プレイヤの回転操作に応じて、第1のオブジェクト70を画面の横方向の軸回りに(すなわち、ピッチ方向に)回転させることができる。
【0073】
図14は、第1のオブジェクト70を画面の横方向の軸回りに回転させる様子を示す図である。
【0074】
図14に示されるように、例えば、右コントローラ4の複数のボタン5のうち、Bボタンが押下された場合、第1のオブジェクト70は、仮想カメラVCの右方向の軸であるXc軸回りに正方向に(すなわち、ピッチ方向に)第1の角度だけ回転する。また、例えば、右コントローラ4の複数のボタン5のうち、Xボタンが押下された場合、第1のオブジェクト70は、Xc軸回りに負方向に第1の角度だけ回転する。この第1のオブジェクト70のピッチ方向への回転に応じて、地形オブジェクト50もピッチ方向に回転する。例えば、第1のオブジェクト70は、Aボタンの押下に応じて、第1の回転速度でXc軸回りに回転し、地形オブジェクト50は、第1の回転速度よりも遅い第2の回転速度でXc軸回りに回転する。
【0075】
さらに、第1のオブジェクト70は、操作対象として選択されている場合、所定の回転操作に応じて、仮想カメラVCのZc軸回り(すなわちロール方向)に回転してもよい。第1のオブジェクト70のZc軸回りの回転に応じて、地形オブジェクト50もZc軸回りに回転する。
【0076】
このように、本実施形態のゲームでは、仮想空間に地形オブジェクトを操作するための第1のオブジェクトが配置されている。第1のオブジェクトの姿勢変化に応じて、当該第1のオブジェクトに対応する地形オブジェクトの姿勢が変化する。プレイヤは、第1のオブジェクトの姿勢を変化させることで、地形オブジェクトの姿勢を変化させながらプレイヤキャラクタPCを仮想空間内で移動させ、ゲームを進めることができる。
【0077】
なお、図示した他にも、仮想空間には、複数の第1のオブジェクトが配置され、各第1のオブジェクトに対応する地形オブジェクトが配置される。地形オブジェクトは、プレイヤキャラクタPCがその上を移動可能なものであれば、どのようなオブジェクトであってもよい。このような地形オブジェクトに対応する第1のオブジェクトが仮想空間に配置され、当該第1のオブジェクトの姿勢を変化させることで、対応する地形オブジェクトの姿勢が変化される。例えば、地形オブジェクトは、壁面及び屋根を含む建物であり、プレイヤキャラクタPCは建物の屋根の上を移動可能であってもよい。そのような地形オブジェクトとしての建物の内部に、当該建物に対応する第1のオブジェクトが配置されてもよい。当該第1のオブジェクトが操作対象として選択されて、例えば仮想空間のY軸回りに回転された場合、床を除く建物の壁面及び屋根(天井)が仮想空間のY軸回りに回転してもよい。
【0078】
また、第1のオブジェクトの位置を変化させることにより地形オブジェクトの位置を変化させることが可能であってもよい。例えば、第1のオブジェクトは、初期的に仮想空間内の基準位置に配置されている。また、地形オブジェクトは、初期的に仮想空間内の基準位置に配置されている。第1のオブジェクトが操作対象として選択されているときに、プレイヤの移動操作に応じて第1のオブジェクトが基準位置から第1方向に所定の移動量だけ移動された場合、地形オブジェクトは、その基準位置から第1方向に所定の移動量だけ移動される。この場合において、第1のオブジェクトの基準位置からの移動方向及び移動量に近づくように、地形オブジェクトが移動される。具体的には、プレイヤの移動操作に応じて、第1のオブジェクトは第1の速度で移動し、地形オブジェクトは第1の速度よりも遅い第2の速度で移動してもよい。
【0079】
次に、仮想空間に配置される仮想オブジェクト80について説明する。仮想オブジェクト80は、プレイヤキャラクタPCの上記特殊能力によって操作可能な操作可能オブジェクトの一例である。
図15は、仮想空間に配置された複数の仮想オブジェクト80の一例を示す図である。
【0080】
図15に示されるように、仮想空間には、様々な種類の仮想オブジェクト80が配置される。例えば、仮想空間には、仮想オブジェクト80として、岩オブジェクト80aが配置される。
図16は、仮想空間に配置された岩オブジェクト80aが操作対象として選択されて操作される様子を示す図である。岩オブジェクト80aは、岩を模したオブジェクトであり所定の質量を有する。
図16に示されるように、プレイヤは、岩オブジェクト80aを操作対象として選択し、岩オブジェクト80aを仮想空間内で移動させたり、岩オブジェクト80aの姿勢を変化させたりすることができる。
【0081】
また、
図15に示されるように、仮想オブジェクト80として、推進オブジェクト80bと、翼オブジェクト80cとが仮想空間に配置される。推進オブジェクト80bは、例えば、ジェットエンジンを模したオブジェクトであり、推進力を発生させるオブジェクトである。推進オブジェクト80bは、ジェットの噴射方向と反対方向に推進力を発生させる。また、翼オブジェクト80cは、所定の速度を超えて仮想空間内を移動する場合に、仮想空間の上方への浮力を発生させ、仮想空間内を飛ぶことが可能なオブジェクトである。プレイヤは、プレイヤキャラクタPCの特殊能力を用いて、これら仮想オブジェクト80を操作し、仮想オブジェクト80同士を連結して、複数の操作可能オブジェクトから成る合体オブジェクトを生成することができる。例えば、推進オブジェクト80bを操作対象として選択し、推進オブジェクト80bを翼オブジェクト80cに近づけると、推進オブジェクト80bが翼オブジェクト80cに連結される。これにより、推進オブジェクト80bと翼オブジェクト80cとを含む合体オブジェクト(飛行機オブジェクト)が生成される。飛行機オブジェクトは、推進オブジェクト80bの推進力によって仮想空間内を飛ぶことができる。プレイヤキャラクタPCは、飛行機オブジェクトの上に乗って仮想空間内を飛行することができる。さらに、生成した合体オブジェクトに、他の仮想オブジェクト80を連結させることもできる。
【0082】
プレイヤは、仮想オブジェクト80を第1のオブジェクト70に連結させることができる。
【0083】
図17は、第1のオブジェクト70に岩オブジェクト80aが連結されたときのゲーム画像の一例を示す図である。
【0084】
例えば、
図16に示されるように、岩オブジェクト80aを操作対象として選択し、岩オブジェクト80aを移動させて、第1のオブジェクト70に近づける。岩オブジェクト80aと第1のオブジェクト70とが所定の連結条件を満たすと、岩オブジェクト80aが第1のオブジェクト70に連結される。例えば、連結条件は、岩オブジェクト80aと第1のオブジェクト70との距離が所定値未満であり、かつ、プレイヤによって連結のための指示が行われることである。
【0085】
図17に示されるように、第1のオブジェクト70に所定の質量を有する岩オブジェクト80aが連結された場合、第1のオブジェクト70の姿勢が変化する。具体的には、第1のオブジェクト70に岩オブジェクト80aが連結された場合、第1のオブジェクト70と岩オブジェクト80aとから成る合体オブジェクトの重心位置が変化する。この重心位置の変化によって、第1のオブジェクト70(合体オブジェクト)の姿勢が変化される。なお、第1のオブジェクト70に岩オブジェクト80aが連結されても、第1のオブジェクト70(合体オブジェクト)は、地面41には落下せず、空中に浮いたままである。より具体的には、第1のオブジェクト70の質量、岩オブジェクト80aの質量、岩オブジェクト80aが連結された位置に基づいて、物理演算が行われる。各オブジェクトにかかる重力と、第1のオブジェクト70の浮力とが計算され、これらの力がバランスされる第1のオブジェクト70(合体オブジェクト)の姿勢が算出される。
【0086】
このように第1のオブジェクト70に岩オブジェクト80aが連結された場合、第1のオブジェクト70が操作対象として選択されていない場合でも、岩オブジェクト80aにかかる仮想的な重力の影響により、第1のオブジェクト70の姿勢が変化する場合がある。このような場合でも、地形オブジェクト50の姿勢は、第1のオブジェクト70の姿勢の変化に応じて、変化する。例えば、第1のオブジェクト70に岩オブジェクト80aが連結された直後の所定期間は、第1のオブジェクト70の姿勢は、基準姿勢から徐々に変化する。所定期間が経過すると、合体オブジェクトに含まれる各オブジェクト(第1のオブジェクト70及び岩オブジェクト80a)にかかる重力と第1のオブジェクト70の浮力とが釣り合い、第1のオブジェクト70の姿勢が安定する(姿勢の変化が停止する)。第1のオブジェクト70が操作対象として選択されていない場合でも、この所定期間は第1のオブジェクト70の姿勢が変化し、それに応じて地形オブジェクト50の姿勢も変化する。
【0087】
また、図示は省略するが、プレイヤキャラクタPCは、第1のオブジェクト70上に乗ることができる。プレイヤキャラクタPCが第1のオブジェクト70上に乗る場合も、プレイヤキャラクタPCにかかる重力によって、第1のオブジェクト70の姿勢が変化する。この第1のオブジェクト70の姿勢の変化に応じて、地形オブジェクト50の姿勢が変化する。
【0088】
図18は、第1のオブジェクト70に推進オブジェクト80bが連結されたときのゲーム画像の一例を示す図である。
【0089】
図18に示されるように、第1のオブジェクト70に、推進力を発生させる推進オブジェクト80bが連結された場合、第1のオブジェクト70の姿勢が変化する。具体的には、第1のオブジェクト70に推進オブジェクト80bが連結された場合、推進オブジェクト80bにかかる仮想的な重力が、第1のオブジェクト70と推進オブジェクト80bとから成る合体オブジェクトに加わる。また、推進オブジェクト80bは、所定方向に推進力を発生させる。これら重力や推進力によって、第1のオブジェクト70(合体オブジェクト)が運動(回転)する。なお、第1のオブジェクト70は、推進オブジェクト80bの推進力によって移動しないように構成される。また、第1のオブジェクト70に推進オブジェクト80bが連結されても、第1のオブジェクト70(合体オブジェクト)は、地面41には落下せず、空中に浮いたままである。具体的には、第1のオブジェクト70の質量、推進オブジェクト80bの質量、推進オブジェクト80bが連結された位置、推進オブジェクト80bの推進力に基づいて、物理演算が行われ、第1のオブジェクト70の運動が計算される。推進オブジェクト80bが推進力を発生させ続ける場合、第1のオブジェクト70の姿勢が変化し続ける。
【0090】
このように第1のオブジェクト70に推進オブジェクト80bが連結されることによって第1のオブジェクト70が運動する場合も、地形オブジェクト50の姿勢は、第1のオブジェクト70の姿勢の変化に応じて、変化する。第1のオブジェクト70の姿勢が変化し続ける場合、第1のオブジェクト70が操作対象として選択されていない場合でも、地形オブジェクト50の姿勢は、第1のオブジェクト70の姿勢の変化に応じて、変化し続ける。例えば、推進オブジェクト80bが推進力を発生させ続ける間、第1のオブジェクト70は、所定位置で回転し続ける。この第1のオブジェクト70の回転に応じて、地形オブジェクトも回転し続ける。なお、第1のオブジェクト70は、推進オブジェクト80bの推進力によって、仮想空間内で姿勢を変化させるとともに移動してもよい。この場合、第1のオブジェクト70の移動に応じて、地形オブジェクトも移動する。
【0091】
以上のように、本実施形態のゲームでは、プレイヤキャラクタPCは、仮想空間に配置された操作可能オブジェクトを操作する特殊能力を有している。プレイヤは、当該プレイヤキャラクタPCの特殊能力を用いて、仮想空間に配置された第1のオブジェクト70の少なくとも姿勢を変化させて、地形オブジェクトの姿勢を変化させる。これにより、プレイヤは、仮想空間に配置された第1のオブジェクト70を用いて地形を変化させながらゲームを進めることができる。
【0092】
また、プレイヤは、第1のオブジェクト70に仮想オブジェクト80を連結して、第1のオブジェクト70の姿勢を、重力又は仮想オブジェクト80の推進力により変化させることができる。これにより、プレイヤキャラクタPCの上記特殊能力を用いて直接第1のオブジェクト70を操作しなくても、第1のオブジェクト70の姿勢を自動的に変化させることができ、地形オブジェクトの姿勢を変化させることができる。
【0093】
なお、プレイヤキャラクタPCが、第1のオブジェクト70に対応する地形オブジェクト50上に位置する間、上記特殊能力を用いた第1のオブジェクト70に対する操作が制限される。例えば、プレイヤキャラクタPCが地形オブジェクト50上に位置する間、第1のオブジェクト70を操作対象として選択できないように構成されてもよい。これにより、プレイヤキャラクタPCが地形オブジェクト50上に位置する間、第1のオブジェクト70の操作が不可能となる。仮に、プレイヤキャラクタPCが地形オブジェクト50上に位置するときに、第1のオブジェクト70の操作を可能とすると、地形オブジェクト50の姿勢が変化してしまい、プレイヤキャラクタPCと第1のオブジェクト70との位置関係が変化し、第1のオブジェクト70を操作できなくなる可能性があるからである。例えば、地形オブジェクト50の姿勢の変化によってプレイヤキャラクタPCが落下したり、プレイヤキャラクタPCと第1のオブジェクト70との位置関係の変化により、第1のオブジェクト70を意図せずに大きく変化させてしまい、プレイヤキャラクタPCが地形オブジェクト50上から振り落とされる可能性がある。このため、プレイヤキャラクタPCが地形オブジェクト50上に位置する間、上記特殊能力を用いた第1のオブジェクト70の操作は不可能とされる。具体的には、プレイヤキャラクタPCが地形オブジェクト50上に位置する場合、第1のオブジェクト70を操作対象として選択することが制限される。なお、プレイヤキャラクタPCが地形オブジェクト50上に位置する場合、第1のオブジェクト70を操作対象として選択することは可能であるが、第1のオブジェクト70の操作が制限又は無効にされてもよい。
【0094】
なお、例えば、第1のオブジェクト70に推進オブジェクト80bが連結される場合、第1のオブジェクト70の姿勢は、プレイヤの操作の有無にかかわらず変化することがある。この場合、地形オブジェクト50の姿勢も変化するが、地形オブジェクト50の姿勢が変化しているときでも、プレイヤキャラクタPCは、地形オブジェクト50へ移動することは可能である。
【0095】
(ゲーム処理の詳細)
次に、上述したゲームに関するゲーム処理の詳細について説明する。まず、ゲーム処理に用いられるデータについて説明する。
図19は、ゲーム処理の実行中に本体装置2のメモリに記憶されるデータの一例を示す図である。
【0096】
図19に示されるように、本体装置2のメモリ(DRAM27、フラッシュメモリ26、又は外部記憶媒体)には、ゲームプログラムと、プレイヤキャラクタデータと、第1のオブジェクトデータと、仮想オブジェクトデータと、地形オブジェクトデータとが記憶される。
【0097】
ゲームプログラムは、後述するゲーム処理を実行するためのプログラムである。ゲームプログラムは、スロット29に装着される外部記憶媒体又はフラッシュメモリ26に予め記憶されており、ゲームの実行時にDRAM27に読み込まれる。なお、ゲームプログラムは、ネットワーク(例えばインターネット)を介して他の装置から取得されてもよい。
【0098】
プレイヤキャラクタデータは、プレイヤキャラクタPCに関するデータであり、プレイヤキャラクタPCの仮想空間における位置や姿勢に関する情報を含む。また、プレイヤキャラクタデータは、プレイヤキャラクタPCが所有するアイテムや能力等を示す情報、プレイヤキャラクタPCの形状に関するデータを含む。
【0099】
第1のオブジェクトデータは、仮想空間に配置された第1のオブジェクト70に関するデータである。第1のオブジェクトデータは、第1のオブジェクト70の仮想空間における位置及び姿勢を表すデータを含む。例えば、第1のオブジェクトデータは、第1のオブジェクト70の基準位置に関するデータと、第1のオブジェクト70の基準姿勢に関するデータと、基準位置からの移動方向及び移動量を示すデータと、基準姿勢からの回転方向及び回転量を示すデータとを含む。これらのデータに基づいて、第1のオブジェクト70の現在の位置及び姿勢が定められる。また、第1のオブジェクトデータは、第1のオブジェクト70に仮想オブジェクト80が連結されている場合、その連結されている仮想オブジェクト80に関する情報(仮想オブジェクト80の種類、質量、連結されている位置等に関する情報)を含む。
【0100】
仮想オブジェクトデータは、仮想空間に配置された仮想オブジェクト80(例えば、岩オブジェクト80a、推進オブジェクト80b、翼オブジェクト80c等)に関するデータである。仮想オブジェクトデータは、各仮想オブジェクト80の仮想空間における位置及び姿勢を表すデータを含む。また、複数の仮想オブジェクト80から成る合体オブジェクトが生成されている場合、仮想オブジェクトデータは、当該合体オブジェクトに関する情報(重心位置、質量等)を含む。
【0101】
地形オブジェクトデータは、仮想空間に配置された複数の地形オブジェクトのそれぞれに関するデータである。具体的には、地形オブジェクトデータは、各地形オブジェクトの仮想空間における位置及び姿勢を表すデータを含む。例えば、地形オブジェクトデータは、地形オブジェクト50の基準位置に関するデータと、地形オブジェクト50の基準姿勢に関するデータと、地形オブジェクト50の基準位置からの移動方向及び移動量を示すデータと、地形オブジェクト50の基準姿勢からの回転方向及び回転量を示すデータとを含む。これらデータに基づいて、地形オブジェクト50の現在の位置及び姿勢が定まる。
【0102】
次に、本体装置2において行われるゲーム処理の詳細について説明する。
図20は、本体装置2のプロセッサ21によって実行されるゲーム処理の一例を示すフローチャートである。
【0103】
図20に示されるように、ゲーム処理が開始されると、プロセッサ21は、初期処理を実行する(ステップS100)。具体的には、プロセッサ21は、仮想空間を設定し、仮想空間にプレイヤキャラクタPC、仮想カメラVC、操作可能オブジェクトとしての第1のオブジェクト70及び複数の仮想オブジェクト80、複数の地形オブジェクト等を配置する。これらの他にも、操作可能オブジェクトとは異なるオブジェクト(例えば、仮想空間に固定された木オブジェクトや敵キャラクタ)が仮想空間に配置される。
【0104】
次に、プロセッサ21は、コントローラからの操作データを取得する(ステップS101)。操作データは、左コントローラ3のボタン5、アナログスティック6、右コントローラ4のボタン5、アナログスティック6等に対する操作に応じたデータを含む。本体装置2は、各コントローラから所定の時間間隔(例えば、1/200秒間隔)で操作データを受信し、当該操作データをメモリに記憶する。ステップS101では、プロセッサ21は、各コントローラから送信されてメモリに記憶された操作データを取得する。以降、プロセッサ21は、ステップS101~ステップS110の処理を所定のフレーム時間間隔(例えば、1/60秒間隔)で繰り返し実行する。
【0105】
続いて、プロセッサ21は、プレイヤキャラクタ制御処理を行う(ステップS102)。ここでは、プロセッサ21は、操作データに基づいて、プレイヤキャラクタPCの制御を行う。例えば、プレイヤの移動操作(例えば左コントローラ3のアナログスティック6に対する操作)が行われている場合、プロセッサ21は、プレイヤキャラクタPCを1フレーム分の移動量だけ移動させる。また、プレイヤの選択操作(例えば、コントローラの所定のボタンに対する操作)が行われた場合、プロセッサ21は、仮想空間に配置された複数の操作可能オブジェクトのうちの何れかを選択する。例えば、プレイヤキャラクタPCの前方に第1のオブジェクト70が存在しているときに、所定のボタンが押下された場合、プロセッサ21は、第1のオブジェクト70を操作対象として選択する。なお、プロセッサ21は、プレイヤキャラクタPCが第1のオブジェクト70に対応する地形オブジェクト50上に位置する場合、プレイヤキャラクタPCの前方に第1のオブジェクト70が存在し、かつ、所定のボタンが押下された場合でも、第1のオブジェクト70を操作対象として選択しない。また、プレイヤキャラクタPCの前方に仮想オブジェクト80があるときに、所定のボタンが押下された場合、プロセッサ21は、仮想オブジェクト80を操作対象として選択する。なお、プロセッサ21は、選択中の操作オブジェクトの表示態様を特定の表示態様に変化させる。その他、プロセッサ21は、プレイヤの操作に応じて、プレイヤキャラクタPCにジャンプ動作を開始させたり、攻撃動作を開始させたりする。プレイヤキャラクタPCのジャンプ動作や攻撃動作が開始された場合、複数のフレームにわたってこれらの動作が行われる。
【0106】
次に、プロセッサ21は、第1のオブジェクト70を操作対象として操作中か否かを判定する(ステップS103)。第1のオブジェクト70を操作中である場合(ステップS103:YES)、プロセッサ21は、第1のオブジェクト操作制御処理を行う(ステップS104)。第1のオブジェクト操作制御処理は、操作データに基づいて、第1のオブジェクト70の少なくとも姿勢を制御する処理である。以下、ステップS104の第1のオブジェクト操作制御処理の詳細について説明する。
【0107】
(第1のオブジェクト操作制御処理)
図21は、ステップS104の第1のオブジェクト操作制御処理の一例を示すフローチャートである。
【0108】
図21に示されるように、プロセッサ21は、操作中の第1のオブジェクト70を回転させるか否かを判定する(ステップS200)。例えば、プロセッサ21は、右コントローラ4の複数のボタン5のうちの何れかが押下されているか否かを判定する。そして、複数のボタン5のうち何れかが押下されている場合、プロセッサ21は、ステップS200でYESと判定する。
【0109】
第1のオブジェクト70を回転させると判定した場合(ステップS200:YES)、プロセッサ21は、押下されているボタンに応じた方向に第1のオブジェクト70を回転させる(ステップS201)。例えば、複数のボタン5のうち、Aボタン又はYボタンが押下されている場合、プロセッサ21は、第1のオブジェクト70を仮想空間のY軸回りに第1の角度だけ回転させる。また、複数のボタン5のうち、Bボタン又はXボタンが押下されている場合、プロセッサ21は、第1のオブジェクト70をXc軸回りに第1の角度だけ回転させる。なお、所定の回転操作が行われている場合、ステップS201において、第1のオブジェクト70をZc軸回りに第1の角度だけ回転させてもよい。
【0110】
ステップS201の処理を実行した場合、又は、ステップS200でNOと判定した場合、プロセッサ21は、第1のオブジェクト70を仮想空間内で移動させるか否かを判定する(ステップS202)。具体的には、プロセッサ21は、コントローラを用いて所定の移動操作が行われているか否かを判定する。例えば、左コントローラ3又は右コントローラ4のアナログスティック6に対する操作が行われている場合、プロセッサ21は、ステップS202でYESと判定する。
【0111】
第1のオブジェクト70を移動させると判定した場合(ステップS202:YES)、プロセッサ21は、第1のオブジェクト70を移動させる(ステップS203)。例えば、プロセッサ21は、アナログスティック6の入力方向に応じた仮想空間の方向に、第1のオブジェクト70を第1の移動量だけ移動させる。なお、第1のオブジェクト70の移動範囲は制限される。例えば、第1のオブジェクト70は、所定の移動範囲内でのみ移動可能であり、当該移動範囲を超えて移動することはできない。
【0112】
なお、第1のオブジェクト70の位置は固定されてもよい。この場合、ステップS202及びステップS203の処理は行われなくてもよい。すなわち、第1のオブジェクト70は、仮想空間内において平行移動されないように仮想空間内で固定されてもよい。なお、第1のオブジェクト70は仮想空間内において平行移動されないが、第1のオブジェクト70の中心位置は、第1のオブジェクト70の回転によって変化してもよいし、変化しなくてもよい。
【0113】
ステップS203の処理を行った場合、又は、ステップS202でNOと判定した場合、プロセッサ21は、
図21に示す処理を終了し、処理を
図20に戻す。
【0114】
図20に戻り、第1のオブジェクト70を操作中でない場合(ステップS103:NO)、プロセッサ21は、仮想オブジェクト80を操作対象として操作中か否かを判定する(ステップS105)。仮想オブジェクト80を操作中である場合(ステップS105:YES)、プロセッサ21は、仮想オブジェクト操作制御処理を行う(ステップS106)。仮想オブジェクト操作制御処理は、操作データに基づいて、仮想オブジェクト80を制御する処理である。以下、ステップS106の仮想オブジェクト操作制御処理の詳細について説明する。
【0115】
(仮想オブジェクト操作制御処理)
図22は、ステップS106の仮想オブジェクト操作制御処理の一例を示すフローチャートである。
【0116】
図22に示されるように、プロセッサ21は、操作中の仮想オブジェクト80を回転させるか否かを判定し(ステップS300)、回転させると判定した場合、当該仮想オブジェクト80を回転させる(ステップS301)。ステップS300及びステップS301の処理は、操作対象が異なることを除いて、ステップS200及びステップS201の処理と同じであるため、詳細な説明を省略する。
【0117】
ステップS301の処理を実行した場合、又は、ステップS300でNOと判定した場合、プロセッサ21は、操作中の仮想オブジェクト80を仮想空間内で移動させるか否かを判定する(ステップS302)。具体的には、プロセッサ21は、コントローラを用いて所定の移動操作が行われているか否かを判定する。例えば、左コントローラ3又は右コントローラ4のアナログスティック6に対する操作が行われている場合、プロセッサ21は、ステップS302でYESと判定する。
【0118】
仮想オブジェクト80を移動させると判定した場合(ステップS302:YES)、プロセッサ21は、仮想オブジェクト80を1フレーム分の移動量だけ移動させる(ステップS303)。例えば、プロセッサ21は、アナログスティック6の入力方向に応じた仮想空間の方向に、仮想オブジェクト80を移動させる。ステップS303では、上記ステップS203と異なり、仮想オブジェクト80の移動は制限されない。すなわち、仮想オブジェクト80は、プレイヤの移動操作に応じて仮想空間内の任意の位置に移動可能に構成される。なお、ステップS303では、ステップS203と同様に、仮想オブジェクト80の移動が制限されてもよい。
【0119】
ステップS303の処理を実行した場合、又は、ステップS302でNOと判定した場合、プロセッサ21は、操作中の仮想オブジェクト80が他のオブジェクトとの連結条件を満たすか否かを判定する(ステップS304)。例えば、操作中の仮想オブジェクト80が第1のオブジェクト70の近くに位置し、かつ、プレイヤによって所定の指示が行われた場合、プロセッサ21は、ステップS304でYESと判定する。また、例えば、操作中の仮想オブジェクト80が別の仮想オブジェクト80の近くに位置し、かつ、プレイヤによって所定の指示が行われた場合、プロセッサ21は、ステップS304でYESと判定する。
【0120】
操作中の仮想オブジェクト80が他のオブジェクトとの連結条件を満たすと判定した場合(ステップS304:YES)、プロセッサ21は、仮想オブジェクト80と当該他のオブジェクトとの連結処理を行う(ステップS305)。例えば、操作中の仮想オブジェクト80が第1のオブジェクト70の近くに位置し、かつ、プレイヤによって所定の指示が行われた場合、プロセッサ21は、仮想オブジェクト80と第1のオブジェクト70とを連結する処理を行う。例えば、プロセッサ21は、プレイヤの所定の指示が行われた時点での仮想オブジェクト80と第1のオブジェクト70とが最も近接する位置において、これら2つのオブジェクトを連結する。これにより、仮想オブジェクト80と第1のオブジェクト70とは連結位置において連結され、以後、これらのオブジェクトは合体オブジェクトとして、一体的に挙動するようになる。所定の指示が行われた時点での仮想オブジェクト80と第1のオブジェクト70との位置関係に応じて、連結位置が異なり、合体オブジェクトの重心位置が異なる。合体オブジェクトの重心位置によって、連結された後の第1のオブジェクト70の姿勢が異なる。プレイヤは、変化する第1のオブジェクト70の姿勢を考慮して、第1のオブジェクト70における所望の位置に、仮想オブジェクト80を連結させることができる。
【0121】
ステップS305の処理を行った場合、又は、ステップS304でNOと判定した場合、プロセッサ21は、
図22に示す処理を終了し、処理を
図20に戻す。
【0122】
図20に戻り、仮想オブジェクト80を操作中でない場合(ステップS105:NO)、ステップS104の処理を行った場合、又は、ステップS106の処理を行った場合、プロセッサ21は、各オブジェクトの物理計算を行う(ステップS107)。ここでは、仮想空間において各オブジェクトに加わる力、各オブジェクトの質量、各オブジェクトの現在の運動等に基づいて、各オブジェクトに対して物理計算が行われる。そして、物理計算の結果に基づいて、各オブジェクトを仮想空間内で運動させる。例えば、プレイヤキャラクタPCが空中にいる場合は、仮想空間の下方に働く重力に基づいて、プレイヤキャラクタPCを下方に加速度運動をさせ、プレイヤキャラクタPCの位置を更新する。また、例えば、第1のオブジェクト70に仮想オブジェクト80が連結されている場合、第1のオブジェクト70と仮想オブジェクト80からなる合体オブジェクトの運動が計算される。例えば、仮想オブジェクト80が岩オブジェクト80aである場合、当該岩オブジェクト80aにかかる重力と岩オブジェクト80aの連結位置とに基づいて、合体オブジェクト(第1のオブジェクト70)の運動が計算される。また、例えば、仮想オブジェクト80が推進オブジェクト80bである場合、当該推進オブジェクト80bの推進力と重力と連結位置とに基づいて、合体オブジェクト(第1のオブジェクト70)の運動が計算される。また、第1のオブジェクト70上にプレイヤキャラクタPCが乗っている場合、プレイヤキャラクタPCにかかる重力とプレイヤキャラクタPCが乗っている位置とに基づいて、第1のオブジェクト70の運動が計算される。そして、計算の結果、第1のオブジェクト70の仮想空間内の姿勢や位置が決定される。なお、第1のオブジェクト70は、姿勢のみ変化可能に構成され、第1のオブジェクト70の位置は固定されてもよい。また、第1のオブジェクト70は所定の移動範囲でのみ移動可能に構成されてもよい。
【0123】
次に、プロセッサ21は、地形オブジェクト制御処理を行う(ステップS108)。ここでは、プロセッサ21は、地形オブジェクトの姿勢又は位置を制御する。以下、ステップS108の地形オブジェクト制御処理の詳細について説明する。
【0124】
(地形オブジェクト制御処理)
図23は、ステップS108の地形オブジェクト制御処理の一例を示すフローチャートである。
【0125】
図23に示されるように、プロセッサ21は、地形オブジェクト50の姿勢の変化が、第1のオブジェクト70の姿勢の変化と一致しているか否かを判定する(ステップS400)。ここでは、プロセッサ21は、地形オブジェクト50の姿勢の基準姿勢からの回転方向及び回転量と、第1のオブジェクト70の姿勢の基準姿勢からの回転方向及び回転量とが一致するか否かを判定する。地形オブジェクト50の基準姿勢からの回転方向及び回転量が、第1のオブジェクト70の基準姿勢からの回転方向及び回転量と一致する場合、プロセッサ21は、ステップS400でYESと判定する。
【0126】
地形オブジェクト50の姿勢の変化が第1のオブジェクト70の姿勢の変化と一致していないと判定した場合(ステップS400:NO)、プロセッサ21は、地形オブジェクト50の姿勢の変化を第1のオブジェクト70の姿勢の変化に近づける(ステップS401)。ここでは、プロセッサ21は、地形オブジェクト50の姿勢が第1のオブジェクト70の現在の姿勢に近づくように、地形オブジェクト50の姿勢を変化させる。具体的には、プロセッサ21は、地形オブジェクト50の姿勢の基準姿勢からの回転方向及び回転量が、第1のオブジェクト70の姿勢の基準姿勢からの回転方向及び回転量に近づくように、地形オブジェクト50を第1の角度よりも小さい第2の角度だけ回転させる。例えば、第1のオブジェクト70の現在の姿勢が基準姿勢からY軸回りに所定の角度だけ回転している状態である場合、プロセッサ21は、地形オブジェクト50が基準姿勢からY軸回りに所定の角度だけ回転している状態に近づくように、地形オブジェクト50をY軸回りに第2の角度だけ回転させる。この第2の角度は、上記ステップS104で第1のオブジェクト70が回転されるときの第1の角度よりも小さい角度である。すなわち、地形オブジェクト50は、第1のオブジェクト70がプレイヤキャラクタPCの上記特殊能力によって回転される場合の回転速度よりも遅い速度で回転される。
【0127】
ステップS401の処理を実行した場合、又は、ステップS400でYESと判定した場合、プロセッサ21は、地形オブジェクト50の位置の変化が、第1のオブジェクト70の位置の変化と一致しているか否かを判定する(ステップS402)。ここでは、プロセッサ21は、地形オブジェクト50の基準位置からの移動方向及び移動量と、第1のオブジェクト70の基準位置からの移動方向及び移動量とが一致するか否かを判定する。地形オブジェクト50の基準位置からの移動方向及び移動量が、第1のオブジェクト70の基準位置からの移動方向及び移動量と一致する場合、プロセッサ21は、ステップS402でYESと判定する。
【0128】
地形オブジェクト50の位置の変化が第1のオブジェクト70の位置の変化と一致していないと判定した場合(ステップS402:NO)、プロセッサ21は、地形オブジェクト50の位置の変化を第1のオブジェクト70の位置の変化に近づける(ステップS403)。ここでは、プロセッサ21は、地形オブジェクト50の基準位置からの移動方向及び移動量が、第1のオブジェクト70の基準位置からの移動方向及び移動量に近づくように、地形オブジェクト50を第1の移動量よりも小さい第2の移動量だけ移動させる。例えば、第1のオブジェクト70の現在の位置が基準位置からX軸方向に所定の移動量だけ移動している状態である場合、プロセッサ21は、地形オブジェクト50が基準位置からX軸方向に所定の移動量だけ移動している状態に近づくように、地形オブジェクト50をX軸方向に第2の移動量だけ移動させる。この第2の移動量は、上記ステップS104で第1のオブジェクト70が移動されるときの第1の移動量よりも小さい移動量である。すなわち、地形オブジェクト50は、第1のオブジェクト70がプレイヤキャラクタPCの上記特殊能力によって移動される場合の移動速度よりも遅い速度で移動される。
【0129】
なお、地形オブジェクト50は仮想空間の所定の位置に固定されてもよい。この場合、ステップS402及びステップS403の処理は行われなくてもよい。
【0130】
ステップS403の処理を実行した場合、又は、ステップS402でYESと判定した場合、プロセッサ21は、
図23に示す処理を終了し、処理を
図20に戻す。
【0131】
図20に戻り、ステップS108の後、プロセッサ21は、描画処理を行う(ステップS109)。具体的には、プロセッサ21は、仮想カメラVCから仮想空間を見た画像を生成し、表示装置に表示させる。ここでは、ステップS101~ステップS108の処理の結果に基づくゲーム画像が生成され、表示装置に表示される。
【0132】
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS110)。例えば、プレイヤによってゲームの終了が指示された場合、プロセッサ21は、ステップS110でYESと判定して、
図20に示す処理を終了する。ステップS110でNOと判定した場合、プロセッサ21は、再びステップS101の処理を実行する。以上で
図20の説明を終了する。
【0133】
なお、上記フローチャートで示した処理は単なる例示に過ぎず、処理の順番や内容等は適宜変更されてもよい。
【0134】
以上のように、本実施形態では、仮想空間内に複数の操作可能オブジェクト(70、80)が配置され、プレイヤの操作に基づいた操作入力に応じて、複数の操作可能オブジェクトのうちの何れかを操作対象として、当該操作対象の回転を含む制御が行われる(ステップS104、ステップS106)。例えば、複数の操作可能オブジェクトのうち、第1のオブジェクト70が操作対象として選択されている場合、所定の操作入力に応じて、第1のオブジェクト70が回転される。第1のオブジェクト70の回転に応じて、第1のオブジェクト70に対応する地形オブジェクト50(第2のオブジェクト)が回転される(ステップS108)。
【0135】
このように、第1のオブジェクト70の少なくとも姿勢を変化させることで、地形オブジェクト50の姿勢を変化させることができる。仮想空間に地形オブジェクト50を操作するための第1のオブジェクト70が配置されることで、直接操作し難い大きな地形オブジェクトでも操作可能となる。また、地形オブジェクトを操作する場合に、地形オブジェクトの操作のための専用画面を用意し、当該専用画面に切り替えて地形を操作(変更)することが考えられるが、本実施形態では、そのような専用画面を用意しなくても、第1のオブジェクト70を仮想空間に配置して、地形オブジェクト50を連動させるだけで、地形オブジェクト50を操作することができる。すなわち、簡易な構成で地形オブジェクト50を制御する機能を提供することが出来る。
【0136】
また、本実施形態では、地形オブジェクト50の姿勢の基準姿勢からの回転方向及び回転量が、第1のオブジェクト70の姿勢の基準姿勢からの回転方向及び回転量に近づくように、地形オブジェクト50が所定の回転速度で回転される。これにより、例えば、第1のオブジェクト70の回転速度が比較的大きくても、地形オブジェクト50をゆっくりと回転させることができ、プレイヤは、地形オブジェクト50の姿勢を所望の姿勢に変化させることができる。また、例えば、地形オブジェクト50の回転速度が大きい場合は、地形オブジェクト50上に存在するオブジェクトが振り落とされる可能性もあるが、地形オブジェクト50の回転速度を小さくすることで、そのようなことを防止することができる。
【0137】
また、本実施形態では、複数の操作可能オブジェクトのうち、仮想オブジェクト80を操作対象として選択し、当該操作対象を回転させたり移動させたりすることができる(ステップS106)。さらに、操作対象としての仮想オブジェクト80を他のオブジェクトに連結させることができる(ステップS305)。仮想空間には仮想的な重力が働き、仮想オブジェクト80に仮想的な重力に基づく運動が行われる。仮想オブジェクト80には、岩オブジェクト80aと、推進力を発生させる推進オブジェクト80bとがある。第1のオブジェクト70に岩オブジェクト80aが連結された場合、岩オブジェクト80aにかかる仮想的な重力に基づいて、第1のオブジェクト70が運動する。この重力に基づく第1のオブジェクトの運動によって、地形オブジェクト50の姿勢も変化する。また、第1のオブジェクト70に推進オブジェクト80bが連結された場合、推進オブジェクト80bの推進力に基づいて、第1のオブジェクト70が運動する。この推進力に基づく第1のオブジェクトの運動によって、地形オブジェクト50の姿勢も変化する。
【0138】
このように、本実施形態では、第1のオブジェクト70に他の仮想オブジェクト80を連結させることで、第1のオブジェクト70の少なくとも姿勢を変化させ、地形オブジェクト50の少なくとも姿勢を変化させることができる。これにより、第1のオブジェクト70を直接操作対象として操作しなくても、地形オブジェクト50の姿勢を変化させることができる。
【0139】
また、本実施形態では、第1のオブジェクト70上にプレイヤキャラクタPCが乗ることができる。第1のオブジェクト70上にプレイヤキャラクタPCが乗った場合、プレイヤキャラクタPCにかかる重力に基づいて、第1のオブジェクト70の姿勢が変化する。これにより、地形オブジェクト50の姿勢を変化させることができる。
【0140】
また、本実施形態では、仮想空間に仮想的な重力が働くものの、第1のオブジェクト70は仮想空間の空中に浮いている。このため、プレイヤは、第1のオブジェクト70の姿勢を確認しながら回転操作を行うことができ、回転操作を行いやすくすることができる。
【0141】
また、本実施形態では、第1のオブジェクト70の位置は仮想空間内で固定される、又は、第1のオブジェクト70の仮想空間内での移動範囲が制限される。これにより、第1のオブジェクト70を操作し易くすることができ、地形オブジェクト50の姿勢を制御し易くすることができる。また、第1のオブジェクト70の移動により地形オブジェクト50が移動して、仮想空間の地形が大きく変化し過ぎることを防止することができる。
【0142】
また、本実施形態では、プレイヤキャラクタPCが地形オブジェクト50上に位置する場合、第1のオブジェクト70が選択対象として選択されず、第1のオブジェクト70の操作が不可能とされる。これにより、プレイヤキャラクタPCが地形オブジェクト50から落下したり、地形オブジェクト50から振り落とされたりすることを防止することができる。
【0143】
(変形例)
以上、本実施形態について説明したが、上記実施形態は単なる一例であり、例えば以下のような変形が加えられてもよい。
【0144】
例えば、上記実施形態では、第1のオブジェクト70の位置を固定、又は、第1のオブジェクト70の移動を制限することにより、地形オブジェクト50の位置を固定、又は、地形オブジェクト50の移動を制限した。他の実施形態では、第1のオブジェクト70は任意の位置に移動可能に構成されてもよい。この場合、地形オブジェクト50も任意の位置に移動可能である。
【0145】
また、他の実施形態では、第1のオブジェクト70は基準位置から任意の位置に、又は所定の移動範囲内で移動可能である一方で、地形オブジェクト50は基準位置に固定されてもよい。
【0146】
また、上記実施形態では、プレイヤの選択操作により、仮想空間に存在する操作可能オブジェクトのうち、第1のオブジェクト70を操作対象として選択し、選択した状態で回転操作が行われた場合に、第1のオブジェクト70を回転させた。上述したコントローラを用いた操作は単なる一例であり、任意の操作により、第1のオブジェクト70の制御(回転及び/又は移動)が行われ、地形オブジェクト50の制御が行われてもよい。例えば、選択操作と回転操作とは同時に行われてもよい。
【0147】
また、上記実施形態では、プレイヤキャラクタPCが地形オブジェクト50上に位置するときは、第1のオブジェクト70を操作対象として選択不可能に構成された。他の方法により、プレイヤキャラクタPCが地形オブジェクト50上に位置するときに第1のオブジェクト70の操作を制限してもよい。例えば、プレイヤキャラクタPCが地形オブジェクト50上に位置するときは、第1のオブジェクト70を操作対象として選択可能であるが、第1のオブジェクト70に対する操作が制限又は無効とされてもよい。また、プレイヤキャラクタPCが地形オブジェクト50上に位置するときは、第1のオブジェクト70を操作可能であるが、その操作の範囲が制限されてもよい。例えば、プレイヤキャラクタPCが地形オブジェクト50上に位置するときは、第1のオブジェクト70の姿勢を所定の範囲内でのみ変化させることが可能であってもよい。この場合、地形オブジェクト50の姿勢についても、所定の範囲内でのみ変化可能となる。
【0148】
また、他の実施形態では、プレイヤキャラクタPCが地形オブジェクト50上に位置するときでも、第1のオブジェクト70に対する操作は制限されなくてもよい。
【0149】
また、上記実施形態では、地形オブジェクト50の姿勢の基準姿勢からの回転方向及び回転量を第1のオブジェクト70の姿勢の基準姿勢からの回転方向及び回転量に近づくように、地形オブジェクト50の回転方向及び回転量を制御した。他の実施形態では、第1のオブジェクト70の姿勢の変化に常に一致するように、地形オブジェクト50の姿勢を変化させてもよい。すなわち、第1のオブジェクト70の姿勢の変化の速度と地形オブジェクト50の姿勢の変化の速度は同じであってもよい。位置の変化についても同様である。すなわち、第1のオブジェクト70の位置の変化に常に一致するように、地形オブジェクト50の位置を変化させてもよい。
【0150】
また、上記ゲームを行うハードウェアの構成は単なる一例であり、他の任意のハードウェアにおいて上記ゲーム処理が行われてもよい。例えば、パーソナルコンピュータ、タブレット端末、スマートフォン、インターネット上のサーバ等、任意の情報処理システムにおいて上記ゲーム処理が実行されてもよい。また、上記ゲーム処理は、複数の装置によって分散実行されてもよい。
【0151】
また上記実施形態及びその変形例に係る構成は、互いに矛盾しない限り、任意に組み合わせることが可能である。また、上記は本発明の例示に過ぎず、上記以外にも種々の改良や変形が加えられてもよい。
【符号の説明】
【0152】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
5 ボタン
6 アナログスティック
21 プロセッサ
40、50、60 地形オブジェクト
70 第1のオブジェクト
80 仮想オブジェクト