(57)【特許請求の範囲】
【請求項１】
コンピュータに、打具を有するキャラクタがボールを打撃するための打撃動作をプレーヤの操作指示に基づき、記憶部に記憶されたモーションのデータを用いて制御させ、前記キャラクタを含む仮想空間の画像を生成させるためのプログラムであって、
前記キャラクタに対応づけて予め定められた、前記記憶部に記憶されたテイクバック用モーションのデータに基づいて、前記キャラクタのテイクバックの動作を制御することと、
プレーヤの操作入力に従って打撃位置を指定することと、
前記打具と前記ボールとの交差判定をするための平面領域として定められた打撃面において離散的に定められた基準点の中から、前記指定された打撃位置に近接する所定数の基準点を選択し、該選択された基準点それぞれに予め対応づけられた基本スイングモーションを、前記記憶部に記憶された当該基本スイングモーションのデータを用いて、当該選択された基準点と前記打撃位置との位置関係に応じた合成率で合成処理することでスイングモーションを生成することと、
前記生成されたスイングモーションに基づいて、前記テイクバックの動作制御に引き続いて、前記キャラクタのスイングの動作を制御することと、
を前記コンピュータに実行させるためのプログラム。
【請求項２】
前記打具より大きい大きさの衝突判定領域を前記打撃位置に基づいて前記打撃面上に設定することと、
前記衝突判定領域と前記ボールの軌道とが交差するか否かを判定することと、
前記交差するか否かの判定により交差しないと判定された場合には、前記キャラクタの前記スイング動作を補正せず、交差すると判定された場合には、前記打具が当該交差位置を通過するように前記スイング動作を補正することと、
を前記コンピュータに更に実行させるための請求項１に記載のプログラム。
【請求項３】
前記衝突判定領域が、予め複数のエリアに分割されており、
前記交差するか否かの判定により交差すると判定された場合に、前記複数のエリアのうち前記交差位置が位置するエリアに対応づけられた、前記キャラクタの前記打具を保持する手首の補正角に従って、前記キャラクタの前記スイング動作の前記補正を行うこと、
を前記コンピュータに更に実行させるための請求項２に記載のプログラム。
【請求項４】
前記基本スイングモーションの合成処理における処理遅延の発生を検出することと、
前記処理遅延の発生が検出された場合に、前記基本スイングモーションの合成処理を中止することと、
前記処理遅延の発生が検出された場合に、前記スイングの動作を、前記打撃位置に最も近い基準点の基本スイングモーションに基づいて制御することと、
を前記コンピュータに更に実行させるための請求項１〜３の何れか一項に記載のプログラム。
【請求項５】
前記キャラクタからの遠近に応じて前記打撃面に予め定められた基準線の中から、前記打撃位置に近接する所定数の基準線を選択し、該選択された基準線それぞれに予め対応づけられた基本フォロースルーモーションを、前記記憶部に記憶された当該基本フォロースルーモーションのデータを用いて、当該選択された基準線と前記打撃位置との位置関係に応じた合成率で合成することでフォロースルーモーションを生成することと、
前記生成されたフォロースルーモーションに基づいて、前記スイングの動作制御に引き続いて、前記キャラクタのフォロースルーの動作を制御することと、
を前記コンピュータに更に実行させるための請求項１〜４の何れか一項に記載のプログラム。
【請求項６】
プレーヤの操作入力に従って、スイングの種類を指定することと、
前記指定されたスイングの種類に応じて、前記テイクバックの動作と、前記スイングの動作と、前記フォロースルーの動作とに要するフレーム数を配分することと、
を前記コンピュータに更に実行させるとともに、
前記テイクバックの動作制御、前記スイングの動作制御および前記フォロースルーの動作制御を、前記配分されたフレーム数に従って行う、ように前記コンピュータを実行させる、
ための請求項５に記載のプログラム。
【請求項７】
請求項１〜６の何れか一項に記載のプログラムを記憶したコンピュータ読取可能な情報記憶媒体。
【請求項８】
打具を有するキャラクタがボールを打撃するための打撃動作をプレーヤの操作指示に基づき、記憶部に記憶されたモーションのデータを用いて制御し、前記キャラクタを含む仮想空間の画像を生成するゲーム装置であって、
前記キャラクタに対応づけて予め定められた、前記記憶部に記憶されたテイクバック用モーションのデータに基づいて、前記キャラクタのテイクバックの動作を制御することと、
プレーヤの操作入力に従って打撃位置を指定することと、
前記打具と前記ボールとの交差判定をするための平面領域として定められた打撃面において離散的に定められた基準点の中から、前記指定された打撃位置に近接する所定数の基準点を選択し、該選択された基準点それぞれに予め対応づけられた基本スイングモーションを、前記記憶部に記憶された当該基本スイングモーションのデータを用いて、当該選択された基準点と前記打撃位置との位置関係に応じた合成率で合成することでスイングモーションを生成することと、
前記生成されたスイングモーションに基づいて、前記テイクバックの動作制御に引き続いて、前記キャラクタのスイングの動作を制御することと、
を実行するゲーム装置。
【請求項９】
プレーヤ端末と通信接続され、当該プレーヤ端末からの操作指示に基づいて、ボールを打撃するための打撃動作を打具を有するキャラクタに行わせる画像を、記憶部に記憶されたモーションのデータを用いて生成して、前記プレーヤ端末に送信するホスト装置であって、
前記キャラクタに対応づけて予め定められた、前記記憶部に記憶されたテイクバック用モーションのデータに基づいて、前記キャラクタのテイクバックの動作を制御することと、
前記プレーヤ端末からの操作指示に従って打撃位置を指定することと、
前記打具と前記ボールとの交差判定をするための平面領域として定められた打撃面において離散的に定められた基準点の中から、前記指定された打撃位置に近接する所定数の基準点を選択し、該選択された基準点それぞれに予め対応づけられた基本スイングモーションを、前記記憶部に記憶された当該基本スイングモーションのデータを用いて、当該選択された基準点と前記打撃位置との位置関係に応じた合成率で合成することでスイングモーションを生成することと、
前記生成されたスイングモーションに基づいて、前記テイクバックの動作制御に引き続いて、前記キャラクタのスイングの動作を制御することと、
前記テイクバックの動作制御および前記スイングの動作制御による前記キャラクタの打撃動作の画像を生成することと、
を実行するホスト装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータに、打具を有するキャラクタがボールを打撃するための打撃動作をプレーヤの操作指示に基づいて制御させ、前記キャラクタを含む仮想空間の画像を生成させるためのプログラム等に関するものである。
【０００２】
【従来の技術】
近年では、仮想空間を用いた種々のスポーツゲームが開発されており、中には、野球ゲームやテニスゲーム、ゴルフゲームといった球技ゲームもあり、それぞれ人気を集めている。これらのゲームでは、プレーヤはコントローラにより仮想空間に登場する選手キャラクタを操作して擬似的に選手の気分を堪能したり、ゲーム戦略を思考してコンピュータや他のプレーヤとの勝敗を争うこととなる。
【０００３】
例えば、野球ゲームにおいて、プレーヤが打者キャラクタを操作する場合には、プレーヤは、スイング時におけるバットの位置や軌道を入力指示し、また、バットを振るタイミングを入力指示する。ゲーム装置の処理系は、これらの入力指示に従ってバットとボールのミート判定を行い、その後のゲームの展開を決定する。換言すれば、打者キャラクタを操作するプレーヤは、バットを振る際の軌道、タイミングを入力することによって、実際の野球における打者の立場を擬似体験することができる。
【０００４】
すなわち、この手の野球ゲームでは、プレーヤが如何に正確に投球の軌道を予測してバットを振る位置を指定できるか、また、タイミング良く操作入力ができるかによって、ゲーム展開が分かれる。したがって、打者キャラクタのバットの軌道や打撃タイミングを詳細に指定できる操作設定が成されているものほど、また、ボールの位置（座標）やタイミング判定等の内部処理が詳細に実行できるものほど、ゲームの展開が多様化し、より現実的なゲームとなる。
【０００５】
一方で、上述のように、プレーヤによる操作に応じた内部処理を時空間的に詳細に実行する場合には、その内部処理の精密度に合わせて画面上に表示するキャラクタの動作も詳細化させることが望ましい。例えば、上述のような野球ゲームにおいて、プレーヤが打者キャラクタのスイングについて内角めに振る場合から外角めに振る場合まで自由に指示できるように設定する場合には、その入力指示に応じて打者キャラクタのスイングを変化させなければ説得力のある画面表示ができず、ゲーム処理の信頼性を欠くこととなる。だからといって、内角から外角へと、あるいは、高めから低めへとスイングを自由に選択できるようにするために、動作情報を無数に用意することは現実的な方法ではない。また、予め記憶すべき情報量が増大すれば、適当な情報を抽出する処理に遅延を来し好ましくない。
【０００６】
そこで、個々のキャラクタを共通する関節構造によって定義し、一連の打撃動作を制御するためのモーションデータを全てのキャラクタに対して適用する。その際、プレーヤの入力指示に応じて複数のモーションデータを抽出し、適当な割合で合成するといった方法を採用する場合がある。すなわち、打撃を実行する都度、モーションデータを生成する方法である。具体的には、各キャラクタを階層化した関節構造により定義する。例えば、足や、腰、胸、頭、腕といったパーツに分け、胴体部には右上腕と左上腕が連結し、右上腕には右前腕が連結するといった具合に階層化し、下の階層のパーツは上の階層の座標系に基づいて上の階層のパーツと共に動くように設定する。一方、モーションデータには、個々のキーフレームにおける各関節の角度を設定する。そして、モーションデータを合成する際には、プレーヤの入力指示に応じて合成率を決定し、時間的に並列するキーフレームにおける各関節の角度を合成する。
【０００７】
このように、関節構造に基づくモーションデータを複数種類用意し、これらをプレーヤの入力指示に基づいて合成する方法を採用することで、プレーヤの入力指示に応じた任意の位置へのスイングを実現させる場合がある。また、個々のキャラクタを階層構造により定義することにより、キャラクタの見かけ上の違いや、大きさや太さといった違いに関わらず、１つのモーションデータによってあらゆるキャラクタに対して同じ動きを実現できるようにしている。
【０００８】
【発明が解決しようとする課題】
近年では、球技ゲームにおいて、実在する選手をゲーム空間に登場させるといった、リアル性を追求したゲームが注目を集めている。例えば、野球ゲームにおいては、実在する野球選手を模したキャラクタを登場させたり、その実在する打者の打率や安打数、盗塁数、投球スピード等のデータを内部処理に反映させることにより、リアル性を強調させる方法が考えられる。このとき、プレーヤは、日頃テレビやラジオなどで見聞きする選手の特徴を思い浮かべながら、画面上に登場するキャラクタを操作してゲームを楽しむ。
【０００９】
しかしながら、上述のように、階層構造に基づくモーションデータを用いてキャラクタの動きを制御すれば、実在する選手を模倣した個々のキャラクタが、全て等しい動作を実行することとなる。例えば、現実のプロ野球において、バットを高めに構える特徴のある選手も、両足を大きく開いて構える選手も、ゲーム空間上では全て同一の構えをし、また、同一のバットの振り方をすることとなる。これでは実在の選手らしさが半減され、説得力のある現実的なゲーム画像を表示することができない。
【００１０】
すなわち、従来の方法のように、モーションデータを全てのキャラクタに対して共有させれば、キャラクタの容姿の違いはあるにせよ、その個々のキャラクタの動きに個性を表現することができず、現実性を欠く恐れがあった。また、キャラクタの１つ１つに対してそれぞれ別途独立したモーションデータを定義する方法も考えられるが、野球ゲームのような球団数や選手数の多いゲームには適する方法ではない。
【００１１】
本発明の課題は、上記事項に鑑みて成されたものであって、より少ないデータ量で、個々のキャラクタに個性ある動作を実現させることである。
【００１２】
【課題を解決するための手段】
上記課題を解決するための第１の発明は、キャラクタの動作を制御することにより、一連の動作（例えば、本実施の形態における打撃モーション）を前記キャラクタ（例えば、本実施の形態における打者キャラクタ）に行わせて所与のゲーム（例えば、本実施の形態における野球ゲーム）を実行する装置において利用され、当該キャラクタの動作制御の基礎となるモーションデータ（例えば、図１４に示す打撃モーションテーブル４２０）であって、前記一連の動作における第１の動作期間に係る第１モーションデータ（例えば、図１８に示す第１段階テーブル４２２に含まれるモーションデータ）と、前記一連の動作における第２の動作期間に係る第２モーションデータ複数からなる第２モーションデータ群と、を含み、前記第１モーションデータと、前記第２モーションデータ群の内の何れかの第２モーションデータとによって前記一連の動作のためのモーションデータを構成可能であると共に、前記第２モーションデータは、少なくとも主モーションデータ（例えば、図１９に示す第２段階テーブル４２４に含まれるモーションデータ）と従モーションデータ（例えば、図２１に示す第３段階テーブル４２６に含まれるモーションデータ）とからなり、主モーションデータと従モーションデータの組み合わせに応じて複数の第２モーションデータが構成されるモーションデータである。
【００１３】
この第１の発明によれば、キャラクタに一連の動作を実行させるためのモーションデータを、第１の動作期間と第２の動作期間とにわけて記憶する。その際、第２の動作期間に係る第２モーションデータを複数種類記憶することとした。更に、第２モーションデータ群を、複数の主モーションデータと複数の従モーションデータとから構成し、第２モーションデータを、主モーションデータと従モーションデータの組み合わせによって構成されることとした。したがって、第１の動作期間に係る動作と、第２の動作期間に係る動作との組み合わせ方次第で、一連の動作のバリエーションを増やすことができる。
【００１４】
また、第２の発明は、関節構造（例えば、図１３に示す関節構造）が共通する複数のキャラクタの動作を制御するとともに、前記複数のキャラクタの内、何れかのキャラクタに一連の動作を行わせて所与のゲームを実行する装置において利用されるモーションデータであって、前記一連の動作における第１の動作期間に係る第１モーションデータ複数からなる第１モーションデータ群（例えば、図１８に示す第１段階テーブル４２２）と、前記一連の動作における第２の動作期間に係る第２モーションデータ複数からなる第２モーションデータ群と、を含み、前記第１モーションデータ群の内の何れかの第１モーションデータと、前記第２モーションデータ群の内の何れかの第２モーションデータとによって前記一連の動作のためのモーションデータを構成可能であると共に、前記第２モーションデータは、少なくとも主モーションデータ（例えば、図１９に示す第２段階テーブル４２４に含まれるモーションデータ）と従モーションデータ（例えば、図２１に示す第３段階テーブル４２６に含まれるモーションデータ）とからなり、主モーションデータと従モーションデータの組み合わせに応じて複数の第２モーションデータが構成されるモーションデータである。
【００１５】
この第２の発明によれば、一連の動作を、第１の動作期間と第２の動作期間とに分割し、更に、関節構造が共通な複数のキャラクタに適用可能な構成にする。このため、第１の動作期間と第２の動作期間に係る動作の組み合わせ如何により一連の動作パターンのバリエーションを増大させることができると共に、複数のキャラクタに対してその豊富な動作パターンを適用させることができる。したがって、複数存在するキャラクタ１つ１つに対して一連の動作パターンを個別に用意することなく、第１・第２モーションデータの組み合わせを各キャラクタに対応させることにより、少ないデータ量で各キャラクタ特有の動作を実現させることができる。
【００１６】
なお、一連の動作における何れのモーションデータに対しても主従関係を持たない付随モーションデータを、一連の動作に後続させてもよい。すなわち、第３の発明として、第１または第２の発明のモーションデータにおいて、前記第３モーションデータ群の何れの第３モーションデータにも付随可能な付随モーションデータを更に含み、前記一連の動作と合わせた付随動作のためのモーションデータを構成可能としてもよい。
【００１７】
また、第４の発明は、プロセッサによる演算・制御により、キャラクタの動作を制御することにより、一連の動作を前記キャラクタに行わせ、前記キャラクタを含む仮想空間の画像を所与の視点に基づいて生成して所与のゲームを実行する、ように、当該プロセッサを有する装置に機能させるためのゲーム情報であって、前記一連の動作における第１の動作期間に係る第１モーションデータと、前記一連の動作における第２の動作期間に係る第２モーションデータ複数からなる第２モーションデータ群と、を含み、操作指示入力に基づいて、前記第２モーションデータ群の内、複数の第２モーションデータの採用を決定し、採用した複数の第２モーションデータを合成して新たな第２モーションデータを生成する生成手段（例えば、図１４に示すモーションデータ抽出部２２８および合成処理部２３０）と、前記第１モーションデータと、前記生成手段により生成された第２モーションデータとに基づいて、前記キャラクタの一連の動作を制御する制御手段と、を前記装置に機能させるための情報を含むゲーム情報である。
【００１８】
また、第１９の発明は、所与の視点に基づいてキャラクタが存する仮想空間の画像を生成し、当該生成画像を表示させることで所与のゲームを実行するゲーム装置であって、前記キャラクタの一連の動作における第１の動作期間に係る第１モーションデータと、前記一連の動作における第２の動作期間に係る第２モーションデータ複数からなる第２モーションデータ群と、を記憶する記憶手段と、操作指示入力に基づいて、前記第２モーションデータ群の内、複数の第２モーションデータの採用を決定し、採用した複数の第２モーションデータを合成して新たな第２モーションデータを生成する生成手段と、前記第１モーションデータと、前記生成手段により生成された第２モーションデータとに基づいて、前記キャラクタの一連の動作を制御する制御手段と、を備えるゲーム装置である。
【００１９】
この第４または第１９の発明によれば、第２の動作期間における動作を、予め記憶された複数の第２モーションデータを合成することにより決定することができる。その際、採用された複数の第２モーションデータを合成する割合について、プレーヤによる操作指示入力に応じて決定するように設定すれば、プレーヤの意図した通りにキャラクタに動作させることができる。具体的な例としては、野球ゲームにおいて、バットを振る位置をアナログ的に指定できる設定とする場合、バットの振り位置に応じた無数のモーションデータが必要となるが、無数のモーションデータを用意することなく、操作指示入力に応じた動作を実現させることができる。
【００２０】
なお、第２モーションデータを、複数のモーションデータの組み合わせによって構成されるようにしてもよい。すなわち、第５の発明として、第４の発明のゲーム情報において、前記第２モーションデータは、少なくとも主モーションデータと、従モーションデータとからなり、主モーションデータと従モーションデータの組み合わせに応じて複数の第２モーションデータが構成されるようにゲーム情報を構成することとしてもよい。このように、組み合わせによって決定される構成にすることで、動作のバリエーションを更に増やすことが可能となる。
【００２１】
また、第６の発明として、第４または第５の発明のゲーム情報において、前記制御手段が、第１モーションデータ及び／又は第２モーションデータの再生スピードを変更する手段を備えるように機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００２２】
この第６の発明によれば、一連の動作における再生スピードを変更できる。このとき、一連の動作全体、若しくは、第１の動作期間、第２の動作期間のいずれの再生スピードを変更してもよい。なお、再生スピードを変更する条件としては、例えば、キャラクタ毎に設定したり、キャラクタが有する体力値等のパラメータの値に応じて設定するなどが考えられる。このように種々の条件に応じて再生スピードを変更することにより、プレーヤに与えるキャラクタの動作の印象を変化させることができる。
【００２３】
また、第７の発明として、第４から第６のいずれかの発明のゲーム情報において、前記制御手段が、前記一連の動作に要する時間に基づいて、前記一連の動作の開始タイミングを決定するように機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００２４】
この第７の発明によれば、一連の動作の開始タイミングを、その一連の動作に要する時間に基づいて決定する。換言すれば、プレーヤの入力指示によらずに、自動的にキャラクタに一連の動作を開始させることができる。すなわち、ゲーム操作の一部を自動制御することが可能となり、ゲーム操作の煩雑化を防ぐことができる。
【００２５】
また、第８の発明として、第４から第７のいずれかの発明のゲーム情報において、前記生成手段が、前記操作指示入力および所与の条件に応じて、採用する第２モーションデータを決定する、ように機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００２６】
この第８の発明によれば、第２モーションデータを決定する際、操作指示入力に応答して、一意に決定するのではなく、操作指示入力と更にその他の条件に応じて決定する。したがって、１のキャラクタに対してプレーヤが続けて同じ操作指示入力をした場合であっても、条件が異なれば異なる動作を実行させることができる。
【００２７】
また、第９の発明として、第４から第７のいずれかの発明のゲーム情報において、前記モーションデータには、前記第２モーションデータ群の何れの第２モーションデータにも付随可能な付随モーションデータが含まれており、前記生成手段が、所与の条件に応じて付随モーションデータの採用をも決定する、ように機能させるための情報と、前記制御手段が、前記生成手段により決定された付随モーションデータに基づいて、前記一連の動作に付随した動作をキャラクタに行わせるように機能させるための情報と、を含むゲーム情報を構成することとしてもよい。
【００２８】
この第９の発明によれば、一連の動作に付随させる付随モーションデータがモーションデータに含まれる場合に、条件に応じて採用する付随モーションデータを決定し、一連の動作に付随させてキャラクタに実行させる。したがって、プレーヤが操作指示入力により１のキャラクタに対して同じ一連の動作を指示した場合であっても、条件に応じて異なる付随動作を付加することができ、動作パターンのバラエティーを増やすことができる。
【００２９】
なお、所与の条件とは、如何なる条件であってもかまわないが、例えば、第１０の発明として、第８または第９の発明のゲーム情報において、前記所与の条件には、前記キャラクタの所与のパラメータが含まれるようにゲーム情報を構成することとしてもよい。あるいは、第１１の発明として、第８から第１０のいずれかの発明のゲーム情報において、前記所与の条件には、前記キャラクタの一部と所与のオブジェクトとの衝突有無が含まれるようにゲーム情報を構成することとしてもよい。
【００３０】
また、第１２の発明として、第４から第１１のいずれかの発明のゲーム情報において、前記第１モーションデータに対応する第１対応モーションデータと、前記第２モーションデータに対応する第２対応モーションデータと、を含むと共に、前記第１対応モーションデータと、前記生成手段により採用された第２モーションデータに対応する第２対応モーションデータとに基づいて、前記キャラクタの動作に随伴する物体もしくは現象の動きを制御する手段を機能させるための情報と、を含むゲーム情報を構成することとしてもよい。
【００３１】
この第１２の発明によれば、キャラクタの動作に随伴する物体もしくは現象の動きを、第１・第２モーションデータに対応する対応モーションデータに基づいて表現する。例えば、キャラクタの影を対応モーションデータによって表現すれば、キャラクタの動きによって一意的に決定される影の動きをキャラクタの動作と合わせて同時に生成することができる。
【００３２】
また、第１３の発明として、第４から第１２のいずれかの発明のゲーム情報において、前記所与のゲームは、ボールと、前記ボールを打つための打具（例えば、本実施の形態におけるバット６）とを用いる球技ゲームであって、前記キャラクタの一連の動作は、前記キャラクタが前記打具を用いて前記ボールを打撃する動作である、ゲーム情報を構成することとしてもよい。ここで、ボールとは、球状のものや、コマ、ハネ、円盤状のものなど、球技ゲームで用いられる球を含む。また、打具とは、野球ゲームにおけるバット、テニスゲームにおけるラケット、ゴルフゲームにおけるクラブ、ホッケーにおけるスティックなど、ボールを打つための道具を含む。
【００３３】
この第１３の発明によれば、球技ゲームにおける打者キャラクタの打撃に係る一連の動作を、第１モーションデータと第２モーションデータとの組み合わせによって決定することができる。例えば、構えやテイクバックの動作期間を第１の動作期間とし、スイングやフォロースルーなどの動作期間を第２の動作期間として定義する。そして、第１モーションデータを各キャラクタに固定的に設定し、第２モーションデータをプレーヤの操作指示入力に応じて決定するように設定すれば、テイクバックを実在の選手に似せた固有の動きによって表現し、スイングやフォロースルーを、操作指示入力に対して忠実な動きによって表現することができる。
【００３４】
また、第１４の発明として、第１３の発明のゲーム情報において、前記制御手段が、前記キャラクタの一連の動作を制御する際、前記第１モーションデータ、および、前記第２モーションデータに基づく前記一連の動作を、前記ボールの位置情報に基づいて補正する、ように機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００３５】
この第１４の発明によれば、第１・第２モーションデータに基づく一連の動作を、ボールの位置に応じて補正する。なお、このとき、第１５の発明として、第１４の発明のゲーム情報において、前記制御手段が、前記打具が前記ボールと衝突するように前記キャラクタの一連の動作を補正する、ように機能させるための情報を含むゲーム情報を構成することとしてもよい。例えば、ボールと打具とが衝突して見えるように打具の軌道を補正するといったことができる。
【００３６】
また、第１６の発明として、第１４または第１５の発明のゲーム情報において、前記打具と前記ボールとの衝突判定を実行するための衝突判定領域の位置を前記プレーヤの入力指示に応じて決定する手段を機能させるための情報と、前記制御手段が、前記ボールの軌道と前記衝突判定領域とが交差する場合に、前記キャラクタの一連の動作を補正する、ように機能させるための情報と、を含むゲーム情報を構成することとしてもよい。
【００３７】
この第１６の発明によれば、制御手段による補正の実行有無を決定する条件は、打具とボールとの衝突判定を行うための衝突判定領域に、ボールの軌道が交差するときである。したがって、打具とボールとのタイミングが合わない場合であっても、ボールが衝突判定領域内を通過する場合には、キャラクタの一連の動作を補正できる。
【００３８】
あるいは、打具とボールとの衝突を判定した後に、制御手段による補正を実行するようにしてもよい。すなわち、第１７の発明として、第１４または第１５の発明のゲーム情報において、前記打具と前記ボールとの衝突を判定する衝突判定手段を機能させるための情報と、前記制御手段が、前記衝突判定手段により前記打具と前記ボールとが衝突する判定がされた場合に、前記キャラクタの一連の動作を補正する、ように機能させるための情報と、を含むゲーム情報を構成することとしてもよい。
【００３９】
また、第１８の発明として、第１から第３のいずれかの発明のモーションデータ、若しくは、第４から第１７のいずれかの発明のゲーム情報を記憶する情報記憶媒体を構成することとしてもよい。
【００４０】
【発明の実施の形態】
以下に、本発明の好適な実施の形態について、図面を参照して説明する。なお、以下では、本発明を野球ゲームにおける打者キャラクタの打撃モーションに適用し、家庭用のゲーム装置にて実現する場合について説明するが、本発明の適用については、これに限定する必要はない。また、以下では、プレーヤが打者キャラクタを操作し、投手キャラクタをコンピュータ（ゲーム装置）が制御する場合を例に説明するが、２人以上のプレーヤがそれぞれ打者キャラクタ、投手キャラクタを操作して対戦するゲームに適用してもよい。
【００４１】
図１は、家庭用のゲーム装置の一例を示す図である。同図によれば、ゲーム装置１２１０は、ディスプレイ１２００、ゲームコントローラ１２０２、１２０４等が着脱自在な構成になっている。また、ゲームプログラムや本発明を実現するために必要な情報等のゲーム情報は、ゲーム装置１２１０に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１２０６、ＩＣカード１２０８、メモリカード１２１２、および、ゲーム装置１２１０本体が備える情報記憶媒体等に格納されている。プレーヤは、ディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２あるいは１２０４を用いて操作することによって、野球ゲームを楽しむ。
【００４２】
図２は、捕手キャラクタの視点に基づいて生成した画像の一例を示す図である。本実施の形態では、ゲーム装置の処理系は、同図に示すように、打者キャラクタが本塁に立つと、ストライクゾーン４と、真芯カーソル６とを表示する。ここで、真芯カーソル６とは、打撃面におけるバット８の真芯１０の位置を指定するための表示物であり、プレーヤは、コントローラ１２０２、１２０４の左右キーや上下キーを押下することにより真芯カーソル６の位置を指定する。すなわち、プレーヤは、真芯カーソル６の位置と、打撃を開始するタイミングとを入力することによって、打者キャラクタ２の打撃を操作する。
【００４３】
なお、打撃面とは、ストライクゾーン４と平行な地表面と垂直に交わる平面であって、ゲーム装置の処理系がバット８とボールとのミート判定をする際の位置を意味する。すなわち、ゲーム装置の処理系は、ボールが打撃面を通過するタイミングと、打撃モーションにおけるバット８が打撃面を通過するタイミングとが一致するか否かの判定結果に基づいてバット８とボールのミート判定をする。
【００４４】
また、ゲーム装置の処理系は、プレーヤから打撃を開始する指示が入力されると、真芯カーソル６の位置を判定し、バット８の真芯が真芯カーソル６の位置を通過するように、打撃モーションを決定する。本発明は、この打撃モーションを決定する際に、より少ないデータ量で個々の打者キャラクタにそれぞれ特有の打撃モーションを実現させるためのものである。
【００４５】
まず、本発明の概要について説明する。
本実施の形態では、打者キャラクタがバット８を構えた状態から振り終るまでの一連の動作を１つのモーションデータとして定義するのではなく、打撃のモーションを３つの段階に分割し、各段階に属するモーションをそれぞれ独立したモーションデータにより実現する。そして、ゲーム実行中においては、プレーヤから打撃を開始する指示が入力されると、各段階に属するモーションデータをそれぞれ抽出し、組み合わせて一連の打撃モーションを生成する。
【００４６】
図３は、打撃モーションを３つの段階に分割した一例を示す図である。同図によれば、第１段階は構えとテイクバック、第２段階がスイング、第３段階がフォロースルーである。すなわち、第１段階には、構えやテイクバックを打者キャラクタに実現させるためのモーションデータが対応し、第２段階には、各種のスイングを実行させるためのモーションデータが、第３段階には、フォロースルーを実現させるためのモーションデータが対応する。なお、テイクバックとは、バット８を振る直前にバット８を後に引く動作を意味する。また、スイングとは、ここでは、打者キャラクタがテイクバックの状態から打撃面までバット８を振る動作を意味し、フォロースルーとは、打撃面から打者キャラクタの肩越しにバット８を振り切る動作を意味する。
【００４７】
なお、第１段階では、「構え」および「テイクバック」のモーションを複数種類用意し、個々の打者キャラクタに対してそれぞれ固定的に設定する。換言すれば、打者キャラクタには、その後の動作の種類に拘わらず、予め設定した１種類の「構え」および「テイクバック」のモーションを実行させる。一方、第２段階、第３段階では、「スイング」や「フォロースルー」のモーションを、バット８の真芯１０が打撃面を通過する際の位置に応じたモーションデータを設定する。すなわち、打撃モーションにおける第１段階では、プレーヤの入力指示によらず各打者キャラクタに設定された固定のモーションデータを用い、第２・第３段階では、プレーヤにより指示された真芯カーソル６の位置に基づいて最適なモーションデータを抽出して用いる。以下では、第１段階のモーションを固定モーションともいう。また、以下に、各段階におけるモーションの種類について説明する。
【００４８】
図４は、第１段階における固定モーションの種類の一例を示した図である。同図によれば、個々の固定モーションは、バット８のグリップ位置、スタンス、テイクバックの３つの特徴を持ち、それぞれ標準タイプと特徴的なタイプのいずれかの組み合わせによって構成される。具体的には、バット８のグリップ位置については、標準的な高さに構えるタイプとやや高めに構えるタイプとを設定し、スタンスは、標準的な開き幅のタイプとやや広めに開くタイプとを設定し、テイクバックは、両足を地に着けて重心のみを移動させるタイプと片足を上げて重心移動させるタイプとを設定する。そして、これらのタイプの組み合わせによって、８通りの固定モーションを設定する。
【００４９】
第２段階では、スイング時における打者キャラクタの体勢の種類毎に、真芯１０の打撃面通過位置に応じたモーションのパターンを用意する。ここで、体勢の種類とは、例えば、スタンスの広さや、大振り小振りなどバット８の振り方等、打者キャラクタがバット８を振る際の全体の体勢に拘わる種類を意味する。また、真芯１０の打撃面通過位置とは、内角低め、外角高めといった、打撃面上における真芯１０の位置を意味する。
【００５０】
図５は、第２段階における体勢の種類、すなわち、スタンスとバット８の振り方の組み合わせ例を表示した図である。同図によれば、スタンスの種類として標準タイプとオープンタイプの２種類を設定し、バット８の振り方の種類として標準タイプと大振りタイプの２種類を設定する。したがって、これらの組み合わせから、打者キャラクタに実行させるスイングの体勢の種類が４つ設定される。この４つの体勢の中から１の体勢を選択する処理は、例えば、スタンスについては、第１段階における打者キャラクタのスタンスの種類に応じて一意的に決定し、バット８の振り方については、プレーヤの入力指示に応じて選択するように設定する。
【００５１】
なお、プレーヤは、真芯１０の打撃面通過位置を真芯カーソル６によって指定することとなるが、真芯カーソル６を打撃面上に連続的に移動可能な構成にする場合には、真芯カーソル６の位置に応じた無数のモーションデータが必要となる。かといって、その無数のモーションデータを予め用意することは現実的な方法ではない。そこで、以下では、打撃面上に９つの基準点を定義し、バット８の真芯１０が基準点を通過するように構成された９つのスイングのモーションデータを用意する。そして、ゲームの実行中において、プレーヤに指定された真芯カーソル６の位置近傍のいくつかの基準点を抽出し、その抽出した基準点に対応する各モーションデータを合成することによって、真芯カーソル６の位置に応じたスイングのモーションを生成する。
【００５２】
すなわち、第２段階では、図５に示した体勢毎に、それぞれ９つの基準点に対するスイングのモーションデータを定義する。ただし、第２段階における個々のモーションデータは、対応する基準点と真芯カーソル６との位置関係に基づいてそれぞれ合成されるものであるから、個々の基準点の位置は、打撃面上の特徴的な位置に定義されることが望ましい。図６（ａ）は、打撃面上に基準点を設定した一例を示す図である。同図によれば、打撃面上の鉛直方向に内角となる列、真中の列、外角となる列を定義し、それぞれの列の、高め、真中、低めの位置に基準点を設定する。以下では、この基準点へのスイングを基本スイングという。図６（ｂ）は、基本スイングの種類を示した図である。
【００５３】
このように、第２段階では、スイングにおける打者キャラクタの体勢と、打撃する位置に応じた３６パターンの基本スイングのモーションを定義する。換言すれば、プレーヤが同じ位置に真芯カーソル６を指定しても、打者キャラクタの違いや、大振り小振りといったバット８の振り方の違いによって、異なるモーションを実現させることができる。
【００５４】
第３段階でも、第２段階と同様に、打者キャラクタがフォロースルーを実行する際の体勢の種類毎に、真芯１０の打撃面通過位置に応じたモーションを用意する。なお、第３段階における体勢の種類には、スタンスと、バット８の扱い方の種類を用意する。ここで、バット８の扱い方とは、例えば、アッパースイングにするか否かといったバット８の振り方や、バット８を振りきった際にバット８を投げ捨てるか否かといった種類を意味する。
【００５５】
図７は、第３段階における体勢の種類の一例を示す図である。同図によれば、体勢の種類として、フォロースルーの種類とスタンスの種類の組み合わせからなるパターンを設定する。具体的には、フォロースイングには、標準タイプと、アッパータイプ、標準型バット投げタイプ、アッパー型バット投げタイプの４種類のタイプを設け、スタンスには、標準的なスタンスタイプと、足を大きめに開くオープンタイプとを設ける。そして、これらの組み合わせに基づく、フォロースルーを設定する。ただし、前述の通り、スタンスに関しては、第１段階における打者キャラクタのスタンスの種類に応じて一意に決定する。アッパーのモーションはプレーヤの入力指示に応じて決定し、バット投げの有無はミート判定の結果に応じて決定する。
【００５６】
また、第３段階でも、打者キャラクタの体勢の種類毎に真芯１０の打撃面通過後の位置に応じたモーションを設定するが、第２段階のように９つの基準点に対応するモーションを設定するのではなく、３つの基準線に対応するモーションを設定する。図８（ａ）は、打撃面上にそれぞれ鉛直方向に、内角、真中、外角の３つの基準線を定義した一例を示す図である。各基準線は、第２段階における内角列、真中列、外角列とそれぞれ一致する。すなわち、第２段階で採用する基準点が決定すれば、第３段階で採用する基準線も必然的に決定できる。また、図８（ｂ）は、３つの基準線に対応するモーションの種類を示す図である。なお、以下では、基準線へのフォロースルーを基本フォロースルーという。
【００５７】
真芯カーソル６の移動可能領域は、図６（ａ）に示した打撃面上の内角高め、内角低め、外角高め、外角低めの４つの基準点によって囲まれる範囲２０内とする。また、第２段階では、真芯カーソル６に近接する４つの基準点を抽出し、抽出した４つの基準点に対応するモーションデータを合成することによって、打者キャラクタに実行させるモーションデータを生成する。なお、合成率は、真芯カーソル６と、抽出された４つの基準点との位置関係に基づいて決定する。第３段階についても同様に、真芯カーソル６の位置を囲む２つの基準線を抽出し、各基準線に対応するモーションデータを合成することによって、フォロースルーのモーションを生成する。
【００５８】
図９は、各段階のモーションのパターン数を表示した図である。上述のように、第１段階には、グリップ、スタンス、テイクバックの各タイプに基づく８つのモーションパターンを用意する。すなわち、ゲーム空間に登場させる各打者キャラクタには、この８パターンのいずれかのモーションに基づく「構え」および「テイクバック」を実現させることとなる。また、第２段階には、スタンス、バット８の振りの大きさ、バット８を振る位置の、各タイプに基づく３６パターンのモーションデータを用意する。第３段階では、フォロースイング、スタンス、バット８の振り出し位置、の各タイプに基づく２４パターンのモーションデータを用意する。
【００５９】
このように、本実施の形態では、構えやテイクバックのような、実在する選手の特徴がより顕著となる動作については、打者キャラクタ毎に固有のモーションを固定的に設定する。一方、スイングやフォロースルーのような、バット８を振る位置に応じて明らかに異なって見える動作については、バット８の振り位置に応じた種々のモーションを設定し、プレーヤによって操作された真芯カーソル６の位置に応じて選択する。したがって、個々の打者キャラクタの特徴を表現した上で、データ数を削減し、更に、打者キャラクタの打撃モーションをもっともらしく詳細に描写することができる。
【００６０】
なお、野球ゲームでは、バット８がボールにヒットすることでゲームが複雑に展開され、面白味が増大する場合がある。しかし、実空間においてバット８とボールとの位置関係を判断する場合と異なり、所定の視点に基づく画像を見ながらボールが打撃面を通過する位置を予測してバット８の振り位置を操作することは時に困難なものであり、ゲームに対する倦怠感を引き起こす恐れがある。そこで、多くの野球ゲームでは、ボールをヒットしやすくするように工夫されている。その１つの方法として、バット８とボールのミート判定する際に、バット８そのものの大きさや面積に基づいてミート判定を行うのではなく、実際のバット８の大きさよりも大きい衝突判定領域３０に基づいてミート判定を行う方法がある。図１０は、衝突判定領域３０の一例を示す図であり、捕手キャラクタの位置から見た場合の衝突判定領域３０を示す図である。衝突判定領域３０は、バット８と共に動くものではなく、真芯カーソル６の座標に合わせて打撃面上に配置される平面領域である。
【００６１】
係る方法によれば、バット８の真芯１０とボールが同時に打撃面を通過する際に、衝突判定領域３０とボールが衝突すればミートしたものとして判定する。しかし、この方法を適用すれば、図１１に示すように、バット８にボール１２が衝突していないにもかかわらず（ａ）、突然ボール１２が逆向きに進行することとなり（ｂ）、プレーヤに対して違和感を与えるとともに、判定処理が正確に成されていないかのような印象を与える恐れがある。
【００６２】
この問題を解消するために、本実施の形態では、バット８の軌道を、ボール１２と衝突判定領域３０との衝突位置に補正する。すなわち、図１２に示すように、ボール１２が打撃面を通過する際の位置が、衝突判定領域３０と重なる場合には（ａ）、バット８がボール１２にミートするようにバット８の軌道を補正する（ｂ）。
【００６３】
投球の軌道は、投手キャラクタにボールを投げさせる瞬間までに決定されることが一般的である。具体的には、ストレートやカーブといった球種、デフォルトコースからのずれ量、投球速度、打撃面における通過位置等を、投手キャラクタによってボールを投げさせる瞬間までに、各種パラメータや乱数によって決定する。一方、プレーヤは、画面上の投手キャラクタがボールを投げた後、ボールの軌道を見計らって打者キャラクタの打撃位置および打撃タイミングを操作する。換言すれば、プレーヤが打者キャラクタの打撃を指示するときには、既にボールの打撃面通過位置が定まっていることとなる。したがって、バット８の軌道を修正する処理は、プレーヤによって真芯カーソル６の位置が確定され、テイクバックのモーションが終了するまでの時間に行うことができる。なお、本実施の形態では、バット８の軌道補正は、バット８とボールの打撃面通過タイミングが一致するか否かに拘わらず、ボールの打撃面通過位置が衝突判定領域３０と交差すれば実行することとする。
【００６４】
また、以下では、各キャラクタを、関節の階層構造を有する骨格モデルによって定義し、各関節の回転角を算出することによってモーションを決定する場合を例に説明する。図１３は、骨格モデル４０の一例を示す図である。ここで、関節の階層構造とは、下位階層のパーツを、上位階層のパーツの動きに追従させる構造を意味する。例えば、上腕４４を上位階層、前腕４６を上腕４４の下位階層のパーツとして定義した場合には、前腕４６は上腕４４の回転に伴って回転あるいは移動するが、上腕４４は前腕４６の回転の影響を受けないように設定する。
【００６５】
続いて、本実施の形態における機能構成について説明する。
図１４は、本実施の形態における機能ブロックの一例を示す図である。同図によれば、本機能ブロックは、主に、操作部１００と、処理部２００と、表示部３００と、情報記憶媒体４００と、一時記憶部５００とから構成される。
【００６６】
操作部１００は、図１に示すゲーム装置１２１０のコントローラ１２０２，１２０４に相当する機能部であって、プレーヤの入力・操作を電気信号として処理部２００に出力するためのものである。
【００６７】
以下に、コントローラの操作例を簡単に説明する。図１５は、コントローラ１２０２の一例を示す図である。同図において、左側の４つのボタン６００〜６０６が方向キーであり、真芯カーソル６の位置を操作するボタンである。例えば、ボタン６００および６０２によって真芯カーソル６を鉛直方向に沿って上下に移動させ、ボタン６０４および６０６によって真芯カーソル６を水平方向に沿って左右に移動させる。一方、左側の４つのボタン６１０〜６１６は、機能キーであり、打撃を開始する指示やバット８の振り方の指示を入力するためのボタンである。例えば、ボタン６１２を押すと通常のスイングとなり、ボタン６１２と６１６とを同時に押すと大振り（パワースイング）に、ボタン６１２と６１４とを同時に押すとアッパースイングになる。また、ボタン６１２、６１４、６１６を同時に押すと、大振りで且つアッパースイングになる。
【００６８】
以上の操作方法に限定する必要はないが、このように、コントローラ１２０２の各ボタンの入力と、真芯カーソル６の移動方向やスイングの種類とを対応させる。すなわち、操作部１００は、コントローラのボタン入力を検知し、プレーヤによって押されたボタンに応じた信号を処理部２００に対して出力する。なお、操作部１００に相当する機器は、図１５に示したような、コントローラ１２０２だけでなく、キーボードなどの汎用の入力装置や、マウスやトラックボール、ジョイスティック等のポインティングデバイスを用いることとしてもよい。
【００６９】
表示部３００は、図１に示すディスプレイ１２００に該当する機能部であり、処理部２００から入力される指示に従って処理部２００にて生成された画像を表示する。
【００７０】
情報記憶媒体４００は、本実施の形態におけるゲーム装置の駆動に係るプログラムやデータ等を記憶するものであり、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、メモリ、ハードディスク等のハードウェアにより実現できる。また、情報記憶媒体４００は、野球ゲームを実行するためのゲームプログラム４１０を記憶する。また、ゲームプログラム４１０には、ゲーム演算プログラム４１２や画像生成プログラム４１４の他、キャラクタ構造データ４１６、打者キャラクタデータ４１８、打撃モーションテーブル４２０が含まれる。
【００７１】
キャラクタ構造データ４１６とは、野球ゲームに登場する個々のキャラクタの構造あるいはモデル情報を定義したデータである。図１６は、キャラクタ構造データ４１６の一例を示す図である。同図によれば、キャラクタ構造データ４１６には、階層構造情報と、パーツ情報と、画像情報とが、個々のキャラクタを識別するためのキャラクタコードと対応付けて記憶される。ここで、階層構造情報とは、個々の関節の階層を定義するための情報や、各関節間距離あるいは位置関係の情報を含むものであり、モーションデータに基づいて各キャラクタを動作させるときに読み出される情報である。また、パーツ情報とは、上腕や前腕、頭部といった各パーツ、若しくは、キャラクタの全身モデルの情報である。なお、各パーツは、それぞれローカル座標系（以下、パーツ座標系という）に基づいて定義され、また、全身モデルは、全身を定義する座標系（以下、全身座標系という）により定義される。また、画像情報は、各キャラクタの色情報、マッピングするテクスチャ情報などを含むものである。
【００７２】
打者キャラクタデータ４１８とは、ゲーム空間に登場するキャラクタの内、打者キャラクタとなるキャラクタの情報を含むものである。図１７は、打者キャラクタデータ４１８の一例を示す図である。同図によれば、打者キャラクタデータ４１８には、キャラクタコードと、第１段階コードと、スタンスコードとがそれぞれ対応付けて記憶されている。ここで、第１段階コードとは、図４に示したような打撃モーションの第１段階における各固定モーションを識別するためのコードである。また、スタンスコードとは、スタンスの広さが標準であるか、オープンであるかを識別するためのコードである。
【００７３】
打撃モーションテーブル４２０とは、打撃モーションにおける各段階のモーションデータを記憶したテーブルである。すなわち、打撃モーションテーブル４２０は、「構え」と「テイクバック」のモーションデータを記憶した第１段階テーブル４２２と、「基本スイング」のモーションデータを記憶した第２段階テーブル４２４と、「基本フォロースルー」のモーションデータを記憶した第３段階テーブル４２６とから構成される。
【００７４】
図１８は、第１段階テーブル４２２の一例を示す図である。同図によれば、第１段階テーブル４２２には、図４に示した８パターンの「構え」および「テイクバック」のモーションデータが、それぞれ第１段階コードと対応付けて記憶される。ここで、第１段階コードとは、図１７に示した打者キャラクタデータ４１８に記憶される第１段階コードと等しいものである。すなわち、個々の打者キャラクタには、この第１段階テーブル４２２に記憶される第１段階コードの中のいずれか１のコードが付与される。
【００７５】
図１９は、第２段階テーブル４２４の一例を示す図である。同図によれば、第２段階テーブル４２４は、「スタンスコード」および「大振り」の有無により識別される４つのテーブルからなる。ここで、「スタンスコード」は、スタンスが標準かオープンかを識別するためのコードであり、打者キャラクタデータ４１８に記憶される値である。また、「大振り」の有無とは、バット８の振り方が、標準か大振りかを識別するためのコードである。この４つのテーブルには、それぞれ９つの基準点の座標（ｘ，ｙ）とモーションデータとがそれぞれ対応付けて記憶される。具体的には、「内角低め（ｘ1，ｙ1）」、「内角真中（ｘ1，ｙ2）」…といった基準点の座標と対応付けて、「基本スイング」のモーションデータが記憶される。すなわち、第２段階テーブル４２４に記憶される個々のモーションデータは、スタンスの種類、バット８を振る勢い（振り方）、バット８が振られる位置（基準点）がそれぞれ異なる。
【００７６】
基準点の座標（ｘ，ｙ）は、ワールド座標系における座標であってもかまわないが、以下では、打撃面上の２次元座標系に基づく座標とする。図２０は、打撃面上に定義した２次元座標系（以下、打撃面座標系という）を示す図であり、打撃面座標系に設定した各基準点の座標の一例を示すものである。同図によれば、打撃面座標系は、左下端の基準点Ａを原点とする直交座標系であり、横軸（水平方向）がｘ軸、縦軸（鉛直方向）がｙ軸となるように設定される。また、各基準点は、それぞれ距離Ｌの間隔で各座標軸に沿って配置されている。なお、この打撃面座標系をワールド座標系に配置する場合には、捕手キャラクタから見て左側に座標系の原点が位置するように配置する。
【００７７】
図２１は、第３段落テーブルの一例を示す図である。同図によれば、第３段落テーブルは、「スタンスコード」、「アッパー」の有無、「バット投げ」の有無により識別される８つのテーブルからなる。ここで、「スタンスコード」とは、スタンスが標準かオープンかを識別するためのコードである。また、「アッパー」の有無とは、フォロースイングが標準かアッパーかを識別するためのコードであり、「バット投げ」の有無とは、バット８を振り終わった際にバット８を投げるか否かを識別するためのコードである。すなわち、「アッパー」の有無、および、「バット投げ」の有無によって、図７に示したように、フォロースイングの種類が標準、アッパー、標準型バット投げ、アッパー型バット投げの何れであるかを識別する。なお、８つのテーブルには、内角（ｘ1＝０）、真中（ｘ2＝Ｌ）、外角（ｘ3＝２Ｌ）の基準線の座標（ｘ座標）と、各モーションデータとがそれぞれ対応付けて記憶される。すなわち、第３段落テーブルに記憶される各モーションデータは、スタンス、フォロースイング、バット８の振り出し位置とがそれぞれ異なる。
【００７８】
本実施の形態では、モーションデータとして、各キーフレーム毎の各関節の方向データと、各キーフレーム間のフレーム数を記憶する。ここで、方向データとは、その関節に直接接続される下位の関節の方向を示すデータである。より詳細には、その関節をローカル座標系における原点とした場合の、原点から見た下位関節の方向を示すデータである。例えば、肘関節には、肘関節の下位階層にあたる手首関節の方向データを記憶する。
【００７９】
方向データの定義方法は如何なるものであってもかまわないが、以下では、方向データとして、全身座標系（Ｘ，Ｙ，Ｚ）における、パーツ座標系（ｘ，ｙ，ｚ）の回転角を記憶することとする。より詳細には、全身座標系におけるＸ軸周りの回転角、Ｙ軸周りの回転角、Ｚ軸周りの回転角を方向データとして記憶する。例えば、キーフレームＡの肘関節の方向データが（θX，θY，θZ）によって定義されている場合には、前腕のパーツ座標系（ｘ，ｙ，ｚ）をデフォルトの方向から、全身座標系（Ｘ，Ｙ，Ｚ）におけるＸ軸周りに∠θX回転させる。同様に、Ｙ軸周りに∠θY、Ｚ軸周りに∠θZ回転させることにより、キーフレームＡにおける前腕パーツの向きを決定する。
【００８０】
なお、ゲーム演算プログラム４１２には、ゲームシナリオや、操作部１００から入力される操作信号に応じて各機能部を機能させるための情報の他、本発明に係る処理を実行するためのプログラムやデータ、各選手キャラクタの特徴、得意技、疲れやすさや体力などのパラメータなどからなる個人データ、などの情報が含まれる。また、画像生成プログラム４１４には、ジオメトリ処理やレンダリング処理を実行するために必要な情報や、各種選択画面や各種一覧表を生成するための情報の他、各種画像データが含まれる。
【００８１】
処理部２００は、システム全体の制御、システム内の各機能部への命令の指示、操作部１００から入力される操作信号や情報記憶媒体４００に記憶されたゲームプログラム４１０に基づいて野球ゲームを進行するための処理、画像処理、音処理等の各種処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、あるいはＡＳＩＣ（ゲートアレイ等）等のハードウェアや、所与のプログラムにより実現できる。また、処理部２００は、主に、ゲーム演算部２２０と画像生成部２４０とを含み、操作部１００から入力される操作信号に応じた処理をゲーム演算部２２０に実行させ、更に、その処理結果に基づく画像を画像生成部２４０に生成させる。
【００８２】
ゲーム演算部２２０は、ゲームの進行処理、選択画面の設定処理、ゲーム空間に存在する各キャラクタを制御する処理、ゲーム画像を生成するための処理等、種々のゲーム処理を、操作部１００から入力される操作信号や、情報記憶媒体４００から読み出すゲーム演算プログラム４１２等に基づいて実行する。また、ゲーム演算部２２０は、ボール制御部２２２と、打撃操作判定部２２４と、衝突判定部２２６と、モーションデータ抽出部２２８と、合成処理部２３０と、補正処理部２３２と、補間処理部２３４とを含み、操作部１００から入力される信号、および、ゲームプログラム４１０に基づいて各部を機能させる処理を実行する。
【００８３】
まず、ボール処理部について説明する。
ボール制御部２２２は、投手キャラクタによって投げられるボールを制御する機能部である。具体的には、ボール制御部２２２は、登板している投手キャラクタに設定された個人データに基づいて、ボールが打撃面を通過する位置の確率分布を生成する。そして、投手キャラクタに投球動作を実行させる直前までに、生成した確率分布に基づいてボールの打撃面通過位置、すなわち、打撃面座標系におけるボールの座標を決定する。なお、決定したボールの座標を、ボール座標５０６として一時記憶部５００に一時的に記憶させる。また、ボール制御部２２２は、投げられたボールの速度（ｖX，ｖY，ｖZ）と軌道を決定し、ワールド座標系におけるボールの座標を毎フレーム算出する処理を実行する。
【００８４】
次に、打撃操作判定部２２４について説明する。
打撃操作判定部２２４は、操作部１００から入力される信号に基づいて、打撃の開始有無を判定する処理を実行する。そして、打撃を開始する旨の信号を判別した場合には、補間処理部２３４に補間処理を開始させて、第１段階におけるモーションを開始させる。
【００８５】
また、打撃操作判定部２２４は、操作部１００から入力される信号に基づいて、打撃の開始有無を判定すると同時に、打撃モーションにおけるバット８の振り方の種類を判定する処理を実行する。例えば、図１５を用いて説明したように、コントローラ１２０２のボタン６１２のみが押された場合には、打撃を開始する旨を判別すると共に、標準型の打撃モーションと判定する。また、ボタン６１２と６１６とが同時に押された場合には、大振りの打撃モーションと判定するといった具合に、操作部１００から入力される操作信号に応じて振り方の種類を判定する。そして、その判定結果に基づき「振り方コード」５０２を決定して一時記憶部５００に一時的に記憶させる。図２２は、一時記憶部５００に記憶する際の「振り方コード」の一例を示す図である。同図によれば、標準型の場合には振り方コード「００」を記憶し、アッパー型の場合は「０１」を、大振り型ならば「１０」を、大振り且つアッパー型ならば「１１」を記憶する。
【００８６】
更に、打撃操作判定部２２４は、操作部１００から入力される指示信号に応じて真芯カーソル６の位置を制御する。具体的には、図２３に示した打撃面座標系内の真芯カーソル６の座標（ｘ，ｙ）を操作部１００から入力される信号に応じて決定する。ただし、真芯カーソル６の移動可能な範囲を、０≦ｘ≦２Ｌ、０≦ｙ≦２Ｌの範囲内に限定することとする。すなわち、打撃操作判定部２２４は、内角高め、内角低め、外角高め、外角低めの４つの基準点からなる正方形の領域を越えて真芯カーソル６が表示されないように制御する。なお、打撃操作判定部２２４は、真芯カーソル６の座標（ｘ，ｙ）を一時記憶部５００に記憶し、操作部１００から入力される指示に従って随時更新する。
【００８７】
モーションデータ抽出部２２８について説明する。
モーションデータ抽出部２２８は、打撃モーションにおける各段階のモーションデータを抽出する処理を実行する機能部である。具体的には、第１段階におけるモーションデータを抽出する第１段階抽出処理と、第２段階におけるモーションデータを抽出する第２段階抽出処理と、第３段階におけるモーションデータを抽出する第３段階抽出処理とを実行する。
【００８８】
第１段階抽出処理は、第１段階テーブル４２２から打者キャラクタに対応する第１段階のモーションデータを読み出すための処理である。すなわち、モーションデータ抽出部２２８は、打者キャラクタデータ４１８の中からプレーヤにより操作される打者キャラクタのキャラクタコードに対応する第１段階コードを読み出し、次いで、第１段階テーブル４２２の中から読み出した第１段階コードに対応するモーションデータを読み出す。そして、その読み出したモーションデータを、第１段階モーションデータ５０８として一時記憶部５００に一時的に記憶する。
【００８９】
第２段階抽出処理は、真芯カーソル６の座標に基づいて第２段階におけるモーションデータを第２段階テーブル４２４から抽出するための処理である。ただし、前述の通り、第２段階におけるモーションは、各基準点に対応するモーションデータをそのまま採用するのではなく、真芯カーソル６の位置に応じていくつかのモーションデータを選択して合成した結果を用いる。すなわち、モーションデータ抽出部２２８は、第２段階では、合成するためのモーションデータを第２段階テーブル４２４から読み出す処理を行う。
【００９０】
以下では、９つの基準点の中から、真芯カーソル６の座標を囲む４つの基準点を抽出することとする。例えば、図２３に示す位置に真芯カーソル６が存在する場合には、真芯カーソル６を囲む４つの基準点Ｂ、Ｃ、Ｅ、Ｆを抽出する。抽出する方法は、如何なる方法であってもかまわないが、例えば、以下のようにして行う。まず、真芯カーソル６の座標（ｘ，ｙ）の各座標ｘおよびｙをそれぞれ基準点間隔Ｌで割った際の商ＳX，ＳYを算出する（ＳX，ＳY）＝（ｘ／Ｌ，ｙ／Ｌ）。次いで、各商ＳX，ＳYにＬを掛けた値と、各商に１を加算した値（ＳX＋１），（ＳY＋１）にＬを掛けた値を算出する。そして、これら算出した値を組み合わせた座標を持つ基準点を抽出する基準点として決定する。すなわち、座標（ＳX・Ｌ，ＳY・Ｌ）と、（ＳX・Ｌ，（ＳY＋１）・Ｌ）と、（（ＳX＋１）・Ｌ，ＳY・Ｌ）と、（（ＳX＋１）・Ｌ，（ＳY＋１）・Ｌ）と、を有する基準点を抽出する。
【００９１】
また、第２段階テーブル４２４は、図１９に示したように、体勢の種類に応じて４つのテーブルに細分化されている。すなわち、モーションデータ抽出部２２８は、スタンスや振り方の条件を判定し、読み出すテーブルを決定する処理を実行する。具体的には、モーションデータ抽出部２２８は、第２段階テーブル４２４に含まれる４つのテーブルの中から１のテーブルを抽出するために、打者キャラクタデータ４１８から該当する打者キャラクタの「スタンスコード」を読み出す。また、一時記憶部５００に記憶された振り方コード５０２を読み出し、「大振り」であるか標準であるかを判定する。そして、読み出した「スタンスコード」、および、「大振り」の有無に基づいて１のテーブルを決定する。更に、決定したテーブルの中から、抽出した４つの基準点に対応するモーションデータを読み出して、一時記憶部５００に第２段階モーションデータ５１０として一時的に記憶する。
【００９２】
第３段階抽出処理は、第３段階におけるモーションデータを第３段階テーブル４２６から抽出するための処理である。このとき、第２段階での処理と同様に、真芯カーソル６の位置に基づいて第３段階テーブル４２６の中から複数のモーションデータを抽出する。以下では、真芯カーソル６のｘ座標を囲む２つの基準線を抽出する。具体的には、第２段階抽出処理にて算出した基準点の座標に基づいて一意に決定する。図２３を用いて説明した例によれば、ｘ＝ＳXと、ｘ＝（ＳX＋１）の基準線を抽出する。
【００９３】
また、第３段階テーブル４２６は、図２１に示したようにスタンスの種類やアッパースイングの有無、バット投げの有無に応じて８つに細分化されている。すなわち、モーションデータ抽出部２２８は、各体勢の条件を判定し、読み出すテーブルを決定する処理を実行する。具体的には、モーションデータ抽出部２２８は、打者キャラクタデータ４１８の中から打者キャラクタのスタンスコードを読み出す。また、一時記憶部５００に記憶された振り方コード５０２に基づいてアッパースイングの有無を判定する。なお、バット投げの有無については、バット８とボールの衝突判定を実行する衝突判定部２２６の判定結果に基づいて決定する。すなわち、衝突判定部２２６が、バット８にボールが衝突した旨の判定をした場合、すなわち、「ミート」の判定をした場合にはバット投げを実行し、「空振り」の判定をした場合にはバット投げを実行しない。そして、読み出した「スタンスコード」、「アッパー」の有無、および、判定した「バット投げ」の有無に従って、８つのテーブルの中から１のテーブルを決定する。そして、モーションデータ抽出部２２８は、その決定したテーブルの中から、抽出した基準線に該当するモーションデータを読み出して、第３段階モーションデータ５１２として一時記憶部５００に一時的に記憶する。
【００９４】
合成処理部２３０について説明する。
合成処理部２３０は、第２・第３段階抽出処理にて抽出され、一時記憶部５００内に記憶された各モーションデータをそれぞれ合成する機能部である。より詳細には、各モーションデータには、各キーフレームにおける各関節の方向データが記憶される。合成処理部２３０は、各関節に定義された方向データを、真芯カーソル６との位置関係に基づいてそれぞれ合成する処理を実行する。なお、合成方法は、バット８の真芯１０が真芯カーソル６上を矛盾なく通過するように合成するものであれば如何なる方法であってもかまわないが、以下にその一例を説明する。
【００９５】
まず、第２段階抽出処理にて抽出したモーションデータを合成する処理の一例を説明する。第２段階抽出処理にて抽出されたモーションデータを合成する処理では、真芯カーソル６の座標（ｘ，ｙ）と、各基準点の座標（ｘ，ｙ）とに基づいて合成割合を決定する。図２３に示すように、真芯カーソル６が基準点Ｂ、Ｃ、Ｅ、Ｆによって囲まれている場合の合成方法を説明する。このとき、基準点Ｂの座標を（ｘB，ｙB）とし、所与の関節の方向データを（θXB，θYB，θZB）とする。同様に、基準点Ｃの座標を（ｘC，ｙC）・方向データを（θXC，θYC，θZC）、基準点Ｅの座標を（ｘE，ｙE）・方向データを（θXE，θYE，θZE）、基準点Ｆの座標を（ｘF，ｙF）・方向データを（θXF，θYF，θZF）とし、合成後の方向データ（θXR，θYR，θZR）におけるθXRを次の計算によって決定する。
ただし、ｘB＝ｘE，ｘC＝ｘF，ｙB＝ｙC，ｙE＝ｙFである。
θXR＝｛（ｘC−ｘ）・θXB＋（ｘ−ｘB）・θXC｝・（ｙE−ｙ）／Ｌ2
＋｛（ｘF−ｘ）・θXE＋（ｘ−ｘE）・θXF｝・（ｙ−ｙC）／Ｌ2    …（１）
θYR，θZRについても同様の計算によって求めることができる。このように、方向データの合成を各関節毎に実行する。そして、合成処理部２３０は、合成したモーションデータを第２段階モーションデータ５１０として一時記憶部５００に記憶する。
【００９６】
続いて、第３段階抽出処理にて抽出したモーションデータを合成する処理の一例を説明する。第３段階抽出処理にて抽出されたモーションデータを合成する処理では、真芯カーソル６のｘ座標と、各基準線のｘ座標とに基づいて合成割合を決定する。例えば、真芯カーソル６の座標（ｘ，ｙ）が、図２３に示すように基準線ＢとＣの間に位置する場合の合成方法を説明する。なお、基準線Ｂのｘ座標をｘBとし、基準線Ｃのｘ座標をｘCとする。また、基準線Ｂに対応するモーションデータ内に含まれる所与の関節の方向データを（φXB，φYB，φZB）とし、基準線Ｃの方向データを（φXC，φYC，φZC）とする。このとき、合成後の方向データ（φXR，φYR，φZR）におけるφXRを次の計算によって決定する。
φXR＝｛（ｘC−ｘ）・φXB＋（ｘ−ｘB）・φXC｝  …（２）
φYR，φZRについても同様の計算によって求めることができる。合成処理部２３０は、各関節毎に上記合成処理を実行すると、その合成後のデータを第３段階モーションデータ５１２として一時記憶部５００に記憶する。
【００９７】
次に、衝突判定部２２６について説明する。
衝突判定部２２６は、バット８とボールの衝突判定を実行する機能部である。
衝突判定部２２６は、次の２つの条件が満たされたときに、バット８とボールが衝突（ミート）したものとみなす。▲１▼空間的条件：打撃面座標系におけるボールの位置（打撃面通過位置）が打撃面座標系におけるバット８の衝突判定領域３０に含まれる。▲２▼時間的条件：バット８とボールが打撃面を通過するタイミング（フレーム）が一致する。換言すれば、衝突判定部２２６は、上記２つの条件を判定し、２つの条件が満たされた場合には、「ミート」として判定するが、いずれか１つでも条件が満たされない場合には「空振り」と決定する。なお、「空振り」は、いずれか一方の条件が満たされないと判定された瞬間に決定する。
【００９８】
まず、空間的条件の判定処理について説明する。
空間的条件を判定するために、まず、衝突判定部２２６は、コントローラの操作入力に応じて打撃面座標系における衝突判定領域３０の位置を決定する。衝突判定領域３０の位置は、合成処理部２３０によって合成された第２段階のモーションデータに基づいて決定する。具体的には、バット８が打撃面を通過する瞬間のキーフレームにおける手首関節と真芯カーソル６を結ぶ直線上に衝突判定領域３０の中心軸が位置するように、衝突判定領域３０を打撃面座標系上に設定する。
【００９９】
図２４は、衝突判定領域３０をローカル座標系（ｘ，ｙ）に定義した一例を示す図である。同図において、ローカル座標系の原点７００は右手首関節に対応し、ｘ軸上の点７０２は、真芯カーソル６の位置に対応する。すなわち、右手首関節の方向データが決定すれば、その方向データに合わせて衝突判定領域３０を回転させることで、打撃面座標系における衝突判定領域３０の位置を決定することができる。また、衝突判定領域３０のｘ軸方向の長さｘL、ｙ軸方向の長さ２ｙO、真芯カーソル６のｘ座標（ｘP）等は、変動する値であってもよいが、以下では固定値とする。
【０１００】
そして、衝突判定部２２６は、打撃面座標系における衝突判定領域３０と、ボール制御部２２２により決定されたボールの中心点の座標とを比較する。すなわち、衝突判定部２２６は、打撃面座標系にけるボールの中心点の座標が、衝突判定領域３０に含まれる場合には、空間的条件が満たされたものと判定する。一方、ボールの中心点の座標が衝突判定領域３０に含まれない場合には、空間的条件が満たされないと判定する。なお、空間的条件の判定処理は、打撃面座標系におけるボールの中心点の座標を、図２４に示す衝突判定領域３０を定義するローカル座標系に変換して行うこととしてもよい。すなわち、ボールの中心点の座標を、手首関節の方向データを用いて、手首関節を原点とするローカル座標系に逆変換する。そして、ボールの中心点が、衝突判定領域３０に含まれるか否かを判定することとしてもよい。
【０１０１】
続いて、時間的条件の判定処理について説明する。
衝突判定部２２６は、バット８が打撃面を通過するタイミングと、ボールが打撃面を通過するタイミングとを判定する。例えば、バット８が打撃面を通過する前に、ボールが打撃面を通過すれば、時間的条件を満たさないものと判定する。逆に、バット８が打撃面を通過する際に、まだボールが打撃面に到達していない場合にも時間的条件を満たさないものと判定する。一方、バット８が打撃面を通過する際に、同時にボールが打撃面を通過する場合には、時間的条件が満たされたものとして判定する。
【０１０２】
タイミングの判定は、如何なる方法を用いてもよいが、以下にその一例について説明する。衝突判定部２２６は、操作部１００から打撃開始の指示信号が入力された瞬間からの時間ｔをカウントする。一方で、モーションデータ抽出部２２８が第１段階と第２段階のモーションデータを決定すると、衝突判定部２２６は、その決定されたモーションデータに記憶されたキーフレーム間のフレーム数を加算し、選択された第１・第２段階におけるモーションに要する時間Ｔを算出する。そして、衝突判定部２２６は、ボール制御部２２２により決定されたボールの速度（ｖX，ｖY，ｖZ）からＺ軸方向の速度ｖZを採用して、
Ｌ＝ｖZ・（Ｔ−ｔ）  …（３）
を算出する。ここで、速度ｖZは、視点に対する奥行方向の速度であり、換言すれば、打撃面に垂直する方向の早さを意味する。衝突判定部２２６は、距離Ｌを算出した瞬間の、ワールド座標系上のボールの座標（ＸB，ＹB，ＺB）を判定し、ボールのＺ座標の値ＺBと、打撃面のＺ座標（ＺM）から距離Ｌを引いた値（ＺM−Ｌ）とが一致する場合には、バット８とボールのタイミングが一致するものと判定する。ただし、ここでは、視点位置をワールド座標系における原点とした。
【０１０３】
このように、実際にボールが打撃面に到達する前に、バット８とボールの打撃面到達のタイミングを判定することによって、第３段階のモーションデータを滞りなく選択することができる。
【０１０４】
次に、補正処理部２３２について説明する。
補正処理部２３２は、図１２を用いて説明したように、バット８にボールが衝突して見えるように、バット８の軌道を補正するための機能部であり、合成処理部２３０によって合成された第２段階のモーションデータに対して処理を施すものである。ただし、補正処理部２３２は、バット８の軌道補正処理を、バット８とボールの空間的条件が満たされたときに実行する。換言すれば、時間的条件が満たされるか否かを問わず、打撃面座標系におけるボールの中心点が衝突判定領域３０に含まれれば、バット８の軌道をボールに衝突するように補正する。すなわち、衝突判定部２２６により空間的条件が満たされた旨の判定がなされた場合に、補正処理部２３２は補正処理を実行する。
【０１０５】
図２５は、バット８がボール１２にミートして見えるように、打撃面におけるバット８の角度を補正した一例を示す図である。同図において、矩形の実線が衝突判定領域３０を示し、破線によって表された部分が補正前のバット８´の位置を、実線によって表された部分が補正後のバット８の位置をそれぞれ示す。同図に示すように、バット８の軌道補正は、バット８が打撃面を通過する瞬間のキーフレームにおける、右手首関節の方向データ、すなわち、手首関節からバット８の真芯に向けた単位ベクトルを補正することにより行う。換言すれば、補正処理部２３２は、手首関節の単位ベクトルを回転させる（補正する）角度を決定する処理を実行する。以下では、手首関節を原点としてバット軸を打撃面に沿って回転させる角度を補正角という。また、バット軸とは、手首関節（例えば、右手首関節）とバット８の真芯とを結ぶ直線を意味する。
【０１０６】
なお、補正角を、ボールの中心点、手首関節、真芯カーソル６の３つの座標に基づいて随時算出するようにしてもよいが、図２６に示すような補正角テーブル４３０に基づいて決定するようにしてもよい。補正角テーブル４３０とは、衝突判定領域３０を図２７に示すように複数のエリアａ〜ｐに分割した際の座標範囲と、補正角とがそれぞれ対応付けて記憶されたテーブルである。例えば、打撃面座標系におけるボールの中心点の座標を、衝突判定領域３０を定義するローカル座標系に変換し、補正角テーブルにおける何れのエリアに該当するかを判定する。そして、ボールの中心点が該当するエリアに対応する補正角を読み出して、右手首関節の回転角を補正する。このように、補正角テーブルを用いれば、打撃面座標系における衝突判定領域３０の範囲とボールの中心点の座標が求まれば、ただちに補正角を決定することができる。
【０１０７】
次に、補間処理部２３４について説明する。
補間処理部２３４は、キーフレーム間の各フレームのモーションを決定する機能部であり、一時記憶部５００に記憶された各段階のモーションデータを補間することによって毎フレームのモーションを決定する。すなわち、補間処理部２３４は、毎フレームにおける各関節の方向データを、キーフレームのモーションデータに基づいて決定する。具体的には、前後するキーフレームにおける方向データの各回転角の差を算出し、キーフレーム間のフレーム数で割ることによって、各フレームにおける方向を決定する。例えば、キーフレーム１における肘関節の方向データが（θX1，θY1，θZ1）であり、キーフレーム１に続くキーフレーム２における肘関節の方向データが（θX2，θY2，θZ2）であり、キーフレーム１，２間のフレーム数がｎである場合には、ｉ番目（ｉ＝１，２，…，ｎ）のフレームにおける回転角（ωX，ωY，ωZ）は、
ωX＝θX1＋｛（θX2−θX1）／ｎ｝・ｉ  …（４）
によって決定する。ωY，ωZについても同様に算出する。
【０１０８】
画像生成部２４０は、ゲーム演算部２２０から入力される指示信号、各種座標データに基づき、ゲーム画像を生成する処理を実行するものであり、ＣＰＵ、ＤＳＰ、画像生成専用のＩＣ、メモリなどのハードウェアにより構成される。具体的には、画像生成部２４０は、前方、後方クリッピングを実行してビューボリューム（すなわち、描画範囲）を決定する処理、各キャラクタやオブジェクトに対する視点に基づく座標変換処理等のジオメトリ処理と、色補間処理、陰面消去処理等のレンダリング処理を実行することによりゲーム画像を生成する。そして、生成したゲーム画像を表示部３００に表示させる。
【０１０９】
なお、一時記憶部５００は、処理部２００が情報記憶媒体４００に記憶された各種プログラムに従って実行した演算結果や、操作部１００から入力される情報、画像生成部２４０により生成された画像結果等を一時的に記憶するためのメモリ領域であり、ＲＡＭや、ＶＲＡＭ等のハードウェアにより実現される。また、一時記憶部５００は、打撃操作判定部２２４により判定された振り方コード５０２および真芯カーソル座標５０４と、ボール制御部２２２により決定されたボール座標５０６（打撃面通過位置）と、モーションデータ抽出部２２８により抽出された、第１段階モーションデータ５０８と、第２段階モーションデータ５１０と、第３段階モーションデータ５１２とを一時的に記憶する。
【０１１０】
次に、モーションデータを抽出する動作について説明する。
図２８は、モーションデータ抽出処理を説明するためのフローチャートである。同図によれば、まず、ゲーム演算部２２０は、投球を実行させる投手キャラクタと、打撃を実行する打者キャラクタを、ゲームプログラム４１０に基づいて、あるいは操作部１００から入力される操作信号に応じて決定する（ステップＳ１）。そして、モーションデータ抽出部２２８は、第１段階抽出処理を実行して、決定された打者キャラクタの第１段階モーションデータを抽出する（ステップＳ２）。また、ボール制御部２２２は、投手キャラクタにより投げられるボールの打撃面通過位置を決定し、ボール座標５０６を一時記憶部５００に記憶する（ステップＳ３）。
【０１１１】
打撃操作判定部２２４は、操作部１００から入力される操作信号の種類を判別する（ステップＳ４）。例えば、真芯カーソル６を移動する旨の信号が入力された場合には、打撃面の所定範囲内に真芯カーソル６を移動させる。また、打撃操作判定部２２４は、操作部１００から打撃を開始する旨の信号が入力されたか否かを判定する（ステップＳ５）。打撃を開始する旨の信号が入力されない場合には、ステップＳ４に移行し、打撃の指示を待つ。一方、操作部１００から打撃を開始する旨の信号が入力された場合には、打撃操作判定部２２４は、その信号の種類を判別して振り方コード５０２を決定すると共に、真芯カーソル座標５０４を決定する（ステップＳ６）。
【０１１２】
モーションデータ抽出部２２８は、ステップＳ６にて振り方コード５０２および真芯カーソル座標５０４が決定されると、打者キャラクタデータ４１８から該当する打者キャラクタの「スタンスコード」を読み出し、第２段階抽出処理を実行して第２段階テーブル４２４の中から４つのモーションデータを抽出する（ステップＳ７）。そして、合成処理部２３０は、ステップＳ６にて、抽出された４つのモーションデータを、真芯カーソル座標５０４に基づいて合成する（ステップＳ８）。
【０１１３】
ステップＳ８における、第２段階のモーションデータの合成処理が完了すると、衝突判定部２２６は、バット８とボールの空間的条件を判定し（ステップＳ９）、更に、空間的条件の判定結果に基づいてバットの軌道を補正する必要があるか否かを判定する（ステップＳ１０）。空間的条件が満たされない場合には「空振り」と判定すると共に、バットの軌道を補正する必要がないものと判定し、ステップＳ１３に移行する。一方、空間的条件が満たされる場合には、補正処理部２３２がバットの軌道を補正するための補正処理を実行する（ステップＳ１１）。また、衝突判定部２２６は、バット８とボールの時間的条件を判定する（ステップＳ１２）。このとき、時間的条件が満たされる場合には「ミート」と判定し、時間的条件が満たされない場合には「空振り」と判定する。
【０１１４】
モーションデータ抽出部２２８は、衝突判定部２２６による、ステップＳ９の空間的条件判定、ステップＳ１２の時間的条件判定の結果と、「スタンスコード」、振り方コード５０２とに基づいて第３段階抽出処理を実行する（ステップＳ１３）。そして、合成処理部２３０は、ステップＳ１３にて抽出された第３段階のモーションデータを合成する処理を行う。以上の処理によって、打者の打撃モーションを決定する。
【０１１５】
次に、ハードウェア構成について説明する。
図２９は、本実施の形態を実現可能とするハードウェア構成の一例を示す図である。同図に示す装置では、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４が、システムバス１０１６により相互にデータ入出力可能に接続されている。そして、画像生成ＩＣ１０１０には、表示装置１０１８が接続され、音生成ＩＣ１００８には、スピーカ１０２０が接続され、Ｉ／Ｏポート１０１２には、コントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には、通信装置１０２４が接続されている。
【０１１６】
情報記憶媒体１００６は、図１４に示す機能ブロックにおける情報記憶媒体４００に相当するものであり、プログラム、表示物を表現するための画像データ、音データ、プレイデータ等が主に格納されるものである。例えば、図１に示す家庭用ゲーム装置１２１０では、ゲームプログラム等を格納する情報記憶媒体として、ＣＤ−ＲＯＭ、ゲームカセット、ＤＶＤ等が用いられ、プレイデータを格納する情報記憶媒体としてメモリカードなどが用いられる。また、本発明を業務用のゲーム装置に適用する場合には、ＲＯＭ等のメモリやハードディスクが用いられ、この場合には、情報記憶媒体１００６は、ＲＯＭ１００２になる。また、パーソナルコンピュータにおいては、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等のメモリ、ハードディスク等が用いられる。
【０１１７】
コントロール装置１０２２は、図１、図１５に示したようなゲームコントローラ１２０２，１２０４、あるいは、操作パネル等に相当するものであり、プレーヤがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【０１１８】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、ＣＰＵ１０００は、装置全体の制御や各種データ処理を行う。ＲＡＭ１００４は、このＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果が格納される。
【０１１９】
更に、この種の装置には、音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていて、ゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音は、スピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から出力される画像情報に基づいて表示装置１０１８に出力するための画素情報を生成する集積回路である。また表示装置１０１８は、ＣＲＴやＬＣＤ、ＴＶ、プラズマディスプレイ、プロジェクター等により実現される。
【０１２０】
また、通信装置１０２４は、ゲーム装置内部で利用される各種の情報を外部とやり取りするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介して、ゲームプログラム等の情報を送受すること等に利用される。
【０１２１】
また、図１〜図２７で説明した種々の処理は、図２８のフローチャートに示したモーションデータ抽出処理等を行うためのプログラムを含むプログラムを格納した情報記憶媒体１００６と、該プログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０、音生成ＩＣ１００８等によって実現される。なお、画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【０１２２】
なお、本発明は、図１に示した家庭用のゲーム装置１２１０だけでなく、他のいかなる形態のゲーム装置に適用してもかまわない。例えば、図３０に、ホスト装置１３００と、このホスト装置１３００と通信回線１３０２を介して接続される端末１３０４−１〜１３０４−ｎとを含むゲーム装置に本実施の形態を適用した場合の例を示す。
【０１２３】
図３０に示す形態の場合、図１４に示した情報記憶媒体４００に記憶されるゲームプログラム４１０やキャラクタ構造データ４１６、打者キャラクタデータ４１８、打撃モーションテーブル４２０等は、例えば、ホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。また、端末１３０４−１〜１３０４−ｎが、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ、を有し、スタンドアローンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４−１〜１３０４−ｎに配送される。一方、スタンドアローンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４−１〜１３０４−ｎに伝送し端末において出力することになる。
【０１２４】
あるいは、図３１に示すように、本実施の形態を業務用ゲーム装置８０に適用してもよい。この業務用ゲーム装置８０は、プレーヤがスピーカ８６から出力される音を聞きながら、操作ボタン８４を操作することによって、ディスプレイ８２上に表示される打者キャラクタを操作して所与のゲームを楽しむ装置である。業務用ゲーム装置８０に内蔵されるシステム基板９０には、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ等が実装されている。そして、ゲームプログラム４１０やキャラクタ構造データ４１６、打者キャラクタデータ４１８、打撃モーションテーブル４２０等は、システム基板９０上の情報記憶媒体であるメモリ９２に格納されている。
【０１２５】
なお、本発明は、上記実施の形態で説明したものに限らず、種々の変形実施が可能である。例えば、本実施の形態では、打者キャラクタの打撃モーションを決定する場合を例に説明したが、打者キャラクタの動作に伴って変化して見える影のモーションに本発明を適用してもよい。図３２は、影のモーションデータを付加した第１段階テーブル８００の一例を示す図である。同図によれば、第１段階テーブル８００には、モーションデータと、影モーションデータとが第１段階コードとそれぞれ対応付けて記憶されている。すなわち、種々の条件に該当するモーションデータを読み出すと共に、対応する影モーションデータを読み出して、影の動きをキャラクタの動作と同時に決定することができる。
【０１２６】
ただし、野球ゲーム等の球技ゲームでは、複数種類の球場を用意し、プレーヤの入力指示やゲームシナリオなどに従って採用する球場を変更させる場合がある。個々の球場では、それぞれ演出や雰囲気、光源位置等の設定が異なり、それに伴って影の見え方も変化させる必要がある。例えば、捕手キャラクタから見て打者キャラクタが左手に立った場合、影が本塁側に映る場合と、外野側に映る場合など、各球場における光源の設定、天候、時間帯などに応じて影の映る方向や形状が変化させる。係る設定にも対応するために、球場の種類や天候などの場面条件と対応させて影のモーションデータを記憶するとよい。
【０１２７】
図３３は、場面条件毎に分類した影モーション用の第１段階テーブル８０２の一例を示す図である。同図によれば、第１段階における影のモーションがｎ個の場面条件毎に分類されて記憶される。この第１段階テーブル８０２の中から１の影モーションデータを抽出する際には、場面条件が付されたｎ個のテーブルの中から、実行中の場面状況に一致するテーブルを抽出し、更に、その抽出したテーブルの中から打者キャラクタの第１段階コードに対応する影モーションデータを検索する。このように、場面や状況毎に影モーションデータを記憶することにより、多彩な影の表現を実現することができる。
【０１２８】
また、本実施の形態では、「フォロースルー」のモーションを、標準タイプとアッパータイプ、更に、ミート判定に基づくバット投げタイプと標準タイプとを設定する場合を例に説明したが、これに限定する必要はない。例えば、現実のプロ野球などでは、選手が「空振り」した際、フォロースルーにて体勢を崩すことがあるが、これにならって、フォロースルーのモーションを更に細分化してもよい。例えば、図３４に示すように、ミート判定により、「空振り」を判定した場合には「体勢崩れパターン」を実行し、「ミート」を判定した場合には、更に、ヒットしたか否かを判定する（ヒット判定）。「ヒット」の場合には、「バット投げパターン」を実行し、「ヒット」しない場合には、「標準パターン」を実行する、といった具合に、分類を設けてもよい。
【０１２９】
また、本実施の形態では、打撃モーションを３つの段階に分割し、第１段階から第３段階までの組み合わせにより、一連の打撃モーションが完結することとして説明したが、この第３段階のフォロースルーに後続するモーションを更に加えてもよい。例えば、「三振」が決定した際、第３段階におけるフォロースルーのモーションの後に、バット８を地面に叩きつけて悔しがるモーションを後続させるといった演出を加えるようにしてもよい。
【０１３０】
また、打者キャラクタの打撃モーションに関連付けて、他のキャラクタの動作を指定するようにしてもよい。例えば、第３段階テーブル４２６の中に、「三振」確定時用のテーブルを設定する。ただし、この三振時用のテーブルには、投手キャラクタが大喜びをするモーションデータを対応付けて記憶する。図３５は、第３段階における三振時用テーブル８２０の一例を示す図である。同図によれば、スタンスコード別に基準線ｘ1，ｘ2，ｘ3に対応するモーションデータが記憶される。また、各テーブルにリンクコードが付され、投手モーションデータ８３０が読み出されるように設定されている。すなわち、ゲーム実行中において、打者キャラクタの三振が決定すると、第３段階テーブル４２６の中から、三振時用テーブル８２０を選択し、種々の条件に該当するモーションデータを抽出すると共に、リンクコードに従って投手モーションデータ８３０を読み出して投手キャラクタに実行させる。このように、打者キャラクタのモーションデータに、他のキャラクタに実行させるモーションデータを対応付けて記憶することによって、他のキャラクタの動作実行有無等を判定する必要なく、打者キャラクタの動作に連動させて、他のキャラクタを制御することができる。
【０１３１】
また、上記説明では、打撃面座標系におけるボールの中心点の座標が、バット８の衝突判定領域３０に含まれる場合には、バット８がボールにミートして見えるように、補正することとした。その際、手首関節の回転角を補正することによって、ミートするように見せる場合を例に説明したが、手首関節だけに限らず、打者キャラクタにおける個々の関節の回転角を補正するようにしてもよい。例えば、わき関節、肘関節、手首関節のそれぞれに設定された回転角を逆運動学の方法によって補正することとしてもよい。
【０１３２】
なお、補正処理の実行有無を決定する条件として、空間的条件、すなわち、打撃面座標系におけるボールの中心点の座標がバット８の衝突判定領域３０に含まれることを条件とし、時間的条件については加味しなかった。しかし、空間的条件と時間的条件の２つの条件が満たされたとき、すなわち、バット８とボールがミートしたときにのみ、補正処理を実行するように設定してもよいことは勿論である。
【０１３３】
また、本実施の形態では、ゲーム演算部２２０に含まれる補間処理部２３４がキーフレーム間の各フレームにおける回転角を算出することとして説明したが、画像生成部２４０により補間計算を実行することとしてもよい。例えば、補間処理専用の電気回路を組み込んで、補間処理を実行するようにしてもよい。
【０１３４】
また、本実施の形態では、打者キャラクタが第１段階のモーションを実行している最中に、第２段階におけるモーションデータを抽出して合成し、更に、補正することとした。あるいは、第３段階のモーションは、「ミート」判定の処理結果に基づいてモーションを抽出することとした。したがって、各段階のモーションを開始するタイミングに各種判定処理や合成処理が間に合わずに処理が滞る可能性がある。係る場合には、ゲーム画像を生成することができず、プレーヤに不愉快な思いをさせる恐れがある。こういった遅延やエラーの問題を解消するために、処理の遅延やエラーを検知する機能部を設け、この機能部の検知結果に基づいて各種機能部の処理を変更するように設定してもよい。例えば、第２段階におけるモーションの合成処理が遅延した場合には、その合成処理を中断し、真芯カーソル６の座標に最も近い基準点に対応するモーションデータを採用する。あるいは、「ミート」判定処理が遅延した場合には、第３段階のモーションを決定する際に、衝突判定部２２６の判定結果にかかわらず、バット８の投げの有無について、「無」、すなわち、バット８を投げないタイプのテーブルの中からモーションデータを選択するように設定する。
【０１３５】
あるいは、画像生成処理のフリーズを防止するための補間モーションテーブルを予め用意し、遅延やエラーが発生した際に読み出して採用するようにしてもよい。図３６は、補間モーションテーブル８４０の一例を示す図である。同図によれば、各補間用のモーションデータが各種処理名とそれぞれ対応付けて記憶される。そして、エラー発生時には、モーションデータ抽出部２２８は、遅延やエラーが発生した処理段階を判定し、その処理名に対応するモーションデータを読み出して、打撃モーションを補う。このように、各種モーションデータをエラーの発生段階と対応付けて記憶することにより、エラーの発生を検知すると同時に迅速に補間用のモーションデータを決定することができるため、画像処理の遅延を防ぐことができる。なお、補間用のモーションデータをエラーの発生段階と対応付けて記憶するだけでなく、バット８の位置やスイング開始からの時間と対応させて記憶するようにしてもよい。
【０１３６】
また、本実施の形態によれば、スタンスの種類が等しい打者キャラクタは、第２・第３段階におけるモーションデータをそれぞれ共有することになる。例えば、図１７に示した打者キャラクタデータ４１８におけるスタンスコードがａの打者キャラクタは、第２・第３段階において、等しくスタンスコード「ａ」が付されたテーブルに含まれるモーションデータを適用される。このように、プレーヤの操作によらずに自動的に選択される項目（条件）が付されたテーブルは、その項目について等しい値を有する打者キャラクタに共有されることとなる。こういった項目をスタンスの種類に限定する必要はなく、例えば、体の大きさや背の高さといった違いに基づく項目を加えてもよい。また、大物有名選手や、外国人選手、個性の強い選手等を模した打者キャラクタについては、専用の打撃モーションテーブルを設け、他の打者キャラクタとモーションデータを共有しないように設定してもよい。
【０１３７】
また、本実施の形態では、各キーフレーム間のフレーム数を、モーションデータに記憶し、この記憶された値に従って補間処理を行うこととして説明したが、ゲームの進行に応じてフレーム数を変更するように設定してもよい。ただし、キーフレーム間のフレーム数が増加すれば、個々のフレーム間における打者キャラクタの移動量が減少するため、動作がゆっくり行われるように見える。一方、フレーム数が減少すれば、フレーム間の移動量が増大し、動作が素早く行われるように見える。そこで、例えば、打者キャラクタの体力値の変化に応じて、モーションデータに予め記憶された値からフレーム数を変化させる。具体的には、体力値が大きく疲労度が小さい場合には、モーションデータに記憶された値をそのまま採用し、体力値の減少に伴って徐々にフレーム数を増大させる。したがって、打者キャラクタは、疲労の増加に伴ってバット８を振る速度が遅くなる。このように、キーフレーム間のフレーム数をキャラクタの内部パラメータやゲームの進行度合、得点などに応じて変更してもよい。
【０１３８】
あるいは、一連の打撃モーションに要する時間を固定し、各段階のモーションの種類に応じて時間配分を変更するようにしてもよい。例えば、全体の打撃モーションのフレーム数をＮとし、第１段階におけるモーションのフレーム数をＮ1に固定する。そして、残りのフレーム数（Ｎ−Ｎ1）を第２・第３段階において選択されたモーションの種類に応じて割合を変更する。例えば、プレーヤにより「大振り」が選択された場合には、残りのフレーム数を第２段階と第３段階とで５：３に分割する。一方、「標準」が選択された場合には、残りのフレーム数を第２段階と第３段階とで１：１に分割する、といった具合に、スイングの内容に応じて変更してもよい。
【０１３９】
また、本実施の形態では、１人のプレーヤがコンピュータにより制御される投手キャラクタと対戦する場合を例に説明したが、１のプレーヤａが投手キャラクタを操作し、２のプレーヤｂが打者キャラクタを操作して対戦する２プレーヤゲームに適用してもよいことは勿論である。例えば、ネットワークを介して複数のコンピュータを接続し、その接続された複数のコンピュータが１つのゲーム空間を共有することによって野球ゲームを展開させる場合にも本発明を適用してもよい。
【０１４０】
図３７は、ネットワーク野球ゲームにおいて、投手キャラクタを制御する側のコンピュータａの画像例を示す図である。同図に示すように、コンピュータａは、ストライクゾーン４や真芯カーソル６を表示せずに、投手キャラクタの投球操作を支援するための画像を表示する。すなわち、コンピュータａを操作するプレーヤａは、適当な入力操作により投球を指示する。そして、コンピュータａは、プレーヤａの操作に基づいてボールの打撃面通過位置を決定し、打者キャラクタを制御するコンピュータｂに対して送信する。一方、コンピュータｂを操作するプレーヤｂは、画面上に表示される真芯カーソル６を操作し、打撃開始タイミングを入力する。そして、コンピュータｂは、プレーヤｂによる操作を判定して、打撃面座標系における真芯カーソル６の座標と、打撃開始の入力タイミングとをコンピュータａに出力する。このように、本発明をネットワーク野球ゲームに適用する場合には、プレーヤにより入力された操作信号を解析し、接続されたコンピュータに対してその都度送信することにより、本発明を実現することができる。
【０１４１】
なお、本発明の適用については、打者キャラクタの打撃モーションに限定する必要はなく、例えば、投手キャラクタの投球モーションや、テニスやゴルフにおけるスイングのモーションに適用してもよいことは勿論である。
【０１４２】
なお、従来のテニスゲームには、プレーヤキャラクタの近くにボールが接近すると、自動的にラケットのスイングを開始させるように設定したものがある。係るテニスゲームでは、プレーヤは、コントローラによって自キャラクタの位置や向きを操作すると共に、ラケットを振る際の強さを入力する。そして、ゲーム装置は、ボールとキャラクタとの位置関係に基づいてスイング開始のタイミングを算出し、一定のフォームでキャラクタのスイングを実現する。しかし、この従来のテニスゲームによれば、プレーヤにより指示されたスイングの強弱にかかわらず、常に一定のスイングフォームに従ってラケットをスイングさせることとなり、現実味に欠けるおそれがあった。
【０１４３】
そこで、本発明を適用し、構えとテイクバックのモーションと、打撃面までのスイングモーションと、打撃面からラケットを振りきるまでのフォロースルーのモーションとに分割し、プレーヤにより指示されるスイングの強弱や、キャラクタの存在位置などの条件に応じて、各段階のモーションデータを抽出し、それぞれ組み合わせて一連の打撃モーションを決定するようにしてもよい。なお、その際には、ラケットを振り始めるタイミングを、個々のモーションデータに記憶されたキーフレーム間のフレーム数に基づいて逆算して決定する。具体的には、モーションデータに記憶されたキーフレーム間のフレーム数を加算し、テイクバックの状態からラケットが打撃面を通過する瞬間までに要するフレーム数ｎを算出する。そして、算出したフレーム数ｎとボールの水平方向への進行速度ｖとを乗算することによって距離Ｌを算出し、キャラクタに対して半径Ｌ以内にボールが接近すると、ラケットのスイングを開始させる。
【０１４４】
このように、テイクバックからスイングまでに要するフレーム数を算出し、スイングを開始する際のボール位置をスイングの都度演算するように設定すれば、スイング開始タイミングをゲーム装置が自動的に実行するタイプのゲームに対しても本発明を適用することができる。
【図面の簡単な説明】
【図１】本実施の形態における家庭用ゲーム装置の一例を示す図。
【図２】捕手キャラクタの視点位置に基づいて画像を生成した一例を示す図。
【図３】打撃モーションを３つの段階に分割した一例を示す図。
【図４】第１段階における固定モーションの種類の一例を示す図。
【図５】第２段階における体勢の種類の一例を示す図。
【図６】（ａ）は、基準点の位置を示す図。（ｂ）は、基本スイングの種類の一例を示す図。
【図７】第３段階における体勢の種類の一例を示す図。
【図８】（ａ）は、基準線の位置を示す図。（ｂ）は、フォロースルーの種類の一例を示す図。
【図９】各段階におけるパターン数を示す図。
【図１０】衝突判定領域の一例を示す図。
【図１１】バットとボールがミートせずに、ボールがヒットして見える一例を示す図。
【図１２】バットをボールにミートさせるように補正した一例を示す図。
【図１３】骨格モデルの一例を示す図。
【図１４】機能ブロックの一例を示す図。
【図１５】コントローラの一例を示す図。
【図１６】キャラクタ構造データの一例を示す図。
【図１７】打者キャラクタデータの一例を示す図。
【図１８】第１段階テーブルの一例を示す図。
【図１９】第２段階テーブルの一例を示す図。
【図２０】打撃面座標系の一例を示す図。
【図２１】第３段階テーブルの一例を示す図。
【図２２】振り方コードの一例を示す図。
【図２３】基準点と真芯カーソルとの位置関係の一例を示す図。
【図２４】ローカル座標系に衝突判定領域を定義した一例を示す図。
【図２５】バットの向きを補正した一例を示す図。
【図２６】補正角テーブルの一例を示す図。
【図２７】衝突判定領域を１６のエリアに分割した一例を示す図。
【図２８】モーションデータ抽出処理を説明するフローチャート。
【図２９】ハードウェア構成の一例を示す図。
【図３０】ホスト装置と通信回線を介して接続されるゲーム端末に本実施の形態を適用した場合の一例を示す図。
【図３１】本発明を業務用のゲーム装置に適用した場合の一例を示す図。
【図３２】影モーションデータを付加した第１段階テーブルの一例を示す図。
【図３３】条件毎に分類して影モーション用の第１段階テーブルの一例を示す図。
【図３４】第３段階におけるフォロースルーの分岐例を示す図。
【図３５】第３段階のモーションに投手モーションデータをリンクさせた一例を示す図。
【図３６】補間モーションテーブルの一例を示す図である。
【図３７】ネットワーク野球ゲームにおける投手キャラクタを制御する側のコンピュータによる画像例を示す図。
【符号の説明】
１００    操作部
２００    処理部
２２０    ゲーム演算部
２２２            ボール制御部
２２４            打撃操作判定部
２２６            衝突判定部
２２８            モーションデータ抽出部
２３０            合成処理部
２３２            補正処理部
２３４            補間処理部
２４０    画像生成部
３００    表示部
４００    情報記憶媒体
４１０    ゲームプログラム
４１２            ゲーム演算プログラム
４１４            画像生成プログラム
４１６            キャラクタ構造データ
４１８            打者キャラクタデータ
４２０            打撃モーションテーブル
５００    一時記憶部
５０２    振り方コード
５０４    真芯カーソル座標
５０６    ボール座標
５０８    第１段階モーションデータ
５１０    第２段階モーションデータ
５１２    第３段階モーションデータ
【図１】
0004776831.tif 000002
【図２】
0004776831.tif 000003
【図３】
0004776831.tif 000004
【図４】
0004776831.tif 000005
【図５】
0004776831.tif 000006
【図６】
0004776831.tif 000007
【図７】
0004776831.tif 000008
【図８】
0004776831.tif 000009
【図９】
0004776831.tif 000010
【図１０】
0004776831.tif 000011
【図１１】
0004776831.tif 000012
【図１２】
0004776831.tif 000013
【図１３】
0004776831.tif 000014
【図１４】
0004776831.tif 000015
【図１５】
0004776831.tif 000016
【図１６】
0004776831.tif 000017
【図１７】
0004776831.tif 000018
【図１８】
0004776831.tif 000019
【図１９】
0004776831.tif 000020
【図２０】
0004776831.tif 000021
【図２１】
0004776831.tif 000022
【図２２】
0004776831.tif 000023
【図２３】
0004776831.tif 000024
【図２４】
0004776831.tif 000025
【図２５】
0004776831.tif 000026
【図２６】
0004776831.tif 000027
【図２７】
0004776831.tif 000028
【図２８】
0004776831.tif 000029
【図２９】
0004776831.tif 000030
【図３０】
0004776831.tif 000031
【図３１】
0004776831.tif 000032
【図３２】
0004776831.tif 000033
【図３３】
0004776831.tif 000034
【図３４】
0004776831.tif 000035
【図３５】
0004776831.tif 000036
【図３６】
0004776831.tif 000037
【図３７】
0004776831.tif 000038