プログラム、ゲーム装置及び情報記憶媒体
【課題】キャラクタの自然な移動制御と、機動的な移動制御とを併合した移動制御を実現する。
【解決手段】本実施の形態のゲーム装置1は、キャラクタの向きθcに対する移動方向を8方向に設定し、当該移動方向に基づいてキャラクタの移動制御を行う。キャラクタの向きθcに対する移動方向が左右斜め前の方向である場合は、キャラクタが徐々にその向きを変えながら移動していくように、移動制御及び回転制御を同時に行う。また、移動方向が直進の方向である場合は、キャラクタが直進するような移動制御のみを行う。さらに、移動方向が、横、左右斜め後ろ又は真後ろの方向である場合は、まずキャラクタの向きが移動方向に一致するように転回制御した後、キャラクタの向きに沿って直進するような移動制御を行う。
【解決手段】本実施の形態のゲーム装置1は、キャラクタの向きθcに対する移動方向を8方向に設定し、当該移動方向に基づいてキャラクタの移動制御を行う。キャラクタの向きθcに対する移動方向が左右斜め前の方向である場合は、キャラクタが徐々にその向きを変えながら移動していくように、移動制御及び回転制御を同時に行う。また、移動方向が直進の方向である場合は、キャラクタが直進するような移動制御のみを行う。さらに、移動方向が、横、左右斜め後ろ又は真後ろの方向である場合は、まずキャラクタの向きが移動方向に一致するように転回制御した後、キャラクタの向きに沿って直進するような移動制御を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、接続されたコントローラから入力される操作信号に基づいて、ゲーム空間中におけるキャラクタの移動を制御すると共に、前記ゲーム空間の画像を生成することにより、所与のゲームを実行させるためのプログラム等に関する。
【背景技術】
【0002】
従来から、ゲーム空間内にキャラクタを配置・移動させ、所与の視点から見たゲーム空間内の様子をゲーム画像として生成・表示するゲーム装置が知られている。このゲーム装置においては、よりリアル感のあるゲーム画像や、より興趣性のあるゲーム画像を生成するため、様々な処理が行われている。
【0003】
例えば、サッカーゲームなどのスポーツ系のゲームにおいては、プレーヤによりコントロールされるキャラクタの移動制御を、速度ベクトルを用いて、行うゲーム装置が知られている(例えば、特許文献1参照)。具体的には、速度ベクトルに対して、他のベクトルを加算等することにより、所定時間後にキャラクタが到達する位置座標を算出することで、キャラクタの向きの変更と位置変化とを同時に処理する移動制御を実現している。この結果、キャラクタの向きの変更速度と、キャラクタの位置変化の速度とを同調させることができるため、実際の競技者の動作に即した自然な制御が実現できる。
【特許文献1】特開2004−321598号公報
【0004】
一方、例えば、主人公と複数の仲間でパーティを組むようなRPG(ロールプレイングゲーム)においては、キャラクタの向きの変更と位置変化とを別個に処理することにより、キャラクタの移動制御を行うものが多い。例えば、キャラクタの向きを、指示された方向に即座に変更させた後、キャラクタの位置を変化させる移動制御を行う。つまり、キャラクタをプレーヤの意に即して速やかに位置変化させることができる。この結果、RPGの戦闘シーン等において状況に応じた戦略的な攻防を楽しむことができる。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した従来のゲームにおいては、何れもキャラクタの移動制御が全方位にわたって同様の制御方法により処理されるため、移動制御が単調になってしまっていた。例えば、RPGにおいて、ゲームストーリーを楽しみながらキャラクタがゲーム空間を前進していくような場合、キャラクタの移動制御はより自然なものが望まれる。一方で、戦闘シーン等の緊迫した場面、例えば、キャラクタが敵前から逃避行動を取る場合などは、即座に方向転換をして後方に移動させたいという要望もある。しかし、上述した従来のゲームにおいては、このような状況に応じた移動制御を行うことができず、キャラクタの自然な移動制御を行うか、キャラクタの機動的な移動制御を行うかの何れか一方が行われていた。
【0006】
本発明の課題は、キャラクタの自然な移動制御と、機動的な移動制御とを併合した移動制御を実現することである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、第1の発明は、
仮想空間内に配置されたキャラクタの向き及び移動の制御を、プレーヤの移動方向の指示操作に従って行うキャラ制御手段(例えば、図8のキャラクタ制御部221)としてコンピュータ(例えば、図1の家庭用ゲーム装置1)を機能させると共に、前記仮想空間の画像を生成させるためのプログラム(例えば、図8のキャラクタ制御処理プログラム302)であって、
前記指示操作による移動方向が前記キャラクタの現在の向きに沿った方向か否かを判定する方向判定手段(例えば、図8のキャラクタ制御部221)として前記コンピュータを更に機能させると共に、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合には前記キャラクタの向きを前記指示操作による移動方向に徐々に向けつつ前記キャラクタを移動させ、沿った方向でないと判定された場合には前記キャラクタの向きを前記指示操作による移動方向に即時に向けて前記キャラクタを移動させる制御を行うように前記コンピュータを機能させるためのプログラムである。
【0008】
第7の発明は、
仮想空間内に配置されたキャラクタの向き及び移動の制御を、プレーヤの移動方向の指示操作に従って行うキャラ制御手段(例えば、図8のキャラクタ制御部221)を備え、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置(例えば、図1の家庭用ゲーム装置1)であって、
前記指示操作による移動方向が前記キャラクタの現在の向きに沿った方向か否かを判定する方向判定手段(例えば、図8のキャラクタ制御部221)を更に備え、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合には前記キャラクタの向きを前記指示操作による移動方向に徐々に向けつつ前記キャラクタを移動させ、沿った方向でないと判定された場合には前記キャラクタの向きを前記指示操作による移動方向に即時に向けて前記キャラクタを移動させる制御を行うことを特徴とするゲーム装置である。
【0009】
第1の発明等によれば、方向判定手段により指示操作による移動方向がキャラクタの現在の向きに沿った方向であると判定された場合には、キャラクタの向きを移動方向に徐々に向けつつキャラクタを移動させるため、実際の人間の動作に即した自然な動きに近い移動を実現することができる。また、方向判定手段により移動方向がキャラクタの現在の向きに沿った方向でないと判定された場合には、キャラクタの向きを指示操作による移動方向に即時に向けてキャラクタを移動させるため、プレーヤの意思に即してキャラクタを機動的に移動制御することができる。このように、指示操作による移動方向とキャラクタの向きとに応じて、キャラクタの移動制御方法を変更することにより、キャラクタの自然な移動制御と、機動的な移動制御とを併せて実現することができる。
【0010】
第2の発明は、第1の発明のプログラムであって、
前記方向判定手段が、前記キャラクタの現在の向きに対する前記指示操作による移動方向の角度が所与の角度範囲内か否かに基づいて前記判定を行うように前記コンピュータを機能させるためのプログラムである。
【0011】
第2の発明によれば、方向判定手段は、指示操作による移動方向がキャラクタの向きに沿った方向であるか否かの判定を、キャラクタの現在の向きに対する移動方向の角度に基づいて判定する。これにより、プレーヤは自己の指示操作に基き、キャラクタの向きが徐々に移動方向に向けられて移動制御されるか、キャラクタの向きが即時に移動方向に向けられて移動制御されるかを容易に把握することができ、状況に応じて指示操作を行うことにより、プレーヤの意図を反映させたキャラクタの移動制御を行うことができる。
【0012】
第3の発明は、第2の発明のプログラムであって、
前記角度範囲を変更する角度範囲速度適応変更手段として前記コンピュータを更に機能させるためのプログラムである。
【0013】
第3の発明によれば、角度範囲を変更することにより、キャラクタの向きが徐々に移動方向に向けられて移動制御される場面を多くするか、キャラクタの向きが即時に移動方向に向けて移動制御される場面を多くするかを任意に変更することができる。
【0014】
第4の発明は、第3の発明のプログラムであって、
前記角度範囲速度適応変更手段が、前記キャラクタの移動速度に応じて、前記角度範囲を変更するように前記コンピュータを機能させるためのプログラムである。
【0015】
第4の発明によれば、キャラクタの移動速度に応じて、角度範囲を変更するため、例えば、キャラクタの移動速度が遅い場合、キャラクタの向きを徐々に移動方向に向けつつ移動制御される範囲が広くなるように角度範囲を変更することにより、キャラクタが自然に移動制御される場面を増やすことができる。一方、キャラクタの移動速度が速い場合、キャラクタの向きを即時に移動方向に向けて移動制御される範囲が広くなるように角度範囲を変更することにより、キャラクタが機動的に移動制御される場面を増やすことができる。
【0016】
第5の発明は、第1〜第4の発明のプログラムであって、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合に、前記キャラクタの向きを前記指示操作による移動方向に向ける速度を、前記キャラクタの移動速度に応じて変化させるように前記コンピュータを機能させるためのプログラムである。
【0017】
第5の発明によれば、キャラクタの向きを移動方向に向ける速度をキャラクタの移動速度に応じて変化させるため、より自然なキャラクタの移動制御を行うことができる。
【0018】
第6の発明は、第1〜第5の発明の何れかのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体(例えば、図8の記憶部30)である。
【0019】
第6の発明によれば、第1〜第5の発明と同様の作用効果を奏する情報記憶媒体を実現し得る。
【発明の効果】
【0020】
本発明によれば、キャラクタの自然な移動制御と、機動的な移動制御とを併合した移動制御を実現することができる。
【発明を実施するための最良の形態】
【0021】
以下、図面を参照して、本発明を実施するための最良の形態を説明する。なお、以下では、自キャラクタを操作することにより仮想3次元空間内を移動させる場合を例にとって説明するが、本発明の適用がこれに限定されるものではない。
【0022】
1.ゲーム装置の外観例
本実施の形態における家庭用ゲーム装置1について図を参照して説明する。図1は、本発明を家庭用ゲーム装置1に適用した一例を示す外観図である。図1に示すように、家庭用ゲーム装置1は、本体装置1100と、コントローラ1110,1110と、スピーカ1202を具備するディスプレイ1200と、を備える。コントローラ1110,1110は本体装置1100に接続され、ディスプレイ1200は、画像信号及び音信号を伝送可能なケーブルKによって本体装置1100に接続されている。
【0023】
また、本体装置1100は、例えばCPUやICメモリ等を搭載した制御ユニットや、CD−ROM1104等の情報記憶媒体の読取装置を具備する。そして、CD−ROM1104等から読み出したゲーム情報と、コントローラ1110,1110からの操作信号とに基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。さらに、生成した画像信号及び音信号をディスプレイ1200に出力して、ディスプレイ1200にゲーム画面を表示させると共に、スピーカ1202からゲーム音を出力させる。プレーヤは、ディスプレイ1200に表示されたゲーム画面を見ながら、コントローラ1110,1110を操作してゲームを楽しむ。
【0024】
本体装置1100がゲーム処理を行うために必要なプログラムやデータ等を含むゲーム情報等は、例えば本体装置1100に着脱自在な情報記憶媒体であるCD−ROM1104やICメモリ1106、メモリカード1108等に格納されている。
【0025】
コントローラ1110,1110は、プレーヤがゲーム操作等を入力するためのボタンスイッチ等を具備し、操作に応じた操作信号を本体装置1100に出力する。図2に、本実施形態におけるコントローラ1110の平面図を示す。図2に示すように、コントローラ1100は、左右に2つのグリップ1300a、1300bと、グリップ1300a、1300bの内側にそれぞれ設けられた操作スティック1500a、1500bを備える本体1400と、本体1400の表面上に設けられたボタン群1600と、から主に構成される。
【0026】
操作スティック1500aは、左手用の操作スティックであり、プレーヤがグリップ1300aを握った際に左手の親指が届く範囲に配置される。操作スティック1500bは、右手用の操作スティックであり、プレーヤがグリップ1300bを握った際に右手の親指が届く範囲に配置される。この操作スティック1500a、1500bは、真上に直立した位置が中立位置であって、360度の方向に傾斜し、且つ直立した状態で旋回可能であり、また、外力が加わらないときは中立位置に弾性保持される。操作スティック1500a、1500bがプレーヤに操作されると、操作スティック1500a、1500bが傾斜した傾斜角及び傾斜方向に応じた操作信号が本体装置1100に出力される。なお、操作スティック1500a、1500bの傾斜の検出方法は特に問わない。
【0027】
ボタン群1600は、左手ボタン群1600aと、右手ボタン群1600bとに分割され、それぞれプレーヤがグリップ1300a、1300bを握った際の左右の親指が届く範囲にそれぞれ配置される。左手ボタン群1600aには、4つの矢印ボタン←,↑,→,↓と、1つの補助ボタンL1が含まれ、右手ボタン群1600bには、4つの機能ボタン○,×,△,□と、1つの補助ボタンR1が含まれる。
【0028】
2.原理
本実施の形態においては、仮想三次元空間に背景やキャラクタ等の各種オブジェクトを配置して設定されたゲーム空間内で、プレーヤの操作入力に従ってキャラクタを移動させることにより、発生する様々なイベントをクリアしていくことでゲームが進行される。そして、所与の視点、例えば、プレーヤの操作対象となるキャラクタに追従するように設定された仮想カメラからゲーム空間を見た3DCGがゲーム画面としてディスプレイ1200に表示される。
【0029】
なお、仮想三次元空間はワールド座標系(XW,YW,ZW)を用いて構成され、仮想3次元空間に配置されるキャラクタは、独立したローカル座標系(XL,YL,ZL)を用いてその形状モデルが定義される。また、キャラクタの向きは、ワールド座標系を基準として定義されている。
【0030】
図3は、操作スティック1500aの傾斜入力である移動方向の指示操作(以下、操作スティック1500aの傾斜入力のことを「移動指示操作」という。)に基づくキャラクタの移動制御を説明するための図であり、キャラクタの向きに対して8種の方向に指示操作が入力された場合をそれぞれ説明する図である。ここで、8種の方向は、360°を8方向に等分した方向、すなわち、0°,45°,90°,135°,180°,225°,270°,315°の方向をいう。また、操作スティック1500aの傾斜入力により、移動方向の指示が成され、傾斜量(傾斜角度)により移動速度の指示がなされる。
【0031】
図3においては、仮想3次元空間においてY軸方向から俯瞰する仮想カメラの位置を固定とし、ゲーム空間を上方から俯瞰した画像を示している。以下ではX軸方向を図中上下方向で示し、Z軸方向を図中左右方向で示した2次元XZ座標系に基づいて説明する。また、角度の説明において、反時計回りの方向を+(プラス)方向、時計回りの方向を−(マイナス)方向と定義する。
【0032】
図3(a)は、キャラクタの向きがX軸正方向である場合に、移動指示操作による移動方向がX軸正方向に対して0°の方向(図中矢印101Aで示す方向)である場合のキャラクタの移動制御を示す図である。キャラクタ101aは、1フレーム毎にプレーヤの移動指示操作から算出される移動量に基づいて移動制御が行われる。これにより、キャラクタ101aは、1フレーム毎に図3(a)の△で示される位置に順々に移動制御される。
【0033】
図3(b)は、移動指示操作による移動方向がX軸正方向に対して+45°の方向(図中矢印102Aで示す方向)である場合のキャラクタの移動制御を示す図である。キャラクタ102aは、後述する移動ルール情報303から取得される転回角度に基づいて転回制御が行われると共に、プレーヤの移動指示操作から算出される移動量に基づいて移動制御が行われる。ここで、転回角度は、キャラクタの向きと、移動指示操作による移動方向との角度差よりも小さい角度(例えば、図3(b)では15°)が設定される。これにより、キャラクタ102aは、徐々にその向きを移動方向に転回させながら、1フレーム毎に図3(b)の△で示される位置に順々に移動制御される。
【0034】
図3(c)は、移動指示操作による移動方向がX軸正方向に対して-45°の方向(図中矢印103Aで示す方向)である場合のキャラクタの移動制御を示す図である。キャラクタ103aは、移動ルール情報303から取得される転回角度に基づいて転回制御が行われると共に、プレーヤの指示操作から算出される移動量に基づいて移動制御が行われる。ここで、転回角度は、キャラクタの向きと、移動指示操作による移動方向との角度差の絶対値よりも小さい角度(例えば、図3(c)では−15°)が設定される。これにより、キャラクタ103aは、徐々にその向きを移動方向に転回させながら、1フレーム毎に図3(c)の△で示される位置に順々に移動制御される。
【0035】
図3(d)は、移動指示操作による移動方向がX軸正方向に対して+90°の方向(図中矢印104Aで示す方向)である場合のキャラクタの移動制御を示す図である。キャラクタ104aは、1フレーム目において、プレーヤの移動指示操作から算出される移動方向(例えば、+90°の方向)に基づいてキャラクタの向きが転回制御される(図中矢印104B)。続いて、2フレーム目以降においてプレーヤの移動指示操作から算出される移動量に基づいて移動制御が行われる。これにより、キャラクタ104aは、プレーヤの移動指示操作による移動方向に即時に転回された後、転回後のキャラクタの向きと同一方向に直進するように移動制御される。
【0036】
図3(e)は、移動指示操作による移動方向がX軸正方向に対して−90°の方向(図中矢印105Aで示す方向)である場合のキャラクタの移動制御を示す図である。図3(d)の場合と同様に、キャラクタ105aは、1フレーム目において、プレーヤの移動指示操作から算出される移動方向(例えば、-90°の方向)に基づいてキャラクタの向きが転回制御され(図中矢印105B)、続いて、2フレーム目以降においてプレーヤの指示操作から算出される移動量に基づいて移動制御が行われる。
【0037】
図3(f)は、移動指示操作による移動方向がX軸正方向に対して±180°の方向(図中矢印106Aで示す方向)である場合のキャラクタの移動制御を示す図である。図3(f)に示すように、キャラクタ106aは、1フレーム目において、プレーヤの移動指示操作から算出される移動方向(例えば、+180°又は-180°の方向)に基づいてキャラクタの向きが転回制御される(図中矢印106B又は106C)。続いて、2フレーム目以降においてプレーヤの移動指示操作から算出される移動量に基づいて移動制御が行われる。
【0038】
図3(g)は、移動指示操作による移動方向がX軸方向に対して+135°の方向(図中矢印107Aで示す方向)である場合のキャラクタの移動制御を示す図である。図3(g)に示すように、キャラクタ107aは、1フレーム目において、プレーヤの指示操作から算出される移動方向(例えば、+135°の方向)に基づいてキャラクタの向きが転回制御され(図中矢印107B)、続いて、2フレーム目以降においてプレーヤの指示操作から算出される移動量に基づいて移動制御が行われる。また、図3(h)は、指示操作による移動方向がX軸方向に対して-135°の方向(図中矢印108Aで示す方向)である場合のキャラクタの移動制御を示す図であり、キャラクタ108aは、移動方向以外は、図3(g)の場合と同様に移動制御される。
【0039】
次に図4〜図7を参照して、プレーヤからの移動指示操作と、キャラクタの移動方向との関係について説明する。図4は、ゲーム空間内に配置されるキャラクタの向きを説明する図である。図4(a)に示すように、ゲーム空間内に配置されるキャラクタ109aの向きは、図中矢印109Aで示される。この矢印109Aと、ワールド座標系のX軸正方向との成す角度が、キャラクタの向きθcとなる(図4(b)参照)。なお、キャラクタの向きθcは、反時計回り方向を+(プラス)、時計回り方向を−(マイナス)として、−180°≦θc<180°で示す。
【0040】
図5は、プレーヤの指示操作と入力角θiとの関係を説明する図である。図5(a)に示すように、操作スティック1500aの中立位置を基準として、前後方向は、ワールド座標系のX軸方向に該当し、左右方向は、ワールド座標系のZ軸方向に該当する。従って、操作された操作スティック1500aからの操作信号は、前後方向の座標を示すX値と左右方向の座標を示すZ値とを含む。図5(a)に示すように、操作スティック1500aが操作された場合、操作信号は、図5(b)に示すX値とZ値で示されるポイントP(x1,z1)に変換される。そして、X軸正方向と原点からポイントPを結ぶ線分との成す角が、入力角θiとなる。なお、入力角θiは、反時計回り方向を+、時計回り方向を−として、−180°≦θi<180°で示す。
【0041】
図6は、キャラクタの向きθcと、入力角θiとの関係を説明する図である。図6に示すように、ワールド座標系を基準として、キャラクタの向きθcと、入力角θiとの角度差が、相対入力角θrとなる。すなわち、この相対入力角θrは、キャラクタの向きθcを、ワールド座標系のX軸正方向に一致させた場合に、プレーヤの指示操作から求められた入力角θiを、相対的な角度として示すものである。なお、相対入力角θrは、θr=θi−θcとして、−180°≦θr<180°で示す。
【0042】
次に、図7を参照して、キャラクタの移動方向と、相対入力角θrとの関係を説明する。図7において、実線で示された角度はキャラクタの移動方向を示し、点線により区分された範囲は相対入力角θrの範囲を示している。また、図7に示す0°の方向と、キャラクタの向きθcとは一致しているものとする。
【0043】
図7において、相対入力角θrの範囲は、例えば、−22.5°〜+22.5°,+22.5°〜+67.5°,…として、45°単位で区切られている。また、キャラクタに対する移動指示操作による移動方向は、相対入力角θrの範囲の中央値が設定される。例えば、相対入力角θrが、−22.5°〜+22.5°の範囲内にある場合、キャラクタに対する移動指示操作による移動方向は0°の方向、すなわち、キャラクタの向きθcと同一の方向に設定される。また、相対入力角θrが+22.5°〜+67.5°の範囲にある場合、キャラクタに対する移動指示操作による移動方向は+45°の方向に設定される。
【0044】
また、各移動方向に対応付けられる符号(a)〜(h)は、図3の(a)〜(h)と対応しており、各移動方向と移動方法とがそれぞれ対応付けられている。例えば、移動方向が0°の方向の場合は、上述した図3(a)に示す方法により移動制御され、移動方向が45度の場合は、上述した図3(b)に示す移動制御されるというようにそれぞれ対応付けられている。
【0045】
従って、図7に示す8種の移動方向のうち、±45°の移動方向、すなわち、相対入力角θrが+22.5°〜+67.5°又は−67.5°〜−22.5°の範囲内にある場合、最初の1フレームの間に転回制御及び移動制御が同時に行われる。また、0°の移動方向、すなわち、相対入力角θrが−22.5〜+22.5°の範囲内にある場合、最初の1フレームの間は移動制御のみが行われる。さらに、±90°、±135°、±180°の移動方向、すなわち、相対入力角θrが+67.5°〜−67.5°の範囲内にある場合、最初の1フレームの間は転回制御のみが行われる。
【0046】
このように、プレーヤの指示操作とキャラクタの向きとに基づく相対入力角θrに応じて、キャラクタの移動制御を行うことにより、キャラクタの自然な移動制御と、機動的な移動制御とを、選択的に行うことができる。これにより、キャラクタの多様な移動制御を実現することができる。
【0047】
3.機能構成
次に、本実施形態における家庭用ゲーム装置1の機能構成について説明する。図8は、本実施の形態の家庭用ゲーム装置1の内部構成の一例を示すブロック図である。図8に示すように、家庭用ゲーム装置1は、操作部10、処理部20、記憶部30、表示部40、音出力部50等を備えて構成され、ビデオゲームを実行してゲーム画像を生成し、生成したゲーム画像を表示部40に表示させる。
【0048】
操作部10は、プレーヤによる操作指示を受け付け、操作に応じた操作信号を処理部20に出力する。この機能は、例えばボタンや操作スティック、ダイヤル、マウス、キーボード、各種センサ等によって実現される。図1ではコントローラ1110,1110がこれに相当する。
【0049】
処理部20は、家庭用ゲーム装置1全体の制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)、ASIC(ゲートアレイ等)等の演算装置やその制御プログラムにより実現される。図1では、本体装置1100に具備される制御ユニットがこれに相当する。
【0050】
また、処理部20は、主にゲームに係る演算処理を行うゲーム演算部22と、ゲーム演算部22の処理によって求められた各種のデータに基づき、仮想カメラ等の所与の視点から見た仮想三次元空間(ゲーム空間)の画像の生成及びゲーム画面を表示させるための画像信号の生成を実行する画像生成部24と、効果音やBGM等のゲーム音の生成及びゲーム音を出力させるための音信号の生成を実行する音生成部26と、を含んでいる。
【0051】
ゲーム演算部22は、主な機能部として、キャラクタ制御部221を含む。キャラクタ制御部221は、キャラクタ制御処理プログラム302に従ってキャラクタ制御処理を実行し、プレーヤの指示操作に基づいて、キャラクタのゲーム空間中での移動を制御する。
【0052】
画像生成部24は、例えばCPUやDSP等の演算装置やその制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部24は、ゲーム演算部22による演算結果に基づき、幾何変換処理やシェーディング処理等を実行してゲーム画面を表示するためのゲーム画像(3DCG画像)を生成し、生成した画像の画像信号を表示部40に出力する。
【0053】
表示部40は、画像生成部24からの画像信号に基づいて、例えば1/60秒毎に1フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばCRT、LCD、ELD、PDP、HMD等のハードウェアによって実現される。図1では、ディスプレイ1200がこれに相当する。
【0054】
音生成部26は、例えばCPUやDSP等の演算装置及びその制御プログラムによって実現され、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部50に出力する。
【0055】
音出力部50は、音生成部26からの音信号に基づいて、BGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図1では、スピーカ1202がこれに相当する。
【0056】
記憶部30は、処理部20に家庭用ゲーム装置1を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶すると共に、処理部20の作業領域として用いられ、処理部20が各種プログラムに従って実行した演算結果や操作部10から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。図1では、本体装置1100が具備するCD−ROM1104、ICメモリ1106、メモリカード1108がこれに該当する。
【0057】
また、記憶部30は、処理部20をゲーム演算部22として機能させるためのゲームプログラム及びゲームデータを記憶する。具体的には、ゲームプログラムとして、ゲーム演算プログラム301、キャラクタ制御処理プログラム302を記憶する。また、ゲームデータとして、移動ルール情報303、操作データ304、キャラクタ情報305、を記憶している。
【0058】
ゲーム演算プログラム301は、処理部20をゲーム演算部22として機能させるためのプログラムであり、キャラクタ制御処理プログラム302は、ゲーム演算部22をキャラクタ制御部221として機能させるためのプログラムである。
【0059】
移動ルール情報303は、キャラクタの向きθcと、プレーヤの移動指示操作による入力角θiとの角度差、すなわち相対入力角θrに対応する移動ルールを記憶している。図9に移動ルール情報303のデータ構成例を示す。図9において、相対入力角θrには、例えば、−22.5°〜+22.5といった所与の角度範囲が記憶され、当該範囲に対応づけて、転回制御ルール及び移動制御ルールが記憶される。転回制御ルールには、キャラクタの向きを転回させる場合、例えば、「キャラクタの向きを+10°回転」といった指示が記憶され、キャラクタの向きを転回させない場合、データは記憶されない。また、移動制御ルールには、キャラクタを移動させる場合、例えば、「操作量に応じて移動制御」といった指示が記憶され、キャラクタを移動させない場合、データは記憶されない。
【0060】
操作データ304は、プレーヤの指示操作から算出される操作データを記憶している。図10に、操作データ304のデータ構成例を示す。図10において、操作データ304には、操作スティック1500aの前後方向及び左右方向の操作に応じて算出される入力角(例えば、「θi」)と、操作スティック1500aの傾斜角に応じて算出される操作量(例えば、「Ni」)が更新可能に記憶されている。
【0061】
キャラクタ情報305は、ゲーム空間内に配置されるプレーヤの操作対象のキャラクタの位置情報及びキャラクタの向きθcを記憶している。図11にキャラクタ情報305のデータ構成例を示す。図11において、キャラクタ情報305には、操作対象キャラクタを特定するためのキャラクタID(例えば、キャラクタEa)に対応づけて、当該キャラクタの位置情報(例えば、「X1,Z1」)と、当該キャラクタの向き(例えば、「θc」)とが更新可能に記憶されている。
【0062】
4.処理の流れ
本実施形態における処理の流れについて説明する。
図12は、キャラクタ制御部221がキャラクタ制御処理プログラム302を実行することで実現されるキャラクタ制御処理を示すフローチャートである。処理中のループAは、ゲーム中、1フレーム(1/60秒)毎に繰り返し実行されるループである。
【0063】
図12において、キャラクタ制御処理では、まず、プレーヤによる操作スティック1500aにより移動指示操作が行われると(ステップS2;YES)、操作データ304を更新して(ステップS4)、入力角θiを取得する(ステップS6)。
【0064】
また、キャラクタ情報305からプレーヤの操作対象キャラクタの向きθcを取得して(ステップS8)、入力角θiと、キャラクタの向きθcとから相対入力角θrを算出する(ステップS10)。続いて、移動ルール情報303から算出した相対入力角θrに応じた移動ルールを取得する(ステップS12)。
【0065】
キャラクタ制御部221は、取得した移動ルールの移動制御ルールに従って、キャラクタを移動制御するか否かを判別する(ステップS14)。ここで、移動制御するか否かの判別は、移動ルール303に移動制御ルールが記憶されているか否かに基づいて判別される。移動ルール303に移動制御ルールが記憶されている場合、キャラクタを移動制御すると判別し(ステップS14;YES)、キャラクタの移動制御が直進移動か否かを判別する(ステップS18)。ここで、直進移動か否かの判別は、移動ルール303に転回制御ルールが記憶されているか否かに基づいて判別される。
【0066】
転回制御ルールが記憶されていない場合、キャラクタを転回させない、すなわち、キャラクタを直進させると判別して(ステップS18;YES)、操作データ304から操作量を取得して、操作量に基づいてキャラクタの位置情報を更新する(ステップS20)。
【0067】
一方、転回制御ルールが記憶されている場合、キャラクタを転回させる、すなわち、キャラクタを直進させないと判別して(ステップS18;NO)、転回制御ルールの転回角度に基づいて、キャラクタの向きを更新する(ステップS22)。さらに、操作データ304の操作量に基づいてキャラクタの位置情報を更新する(ステップS24)。
【0068】
また、ステップS14に戻り、移動ルール303に移動制御ルールが記憶されていない場合、キャラクタの移動制御を行わないと判別して(ステップS14;NO)、転回制御ルールの転回角度に基づいて、キャラクタの向きを更新する(ステップS16)。
【0069】
そして、キャラクタ制御部221は、キャラクタ情報305に記憶されている位置情報及びキャラクタの向きに従って、ゲーム空間内にキャラクタを配置する(ステップS26)。以上の処理を毎フレーム単位で繰り返して実行する。
【0070】
5.ハードウェア構成
次に、本実施の形態におけるゲーム装置1を実現するためのハードウェア構成の一例について図13を参照して説明する。図13に示すハードウェア構成では、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、画像生成IC1010、音生成IC1008、I/Oポート1012、1014を備え、各部がシステムバス1016により相互にデータ入出力可能に接続されている。また、I/Oポート1012には入力装置1022が、I/Oポート1014には通信装置1024が、それぞれ接続されている。
【0071】
CPU1000は、情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、入力装置1022によって入力される信号等に従って、機器全体の制御や各種データ処理を行う。このCPU1000は、図8に示す処理部20に相当する。
【0072】
RAM1004は、CPU1000の作業領域等として用いられる記憶部であり、情報記憶媒体1006やROM1002内の所与の内容、CPU1000の演算結果等が格納される。このRAM1004は、図8に示す記憶部30の一部を構成するものである。
【0073】
情報記憶媒体1006は、プログラム、画像データ、音データ、プレイデータ等が主に格納されるものである。この情報記憶媒体1006は、図8に示す記憶部30の一部を構成するものである。本実施の形態を実現するものがコンピュータシステムである場合には、情報記憶媒体1006は、キャラクタ制御処理プログラム302などを格納する情報記憶媒体としてのCD−ROM、DVD或いはハードディスク等が用いられる。
【0074】
また、この装置に設けられている画像生成IC1010と音生成IC1008により、音や画像の好適な出力が行えるようになっている。
【0075】
画像生成IC1010は、CPU1000の命令によって、ROM1002、RAM1004、情報記憶媒体1006等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される表示信号は表示装置1026に出力される。表示装置1026は、CRT、LCD、ELD、PDP、HMD等により実現され、図8に示す表示部40に相当する。
【0076】
また、音生成IC1008は、CPU1000の命令によって、情報記憶媒体1006やROM1002に記憶される情報、RAM1004に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ1020によって出力される。スピーカ1020は、図8に示す音出力部50に相当する。
【0077】
入力装置1022は、各種操作を入力するための装置であり、その機能は、レバー、ボタン、タッチパネル等のハードウェアにより実現される。この入力装置1022は、図8に示す操作部10に相当する。
【0078】
通信装置1024は装置内部で利用される情報を外部とやりとりするものであり、他の装置と通信回線を介して接続されてプログラムに応じた所与の情報を送受すること等に利用される。
【0079】
6.作用・効果
以上のように、本実施の形態のゲーム装置1は、キャラクタの向きθcに対する移動方向を8方向に設定し、当該移動方向に基づいてキャラクタの移動制御を行う。例えば、キャラクタの向きθcに対する移動方向が左右斜め前の方向(例えば、キャラクタの向きを0°として±45°の方向)である場合は、キャラクタが徐々にその向きを変えながら移動していくように、移動制御及び回転制御を同時に行う。また、移動方向が直進の方向(例えば、キャラクタの向きを0°として0°の方向)である場合は、キャラクタが直進するような移動制御のみを行う。さらに、移動方向が、横、左右斜め後ろ又は真後ろの方向(例えば、キャラクタの向きを0°として±90°、±135°又は±180°の方向)である場合は、まずキャラクタの向きが移動方向に一致するように転回制御した後、キャラクタの向きに沿って直進するような移動制御を行う。
【0080】
より具体的には、キャラクタの向きθcと、プレーヤの移動指示操作による移動方向(入力角θi)との角度差(相対入力角θr)に対応付けて移動制御ルール及び転回制御ルールを記憶する移動ルール情報303を有し、相対入力角θrに対応する移動制御ルール及び転回制御ルールに基づいたキャラクタの移動制御を行う。例えば、相対入力角θrが+22.5°〜+67.5°又は−67.5〜−22.5°の場合、最初の1フレームの間に転回制御と移動制御を行う。また、相対入力角θrが−22.5°〜+22.5°の場合、最初の1フレームの間に移動制御のみを行い、相対入力角θrが+67.5°〜+180°又は−180°〜−67.5°の場合、最初の1フレームの間に回転制御のみを行う。
【0081】
従って、キャラクタが左右斜め前方に移動するような場合は、キャラクタの向きを移動方向に徐々に向けつつキャラクタを移動させることにより、実際の人間の動作に即した自然な動きに近い移動を実現することができる。また、キャラクタが横方向や斜め後ろ、真後ろ方向に移動するような場合は、キャラクタの向きを移動指示操作による移動方向に即時に向けてキャラクタを移動させるため、プレーヤの意思に即してキャラクタを機動的に移動制御することができる。このように、移動指示操作による移動方向とキャラクタの向きとに応じて、キャラクタの移動制御方法を変更することにより、キャラクタの自然な移動制御と、機動的な移動制御とを併せて実現することができる。
【0082】
また、移動ルール情報303は、転回制御ルール及び移動制御ルールを、相対入力角θiに対応付けて記憶している。これにより、プレーヤは自己の移動指示操作による移動方向と、キャラクタの向きとがなす角度に基き、キャラクタの向きが徐々に移動方向に向けられて移動制御されるか、キャラクタの向きが即時に移動方向に向けられて移動制御されるかを容易に把握することができる。従って、状況に応じて移動指示操作を行うことで、プレーヤの意図を反映させたキャラクタの移動制御を行うことができる。
【0083】
7.変形例
本発明についての好適な実施形態の一例について説明したが、本発明は、上記したものに限らず、発明の趣旨を逸脱しない限りにおいて適宜変更可能である。例えば、本実施の形態においては、キャラクタの移動方向を8方向とし、転回制御及び移動制御が行われる相対入力角θrの範囲を+22.5°〜+67.5°又は−22.5°〜−67.5°としたが、キャラクタの移動方向、相対入力角θrの範囲等は上述した例に限定されない。
【0084】
また、転回制御及び移動制御が行われる相対入力角θiの角度範囲を他の角度範囲としてもよいし、更にゲームの進行(例えば、特定のゲーム場面)やプレーヤの設定操作等に応じて変更するように構成してもよい。例えば、移動ルール情報303に記憶されている相対入力角θrの範囲について、転回制御及び移動制御が同時に行われる相対入力角θrの範囲を+22.5°〜+67.5°から+10°〜+90°、−67.5°〜−22.5°〜−90°〜−10°に設定変更する。或いは、相対入力角θiの角度範囲+67.5°〜+180及び−180°〜−67.5°の移動制御ルールを「操作量に応じて移動制御」といった移動制御ルールに設定変更する。
【0085】
このように、転回制御及び移動制御が行われる相対入力角θrの範囲を広げた場合、キャラクタの自然な移動制御の場面を多くするといったことができる。一方、転回制御及び移動制御が行われる相対入力角の範囲を狭くした場合には、キャラクタの機動的な移動制御の場面を多くするといったことができる。この結果、多様なゲームシーンに適応した様々なキャラクタの移動態様を実現することができる。
【0086】
また、1フレーム間に転回制御及び移動制御を行う場合に、各フレーム間における転回角度は+10°又は−10°である場合を例として説明したが、転回角度は、少なくとも相対入力角θrより小さい角度であれば良く、上述した例に限定されない。例えば、転回角度を+10°より小さくした場合、1フレーム間におけるキャラクタの向きの変化が細かくなるため、キャラクタの方向変化を連続的で自然な動きとして実現することができる。しかし、極度に転回角度を小さくすると、急激な方向転換を行えない、処理負荷が大きくなるといったデメリットが生じる。また、転回角度を+10°より大きくした場合、即時にキャラクタの向きを転回させて、計算負荷を小さくすることができる。しかし、転回角度が相対入力角θrに近づくほど、キャラクタの方向変化が断続的となるため、転回制御及び移動制御を同時に行うことにより、キャラクタの自然な移動制御を実現するといった効果を十分に発揮できない。
【0087】
さらに、キャラクタの移動速度に応じて転回角度が可変に設定される構成であっても良い。例えば、記憶部30は、キャラクタの移動速度と、転回角度とを対応付けたテーブルを予め記憶しておく。プレーヤによる移動指示操作に含まれる操作量からキャラクタの移動速度を算出し、算出されたキャラクタの移動速度に対応する転回角度を取得する。そして、取得した転回角度と、移動ルール情報303に記憶される転回制御ルールとに基づいて、キャラクタの移動制御を行う。これにより、例えば、キャラクタの移動速度が速いほど転回角度が大きくなるように設定した場合、機動的に移動するキャラクタの動きに合わせてキャラクタの向きを速やかに変化させることができる。また、キャラクタの移動速度が遅いほど転回角度が小さくなるように設定した場合、ゆっくりと移動するキャラクタの動きに合わせてキャラクタの向き徐々に変化させることができ、より自然な移動制御を実現することができる。
【0088】
また、上述した実施形態では、家庭用ゲーム装置を例に挙げて説明したが、本発明を適用可能な装置は、これに限られず、業務用のゲーム装置の他、携帯型のゲーム装置、PDA等の装置であってもよいことは勿論である。
【0089】
さらに、上述した実施形態では、操作スティック1500aを用いてプレーヤの移動指示操作を入力する場合について説明を行ったが、移動指示操作の入力手段は、上述した例に限定されない。例えば、図2に示すボタン群1600aに含まれる4つの矢印キーにより、8方向の移動指示操作を入力可能な構成としても良い。この構成によれば、ボタンを押すだけで簡単に8方向の移動指示操作が行えるため、アナログスティックの操作に不慣れなプレーヤでも簡単にゲームを楽しむことができる。
【図面の簡単な説明】
【0090】
【図1】本実施の形態における家庭用ゲーム装置の概観図。
【図2】ゲームコントローラの概観図。
【図3】本実施の形態の原理を説明する図。
【図4】キャラクタの向きを説明する図。
【図5】操作スティックによる指示操作と入力角との関係を説明する図。
【図6】相対入力角を説明する図。
【図7】相対入力角とキャラクタの移動方向との関係を説明する図。
【図8】家庭用ゲーム装置の機能ブロック図。
【図9】移動ルール情報のデータ構成例を示す図。
【図10】操作データのデータ構成例を示す図。
【図11】キャラクタ情報のデータ構成例を示す図。
【図12】キャラクタ制御処理を示すフローチャート。
【図13】ハードウェア構成の一例を示す図。
【符号の説明】
【0091】
10 操作部
20 処理部
22 ゲーム演算部
221 キャラクタ制御部
24 画像生成部
26 音生成部
30 記憶部
301 ゲーム処理プログラム
302 キャラクタ制御処理プログラム
303 移動ルール情報
304 操作データ
305 キャラクタ情報
40 表示部
50 音出力部
【技術分野】
【0001】
本発明は、接続されたコントローラから入力される操作信号に基づいて、ゲーム空間中におけるキャラクタの移動を制御すると共に、前記ゲーム空間の画像を生成することにより、所与のゲームを実行させるためのプログラム等に関する。
【背景技術】
【0002】
従来から、ゲーム空間内にキャラクタを配置・移動させ、所与の視点から見たゲーム空間内の様子をゲーム画像として生成・表示するゲーム装置が知られている。このゲーム装置においては、よりリアル感のあるゲーム画像や、より興趣性のあるゲーム画像を生成するため、様々な処理が行われている。
【0003】
例えば、サッカーゲームなどのスポーツ系のゲームにおいては、プレーヤによりコントロールされるキャラクタの移動制御を、速度ベクトルを用いて、行うゲーム装置が知られている(例えば、特許文献1参照)。具体的には、速度ベクトルに対して、他のベクトルを加算等することにより、所定時間後にキャラクタが到達する位置座標を算出することで、キャラクタの向きの変更と位置変化とを同時に処理する移動制御を実現している。この結果、キャラクタの向きの変更速度と、キャラクタの位置変化の速度とを同調させることができるため、実際の競技者の動作に即した自然な制御が実現できる。
【特許文献1】特開2004−321598号公報
【0004】
一方、例えば、主人公と複数の仲間でパーティを組むようなRPG(ロールプレイングゲーム)においては、キャラクタの向きの変更と位置変化とを別個に処理することにより、キャラクタの移動制御を行うものが多い。例えば、キャラクタの向きを、指示された方向に即座に変更させた後、キャラクタの位置を変化させる移動制御を行う。つまり、キャラクタをプレーヤの意に即して速やかに位置変化させることができる。この結果、RPGの戦闘シーン等において状況に応じた戦略的な攻防を楽しむことができる。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した従来のゲームにおいては、何れもキャラクタの移動制御が全方位にわたって同様の制御方法により処理されるため、移動制御が単調になってしまっていた。例えば、RPGにおいて、ゲームストーリーを楽しみながらキャラクタがゲーム空間を前進していくような場合、キャラクタの移動制御はより自然なものが望まれる。一方で、戦闘シーン等の緊迫した場面、例えば、キャラクタが敵前から逃避行動を取る場合などは、即座に方向転換をして後方に移動させたいという要望もある。しかし、上述した従来のゲームにおいては、このような状況に応じた移動制御を行うことができず、キャラクタの自然な移動制御を行うか、キャラクタの機動的な移動制御を行うかの何れか一方が行われていた。
【0006】
本発明の課題は、キャラクタの自然な移動制御と、機動的な移動制御とを併合した移動制御を実現することである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、第1の発明は、
仮想空間内に配置されたキャラクタの向き及び移動の制御を、プレーヤの移動方向の指示操作に従って行うキャラ制御手段(例えば、図8のキャラクタ制御部221)としてコンピュータ(例えば、図1の家庭用ゲーム装置1)を機能させると共に、前記仮想空間の画像を生成させるためのプログラム(例えば、図8のキャラクタ制御処理プログラム302)であって、
前記指示操作による移動方向が前記キャラクタの現在の向きに沿った方向か否かを判定する方向判定手段(例えば、図8のキャラクタ制御部221)として前記コンピュータを更に機能させると共に、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合には前記キャラクタの向きを前記指示操作による移動方向に徐々に向けつつ前記キャラクタを移動させ、沿った方向でないと判定された場合には前記キャラクタの向きを前記指示操作による移動方向に即時に向けて前記キャラクタを移動させる制御を行うように前記コンピュータを機能させるためのプログラムである。
【0008】
第7の発明は、
仮想空間内に配置されたキャラクタの向き及び移動の制御を、プレーヤの移動方向の指示操作に従って行うキャラ制御手段(例えば、図8のキャラクタ制御部221)を備え、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置(例えば、図1の家庭用ゲーム装置1)であって、
前記指示操作による移動方向が前記キャラクタの現在の向きに沿った方向か否かを判定する方向判定手段(例えば、図8のキャラクタ制御部221)を更に備え、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合には前記キャラクタの向きを前記指示操作による移動方向に徐々に向けつつ前記キャラクタを移動させ、沿った方向でないと判定された場合には前記キャラクタの向きを前記指示操作による移動方向に即時に向けて前記キャラクタを移動させる制御を行うことを特徴とするゲーム装置である。
【0009】
第1の発明等によれば、方向判定手段により指示操作による移動方向がキャラクタの現在の向きに沿った方向であると判定された場合には、キャラクタの向きを移動方向に徐々に向けつつキャラクタを移動させるため、実際の人間の動作に即した自然な動きに近い移動を実現することができる。また、方向判定手段により移動方向がキャラクタの現在の向きに沿った方向でないと判定された場合には、キャラクタの向きを指示操作による移動方向に即時に向けてキャラクタを移動させるため、プレーヤの意思に即してキャラクタを機動的に移動制御することができる。このように、指示操作による移動方向とキャラクタの向きとに応じて、キャラクタの移動制御方法を変更することにより、キャラクタの自然な移動制御と、機動的な移動制御とを併せて実現することができる。
【0010】
第2の発明は、第1の発明のプログラムであって、
前記方向判定手段が、前記キャラクタの現在の向きに対する前記指示操作による移動方向の角度が所与の角度範囲内か否かに基づいて前記判定を行うように前記コンピュータを機能させるためのプログラムである。
【0011】
第2の発明によれば、方向判定手段は、指示操作による移動方向がキャラクタの向きに沿った方向であるか否かの判定を、キャラクタの現在の向きに対する移動方向の角度に基づいて判定する。これにより、プレーヤは自己の指示操作に基き、キャラクタの向きが徐々に移動方向に向けられて移動制御されるか、キャラクタの向きが即時に移動方向に向けられて移動制御されるかを容易に把握することができ、状況に応じて指示操作を行うことにより、プレーヤの意図を反映させたキャラクタの移動制御を行うことができる。
【0012】
第3の発明は、第2の発明のプログラムであって、
前記角度範囲を変更する角度範囲速度適応変更手段として前記コンピュータを更に機能させるためのプログラムである。
【0013】
第3の発明によれば、角度範囲を変更することにより、キャラクタの向きが徐々に移動方向に向けられて移動制御される場面を多くするか、キャラクタの向きが即時に移動方向に向けて移動制御される場面を多くするかを任意に変更することができる。
【0014】
第4の発明は、第3の発明のプログラムであって、
前記角度範囲速度適応変更手段が、前記キャラクタの移動速度に応じて、前記角度範囲を変更するように前記コンピュータを機能させるためのプログラムである。
【0015】
第4の発明によれば、キャラクタの移動速度に応じて、角度範囲を変更するため、例えば、キャラクタの移動速度が遅い場合、キャラクタの向きを徐々に移動方向に向けつつ移動制御される範囲が広くなるように角度範囲を変更することにより、キャラクタが自然に移動制御される場面を増やすことができる。一方、キャラクタの移動速度が速い場合、キャラクタの向きを即時に移動方向に向けて移動制御される範囲が広くなるように角度範囲を変更することにより、キャラクタが機動的に移動制御される場面を増やすことができる。
【0016】
第5の発明は、第1〜第4の発明のプログラムであって、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合に、前記キャラクタの向きを前記指示操作による移動方向に向ける速度を、前記キャラクタの移動速度に応じて変化させるように前記コンピュータを機能させるためのプログラムである。
【0017】
第5の発明によれば、キャラクタの向きを移動方向に向ける速度をキャラクタの移動速度に応じて変化させるため、より自然なキャラクタの移動制御を行うことができる。
【0018】
第6の発明は、第1〜第5の発明の何れかのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体(例えば、図8の記憶部30)である。
【0019】
第6の発明によれば、第1〜第5の発明と同様の作用効果を奏する情報記憶媒体を実現し得る。
【発明の効果】
【0020】
本発明によれば、キャラクタの自然な移動制御と、機動的な移動制御とを併合した移動制御を実現することができる。
【発明を実施するための最良の形態】
【0021】
以下、図面を参照して、本発明を実施するための最良の形態を説明する。なお、以下では、自キャラクタを操作することにより仮想3次元空間内を移動させる場合を例にとって説明するが、本発明の適用がこれに限定されるものではない。
【0022】
1.ゲーム装置の外観例
本実施の形態における家庭用ゲーム装置1について図を参照して説明する。図1は、本発明を家庭用ゲーム装置1に適用した一例を示す外観図である。図1に示すように、家庭用ゲーム装置1は、本体装置1100と、コントローラ1110,1110と、スピーカ1202を具備するディスプレイ1200と、を備える。コントローラ1110,1110は本体装置1100に接続され、ディスプレイ1200は、画像信号及び音信号を伝送可能なケーブルKによって本体装置1100に接続されている。
【0023】
また、本体装置1100は、例えばCPUやICメモリ等を搭載した制御ユニットや、CD−ROM1104等の情報記憶媒体の読取装置を具備する。そして、CD−ROM1104等から読み出したゲーム情報と、コントローラ1110,1110からの操作信号とに基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。さらに、生成した画像信号及び音信号をディスプレイ1200に出力して、ディスプレイ1200にゲーム画面を表示させると共に、スピーカ1202からゲーム音を出力させる。プレーヤは、ディスプレイ1200に表示されたゲーム画面を見ながら、コントローラ1110,1110を操作してゲームを楽しむ。
【0024】
本体装置1100がゲーム処理を行うために必要なプログラムやデータ等を含むゲーム情報等は、例えば本体装置1100に着脱自在な情報記憶媒体であるCD−ROM1104やICメモリ1106、メモリカード1108等に格納されている。
【0025】
コントローラ1110,1110は、プレーヤがゲーム操作等を入力するためのボタンスイッチ等を具備し、操作に応じた操作信号を本体装置1100に出力する。図2に、本実施形態におけるコントローラ1110の平面図を示す。図2に示すように、コントローラ1100は、左右に2つのグリップ1300a、1300bと、グリップ1300a、1300bの内側にそれぞれ設けられた操作スティック1500a、1500bを備える本体1400と、本体1400の表面上に設けられたボタン群1600と、から主に構成される。
【0026】
操作スティック1500aは、左手用の操作スティックであり、プレーヤがグリップ1300aを握った際に左手の親指が届く範囲に配置される。操作スティック1500bは、右手用の操作スティックであり、プレーヤがグリップ1300bを握った際に右手の親指が届く範囲に配置される。この操作スティック1500a、1500bは、真上に直立した位置が中立位置であって、360度の方向に傾斜し、且つ直立した状態で旋回可能であり、また、外力が加わらないときは中立位置に弾性保持される。操作スティック1500a、1500bがプレーヤに操作されると、操作スティック1500a、1500bが傾斜した傾斜角及び傾斜方向に応じた操作信号が本体装置1100に出力される。なお、操作スティック1500a、1500bの傾斜の検出方法は特に問わない。
【0027】
ボタン群1600は、左手ボタン群1600aと、右手ボタン群1600bとに分割され、それぞれプレーヤがグリップ1300a、1300bを握った際の左右の親指が届く範囲にそれぞれ配置される。左手ボタン群1600aには、4つの矢印ボタン←,↑,→,↓と、1つの補助ボタンL1が含まれ、右手ボタン群1600bには、4つの機能ボタン○,×,△,□と、1つの補助ボタンR1が含まれる。
【0028】
2.原理
本実施の形態においては、仮想三次元空間に背景やキャラクタ等の各種オブジェクトを配置して設定されたゲーム空間内で、プレーヤの操作入力に従ってキャラクタを移動させることにより、発生する様々なイベントをクリアしていくことでゲームが進行される。そして、所与の視点、例えば、プレーヤの操作対象となるキャラクタに追従するように設定された仮想カメラからゲーム空間を見た3DCGがゲーム画面としてディスプレイ1200に表示される。
【0029】
なお、仮想三次元空間はワールド座標系(XW,YW,ZW)を用いて構成され、仮想3次元空間に配置されるキャラクタは、独立したローカル座標系(XL,YL,ZL)を用いてその形状モデルが定義される。また、キャラクタの向きは、ワールド座標系を基準として定義されている。
【0030】
図3は、操作スティック1500aの傾斜入力である移動方向の指示操作(以下、操作スティック1500aの傾斜入力のことを「移動指示操作」という。)に基づくキャラクタの移動制御を説明するための図であり、キャラクタの向きに対して8種の方向に指示操作が入力された場合をそれぞれ説明する図である。ここで、8種の方向は、360°を8方向に等分した方向、すなわち、0°,45°,90°,135°,180°,225°,270°,315°の方向をいう。また、操作スティック1500aの傾斜入力により、移動方向の指示が成され、傾斜量(傾斜角度)により移動速度の指示がなされる。
【0031】
図3においては、仮想3次元空間においてY軸方向から俯瞰する仮想カメラの位置を固定とし、ゲーム空間を上方から俯瞰した画像を示している。以下ではX軸方向を図中上下方向で示し、Z軸方向を図中左右方向で示した2次元XZ座標系に基づいて説明する。また、角度の説明において、反時計回りの方向を+(プラス)方向、時計回りの方向を−(マイナス)方向と定義する。
【0032】
図3(a)は、キャラクタの向きがX軸正方向である場合に、移動指示操作による移動方向がX軸正方向に対して0°の方向(図中矢印101Aで示す方向)である場合のキャラクタの移動制御を示す図である。キャラクタ101aは、1フレーム毎にプレーヤの移動指示操作から算出される移動量に基づいて移動制御が行われる。これにより、キャラクタ101aは、1フレーム毎に図3(a)の△で示される位置に順々に移動制御される。
【0033】
図3(b)は、移動指示操作による移動方向がX軸正方向に対して+45°の方向(図中矢印102Aで示す方向)である場合のキャラクタの移動制御を示す図である。キャラクタ102aは、後述する移動ルール情報303から取得される転回角度に基づいて転回制御が行われると共に、プレーヤの移動指示操作から算出される移動量に基づいて移動制御が行われる。ここで、転回角度は、キャラクタの向きと、移動指示操作による移動方向との角度差よりも小さい角度(例えば、図3(b)では15°)が設定される。これにより、キャラクタ102aは、徐々にその向きを移動方向に転回させながら、1フレーム毎に図3(b)の△で示される位置に順々に移動制御される。
【0034】
図3(c)は、移動指示操作による移動方向がX軸正方向に対して-45°の方向(図中矢印103Aで示す方向)である場合のキャラクタの移動制御を示す図である。キャラクタ103aは、移動ルール情報303から取得される転回角度に基づいて転回制御が行われると共に、プレーヤの指示操作から算出される移動量に基づいて移動制御が行われる。ここで、転回角度は、キャラクタの向きと、移動指示操作による移動方向との角度差の絶対値よりも小さい角度(例えば、図3(c)では−15°)が設定される。これにより、キャラクタ103aは、徐々にその向きを移動方向に転回させながら、1フレーム毎に図3(c)の△で示される位置に順々に移動制御される。
【0035】
図3(d)は、移動指示操作による移動方向がX軸正方向に対して+90°の方向(図中矢印104Aで示す方向)である場合のキャラクタの移動制御を示す図である。キャラクタ104aは、1フレーム目において、プレーヤの移動指示操作から算出される移動方向(例えば、+90°の方向)に基づいてキャラクタの向きが転回制御される(図中矢印104B)。続いて、2フレーム目以降においてプレーヤの移動指示操作から算出される移動量に基づいて移動制御が行われる。これにより、キャラクタ104aは、プレーヤの移動指示操作による移動方向に即時に転回された後、転回後のキャラクタの向きと同一方向に直進するように移動制御される。
【0036】
図3(e)は、移動指示操作による移動方向がX軸正方向に対して−90°の方向(図中矢印105Aで示す方向)である場合のキャラクタの移動制御を示す図である。図3(d)の場合と同様に、キャラクタ105aは、1フレーム目において、プレーヤの移動指示操作から算出される移動方向(例えば、-90°の方向)に基づいてキャラクタの向きが転回制御され(図中矢印105B)、続いて、2フレーム目以降においてプレーヤの指示操作から算出される移動量に基づいて移動制御が行われる。
【0037】
図3(f)は、移動指示操作による移動方向がX軸正方向に対して±180°の方向(図中矢印106Aで示す方向)である場合のキャラクタの移動制御を示す図である。図3(f)に示すように、キャラクタ106aは、1フレーム目において、プレーヤの移動指示操作から算出される移動方向(例えば、+180°又は-180°の方向)に基づいてキャラクタの向きが転回制御される(図中矢印106B又は106C)。続いて、2フレーム目以降においてプレーヤの移動指示操作から算出される移動量に基づいて移動制御が行われる。
【0038】
図3(g)は、移動指示操作による移動方向がX軸方向に対して+135°の方向(図中矢印107Aで示す方向)である場合のキャラクタの移動制御を示す図である。図3(g)に示すように、キャラクタ107aは、1フレーム目において、プレーヤの指示操作から算出される移動方向(例えば、+135°の方向)に基づいてキャラクタの向きが転回制御され(図中矢印107B)、続いて、2フレーム目以降においてプレーヤの指示操作から算出される移動量に基づいて移動制御が行われる。また、図3(h)は、指示操作による移動方向がX軸方向に対して-135°の方向(図中矢印108Aで示す方向)である場合のキャラクタの移動制御を示す図であり、キャラクタ108aは、移動方向以外は、図3(g)の場合と同様に移動制御される。
【0039】
次に図4〜図7を参照して、プレーヤからの移動指示操作と、キャラクタの移動方向との関係について説明する。図4は、ゲーム空間内に配置されるキャラクタの向きを説明する図である。図4(a)に示すように、ゲーム空間内に配置されるキャラクタ109aの向きは、図中矢印109Aで示される。この矢印109Aと、ワールド座標系のX軸正方向との成す角度が、キャラクタの向きθcとなる(図4(b)参照)。なお、キャラクタの向きθcは、反時計回り方向を+(プラス)、時計回り方向を−(マイナス)として、−180°≦θc<180°で示す。
【0040】
図5は、プレーヤの指示操作と入力角θiとの関係を説明する図である。図5(a)に示すように、操作スティック1500aの中立位置を基準として、前後方向は、ワールド座標系のX軸方向に該当し、左右方向は、ワールド座標系のZ軸方向に該当する。従って、操作された操作スティック1500aからの操作信号は、前後方向の座標を示すX値と左右方向の座標を示すZ値とを含む。図5(a)に示すように、操作スティック1500aが操作された場合、操作信号は、図5(b)に示すX値とZ値で示されるポイントP(x1,z1)に変換される。そして、X軸正方向と原点からポイントPを結ぶ線分との成す角が、入力角θiとなる。なお、入力角θiは、反時計回り方向を+、時計回り方向を−として、−180°≦θi<180°で示す。
【0041】
図6は、キャラクタの向きθcと、入力角θiとの関係を説明する図である。図6に示すように、ワールド座標系を基準として、キャラクタの向きθcと、入力角θiとの角度差が、相対入力角θrとなる。すなわち、この相対入力角θrは、キャラクタの向きθcを、ワールド座標系のX軸正方向に一致させた場合に、プレーヤの指示操作から求められた入力角θiを、相対的な角度として示すものである。なお、相対入力角θrは、θr=θi−θcとして、−180°≦θr<180°で示す。
【0042】
次に、図7を参照して、キャラクタの移動方向と、相対入力角θrとの関係を説明する。図7において、実線で示された角度はキャラクタの移動方向を示し、点線により区分された範囲は相対入力角θrの範囲を示している。また、図7に示す0°の方向と、キャラクタの向きθcとは一致しているものとする。
【0043】
図7において、相対入力角θrの範囲は、例えば、−22.5°〜+22.5°,+22.5°〜+67.5°,…として、45°単位で区切られている。また、キャラクタに対する移動指示操作による移動方向は、相対入力角θrの範囲の中央値が設定される。例えば、相対入力角θrが、−22.5°〜+22.5°の範囲内にある場合、キャラクタに対する移動指示操作による移動方向は0°の方向、すなわち、キャラクタの向きθcと同一の方向に設定される。また、相対入力角θrが+22.5°〜+67.5°の範囲にある場合、キャラクタに対する移動指示操作による移動方向は+45°の方向に設定される。
【0044】
また、各移動方向に対応付けられる符号(a)〜(h)は、図3の(a)〜(h)と対応しており、各移動方向と移動方法とがそれぞれ対応付けられている。例えば、移動方向が0°の方向の場合は、上述した図3(a)に示す方法により移動制御され、移動方向が45度の場合は、上述した図3(b)に示す移動制御されるというようにそれぞれ対応付けられている。
【0045】
従って、図7に示す8種の移動方向のうち、±45°の移動方向、すなわち、相対入力角θrが+22.5°〜+67.5°又は−67.5°〜−22.5°の範囲内にある場合、最初の1フレームの間に転回制御及び移動制御が同時に行われる。また、0°の移動方向、すなわち、相対入力角θrが−22.5〜+22.5°の範囲内にある場合、最初の1フレームの間は移動制御のみが行われる。さらに、±90°、±135°、±180°の移動方向、すなわち、相対入力角θrが+67.5°〜−67.5°の範囲内にある場合、最初の1フレームの間は転回制御のみが行われる。
【0046】
このように、プレーヤの指示操作とキャラクタの向きとに基づく相対入力角θrに応じて、キャラクタの移動制御を行うことにより、キャラクタの自然な移動制御と、機動的な移動制御とを、選択的に行うことができる。これにより、キャラクタの多様な移動制御を実現することができる。
【0047】
3.機能構成
次に、本実施形態における家庭用ゲーム装置1の機能構成について説明する。図8は、本実施の形態の家庭用ゲーム装置1の内部構成の一例を示すブロック図である。図8に示すように、家庭用ゲーム装置1は、操作部10、処理部20、記憶部30、表示部40、音出力部50等を備えて構成され、ビデオゲームを実行してゲーム画像を生成し、生成したゲーム画像を表示部40に表示させる。
【0048】
操作部10は、プレーヤによる操作指示を受け付け、操作に応じた操作信号を処理部20に出力する。この機能は、例えばボタンや操作スティック、ダイヤル、マウス、キーボード、各種センサ等によって実現される。図1ではコントローラ1110,1110がこれに相当する。
【0049】
処理部20は、家庭用ゲーム装置1全体の制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)、ASIC(ゲートアレイ等)等の演算装置やその制御プログラムにより実現される。図1では、本体装置1100に具備される制御ユニットがこれに相当する。
【0050】
また、処理部20は、主にゲームに係る演算処理を行うゲーム演算部22と、ゲーム演算部22の処理によって求められた各種のデータに基づき、仮想カメラ等の所与の視点から見た仮想三次元空間(ゲーム空間)の画像の生成及びゲーム画面を表示させるための画像信号の生成を実行する画像生成部24と、効果音やBGM等のゲーム音の生成及びゲーム音を出力させるための音信号の生成を実行する音生成部26と、を含んでいる。
【0051】
ゲーム演算部22は、主な機能部として、キャラクタ制御部221を含む。キャラクタ制御部221は、キャラクタ制御処理プログラム302に従ってキャラクタ制御処理を実行し、プレーヤの指示操作に基づいて、キャラクタのゲーム空間中での移動を制御する。
【0052】
画像生成部24は、例えばCPUやDSP等の演算装置やその制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部24は、ゲーム演算部22による演算結果に基づき、幾何変換処理やシェーディング処理等を実行してゲーム画面を表示するためのゲーム画像(3DCG画像)を生成し、生成した画像の画像信号を表示部40に出力する。
【0053】
表示部40は、画像生成部24からの画像信号に基づいて、例えば1/60秒毎に1フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばCRT、LCD、ELD、PDP、HMD等のハードウェアによって実現される。図1では、ディスプレイ1200がこれに相当する。
【0054】
音生成部26は、例えばCPUやDSP等の演算装置及びその制御プログラムによって実現され、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部50に出力する。
【0055】
音出力部50は、音生成部26からの音信号に基づいて、BGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図1では、スピーカ1202がこれに相当する。
【0056】
記憶部30は、処理部20に家庭用ゲーム装置1を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶すると共に、処理部20の作業領域として用いられ、処理部20が各種プログラムに従って実行した演算結果や操作部10から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。図1では、本体装置1100が具備するCD−ROM1104、ICメモリ1106、メモリカード1108がこれに該当する。
【0057】
また、記憶部30は、処理部20をゲーム演算部22として機能させるためのゲームプログラム及びゲームデータを記憶する。具体的には、ゲームプログラムとして、ゲーム演算プログラム301、キャラクタ制御処理プログラム302を記憶する。また、ゲームデータとして、移動ルール情報303、操作データ304、キャラクタ情報305、を記憶している。
【0058】
ゲーム演算プログラム301は、処理部20をゲーム演算部22として機能させるためのプログラムであり、キャラクタ制御処理プログラム302は、ゲーム演算部22をキャラクタ制御部221として機能させるためのプログラムである。
【0059】
移動ルール情報303は、キャラクタの向きθcと、プレーヤの移動指示操作による入力角θiとの角度差、すなわち相対入力角θrに対応する移動ルールを記憶している。図9に移動ルール情報303のデータ構成例を示す。図9において、相対入力角θrには、例えば、−22.5°〜+22.5といった所与の角度範囲が記憶され、当該範囲に対応づけて、転回制御ルール及び移動制御ルールが記憶される。転回制御ルールには、キャラクタの向きを転回させる場合、例えば、「キャラクタの向きを+10°回転」といった指示が記憶され、キャラクタの向きを転回させない場合、データは記憶されない。また、移動制御ルールには、キャラクタを移動させる場合、例えば、「操作量に応じて移動制御」といった指示が記憶され、キャラクタを移動させない場合、データは記憶されない。
【0060】
操作データ304は、プレーヤの指示操作から算出される操作データを記憶している。図10に、操作データ304のデータ構成例を示す。図10において、操作データ304には、操作スティック1500aの前後方向及び左右方向の操作に応じて算出される入力角(例えば、「θi」)と、操作スティック1500aの傾斜角に応じて算出される操作量(例えば、「Ni」)が更新可能に記憶されている。
【0061】
キャラクタ情報305は、ゲーム空間内に配置されるプレーヤの操作対象のキャラクタの位置情報及びキャラクタの向きθcを記憶している。図11にキャラクタ情報305のデータ構成例を示す。図11において、キャラクタ情報305には、操作対象キャラクタを特定するためのキャラクタID(例えば、キャラクタEa)に対応づけて、当該キャラクタの位置情報(例えば、「X1,Z1」)と、当該キャラクタの向き(例えば、「θc」)とが更新可能に記憶されている。
【0062】
4.処理の流れ
本実施形態における処理の流れについて説明する。
図12は、キャラクタ制御部221がキャラクタ制御処理プログラム302を実行することで実現されるキャラクタ制御処理を示すフローチャートである。処理中のループAは、ゲーム中、1フレーム(1/60秒)毎に繰り返し実行されるループである。
【0063】
図12において、キャラクタ制御処理では、まず、プレーヤによる操作スティック1500aにより移動指示操作が行われると(ステップS2;YES)、操作データ304を更新して(ステップS4)、入力角θiを取得する(ステップS6)。
【0064】
また、キャラクタ情報305からプレーヤの操作対象キャラクタの向きθcを取得して(ステップS8)、入力角θiと、キャラクタの向きθcとから相対入力角θrを算出する(ステップS10)。続いて、移動ルール情報303から算出した相対入力角θrに応じた移動ルールを取得する(ステップS12)。
【0065】
キャラクタ制御部221は、取得した移動ルールの移動制御ルールに従って、キャラクタを移動制御するか否かを判別する(ステップS14)。ここで、移動制御するか否かの判別は、移動ルール303に移動制御ルールが記憶されているか否かに基づいて判別される。移動ルール303に移動制御ルールが記憶されている場合、キャラクタを移動制御すると判別し(ステップS14;YES)、キャラクタの移動制御が直進移動か否かを判別する(ステップS18)。ここで、直進移動か否かの判別は、移動ルール303に転回制御ルールが記憶されているか否かに基づいて判別される。
【0066】
転回制御ルールが記憶されていない場合、キャラクタを転回させない、すなわち、キャラクタを直進させると判別して(ステップS18;YES)、操作データ304から操作量を取得して、操作量に基づいてキャラクタの位置情報を更新する(ステップS20)。
【0067】
一方、転回制御ルールが記憶されている場合、キャラクタを転回させる、すなわち、キャラクタを直進させないと判別して(ステップS18;NO)、転回制御ルールの転回角度に基づいて、キャラクタの向きを更新する(ステップS22)。さらに、操作データ304の操作量に基づいてキャラクタの位置情報を更新する(ステップS24)。
【0068】
また、ステップS14に戻り、移動ルール303に移動制御ルールが記憶されていない場合、キャラクタの移動制御を行わないと判別して(ステップS14;NO)、転回制御ルールの転回角度に基づいて、キャラクタの向きを更新する(ステップS16)。
【0069】
そして、キャラクタ制御部221は、キャラクタ情報305に記憶されている位置情報及びキャラクタの向きに従って、ゲーム空間内にキャラクタを配置する(ステップS26)。以上の処理を毎フレーム単位で繰り返して実行する。
【0070】
5.ハードウェア構成
次に、本実施の形態におけるゲーム装置1を実現するためのハードウェア構成の一例について図13を参照して説明する。図13に示すハードウェア構成では、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、画像生成IC1010、音生成IC1008、I/Oポート1012、1014を備え、各部がシステムバス1016により相互にデータ入出力可能に接続されている。また、I/Oポート1012には入力装置1022が、I/Oポート1014には通信装置1024が、それぞれ接続されている。
【0071】
CPU1000は、情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、入力装置1022によって入力される信号等に従って、機器全体の制御や各種データ処理を行う。このCPU1000は、図8に示す処理部20に相当する。
【0072】
RAM1004は、CPU1000の作業領域等として用いられる記憶部であり、情報記憶媒体1006やROM1002内の所与の内容、CPU1000の演算結果等が格納される。このRAM1004は、図8に示す記憶部30の一部を構成するものである。
【0073】
情報記憶媒体1006は、プログラム、画像データ、音データ、プレイデータ等が主に格納されるものである。この情報記憶媒体1006は、図8に示す記憶部30の一部を構成するものである。本実施の形態を実現するものがコンピュータシステムである場合には、情報記憶媒体1006は、キャラクタ制御処理プログラム302などを格納する情報記憶媒体としてのCD−ROM、DVD或いはハードディスク等が用いられる。
【0074】
また、この装置に設けられている画像生成IC1010と音生成IC1008により、音や画像の好適な出力が行えるようになっている。
【0075】
画像生成IC1010は、CPU1000の命令によって、ROM1002、RAM1004、情報記憶媒体1006等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される表示信号は表示装置1026に出力される。表示装置1026は、CRT、LCD、ELD、PDP、HMD等により実現され、図8に示す表示部40に相当する。
【0076】
また、音生成IC1008は、CPU1000の命令によって、情報記憶媒体1006やROM1002に記憶される情報、RAM1004に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ1020によって出力される。スピーカ1020は、図8に示す音出力部50に相当する。
【0077】
入力装置1022は、各種操作を入力するための装置であり、その機能は、レバー、ボタン、タッチパネル等のハードウェアにより実現される。この入力装置1022は、図8に示す操作部10に相当する。
【0078】
通信装置1024は装置内部で利用される情報を外部とやりとりするものであり、他の装置と通信回線を介して接続されてプログラムに応じた所与の情報を送受すること等に利用される。
【0079】
6.作用・効果
以上のように、本実施の形態のゲーム装置1は、キャラクタの向きθcに対する移動方向を8方向に設定し、当該移動方向に基づいてキャラクタの移動制御を行う。例えば、キャラクタの向きθcに対する移動方向が左右斜め前の方向(例えば、キャラクタの向きを0°として±45°の方向)である場合は、キャラクタが徐々にその向きを変えながら移動していくように、移動制御及び回転制御を同時に行う。また、移動方向が直進の方向(例えば、キャラクタの向きを0°として0°の方向)である場合は、キャラクタが直進するような移動制御のみを行う。さらに、移動方向が、横、左右斜め後ろ又は真後ろの方向(例えば、キャラクタの向きを0°として±90°、±135°又は±180°の方向)である場合は、まずキャラクタの向きが移動方向に一致するように転回制御した後、キャラクタの向きに沿って直進するような移動制御を行う。
【0080】
より具体的には、キャラクタの向きθcと、プレーヤの移動指示操作による移動方向(入力角θi)との角度差(相対入力角θr)に対応付けて移動制御ルール及び転回制御ルールを記憶する移動ルール情報303を有し、相対入力角θrに対応する移動制御ルール及び転回制御ルールに基づいたキャラクタの移動制御を行う。例えば、相対入力角θrが+22.5°〜+67.5°又は−67.5〜−22.5°の場合、最初の1フレームの間に転回制御と移動制御を行う。また、相対入力角θrが−22.5°〜+22.5°の場合、最初の1フレームの間に移動制御のみを行い、相対入力角θrが+67.5°〜+180°又は−180°〜−67.5°の場合、最初の1フレームの間に回転制御のみを行う。
【0081】
従って、キャラクタが左右斜め前方に移動するような場合は、キャラクタの向きを移動方向に徐々に向けつつキャラクタを移動させることにより、実際の人間の動作に即した自然な動きに近い移動を実現することができる。また、キャラクタが横方向や斜め後ろ、真後ろ方向に移動するような場合は、キャラクタの向きを移動指示操作による移動方向に即時に向けてキャラクタを移動させるため、プレーヤの意思に即してキャラクタを機動的に移動制御することができる。このように、移動指示操作による移動方向とキャラクタの向きとに応じて、キャラクタの移動制御方法を変更することにより、キャラクタの自然な移動制御と、機動的な移動制御とを併せて実現することができる。
【0082】
また、移動ルール情報303は、転回制御ルール及び移動制御ルールを、相対入力角θiに対応付けて記憶している。これにより、プレーヤは自己の移動指示操作による移動方向と、キャラクタの向きとがなす角度に基き、キャラクタの向きが徐々に移動方向に向けられて移動制御されるか、キャラクタの向きが即時に移動方向に向けられて移動制御されるかを容易に把握することができる。従って、状況に応じて移動指示操作を行うことで、プレーヤの意図を反映させたキャラクタの移動制御を行うことができる。
【0083】
7.変形例
本発明についての好適な実施形態の一例について説明したが、本発明は、上記したものに限らず、発明の趣旨を逸脱しない限りにおいて適宜変更可能である。例えば、本実施の形態においては、キャラクタの移動方向を8方向とし、転回制御及び移動制御が行われる相対入力角θrの範囲を+22.5°〜+67.5°又は−22.5°〜−67.5°としたが、キャラクタの移動方向、相対入力角θrの範囲等は上述した例に限定されない。
【0084】
また、転回制御及び移動制御が行われる相対入力角θiの角度範囲を他の角度範囲としてもよいし、更にゲームの進行(例えば、特定のゲーム場面)やプレーヤの設定操作等に応じて変更するように構成してもよい。例えば、移動ルール情報303に記憶されている相対入力角θrの範囲について、転回制御及び移動制御が同時に行われる相対入力角θrの範囲を+22.5°〜+67.5°から+10°〜+90°、−67.5°〜−22.5°〜−90°〜−10°に設定変更する。或いは、相対入力角θiの角度範囲+67.5°〜+180及び−180°〜−67.5°の移動制御ルールを「操作量に応じて移動制御」といった移動制御ルールに設定変更する。
【0085】
このように、転回制御及び移動制御が行われる相対入力角θrの範囲を広げた場合、キャラクタの自然な移動制御の場面を多くするといったことができる。一方、転回制御及び移動制御が行われる相対入力角の範囲を狭くした場合には、キャラクタの機動的な移動制御の場面を多くするといったことができる。この結果、多様なゲームシーンに適応した様々なキャラクタの移動態様を実現することができる。
【0086】
また、1フレーム間に転回制御及び移動制御を行う場合に、各フレーム間における転回角度は+10°又は−10°である場合を例として説明したが、転回角度は、少なくとも相対入力角θrより小さい角度であれば良く、上述した例に限定されない。例えば、転回角度を+10°より小さくした場合、1フレーム間におけるキャラクタの向きの変化が細かくなるため、キャラクタの方向変化を連続的で自然な動きとして実現することができる。しかし、極度に転回角度を小さくすると、急激な方向転換を行えない、処理負荷が大きくなるといったデメリットが生じる。また、転回角度を+10°より大きくした場合、即時にキャラクタの向きを転回させて、計算負荷を小さくすることができる。しかし、転回角度が相対入力角θrに近づくほど、キャラクタの方向変化が断続的となるため、転回制御及び移動制御を同時に行うことにより、キャラクタの自然な移動制御を実現するといった効果を十分に発揮できない。
【0087】
さらに、キャラクタの移動速度に応じて転回角度が可変に設定される構成であっても良い。例えば、記憶部30は、キャラクタの移動速度と、転回角度とを対応付けたテーブルを予め記憶しておく。プレーヤによる移動指示操作に含まれる操作量からキャラクタの移動速度を算出し、算出されたキャラクタの移動速度に対応する転回角度を取得する。そして、取得した転回角度と、移動ルール情報303に記憶される転回制御ルールとに基づいて、キャラクタの移動制御を行う。これにより、例えば、キャラクタの移動速度が速いほど転回角度が大きくなるように設定した場合、機動的に移動するキャラクタの動きに合わせてキャラクタの向きを速やかに変化させることができる。また、キャラクタの移動速度が遅いほど転回角度が小さくなるように設定した場合、ゆっくりと移動するキャラクタの動きに合わせてキャラクタの向き徐々に変化させることができ、より自然な移動制御を実現することができる。
【0088】
また、上述した実施形態では、家庭用ゲーム装置を例に挙げて説明したが、本発明を適用可能な装置は、これに限られず、業務用のゲーム装置の他、携帯型のゲーム装置、PDA等の装置であってもよいことは勿論である。
【0089】
さらに、上述した実施形態では、操作スティック1500aを用いてプレーヤの移動指示操作を入力する場合について説明を行ったが、移動指示操作の入力手段は、上述した例に限定されない。例えば、図2に示すボタン群1600aに含まれる4つの矢印キーにより、8方向の移動指示操作を入力可能な構成としても良い。この構成によれば、ボタンを押すだけで簡単に8方向の移動指示操作が行えるため、アナログスティックの操作に不慣れなプレーヤでも簡単にゲームを楽しむことができる。
【図面の簡単な説明】
【0090】
【図1】本実施の形態における家庭用ゲーム装置の概観図。
【図2】ゲームコントローラの概観図。
【図3】本実施の形態の原理を説明する図。
【図4】キャラクタの向きを説明する図。
【図5】操作スティックによる指示操作と入力角との関係を説明する図。
【図6】相対入力角を説明する図。
【図7】相対入力角とキャラクタの移動方向との関係を説明する図。
【図8】家庭用ゲーム装置の機能ブロック図。
【図9】移動ルール情報のデータ構成例を示す図。
【図10】操作データのデータ構成例を示す図。
【図11】キャラクタ情報のデータ構成例を示す図。
【図12】キャラクタ制御処理を示すフローチャート。
【図13】ハードウェア構成の一例を示す図。
【符号の説明】
【0091】
10 操作部
20 処理部
22 ゲーム演算部
221 キャラクタ制御部
24 画像生成部
26 音生成部
30 記憶部
301 ゲーム処理プログラム
302 キャラクタ制御処理プログラム
303 移動ルール情報
304 操作データ
305 キャラクタ情報
40 表示部
50 音出力部
【特許請求の範囲】
【請求項1】
仮想空間内に配置されたキャラクタの向き及び移動の制御を、プレーヤの移動方向の指示操作に従って行うキャラ制御手段としてコンピュータを機能させると共に、前記仮想空間の画像を生成させるためのプログラムであって、
前記指示操作による移動方向が前記キャラクタの現在の向きに沿った方向か否かを判定する方向判定手段として前記コンピュータを更に機能させると共に、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合には前記キャラクタの向きを前記指示操作による移動方向に徐々に向けつつ前記キャラクタを移動させ、沿った方向でないと判定された場合には前記キャラクタの向きを前記指示操作による移動方向に即時に向けて前記キャラクタを移動させる制御を行うように前記コンピュータを機能させるためのプログラム。
【請求項2】
前記方向判定手段が、前記キャラクタの現在の向きに対する前記指示操作による移動方向の角度が所与の角度範囲内か否かに基づいて前記判定を行うように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記角度範囲を変更する角度範囲速度適応変更手段として前記コンピュータを更に機能させるための請求項2に記載のプログラム。
【請求項4】
前記角度範囲速度適応変更手段が、前記キャラクタの移動速度に応じて、前記角度範囲を変更するように前記コンピュータを機能させるための請求項3に記載のプログラム。
【請求項5】
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合に、前記キャラクタの向きを前記指示操作による移動方向に向ける速度を、前記キャラクタの移動速度に応じて変化させるように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
請求項1〜5の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項7】
仮想空間内に配置されたキャラクタの向き及び移動の制御を、プレーヤの移動方向の指示操作に従って行うキャラ制御手段を備え、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置であって、
前記指示操作による移動方向が前記キャラクタの現在の向きに沿った方向か否かを判定する方向判定手段を更に備え、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合には前記キャラクタの向きを前記指示操作による移動方向に徐々に向けつつ前記キャラクタを移動させ、沿った方向でないと判定された場合には前記キャラクタの向きを前記指示操作による移動方向に即時に向けて前記キャラクタを移動させる制御を行うことを特徴とするゲーム装置。
【請求項1】
仮想空間内に配置されたキャラクタの向き及び移動の制御を、プレーヤの移動方向の指示操作に従って行うキャラ制御手段としてコンピュータを機能させると共に、前記仮想空間の画像を生成させるためのプログラムであって、
前記指示操作による移動方向が前記キャラクタの現在の向きに沿った方向か否かを判定する方向判定手段として前記コンピュータを更に機能させると共に、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合には前記キャラクタの向きを前記指示操作による移動方向に徐々に向けつつ前記キャラクタを移動させ、沿った方向でないと判定された場合には前記キャラクタの向きを前記指示操作による移動方向に即時に向けて前記キャラクタを移動させる制御を行うように前記コンピュータを機能させるためのプログラム。
【請求項2】
前記方向判定手段が、前記キャラクタの現在の向きに対する前記指示操作による移動方向の角度が所与の角度範囲内か否かに基づいて前記判定を行うように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記角度範囲を変更する角度範囲速度適応変更手段として前記コンピュータを更に機能させるための請求項2に記載のプログラム。
【請求項4】
前記角度範囲速度適応変更手段が、前記キャラクタの移動速度に応じて、前記角度範囲を変更するように前記コンピュータを機能させるための請求項3に記載のプログラム。
【請求項5】
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合に、前記キャラクタの向きを前記指示操作による移動方向に向ける速度を、前記キャラクタの移動速度に応じて変化させるように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
請求項1〜5の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項7】
仮想空間内に配置されたキャラクタの向き及び移動の制御を、プレーヤの移動方向の指示操作に従って行うキャラ制御手段を備え、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置であって、
前記指示操作による移動方向が前記キャラクタの現在の向きに沿った方向か否かを判定する方向判定手段を更に備え、
前記キャラ制御手段が、前記方向判定手段により沿った方向であると判定された場合には前記キャラクタの向きを前記指示操作による移動方向に徐々に向けつつ前記キャラクタを移動させ、沿った方向でないと判定された場合には前記キャラクタの向きを前記指示操作による移動方向に即時に向けて前記キャラクタを移動させる制御を行うことを特徴とするゲーム装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2006−254951(P2006−254951A)
【公開日】平成18年9月28日(2006.9.28)
【国際特許分類】
【出願番号】特願2005−72793(P2005−72793)
【出願日】平成17年3月15日(2005.3.15)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
【公開日】平成18年9月28日(2006.9.28)
【国際特許分類】
【出願日】平成17年3月15日(2005.3.15)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
[ Back to top ]