(57)【特許請求の範囲】
【請求項１】
コンピュータに、プレーヤの操作入力に従って操作キャラクタを制御してボールを打撃させることで相手陣地と味方陣地との間でボールが行き交うゲームを実行させるためのプログラムであって、
プレーヤの移動操作に基づいて前記操作キャラクタを移動制御する移動制御手段、
前記ボールの軌道と前記操作キャラクタとの位置関係に関する条件を満たしたことを検出することで、所定のテイクバック開始条件を満たしたことを検出する開始条件合致検出手段、
前記開始条件合致検出手段による検出がなされた場合に前記操作キャラクタにテイクバック動作をさせる制御を自動的に実行開始するテイクバック自動制御手段、
プレーヤの打撃開始指示操作に応じて前記操作キャラクタにスイング動作をさせる制御を行う手段であって、前記テイクバック動作中に前記打撃開始指示操作がなされた場合には当該テイクバック動作を中断してスイング動作をさせる制御を行うスイング動作制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
前記スイング動作には、少なくともフォアストロークとバックストロークとを含む複数のスイングパターンが有り、
前記テイクバック自動制御手段が、前記開始条件合致検出手段による検出がなされたときの前記操作キャラクタの位置と前記ボールの軌道との相対位置関係に基づいて、前記複数のスイングパターンの中からスイングパターンを選択し、当該選択したスイングパターンに対応するテイクバック動作を前記操作キャラクタに行わせる制御を行う、
ように前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項３】
前記移動制御手段が、前記テイクバック動作中に前記移動操作がなされた場合に、前記操作キャラクタの下半身に移動モーションを適用して、当該移動操作に基づく移動制御を行い、
前記テイクバック自動制御手段が、前記テイクバック動作中に前記移動操作がなされていない場合には、前記操作キャラクタの上半身にテイクバック動作をさせ、且つ、下半身に構え動作をさせ、前記テイクバック動作中に前記移動操作がなされた場合には、前記操作キャラクタの上半身にテイクバック動作をさせる制御を行う、
ように前記コンピュータを機能させるための請求項１又は２に記載のプログラム。
【請求項４】
前記開始条件合致検出手段が、相手キャラクタがボールを打撃してからの経過時間の条件を前記テイクバック開始条件に更に含み、前記位置関係の条件と前記経過時間の条件の両方を満たしたことを検出する、
ように前記コンピュータを機能させるための請求項１〜３の何れか一項に記載のプログラム。
【請求項５】
前記開始条件合致検出手段が、前記ボールの軌道と前記操作キャラクタ間の距離を前記位置関係の条件として前記テイクバック開始条件を満たしたことを検出する、
ように前記コンピュータを機能させるための請求項１〜４の何れか一項に記載のプログラム。
【請求項６】
前記テイクバック自動制御手段が、前記ボールの速度に応じて、前記テイクバック動作の速度を変更する、
ように前記コンピュータを機能させるための請求項１〜５の何れか一項に記載のプログラム。
【請求項７】
プレーヤが前記操作キャラクタに行わせる打撃動作を予め指定する打撃動作指定手段として前記コンピュータを更に機能させ、
前記テイクバック自動制御手段が、前記打撃動作指定手段により指定された打撃動作に予め対応付られたテイクバック動作を前記操作キャラクタに行わせる制御を行い、
前記スイング動作制御手段が、前記打撃動作指定手段により指定された打撃動作に予め対応づけられたスイング動作を前記操作キャラクタに行わせる、
ように前記コンピュータを機能させるための請求項１〜６の何れか一項に記載のプログラム。
【請求項８】
請求項１〜７の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項９】
プレーヤの操作入力に従って操作キャラクタを制御してボールを打撃させることで相手陣地と味方陣地との間でボールが行き交うゲームを実行するゲーム装置であって、
プレーヤの移動操作に基づいて前記操作キャラクタを移動制御する移動制御手段と、
前記ボールの軌道と前記操作キャラクタとの位置関係に関する条件を満たしたことを検出することで、所定のテイクバック開始条件を満たしたことを検出する開始条件合致検出手段、
前記開始条件合致検出手段による検出がなされた場合に前記操作キャラクタにテイクバック動作をさせる制御を自動的に実行開始するテイクバック自動制御手段と、
前記テイクバック動作後にプレーヤの打撃開始指示操作がなされた場合には前記操作キャラクタにスイング動作をさせ、前記テイクバック動作中に前記打撃開始指示操作がなされた場合には当該テイクバック動作を中断してスイング動作をさせる制御を行うスイング動作制御手段と、
を備えたゲーム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータにゲームを実行させるためのプログラム等に関するものである。
【０００２】
【従来の技術】
近年では、３次元の仮想空間にオブジェクトを配置し、仮想的なカメラ（以下、視点という）に基づいてリアルタイムにゲーム画像を生成して、順次ディスプレイに表示するゲーム装置およびソフトウェアが多数開発されている。係るゲームでは、プレーヤによる入力指示に応じて仮想空間に配置したオブジェクトの位置や向きを変化させ、所定のルールやシナリオに従ってゲームを展開させる。
【０００３】
例えば、テニスゲームを実現させるゲーム装置があるが、係るゲーム装置では、プレーヤによる入力指示に従って特定のキャラクタ（以下、操作キャラクタという）を陣地内で移動させたり、ボールを打撃させたりしてゲームを展開させる。すなわち、テニスゲームにおいてプレーヤは、相手打球が自陣に到達する位置を予測して操作キャラクタを好適な位置に移動させ、また、相手打球を打ち返す好適な方向や位置を指定して打撃させて、相手キャラクタとの得点を争う。
【０００４】
このように、一般的なテニスゲームでは、プレーヤは、自陣の何れの位置に相手打球が到達し、相手陣の何れの方向にボールを打ち返すべきかを考慮しながらゲームを楽しむ。言い換えれば、プレーヤはゲームの実行中に少なくとも操作キャラクタの移動方向と、打ち返すボールの飛行方向もしくは到達位置を指定する。さて、ゲーム装置は、プレーヤにより指定された位置で指定された方向にボールを打撃する動作を操作キャラクタに行わせるわけだが、その打撃動作を開始させる適当なタイミングを決定しなければならない。一般によく知られた方法としては、ゲーム装置が自動的に適当なタイミングを判断する方法（自動制御型）と、プレーヤ入力に従って決定する方法（入力指定型）とがある。
【０００５】
自動制御型では、操作キャラクタの位置にボールが到達するまでに要する時間と、操作キャラクタの打撃動作に要する時間とを比較し、両者が一致する瞬間に操作キャラクタに打撃動作を開始させる。一方、入力指定型では、操作キャラクタとボールとの位置関係によらずに、プレーヤの入力指示に従って打撃の動作を開始させる。
【０００６】
【発明が解決しようとする課題】
上述のように、従来のテニスゲームでは、操作キャラクタの打撃開始のタイミングを決定する方法として、自動制御型と入力指定型とがあるが、それぞれ以下の問題を抱えている。
【０００７】
自動制御型では、プレーヤは打撃する好適な位置を見誤らなければ確実にボールを打ち返すことができる。すなわち、プレーヤが操作キャラクタの移動位置さえ上手く判断できれば、あとは自動的に制御される。このため、テニスゲームとしての現実性が欠けてしまう。また、プレーヤが意図せず漠然と操作したような場合であっても、操作キャラクタが打撃可能な位置に存在すればボールを打ち返すことができ、なんとなくラリーが続いてしまうといったことが起こり得る。これでは、上級者と初心者との差が明瞭に現れず、プレーヤの向上心を阻害する恐れがある。
【０００８】
入力指定型では、プレーヤによる打撃の指示に従って、操作キャラクタに打撃の動作を開始させる。さて、現実のテニスでは、ラケットをボールに当てる際に、一旦ラケットを後ろに引き（テイクバック）、その後でラケットをボールに当てにいく動作を行う。すなわち、ボールを打撃するためには、打つための準備動作（テイクバック）が必要となる。同様にゲーム装置によるテニスゲームにおいても、操作キャラクタは、プレーヤにより打撃の指示が入力されてすぐボールを打撃するわけではなく、テイクバックを行った後でなければボールを打撃することができない。しかしこれでは、ボールを打つ為には必ず一定の時間（テイクバックの時間）が必要となり、プレーヤは迅速な打ち返しを調節することができない。
【０００９】
その際、ボールと操作キャラクタとの位置関係やボールの速度に応じて、打撃に要するモーションスピードを変更したり、テイクバックの動作を省略したりする処置も考えられる。しかし、その都度打撃に要する時間を変更したり、都合に応じてテイクバックの動作を省略したりすれば、却ってプレーヤが打撃開始のタイミングを図ることが困難となり、望ましくない。
【００１０】
本発明の課題は、上記事項に鑑みてなされたものであり、打撃の動作を無理なく自然に演出することを目的とする。
【００１１】
【課題を解決するための手段】
上記課題を解決するための第１の発明は、プロセッサによる演算・制御により、移動体（例えば、本実施の形態におけるボール４４）を打つための準備動作（例えば、本実施の形態におけるテイクバック）と前記移動体を打つ際の打撃動作（例えば、本実施の形態におけるスイング）とをキャラクタ（例えば、本実施の形態における操作キャラクタ４０）に実行せしめ、前記キャラクタを含む仮想空間の画像を所与の視点に基づいて生成するように、当該プロセッサを有する装置に機能させるためのゲーム情報であって、所与の準備動作開始条件に応じて、自動的に前記キャラクタに前記準備動作を開始させる準備動作制御手段（例えば、図１１に示すテイクバック開始判定部２２６、動作選定部２２８および動作制御部２３０）と、操作者から入力される打撃動作開始指示に応じて、前記キャラクタに前記打撃動作を開始させる打撃動作制御手段（例えば、図１１に示す動作選定部２２８および動作制御部２３０）と、を前記装置に対して機能させるためのゲーム情報である。
【００１２】
また、第１６の発明は、キャラクタ（例えば、本実施の形態における操作キャラクタ）と移動体（例えば、本実施の形態におけるボール）を含む仮想空間の画像を所与の視点に基づいて生成するゲーム装置（例えば、図１に示すゲーム筐体１０）であって、前記移動体を打つための準備動作を複数種類と、前記移動体を打つ際の打撃動作を複数種類とを、それぞれ記憶するための記憶手段（例えば、図１１に示すテイクバックテーブル４２６およびスイングテーブル４２８）と、前記移動体の移動状況に基づいて前記キャラクタに実行させる準備動作および打撃動作を前記記憶手段に記憶された複数種類の準備動作および複数種類の打撃動作の中から特定する特定手段（例えば、図１１に示す動作選定部２２８）と、準備動作開始条件に応じて、前記特定手段により特定された前記準備動作を当該キャラクタに開始させる準備動作制御手段（例えば、図１１に示すテイクバック開始判定部２２６および動作制御部２３０）と、操作者が打撃動作を開始させる指示を入力するための動作指示手段（例えば、図１１に示す操作部１００）と、前記動作指示手段により打撃動作を開始する指示が入力された場合に、前記特定手段により特定された打撃動作を当該キャラクタに開始させる打撃動作制御手段（例えば、図１１に示す動作制御部２３０）と、を備えるゲーム装置である。
【００１３】
第１または第１６の発明によれば、準備動作開始条件が満たされると、キャラクタに自動的に準備動作を行わせる。また、操作者による入力指示に応じてキャラクタに打撃動作を行わせる。換言すれば、準備動作は、操作者の意思に拘わらず自動的に行わせるが、打撃動作は、操作者の指示に従って行わせる。このため、操作者は、準備動作に要する時間を考慮せずに、直接的に打撃動作の開始タイミングを指示することができる。
【００１４】
例えば、テニスゲームのように、ボールが相手陣地と見方陣地とを行き交うゲームでは、操作者が打撃指示を入力するタイミングを予測することができる。例えば、キャラクタがボールを打つための条件として、ボールがその陣地に存在することが必須である。換言すれば、ボールが陣地に存在しない限り、キャラクタはボールを打つことができないし、ボールが陣地に存在すれば、キャラクタがボールを打つ可能性が発生する。そこで、キャラクタにボールを打つ可能性があるか否かに応じて準備動作を開始させれば、より自然に尤らしく打撃動作を行わせることができる。
【００１５】
また、第２の発明として、第１の発明のゲーム情報において、前記準備動作制御手段が、複数の準備動作の中から１の準備動作を特定して前記キャラクタに実行させる、ように前記装置に機能させるための情報と、前記打撃動作制御手段が、前記準備動作制御手段により特定された準備動作に対応する打撃動作を複数の打撃動作の中から特定して、前記キャラクタに実行させる、ように前記装置に機能させるための情報と、を含むゲーム情報を構成することとしてもよい。
【００１６】
また、第３の発明として、第１の発明のゲーム情報において、前記準備動作制御手段が、複数の準備動作の中から１の準備動作を特定して前記キャラクタに実行させる、ように前記装置に機能させるための情報と、前記打撃動作制御手段が、複数の打撃動作の中から、前記移動体の軌道と前記キャラクタとの位置関係に基づいて打撃動作を特定し、前記キャラクタに実行させる、ように前記装置に機能させるための情報と、を含むゲーム情報を構成することとしてもよい。
【００１７】
この第２または第３の発明によれば、複数の準備動作、複数の打撃動作の中から適当な動作を選定してキャラクタに実行させることができる。第２の発明は、準備動作と打撃動作とが対応関係を有する場合を示し、第３の発明は、準備動作を選定する条件と打撃動作を選定する条件とが異なる場合を示している。準備動作は、打撃するための準備の動作であるから、打撃動作と対応付けて記憶することが有効であることは勿論である。しかし、例えば、テニスゲームのようにキャラクタが一定の範囲を頻繁に移動するゲームでは、準備動作を選定する条件と、打撃動作を選定するための条件とが必ずしも一致しない。そこで、第３の発明のように、準備動作を選定する処理と、打撃動作を選定する処理とを分けて行うようにしてもよい。
【００１８】
ところで、テニスゲームなどにおいては、打撃動作は１種類ではなく、フォアストロークやバックストローク、スマッシュ、ボレーなどいくつかの打法がある。また、各打法に応じてテイクバック（準備動作）における動作・姿勢も異なる。このように、姿勢の異なる準備動作が複数種類存在する場合には、その都度適当な準備動作を選定しなければならない。
【００１９】
その際、第４の発明として、第２または第３の発明のゲーム情報において、前記準備動作制御手段が、前記キャラクタに実行させる準備動作を、(1)前記移動体の軌道、(2)前記移動体の移動速度、(3)前記移動体と前記キャラクタとの位置関係、(4)前記キャラクタの移動方向、(5)前記キャラクタの位置、の少なくとも１つに基づいて特定する、ための情報を含むゲーム情報を構成することとしてもよい。
ここで、移動体の軌道とは、移動体が過去に通過した部分（通過軌道）のみであってもよいし、その先に通過する予定の部分（予定軌道）を含むものであってもかまわない。
【００２０】
この第４の発明によれば、移動体の軌道や速度、移動体とキャラクタの位置関係、キャラクタの移動方向や位置などの応じて、準備動作を選定することができる。例えば、テニスゲームにおいては、前述の通り様々な打法が存在するが、各打法に対応する準備動作を選定する際に、ボールやキャラクタの状況に応じて適宜選定することができる。
【００２１】
例えば、▲１▼「前記移動体の軌道」によれば、ボール（移動体）が過去に通過した道のり（通過軌道）や、これから通過するであろうボールの道のり（予定軌道）に応じて選定するテイクバック（準備動作）を決定することができる。
例えば、通過軌道が直線的である場合には、ボールを待ちうけるキャラクタの緊張感を表現するために、比較的急速なテイクバックを実行させたり、通過軌道が大きく湾曲した弧状である場合には、余裕のあるテイクバックをキャラクタに実行させるなど、選定するように設定することができる。
あるいは、予定軌道がキャラクタの向かって右側を通過する場合と左側を通過する場合とで、フォアストロークかバックストロークかを選択するといったように、予定軌道に応じてテイクバックの種類を選定することも可能となる。
【００２２】
▲２▼「前記移動体の移動速度」によれば、例えば、ボールの速度が速い場合には、素早く動くテイクバック（モーションデータ）を特定し、ボールの速度が遅い場合には、比較的余裕のあるゆったりとしたテイクバック（モーションデータ）を特定するように設定することができる。
【００２３】
▲３▼「移動体とキャラクタとの位置関係」によれば、例えば、ボールがキャラクタの位置を通過する際、キャラクタの右側を通過する場合にはフォアストロークのテイクバックを、左側を通過する場合にはバックストロークのテイクバックを、特定するように設定できる。
【００２４】
▲４▼「キャラクタの移動方向」によれば、例えば、キャラクタが右方向に移動している場合にはフォアストロークのテイクバックを、左方向に移動している場合にはバックストロークのテイクバックを、前方に移動している場合にはボレーのテイクバックを、特定するように設定できる。
【００２５】
▲５▼「キャラクタの位置」によれば、例えば、キャラクタが陣地の前方に存在する場合にはボレーのテイクバックを、後方に存在する場合にはストロークのテイクバックを、といった具合に特定するように設定できる。
【００２６】
また、第５の発明として、第１〜第４のいずれかの発明のゲーム情報において、前記準備動作制御手段による準備動作の実行有無に関わらず、操作者から入力される移動指示に応じて前記キャラクタを移動させるための移動制御手段を、前記装置に機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００２７】
あるいは、第１７の発明として、第１６の発明のゲーム装置において、前記準備動作制御手段による準備動作の実行有無に関わらず、操作者から入力される移動指示に応じて前記キャラクタを移動させる移動制御手段を、更に備えるゲーム装置を構成することとしてもよい。
【００２８】
この第５または第１７の発明によれば、キャラクタが準備動作を実行しているか否かにかかわらず、操作者の入力指示に応じてキャラクタを移動させる。例えば、現実のテニスゲームでは、選手がテイクバックをしながらボールの進行方向に走り込んで打撃することがある。このように、ぎりぎりボールに追いついて打撃することによって、ゲームが思わぬ方向に展開し、よりゲームが面白くなる場合がある。これと同様に、ゲーム装置によるテニスゲームでも、キャラクタにテイクバックをさせながら移動させれば、キャラクタに迅速にボールを打撃させることが可能となり、よりリアルなテニスゲームを実現させることができる。また、テニスゲームに限らず、他の球技ゲームにおいても同様のことが言える。
【００２９】
なお、移動体を打撃するゲームには、下半身によって移動体を打撃する（蹴る）場合と、適当な打具（テニスゲームならばラケット、野球ゲームならばバット、バレーゲームならば腕など）を用いて上半身によって打撃する場合とがある。上半身によって打撃をするゲームでは、準備動作を行う際に、上半身で打具を振って打撃の準備をし、下半身はスタンスを取ることが一般的である。そこで、操作者から移動の指示が入力された場合には、上半身による準備動作とは別に、下半身には足を動かして走る動作を行わせる、といった具合に、両者別々に制御するようにしてもよい。
【００３０】
すなわち、第６の発明として、第５の発明のゲーム情報において、前記キャラクタは、少なくとも第１の部位と第２の部位とを含み、前記準備動作制御手段が、前記キャラクタの前記第１の部位を制御することによって、当該キャラクタに準備動作を行わせる、ように前記装置に機能させるための情報と、前記移動制御手段が、前記キャラクタの前記第２の部位を制御することによって、当該キャラクタの移動を制御する、ように前記装置に機能させるための情報と、を含むゲーム情報を構成することとしてもよい。
ここで、キャラクタに含まれる第１・第２の部位とは、例えば、キャラクタの上半身と下半身といった部分であってもよい。あるいは、第１の部位を右腕と左腕、第２の部位を右足と左足とする、といったキャラクタモデルを構成する複数の部分の組み合わせであってもかまわない。
【００３１】
ところで、準備動作開始条件が満たされると自動的にキャラクタに準備動作を開始させるわけだが、そのタイミングが必ずしも操作者が望むタイミングと一致するわけではない。すなわち、キャラクタによる準備動作が完了する前に操作者から打撃動作を開始する指示が入力される場合がある。
【００３２】
そこで、第７の発明として、第１〜第６のいずれかの発明のゲーム情報において、前記準備動作制御手段が、前記キャラクタに対して準備動作を実行させる前に、あるいは、準備動作が完了する前に、操作者から打撃動作を開始する指示が入力された場合には、準備動作の動作速度を変更して実行させる、または／および、準備動作の途中段階までの動作を実行させる、ように前記装置に機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００３３】
この第７の発明によれば、準備動作を行う前、あるいは、準備動作の途中で打撃を開始する指示が入力された場合には、別の準備動作を行わせたり、準備動作を中断させる。したがって、準備動作が操作者の入力指示に間に合わなかった場合にも、柔軟に対応することができる。
【００３４】
なお、準備動作を自動的に開始させるための条件、すなわち、準備動作開始条件は、打撃動作を開始する好適な段階よりも早い段階から準備動作が開始されるように設定されることが望ましい。
【００３５】
そこで、第８の発明として、第１〜第７のいずれかの発明のゲーム情報において、前記準備動作制御手段が、他のキャラクタにより前記移動体が打撃されたことを前記準備動作開始条件として、もしくは、他のキャラクタにより前記移動体が打撃された後の所与の時間経過を前記準備動作開始条件とする、ように前記装置に機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００３６】
あるいは、第９の発明として、第１〜第８のいずれかの発明のゲーム情報において、前記準備動作制御手段が、前記移動体の軌道と前記キャラクタを含む所与の面との交点を算出し、当該交点と当該キャラクタの水平方向に対する距離が所与の長さ以内であることを前記準備動作開始条件とする、ように前記装置に機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００３７】
この第９の発明によれば、移動体の軌道とキャラクタとがある程度近くなると準備動作を開始させる。係る設定によれば、キャラクタが準備動作を開始したことによって、操作者は、打撃をするのに好適な位置近傍にキャラクタが位置することを把握できる。言い換えると、準備動作の開始有無によって、打撃行為の可能性を操作者に間接的に知らせる効果がある。
【００３８】
ところで、このように移動体とキャラクタとの位置関係を準備動作の開始条件に組み込むと、準備動作を開始するタイミングが遅れてしまう可能性がある。例えば、移動体とキャラクタとの位置的な条件が満たされた時には、既に移動体がキャラクタの近傍に到達してしまい、準備動作が間に合わなくなるといったことが起こり得る。すなわち、移動体がキャラクタの位置を通過するまでに要する時間が、キャラクタが準備動作を実行するために要する時間よりも短くなってしまう場合がある。こうした場合には、準備動作の動作速度を変更して、準備動作が移動体の移動に間に合うようにしてもよい。
【００３９】
すなわち、第１０の発明として、第９の発明のゲーム情報において、前記準備動作制御手段が、前記移動体の現地点から前記交点に到達するまでに要する時間が、前記キャラクタの準備動作に要する時間よりも短い場合には、当該準備動作の動作速度を変更する、ように前記装置に機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００４０】
また、第１１の発明として、第１から第１０のいずれかの発明のゲーム情報において、前記準備動作制御手段が、前記移動体の速度に応じて、前記キャラクタに実行させる準備動作の速度を変更する、ように前記装置に機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００４１】
この第１１の発明によれば、キャラクタに準備動作を実行させる際、移動体の速度に応じて準備動作の速度を変更する。例えば、テニスゲームにおいて、ゆっくり飛んでくるボールに対しては比較的ゆっくりしたテイクバック（準備動作）を実行させ、素早く飛んでくるボールに対しては素早くテイクバックを行わせる、といった具合に、ボールの速さに応じた緊張感を演出できる。
【００４２】
また、第１２の発明として、第１〜第１１のいずれかの発明のゲーム情報において、操作者が前記キャラクタに実行させる打撃動作を予め指定する動作指定手段を前記装置に機能させるための情報と、前記動作指定手段により指定された打撃動作に基づいて、準備動作を選定する選定手段を前記装置に機能させるための情報と、前記準備動作制御手段が、前記選定手段により選定された準備動作を前記キャラクタに実行させる、ように前記装置に機能させるための情報と、前記打撃動作制御手段が、操作者から入力される打撃動作開始指示に応じて、前記動作指定手段により指定された打撃動作を前記キャラクタに開始させる、ように前記装置に機能させるための情報と、を含むゲーム情報を構成することとしてもよい。
【００４３】
この第１２の発明によれば、打撃動作の種類を自動的に選定するのではなく、操作者の入力指示に応じて打撃動作を決定する。また、キャラクタに自動的に準備動作を開始させる際に、操作者により指定された打撃動作に対応する準備動作を行わせる。したがって、操作者に指定された打撃動作が、その瞬間において自動的に選定される準備動作とは異なるタイプの準備動作を必要とするものであったとしても、指定された打撃動作と対応する準備動作を行わせることとしため、無理なく自然に指定された打撃動作を行わせることができる。
【００４４】
なお、操作者が打撃動作の種類を指定するタイミングは、必ずしも、キャラクタが準備動作を開始する前とは限らない。すなわち、自動的に選定した準備動作をキャラクタに開始させた後に、打撃動作を指定する指示が入力される可能性もある。
【００４５】
そこで、第１３の発明として、第１２の発明のゲーム情報において、前記準備動作制御手段が、前記キャラクタに準備動作を開始させた後に、前記動作指定手段により打撃動作が指定された場合に、既に開始させた準備動作から前記選定手段により選定された準備動作へと移行させる、ように前記装置に機能させるための情報を含むゲーム情報を構成することとしてもよい。
【００４６】
また、第１４の発明は、プロセッサによる演算・制御により、所与の視点に基づく仮想空間の画像を生成して、テニスゲームを実行するように、当該プロセッサを有する装置を機能させるためのゲーム情報であって、操作者キャラクタとボールとが接近することによって、当該操作者キャラクタにスイング準備動作を自動実行させる準備動作制御手段と、操作者から入力される打撃動作開始指示により前記操作者キャラクタに打撃動作を開始させる打撃動作制御手段と、を前記装置に機能させるための情報を含むゲーム情報である。
【００４７】
この第１４の発明によれば、テニスゲームにおいて、操作者キャラクタとボールとが接近したことを条件として、操作者キャラクタにスイング準備動作を自動的に実行させる。また、打撃動作は、操作者からの入力指示に応じて開始させる。したがって、操作者は、準備動作に要する時間を考慮することなく、打撃開始の指示を入力することができるようになると共に、操作者キャラクタに迅速に打撃動作を行わせることが可能となる。
【００４８】
また、第１５の発明として、第１〜第１４までのいずれかの発明のゲーム情報を情報記憶媒体に記憶してもよいことは勿論である。
【００４９】
【発明の実施の形態】
以下に、本発明の好適な実施形態について、図面を参照して説明する。なお、以下では各請求項記載の発明をテニスゲームにおけるキャラクタの動作に適用し、業務用のゲーム装置にて実現する場合を例に説明するが、以下の実施方法に限定する必要はない。
【００５０】
図１は、業務用のゲーム装置の一例を示す図である。同図によれば、ゲーム装置１の筐体１０は、ディスプレイ１２、操作バー１４、操作キー１６、スピーカ１８、を備える。また、ゲームプログラムや、本発明を実現するために必要なプログラムやデータ等のゲーム情報は、筐体１０に内蔵されたシステム基板２０上の情報記憶媒体であるメモリ２２に格納されている。また、システム基板２０には、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ等が実装されている。プレーヤは、ディスプレイ１２に映し出される画像を見て、スピーカ１８から出力される音を聞きながら、操作バー１４および操作キー１６を操作することによりテニスゲームを楽しむ。その際、プレーヤは、操作バー１４によって、キャラクタの移動方向を指示し、操作キー１６によって打撃開始の指示や球種を指定する。
【００５１】
図２は、本実施の形態における仮想空間の一例を示す図である。（ａ）が仮想空間３０の斜俯瞰図であり、（ｂ）が仮想空間３０の平面図である。
本実施の形態では、３次元の仮想空間３０（Ｘ，Ｙ，Ｚ）に、テニスコートのライン、ネット３８、および複数のキャラクタを配置する。なお、仮想空間３０の座標系（以下、ワールド座標系という）の原点をネットラインの中央に定義し、Ｙ軸正方向が鉛直上方を示すように定義する。テニスコートの各ラインは、Ｘ軸に対してベースライン３２ａ，ｂ、サービスライン３４ａ，ｂ、ネット３８が平行になるように、また、Ｚ軸に対してサイドライン３６ａ〜ｄが平行になるようにそれぞれ配置される。なお、以下では、ワールド座標系の原点がコートの中心位置にあるものとする。
【００５２】
キャラクタの数は、ダブルスのテニスゲームであれば、各陣地に２つづつキャラクタを配置し、シングルのテニスゲームであれば、１つづつキャラクタを配置する。以下では、シングルのテニスゲームを例に説明する。また、一方のキャラクタをプレーヤが操作し、他方のキャラクタをゲーム装置１（コンピュータ）が制御することとして説明する。すなわち、ゲーム装置１は、所定のプログラムやデータに従って１のキャラクタの動作を決定すると共に、プレーヤにより入力される指示に従って他方のキャラクタの動作を決定する。
以下では、プレーヤによって操作されるキャラクタを操作キャラクタといい、ゲーム装置により制御されるキャラクタを相手キャラクタという。
【００５３】
本実施の形態では、プレーヤが、操作キャラクタの動作について、移動の有無、移動方向、ラケットにより打撃を開始するタイミング、打撃後のボールの飛行方向を、ゲームコントローラによって指示する。言い換えれば、ゲーム装置１は、プレーヤの指示に従って、操作キャラクタの移動有無や移動方向を決定し、また打撃を開始するタイミングや打撃後のボールの飛行方向を確定する。
また、ゲーム装置１は、打撃の動作において、テイクバック（準備動作）とスイング（打撃動作）とを分けて制御する。具体的には、テイクバックの動作は、操作キャラクタに自動的に開始させるが、スイングは、プレーヤの入力指示に応じて開始させる。テイクバックの開始タイミングを決定する方法については、後に詳細に説明するが、所定のテイクバック開始条件を毎フレーム判定し、条件が満たされたときに操作キャラクタにテイクバックを開始させる。
【００５４】
図３は、ゲーム実行中における操作キャラクタの動作を説明するための図であり、Ｘ軸方向から見た仮想空間３０の側面を示すものである。（ａ）から（ｄ）の順番で時間の経過を示している。各図において、右側に位置するキャラクタがプレーヤによって操作される操作キャラクタ４０であり、左側に位置するキャラクタが相手キャラクタ４０である。（ａ）は、相手キャラクタ４２がボール４４を打ち返した直後の状態を示す図である。このとき、ゲーム装置は、操作キャラクタ４０のテイクバック開始条件を判断する。テイクバック開始条件が満たされている場合には、（ｂ）に示すように、操作キャラクタ４０に自動的にテイクバックを開始させる。テイクバック開始後、プレーヤからの入力指示がなければ、操作キャラクタ４０にテイクバックをさせたままの状態を維持させる（ｃ）。一方、プレーヤから打撃を開始する指示があった場合には、所定のスイングでボール４４を打撃する動作を操作キャラクタ４０に実行させる（ｄ）。
【００５５】
このように、プレーヤが打撃の指示を入力する前に、予め操作キャラクタ４０にテイクバックを開始させておくことによって、より現実のテニス選手の動作に近い動作を操作キャラクタ４０に実行させることができる。また、係る方法によれば、プレーヤが打撃指示を入力した瞬間からボール４４を打撃する瞬間までの時間のずれが比較的小さくてすむため、プレーヤが打撃指示のタイミングを図りやすくなる。
【００５６】
また、本実施の形態では、テイクバックの実行中においても、プレーヤが操作キャラクタ４０の移動を指示できるように構成する。具体的には、操作キャラクタ４０の上半身と下半身とを別々に制御する。すなわち、テイクバック開始条件を満たす場合には、上半身によってテイクバックを実行させる。その際、下半身については、プレーヤから移動指示が入力されていない場合には、両足を開いて構えさせる。一方、テイクバック開始後にプレーヤが移動指示を入力した場合には、上半身によりテイクバックの動作をさせた状態で、下半身によって走る動作をさせて、その指定された方向に操作キャラクタ４０を移動させる。したがって、プレーヤは、操作キャラクタ４０がテイクバックをした状態であっても、ボール４４に向かって走り込む指示を入力して、迅速に相手打球を打撃させることができる。
【００５７】
ところで、本実施の形態では、プレーヤは、操作キャラクタ４０の移動方向を指定し、また、打撃開始のタイミングを指定し、打撃する際の球種を指定し、更に、打撃後のボール４４の飛行方向を指定する、といった操作を行う。そのため、ゲーム筐体の操作環境に制限がある場合には、いずれかの指示を行うための操作手段が不足する可能性がある。
【００５８】
例えば、図１に示すゲーム筐体１０は、操作バー１４が１つと、４つの操作キー１６とを有するが、操作キャラクタ４０の移動方向を操作バー１４により指示し、打撃開始の指示や球種（すなわち打法）の選択指示を操作キー１６によって行うように操作を特定すると、ボール４４の飛行方向を指定するためのキーが足らなくなる。そこで、操作バーをもう１つ筐体１０に実装するなどしてボール４４の飛行方向を指定するための操作手段を追加してもよいが、それではボール４４の飛行方向を指定する度にプレーヤは操作バーを持ち替えなければならず、迅速な操作を妨げる恐れがある。
【００５９】
係る問題を解決する方法はいくつか考えられるが、以下にその一例を示す。
図４（ａ）・（ｂ）は、それぞれ仮想空間３０の斜俯瞰図であり、操作と指示との対応関係を説明するための図である。（ａ）は、プレーヤが打撃開始の指示を入力する前における、操作と指示との関係を示している。このとき、ゲーム装置１は、操作キャラクタ４０のテイクバック実行有無に関わらず、操作バー１４が倒された方向に基づいて操作キャラクタ４０の移動方向を決定する。（ａ）においては、操作バー１４が右斜め奥に倒されているため、操作キャラクタ４０を自陣の右斜め奥に移動させている。その際、移動前の位置では操作キャラクタ４０にテイクバックをさせていないが、移動することでボール４４と操作キャラクタ４０が接近し、テイクバック開始条件を満たしたため、テイクバックをさせながら移動方向に移動させている。
【００６０】
図４（ｂ）は、プレーヤが打撃開始の指示を入力した後における、操作と指示との関係を示している。打撃開始の指示が入力されると、操作キャラクタ４０は、スイングを開始する。このとき、操作バー１４が倒されても操作キャラクタ４０を移動させない。そのかわり、操作バー１４が倒された方向に基づいてボール４４の飛行方向を決定する。（ｂ）によれば、飛行方向のデフォルト方向４６から、操作バー１４の倒された方向４６´に飛行方向を移動させている。デフォルトの飛行方向は、相手陣の中心近傍である。この設定によれば、プレーヤは、打撃開始の指示入力後から、操作キャラクタ４０がボール４４を打撃する直前までの間に、操作バー１４によってボール４４の飛行方向を指定することができる。
【００６１】
このように、打撃指示の入力に前後して操作に対応する指示を切り換えることにより、操作を煩雑化させることなく、操作キャラクタ４０の移動方向の指示と、ボール４４の飛行方向の指定といった操作を両立させることができる。
【００６２】
ところで、本実施の形態では、テイクバックを自動的に開始させるわけだが、テニスにおけるテイクバックの種類は１つではないため、状況に応じて適当なテイクバックを選定しなければならない。例えば、スマッシュにおけるテイクバックと、ストロークのテイクバックとは異なり、また、フォアストロークのテイクバックと、バックストロークのテイクバックは異なる。明らかにバックストロークを行うような場面で、自動的にフォアストロークのテイクバックを開始させたのでは、予めテイクバックを開始させる意味がない。そこで、テイクバックの開始タイミングを判定する処理とは別に、操作キャラクタ４０に実行させるテイクバックの種類を選定する処理が必要である。
【００６３】
以下では、基本的なスイングのパターンとして、フォアストロークと、バックストロークと、スマッシュと、ボレーの４つの打法を設定する。
フォアストロークとは、選手キャラクタのラケットを持つ側（ここでは、右手側とする）を通過するボール４４を打つ際の打法である。したがって、このフォアストロークのテイクバックは、操作キャラクタ４０の両腕を大きく開き、ラケットを右側後方に大きく引く動作となる。
【００６４】
バックストロークとは、操作キャラクタ４０の左手側を通過するボール４４を打つ際の打法である。したがって、バックストロークのテイクバックは、右手に持つラケットを左側後方に大きく引き、相手キャラクタ４２に対してやや背を向けるような動作となる。
【００６５】
スマッシュとは、操作キャラクタ４０の頭上を通過するボール４４をラケットで打ち下ろすことにより、ボール４４を相手陣に急角度に強く打ち込む打法である。したがって、スマッシュのテイクバックは、ラケットを持つ腕の肘を曲げた状態で肘を鉛直上方に向け、ラケットが操作キャラクタ４０の背中にくるように構える動作となる。
【００６６】
ボレーとは、自陣にボール４４がバウンドする前に相手陣に打ち込む打法である。ボレーにおいては、通常あまり大きなテイクバックをしないことが多い。したがって、すぐに打ち込めるような姿勢を取らせる。
【００６７】
このように、打法に応じてテイクバックの姿勢も異なる。したがって、操作キャラクタ４０に自動的にテイクバックを開始させる際には、適宜適当なテイクバックを選定する。
【００６８】
図５は、仮想空間３０の平面図であり、ストロークとボレーの選定について説明するための図である。同図において、右コートが操作キャラクタ４０の陣地であるものとする。さて、ネットのＺ座標（Ｚ0）とベースラインのＺ座標の中間で、且つ、サービスラインよりもややネットよりの位置に、境界線（Ｚ1）５０を定義する。図上には便宜的に境界線５０を描いたが、係る境界線５０は画面上に表示するためのものではなく、ゲーム装置１がストロークとボレーを選定するためのものである。Ｚ＞Ｚ1の範囲がストロークの範囲であり、Ｚ0＜Ｚ＜Ｚ1の範囲がボレーの範囲である。すなわち、テニスゲームの実行中において、操作キャラクタ４０のＺ座標がＺ＞Ｚ1の関係を満たす場合には、操作キャラクタ４０にストロークのテイクバックを実行させる。一方、操作キャラクタ４０のＺ座標がＺ0＜Ｚ＜Ｚ1の関係を満たす場合には、操作キャラクタ４０にボレーのテイクバックを実行させる。
【００６９】
また、ストロークにおけるフォアとバックの選定については、相手打球の軌道と操作キャラクタ４０との位置関係に基づいて決定する。相手打球の軌道が、操作キャラクタ４０の右手側を通過する場合には、フォアストロークのテイクバックを実行させる。一方、相手打球の軌道が操作キャラクタ４０の左手側を通過する場合には、バックストロークのテイクバックを実行させる。
【００７０】
ここで、軌道とは、相手打球が過去に通過した部分（通過軌道）と、その先に通過する予定の部分（予定軌道）とを含むものである。図６は、相手打球の軌道の一例を示す図である。同図において、実線６０が通過軌道を示し、破線６２が予定軌道を示す。
【００７１】
図７は、仮想空間３０の平面図であり、フォアとバックの選定方法を説明するためのものである。同図において、三角印が相手キャラクタ４２を、四角印が操作キャラクタ４０をそれぞれ示している。また、直線７０は、相手キャラクタ４２によって打撃されたボール４４の軌道をＸ−Ｚ平面に投影した線を示す。以下では、ボール４４の軌道をＸ−Ｚ平面に投影した線を水平軌道線という。同図において、操作キャラクタ４０の中心座標は、（ＸP，ＹP，ＺP）である。また、操作キャラクタ４０の中心点を通過し、且つ、Ｘ軸に平行な直線７２（すなわち、Ｙ＝０，Ｚ＝ＺP）と水平軌道線７０との交点７４の座標は、（ＸO，０，ＺP）である。以下では、係る交点をＺP通過点７４という。
【００７２】
フォアとバックとを選定する際には、操作キャラクタ４０のＸ座標（ＸP）に対して、ボール４４の水平軌道線が正方向を通過するか、負方向を通過するか、を判定する。すなわち、操作キャラクタ４０のＸ座標（ＸP）と、ＺP通過点７４のＸ座標（ＸO）との差（ＸP−ＸO）の符号によってフォアとバックを選定する。ただし、操作キャラクタ４０が何れの陣地に存在するかに応じてフォアとバックの選定基準を変更する必要がある。具体的には、図２に示すように、ワールド座標系におけるＺ軸とサイドライン３６ａ〜ｄとを平行に設定した場合には、Ｚ軸正方向の陣地とＺ軸負方向の陣地とでフォアとバックの選定基準が逆になる。差が（ＸP−ＸO≦０）を満たす場合において、操作キャラクタ４０がＺ軸正方向の陣地に存在する場合にはフォアを選定し、Ｚ軸負方向の陣地に存在する場合にはバックを選定する。また、差が（ＸP−ＸO＜０）を満たす場合において、操作キャラクタ４０がＺ軸正方向に存在する場合にはバックを選定し、Ｚ軸負方向に存在する場合にはフォアを選定する。
【００７３】
スマッシュの選定については、操作キャラクタ４０がスマッシュエリアに存在するか否かによって決定する。ここで、スマッシュエリアとは、ゲーム装置１が、相手打球の軌道と、スマッシュ時における操作キャラクタ４０のラケットの高さｈSと、に基づいてコート上に設定する範囲である。
【００７４】
図８は、スマッシュエリア８０の一例を示す図である。同図に示すように、スマッシュエリア８０は、半径ＬSの円形をしている。ところで、ゲーム装置１は、操作キャラクタ４０にボール４４を打撃させる際に、ラケットとボール４４の衝突を判定するわけだが、本実施の形態では、ラケットとボール４４に空間的な隔たりがあっても、タイミングさえ合えば衝突したものとみなす場合がある。具体的には、操作キャラクタ４０に追従させる所定の面（衝突判定面という）を、ボール４４の軌道が通過し、更に、ラケットとボール４４が衝突判定面を通過するタイミングが合えば衝突したものとみなす。すなわち、ボール４４の軌道と衝突判定面とに基づいて位置関係を判断する。衝突判定面が適当に大きな面積を有する場合には、ある程度ボールとラケットとが離れていても衝突したものとみなされる可能性がある。したがって、スマッシュが可能な位置はただ１つの点ではなく、空間的な範囲によって示される。本実施の形態では、スマッシュエリア８０をこの範囲よりもやや大きめに設定し、早い段階から予めスマッシュのテイクバックを開始できるようにする。
【００７５】
なお、スマッシュエリア８０は、ボール４４の軌道と、スマッシュ時におけるラケットの高さｈSとから決定するわけだから、ボール４４の軌道によっては、スマッシュエリア８０が存在しない場合がある。例えば、自陣を通過するボール４４の軌道（予定軌道）について、スマッシュ時の高さｈSよりも高い部分が存在しない場合には、スマッシュエリア８０も存在し得ない。このような場合には、操作キャラクタ４０は、ボレーかストロークのテイクバックを行うこととなる。また、自陣にスマッシュエリア８０が存在する場合であっても、操作キャラクタ４０がスマッシュエリア８０に存在しない場合には、ボレーかストロークのテイクバックを行うこととなる。
【００７６】
また、本実施の形態では、操作キャラクタ４０にスイングとして、ストロークやスマッシュといった基本的な打法のほかに、特定の技や特殊な打法を実行させる。
【００７７】
例えば、フォアとバックのストロークについて、標準的なスイングに加えて、トップスピンやスライスといったスイングを選択できるようにする。
トップスピンでは、通常のストロークにおけるテイクバックよりも若干下にラケットを構えさせ、下から上へとラケットを持ち上げるようにスイングを実行させる。また、スライスでは、通常のストロークにおけるテイクバックよりも若干上にラケットを構えさせ、上から下へとラケットを移動させてスイングを実行させる。
【００７８】
あるいは、消える魔球を実現するための消える魔球用打法や、特殊なスピンを実現するための特殊スピン打法などといった特殊打法を実行させる。ただし、これらの特殊打法については、通常良く知られたテイクバックやスイングとは異なるモーションを実行させる。このように、通常の打法とは明かに異なる動作を行わせることにより、操作キャラクタ４０が特殊な打法を実行している旨、および、これから操作キャラクタ４０が特殊な打法を実行可能な状態である旨、をプレーヤに知らせる。
【００７９】
ところで、本実施の形態において、このような特殊な打法を実現させるためには、どのような条件でこれらの特殊打法に対応するテイクバックを選定し、また、開始させるか、といった問題が生じる。
【００８０】
係る問題を解決する方法として、プレーヤに打撃開始の指示と同時に打法を指定させる方法（同時指定方法）と、打撃の指示に先行して打法を指定させる方法（先行指定方法）とがある。
【００８１】
同時指定方法は、基本的な打法のテイクバックと似通ったテイクバックを必要とする打法の指定に好適である。
同時指定方法は、打撃開始の指示と同時に打法が指定されるものである。そのため、操作キャラクタ４０が基本的な打法のテイクバックの姿勢を取った後で、特殊打法のスイングを開始させることとなる。言い換えれば、同時指定方法では、自動的に開始させたテイクバックの姿勢から、指定されたスイングの開始時における姿勢へと動作を移行させた後で、指定されたスイングを開始させることとなる。したがって、特殊打法のスイング開始時の姿勢が、基本的な打法のテイクバック後の姿勢に似ていれば、それほどの時間を必要とすることなく、自然に姿勢を変更させることができる。
【００８２】
例えば、トップスピンやスライスといった技のテイクバックは、通常のストロークにおけるテイクバックの姿勢と若干の異なりがあるにせよ、大変似た姿勢を取る。そのため、トップスピンやスライスのための特別なテイクバックを用意しなくても、通常のテイクバックの状態から特殊打法のスイング開始時の姿勢へと動作を補って滑らかに変化させれば、無理なく自然な打撃動作を演出することができる。また、通常のテイクバック完了時の姿勢と、トップスピンやスライスの打撃開始時の姿勢は似ているため、モーションの移行に費やす時間もそれほど多く必要としない。このため、プレーヤの操作感覚を狂わせる恐れもない。
【００８３】
なお、同時指定方法は、以下の操作設定により実現させることができる。操作キー１６における１のキーを打撃開始の指示に対応させた場合において、他の１以上のキーを特殊打法の種類と対応付ける。ゲームの実行中に、打撃開始のキーと、特殊打法のキーとを同時にもしくは連続して入力された場合に、対応する打法のテイクバックを開始させる。このように、特殊打法を特定するためのキーの種類と、打撃開始の指示信号の有無とを関連付けて判断することにより、特殊打法の指定有無を判断する。
【００８４】
また、先行指定方法は、特殊打法のテイクバックの姿勢が、基本的な打法のテイクバックの姿勢とあまり似ていない場合に適する。
この先行指定方法では、先行して指定された特殊打法のテイクバックを優先させて操作キャラクタ４０に実行させる。例えば、操作キャラクタ４０がスマッシュエリア８０に存在するような場合であっても、特殊打法の先行入力が成されていれば、操作キャラクタ４０は、特殊打法のテイクバックを行うこととなる。したがって、特殊打法のテイクバックと基本的な打法のテイクバックとが似ていない場合であっても、違和感なく、また時間的な余裕を持って特殊打法のテイクバックを行わせることができる。
【００８５】
なお、先行指定方法は、以下の設定により実現させることができる。操作キー１６おける１のキーを打撃開始の指示に対応させた場合において、他の１つもしくは複数のキーを各特殊打法と対応付ける。ゲーム実行中においては、打撃開始のキーよりも先に、特殊打法を指定するためのキーが入力された場合に、その指定された特殊打法のテイクバックを適当なタイミングで自動的に開始させる。すなわち、打撃開始の指示が入力されたときに、既に特殊打法を指定する信号が入力されている場合には、その指定された特殊打法に対応するテイクバックを行わせる。
【００８６】
ところで、テイクバックの動作は、操作キャラクタ４０がスイングを実行するための準備動作であるから、プレーヤが打撃開始指示を入力する直前までに完了していることが望ましい。
【００８７】
しかし、相手打球の飛行速度が十分に速く、通常のモーション速度でテイクバックを実行させたのでは、相手打球が操作キャラクタ４０の位置を通過する瞬間までにテイクバックが完了しない場合がある。あるいは、操作キャラクタ４０がテイクバックの動作を完了する前に、打撃開始の指示が入力される場合がある。言い換えれば、操作キャラクタ４０がスイングの開始時における姿勢に到達する前に、スイングを開始する指示が入力される可能性がある。
【００８８】
例えば、操作キャラクタ４０がテイクバックを開始した後で、ネットの方向に（すなわち、前方に）移動させる指示が入力されることがあり得る。この場合には、テイクバックを開始させた瞬間の位置よりも、移動後の位置の方が、ボール４４を打撃するための好適なタイミングが速くなる。したがって、テイクバックが完了する前に、打撃開始の指示が入力される可能性が高い。
【００８９】
これらの状況において、テイクバックが完了しないままにスイングを開始させれば、操作キャラクタ４０の動作が連続的に行われず、操作キャラクタ４０が突然にスイングを開始するような印象を与えることとなり、ゲーム画像の現実性を損なわせる恐れがある。
【００９０】
そこで、本実施の形態では、ボール４４の飛行状況や操作キャラクタ４０のテイクバックの進行状況に応じて、以下の処置を施す。
まず、打球速度が速い場合には、テイクバックのモーション速度を所定の速度よりも早くする。モーション速度とは、ここでは、動作を実行する際に要するフレーム数を意味する。例えば、顔を正面に向けた状態（キーフレーム）から、顔を右に向けた状態（キーフレーム）へと、頭部を回転させる場合を考える。その際、各キーフレーム間のフレーム数を１０フレームとした場合に比べて、５フレームで動作させた場合の方がはるかに動作が速く見える。これと同様に、相手打球の速度が速い場合には、テイクバックの動作が速くなるようにテイクバックに要するフレーム数を減少させる。
【００９１】
具体的には、相手打球の水平方向への速度ｖLと、打球の水平方向の平均速度ｖAについて、Ｒ＝ｖL／ｖAを算出し、所与の閾値ＲCに対して、Ｒ＞ＲCを満たす場合に、モーション速度を変更させる。各キーフレーム間の標準のフレーム数をＭDとした場合、Ｒ＞ＲCを満たす際のフレーム数Ｍを、
Ｍ＝（ｖA／ｖL）・ＭD  …（１）
によって決定する。ただし、小数点以下は切り捨てもしくは切り上げる。すなわち、相手打球の水平方向への速度ｖLが平均速度ｖAよりも早ければ早い程、フレーム数Ｍは小さくなる。
【００９２】
また、テイクバックの途中で打撃開始の指示が入力された場合には、テイクバックの動作を中断させる。そして、中断した瞬間の姿勢からスイングの動作を開始させる。ただし、その際、スイングのどの段階からモーションを開始させるか選択しなければならない。例えば、テイクバック開始間際に打撃の指示が入力された場合に、スイングの初期状態からモーションを開始させたのでは動作が不自然に見えてしまう。そこで、中断されたテイクバックの状態に近いスイングのモーションを選び出して、その瞬間からスイングのモーションを開始させる。
【００９３】
図９は、テイクバックの途中段階からスイングを開始させる処理について説明するための図である。同図において、（ａ）〜（ｊ）は、それぞれキーフレームの操作キャラクタ４０の姿勢を示す。また、（ａ）〜（ｄ）がテイクバックのキーフレームを示し、（ｅ）〜（ｊ）がスイングのキーフレームを示す。テイクバックにおいては、（ａ）から（ｄ）への順番で時間経過を示し、スイングにおいては、（ｅ）から（ｊ）への順番で時間経過を示している。テイクバックの中断処理では、打撃開始の指示が入力された瞬間のフレームに対応するキーフレームを、スイングのキーフレームの中から読み出し、その読み出したキーフレームからスイングを開始させる。
【００９４】
図１０は、テイクバックとスイングのキーフレーム間における対応関係の一例を示す図である。同図によれば、テイクバックの（ａ）から（ａ）と（ｂ）の中間までの間に打撃開始の指示が入力された場合には、スイングにおける（ｈ）からモーションを開始させる。同様に、（ａ）と（ｂ）の中間から（ｂ）と（ｃ）の中間までの間（すなわち、（ｂ）の前後）に打撃開始の指示が入力された場合には、スイングの（ｇ）からモーションを開始させる。といった具合に、テイクバックとスイングの各キーフレームを対応付ける。
【００９５】
具体的には、キーフレームｂの前後に打撃開始の指示が入力された場合には、その段階でテイクバックの動作を中断し、対応するスイングのキーフレームを読み出す。図１０に示す対応関係によれば、キーフレームｂに対応するキーフレームｇを読み出す。そして、その読み出したキーフレームｇからスイングを開始させる。なお、テイクバック中に中断された瞬間の操作キャラクタ４０の姿勢と、スイングにおける対応するキーフレームに基づく姿勢とが必ずしも一致するわけではない。そこで、スイングの動作を開始させる際に、テイクバックを中断した瞬間の状態から、スイングのキーフレームへと動作を補間し、滑らかに動作を移行させた後で、スイングの動作を開始させる。
【００９６】
以下に、本実施の形態におけるゲーム装置１の機能構成について説明する。
図１１は、ゲーム装置１の機能ブロックの一例を示す図である。同図によれば、本機能ブロックは、主に、操作部１００と、処理部２００と、表示部３００と、情報記憶媒体４００と、一時記憶部５００と、を備える。
【００９７】
操作部１００は、図１に示すゲーム装置１の操作バー１４および操作キー１６に相当する機能部であって、プレーヤの入力・操作を電気信号として処理部２００に出力するためのものである。なお、操作部１００に相当する機器は、図１に示したような、操作バー１４および操作キー１６だけでなく、キーボードなどの汎用の入力装置や、ゲームコントローラ、マウスやトラックボール、ジョイスティック等の入力手段を用いることとしてもよい。表示部３００は、図１に示すディスプレイ１２に該当する機能部であり、処理部２００から入力される指示に従って処理部２００にて生成された画像を表示する。
【００９８】
情報記憶媒体４００は、本実施の形態におけるゲーム装置の駆動に係るプログラムやデータ等を記憶するものであり、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、メモリ、ハードディスク等のハードウェアにより実現できる。また、情報記憶媒体４００は、テニスゲームを実行するためのゲームプログラム４２０を記憶する。また、ゲームプログラム４２０には、ゲーム演算プログラム４２２や画像生成プログラム４２４の他、テイクバックテーブル４２６と、スイングテーブル４２８、移動モーションデータ４３０、対応テーブル４３２が含まれる。
【００９９】
ゲーム演算プログラム４２２には、ゲームシナリオや各キャラクタのモデル情報、仮想空間３０に配置する各オブジェクトのモデル情報、プレーヤの操作信号に応じて各オブジェクトの動作を決定するための情報、ゲームの進行に応じて視点位置を決定するための情報、個々のキャラクタの動作を特徴付ける固有値情報、テニスゲームの得点を算出するための情報等、その他ゲーム進行に係る情報等が含まれる。また、画像生成プログラム４２４には、仮想空間３０に配置された各キャラクタやオブジェクトの位置的な関係を演算するためのジオメトリ処理や、３次元の仮想空間３０の状況を視点の座標に基づいて２次元の座標系に変換してゲーム画像を生成するためのレンダリング処理を実行するために必要な情報などが含まれる。
【０１００】
なお、以下に、情報記憶媒体４００に記憶されるテイクバックテーブル４２６について説明する。
テイクバックテーブル４２６とは、テーブル形式の情報であり、キャラクタに実行させるテイクバックのモーションデータを選定条件と対応付けたものである。図１２は、操作キャラクタ４０がＺ軸正方向に存在する場合に対するテイクバックテーブル４２６の一例を示す図である。同図によれば、テイクバックテーブル４２６には、選定条件と、上半身のテイクバックのモーションデータと、下半身のスタンスのモーションデータとがそれぞれ対応付けて記憶されている。
【０１０１】
テイクバックの種類としては、上述の通り、フォアストローク、バックストローク、スマッシュ、ボレー、特殊打法Ａ、特殊打法Ｂ、…、とがある。すなわち、テイクバックテーブル４２６には、それぞれのテイクバックに対応する上半身と下半身のモーションデータが記憶される。ここで、下半身のモーションデータは、プレーヤから移動指示が入力されていない時に、操作キャラクタ４０に足の構えを行わせるためのデータである。また、選定条件とは、テイクバックテーブル４２６内に記憶された複数のテイクバックの中から１のテイクバックを選定するための条件である。
【０１０２】
フォアストロークの選定条件は、操作キャラクタ４０の座標（ＸP，ＹP，ＺP）について、（ＺP＞Ｚ1）、且つ、（ＸP−ＸO≦０）である（図５および図７参照）。すなわち、操作キャラクタ４０が、自陣における所定のＺ座標（Ｚ1）よりもネットに対して後方に存在し、且つ、相手打球が操作キャラクタ４０の右側を通過する場合に、フォアストロークが選定されるように、選定条件を設定する。一方、バックストロークを選定するための条件は、操作キャラクタ４０の座標について、（ＺP＞Ｚ1）且つ（ＸP−ＸO＞０）である。
【０１０３】
なお、上記説明では、フォアとバックのストロークに、それぞれトップスピンとスライスのスイングを含むものとして説明した。しかし、図１２に示すテイクバックテーブル４２６には、トップスピンとスライスに対応するテイクバックのモーションデータが記憶されていない。これは、トップスピンやスライスは、打撃開始の指示と同時にプレーヤによって選択されるものであり、言いかえれば、デフォルトのストロークに対応するテイクバックを実行した後で指定されるものであるから、固有のテイクバックを必要としないためである。そのため、テイクバックテーブル４２６には、トップスピンやスライスに固有のテイクバックのモーションデータを記憶しない。
【０１０４】
スマッシュの選定条件は、図８を用いて説明した通り、操作キャラクタ４０がスマッシュエリア８０に存在するか否かが条件である。すなわち、スマッシュエリア８０の中心点の座標（ＸS，ＹS，ＺS）と、操作キャラクタ４０の座標（ＸP，ＹP，ＺP）との距離がＬS以内であることが選定条件となる。
ＬS≧｛（ＸP−ＸS）2＋（ＺP−ＺS）2｝1/2  …（２）
ところで、スマッシュエリア８０の中心点の座標（ＸS，ＹS，ＺS）は、相手キャラクタ４２がボール４４を打撃する度に異なる。言い換えれば、ボール４４の軌道に応じて座標（ＸS，ＹS，ＺS）も変化する。係る座標については、ゲームの実行中に処理部２００がその都度算出する。
【０１０５】
ボレーの選定条件は、図５を用いて説明した通り、操作キャラクタ４０のＺ座標について、（Ｚ0＜ＺP＜Ｚ1）である。また、特殊打法については、先行入力指示の信号と対応付けてテイクバックのモーションデータを記憶する。
【０１０６】
続いて、スイングテーブル４２８について説明する。
スイングテーブル４２８とは、テーブル形式の情報であり、操作キャラクタ４０に実行させるスイングのモーションデータを実行条件と対応付けたものである。図１３は、操作キャラクタ４０がＺ軸正方向の陣地に存在する場合のスイングテーブル４２８の一例を示す図である。同図によれば、スイングテーブル４２８には、実行条件とモーションデータとが対応付けて記憶されている。スイングの種類としては、フォアストロークとバックストローク（それぞれ、デフォルトと、トップスピンと、スライスが記憶される）、スマッシュとボレーと、特殊打法Ａと、特殊打法Ｂと、…、とが記憶されている。ここで、実行条件とは、ゲーム実行中に操作キャラクタ４０に実行させるスイングを特定するための条件である。
【０１０７】
ところで、同図によれば、特殊打法Ａ、特殊打法Ｂ…、を除く全ての打法が、実行条件としてヒットポイントによって識別されている。具体的には、ヒットポイント１〜６までがフォアストロークに対応し、ヒットポイント７〜１２までがバックストロークに対応し、ヒットポイント１３，１４がスマッシュに対応し、ヒットポイント１６、１６がボレーに対応している。このヒットポイントとは、前述した衝突判定面上に設定された座標（ローカル座標系（ｘ，ｙ））である。各ヒットポイントに対応するモーションデータは、ラケットが対応するヒットポイントを通過するように、操作キャラクタ４０にスイングさせるように設定されている。
【０１０８】
図１４は、衝突判定面９０の一例を示す図である。（ａ）は、操作キャラクタ４０および衝突判定面９０の正面を示す図であり、（ｂ）は、操作キャラクタ４０および衝突判定面９０をＸ軸方向から見た側面図である。衝突判定面９０は、左右対象の形状をしており、その中心線のＸ座標は、操作キャラクタ４０のＸ座標と等しい。また、衝突判定面９０の中心線のＺ座標は、操作キャラクタ４０のＺ座標に±δＺを加算した値に等しい（ＺP±δＺ）。ここで、＋の符号は、操作キャラクタ４０がＺ軸負方向の陣地に存在する場合を示し、−の符号は、操作キャラクタ４０がＺ軸正方向の陣地に存在する場合を示す。すなわち、衝突判定面９０は、操作キャラクタ４０を基準として、常に相手キャラクタ４２の方向に配置されることとなる。また、衝突判定面９０は、常にＸ軸に平行に配置される。衝突判定面９０の中心線からの幅は、ΔＸの大きさである。
【０１０９】
図１４（ａ）によれば、衝突判定面９０の表面にいくつかの点９２〜９８が表示されている。各点が、ヒットポイント、すなわち、各モーションデータに基づくラケットの通過位置を示している。点９２ａ〜ｆは、フォアストロークにおけるラケットの通過点（ヒットポイント１〜６）を、点９４ａ〜ｆは、バックストロークにおけるラケットの通過点（ヒットポイント７〜１２）をそれぞれ示している。点９６ａおよび９６ｂは、スマッシュ時におけるラケットの通過点（ヒットポイント１３，１４）の座標を示す。点９８ａおよび９８ｂは、ボレー時におけるラケットの通過点（ヒットポイント１５，１６）の座標を示す。詳細は後述するが、ゲーム実行中において、スイングを選定する際には、処理部２００が、ボール４４の軌道と衝突判定面９０との交点を算出し、この交点の際近隣のヒットポイントを抽出することで、スイングを特定する。
【０１１０】
このように、複数のヒットポイントを設定し、複数のモーションデータを用意する理由は、２つある。１つは、操作キャラクタ４０がボール４４を打撃することができる空間的範囲を広げるためである。もう１つは、衝突判定面９０を通過するボール４４について、どの位置を通過するボール４４に対しても臨機応変に自然な動作で打撃させるためである。例えば、操作キャラクタ４０の肩の高さを通過するボール４４を打撃する場合と、ひざの高さを通過するボール４４を打撃する場合とでは、打撃のモーションが異なる。また、ラケットを伸ばしてようやく届く位置を通過するボール４４と、操作キャラクタ４０の近くを通過するボール４４とでは、打撃をする際のモーションが異なる。これらの動作を自然に無理なく実行させるために、ボール４４が衝突判定面９０を通過する際に最も近い位置のヒットポイントを選定し、そのヒットポイントに対応する動作を実現させる。
【０１１１】
さて、図１３に示すスイングテーブル４２８において、ヒットポイント１〜１２には、「指定なし」と、「指定１」と、「指定２」とに分けられる３つのモーションデータが対応している。ここで、「指定なし」は、デフォルトのスイングを、「指定１」は、トップスピンのスイングを、「指定２」は、スライスのスイングをそれぞれ示している。「指定１」には、打撃開始の指示信号と同時に、特定の操作キー１６の入力信号が入力されることを実行条件として記憶する。「指定２」についても同様に、打撃開始の指示信号と特定の操作キー１６の入力信号が同時に入力されることを実行条件として記憶する。
【０１１２】
また、図１３によれば、特殊打法Ａのモーションデータと、特殊打法Ｂのモーションデータとが記憶されている。これらの実行条件は、特殊打法Ａについては打法特定信号Ａ、特殊打法Ｂについては打法特定信号Ｂが対応付けて記憶されている。ここで、打法特定信号とは、操作キー１６の入力信号が該当する。
【０１１３】
移動モーションデータ４３０とは、操作キャラクタ４０の移動時における下半身の動きを制御するためのモーションデータであり、テイクバック実行中に、プレーヤから移動指示が入力された際に、処理部２００によって読み出されるものである。
【０１１４】
対応テーブル４３２とは、テイクバックの実行中に打撃開始の指示が入力された際に、処理部２００が、テイクバックを中断した瞬間のフレームに対応するスイングのキーフレームを選択するとき参照するテーブルである。対応テーブル４３２には、図１０に示したように、テイクバックのキーフレームと、スイングのキーフレームとを対応付けて記憶する。なお、１つのテイクバックに対して複数のスイングが対応する場合には、スイングの一つ一つに対して対応するテイクバックとのキーフレーム間の対応関係を設定する。
【０１１５】
一時記憶部５００は、処理部２００が情報記憶媒体４００に記憶された各種プログラムに従って実行した演算結果や、操作部１００から入力される情報、画像生成部２４０により生成された画像結果等を一時的に記憶するためのメモリ領域であり、ＲＡＭや、ＶＲＡＭ等のハードウェアにより実現される。また、一時記憶部５００は、処理部２００から入力される指示に従って、操作部１００から入力される打法特定信号５２０を一時的に記憶する。
【０１１６】
処理部２００は、システム全体の制御、システム内の各機能部への命令の指示、操作部１００から入力される操作信号や情報記憶媒体４００に記憶されたゲームプログラム４２０に基づいてテニスゲームを進行するための処理、画像処理、音処理等の各種処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、あるいはＡＳＩＣ（ゲートアレイ等）等のハードウェアや、所与のプログラムにより実現できる。また、処理部２００は、主に、ゲーム演算部２２０と画像生成部２４０とを含み、操作部１００から入力される操作信号に応じた処理をゲーム演算部２２０に実行させ、更に、その処理結果に基づく画像を画像生成部２４０に生成させる。
【０１１７】
ゲーム演算部２２０は、ゲームの進行処理、選択画面の設定処理、仮想空間３０に存在する各キャラクタやオブジェクトの座標・動作を決定する処理、等の種々のゲーム処理を、操作部１００から入力される操作信号や、情報記憶媒体４００から読み出すゲーム演算プログラム４２２等に基づいて実行する。そして、ゲーム演算部２２０は、各キャラクタの座標や動作、向きなどを決定すると、その決定した情報に基づいて画像生成部２４０に画像を生成する処理を実行させる。
【０１１８】
画像生成部２４０は、ゲーム演算部２２０から入力される指示信号、各種座標データに基づき、ゲーム画像を生成する処理を実行するものであり、ＣＰＵ、ＤＳＰ、画像生成専用のＩＣ、メモリなどのハードウェアにより構成される。具体的には、画像生成部２４０は、前方、後方クリッピングを実行してビューボリューム（すなわち、描画範囲）を決定する処理、各キャラクタやオブジェクトに対する視点に基づく座標変換処理等のジオメトリ処理と、色補間処理等のレンダリング処理を実行することによりゲーム画像を生成する。そして、生成したゲーム画像をフレームバッファ（不図示）等のメモリ領域に格納する。
【０１１９】
なお、ゲーム演算部２２０は、打球制御部２２２と、スマッシュエリア算出部２２４と、テイクバック開始判定部２２６と、動作選定部２２８と、動作制御部２３０と、を含み、操作部１００から入力される信号およびゲームプログラム４２０に基づいて各部を機能させる処理を実行する。
【０１２０】
打球制御部２２２は、打球の動きを制御する機能部であり、具体的には、打球の軌道を生成する処理、ボール４４とラケットの衝突判定、などを実行する。
まず、軌道生成処理について説明する。
打球制御部２２２は、後述する衝突判定によりラケットとボール４４が衝突した旨の判定をすると、ボール４４の軌道を生成する。具体的には、打球制御部２２２は、キャラクタ（操作キャラクタ４０と相手キャラクタ４２とを問わず）がボール４４を打撃すると、その飛行方向を決定すると共に、初速度ｖを決定する。初速度ｖは、打撃のタイミングや、操作キャラクタ４０の固有値、乱数などによって決定する。
【０１２１】
図１５（ａ）は、仮想空間３０の平面図であり、ボール４４の飛行方向の一例を示すものである。同図において、三角印が相手キャラクタ４２を、四角印が操作キャラクタ４０を示す。打球制御部２２２は、打撃後のボール４４の飛行方向を決定する。（ａ）においては、ボール４４を打撃したキャラクタを出発点とする直線１２０によって飛行方向を示した。打撃後のボール４４は、原則的にこの直線１２０上を飛行することになる。
【０１２２】
なお、操作キャラクタ４０により打撃されたボール４４の飛行方向を決定する際には、プレーヤによる操作バー１４の操作により決定する。すなわち、打撃開始の指示が入力された瞬間から、ボール４４を打撃する直前までに操作バー１４が倒された方向に基づいて飛行方向を決定する（図４参照）。
【０１２３】
図１５（ｂ）は、初速度ｖの成分を示す図である。初速度ｖは、鉛直方向（Ｙ軸方向）の成分ｖYと、水平方向（Ｘ−Ｚ平面上）の成分ｖLとを有するベクトルである。打球制御部２２２は、打撃の瞬間からの経過時間δｔPASにおけるボール４４の高さＹBと、打撃位置からの水平方向に対する距離ＬBを算出する。
ＹB＝ｖY・δｔPAS−（１／２）・（ｇ・δｔPAS2）  …（３）
ＬB＝ｖL・δｔPAS  …（４）
ｇは重力定数である。そして、図１５（ａ）に示す直線１２０上において、ボール４４が打撃された位置からの距離がＬBとなる点（ＸB，ＺB）を算出して、打撃後の各フレームにおけるボール４４の座標（ＸB，ＹB，ＺB）を決定する。
【０１２４】
ボール４４がコートにバウンドした後のＹ軸方向の速度成分については、適当に設定した衝突係数γにより算出する。ただし、−１＜γ＜０である。具体的には、ボール４４の水平面到達時刻ｔAにおけるＹ軸方向の速度ｖYAを算出し、その算出した速度ｖYAに係数γを乗算することによってバウンド後のＹ軸方向の速度を決定する。
ｖYA＝ｖY−（ｇ・ｔA）
ｖY＝ｖYA・γ      …（５）
【０１２５】
なお、プレーヤがトップスピンやスライスの指示を入力した場合には、ボール４４の軌道にカーブを持たせる。
図１６は、初速度の水平成分を示す図である。同図に示すように、打撃の瞬間に、飛行方向１２０に対する速度成分ｖLと、飛行方向と垂直に交わる速度成分ｖSを決定する。そして、打撃の瞬間からの経過時間δｔPASにおけるボール４４の位置（ＸB，ＺB）をｖL、ｖSに基づいて決定する。例えば、プレーヤによりトップスピンの打撃を指定された場合には、次のようにして計算する。
【０１２６】
ηB＝ｖL・δｔPAS
ξB＝ｖS・δｔPAS−（１／２）・（αTOP・δｔPAS2）  …（６）
ここで、定数αTOPは、トップスピンによる水平方向の加速度を示す。係る定数は、キャラクタ毎に設定してもよいし、乱数により決定してもよい。また、（ηB，ξB）は、図１７に示すように、ローカル座標系（η，ξ）における座標を示している。η軸と飛行方向１２０とが角度θをなしている場合には、算出した座標（ηB，ξB）をＹ軸廻りに∠θ回転させて、原点の位置を打撃位置に合わせることにより、ボール４４の水平位置を決定する。スライスについても、スライス用の加速度αSLIを設定し、同様の計算を実行することによって軌道を算出する。
【０１２７】
次に、衝突判定について説明する。
打球制御部２２２は、衝突判定において、ラケットとボール４４の動作に係る位置的関係と時間的関係とを判断する。ラケットとボール４４が位置的・時間的関係の両方を満たす場合に、打球制御部２２２は、ラケットがボール４４を打撃した旨を判定する。その際、打球制御部２２２は、ラケットとボール４４の関係を判断する基準として衝突判定面９０（図１４参照）を用いて処理を行う。
【０１２８】
衝突判定面９０は、上述のようにスイングにおけるヒットポイントの座標を定義するだけでなく、ラケットとボール４４の衝突を判定する際の空間的な許容範囲を示すものである。すなわち、ボール４４の軌道が衝突判定面９０と交差するときには、打撃するタイミングが合いさえすれば、例え実際にはラケットにボール４４が当っていなくても衝突したものとみなす。
【０１２９】
すなわち、打球制御部２２２は、空間的関係として、ボール４４の軌道と衝突判定面９０との交点の有無を判定し、時間的関係として、ボール４４が衝突判定面９０を通過するタイミングと、ラケットが衝突判定面９０と通過するタイミングとを判定する。
【０１３０】
さて、ボール４４の軌道と衝突判定面９０との交差有無を判定する方法は如何なる方法であってもかまわないが、以下にその一例を示す。
まず、ボール４４の軌道と衝突判定面９０の各水平成分の交差有無を調べ、交差する場合には、鉛直成分の交差有無を調べる。すなわち、Ｘ−Ｚ平面上において、水平軌道線と、衝突判定面９０のＺ座標（ＺO＝ＺP−δＺ）との交点（ＸO，ＺO）を算出する。ここで、水平軌道線とは、上述した通り、ボール４４の軌道を水平面（Ｘ−Ｚ平面）に投影した際の投影線である。そして、算出した交点のＸ座標が（ＸP−ΔＸ≦ＸO≦ＸP＋ΔＸ）を満たすか否か判定する。
【０１３１】
満たす場合には、座標（ＸO，ＺO）における軌道の高さＹOを次の計算によって求める。
ＬDIS＝｛（ＸO−ＸA）2＋（ＺO−ＺA）2｝1/2
ΔｔO＝ＬDIS／ｖL
ＹO＝ｖY・ΔｔO−（１／２）・（ｇ・ΔｔO2）  …（７）
ここで、座標（ＸA，ＺA）は、相手キャラクタ４２がボール４４を打撃した際の位置である。また、ΔｔOは、ボール４４が打撃位置（ＸA，ＺA）から衝突判定面９０に到達するまでに要する時間を意味する。算出したＹOが衝突判定面９０内に含まれる場合には、ラケットとボール４４が空間的関係を満たすものとして判断する。
【０１３２】
また、ラケットとボール４４の時間的関係を判定する際には、ラケットとボール４４がそれぞれ衝突判定面９０を通過するタイミングを判定する。
具体的には、ボール４４が打撃されてから衝突判定面９０に到達するまでに要する時間ΔｔOと、相手キャラクタ４２がボール４４を打撃した時刻からプレーヤが打撃開始の指示を入力するまでの時間ΔｔRと、ラケットがスイングの開始位置から衝突判定面９０の位置までの移動に要する標準的な時間Δτとに基づいて、ラケットとボール４４の時間的関係を判定する。
【０１３３】
例えば、
ε1≦ΔｔO−ΔｔR≦Δτ＋ε2
が満たされるとき、ラケットとボール４４の時間的関係が満たされるものとする。すなわち、プレーヤによって打撃を開始する指示が入力された瞬間からボール４４が打撃面を通過するまでに要する時間（ΔｔO−ΔｔR）が、ε1以上であり、打撃動作に要する時間Δτよりもε2だけ長い時間（Δτ＋ε2）以内であれば、時間的関係が満たされる。ここで、ε1は、ボール４４が衝突判定面９０に到達するまでの時間の最小値であり、ε2は、最大値を示す。
【０１３４】
スマッシュエリア算出部２２４は、スマッシュポイントの中心点の座標（ＸS，ＺS）を算出する機能部である。
図１４に示す衝突判定面９０において、点９６ａおよび点９６ｂがスマッシュのスイングにおけるヒットポイントである。すなわち、スマッシュにおいて、操作キャラクタ４０は、ヒットポイント９６ａおよび９６ｂの位置でボール４４を打撃することとなる。このヒットポイント９６ａ・９６ｂのワールド座標系における高さｈSに基づいてスマッシュエリア８０の中心点の座標を決定する。図１８は、ボール４４の軌道と高さｈSとの関係を示す図であり、仮想空間３０をＸ軸正方向から見た際の側面図である。同図に示すように、スマッシュエリア算出部２２４は、ボール４４の軌道のうち、操作キャラクタ４０のスマッシュ時の高さｈSと一致する点の座標（Ｘ，Ｚ）を算出する。
【０１３５】
具体的には、初速度ｖにおける鉛直方向の速度ｖYを用いて、ボール４４の高さがｈSになる瞬間の時間ｔを算出する。すなわち、
ｈP＝ｖY・ｔ−１／２（ｇ・ｔ2）  …（８）
を満たすｔの値を算出する。式（８）に解がある場合に、解が１つである場合にはその値を、解が２つある場合にはそのうちの大きい値を、スマッシュ時間ｔSとする。また、算出したスマッシュ時間ｔSと水平方向の初速度ｖLとに基づいて打撃位置からの距離ＲSを算出し、該当する点の座標（ＸS，ＺS）を決定する。
【０１３６】
テイクバック開始判定部２２６は、選手キャラクタにテイクバックを開始させるタイミングを判定する機能部である。
テイクバックを開始させるための条件として、▲１▼時間条件と▲２▼空間条件を判定する。この２つの条件が満たされたときに、テイクバック開始判定部２２６は、動作制御部２３０に対して、選手キャラクタにテイクバックの動作を開始する指示を出力する。
【０１３７】
なお、▲１▼時間条件とは、相手キャラクタ４２がボール４４を打撃してからの経過時間δｔPASを判定する際の条件であり、経過時間δｔPASが判定時間ＴCを経過したとき、すなわち、経過時間δｔPAS＞判定時間ＴCが満たされるとき、時間条件が満たされたものとして判定する。すなわち、テイクバック開始判定部２２６は、キャラクタがボール４４を打撃してからの経過時間δｔPASを計時し、逐次判定時間ＴCと比較する。
【０１３８】
一方、▲２▼空間条件とは、相手打球と操作キャラクタ４０との位置関係を判定する際の条件である。
具体的には、テイクバック開始判定部２２６は、水平軌道線（ボールの軌道を水平面に投影した際の線）と、操作キャラクタ４０のＺ座標を通過し且つＸ軸に平行な直線（Ｙ＝０，Ｚ＝ＺP）との交点（ＺP通過点）の座標（ＸO，０，ＺP）を算出する（図７参照）。そして、このＺP通過点のＸ座標と、操作キャラクタ４０のＸ座標とに基づいて空間条件を判定する。交点のＸ座標（ＸO）と、操作キャラクタ４０のＸ座標（ＸP）との差の絶対値｜ＸP−ＸO｜が判定値ＸCよりも小さければ、すなわち、判定値ＸCの大きさよりも水平軌道線と選手キャラクタとが近ければ、テイクバック開始判定部２２６は、空間条件が満たされたものとして判定する。
【０１３９】
なお、判定値ＸCを、衝突判定面９０の幅（２・ΔＸ）よりもやや大きく設定し、スイングを開始した場合にはボール４４とラケットの空間的関係を満たさないような位置でも予めテイクバックが開始されるようにする。
【０１４０】
動作選定部２２８は、テイクバックテーブル４２６、スイングテーブル４２８から適当なモーションデータを読み出す機能部である。すなわち、操作部１００から入力される指示信号や、操作キャラクタ４０の位置や、ボール４４と操作キャラクタ４０との位置関係などを判定し、適宜必要なモーションデータを各種テーブルから読み出す処理を行う。
【０１４１】
具体的には、テイクバック開始判定部２２６が、テイクバック開始条件を満たす旨を判定した場合には、その瞬間における操作キャラクタ４０の位置や、ボール４４と操作キャラクタ４０との位置関係、先行入力の有無などを判断して、テイクバックテーブル４２６の中から選定条件が満たされるモーションデータを読み出す。
【０１４２】
また、動作選定部２２８は、操作部１００から打撃開始の指示信号が入力された場合には、スイングテーブル４２８から必要なモーションデータを読み出す。その際、一時記憶部５００に打法特定信号が既に記憶されている場合には、その入力された打法特定信号に対応するモーションデータをスイングテーブル４２８から読み出す。また、打法特定信号が記憶されていない場合には、ボール４４の軌道と衝突判定面９０との交点を算出し、交点に最も近いヒットポイントに対応するモーションデータをスイングテーブル４２８から読み出す。なお、同時指定入力があった場合には、その指示に対応するモーションデータを読み出す。
【０１４３】
また、動作選定部２２８は、操作部１００から打撃開始の指示に先行して打法特定信号が入力された場合には、その打法特定信号を一時記憶部５００に一時記憶させる処理を行う。なお、操作キャラクタが打撃動作を行うと、もしくはいずれか一方に得点が加算されると、その一時的に記憶した打法特定信号を一時記憶部５００から消去する。
【０１４４】
動作制御部２３０は、操作キャラクタ４０の動作を制御する機能部である。具体的には、動作選定部２２８が読み出したモーションデータに基づいて、操作キャラクタ４０のモーションを制御する。
【０１４５】
図１９は、モーションデータについて説明する図である。（ａ）は、操作キャラクタ４０の構造（モデル）を示す図である。（ｂ）は、（ａ）に示す操作キャラクタ４０における、腕関節４０ａの動作テーブルの一例を示す図である。腕関節４０ａの関節角テーブルには、キーフレームの番号と、腕関節４０ａの回転角θと、キーフレーム間隔の標準フレーム数ＭDがそれぞれ対応付けて記憶されている。回転角θは、操作キャラクタ４０の原型（モデル）からの回転角を示している。また、キーフレーム間隔の標準フレーム数ＭDは、対応するキーフレームから次のキーフレームまでのフレーム数を示す。係る関節角テーブルを、操作キャラクタ４０の関節毎に用意し、１つの動作毎に区別して記憶する。言い換えれば、モーションデータとは、操作キャラクタ４０の全ての関節に関わる関節角テーブルの集合により構成される。
【０１４６】
ただし、テイクバックのモーションについては、上半身を構成する関節の関節角テーブルと、下半身を構成する関節の関節角テーブルとをそれぞれ分けて記憶する。すなわち、図１２のテイクバックテーブル４２６に示したように、上半身のモーションデータと、下半身のモーションデータとに区別して記憶する。このように、テイクバックについては、上半身と下半身とをそれぞれ別に制御できるようにデータを構成する。
【０１４７】
動作制御部２３０は、操作キャラクタ４０に動作を実行させる際、各関節の関節角テーブルに基づいて、各フレームにおける各関節の角度を決定する処理を行う。すなわち、操作キャラクタ４０にテイクバックやスイングを行わせる際には、動作選定部２２８によって選定されたモーションデータに含まれる関節角テーブルに基づいて、１フレーム毎に操作キャラクタ４０の姿勢を決定する。例えば、図１９（ｂ）に示す腕関節の関節角テーブルを用いて、キーフレーム１とキーフレーム２の間におけるｉ番目のフレーム（ｉ＝１〜ＭD）における操作キャラクタ４０の腕のＸ軸方向に関する回転角θXを決定する場合には、次の計算をする。
θX＝θX1＋｛（θX2−θX1）／ＭD｝・ｉ  …（９）
Ｙ軸廻りの回転角θY、Ｚ軸廻りの回転角θZ、についても同様に計算する。
【０１４８】
さて、テイクバック時において、動作制御部２３０は、動作選定部２２８によって選定された上半身のモーションデータに基づいて操作キャラクタ４０にテイクバックの動作を開始させる。このとき、操作部１００から移動指示が入力された場合には、情報記憶媒体４００から移動動作モーションデータを読み出して、１フレーム毎の下半身の姿勢を決定すると共に、仮想空間３０を移動させる。一方、テイクバック実行中に、操作部１００から移動指示が入力されない場合には、動作選定部２２８により選定された下半身のモーションデータに基づいて操作キャラクタ４０に構えの動作を実行させる。
【０１４９】
また、動作制御部２３０は、テイクバックのモーション速度を変更する処理、打撃開始指示の入力タイミングに応じてテイクバックの動作を中断させる処理、動作の補間処理、なども行う。
【０１５０】
テイクバックのモーション速度を変更する処理は、上述した通りである。すなわち、相手キャラクタ４２に打撃されたボール４４の水平方向の速度ｖLと平均速度ｖAとを比較し（Ｒ＝ｖL／ｖA）、ボール４４の速度の水平成分が十分に速い場合に（Ｒ＞ＲC）、モーション速度の変更処理を行う。その際、式（９）に基づいて、キーフレーム間のフレーム数Ｍの値を算出し、この算出したフレーム数Ｍに基づいて各フレームにおける各関節の回転角を決定する。
【０１５１】
また、動作制御部２３０は、テイクバック実行中に操作部１００から打撃開始の指示が入力された場合に、操作キャラクタ４０にテイクバックを中断させて、スイングを開始させる（図９参照）。その際、上述したように、テイクバックを中断させた瞬間のフレームに対応するスイングのキーフレームを選定し、その選定したキーフレームからスイングを開始させる。具体的には、対応テーブル４３２に記憶されたキーフレーム間の対応関係に基づいてスイングを開始させるキーフレームを決定する。すなわち、動作選定部２２８によって選定されたスイングのモーションデータと、操作キャラクタ４０に実行させていたテイクバックのモーションデータとの対応関係に基づいて、スイングの開始キーフレームを決定する。
【０１５２】
補間処理とは、１の動作から異なる動作へと移行する際に、その異なる２つの動作間を補い、動作が自然に移行して見えるようにモーションデータを補間する処理である。例えば、ストロークのテイクバックの状態からトップスピンやスライスなどの打法に移行させる場合や、通常のテイクバックを開始させた後に先行入力により特殊打法が指定された場合、テイクバックの動作を中断してスイングの動作を開始させる場合、などに補間処理を行う。具体的な方法は様々に考えられるが、例えば、キーフレーム間の各フレームにおける関節の回転角を算出する方法と同様に行うことができる。
【０１５３】
具体的には、動作１から動作２に移行させる際、その移行に要するフレーム数ＭMを決定する。そして、決定したフレーム数ＭMと、動作１における各関節の回転角ω1と、移行させる先の動作２における各関節の回転角ω2とを、式（９）に代入して移行中のｉ番目のフレームにおける操作キャラクタ４０の姿勢を決定する。
以上が本実施の形態におけるゲーム装置の機能である。
【０１５４】
続いて、本実施の形態における処理の流れについて簡潔に説明する。
図２０は、テイクバック処理（１）について説明するためのフローチャートである。
テイクバック処理とは、テイクバック開始条件を判定し、テイクバックテーブル４２６から適当なモーションデータを読み出して、読み出したモーションデータに基づいて操作キャラクタ４０の上半身の動作を制御する処理である。
【０１５５】
テイクバック処理（１）では、まず、テイクバック開始判定部２２６が、相手キャラクタ４２によりボール４４が打撃されたか否かを判断し、操作キャラクタ４０にレシーブ権が発生したか否かを判定する（ステップＳ１）。レシーブ権が発生しない場合には、本処理を終了する。一方、レシーブ権が発生した場合には、テイクバックを開始する条件を判定する。まず、時間条件を判定する。すなわち、相手キャラクタ４２がボール４４を打撃した瞬間からの飛行時間δｔPASを算出し、経過時間δｔPASが判定時間ＴCを超えたか否か（δｔPAS＞ＴC）を調べる（ステップＳ２）。時間条件が満たされない場合（δｔPAS≦ＴC）には、条件が満たされるまで待機する。
【０１５６】
一方、時間条件が満たされる場合（δｔPAS＞ＴC）には、引き続き空間条件を判定する。すなわち、ボール４４が操作キャラクタ４０に対して近くを通過するか否かを判定する。具体的には、操作キャラクタ４０のＸ座標（ＸP）と、ボール４４が操作キャラクタ４０のＺ座標地点を通過する際のＸ座標（ＸO）の差が判定値ＸCよりも大きいか否か（｜ＸP−ＸO｜＜ＸC）を判定する（ステップＳ３）。空間条件が満たされない場合（｜ＸP−ＸO｜≧ＸC）には、条件が満たされるまで待機する。空間条件を満たす場合（｜ＸP−ＸO｜＜ＸC）には、動作選定部２２８が、テイクバックのモーションデータを選定する（ステップＳ４）。すなわち、動作選定部２２８は、操作キャラクタ４０にレシーブ権が存在し、時間条件・空間条件が満たされる場合に、テイクバックテーブル４２６の中から選定条件に合うモーションデータを読み出す処理を実行する。
【０１５７】
動作制御部２３０は、ステップＳ４にて、テイクバックのモーションデータが選定されると、モーション速度の変更の条件を判断する。具体的には、平均水平飛行速度ｖAに基づいて、ボール４４速度の水平成分ｖLの高速率（Ｒ＝ｖL／ｖA）を算出する（ステップＳ５）。高速率Ｒが、閾値ＲC以下である場合には、標準のモーション速度でテイクバックを行わせる（ステップＳ７）。一方、高速率Ｒが、標準値ＲCよりも大きい場合には、モーション速度を変更する（ステップＳ６）。すなわち、キーフレーム間のフレーム数Ｍを変更する。そして、その変更したフレーム数Ｍに基づいて操作キャラクタ４０の上半身についてテイクバックを実行させる（ステップＳ８）。上半身に関するテイクバックの動作が完了すると、本処理を終了する。
【０１５８】
ところで、本処理は、ゲーム実行中において、操作キャラクタ４０にレシーブ権が発生するまで繰り返し実行されるものである。また、ステップＳ２およびＳ３にて、時間条件・空間条件が満たされるまで待機している際に、ボール４４が操作キャラクタ４０の横を通過し、得点がカウントされた場合には、本処理を強制的に終了させる。
なお、自動的に選定したテイクバックの開始後に、操作部１００から打法特定信号が入力された場合には、実行中のテイクバックから指定された打法のテイクバックへと動作を補間しつつ移行させる。
【０１５９】
図２１は、テイクバック時における下半身の動作を制御する処理（テイクバック処理（２））について説明するためのフローチャートである。
動作制御部２３０は、テイクバック開始判定部２２６により、テイクバック開始条件が満たされたと判定され、且つ、動作選定部２２８により、テイクバックのモーションデータが選定された場合に、操作キャラクタ４０の下半身の動作制御を行う。
【０１６０】
その際、動作制御部２３０は、まず、操作部１００から移動指示が入力されたか否かを判定する（ステップＳ１０）。移動指示が入力された場合には、テイクバックテーブル４２６から下半身のモーションデータを読み出す（ステップＳ１１）。その際、動作選定部２２８によって判定された選定条件に基づいて読み出すモーションデータを決定する。一方、ステップＳ１０にて、移動指示が入力されていないと判定した場合には、情報記憶媒体４００から移動モーションデータ４３０を読み出す（ステップＳ１２）。そして、読み出したモーションデータに基づいて操作キャラクタ４０の下半身の動きを制御し（ステップＳ１３）、本処理を終了する。
なお、動作制御部２３０は、本処理について、テイクバック開始条件が満たされた後、打撃開始指示が入力されるまでの間、毎フレーム行う。
【０１６１】
図２２は、スイング処理を説明するためのフローチャートである。
スイング処理とは、操作部１００から打撃開始の指示が入力された後の処理であり、スイングテーブル４２８から適当なモーションデータを読み出す処理、スイングの開始段階を判定する処理、読み出したモーションデータに基づいて操作キャラクタ４０を制御する処理などを含む処理である。
【０１６２】
スイング処理では、まず、動作選定部２２８が、操作部１００から打撃開始の指示が入力されたか否かを判断する（ステップＳ２０）。打撃開始の指示が入力されていない場合には、本処理を終了する。一方、打撃開始の指示が入力された場合には、スイングテーブル４２８から適当なモーションデータを読み出す（ステップＳ２１）。すなわち、動作選定部２２８は、ボール４４の軌道と衝突判定面９０との交点の座標を算出し、同時指定入力の有無、先行指定入力の有無、を判断することにより、１のスイングのモーションデータを選定する。
【０１６３】
動作制御部２３０は、打撃開始の指示が入力された瞬間が、テイクバックの途中であるか否かを判定する（ステップＳ２２）。テイクバックの動作が完了している場合には、動作選定部２２８によって選定されたスイングのモーションデータにおける最初のフレームのモーションデータを読み出して（ステップＳ２３）、ステップＳ２７に移行する。
【０１６４】
一方、テイクバックの途中で打撃開始の指示が入力された場合には、テイクバックの動作を中断し（ステップＳ２４）、対応テーブル４３２に基づいて、スイング開始のキーフレームを選定する（ステップＳ２５）。そして、テイクバックを中断した瞬間の操作キャラクタ４０の姿勢から、選定したスイング開始のキーフレームの姿勢までの動作を補間する（ステップＳ２６）。ステップＳ２３にて読み出したモーションデータの最初の部分から、もしくは、ステップＳ２５にて選定したキーフレームから、読み出したモーションデータに基づいてスイングの動作を開始させる（ステップＳ２７）。スイングのモーションが完了すると、本処理を終了する。
【０１６５】
以上のように、本実施の形態におけるゲーム装置は、自動的にテイクバックやスイングの種類を決定し、また、自動的にテイクバックを選手キャラクタに実行させる。スイングを開始するタイミングについては、プレーヤからの入力指示に応じて決定する。ただし、上述のように、ゲーム装置がスイングにおける打法を自動的に選定するだけでなく、特殊な打法については、プレーヤの入力指示に基づいて選定する。
【０１６６】
次に、ハードウェア構成について説明する。
図２３は、本実施の形態を実現可能とするハードウェア構成の一例を示す図である。同図に示す装置では、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４が、システムバス１０１６により相互にデータ入出力可能に接続されている。そして、画像生成ＩＣ１０１０には、表示装置１０１８が接続され、音生成ＩＣ１００８には、スピーカ１０２０が接続され、Ｉ／Ｏポート１０１２には、コントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には、通信装置１０２４が接続されている。
【０１６７】
情報記憶媒体１００６は、図１１に示す機能ブロックにおける情報記憶媒体４００に相当するものであり、プログラム、表示物を表現するための画像データ、音データ、プレイデータ等が主に格納されるものである。例えば、図１に示す業務用のゲーム装置においては、ＲＯＭ等のメモリやハードディスクが用いられ、この場合には、情報記憶媒体１００６は、ＲＯＭ１００２になる。また、パーソナルコンピュータにおいては、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等のメモリ、ハードディスク等が用いられる。また、本発明を家庭用ゲーム装置に適用する場合には、ゲームプログラム等を格納する情報記憶媒体として、ＣＤ−ＲＯＭ、ゲームカセット、ＤＶＤ等が用いられ、プレイデータを格納する情報記憶媒体としてメモリカードなどが用いられる。
【０１６８】
コントロール装置１０２２は、図１に示したような操作バー１４や操作キー１６、あるいは、操作パネル等に相当するものであり、プレーヤがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【０１６９】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、ＣＰＵ１０００は、装置全体の制御や各種データ処理を行う。ＲＡＭ１００４は、このＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果が格納される。
【０１７０】
更に、この種の装置には、音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていて、ゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音は、スピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から出力される画像情報に基づいて表示装置１０１８に出力するための画素情報を生成する集積回路である。また表示装置１０１８は、ＣＲＴやＬＣＤ、ＴＶ、プラズマディスプレイ、プロジェクター等により実現される。
【０１７１】
また、通信装置１０２４は、ゲーム装置内部で利用される各種の情報を外部とやり取りするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受し、また、通信回線を介してゲームプログラム等の情報を送受すること等に利用される。
【０１７２】
また、図１〜図１９で説明した種々の処理は、図２０〜図２２のフローチャートに示したテイクバック処理（１）、テイクバック処理（２）、スイング処理等を行うためのプログラムを含むプログラムを格納した情報記憶媒体１００６と、該プログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０、音生成ＩＣ１００８等によって実現される。なお、画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【０１７３】
なお、本発明は、図１に示した業務用のゲーム装置１だけでなく、他のいかなる形態のゲーム装置に適用してもかまわない。例えば、図２４に、ホスト装置１３００と、このホスト装置１３００と通信回線１３０２を介して接続される端末１３０４−１〜１３０４−ｎとを含むゲーム装置に本実施の形態を適用した場合の例を示す。
【０１７４】
図２４に示す形態の場合、図１１に示した情報記憶媒体４００に記憶されるゲームプログラム４２０等は、例えば、ホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。また、端末１３０４−１〜１３０４−ｎが、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ、を有し、スタンドアローンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム４２０等が端末１３０４−１〜１３０４−ｎに配送される。一方、スタンドアローンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４−１〜１３０４−ｎに伝送し端末において出力することになる。
【０１７５】
あるいは、図２５に示すように、本実施の形態を家庭用ゲーム装置１２１０に適用してもよい。このゲーム装置１２１０は、ディスプレイ１２００、ゲームコントローラ１２０２、１２０４等が着脱自在な構成になっている。また、ゲームプログラムや本発明を実現するために必要な情報等のゲーム情報は、ゲーム装置１２１０に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１２０６、ＩＣカード１２０８、メモリカード１２１２、および、ゲーム装置１２１０本体が備える情報記憶媒体等に格納されている。プレーヤは、ディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２あるいは１２０４を用いてキャラクタを操作することによって、テニスゲームを楽しむ。
【０１７６】
なお、本発明は、上記実施の形態で説明したものに限らず、種々の変形実施が可能である。例えば、本実施の形態では、操作キャラクタ４０に実行させるスイングの種類を選定する際、ボール４４の軌道と衝突判定面９０との交点に最も近いヒットポイントに対応するモーションデータを読み出すこととして説明した。しかし、この方法に限定する必要はなく、例えば、ボール４４の軌道と衝突判定面９０との交点に近隣する複数のヒットポイントを選定し、これらの選定したヒットポイントに対応する複数のモーションデータを合成して新たなモーションデータを生成するようにしてもよい。
【０１７７】
また、ボールとラケットの衝突を判定するための衝突判定面を図１４（ａ）に示したような操作キャラクタ４０に追従する広範囲な面によって定義したが、これに限定する必要はない。例えば、ラケットの大きさよりもやや大きめの衝突判定面をラケットに追従させて制御してもよい。図２６は、衝突判定面１３０の変形例を示す図である。同図によれば、衝突判定面１３０は、矩形の形状をしており、横軸がラケット１４０の面の中心１４２からグリップの中心１４４を結ぶ線分１４６と平行になるように設置されている。なお、係る衝突判定面１３０を仮想空間３０に配置する際には、衝突判定面１３０がＸ−Ｚ平面と平行になるように配置する。このように、衝突判定面１３０をラケット１４０に追従させることにより、よりリアルな衝突判定を行うことができる。
【０１７８】
また、本実施の形態では、フォアストロークのテイクバックと、バックストロークのテイクバックとをそれぞれ１つづつ用意することとして説明したが、これに限定する必要はなく、それぞれ複数種類のテイクバックを用意してもよいことは勿論である。この場合において、ボール４４の軌道と操作キャラクタ４０との位置関係に応じてその複数用意したテイクバックのモーションデータを合成し、合成した結果を操作キャラクタ４０に実行させるようにしてもよい。
【０１７９】
また、本実施の形態では、操作キャラクタ４０に１度実行させた動作については、そのテイクバックを続行させることとして説明したが、これに限定する必要はない。例えば、操作キャラクタ４０がフォアストロークのテイクバックが選定される領域から、テイクバックをしながら移動することで、バックストロークのテイクバックが選定される領域に移った場合には、フォアのテイクバックからバックのテイクバックへと動作を移行してもよいことは勿論である。
【０１８０】
また、本実施の形態では、テイクバック開始条件における時間条件として、相手キャラクタ４２がボール４４を打撃した後の経過時間δｔPASが判定時間ＴCを超えることを条件とした。しかし、これに限定する必要はなく、ボール４４の速度や操作キャラクタ４０との距離（奥行方向に対する距離）に応じて決定してもよいことは勿論である。
【０１８１】
なお、テイクバック開始条件が満たされた瞬間と、ボール４４と操作キャラクタ４０との位置関係に応じて、テイクバックの種類を変更するようにしてもよい。例えば、同じフォアストロークのテイクバックを行わせる場合であっても、操作キャラクタ４０とボール４４との距離が十分に離れている場合には、余裕のあるやや大袈裟なテイクバックを行わせる。また、ボール４４が衝突判定面９０に到達するまでに要する時間に余裕がない場合には、飾りのない機械的なテイクバックを実行させる。実現方法としては、例えば、時間０〜ｔ0までをテイクバック１、ｔ0〜ｔ1までをテイクバック２、…、といった具合に、時間帯とテイクバックの種類とを対応付けて記憶する。そして、テイクバック開始条件が満たされた瞬間においてボール４４が衝突判定面９０を通過するまでに要する時間Δｔが、いずれの時間帯に属するかを判定して、該当するテイクバックを操作キャラクタ４０に実行させる、ように設定してもよい。
【０１８２】
また、本実施の形態では、テニスゲームを例に説明したが、これに限定する必要はない。例えば、野球ゲームにおけるバッターの動作や、ゴルフゲームにおけるスイングの動作など、ボール４４を打つ際に準備動作を必要とする動作であれば、他のいかなるゲームにも適用可能である。
【図面の簡単な説明】
【図１】業務用のゲーム装置の一例を示す図である。
【図２】仮想空間の（ａ）斜俯瞰図、（ｂ）平面図、である。
【図３】本発明の概要を説明するための図である。
【図４】（ａ）は、打撃開始指示入力前の操作と指示の対応関係を示す図である。（ｂ）は、打撃開始指示入力後の操作と指示の対応関係を示す図である。
【図５】ボレーとストロークの選定条件を示す図である。
【図６】ボールの軌道を説明するための図である。
【図７】フォアとバックの選定条件を説明するための図である。
【図８】スマッシュエリアの一例を示す図である。
【図９】テイクバックとスイングにおけるキーフレームの一例を示す図である。
【図１０】テイクバックとスイングとの対応関係を示す図である。
【図１１】機能ブロックの一例を示す図である。
【図１２】テイクバックテーブルの一例を示す図である。
【図１３】スイングテーブルの一例を示す図である。
【図１４】衝突判定面の一例を示す図である。
【図１５】（ａ）は、ボールの飛行方向の一例を示す図である。（ｂ）は、ボールの速度の一例を示す図である。
【図１６】初速度の水平成分を示す図である。
【図１７】軌道計算を行う際のローカル座標系（η，ξ）の一例を示す図である。
【図１８】ボールの軌道と高さｈSとの関係を示す図である。
【図１９】（ａ）は、キャラクタモデルの一例を示す図である。（ｂ）は、動作テーブルの一例を示す図である。
【図２０】テイクバック処理（１）を説明するためのフローチャートである。
【図２１】テイクバック処理（２）を説明するためのフローチャートである。
【図２２】スイング処理を説明するためのフローチャートである。
【図２３】ハードウェア構成の一例を示す図である。
【図２４】ホスト装置と端末の接続形態の一例を示す図である。
【図２５】家庭用のゲーム装置の一例を示す図である。
【図２６】衝突判定面の変形例を示す図である。
【符号の説明】
１  ゲーム装置
１００    操作部
２００    処理部
２２０      ゲーム演算部
２２２        打球制御部
２２４        スマッシュポイント算出部
２２６        テイクバック開始判定部
２２８        動作選定部
２３０        動作制御部
２４０      画像生成部
３００    表示部
４００    情報記憶媒体
４２０      ゲームプログラム
４２２        ゲーム演算プログラム
４２４        画像生成プログラム
４２６        テイクバックテーブル
４２８        スイングテーブル
４３０        移動モーションデータ
４３２        対応テーブル
５００    一時記憶部
５２０      打法特定信号
【図１】
0004801854.tif 000002
【図２】
0004801854.tif 000003
【図３】
0004801854.tif 000004
【図４】
0004801854.tif 000005
【図５】
0004801854.tif 000006
【図６】
0004801854.tif 000007
【図７】
0004801854.tif 000008
【図８】
0004801854.tif 000009
【図９】
0004801854.tif 000010
【図１０】
0004801854.tif 000011
【図１１】
0004801854.tif 000012
【図１２】
0004801854.tif 000013
【図１３】
0004801854.tif 000014
【図１４】
0004801854.tif 000015
【図１５】
0004801854.tif 000016
【図１６】
0004801854.tif 000017
【図１７】
0004801854.tif 000018
【図１８】
0004801854.tif 000019
【図１９】
0004801854.tif 000020
【図２０】
0004801854.tif 000021
【図２１】
0004801854.tif 000022
【図２２】
0004801854.tif 000023
【図２３】
0004801854.tif 000024
【図２４】
0004801854.tif 000025
【図２５】
0004801854.tif 000026
【図２６】
0004801854.tif 000027