説明

プログラム、情報記憶媒体及びゲーム装置

【課題】サッカーゲームのキック動作や野球ゲームの打撃動作に代表されるキャラクタのヒット動作を正確に表現すること。
【解決手段】 キャラクタが移動体をヒットする際のゲーム空間中の衝突予定位置及び衝突予定タイミングを先行的に算出する。次いで、キャラクタの各関節の位置変化が定義された複数の基本ヒットモーションデータの合成比率を、前記算出された衝突予定位置に基づいて決定し、決定した合成比率で該ヒットモーションデータを合成する。そして、キャラクタのヒット部位が前記算出された衝突予定タイミングで、前記算出された衝突予定位置に到達するように、前記合成されたヒットモーションデータを補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、ゲーム空間中を移動する移動体を、関節構造を有するキャラクタが所与のヒット部位でヒットするように前記キャラクタのヒット動作を制御させるためのプログラム等に関する。
【背景技術】
【0002】
関節構造を有するキャラクタの制御として、モーションデータによる制御が広く知られている(例えば、特許文献1)。モーションデータとは各関節の回転角度の変化を時系列に定義したデータであり、このデータをキャラクタの各関節に適用(いわゆるモーションの再生)することで、キャラクタに所定の動作をさせることができる。
【0003】
モーションデータは、歩き動作や走り動作といった動作の種類毎に定められている。例えばサッカーゲーム等において、選手キャラクタがボールをキックする動作についてもモーションデータが定められている。
【特許文献1】特開2001−353360号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、キック動作のモーションデータが1つであると、選手キャラクタとキック時のボールとの相対的な位置関係が常に一定であるとは限らないため、選手キャラクタのボールが当たるべき部位(以下、「ヒット部位」という。)にボールが当たらず、ヒット部位とボールとが離れた状態でキックする画像となり、正確なキック動作を表現できない。
【0005】
そこで、想定される位置でキックするためのモーションデータを、そのキック位置毎に用意しておき、ボールを蹴り出すキック位置に応じたモーションデータを選択する方法が考えられる。しかし、それでは用意すべきモーションデータが膨大な数に上り現実的でない上、想定していない位置でキックを行う場合にはやはりヒット部位にボールが当たらないこととなる。
【0006】
サッカーゲームについての問題を説明したが、例えば野球ゲームにおける打撃動作等も同様の問題がある。
【0007】
本発明の課題は、サッカーゲームのキック動作や野球ゲームの打撃動作に代表されるキャラクタのヒット動作を正確に表現することである。
【課題を解決するための手段】
【0008】
以上の課題を解決するための第1の発明は、
コンピュータに、ゲーム空間中を移動する移動体を、関節構造を有するキャラクタが所与のヒット部位でヒットするように前記キャラクタのヒット動作を制御して当該キャラクタのヒット動作の画像を生成させるためのプログラムであって、
前記キャラクタが前記移動体をヒットする際の前記ゲーム空間中の衝突予定位置及び衝突予定タイミングを先行的に算出する先行算出手段(例えば、図11のキック動作制御部221;図13のステップA70,80)、
前記キャラクタの各関節の位置変化が定義された所与の複数の基本ヒットモーションデータの合成比率を前記算出された衝突予定位置に基づいて決定し、決定した合成比率で該ヒットモーションデータを合成するモーション合成手段(例えば、図11のキックモーション合成部226;図14のステップB10〜B30)、
前記キャラクタの前記ヒット部位が前記算出された衝突予定タイミングで、前記算出された衝突予定位置に到達するように、前記合成されたヒットモーションデータを補正するモーション補正手段(例えば、図11のキックモーション合成部226;図14のステップB40)、
として前記コンピュータを機能させるためのプログラムである。
【0009】
また他の発明として、ゲーム空間中を移動する移動体を、関節構造を有するキャラクタが所与のヒット部位でヒットするように前記キャラクタのヒット動作を制御して当該キャラクタのヒット動作の画像を生成するゲーム装置であって、
前記キャラクタが前記移動体をヒットする際の前記ゲーム空間中の衝突予定位置及び衝突予定タイミングを先行的に算出する先行算出手段と、
前記キャラクタの各関節の位置変化が定義された所与の複数の基本ヒットモーションデータの合成比率を前記算出された衝突予定位置に基づいて決定し、決定した合成比率で該ヒットモーションデータを合成するモーション合成手段と、
前記キャラクタの前記ヒット部位が前記算出された衝突予定タイミングで、前記算出された衝突予定位置に到達するように、前記合成されたヒットモーションデータを補正するモーション補正手段と、
を備えたゲーム装置が考えられる。
【0010】
この第1の発明等によれば、衝突予定位置に基づいてヒットモーションデータが合成される。このため、基本ヒットモーションデータの数が少なくとも、衝突予定位置に応じたモーションデータを生成することが可能である。しかし、基本モーションデータの合成だけでは確実に衝突予定タイミングに衝突予定位置で正確にヒットするヒット動作になるとは限らない。合成するそれぞれの基本ヒットモーションデータがヒットを予定していた間の位置でのヒット動作にしかならないからである。そこで、モーション補正手段が、ヒット部位が衝突予定タイミングで衝突予定位置に到達するように、合成されたヒットモーションデータを補正する。これにより、正確なヒット動作が実現される。
【0011】
また、第2の発明として、第1の発明のプログラムであって、
ヒット動作の種別毎に、異なる位置でヒット動作をする複数の基本ヒットモーションデータが予め定められており(例えば、図4の基本モーション情報)、
ヒット動作の種別を選択する種別選択手段(例えば、図11のキック動作制御部221;図13のステップA60)として前記コンピュータを機能させ、
前記モーション合成手段が、前記種別選択手段により選択された種別に属する複数の基本ヒットモーションデータを合成するように前記コンピュータを機能させるためのプログラムを構成してもよい。
【0012】
この第2の発明等によれば、ヒット動作の種別毎に基本ヒットモーションデータが定められており、選択されたヒット動作の種別に属する基本ヒットモーションデータが合成されるため、衝突予定タイミングに衝突予定位置でヒットする動作を行うヒットモーションデータとして、大きく異なることのないヒットモーションデータを、モーション合成手段の合成時に得ることができる。
【0013】
また、第3の発明として、第1又は第2の発明のプログラムであって、
前記モーション合成手段が、
前記先行算出手段により算出された衝突予定位置の前記ゲーム空間中の高さに基づいて合成比率を決定する手段(例えば、図11のキックモーション生成部226;図14のステップB20)と、
ヒット動作の高さが異なる複数の基本ヒットモーションデータを、前記決定した合成比率で合成する手段(例えば、図11のキックモーション生成部226;図14のステップB30)と、
を有し、
前記モーション補正手段が、前記算出された衝突予定位置の前記ゲーム空間中の水平方向位置に前記ヒット部位を到達させるように補正する(例えば、図11のキックモーション生成部226;図14のステップB40)、
ように前記コンピュータを機能させるためのプログラムを構成してもよい。
【0014】
この第3の発明によれば、モーション合成手段による合成が衝突予定位置の高さに基づく合成であるため、モーション合成手段の合成によって得られるヒットモーションデータは、衝突予定位置の高さに見合ったモーションデータとなる。そして、モーション補正手段の補正により、衝突予定位置の水平方向位置にヒット部位が到達するように補正されることで、正確なヒット動作を表現するヒットモーションデータとなる。
【0015】
また、第4の発明として、第1又は第2の発明のプログラムであって、
前記モーション合成手段が、
前記先行算出手段により算出された衝突予定位置の前記ゲーム空間中の水平方向位置に基づいて合成比率を決定する手段と、
ヒット動作の水平方向位置が異なる複数の基本ヒットモーションデータを、前記決定した合成比率で合成する手段と、
を有し、
前記モーション補正手段が、前記算出された衝突予定位置の前記ゲーム空間中の高さ方向位置に前記ヒット部位を到達させるように補正する、
ように前記コンピュータを機能させるためのプログラムを構成してもよい。
【0016】
この第4の発明によれば、モーション合成手段による合成が衝突予定位置の水平方向位置に基づく合成であるため、モーション合成手段の合成によって得られるヒットモーションデータは、衝突予定位置の水平方向位置に見合ったモーションデータとなる。そして、モーション補正手段の補正により、衝突予定位置の高さ方向位置にヒット部位が到達するように補正されることで、正確なヒット動作を表現するヒットモーションデータとなる。
【0017】
また、第5の発明として、第1〜第4の何れかの発明のプログラムであって、
前記モーション補正手段が、前記モーション合成手段により合成されたヒットモーションデータのうち、前記算出された衝突予定タイミングの前後所定時間分のデータを補正するように前記コンピュータを機能させるためのプログラムを構成してもよい。
【0018】
この第5の発明によれば、モーション補正手段による補正は、衝突予定タイミングの前後所定時間分のデータで済むため、ヒットモーションデータ全てを補正する必要がなく、演算処理量が軽減される。
【0019】
また、第6の発明として、第1〜第5の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体を構成してもよい。
【発明の効果】
【0020】
本発明によれば、モーション合成手段によるヒットモーションデータの合成と、モーション補正手段によるヒットモーションデータの補正とによって、ヒット部位が衝突予定タイミングで衝突予定位置に到達する正確なヒット動作が実現される。
【発明を実施するための最良の形態】
【0021】
以下、図面を参照し、本発明を適用したゲーム装置について詳細に説明する。尚、本実施形態は、本発明のゲームをサッカーゲームに適用した場合の実施形態である。
【0022】
[ゲーム装置の構成]
図1は、本発明を適用したゲーム装置を家庭用ゲーム機1200に適用した場合の装置構成の一例を示す図である。図1に示す家庭用ゲーム機1200は、本体装置1210と、ゲームコントローラ1202とを備え、本体装置1210は、スピーカ1222を具備するディスプレイ1220に接続される。
【0023】
ゲームコントローラ1202は、プレーヤがゲーム操作を入力するためのものであり、操作信号を本体装置1210に出力する。ゲーム処理を実行するために必要なプログラムやデータは、本体装置1210に着脱自在なCD−ROMやDVD等の情報記憶媒体1212に格納される。或いは、ゲームプログラムやゲームデータは、本体装置1210に具備された通信装置1218を介して通信回線Nに接続し、外部装置から取得することとしてもよい。ここでいう通信回線Nとは、データ授受が可能な通信路を意味する。すなわち、通信回線Nとは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLANの他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、通信方法については有線/無線を問わない。
【0024】
一方、ゲーム中の所定のタイミングやプレーヤによるセーブ操作等に応じてゲームの進行状況に関する情報を含むデータが書き込まれる情報記憶媒体として、メモリカード1214やICカード1216等の情報記憶媒体が用いられる。
【0025】
本体装置1210は、例えばCPU等の演算処理装置やICメモリ、情報記憶媒体1212の読取装置を具備する。そして、情報記憶媒体1212から読み出したプログラムやデータ、ゲームコントローラ1202から入力される操作信号等に基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。本実施形態では、ピッチ(フィールド)やボール、サッカー選手(以下、「選手キャラクタ」という。)等が配置されたゲーム空間内を仮想カメラで撮影した画像が、ゲーム画面として生成される。そして、本体装置1210は、生成した画像信号及び音信号をディスプレイ1220に出力し、生成したゲーム画面をディスプレイ1220に表示させ、ゲーム音をスピーカ1222から音出力させる。
【0026】
この家庭用ゲーム機1200において、プレーヤは、ディスプレイ1220に表示されたゲーム画面を見ながらゲームコントローラ1202を操作して、サッカーゲームを楽しむ。詳細には、本実施形態は、プレーヤチームとコンピュータ制御の対戦チームとが対戦する場合の実施形態であり、プレーヤは、プレーヤチームに所属する1体の選手キャラクタ(以下、プレーヤの操作対象である選手キャラクタを「自キャラクタ」という。)を操作してサッカーゲームをプレイする。
【0027】
図2は、本実施の形態におけるゲーム画面の一例を示す図であり、ゲーム画面の略中央に自キャラクタPCが表示され、自キャラクタPCを中心としたゲーム空間内の様子が表される。尚、図2では、プレーヤチームの選手キャラクタと対戦チームの選手キャラクタとを異なる表示態様で示しており、同図において、プレーヤチームは画面右から左に向けて攻撃している。
【0028】
自キャラクタPCは、ゲームコントローラ1202からの操作入力に従って、移動やパス、シュート等の動作が制御される。これに対して、自キャラクタPC以外の選手キャラクタは、ノンプレーヤキャラクタNPCとされ、コンピュータによって自動制御される。
【0029】
パスやシュート等のボールキックは、自キャラクタPCであれば、ゲームコントローラ1202からの操作入力に従って発動され、ノンプレーヤキャラクタNPCであれば、コンピュータによる自動制御によって発動される。このキック動作の発動に係る制御は従来公知の技術と同様である。
【0030】
本実施形態の特徴的な処理は、キック動作のモーションデータの生成にある。自キャラクタPC及びノンプレーヤキャラクタNPC(以下、包括的に「キャラクタ」という。)共に、同一の関節構造を有しており、その動作に当たっては同一のモーションデータが適用される。
【0031】
図3にキャラクタの関節構造の模式図を示す。各キャラクタは、関節の階層構造を有する骨格モデルによって定義され、各パーツ間を接続する関節の回転角を指定することよってパーツ同士の相対的な位置関係が決定され、ひいてはキャラクタ全体の姿勢が決定されることとなる。ここで、関節の階層構造とは、下位階層のパーツを、上位階層のパーツの動きに追従させる構造を意味する。例えば、上腕44を上位階層、前腕46を上腕44の下位階層のパーツとして定義した場合には、前腕46は上腕44の回転に伴って回転あるいは移動するが、上腕44は前腕46の回転の影響を受けない。
【0032】
ところで、キック動作をする際、移動体であるボールとキャラクタとの位置関係は常に一定であるとは限らない。そこで、本実施形態では、1)複数の基本モーションデータを合成して合成モーションデータを生成する合成処理と、2)合成モーションデータに対するインバースキネマティクス処理(以下、「IK処理」という。)とを行って、キック時のボールの位置と、ボールをキックするキック部位の位置とを一致させるようにキックモーションデータを生成する。この最終的に生成されたキックモーションデータを以下「実適用モーションデータ」という。
【0033】
図4は、予め設定されたキック動作のモーションデータである基本モーションデータを格納した基本モーション情報660の構成の一例を示す図である。基本モーションデータは、キック動作種別及び基本キック位置(ヒット位置)に応じて予め定められている。キック動作種別としては、右足か左足かの蹴り足の種別と、足の甲や側部、底部といったキックする部位の種別と、キックの強度と、キックの方向とがある。これらのキック動作種別は、キャラクタの制御の一貫として選択されるものであり、例えば、ボールキープキャラクタが自キャラクタPCであればプレーヤの操作入力に応じて選択されたり、ノンプレーヤキャラクタNPCであればその時のゲーム状況(例えば、ボールキープキャラクタと他のキャラクタとの位置関係等)に応じて選択されるといった方法で選択・決定されるが、その方法は従来公知の技術であるため、詳細な説明は省略する。
【0034】
また、基本モーションデータは全て所定のフレーム数(例えば、30フレーム)で作成されており、キックするタイミングが所定のタイミング(例えば、15フレーム目)となるように規定されている。
【0035】
また、実際にキックするタイミングである衝突予定タイミングと、キックするゲーム空間中の位置である衝突予定位置とは、キック動作の発動が決まった段階で、先行的に算出され、算出された衝突予定タイミングに、衝突予定位置でキックするようにボールキープキャラクタ及びボールが制御される。
【0036】
基本キック位置とは、ヒット部位であるキック部位が、移動体であるボールをキックする位置として予め設定されている位置のことである。図5は、基本キック位置と、キック部位とボールとが衝突する予定位置である衝突予定位置との関係を説明するための図である。基本キック位置としては、図5(a)に示すように、キックする高さ位置として取り得る最高の位置である「高」と、キックする高さ位置として取り得る最低の位置である「低」と、その中間である「中」との3つがある。
【0037】
先行的に算出された衝突予定位置の高さが「高」、「中」、「低」の何れの間に位置するかによって、合成処理の対象とする基本モーションデータが2つ選択される。例えば、キック動作種別として、「左足」「甲部」による「強め」で「前方」のキックが選択され、衝突予定位置が「中」と「低」との間の高さ位置である場合には、図4におけるモーションLSFMとモーションLSFLとが合成対象の基本モーションデータとして選択される。そして、キック部位が衝突予定位置の高さでキックする(ボールと衝突する)ように、選択された基本モーションデータの合成比率が算出される。
【0038】
例えば、図5(b)において、衝突予定位置が位置RPであると算出された場合、位置RPの高さは「中」と「低」との比「a:b」の位置にあると算出され、この「a:b」が基本モーションデータの合成比率とされる。
【0039】
しかし、「a:b」の合成比率で基本モーションデータを合成したとしても、合成後の合成モーションデータは、位置TPでキックするものである。すなわち、基本モーションデータは「高」、「中」、「低」それぞれ3つの位置でキックするためのモーションデータであるため、合成モーションデータを再生した際のキック位置は、「高」と「中」、或いは、「中」と「低」とを結ぶ線分上の位置になる。モーションデータの合成処理によっては、衝突予定位置近傍でキックするという大凡のキック位置の調整が図られるが、衝突予定位置の高さ位置に見合った調整がなされるのみである。
【0040】
そこで、更にIK処理を行うことで、衝突予定位置の水平方向位置に対する合成モーションデータの補正をする。IK処理とは、ボールに衝突するヒット部位であるキック部位を、衝突予定タイミングの時点で衝突予定位置に位置するように、キャラクタの各関節の回転角度を制御する処理である。この処理により、衝突予定タイミングの時点で、衝突予定位置に確実にキック部位が位置するように合成モーションデータが補正される。
【0041】
なお、単にIK処理を適用するとしても、キック部位が衝突予定タイミングで衝突予定位置に位置するように制御されるが、キャラクタの姿勢が奇妙な姿勢になり得る。具体的に説明する。図6は、IK処理を説明するための図である。図6(a)において、関節J1を介してパーツP1とパーツP3とが接続された骨格構造を為しており、元関節J5と関節J1と端部E1とがほぼ直線状に位置している。この状態で、元関節J5の位置を固定して端部E1をX1の位置に移動させるためのIK処理を施した例が図6(b)と(c)である。図6(b)では、関節J1が当初の位置より図中上方に移動するが、図6(c)では図中下方に移動している。但し、何れも端部E1は、予定通りの位置X1に移動している。
【0042】
元関節J5を股関節、関節J1を膝関節と考えた場合に理解できると思うが、この例から明らかなように、キック部位を衝突予定位置に移動させるために単にIK処理のみを行うとすると、キック動作のキャラクタの姿勢として、奇妙な姿勢になる可能性がある。
【0043】
本実施形態では、基本モーションデータの合成によって、キック部位と衝突予定位置とが大凡近い位置になるように合成モーションデータが生成される。特に合成処理では、高さ位置が調整され、IK処理では水平方向位置のみを補正すれば済むため、奇妙な姿勢になる可能性は極めて低い。すなわち、キック部位は通常足首より下の部位であるため、キック部位の高さ位置が位置決めされている状態から、キック部位を水平方向に移動させたとしても、股関節や膝関節が奇妙な方向に回転する可能性は少ないからである。
【0044】
次に、基本モーションデータ、合成モーションデータ及び実適用モーションデータそれぞれを再生した場合の違いについて説明する。図7は、基本モーションデータを再生した際の衝突予定タイミングにおける画像例(a)及びその時の骨格モデル(b)の模式図である。図8は、基本モーションデータを合成した合成モーションデータを再生した際の衝突予定タイミングにおける画像例(a)及びその時の骨格モデル(b)の模式図である。図9は、合成モーションデータに更にIK処理を施して生成した実適用モーションデータを再生した際の衝突予定タイミングにおける画像例(a)及びその時の骨格モデル(b)の模式図である。尚、キック部位は左足の甲である。
【0045】
図7では、キック部位と、衝突予定位置(ボールの位置)とが大きくずれている。図8では、キック部位の高さ方向の位置と、衝突予定位置(ボールの位置)の高さ方向の位置とが調整されていることが分かる。更に図9では、キック部位の水平方向の位置が補正されて、正確なキック動作となっていることが分かる。
【0046】
次に、IK処理を適用する期間について説明する。図10は、IK処理を適用する期間を説明するための図である。先ず、ゲーム進行中においてキック動作の発動が検知されると、衝突予定位置に加えて、先行的に衝突予定タイミングが算出される(図10(a))。次いで、衝突予定タイミングにキック部位が衝突予定位置に位置するように、キックモーションの適用時期が決定される。具体的には、基本モーションデータが30フレーム時間(1フレーム=1/60秒)であり、15フレーム目にキックするように定められているとすると、衝突予定タイミングが15フレーム目に来るように基本モーションデータの30フレーム時間分の期間が特定される(図10(b))。基本モーションデータの長さ(30フレーム時間)と、キックのタイミング(15フレーム目)とが一定であれば、合成キックモーションや実適用キックモーションも同様の長さでかつ、同一のタイミングでキックするからである。
【0047】
そして、キックモーション中の、衝突予定タイミングの前後所定フレーム数(例えば10フレーム)が、IK処理の適用期間であるとされ(図10(c))、合成キックモーション中のIK処理適用期間に対してIK処理が実行される。IK処理適用期間に対してのみIK処理を行うことで演算量の削減が図られる。正確なキック動作を表現するために重要な期間は、キックモーション中のキックする際の期間であり、足を振りかぶる期間やキック後に足を振り抜いている期間について敢えてIK処理を行わずともキック動作として矛盾のない画像が実現できるため、IK処理適用期間についてのみIK処理を行って演算負荷を低減させる。
【0048】
[機能構成]
図11は、本実施形態におけるゲーム装置1の機能構成の一例を示すブロック図である。図11に示すように、ゲーム装置1は、操作部100と、処理部200と、表示部300と、音出力部400と、通信部500と、記憶部600とを備えて構成されている。
【0049】
操作部100は、ゲーム装置1を操作するプレーヤが各種のゲーム操作を入力するための装置であり、操作部100から入力される操作信号は処理部200に出力される。この操作部100は、例えばボタンスイッチ、レバー、ダイヤル、マウス、キーボード、各種センサによって実現され、図1のゲームコントローラ1202がこれに該当する。
【0050】
処理部200は、ゲーム装置1全体の制御、ゲーム装置1内の各機能部への指示、画像処理、音処理等の各種処理を行う。この処理部200の機能は、各種プロセッサ(CPU,DSP等)、ASIC(ゲートアレイ等)等のハードウェアや、所与のプログラムにより実現されるものである。
【0051】
この処理部200は、主な機能部として、ゲーム演算部210と、画像生成部230と、音生成部250とを含み、1フレーム時間(1/60秒)で1枚の画像を生成して表示部300に表示出力させるとともに、適宜効果音やBGMを音出力部400に音出力させる。
【0052】
ゲーム演算部210は、記憶部600から読み出したプログラムやデータ、操作部100から入力される操作信号等に基づいてサッカーゲームを実現するための種々のゲーム処理を実行し、処理結果を画像生成部230や音生成部250に出力する。ゲーム処理としては、例えばゲーム空間にピッチやボール、キャラクタ等のオブジェクトを配置して移動制御する処理、オブジェクトの交差判定処理(ヒットチェック処理)、ライン判定の算出処理、ゲーム結果(成績)の算出処理、仮想カメラ(視点)の配置処理や視線方向及び画角の設定処理等を実行する。このゲーム演算部210は、キャラクタ制御部220及びキックモーション生成部226を含む。
【0053】
キャラクタ制御部220は、入力されたプレーヤのゲーム操作に従って自キャラクタの移動や動作(ドリブル、パス、シュート等)を制御する処理、ノンプレーヤキャラクタの移動や動作を自動制御する処理、ゲームの進行に応じてボールをキープする選手キャラクタ(ボールキープキャラクタ)を決定する処理等を実行する。
【0054】
このキャラクタ制御部220において、キャラクタのキック動作に係る処理を実行する機能部をキック動作制御部221と呼ぶ。キック動作制御部221は、キック動作を発動するか否かの判定や、発動に当たって先行的に衝突予定位置及び衝突予定タイミングを算出する処理、発動するキック動作の種別を判定する処理等を行うとともに、キックモーション生成部226によって生成された実適用モーションデータ680を再生してボールキープキャラクタにキック動作を行わせる制御を行う。
【0055】
キックモーション生成部226は、キック動作制御部221によって選択されたキック動作の種別と、算出された衝突予定位置とに基づいて、2つの基本モーションデータを選択して合成する合成処理を行う。また、合成されて得られた合成モーションデータの衝突予定タイミングの前後所定フレームに対して、キック部位が衝突予定タイミングに衝突予定位置に位置するようなIK処理を行い、処理結果のモーションデータを実適用モーションデータ680として記憶部600に格納する。
【0056】
画像生成部230は、例えば、CPUやDSP等のハードウェアやその制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。この画像生成部230は、ゲーム演算部210による処理結果に基づいてゲーム画像を生成し、生成したゲーム画像の画像信号を表示部300に出力する。
【0057】
音生成部250は、例えば、CPUやDSP等のハードウェアやその制御プログラムによって実現される。この音生成部250は、ゲーム演算部210による処理結果に基づいて、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部400に出力する。
【0058】
表示部300は、画像生成部230から入力される画像信号に基づいて各種ゲーム画像を表示するための装置であり、図1ではディスプレイ1220がこれに該当する。プレーヤは、表示部300に表示されるゲーム画像を見ながら操作部100を操作してゲームを楽しむ。
【0059】
音出力部400は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力するための装置であり、図1ではスピーカ1222がこれに該当する。
【0060】
通信部500は、外部(例えば、対戦相手のゲーム装置1)とのデータ通信を制御する。この通信部500の機能は、例えば、無線通信モジュール、モデム、TA、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では通信装置1218がこれに該当する。
【0061】
記憶部600には、処理部200にゲーム装置1を統合的に制御させるためのシステムプログラムや、ゲームを実行させるために必要なプログラム及びデータが格納される。この記憶部600の機能は、例えばICメモリやハードディスク、メモリカード等により実現されるものであり、図1では、情報記憶媒体1212、メモリカード1214、ICカード1216本体装置1210に具備されるICメモリ等がこれに該当する。
【0062】
特に、本実施形態を実現するため、記憶部600には、処理部200をキャラクタ制御部220として機能させるためのキャラクタ制御プログラム620と、キック動作制御部221として機能させるためのキック動作制御プログラム621と、キックモーション生成部226として機能させるためのキックモーション生成プログラム626とを含むゲームプログラム610が格納される。
【0063】
データとしては、キャラクタ情報630と、ボールキープキャラクタ情報640と、ボールデータ650と、基本モーション情報660と、キック動作先行算出情報665と、合成モーションデータ670と、実適用モーションデータ680とを含む。また、図示しないが、その他のデータとして、ピッチを表示するためのオブジェクトデータ、得点や競技時間等のサッカー競技の実行に必要な各種のデータが適宜格納される。
【0064】
キャラクタ情報630には、プレーヤチーム又は対戦チームに所属してゲームに登場するキャラクタに関するデータが格納される。図12は、キャラクタ情報630の一例を示す図である。このキャラクタ情報630は、キャラクタ毎に用意され、当該キャラクタの選手名が設定される選手キャラ名631、所属チーム名が格納されるチーム名632、当該キャラクタのポジションの情報が格納されるポジション633、現在のピッチFp上の位置座標634、現在の速度635、能力パラメータの一つである能力速度636、当該キャラクタを表示させるためのモデルデータやテクスチャデータが格納されるオブジェクトデータ637等を含む。オブジェクトデータ627に格納される選手キャラクタのオブジェクトは、パーツ毎に階層化されて構成されており、選手キャラクタにモーションデータに基づく様々な動作をさせることが可能となっている。
【0065】
ボールキープキャラクタ情報640は、ボールキープキャラクタを識別するための情報であり、プレーヤチーム及び対戦チームを構成する全てのキャラクタの中から現時点でボールをキープしていると判定されたキャラクタの選手キャラ名が設定される。また、何れのキャラクタもボールをキープしていない場合には、ボールキープキャラクタ無しを示す情報が設定される。
【0066】
ボールデータ650は、ボールに関するデータであり、具体的には、ボールの現在の位置座標やモデリングデータ、マッピングデータ等が含まれている。
【0067】
基本モーション情報660は、図4に示して説明した情報であり、キック動作種別毎に基本キック位置「高」「中」「低」それぞれの基本モーションデータが格納されている情報である。キック動作先行算出情報665には、キック動作の発動が検知された場合に判断されるキック動作種別の他、先行的に算出される衝突予定位置や衝突予定タイミング等が一時的に格納される。
【0068】
合成モーションデータ670及び実適用モーションデータ680は、それぞれキックモーション生成部226の合成処理及びIK処理によって生成されるモーションデータであり、キック動作制御部221によって、実適用モーションデータ680がボールキープキャラクタに適用されて再生されることで、ボールキープキャラクタがキック動作する様子が表現される。
【0069】
[処理の流れ]
次に、図13を参照して、ゲーム装置1が実行する処理の流れについて説明する。尚、ここで説明する処理は、処理部200がキャラクタ制御プログラム620、キック動作制御プログラム621、キックモーション生成プログラム626を含むゲームプログラム610を読み出して実行することにより実現される。
【0070】
ゲーム処理では、先ずゲーム演算部210が、プレーヤチームの何れかのキャラクタを自キャラクタに設定し(ステップA10)、ゲーム空間内にピッチやボール、キャラクタ等のオブジェクトを配置してゲームステージを構築し、ゲームをスタートする(ステップA20)。
【0071】
ゲームがスタートすると、ゲーム演算部210はゲーム終了までループAの処理を繰り返し実行する(ステップA30〜A200)。より具体的には1フレーム時間単位でループAの処理を繰り返す。
【0072】
ループAの処理において、先ずキック動作制御部221が、ボールキック動作を発動させるかどうかを判定することでボールキックの発生を先行的に検知する(ステップA40)。ボールキックの発生が検知された場合(ステップA50:YES)、キック動作制御部221は、蹴り足、キック部位、キックの強度、キックの方向といったキック動作種別を判定する(ステップA60)。そして、ボールとキック部位とが衝突するゲーム空間中の位置である衝突予定位置(ステップA70)と、その衝突予定タイミング(ステップA80)とを先行的に算出する。次いで、キックモーション生成部226がキックモーション生成処理を実行する(ステップA90)。
【0073】
図14は、キックモーション生成処理の流れを説明するための図である。本処理は、キックモーション生成部226によるキックモーション生成プログラム626の実行によって実現される処理である。
【0074】
キックモーション生成部226は、先行的に算出されたキック動作種別及び衝突予定位置に基づいて、基本モーションデータを2つ選択する(ステップB10)。例えば、蹴り足が「右足」、キック部位が「甲」、強度が「弱め」、方向が「右方」で、衝突予定位置の高さが基本キック位置の「中」と「低」の間であった場合、図4の基本モーション情報に従って「モーションRWRM」と「モーションRWRL」とを選択する。
【0075】
次いで、キックモーション生成部226は、衝突予定位置の高さ方向の位置と、選択した2つの基本モーションデータそれぞれの基本キック位置とから、基本モーションデータを合成した場合のキック位置の高さが衝突予定位置の高さとなるような合成比率を算出する(ステップB20)。そして、算出した合成比率で、選択した基本モーションデータを合成して合成モーションデータ670を生成する(ステップB30)。
【0076】
次いで、合成モーションデータ670の各フレームのうち、衝突予定タイミングに基づく前後所定期間分のフレームに対するIK処理を行い、実適用モーションデータ680を生成する(ステップB40)ことで、キックモーション生成処理を終了する。
【0077】
図13に戻り、ステップA50においてボールキックが発生しないと判定された場合又はステップA90におけるキックモーション生成処理が終了した場合、各キャラクタそれぞれについてキャラクタ制御部220がループBの処理を行う(ステップA100〜A160)。以下、ループBの処理対象のキャラクタを「処理対象キャラクタ」と呼んで説明する。
【0078】
キャラクタ制御部220は、ボールキープキャラクタ情報640を参照して処理対象キャラクタがボールキープキャラクタであるかどうか(ステップA110)、ボールキック動作、即ち実適用モーションデータを再生するタイミングが到来したか否か(ステップA120)を判定する。ボールキープキャラクタであり、ボールキック動作を開始するタイミングであると判定した場合には、実適用モーションデータを処理対象キャラクタに適用して、再生を開始する(ステップA130)。この結果、ボールキープキャラクタである処理対象キャラクタのボールキック動作が開始される。
【0079】
次いで、実適用モーションデータの再生が終了したか否かを判定する(ステップA140)。終了していないと判定された場合(ステップA140:NO)、ボールキープキャラクタはキック動作中である。一方、実適用モーションデータの再生が終了した場合(ステップA140:YES)、或いは、処理対象キャラクタがボールキープキャラクタでないか(ステップA110:NO)、ボールキープキャラクタではあるが実適用モーションデータを再生するタイミングが到来していない場合(ステップA120:NO)、通常の移動動作や挙動動作の制御がなされる(ステップA150)。
【0080】
ループBの処理の後、ゲーム演算部210がボールの回転及び移動の制御を行う(ステップA170)とともに、ゲーム判定処理が実行される(ステップA180)。ここで、ボールキープキャラクタの判定や、攻守の判定が行われる。尚、このステップA150,A170,A180の制御については、公知の制御技術であるため説明は省略する。
【0081】
続いて画像生成部230が、ゲーム画面の画像を生成して表示部300に表示させる(ステップA190)。そして、ゲーム演算部210が、ゲーム終了判定を実行し、所定の終了条件を満たしていない場合には、ステップA30に戻ってゲームを継続する。終了条件を満たすならばゲームを終了する。そして、ゲーム演算部210は、ゲームの勝敗等を表示して結果表示を行い(ステップA210)、本処理を終了する。
【0082】
[ハードウェア構成]
次に、図15を参照して、本実施形態におけるゲーム装置1を実現するためのハードウェア構成の一例について説明する。図15に示す装置では、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、画像生成IC1010、音生成IC1008、I/Oポート1012,1014がシステムバス1016により相互にデータ入出力可能に接続されている。I/Oポート1012にはコントロール装置1022が、I/Oポート1014には通信装置1024が、それぞれ接続されている。
【0083】
CPU1000は、情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、コントロール装置1022によって入力される信号等に従って、装置全体の制御や各種データ処理を行う。
【0084】
RAM1004は、CPU1000の作業領域等として用いられる記憶手段であり、情報記憶媒体1006やROM1002内の所与の内容、CPU1000の演算結果等が格納される。
【0085】
情報記憶媒体1006は、プログラム、画像データ、音データ、プレイデータ等が主に格納されるものであり、情報記憶媒体として、ROM等のメモリやハードディスクや、CD−ROM、DVD、ICカード、磁気ディスク、光ディスク等が用いられる。尚、この情報記憶媒体1006は、図11に示す記憶部600に相当するものである。
【0086】
また、この装置に設けられている画像生成IC1010と音生成IC1008により、音や画像の好適な出力が行えるようになっている。
【0087】
画像生成IC1010は、CPU1000の命令によって、ROM1002、RAM1004、情報記憶媒体1006等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される表示信号は、表示装置1018に出力される。表示装置1018は、CRTやLCD、TV、プラズマディスプレイ、或いはプロジェクター等により実現され、図11に示す表示部300に相当する。
【0088】
また、音生成IC1008は、CPU1000の命令によって、情報記憶媒体1006やROM1002に記憶される情報、RAM1004に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ1020によって出力される。スピーカ1020は、図11に示す音出力部400に相当するものである。
【0089】
コントロール装置1022は、プレーヤがゲームに係る操作を入力するための装置であり、その機能は、レバー、ボタン、筐体等のハードウェアにより実現される。尚、このコントロール装置1022は、図11に示す操作部100に相当するものである。
【0090】
通信装置1024は装置内部で利用される情報を外部とやりとりするものであり、プログラムに応じた所与の情報を他の装置と送受すること等に利用される。尚、この通信装置1024は、図11に示す通信部500に相当するものである。
【0091】
そして、ゲーム処理等の上記した処理は、図11に示して説明したゲームプログラム610等を格納した情報記憶媒体1006と、これらプログラムに従って動作するCPU1000、画像生成IC1010、音生成IC1008等によって実現される。CPU1000、画像生成IC1010、及び音生成IC1008は、図11に示す処理部200に相当するものであり、主にCPU1000が図11に示すゲーム演算部210に、画像生成IC1010が図11に示す画像生成部230に、音生成IC1008が図11に示す音生成部250に相当する。
【0092】
尚、画像生成IC1010、音生成IC1008等で行われる処理は、CPU1000或いは汎用のDSP等によりソフトウェア的に行ってもよい。この場合には、CPU1000が、図11に示す処理部200に相当することとなる。
【0093】
以上説明したように、本実施形態によれば、キック動作におけるボールとキック部位との衝突予定位置と衝突予定タイミングとが先行的に算出され、その衝突予定位置の高さに応じて選択された複数の基本モーションデータが合成されて、衝突予定位置の高さに合った高さ位置でキック動作するような合成モーションデータが生成される。そして、合成モーションデータのうちの、衝突予定タイミングの前後所定期間のデータにIK処理が施され、キック部位が衝突予定位置に衝突予定タイミングで到来するように、キック部位の水平方向の位置が補正される。この結果生成される実適用モーションデータは、キック部位が、衝突予定タイミングでボールに衝突する正確なモーションデータとなる。
【0094】
尚、上記実施形態では、キャラクタのキック動作について本発明を適用した場合について説明したが、他の動作に対しても本発明が適用可能なことは勿論である。例えば、キーパーのパンチング動作に対して、パンチングする部位と、ボールとの関係をもとに、本発明を適用することができる。
【0095】
また、モーションデータの合成処理により、衝突予定位置の高さ方向の位置に合わせるようにキック部位の位置を調整し、IK処理により、衝突予定位置の横方向の位置に合わせるようにキック部位の位置を補正することとしたが、これを逆にしてもよい。即ち、基本モーションデータとして、水平方向のキック位置が異なる基本モーションデータを用意しておき、モーションデータの合成処理に際しては、衝突予定位置の水平方向の位置に合わせるようにキック部位の位置を調整する。そして、IK処理においては、衝突予定位置の高さ方向の位置に合わせるようにキック部位の位置を補正する。
【0096】
勿論、キック動作ではなく、キーパーのパンチングの場合にこの逆の処理を行うようにする等してもよい。
【0097】
また、モーションデータの合成処理として2つの基本モーションデータを選択することとしたが複数の基本モーションデータを選択することとしてもよい。例えば、1つのキック動作種別に対して、基本キック位置が高さ方向及び水平方向に異なる複数の基本モーションデータを用意しておき、衝突予定位置の周囲3つ乃至4つの基本モーションデータを選択して、合成することとしてもよい。
【0098】
また、上記した実施形態では、本発明のゲームをサッカーゲームに適用した場合について説明したが、適用可能なゲームの種類はサッカーゲームに限らず、バスケットボールやラグビー、アメリカンフットボール等のスポーツゲームにも同様に、パス動作などに適用できる。また、野球のバッターの打撃動作に対して本発明を適用することとしてもよい。その場合には、バットを含む選手がキャラクタとなる。
【0099】
また、ゲーム装置としては、図1に示した家庭用ゲーム機1200だけでなく、業務用ゲーム機や携帯型ゲーム機、パソコン等の汎用コンピュータ、多数のプレーヤが参加する大型アトラクション装置等の種々の装置にも同様に適用することができる。
【0100】
図16は、本発明のゲーム装置を業務用ゲーム機1300に適用した場合の概観例を示す図である。図16に示すように、業務用ゲーム機1300は、ゲーム画像を表示するディスプレイ1302、ゲームの効果音やBGM等を音出力するスピーカ1304、ゲーム操作を入力する操作ボタン1306や左右に2つ設けられたスティック1308L,1308R等を備えて構成されている。
【0101】
また、業務用ゲーム機1300には、CPU、画像生成IC、音生成IC等が実装されたシステム基板1310が内蔵されており、システム基板1310上の情報記憶媒体であるメモリ1312から読み出したプログラムやデータ、或いは操作ボタン1306やスティック1308L,1308Rから入力される操作信号等に基づいて、各種のゲーム処理を実行する。尚、ディスプレイ1302は図11に示す表示部300に相当し、スピーカ1304は図11に示す音出力部400に相当し、操作ボタン1306やスティック1308L,1308Rは図11に示す操作部100に相当するものである。
【図面の簡単な説明】
【0102】
【図1】本実施形態の家庭用ゲーム機を示す図。
【図2】ゲーム画面の一例を示す図。
【図3】キャラクタの関節構造の模式図。
【図4】基本モーション情報の構成例を示す図。
【図5】基本キック位置と衝突予定位置との関係を説明するための図。
【図6】IK処理を説明するための図。
【図7】基本モーションデータを再生した際の衝突予定タイミングにおける画像例(a)及びその時の骨格モデル(b)の模式図。
【図8】合成モーションデータを再生した際の衝突予定タイミングにおける画像例(a)及びその時の骨格モデル(b)の模式図。
【図9】実適用モーションデータを再生した際の衝突予定タイミングにおける画像例(a)及びその時の骨格モデル(b)の模式図。
【図10】IK処理を適用する期間を説明するための図。
【図11】ゲーム装置の機能構成の一例を示すブロック図。
【図12】キャラクタ情報の一例を示す図。
【図13】ゲーム処理の流れを説明するための図。
【図14】キックモーション生成処理の流れを説明するための図。
【図15】ゲーム装置を実現するためのハードウェア構成の一例を示す図。
【図16】業務用ゲーム機の概観例を示す図。
【符号の説明】
【0103】
1 ゲーム装置
100 操作部
200 処理部
210 ゲーム演算部
220 キャラクタ制御部
221 キック動作制御部
226 キックモーション生成部
230 画像生成部
250 音生成部
300 表示部
400 音出力部
500 通信部
600 記憶部
610 ゲームプログラム
620 キャラクタ制御プログラム
621 キック動作制御プログラム
626 キックモーション生成プログラム
630 キャラクタ情報
640 ボールキープキャラクタ情報
650 ボールデータ
660 基本モーション情報
665 キック動作先行算出情報
670 合成モーションデータ
680 実適用モーションデータ

【特許請求の範囲】
【請求項1】
コンピュータに、ゲーム空間中を移動する移動体を、関節構造を有するキャラクタが所与のヒット部位でヒットするように前記キャラクタのヒット動作を制御して当該キャラクタのヒット動作の画像を生成させるためのプログラムであって、
前記キャラクタが前記移動体をヒットする際の前記ゲーム空間中の衝突予定位置及び衝突予定タイミングを先行的に算出する先行算出手段、
前記キャラクタの各関節の位置変化が定義された所与の複数の基本ヒットモーションデータの合成比率を前記算出された衝突予定位置に基づいて決定し、決定した合成比率で該基本ヒットモーションデータを合成するモーション合成手段、
前記キャラクタの前記ヒット部位が前記算出された衝突予定タイミングで、前記算出された衝突予定位置に到達するように、前記合成されたヒットモーションデータを補正するモーション補正手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
ヒット動作の種別毎に、異なる位置でヒット動作をする複数の基本ヒットモーションデータが予め定められており、
ヒット動作の種別を選択する種別選択手段として前記コンピュータを機能させ、
前記モーション合成手段が、前記種別選択手段により選択された種別に属する複数の基本ヒットモーションデータを合成するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記モーション合成手段が、
前記先行算出手段により算出された衝突予定位置の前記ゲーム空間中の高さに基づいて合成比率を決定する手段と、
ヒット動作の高さが異なる複数の基本ヒットモーションデータを、前記決定した合成比率で合成する手段と、
を有し、
前記モーション補正手段が、前記算出された衝突予定位置の前記ゲーム空間中の水平方向位置に前記ヒット部位を到達させるように補正する、
ように前記コンピュータを機能させるための請求項1又は2に記載のプログラム。
【請求項4】
前記モーション合成手段が、
前記先行算出手段により算出された衝突予定位置の前記ゲーム空間中の水平方向位置に基づいて合成比率を決定する手段と、
ヒット動作の水平方向位置が異なる複数の基本ヒットモーションデータを、前記決定した合成比率で合成する手段と、
を有し、
前記モーション補正手段が、前記算出された衝突予定位置の前記ゲーム空間中の高さ方向位置に前記ヒット部位を到達させるように補正する、
ように前記コンピュータを機能させるための請求項1又は2に記載のプログラム。
【請求項5】
前記モーション補正手段が、前記モーション合成手段により合成されたヒットモーションデータのうち、前記算出された衝突予定タイミングの前後所定時間分のデータを補正するように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
請求項1〜5の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項7】
ゲーム空間中を移動する移動体を、関節構造を有するキャラクタが所与のヒット部位でヒットするように前記キャラクタのヒット動作を制御して当該キャラクタのヒット動作の画像を生成するゲーム装置であって、
前記キャラクタが前記移動体をヒットする際の前記ゲーム空間中の衝突予定位置及び衝突予定タイミングを先行的に算出する先行算出手段と、
前記キャラクタの各関節の位置変化が定義された所与の複数の基本ヒットモーションデータの合成比率を前記算出された衝突予定位置に基づいて決定し、決定した合成比率で該ヒットモーションデータを合成するモーション合成手段と、
前記キャラクタの前記ヒット部位が前記算出された衝突予定タイミングで、前記算出された衝突予定位置に到達するように、前記合成されたヒットモーションデータを補正するモーション補正手段と、
を備えたゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−164721(P2007−164721A)
【公開日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願番号】特願2005−363891(P2005−363891)
【出願日】平成17年12月16日(2005.12.16)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】