(57)【要約】【課題】先行入力システムに好適なモーション再生処理を実現できるプログラム、情報記憶媒体及び画像生成システムの提供。【解決手段】画像生成システムは、キャラクタにより移動体がショット又は捕捉されるタイミングに先行して、キャラクタの動作を指示する先行入力をプレーヤが行った場合に、その先行入力を受け付ける入力受け付け部と、移動体の制御処理を行う移動体制御部と、キャラクタの制御処理を行うキャラクタ制御部と、モーションデータ記憶部と、再生速度変更部を含む。再生速度変更部は、先行入力のタイミングから第１のタイミングまでの期間である第１の期間での第１の再生速度の変更度合いを、第１のタイミングからキャラクタと移動体のヒットイベントが発生するタイミングまでの期間である第２の期間での第２の再生速度の変更度合いに比べて大きくする再生速度変更処理を行う。【選択図】図１９
2008307166.tif 000002
【特許請求の範囲】
【請求項１】
キャラクタにより移動体がショット又は捕捉されるタイミングに先行して、前記キャラクタの動作を指示する先行入力をプレーヤが行った場合に、入力された先行入力を受け付ける入力受け付け部と、
前記キャラクタによりショット又は捕捉される前記移動体の制御処理を行う移動体制御部と、
受け付けられた前記先行入力の操作データに基づいて、前記キャラクタの制御処理を行うキャラクタ制御部と、
前記キャラクタのモーションデータを記憶するモーションデータ記憶部と、
前記モーションデータに基づいて前記キャラクタのモーション再生を行うモーション再生部と、
前記キャラクタのモーションの再生速度変更処理を行う再生速度変更部として、
コンピュータを機能させ、
前記再生速度変更部は、
前記先行入力のタイミングから第１のタイミングまでの期間である第１の期間での第１の再生速度の変更度合いを、前記第１のタイミングから前記キャラクタと前記移動体のヒットイベントが発生するタイミングまでの期間である第２の期間での第２の再生速度の変更度合いに比べて大きくする再生速度変更処理を行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記再生速度変更部は、
前記ヒットイベントの発生位置であるヒット位置への前記移動体の到達時間と、モーションの再生時間とにより、前記第１の期間での前記第１の再生速度の変更倍率である第１の変更倍率と、前記第２の期間での前記第２の再生速度の変更倍率である第２の変更倍率を設定することを特徴とするプログラム。
【請求項３】
請求項２において、
前記再生速度変更部は、
前記第２の変更倍率を１倍に設定したときの前記第１の変更倍率を求め、求められた前記第１の変更倍率が第１のしきい値よりも大きい場合には、前記第１の変更倍率を小さくすると共に前記第２の変更倍率を大きくし、求められた前記第１の変更倍率が第２のしきい値よりも小さい場合には、前記第１の変更倍率を大きくすると共に前記第２の変更倍率を小さくすることを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記モーションデータ記憶部は、
前記第１、第２の期間を区画するフレームを特定するための区画フレームのデータを、各モーションに関連づけて記憶し、
前記再生速度変更部は、
前記区画フレームのデータに基づいて前記第１のタイミングを特定して、前記再生速度変更処理を行うことを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記モーションデータ記憶部は、
モーションの再生速度が変更される第１のモーションのデータと、モーションの再生速度が変更されない第２のモーションのデータを記憶し、
前記再生速度変更部は、
前記先行入力による前記キャラクタの動作指示に基づいて前記第１のモーションが選択された場合に、前記再生速度変更処理を行うことを特徴とするプログラム。
【請求項６】
請求項５において、
前記モーション再生部は、
前記先行入力による前記キャラクタの動作指示に基づいて前記第２のモーションが選択された場合に、前記第２のモーションの再生時間を取得し、前記再生時間が、前記ヒットイベントの発生位置であるヒット位置への前記移動体の到達時間よりも長い場合には、前記第２のモーションの途中からモーション再生を行い、前記再生時間が前記到達時間よりも短い場合には、他のモーション再生を行った後に前記第２のモーションの再生を行うことを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記モーション再生部は、
前記ヒットイベントの発生位置であるヒット位置への前記移動体の到達時間が、前記第２の期間の長さである第２の時間よりも短い場合には、前記再生速度変更処理を行うことなく前記キャラクタのモーションを再生することを特徴とするプログラム。
【請求項８】
請求項７において、
前記モーション再生部は、
前記到達時間内での前記キャラクタのゲームフィールド上での移動距離が、前記第２の期間での前記キャラクタのモーションでの移動距離よりも短い場合には、前記再生速度変更処理を行うことなく前記キャラクタのモーションを再生することを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記第１のタイミングにより設定される前記第２の期間は、前記キャラクタの足を滑らせない期間として設定された期間であることを特徴とするプログラム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記キャラクタと前記移動体とのヒットイベントが発生する位置であるヒット位置を求めるヒット位置演算部として、
コンピュータを機能させ、
前記モーション再生部は、
前記ヒット位置演算部により求められたヒット位置への前記移動体の到達時間と、前記先行入力の動作指示データとに基づき、モーションデータを選択して再生することを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記再生速度変更部は、
選択されたモーションデータの再生時間と、前記移動体の前記到達時間とに基づいて、前記第１の期間での前記第１の再生速度の変更倍率である第１の変更倍率と、前記第２の期間での前記第２の再生速度の変更倍率である第２の変更倍率を設定することを特徴とするプログラム。
【請求項１２】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１１のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１３】
画像を生成する画像生成システムであって、
キャラクタにより移動体がショット又は捕捉されるタイミングに先行して、前記キャラクタの動作を指示する先行入力をプレーヤが行った場合に、入力された先行入力を受け付ける入力受け付け部と、
前記キャラクタによりショット又は捕捉される前記移動体の制御処理を行う移動体制御部と、
受け付けられた前記先行入力の操作データに基づいて、前記キャラクタの制御処理を行うキャラクタ制御部と、
前記キャラクタのモーションデータを記憶するモーションデータ記憶部と、
前記モーションデータに基づいて前記キャラクタのモーション再生を行うモーション再生部と、
前記キャラクタのモーションの再生速度変更処理を行う再生速度変更部と、
を含み、
前記再生速度変更部は、
前記先行入力のタイミングから第１のタイミングまでの期間である第１の期間での第１の再生速度の変更度合いを、前記第１のタイミングから前記キャラクタと前記移動体のヒットイベントが発生するタイミングまでの期間である第２の期間での第２の再生速度の変更度合いに比べて大きくする再生速度変更処理を行うことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、スポーツ選手を模したキャラクタ等のオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。テニスゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラなどの操作部を用いて自身のキャラクタを操作して、他のプレーヤやコンピュータが操作する相手キャラクタがショットしたボールをラケットで打ち返すことでゲームを楽しむ。
【０００３】
このようなテニスゲームでは、ボールがキャラクタの場所に飛んできたタイミングで、プレーヤがゲームコントローラの動作指示ボタンを押すことで、ボールを打ち返すという操作インターフェースを採用するのが一般的である。
【０００４】
しかしながら、このような操作インターフェースでは、プレーヤがキャラクタの動作指示ボタンを押すタイミングの前においては、どのような種類のショット動作をキャラクタに行わせるのかを、確定できない。即ちプレーヤがショットタイミングの直前に例えばトップスピンやスライスのショット動作の指示ボタンを押した場合に、打ち返したボールの軌道をトップスピンやスライスの軌道にすることはできるが、キャラクタのモーション自体を、トップスピンやスライスのショット動作に応じたモーションにすることは難しかった。
【０００５】
以上のような課題を解決するために、本願発明者は、キャラクタによりボール（移動体）がショット（捕捉）されるタイミングに先行して、キャラクタの動作指示を行うことができる先行入力システムを開発している。この先行入力システムによれば、例えばショットタイミングの前に、プレーヤがトップスピンやスライスの動作指示ボタンを押すと、ボールの軌道のみならず、ショットタイミングまでのキャラクタのモーションについても、トップスピンやスライスの動作を忠実に再現したモーションにすることが可能になる。
【０００６】
しかしながら、このような先行入力システムを採用した場合には、プレーヤの先行入力のタイミングに応じてショットタイミングまでの時間が変化してしまい、モーションの再生時間が一定にならないという課題があることが判明した。
【特許文献１】特開平８−９０６３８号公報
【特許文献２】特開平１１−９００４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、先行入力システムに好適なモーション再生処理を実現できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、画像を生成する画像生成システムであって、キャラクタにより移動体がショット又は捕捉されるタイミングに先行して、前記キャラクタの動作を指示する先行入力をプレーヤが行った場合に、入力された先行入力を受け付ける入力受け付け部と、前記キャラクタによりショット又は捕捉される前記移動体の制御処理を行う移動体制御部と、受け付けられた前記先行入力の操作データに基づいて、前記キャラクタの制御処理を行うキャラクタ制御部と、前記キャラクタのモーションデータを記憶するモーションデータ記憶部と、前記モーションデータに基づいて前記キャラクタのモーション再生を行うモーション再生部と、前記キャラクタのモーションの再生速度変更処理を行う再生速度変更部とを含み、前記再生速度変更部は、前記先行入力のタイミングから第１のタイミングまでの期間である第１の期間での第１の再生速度の変更度合いを、前記第１のタイミングから前記キャラクタと前記移動体のヒットイベントが発生するタイミングまでの期間である第２の期間での第２の再生速度の変更度合いに比べて大きくする再生速度変更処理を行う画像生成システムに関係する。
【０００９】
本発明では、キャラクタにより移動体がショット又は捕捉されるタイミングに先行して、キャラクタの動作指示のための先行入力をプレーヤが行うと、その先行入力が受け付けられ、先行入力の操作データに基づいてキャラクタの制御処理が行われる。またモーションデータに基づいてキャラクタのモーション再生が行われると共に、モーションの再生速度の変更処理が行われる。この場合に本発明では、モーションの再生期間が、先行入力のタイミングから第１のタイミングまでの期間である第１の期間と、第１のタイミングからヒットイベントの発生タイミングまでの期間である第２の期間に区画される。そしてモーションの再生速度変更処理の際に、第１の期間での第１の再生速度の変更度合いが、第２の期間での第２の再生速度の変更度合いに比べて大きくなる。このようにすれば、ショット動作又は捕捉動作の後半の期間で、再生速度の変更により不自然なモーションが再生されてしまう事態を防止でき、先行入力システムに好適なモーション再生処理を実現できる。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記再生速度変更部は、前記ヒットイベントの発生位置であるヒット位置への前記移動体の到達時間と、モーションの再生時間とにより、前記第１の期間での前記第１の再生速度の変更倍率である第１の変更倍率と、前記第２の期間での前記第２の再生速度の変更倍率である第２の変更倍率を設定してもよい。
【００１１】
このようにすれば、例えば移動体の到達時間と再生時間との時間比等に応じた変更倍率の設定処理を実現できる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記再生速度変更部は、前記第２の変更倍率を１倍に設定したときの前記第１の変更倍率を求め、求められた前記第１の変更倍率が第１のしきい値よりも大きい場合には、前記第１の変更倍率を小さくすると共に前記第２の変更倍率を大きくし、求められた前記第１の変更倍率が第２のしきい値よりも小さい場合には、前記第１の変更倍率を大きくすると共に前記第２の変更倍率を小さくしてもよい。
【００１３】
このようにすれば、第１の変更倍率が大きくなりすぎたり、小さくなりすぎて、不自然なモーション再生が行われてしまう事態を防止できる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モーションデータ記憶部は、前記第１、第２の期間を区画するフレームを特定するための区画フレームのデータを、各モーションに関連づけて記憶し、前記再生速度変更部は、前記区画フレームのデータに基づいて前記第１のタイミングを特定して、前記再生速度変更処理を行ってもよい。
【００１５】
このようにすれば、各モーション毎に第１のタイミングを異ならせることが可能になり、より適切で多様なモーション再生を実現できる。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モーションデータ記憶部は、モーションの再生速度が変更される第１のモーションのデータと、モーションの再生速度が変更されない第２のモーションのデータを記憶し、前記再生速度変更部は、前記先行入力による前記キャラクタの動作指示に基づいて前記第１のモーションが選択された場合に、前記再生速度変更処理を行ってもよい。
【００１７】
このようにすれば、再生速度変更処理が必要な第１のモーションと再生速度変更処理が必要ではない第２のモーションをカテゴリ分けして処理できるため、処理を効率化できる。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モーション再生部は、前記先行入力による前記キャラクタの動作指示に基づいて前記第２のモーションが選択された場合に、前記第２のモーションの再生時間を取得し、前記再生時間が、前記ヒットイベントの発生位置であるヒット位置への前記移動体の到達時間よりも長い場合には、前記第２のモーションの途中からモーション再生を行い、前記再生時間が前記到達時間よりも短い場合には、他のモーション再生を行った後に前記第２のモーションの再生を行ってもよい。
【００１９】
このようにすれば、第２のモーションが選択された場合に、再生速度の変更処理を行わなくても、到達時間と再生時間の長さの違いを吸収することができるようになる。
【００２０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モーション再生部は、前記ヒットイベントの発生位置であるヒット位置への前記移動体の到達時間が、前記第２の期間の長さである第２の時間よりも短い場合には、前記再生速度変更処理を行うことなく前記キャラクタのモーションを再生してもよい。
【００２１】
このようにすれば、プレーヤの先行入力のタイミングが遅すぎた場合等にも、これに対応することができ、先行入力システムに好適な操作アシストを実現できる。
【００２２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モーション再生部は、前記到達時間内での前記キャラクタのゲームフィールド上での移動距離が、前記第２の期間での前記キャラクタのモーションでの移動距離よりも短い場合には、前記再生速度変更処理を行うことなく前記キャラクタのモーションを再生してもよい。
【００２３】
このようにすれば、無駄な再生速度変更処理を行わなくても済むため、処理を効率化できる。
【００２４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第１のタイミングにより設定される前記第２の期間は、前記キャラクタの足を滑らせない期間として設定された期間であってもよい。
【００２５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記キャラクタと前記移動体とのヒットイベントが発生する位置であるヒット位置を求めるヒット位置演算部を含み（或いはヒット位置演算部としてコンピュータを機能させ）、前記モーション再生部は、前記ヒット位置演算部により求められたヒット位置への前記移動体の到達時間と、前記先行入力の動作指示データとに基づき、モーションデータを選択して再生してもよい。
【００２６】
このようにすれば、到達時間の長さやプレーヤの動作指示に応じた最適なモーションデータの選択が可能になる。
【００２７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記再生速度変更部は、選択されたモーションデータの再生時間と、前記移動体の前記到達時間とに基づいて、前記第１の期間での前記第１の再生速度の変更倍率である第１の変更倍率と、前記第２の期間での前記第２の再生速度の変更倍率である第２の変更倍率を設定してもよい。
【００２８】
このようにすれば、再生時間と到達時間の長さの違いに応じた第１、第２の変更倍率の設定が可能になる。
【発明を実施するための最良の形態】
【００２９】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３０】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）のブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３１】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、方向キー、操作ボタン、アナログスティック、レバー、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００３２】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。この記憶部１７０は、電源を切るとデータが消えてしまう揮発性のメモリにより構成できるが、補助記憶装置１９４よりも高速な記憶装置になっている。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００３３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００３４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３５】
補助記憶装置１９４（補助メモリ、２次メモリ）は、記憶部１７０の容量を補うために使用される記憶装置であり、ＳＤメモリーカード、マルチメディアカードなどのメモリーカードや、ＨＤＤなどにより実現できる。この補助記憶装置１９４は脱着自在になっているが、内蔵されるものであってもよい。この補助記憶装置１９４は、ゲームの途中結果などのセーブデータや、プレーヤ（ユーザ）の個人的な画像データや音楽データなどを保存するために使用される。
【００３６】
通信部１９６は、有線や無線のネットワークを介して外部（例えば他の画像生成システム、サーバ、ホスト装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００３７】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０、補助記憶装置１９４）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３８】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部１００は記憶部１７０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＧＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３９】
処理部１００は、入力受け付け部１０２、オブジェクト空間設定部１０４、ゲーム演算部１０６、移動体制御部１０８、キャラクタ制御部１１０、モーション再生部１１２、再生速度変更部１１３、ヒット位置演算部１１４、判定部１１６、仮想カメラ制御部１１８、画像生成部１２０、音生成部１３０を含むことができる。なおこれらの一部の構成要素（例えばヒット位置演算部、判定部）を省略する構成としてもよい。
【００４０】
入力受け付け部（操作データ取得部）１０２は、プレーヤの操作入力を受け付ける処理を行う。例えばプレーヤによる操作部１６０の操作をモニタし、プレーヤがキャラクタの動作指示等のために操作部１６０を操作した場合に、操作部１６０により入力された動作指示データ（モーション指示データ、方向指示データ）等の操作情報を取得する。
【００４１】
そして本実施形態では入力受け付け部１０２は、キャラクタにより移動体（ボール）がショット（打撃、キック）又は捕捉（捕球、キープ）されるタイミングに先行して、キャラクタの動作を指示する先行入力（動作指示データの入力）をプレーヤが行った場合に、入力された先行入力を受け付ける。ここで先行入力は、例えば、少なくとも先行入力が行われたタイミングから移動体がショット又は捕捉されるタイミングまでのキャラクタのモーション（動作）を決めるための入力である。例えばヒット動作（トップスピンやスライスなどのショット動作）を指示する先行入力が行われると、その先行入力の動作指示データにより特定されるモーションが再生されて、ヒットタイミング（ショットタイミング、捕捉タイミング）においてキャラクタが移動体（ボール、プレイ対象物）のヒット動作（ショット動作、捕捉動作）を行う。このようにすれば、先行入力のタイミングから少なくともヒットタイミングまで、その先行入力で特定されるモーション（例えば１つのモーションデータ）を選択して再生できるようになり、リアルで高品質なモーション表現を実現できる。
【００４２】
オブジェクト空間設定部１０４は、モデルオブジェクト（キャラクタ、ロボット、車、戦闘機、ボール、ミサイル、弾等）、ゲームフィールド（コート、グラウンド）、壁、建物、樹木、マップ（地形）、コース（道路）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４３】
例えば記憶部１７０の形状データ記憶部１７１には、キャラクタ等のオブジェクト（モデルオブジェクト）の形状を決めるための形状データ（ポリゴンデータ）が記憶されている。またオブジェクトデータ記憶部１７２には、図２に示すように、これらのオブジェクトの位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。
【００４４】
そしてオブジェクト空間設定部１０４は、これらの形状データやオブジェクトデータを用いて、オブジェクト空間へのオブジェクトの設定（配置）処理を行う。またオブジェクトデータ記憶部１７２のオブジェクトデータは、移動体制御部１０８やキャラクタ制御部１１０での移動制御処理等により順次更新される。
【００４５】
ゲーム演算部１０６はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００４６】
移動体制御部（移動体演算部）１０８は、オブジェクト空間内で移動するボールなどの移動体（プレイ対象物）の制御処理を行う。例えば移動体を移動させたり動作させるための制御処理（演算処理）を行う。即ち、移動体の移動軌道等を決めるためのアルゴリズムや、各種データなどに基づいて、移動体をオブジェクト空間内（ゲーム空間内）で移動させるための処理を行う。例えば移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４７】
キャラクタ制御部（キャラクタ演算部）１１０は、人間等（例えばスポーツ選手）を模したキャラクタの制御処理を行う。例えばキャラクタを移動させたり動作させるための制御処理を行う。即ち操作部１６０によりプレーヤが入力した操作データや、キャラクタの移動、動作を決めるためのアルゴリズムや、各種データなどに基づいて、キャラクタをオブジェクト空間内で移動、動作させるための処理を行う。例えば操作データに基づいてキャラクタの移動情報や動作情報を１フレーム毎に順次求めるシミュレーション処理を行う。
【００４８】
そして本実施形態では、移動体制御部１０８は、キャラクタによりショット又は捕捉されるボール（プレイ対象物）などの移動体の制御処理（移動制御処理）を行う。またキャラクタ制御部１１０は、入力受け付け部１０２により受け付けられた先行入力の操作データに基づいて、キャラクタの制御処理（移動制御処理）を行う。この場合に図３に示すように、制御処理により移動する移動体の軌道データは、軌道データ記憶部１７５に記憶される。例えばコンピュータや他プレーヤが操作する相手キャラクタが、ボール等の移動体をショット（ヒット）すると、図３に示すように、ショットしたフレームを先頭フレームとした各フレームでの移動体位置（予測位置）が、軌道データとして記憶される。
【００４９】
モーション再生部１１２はモーション再生処理を行う。即ちキャラクタにモーション（アニメーション）を行わせるモーション再生処理（モーション処理、モーション生成処理）を行う。このモーション再生処理は、キャラクタのモーションを、モーションデータ記憶部１７３に記憶されているモーションデータに基づいて再生することなどで実現できる。
【００５０】
例えば図４に示すように、キャラクタ等を表すモデルオブジェクトＭＯＢは、複数のパーツオブジェクト（腰１２、胸１４、首１６、頭１８、右上腕２０、右前腕２２、右手２４、左上腕２６、左前腕２８、左手３０、右股３２、右すね３４、右足３６、左股３８、左すね４０、左足４２）により構成されている。そして、これらのパーツオブジェクト（部位）の位置や回転角度（方向）は、スケルトンモデルを構成する骨Ｂ０〜Ｂ１９の位置（関節Ｊ０〜Ｊ１５の位置）や回転角度（親の骨に対する子の骨の相対的な回転角度）により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【００５１】
モーションデータ記憶部１７３には、例えば、これらの骨（パーツオブジェクト、関節）の位置、回転角度がモーションデータとして記憶される。具体的には図５に示すように、親の骨ＢＭＰに対する子の骨ＢＭＣの、Ｘ軸、Ｙ軸、Ｚ軸回りの回転角度α、β、γ等が、モーションデータとして記憶される。
【００５２】
なお、モーションデータの構造等は、図４、図５に限定されず、種々の変形実施が可能である。例えば骨の回転角度だけをモーションデータに含ませて、骨の位置（関節の位置）についてはモデルオブジェクトのモデルデータの中に含ませてもよい。また図４の骨Ｂ１〜Ｂ１９以外に、モーション骨によるモデルオブジェクトの変形を補助する補助骨を設けてもよい。
【００５３】
また、モーションデータ記憶部１７３に記憶されるモーションデータは、現実世界の人にセンサをつけてモーションキャプチャを行うことで作成できるが、モーションデータを、物理シミュレーション（物理計算を利用したシミュレーション。擬似的な物理計算でもよい）やモーションブレンドなどによりリアルタイムに生成してもよい。また、少ないモーションデータ量でリアルなモーションを再生するために、インバース・キネマティクス等を用いてモーション再生を行ってもよい
図６に本実施形態で使用されるモーションデータのデータ構造の例を示す。モーションファイルには、図４、図５で説明した各モーションのデータ（骨の回転角度等）が格納される。即ち「正面ボール用ショット」、「ステップからの通常ショット」、「小走りからの通常ショット」、「ランニングショット」などの各動作を表現するための各モーションのデータが格納される。また図６に示すようにモーションデータ記憶部１７３には、区画フレームやショットフレームのデータがモーションに関連づけて記憶される。
【００５４】
モーションパラメータ記憶部１７４には、モーション群毎に設定されるモーションパラメータが記憶される。例えば図７に示すように、そのモーション群に含まれるモーションのショットフレームのデータやモーション再生時間（再生フレーム数）のデータが、モーションパラメータとして記憶される。例えばそのモーション群におけるショットフレームや再生時間の最大値や平均値を記憶する。
【００５５】
そして本実施形態では、モーション再生部１１２は、キャラクタのショット又は捕捉の準備動作（例えばテイクバック動作、走り動作等）及びその準備動作に続くショット動作又は捕捉動作を再生するためのモーションデータを再生する。また再演算処理により最終的に求められたヒット位置により特定されるモーションデータを選択して再生する。この場合に、ヒット位置への移動体の到達時間（移動時間）と、先行入力の動作指示データなどに基づき、モーションデータを選択することができる。
【００５６】
再生速度変更部１１３は、キャラクタのモーションの再生速度の変更処理を行う。具体的には先行入力のタイミングから第１のタイミング（足滑り防止開始タイミング）までの期間である第１の期間での第１の再生速度の変更度合い（変更の程度、変更倍率）を、第１のタイミングから、キャラクタと移動体とのヒットイベントが発生するタイミングまでの期間である第２の期間（足滑り防止期間）での第２の再生速度の変更度合いに比べて大きくする。例えばヒットイベント（ショットイベント、捕捉イベント）の発生位置であるヒット位置（ショット位置、捕捉位置）への移動体の到達時間（移動時間、移動距離）と、モーションの再生時間（再生フレーム数）とに基づいて、第１の再生速度の変更倍率である第１の変更倍率と、第２の再生速度の変更倍率である第２の変更倍率を設定する。更に具体的には、第２の変更倍率を１倍に設定したときの第１の変更倍率を求める。そして求められた第１の変更倍率が第１のしきい値（第１の倍率）よりも大きい場合には、第１の変更倍率を小さくすると共に第２の変更倍率を大きくする。一方、求められた第１の変更倍率が第２のしきい値（第２の倍率）よりも小さい場合には、第１の変更倍率を大きくすると共に第２の変更倍率を小さくする。
【００５７】
また図６に示すようにモーションデータ記憶部１７３には、各モーションに関連づけて区画フレームのデータが記憶される。この区画フレームのデータは、第１、第２の期間を区画するフレームを特定するためのデータである。具体的には、キャラクタの足を滑らせたくない期間を特定するためのデータである。そして再生速度変更部１１３は、この区画フレームのデータに基づいて第１のタイミング（足滑り防止開始期間）を特定して、再生速度変更処理を行う。
【００５８】
ヒット位置演算部１１４は、キャラクタ（例えばキャラクタが持つラケット、バット等）と移動体（ボール等）とのヒットイベントが発生する位置（場所）であるヒット位置（ショット位置、捕捉位置）を求める処理を行う。例えばキャラクタが移動体をショットするショット位置や、キャラクタが移動体を捕捉する捕捉位置を求める。即ち、キャラクタと移動体とのヒットチェック処理を行い、ヒットイベントが発生した時の移動体の位置等を、ヒット位置として求める。そして求められたヒット位置のデータはヒット位置記憶部１７６に記憶される。
【００５９】
判定部１１６は、ヒット位置演算部１１４により求められたヒット位置が、キャラクタによる移動体のショット条件又は捕捉条件を満たす位置（ショット又は捕捉が成功する位置）であるか否かを判定する処理を行う。具体的には、キャラクタとヒット位置の間に障害物（例えば壁、他のキャラクタ）が存在した場合や、ヒット位置での移動体の第２の座標（例えばＹ座標）が所与の座標範囲内（例えば高さ範囲内）にない場合や、ヒット位置への移動体の到達時間内にキャラクタがヒット位置に到達できないと判断された場合などに、ヒット位置はショット条件や捕捉条件を満たす位置ではないと判定する。
【００６０】
そしてヒット位置演算部１１４は、ヒット位置がショット条件又は捕捉条件を満たす位置ではなかった場合には、ヒット位置の再演算処理を行い、例えばヒット位置を移動する。この場合に、ヒット位置を移動する処理を、ヒット位置がショット条件又は捕捉条件を満たす位置になるまで繰り返す。例えばヒット位置を移動し、移動後のヒット位置が、ショット条件又は捕捉条件を満たす位置か否かを再度判定する。そしてこれらの条件を満たすようになるまで、移動処理や再判定処理を繰り返す。即ち、ヒット位置がショット条件又は捕捉条件を満たす位置になるまで、移動体の軌道上においてヒット位置を移動する。
【００６１】
具体的にはヒット位置演算部１１４は、ヒット位置から、先行入力のタイミングでの移動体の位置へと向かう方向を、第１の方向とした場合に、ヒット位置を第１の方向側に移動する処理を行う。例えば移動体の軌道上でヒット位置を第１の方向側に移動する。或いは、移動体の座標が所与の座標範囲内に入るように、移動体の軌道上においてヒット位置を移動する。或いはヒット位置を、到達時間内にキャラクタが到達できる位置に移動する。
【００６２】
仮想カメラ制御部１１８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００６３】
例えば仮想カメラによりキャラクタを後方から撮影する場合には、キャラクタの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、キャラクタ制御部１１０で得られたキャラクタの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００６４】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、描画バッファ１７７に書き込んで、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずモデル（オブジェクト）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００６５】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６６】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００６７】
２．本実施形態の手法
次に本実施形態の手法の具体例について説明する。なお以下では、テニスゲームに本実施形態の手法を適用した場合について主に説明するが、本実施形態はこれに限定されず、例えばサッカー、アメリカンフットボール、野球などの様々なスポーツゲームやそれ以外のゲームにも適用できる。
【００６８】
２．１  先行入力
本実施形態の手法を適用したテニスゲームでは、図８に示すように、プレーヤが操作するキャラクタＣＨとコンピュータや他プレーヤが操作する相手キャラクタＣＣとが、オブジェクト空間（仮想３次元空間）に設定されたコート上でボールＢＬを打ち合って対戦する。例えば図８のオブジェクト空間のワールド座標系では、平面方向にＸ軸、Ｚ軸（広義には第１、第３の座標軸）が設定され、高さ方向にＹ軸（広義には第２の座標軸）が設定され、コート（ネット）の中心に原点に設定されている。そしてキャラクタＣＨは、プレーヤにより入力された操作データに基づいてＸ、Ｚ平面のコート上で移動して、相手キャラクタＣＣが打ったボールＢＬを打ち返す。
【００６９】
具体的には図９（Ａ）に示すようにプレーヤは、相手キャラクタＣＣがボールＢＬをショットした後、キャラクタＣＨの動作を指示する先行入力を行う。即ちキャラクタＣＨによりボールＢＬ（広義には移動体）がショット（又は捕捉）されるタイミングに先行して、キャラクタＣＨの動作を指示する先行入力を行う。具体的には、キャラクタＣＨの移動方向を方向指示キー５０（ジョイスティック、方向指示部）で指示すると共に、キャラクタＣＨのショットの種類を指示する操作ボタン６１を押す。ここでは、操作ボタン６１、６２、６３、６４は、各々、トップスピン、スライス、フラット、ロブのショットを指示するボタンになっており、キャラクタＣＨは、指示されたショットに応じたモーションを行う。そして図９（Ａ）ではトップスピンを指示する操作ボタン６１が押されているため、トップスピン用のモーションデータが再生されることになる。
【００７０】
なお方向指示キー５０と操作ボタン６１の操作は必ずしも同時である必要はなく、例えば操作ボタン６１を操作した後に方向指示キー５０を操作したり、方向指示キー５０を操作した後に操作ボタン６１を操作してもよい。
【００７１】
以上のような先行入力が行われると、図９（Ｂ）に示すように、キャラクタＣＨ（キャラクタのラケット）とボールＢＬ（移動体）とのヒットイベント（ショットイベント）が発生する位置であるヒット位置ＨＰ（ショット位置、捕捉位置）が求められる。即ちキャラクタＣＨによりボールＢＬがショット（ヒット）されると予測される位置（場所）がヒット位置ＨＰとして求められる。例えば、先行入力のタイミングでのキャラクタＣＨの位置及び移動方向により特定される軌道ＲＣと、ボールＢＬの軌道ＲＢとの交点を求めることで、ヒット位置ＨＰが求められる。
【００７２】
具体的には、ボールＢＬの軌道ＲＢは、相手キャラクタＣＣがボールＢＬを打った時点で計算され、計算された軌道は図３に示すように軌道データとして軌道データ記憶部１７５に記憶される。ヒット位置ＨＰは、図３の軌道データに含まれる複数のボール位置（各フレームでの移動体位置）のデータのうち、軌道ＲＣ、ＲＢの交点に対応するボール位置（交点に最も近いボール位置）のデータを選択することで、取得できる。
【００７３】
またこの時に、ボールＢＬのヒット位置ＨＰへの到達時間ｔｒも取得される。具体的には、到達時間ｔｒは、図３の軌道データにおいてヒット位置ＨＰにボールＢＬが到達するまでのフレーム数として取得できる。
【００７４】
そして図９（Ｃ）に示すように、求められた到達時間ｔｒ（到達フレーム数）と、図９（Ａ）での動作指示データとに基づき、モーション（モーションデータ）を選択し、選択されたモーションを再生することで、キャラクタＣＨのショット動作を表現する。
【００７５】
例えば図６に示すように、各ショットのモーションとして再生時間（再生フレーム数）が異なる複数のモーションを用意しておく。そして図９（Ａ）でトップスピンが選択された場合には、トップスピン用に用意された複数のモーションの中から、到達時間ｔｒに応じた長さの再生時間のモーションを選択する。例えば到達時間ｔｒが短ければ、再生時間が短いモーションを選択し、到達時間ｔｒが長ければ、再生時間が長いモーションを選択する。またモーション再生速度の変更処理を行うことで、到達時間ｔｒと再生時間の長さを一致させるための微調整を行う。
【００７６】
そして図９（Ｄ）に示すように、キャラクタＣＨとボールＢＬのヒットイベント（ショットイベント）が発生した場合には、そのときにプレーヤが方向指示キー５０で指示している方向にボールＢＬが打ち返される。なお図９（Ｄ）では、ヒットイベントの発生タイミング（ショットタイミング）と、プレーヤが操作ボタン６１を離すタイミングとの一致の度合いが高いほど、ボールＢＬの速度が増したり、相手コート内の厳しい場所にボールＢＬが飛ぶようになる。即ち、図９（Ａ）で操作ボタン６１を押した後、そのまま押し続け、キャラクタＣＨの近くにボールＢＬが来た時に、タイミング良く操作ボタン６１を離すことで、いわゆる溜め打ち動作が実現され、強くて正確なショットが相手コートに打ち返される。
【００７７】
図９（Ａ）〜図９（Ｄ）の先行入力システムの手法によれば、先行入力により指示されたモーションが切れ目なく再生されるため、選手のモーション、ボールの挙動、カメラアングル等をリアルに表現できる。即ち各ショット毎に用意された多彩で高品質なモーションを再生でき、プレーヤは、多彩なショットを使い分けてゲームを楽しむことができるようになる。
【００７８】
例えば比較例の手法として、準備動作であるテイクバック動作の開始条件が満たされると、キャラクタが自動的にテイクバック動作を開始し、その後にプレーヤがショットを指示する操作ボタンを押すと、キャラクタがボールをショットするという手法が考えられる。この手法では、テイクバックモーション（準備動作モーション）を再生した後、ショット動作が指示されると、ショットモーションを再生する。即ちテイクバックモーションとショットモーションを別々のモーションデータとして記憶して再生する。従ってテイクバックモーションとショットモーションが滑らかに繋がらなくなる場合があり、リアルで滑らかなモーション表現を実現できないおそれがある。
【００７９】
この点、本実施形態の先行入力システムによれば、テイクバック動作（準備動作）及びショット動作（捕捉動作）が１つのモーションデータの再生により実現される。従ってテイクバック動作とショット動作（フォロー動作）が滑らかに繋がるようになり、よりリアルなモーション表現を実現できる。
【００８０】
例えば比較例の手法では、ヒット位置においてボールが高ければ、通常のテイクバックモーションの再生後に高いボール用のショットモーションが再生され、ヒット位置においてボールが低ければ、通常のテイクバックモーションの再生後に低いボール用のショットモーションが再生されるようになる。即ち、ボールが高くても低くても、テイクバック動作については同じモーションが再生されるため、リアルなモーション表現を実現できない。
【００８１】
これに対して本実施形態の先行入力システムによれば、先行入力を行った時点で、ヒット位置でのボールの高さ等を予測し、高いボール用のテイクバック動作及びショット動作が一体となったモーションを選択して再生したり、低いボール用のテイクバック動作及びショット動作が一体となったモーションを選択して再生できる。従って、不自然さの少ないリアルなモーション表現を実現できる。
【００８２】
２．２  再生速度の変更
さて、以上のような先行入力システムを採用した場合、プレーヤの先行入力のタイミングに応じてボールの到達時間が変化してしまう。そして、このような到達時間の変化の全てに対応できるように多数のモーションデータを用意しようとすると、モーションデータ記憶部１７３の記憶容量を圧迫してしまうという課題がある。
【００８３】
このような課題を解決するために、本実施形態ではボールの到達時間（キャラクタの移動距離）の長さに応じてモーションの再生速度を変更する手法を採用している。即ちボールの到達時間よりもキャラクタのモーションの再生時間の方が長ければ、モーションの早送り再生を行い、短ければスロー再生を行う。このようにすれば、プレーヤの先行入力のタイミングに応じてボールの到達時間が変動しても、比較的少ないデータ量のモーションデータでこれに対応できるようになる。
【００８４】
しかしながら、このような再生速度の変更処理を行うとキャラクタの足が滑って見える現象が生じることが判明した。即ちモーションデータにおいて想定されているキャラクタの移動距離と、コート等のゲームフィールド上でのキャラクタの実際の移動距離とが異なると、足が滑って見えるようになってしまう。特に本実施形態の先行入力システムは、キャラクタのショット動作を、従来のシステムに比べて再生時間が長い１つのモーションデータを用いて再生することで、スムーズで高品質なモーション表現を実現している。従って、このような足滑り現象が目立ってしまうと、スムーズで高品質なモーション表現を実現した意味が損なわれてしまうという課題がある。
【００８５】
このような課題を解決するために、本実施形態では、キャラクタのモーションの再生期間を第１、第２の期間に区画し、第１、第２の期間での再生速度を変更度合い（変更倍率）を異ならせる手法を採用している。
【００８６】
具体的には図１０（Ａ）に示すように、モーション再生期間を、先行入力のタイミングから第１のタイミングＴＭ１までの期間である第１の期間Ｔ１と、第１のタイミングＴＭ１からキャラクタとボールのヒットイベントが発生するタイミングまでの期間である第２の期間Ｔ２に区画する。そして第１の期間Ｔ１での第１の再生速度ＲＳ１の変更度合いを、第２の期間Ｔ２での第２の再生速度ＲＳ２の変更度合いに比べて大きくする。即ち、ボールの到達時間とモーション再生時間とが一致しないため再生速度を変更しなければならない場合には、期間Ｔ１の方の再生速度を期間Ｔ２に比べて大きく変更する。そして、期間Ｔ１の方で再生速度の変更分の多くを吸収して、再生速度の変更の影響が期間Ｔ２の方になるべく及ばないようにする。
【００８７】
例えば図１１（Ａ）〜図１１（Ｄ）に先行入力におけるプレーヤの操作手順の例を示し、図１２（Ａ）〜図１４（Ｂ）に本実施形態により生成されるゲーム画像の例を示す。
【００８８】
図１２（Ａ）のゲーム画像に示すように相手キャラクタＣＣがボールＢＬをショットすると、図１１（Ａ）に示すように、プレーヤは、方向指示キー５０とトップスピンショットの操作ボタン６１を操作して、キャラクタＣＨの動作指示の先行入力を行う。
【００８９】
すると、図１１（Ｂ）に示すように、前半の期間Ｔ１では再生速度ＲＳ１でモーション再生が行われる。即ち図１２（Ａ）のゲーム画像から図１３（Ａ）のゲーム画像に至るショット動作の前半期間Ｔ１では、キャラクタのモーションの再生速度がＲＳ１に設定される。
【００９０】
一方、図１１（Ｃ）に示すように、後半の期間Ｔ２では再生速度ＲＳ２でモーション再生が行われる。即ち図１３（Ａ）のゲーム画像から図１４（Ｂ）のゲーム画像に至るショット動作の後半期間Ｔ２では、キャラクタのモーション再生速度がＲＳ２に設定される。そして図１１（Ｄ）に示すようにボールＢＬのヒットイベント（ショットイベント）が発生すると、図１４（Ｂ）のゲーム画像に示すように、ヒットされたボールＢＬが相手キャラクタＣＣのコート内に打ち返される。
【００９１】
例えば図１０（Ａ）、図１０（Ｂ）に示すタイミングＴＭ１は、足滑り防止の開始タイミングとして例えばモーション毎に設定されるタイミングである。即ち図１２（Ａ）から図１３（Ａ）に至るショット動作の前半期間においてキャラクタＣＨの足滑り現象が生じても、それほど目立たない。しかしながら、図１３（Ａ）から図１４（Ｂ）に至るショット動作の後半期間において足滑り現象が生じると、プレーヤに気づかれてしまい、仮想現実感を低下させるおそれがある。
【００９２】
即ち、一般的に、ショット動作の前半期間ではキャラクタＣＨの移動速度が速いため、足が滑っていてもそれほど目立たない。一方、ショット動作の後半期間ではキャラクタＣＨの移動速度が遅くなるため、足が滑ると目立ってしまい、プレーヤに気づかれてしまう。
【００９３】
そこで、この場合には例えば図１３（Ａ）のタイミングが足滑り防止開始タイミングＴＭ１に設定される。そして足滑り防止期間Ｔ２では、なるべく足滑りが目立たないように、期間Ｔ１に比べて再生速度の変更を最小限に抑える。このようにすることで、モーション再生速度の変更処理を行った場合に、足滑りの発生により画像の品質が低下してしまう事態を防止できる。
【００９４】
具体的には図１５や図６に示すように、モーションデータ記憶部１７３では、期間Ｔ１、Ｔ２を区間するフレームを特定するための区画フレームのデータが、各モーションに関連づけて記憶されている。例えば図１５では、モーション１（モーションファイル１）に関連づけられた区画フレームＤＦ１により、モーション１のタイミングＴＭ１が特定され、モーション２（モーションファイル２）に関連づけられた区画フレームＤＦ２により、モーション２のタイミングＴＭ１が特定される。また例えば図６の「正面ボール用ショット１」では、区画フレームである３２フレームが、足滑り防止開始フレームに設定される。そして３２フレームから、ショットタイミングのフレームである４１フレームまでは、足滑り防止期間に設定され、再生速度の変更が最小限に抑えられる。同様に、図６の「ステップからの通常ショット１」では、１５フレームが足滑り防止開始フレームに設定される。そして１５フレームからショットフレームである２４フレームまでが、足滑り防止期間に設定され、再生速度の変更が最小限に抑えられる。
【００９５】
この場合に、図１０（Ｂ）に示すように、ヒット位置へのボール（移動体）の到達時間ｔｒと、モーションの再生時間ｔｍとにより、期間Ｔ１での再生速度ＲＳ１の変更倍率である第１の変更倍率ｍ１が設定され、期間Ｔ２での再生速度ＲＳ２の変更倍率である第２の変更倍率ｍ２が設定される。即ち再生時間ｔｍの方が到達時間ｔｒよりも長い場合には、早送り再生が必要になるため、変更倍率ｍ１、ｍ２を１以上の値に設定して、モーション再生速度を速くする。一方、再生時間ｔｍの方が到達時間ｔｒよりも短い場合には、スロー再生が必要になるため、変更倍率ｍ１、ｍ２を１以下の値に設定して、モーション再生速度を遅くする。
【００９６】
具体的には図１６（Ａ）、図１６（Ｂ）に示すように、期間Ｔ２での再生速度の変更倍率ｍ２を１倍に設定したときの期間Ｔ１での再生速度の変更倍率ｍ１を求める。
【００９７】
例えば図１６（Ａ）では、再生時間ｔｍの方が到達時間ｔｒよりも長いため、早送り再生が必要になっている。従ってこの場合には、期間Ｔ１での再生速度ＲＳ１の変更倍率ｍ１を１よりも大きな値に設定して、早送りによる再生速度の変更分を、期間Ｔ１側だけで吸収し、期間Ｔ２側には及ばないようにする。このようにすれば、タイミングＴＭ１以降の期間Ｔ２では再生速度が変更されないようになるため、早送りによる足滑り現象の発生を防止できる。
【００９８】
一方、図１６（Ｂ）では、再生時間ｔｍの方が到達時間ｔｒより短いため、スロー再生が必要になっている。従ってこの場合には、変更倍率ｍ１を１よりも小さな値に設定して、スロー再生による再生速度の変更分を、期間Ｔ１側だけで吸収し、期間Ｔ２側には及ばないようにする。これにより、スロー再生による足滑り現象の発生を防止できる。
【００９９】
このように図１６（Ａ）、図１６（Ｂ）では、期間Ｔ２での変更倍率ｍ２を１倍のままにしながら、期間Ｔ１での変更倍率ｍ１だけを変更している。このようにすれば、プレーヤにとって目立つ期間である期間Ｔ２での足滑り現象は防止できるが、変更倍率ｍ１を大きくしすぎたり、小さくしすぎると、期間Ｔ１とＴ２の間の再生速度の差が目立ってしまい、プレーヤが不自然さを感じるおそれがある。
【０１００】
そこで本実施形態では図１７（Ａ）に示すように、変更倍率ｍ２を１倍に設定したときの変更倍率ｍ１が、第１のしきい値ｍｔｈよりも大きいか否かを判断する。そして大きい場合（ｍ１＞ｍｔｈ）には、変更倍率ｍ１を小さくすると共に変更倍率ｍ２を大きくする。即ち、ｍ２が１倍の時の期間Ｔ１での変更倍率をｍ１とした場合に、期間Ｔ１での変更倍率をｍ１’＜ｍ１に設定し、期間Ｔ２での変更倍率をｍ２’＞ｍ２＝１に設定する。
【０１０１】
なお、この場合にｍ１’＞ｍ２’の関係が成り立つようにする。即ち変更倍率ｍ２を１倍に設定したときの変更倍率ｍ１が、例えばｍ１＝１．４というように大きくなりすぎたとする。この場合には、例えばｍ１’＝１．３（＜ｍ１＝１．４）に設定すると共にｍ２’＝１．１（＞ｍ２＝１）に設定するというように、再生速度の変更分を、期間Ｔ１側のみならず期間Ｔ２側にも分担させて、再生速度を平均化する。
【０１０２】
また図１７（Ｂ）に示すように、変更倍率ｍ２を１倍に設定したときの変更倍率ｍ１が、第２のしきい値ｍｔｌよりも小さい場合には、変更倍率ｍ１の方を大きくすると共に変更倍率ｍ２の方を小さくする。即ちｍ２＝１の時の期間Ｔ１での変更倍率をｍ１とした場合に、期間Ｔ１での変更倍率をｍ１’＞ｍ１に設定し、期間Ｔ２での変更倍率をｍ２’＜ｍ２＝１に設定する。
【０１０３】
なお、この場合にｍ１’＜ｍ２’の関係が成り立つようにする。即ち変更倍率ｍ２を１倍に設定したときの変更倍率ｍ１が、例えばｍ１＝０．６というように小さくなりすぎたとする。この場合には、例えばｍ１’＝０．７（＞ｍ１＝０．６）に設定すると共にｍ２’＝０．９（＜ｍ２＝１）に設定するというように、再生速度の変更分を、期間Ｔ１側のみならず期間Ｔ２側にも分担させて、再生速度を平均化する。
【０１０４】
図１７（Ａ）、図１７（Ｂ）に示す手法によれば、期間Ｔ２での足滑りの度合いを小さくできると共に、期間Ｔ１とＴ２での再生速度の差が大きくなって目立ってしまう事態も防止できる。
【０１０５】
２．３  再生速度変更処理の具体例
次に、図１８、図１９のフローチャートを用いて本実施形態に再生速度変更処理の具体例について説明する。
【０１０６】
まずヒット位置（ショット位置）までのボールの到達時間ｔｒを求める（ステップＳ２１）。そして先行入力の動作指示データ、到達時間ｔｒ等に基づいてモーションを選択する（ステップＳ２２）。例えば先行入力によりトップスピン動作が指示された場合には、複数のトップスピンモーションの中から、その再生時間ｔｍの長さが到達時間ｔｒの長さに近いモーションを選択する。
【０１０７】
次に、選択されたモーションは、再生速度を変更するモーション（第１のモーション）か否かを判断する（ステップＳ２３）。例えば「スマッシュ」、「空振り」、「瞬時に打ち返すボレー」、「前方へ移動しながらのショット」などのモーション（第２のモーション）については、本実施形態では再生速度の変更処理を行わない。これらのモーションでは、再生速度の変更の必要性自体がなかったり、再生速度を変更すると不自然になるからである。
【０１０８】
例えば図２０（Ａ）、図２０（Ｂ）にスマッシュモーションのゲーム画像の例を示す。図２０（Ａ）、図２０（Ｂ）では、キャラクタＣＨが、高めに浮いたボールＢＬを相手キャラクタＣＣのコート内にスマッシュしている。このようなスマッシュにおいてモーションの再生速度を変更してしまうと、スマッシュのスピード感が損なわれるなどの不自然な事態が生じる。また、スマッシュではキャラクタＣＨの移動距離も短いため、足が滑って見える問題も生じない。また、空振りや瞬時に打ち返すボレーなどのモーションにおいては、再生速度の変更の必要性や意味がない。そこでこれらのモーション（第２のモーション）については、予め図１８のステップＳ２３で分類分けして、本実施形態の再生速度変更処理を行わないようにする。このようにすることで、これらのモーションでは無駄な再生速度変更処理が行われないようになり、処理を効率化できる。
【０１０９】
図１８のステップＳ２３において、選択されたモーションが再生速度を変更しないモーション（第２のモーション）であると判断された場合には、そのモーションの再生時間ｔｍを取得する（ステップＳ２４）。即ち、各モーションに関連づけて記憶される再生フレーム数（総フレーム数）を、再生時間ｔｍとして取得する。そして再生時間ｔｍがボールの到達時間ｔｒよりも長いか否かを判断する（ステップＳ２５）。
【０１１０】
そしてｔｍ＞ｔｒである場合には、モーションを途中から再生する（ステップＳ２６）。即ちモーションの前半部分を再生せずに、後半部分だけを再生する。なおこの場合に、途中再生前にキャラクタが行っていたモーションと、途中再生モーション（途中再生を開始するフレームのモーション）とのモーションブレンド処理を行い、モーションが滑らかに変化するように見えるようにする。
【０１１１】
一方、ｔｍ＞ｔｒではない場合には、待機モーションなどの他のモーション再生を行った後に、モーションを再生する（ステップＳ２７）。即ち、構えのモーションや普通に走っているモーションなどの他のモーションの再生を取りあえず行っておいて、残りの再生時間が到達時間ｔｒに一致したと判断された場合に、ステップＳ２２で選択されたモーションの再生を開始する。
【０１１２】
このように本実施形態では、モーションデータ記憶部１７３は、モーションの再生速度が変更される第１のモーションと、モーションの再生速度が変更されない第２のモーション（例えばスマッシュ、空振り、ボレー）のデータを記憶する。そして再生速度変更部１１３は、図１８のステップＳ２３や図１９の処理に示すように、先行入力によるキャラクタの動作指示により第１のモーション（第１のモーション群）が選択された場合に、再生速度変更処理を行う。
【０１１３】
一方、ステップＳ２３、Ｓ２４に示すように、モーション再生部１１２は、先行入力によるキャラクタの動作指示により第２のモーション（第２のモーション群）が選択された場合には、第２のモーションの再生時間を取得する。そしてステップＳ２５、Ｓ２６に示すように、再生時間ｔｍが、ヒット位置へのボールの到達時間ｔｒよりも長い場合には、第２のモーションの途中からモーション再生を開始する。一方、再生時間ｔｍが到達時間ｔｒよりも短い場合には、待機モーション等の他のモーション再生を行った後に第２のモーションの再生を開始する。
【０１１４】
このようにすれば、再生速度変更処理が必要な第１のモーションと再生速度変更処理が必要ではない第２のモーションをカテゴリ分けして処理することができるため、処理の効率化を図れる。
【０１１５】
図１８のステップＳ２３において、選択されたモーションが再生速度変更処理が必要なモーションであると判断された場合には、そのモーション（第１のモーション）の再生時間ｔｍを取得する（ステップＳ３１）。また、ショット前の足滑り防止期間Ｔ２の長さである第２の時間ｔ２を取得する（ステップＳ３２）。即ち図１０（Ａ）等の期間Ｔ２の長さ（フレーム数）を取得する。これは例えば図３の軌道データのフレーム数から求めることができる。
【０１１６】
次に、ｔｒ＜ｔ２か否かを判断する（ステップＳ３３）。そしてｔｒ＜ｔ２である場合には、ショットのインパクトに合わせて、そのままモーションを再生する（ステップＳ４２）。即ち再生速度の変更処理を行うことなくモーションを再生する。
【０１１７】
一方、ｔｒ＜ｔ２ではない場合には、到達時間ｔｒ内でのキャラクタＣＨのゲームフィールド上（コート）での移動距離ＬＣＨを取得する（ステップＳ３４）。また足滑り防止期間Ｔ２におけるキャラクタＣＨのモーションでの移動距離Ｌ２を取得する（ステップＳ３５）。これら移動距離ＬＣＨ、Ｌ２は、例えば到達時間ｔｒ、時間ｔ２や、キャラクタＣＨの移動速度や、モーションパラメータ（再生時間）などに基づいて求めることができる。
【０１１８】
次に、ＬＣＨ＜Ｌ２か否かを判断する（ステップＳ３６）。そしてＬＣＨ＜Ｌ２である場合には、ショットのインパクトに合わせて、そのままモーションを再生する（ステップＳ４２）。
【０１１９】
一方、ＬＣＨ＜Ｌ２ではない場合には、図１６（Ａ）、図１６（Ｂ）で説明したように、期間Ｔ２での再生速度の変更倍率ｍ２を１倍に設定した場合の、期間Ｔ１での再生速度の変更倍率ｍ１を求める（ステップＳ３７）。
【０１２０】
次に、ｍ１＞ｍｔｈか否かを判断する（ステップＳ３８）。即ち、変更倍率ｍ１により設定される期間Ｔ１でのモーション再生速度ＲＳ１が速すぎないか否かを判断する。そしてｍ１＞ｍｔｈである場合には、図１７（Ａ）で説明したように、変更倍率ｍ１を小さくする（遅くする）と共に、変更倍率ｍ２を大きくして（速くして）、全体の再生速度を平均化する（ステップＳ３９）。
【０１２１】
次に、ｍ１＜ｍｔｌか否かを判断する（ステップＳ４０）。即ち、変更倍率ｍ１により設定される期間Ｔ１でのモーション再生速度ＲＳ１が遅すぎないか否かを判断する。そしてｍ１＜ｍｔｌである場合には、図１７（Ｂ）で説明したように、変更倍率ｍ１を大きくする（速くする）と共に、変更倍率ｍ２を小さくして（遅くして）、全体の再生速度を平均化する（ステップＳ４１）。
【０１２２】
図１９のステップＳ３１、Ｓ３２、Ｓ３３、Ｓ４２に示すように本実施形態では、モーション再生部１１２は、ヒット位置へのボール（移動体）の到達時間ｔｒが、期間Ｔ２の長さである第２の時間ｔ２よりも短い場合には、再生速度の変更処理を行うことなくキャラクタＣＨのモーションを再生している。
【０１２３】
例えば図２１（Ａ）では、プレーヤは方向指示キー５０及び操作ボタン６１を操作して先行入力を行っている。ところが、この図２１（Ａ）の先行入力のタイミングでは、ボールＢＬは既にヒット位置ＨＰに接近しており、ボールＢＬがヒット位置ＨＰに到達するまでの時間ｔｒは非常に短くなっている。
【０１２４】
即ち、プレーヤは、ボールＢＬがヒット位置に到達する直前に先行入力を行っており、図２１（Ｂ）に示すように、足滑り防止期間Ｔ２の長さである時間ｔ２よりも、到達時間ｔｒの方が短くなっている。このような場合にはモーションの再生速度変更処理を行っても意味がなく、取りあえずのモーションを直ぐに再生する必要がある。
【０１２５】
そこで、このような場合には、例えば複数のモーションのうち最も再生時間が短いモーションを選択し、モーションの再生速度の変更処理を行うことなく、ショットのインパクトに合わせてそのままモーションを再生する。即ち、モーションの前半部分を再生せずに、到達時間ｔｒの長さに相当するモーションの後半部分だけを再生して、モーションのショットタイミングとヒット位置ＨＰへのボールＢＬの到達タイミングだけを合致させる。
【０１２６】
このようにすれば、プレーヤの操作が未熟で、先行入力のタイミングが遅すぎた場合にも、これに対応することができ、先行入力システムに好適な操作アシストを実現できる。
【０１２７】
また図１９のステップＳ３４、Ｓ３５、Ｓ３６に示すように本実施形態では、モーション再生部１１２は、到達時間ｔｒ内でのキャラクタＣＨのゲームフィールド上での移動距離ＬＣＨが、期間Ｔ２でのキャラクタＣＨのモーションでの移動距離Ｌ２よりも短い場合には、再生速度変更処理を行うことなくキャラクタＣＨのモーションを再生している。
【０１２８】
例えば図２２（Ａ）では、プレーヤの先行入力が遅れたため、ヒット位置ＨＰまでのキャラクタＣＨのゲームフィールド上での移動距離ＬＣＨが短くなっている。この移動距離ＬＣＨは、例えば先行入力を行った時点でのキャラクタＣＨの位置からヒット位置ＨＰまでの距離に相当する。
【０１２９】
一方、キャラクタＣＨの各モーションには、モーションを再生した際のキャラクタＣＨの移動距離が想定されており、図２２（Ｂ）の移動距離Ｌ２は、足滑り防止期間Ｔ２におけるキャラクタＣＨのモーションでの移動距離に相当する。
【０１３０】
例えば足滑り防止期間Ｔ２でのモーションの移動距離Ｌ２が３ｍであり、ゲームフィールド上でのキャラクタのＣＨの実際の移動距離ＬＣＨが２ｍであったとする。この場合には、期間Ｔ２でのモーションの移動距離Ｌ２の方が実際の移動距離ＬＣＨよりも長いため、モーション再生速度の変更したとしても、足の滑り現象を防止できない。
【０１３１】
そこで本実施形態では、ＬＣＨ＜Ｌ２である場合には、モーションの再生速度の変更処理を行うことなく、そのままモーションを再生するようにしている。このようにすれば、無駄な再生速度変更処理を行わなくても済むため、処理を効率化できる。
【０１３２】
また本実施形態では図１８のステップＳ２１や図２３（Ａ）に示すように、プレーヤが先行入力を行うと、ボールＢＬのショット位置であるヒット位置ＨＰを求め、ヒット位置ＨＰへのボールＢＬの到達時間ｔｒを取得する。そして、取得された到達時間ｔｒと、先行入力の動作指示データ（例えばトップスピンやスライスを指示するデータ）とに基づいて、再生すべきモーションを選択し、図１９のステップＳ３１に示すように、選択されたモーションの再生時間ｔｍを取得する。
【０１３３】
例えば先行入力システムにおいては、プレーヤの先行入力のタイミングに応じて、到達時間ｔｒの長さが変化する。即ち先行入力のタイミングが早ければ、到達時間ｔｒは長くなり、遅ければｔｒは短くなる。この場合に、このような到達時間ｔｒの全ての変化に対応したモーションを用意すると、モーションデータの量が大きくなって、記憶容量を圧迫する。
【０１３４】
この点、本実施形態では、ある程度の数のモーションだけを用意して、これらのモーションの中から、その再生時間の長さが到達時間の長さに近いモーションを選択する。具体的には図７に示すように、モーション群毎に設定された再生時間パラメータと、到達時間に基づいて、モーションを選択する。そして再生時間の長さと到達時間の長さの違いについては、再生速度の変更処理により調整する。このようにすることで、それほど大きくないデータ量のモーションデータを用いて、先行入力システムに好適な多彩なモーション表現を実現できる。
【０１３５】
また本実施形態では、図１９のステップＳ３７〜Ｓ４１や図２３（Ｂ）に示すように、取得された到達時間ｔｒと再生時間ｔｍに基づいて、期間Ｔ１、Ｔ２での変更倍率ｍ１、ｍ２を設定する。例えば到達時間ｔｒの方がモーションの再生時間ｔｍよりも短い場合には、モーションの早送り再生が行われるように、変更倍率ｍ１、ｍ２を１以上の倍率に設定する。一方、到達時間ｔｒの方がモーションの再生時間ｔｍよりも長い場合には、モーションのスロー再生が行われるように、変更倍率ｍ１、ｍ２を１以下の倍率に設定する。
【０１３６】
この際に本実施形態では、図１９のステップＳ３７〜Ｓ４１に示すように、期間Ｔ１での再生速度の変更度合いが、期間Ｔ２での再生速度の変更度合いに比べて大きくなるように、再生速度の変更処理が行われる。このようにすることで、図２４（Ａ）〜図２６（Ｂ）のゲーム画像に示すように、足の滑りが防止されたモーションの再生に成功している。
【０１３７】
即ち、例えば図２４（Ｂ）が足滑り防止開始期間のタイミングＴＭ１に設定され、図２４（Ｂ）から図２６（Ｂ）に至る一連のモーションにおいて、キャラクタＣＨの足の滑りが防止されたリアルなモーションが再生される。
【０１３８】
また図１９のステップＳ３８〜Ｓ４１に示すように、本実施形態によれば、変更倍率ｍ１が大きくなりすぎたり、小さくなりすぎる事態も防止される。従って、期間Ｔ１でのモーションと期間Ｔ２でのモーションが自然に繋がるようになり、図２４（Ａ）〜図２６（Ｂ）に示すように、足の滑りを防止しながらも自然でスムーズなモーション表現を実現できる。
【０１３９】
２．４  ヒット位置の演算処理
次にヒット位置の演算処理の具体例について説明する。例えば図９（Ａ）〜図９（Ｄ）に示すような先行入力システムを採用した場合に、図９（Ｂ）において予測されたヒット位置ＨＰが適正な位置ではないと、不都合が生じるという課題がある。図２７に、このような課題を解決できるヒット位置演算処理のフローチャートを示す。
【０１４０】
まず、プレーヤによる先行入力（ショット操作）が行われたか否かを判断する（ステップＳ１）。例えば図９（Ａ）において方向指示キー５０と操作ボタン６１（又は６２〜６４）の両方の操作が行われた場合に、先行入力が行われたと判断できる。そして、受け付けられた先行入力の操作情報を取得する（ステップＳ２）。例えば方向指示キー５０及び操作ボタン６１からの動作指示データ（方向指示データ、ショット指示データ）が取得される。
【０１４１】
次に、取得された操作情報（動作指示データ）に基づきキャラクタＣＨの位置、移動方向を取得する（ステップＳ３）。例えば先行入力が行われたタイミングでのキャラクタＣＨの位置、移動方向が取得される。この場合に移動方向は、方向指示キー５０の方向指示データ等に基づき求める。
【０１４２】
次にボールＢＬの軌道を取得する（ステップＳ４）。具体的には図３の軌道データを読み出す。そして図９（Ｂ）に示すように、キャラクタＣＨの軌道とボールＢＬの軌道によりヒット位置ＨＰ（ショット位置）を求める（ステップＳ５）。例えばボールＢＬの軌道データの中から、ヒット位置ＨＰに対応するボール位置（軌道ポイント）を選択する。即ち先行入力のタイミングにおいて既に計算されている軌道データのボール位置（移動体位置）の中から、交点に対応するボール位置（交点に最も近いボール位置）を選択することで、ヒット位置ＨＰを求める。
【０１４３】
次にヒット位置ＨＰとキャラクタＣＨの間に障害物が無いか否かを判定する（ステップＳ６）。そして障害物が無い場合には、ヒット位置ＨＰでのボールＢＬの高さが適正な高さ範囲内か否かを判断する（ステップＳ７）。そして適正な高さ範囲内である場合には、キャラクタＣＨがボールＢＬの到達時間ｔｒ内にヒット位置ＨＰ（ショット位置）に到達しているか否かを判断する（ステップＳ８）。
【０１４４】
そしてステップＳ６、Ｓ７、Ｓ８に示す各ショット条件（捕捉条件）の判定が「ＮＯ」であった場合には、求めたヒット位置の前後で最適なヒット位置を求める再演算処理を行う（ステップＳ９）。即ちヒット位置の再演算処理を行ってヒット位置を移動する。そして、ヒット条件の判定処理及びヒット位置の移動処理であるステップＳ６〜Ｓ９の処理を、ヒット位置がショット条件（捕捉条件）を満たす位置になるまで繰り返す。
【０１４５】
一方、ステップＳ６、Ｓ７、Ｓ８の各ショット条件の判定が全て「ＹＥＳ」であった場合には、先行入力の動作指示データと、最終的に求められたヒット位置等に基づきモーションデータを選択し（ステップＳ１０）、選択されたモーションデータを再生する（ステップＳ１１）。具体的には、例えば最終的に求められたヒット位置ＨＰに基づきボールＢＬの到達時間ｔｒを求める。そしてプレーヤが先行入力により選択したショットのモーションの中から、到達時間ｔｒ内に再生することが可能なモーションを選択する。例えば到達時間ｔｒとモーションの再生時間の比較処理を行って、最適なモーションを選択し、必要であればモーションの再生速度の変更処理を行う。
【０１４６】
図２７のステップＳ６、Ｓ７、Ｓ８に示すように、本実施形態では、ヒット位置が、キャラクタによる移動体のショット条件（捕捉条件）を満たす位置であるか否かを判定する。そしてステップＳ９に示すように、ヒット位置がショット条件（捕捉条件）を満たす位置ではなかった場合には、ヒット位置の再演算処理を行う。その後、ステップＳ６に戻って、再演算処理後のヒット位置がショット条件を満たすか否かを再度判断し、ショット条件が満たされるまで処理を繰り返す。即ち、ヒット位置を移動する処理を、ヒット位置がショット条件を満たす位置になるまで繰り返す。つまり、ショット条件が満たされるまで、ボールの軌道上においてヒット位置を移動する。
【０１４７】
このように、最終的なヒット位置を繰り返し処理により求めれば、プレーヤの先行入力により求められた初期のヒット位置を、少しずつ移動して最終的なヒット位置を取得できるようになる。従って、先行入力についてのプレーヤの意思をある程度反映させたヒット位置の再演算処理（補正処理）を実現できる。また再演算処理においてボールの軌道上でヒット位置を移動するようにすれば、再演算処理により得られたヒット位置が、キャラクタとボールのヒットイベント（ショットイベント）が発生する場所として保証できるようになる。
【０１４８】
そしてヒット位置がショット条件を満たす位置になったと判断すると、ステップＳ１０、Ｓ１１に示すように、最終的に得られたヒット位置等に基づいてモーションデータを選択して再生する。
【０１４９】
このようにすれば、図９（Ｂ）で予測したヒット位置ＨＰが、ショット条件を満たす位置ではなかった場合に、このヒット位置を修正し、適正なヒット位置でキャラクタＣＨがボールＢＬをショットできるようになる。即ち先行入力システムでは、予測されたヒット位置ＨＰがボールＢＬのショットに適さない位置になってしまう場合があるが、本実施形態の手法によれば、このような場合にもボールＢＬの適正なショットが可能になる。従って先行入力システムに好適なショット処理を実現でき、リアルで高品質なモーション再生と、適正なショット処理とを両立できる。
【０１５０】
３．ハードウェア構成
図２８（Ａ）に本実施形態を実現できるハードウェアの構成例を示す。
【０１５１】
ＣＰＵ９００（メインプロセッサ）は、複数のＣＰＵコア１、ＣＰＵコア２、ＣＰＵコア３を含むマルチコアプロセッサである。またＣＰＵ９００は図示しないキャッシュメモリを含む。ＣＰＵコア１、２、３の各々にはベクタ演算器等が設けられている。そしてＣＰＵコア１、２、３の各々は、例えば２つのＨ／Ｗスレッド処理をコンテクストスイッチをすることなしに並列実行でき、マルチスレッド機能がハードウェアでサポートされている。そして３つのＣＰＵコア１、２、３の合計で、６つのＨ／Ｗスレッド処理を並列実行できる。
【０１５２】
ＧＰＵ９１０（描画プロセッサ）は、頂点処理やピクセル処理を行って、描画（レンダリング）処理を実現する。具体的には、シェーダプログラムに従って、頂点データの作成・変更やピクセル（フラグメント）の描画色の決定を行う。１フレーム分の画像がＶＲＡＭ９２０（フレームバッファ）に書き込まれると、その画像はビデオ出力を介してＴＶなどのディスプレイに表示される。なおメインメモリ９３０はＣＰＵ９００やＧＰＵ９１０のワークメモリとして機能する。またＧＰＵ９１０では、複数の頂点スレッド、複数のピクセルスレッドが並列実行され、描画処理のマルチスレッド機能がハードウェアでサポートされている。またＧＰＵ９１０にはハードウェアのテッセレータも備えられている。またＧＰＵ９１０は、頂点シェーダとピクセルシェーダとがハードウェア的に区別されていないユニファイド・シェーダ・タイプとなっている。
【０１５３】
ブリッジ回路９４０（サウスブリッジ）は、システム内部の情報流通を制御する回路であり、ＵＳＢコントローラ（シリアルインターフェース）、ネットワークの通信コントローラ、ＩＤＥコントローラ、或いはＤＭＡコントローラなどのコントローラを内蔵する。そしてこのブリッジ回路９４０により、ゲームコントローラ９４２、メモリーカード９４４、ＨＤＤ９４６、ＤＶＤドライブ９４８との間のインターフェース機能が実現される。
【０１５４】
なお本実施形態を実現できるハードウェア構成は図２８（Ａ）に限定されず、例えば図２８（Ｂ）のような構成であってもよい。
【０１５５】
図２８（Ｂ）ではＣＰＵ９０２が、プロセッサエレメントＰＰと８つのプロセッサエレメントＰＥ１〜ＰＥ８を含む。プロセッサエレメントＰＰは汎用的なプロセッサコアであり、プロセッサエレメントＰＥ１〜ＰＥ８は比較的シンプルな構成のプロセッサコアである。そしてプロセッサエレメントＰＰとプロセッサエレメントＰＥ１〜ＰＥ８のアーキテクチャは異なっており、プロセッサエレメントＰＥ１〜ＰＥ８は、複数のデータに対して１命令で同じ処理を同時にできるＳＩＭＤ型のプロセッサコアとなっている。これによりストリーミング処理などのマルチメディア処理を効率的に実行できる。プロセッサエレメントＰＰは、２つのＨ／Ｗスレッド処理を並列実行でき、プロセッサエレメントＰＥ１〜ＰＥ８の各々は、１つのＨ／Ｗスレッド処理を実行できる。従って、ＣＰＵ９０２では、合計で１０個のＨ／Ｗスレッド処理の並列実行が可能になる。
【０１５６】
図２８（Ｂ）では、ＧＰＵ９１２とＣＰＵ９０２の連携が密になっており、ＧＰＵ９１２は、ＣＰＵ９０２側のメインメモリ９３０に直接にレンダリング処理を行うことができる。また例えばＣＰＵ９０２がジオメトリ処理を行って、頂点データを転送したり、ＧＰＵ９１２からＣＰＵ９０２にデータを戻すことも容易にできる。またＣＰＵ９０２が、レンダリングのプリプロセッシング処理やポストプロセッシング処理を行うことも容易であり、テッセレーション（平面分割）やドットフィルをＣＰＵ９０２が実行できる。例えば抽象度の高い処理はＣＰＵ９０２が行い、抽象度が低い細かな処理はＧＰＵ９１２が行うというような役割分担が可能である。
【０１５７】
なお本実施形態の各部の処理をハードウェアとプログラムにより実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアであるプロセッサ（ＣＰＵ、ＧＰＵ）に処理を指示すると共に、必要であればデータを渡す。そして、プロセッサは、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１５８】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（移動体、第１、第２、第３の座標等）と共に記載された用語（ボール、Ｘ、Ｙ、Ｚ座標等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１５９】
また、先行入力処理、モーション再生処理、再生速度の変更処理、ヒット位置の演算処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明はテニスゲーム以外の種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１６０】
【図１】本実施形態の画像生成システムのブロック図の例。
【図２】キャラクタやボールのオブジェクトデータの例。
【図３】ボールの軌道データの例。
【図４】モデルオブジェクト、スケルトン構造の例。
【図５】骨の親子関係の説明図。
【図６】キャラクタのモーションデータの例。
【図７】モーションパラメータの例。
【図８】テニスゲームにおけるオブジェクト空間の設定例。
【図９】図９（Ａ）〜図９（Ｄ）は先行入力システムの説明図。
【図１０】図１０（Ａ）、図１０（Ｂ）は本実施形態のモーション再生速度変更手法の説明図。
【図１１】図１１（Ａ）〜図１１（Ｄ）は本実施形態のモーション再生速度変更手法の説明図。
【図１２】図１２（Ａ）、図１２（Ｂ）は本実施形態により生成されるゲーム画像例。
【図１３】図１３（Ａ）、図１３（Ｂ）は本実施形態により生成されるゲーム画像例。
【図１４】図１４（Ａ）、図１４（Ｂ）は本実施形態により生成されるゲーム画像例。
【図１５】区画フレームデータを用いる手法の説明図。
【図１６】図１６（Ａ）、図１６（Ｂ）はモーションの再生速度変更処理の具体例の説明図。
【図１７】図１７（Ａ）、図１７（Ｂ）はモーションの再生速度変更処理の具体例の説明図。
【図１８】本実施形態のモーション再生速度変更処理を説明するフローチャート。
【図１９】本実施形態のモーション再生速度変更処理を説明するフローチャート。
【図２０】図２０（Ａ）、図２０（Ｂ）は本実施形態により生成されるゲーム画像例。
【図２１】図２１（Ａ）、図２１（Ｂ）はモーションの再生速度変更処理を行うことなくモーションを再生する手法の説明図。
【図２２】図２２（Ａ）、図２２（Ｂ）はモーションの再生速度変更処理を行うことなくモーションを再生する手法の説明図。
【図２３】図２３（Ａ）、図２３（Ｂ）は到達時間と再生時間に基づき変更倍率を設定する手法の説明図。
【図２４】図２４（Ａ）、図２４（Ｂ）は本実施形態により生成されるゲーム画像例。
【図２５】図２５（Ａ）、図２５（Ｂ）は本実施形態により生成されるゲーム画像例。
【図２６】図２６（Ａ）、図２６（Ｂ）は本実施形態により生成されるゲーム画像例。
【図２７】本実施形態のヒット位置演算処理を説明するフローチャート。
【図２８】図２８（Ａ）、図２８（Ｂ）はハードウェア構成例。
【符号の説明】
【０１６１】
１００  処理部、１０２  入力受け付け部、１０４  オブジェクト空間設定部、
１０６  ゲーム演算部、１０８  移動体制御部、１１０  キャラクタ制御部、
１１２  モーション再生部、１１３  再生速度変更部、１１４  ヒット位置演算部、
１１６  判定部、１１８  仮想カメラ制御部、１２０  画像生成部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７１  形状データ記憶部、
１７２  オブジェクトデータ記憶部、１７３  モーションデータ記憶部、
１７４  モーションパラメータ記憶部、１７５  軌道データ記憶部、
１７６  ヒット位置記憶部、１７７  描画バッファ、１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９４  補助記憶装置、１９６  通信部
【図１】
2008307166.tif 000003
【図２】
2008307166.tif 000004
【図３】
2008307166.tif 000005
【図４】
2008307166.tif 000006
【図５】
2008307166.tif 000007
【図６】
2008307166.tif 000008
【図７】
2008307166.tif 000009
【図８】
2008307166.tif 000010
【図９】
2008307166.tif 000011
【図１０】
2008307166.tif 000012
【図１１】
2008307166.tif 000013
【図１２】
2008307166.tif 000014
【図１３】
2008307166.tif 000015
【図１４】
2008307166.tif 000016
【図１５】
2008307166.tif 000017
【図１６】
2008307166.tif 000018
【図１７】
2008307166.tif 000019
【図１８】
2008307166.tif 000020
【図１９】
2008307166.tif 000021
【図２０】
2008307166.tif 000022
【図２１】
2008307166.tif 000023
【図２２】
2008307166.tif 000024
【図２３】
2008307166.tif 000025
【図２４】
2008307166.tif 000026
【図２５】
2008307166.tif 000027
【図２６】
2008307166.tif 000028
【図２７】
2008307166.tif 000029
【図２８】
2008307166.tif 000030