(57)【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
現在選択すべきモーションデータとモーションスクリプトの変更条件とが記述されるモーションスクリプトに基づいて、モデルオブジェクトのモーションデータを選択し、モデルオブジェクトのモーションを制御する、並列動作可能な第１及び第２のモーション制御手段と、
前記第１のモーション制御手段により選択されたモーションデータと前記第２のモーション制御手段により選択されたモーションデータとをブレンドし、ブレンドにより得られたモーションデータに基づいて、モデルオブジェクトにモーションを行わせるモーションブレンド手段と、
モデルオブジェクトを含む複数のオブジェクトが配置されるオブジェクト空間内の所与の視点での画像を生成する手段とを含み、
第１のモーションスクリプト群については、前記第１のモーション制御手段に割り当てられ、
第２のモーションスクリプト群については、前記第２のモーション制御手段に割り当てられ、
第１のモーションスクリプト群のモーションスクリプトに、第２のモーションスクリプト群のモーションスクリプトへの変更条件が記述され、
第２のモーションスクリプト群のモーションスクリプトへの変更条件が満たされた場合に、前記第１のモーション制御手段が、第１のモーションスクリプト群のモーションスクリプトに基づくモーション制御を続行し、前記第２のモーション制御手段が、変更先のモーションスクリプトに基づくモーション制御を開始し、変更先のモーションスクリプトに記述された変更条件が満たされたか否かを判断することを特徴とする画像生成システム。
【請求項２】
請求項１において、
モーションスクリプトの前記変更条件が、操作手段を用いた操作入力とモデルオブジェクトの状態情報に基づいて判断されることを特徴とする画像生成システム。
【請求項３】
請求項１又は２において、
移動指示の操作入力が変更条件となる移動モーションスクリプト群については、前記第１のモーション制御手段に割り当てられ、
攻撃指示の操作入力が変更条件となる攻撃モーションスクリプト群については、前記第２のモーション制御手段に割り当てられ、
前記第１のモーション制御手段が、
移動モーションスクリプトに基づいて、該移動モーションスクリプトに対応する移動モーションデータを選択し、
前記第２のモーション制御手段が、
攻撃モーションスクリプトに基づいて、該攻撃モーションスクリプトに対応する攻撃モーションデータを選択し、
前記モーションブレンド手段が、
前記第１のモーション制御手段により選択された移動モーションデータと前記第２のモーション制御手段により選択された攻撃モーションデータとをブレンドすることを特徴とする画像生成システム。
【請求項４】
現在選択すべきモーションデータとモーションスクリプトの変更条件とが記述されるモーションスクリプトに基づいて、モデルオブジェクトのモーションデータを選択し、モデルオブジェクトのモーションを制御する、並列動作可能な第１及び第２のモーション制御手段と、
前記第１のモーション制御手段により選択されたモーションデータと前記第２のモーション制御手段により選択されたモーションデータとをブレンドし、ブレンドにより得られたモーションデータに基づいて、モデルオブジェクトにモーションを行わせるモーションブレンド手段と、
モデルオブジェクトを含む複数のオブジェクトが配置されるオブジェクト空間内の所与の視点での画像を生成する手段としてコンピュータを機能させ、
第１のモーションスクリプト群については、前記第１のモーション制御手段に割り当てられ、
第２のモーションスクリプト群については、前記第２のモーション制御手段に割り当てられ、
第１のモーションスクリプト群のモーションスクリプトに、第２のモーションスクリプト群のモーションスクリプトへの変更条件が記述され、
第２のモーションスクリプト群のモーションスクリプトへの変更条件が満たされた場合に、前記第１のモーション制御手段が、第１のモーションスクリプト群のモーションスクリプトに基づくモーション制御を続行し、前記第２のモーション制御手段が、変更先のモーションスクリプトに基づくモーション制御を開始し、変更先のモーションスクリプトに記述された変更条件が満たされたか否かを判断することを特徴とするプログラム。
【請求項５】
請求項４において、
モーションスクリプトの前記変更条件が、操作手段を用いた操作入力とモデルオブジェクトの状態情報に基づいて判断されることを特徴とするプログラム。
【請求項６】
請求項４又は５において、
移動指示の操作入力が変更条件となる移動モーションスクリプト群については、前記第１のモーション制御手段に割り当てられ、
攻撃指示の操作入力が変更条件となる攻撃モーションスクリプト群については、前記第２のモーション制御手段に割り当てられ、
前記第１のモーション制御手段が、
移動モーションスクリプトに基づいて、該移動モーションスクリプトに対応する移動モーションデータを選択し、
前記第２のモーション制御手段が、
攻撃モーションスクリプトに基づいて、該攻撃モーションスクリプトに対応する攻撃モーションデータを選択し、
前記モーションブレンド手段が、
前記第１のモーション制御手段により選択された移動モーションデータと前記第２のモーション制御手段により選択された攻撃モーションデータとをブレンドすることを特徴とするプログラム。
【請求項７】
コンピュータ読み取り可能な情報記憶媒体であって、請求項４乃至６のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラ（操作手段）を用いて自キャラクタ（モデルオブジェクト）を操作し、相手プレーヤやコンピュータが操作する敵キャラクタと対戦することでゲームを楽しむ。
【０００３】
さて、このような格闘ゲームでは、キャラクタのリアルで多様なモーションを表現できることが望ましい。例えば、キャラクタが立ち止まった姿勢のままで攻撃を行うというモーション表現のみならず、走りながら攻撃したり、ジャンプしながら攻撃するなどのモーション表現を実現できることが望ましい。また、キャラクタの刀（剣）が敵キャラクタにヒットした場合に、刀がヒットしたことをプレーヤに効果的に伝える、いわゆる「切りごたえ」の表現についても実現できることが望ましい。
【０００４】
しかしながら、このようなリアルで多様なモーション表現を実現しようとすると、モーションデータのデータ量が増えてしまったり、モーション制御の処理負荷が重くなってしまうという課題がある。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ないデータ量で多様なモーション表現を実現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行う画像生成システムであって、モデルオブジェクトのスケルトンの形状を特定するモーションデータを、モデルオブジェクトのスケルトンを構成する各骨毎に任意に設定される個別ブレンド率に基づきブレンドし、ブレンドにより得られたモーションデータに基づいて、モデルオブジェクトにモーションを行わせるモーションブレンド手段と、
モデルオブジェクトを含む複数のオブジェクトが配置されるオブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【０００７】
本発明によれば、スケルトンを構成する各骨毎に任意にその値を設定できる個別ブレンド率に基づき、モーションブレンドを行うことができる。従って、例えば、第１、第２のモーションデータをブレンドする場合に、スケルトンの第Ｍの骨では第２のモーションデータの個別ブレンド率を高くし、第Ｎの骨では第２のモーションデータの個別ブレンド率を低くするなどの設定が可能になる。これにより、モデルオブジェクトの各部分毎に異なるブレンド率でモーションブレンドを行うことが可能になり、少ないデータ量のモーションデータで多様なモーション表現を実現できる。
【０００８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、モデルオブジェクトのスケルトンが、スケルトンの端部に位置する第Ｋの骨、その隣の第Ｋ＋１の骨、その隣の第Ｋ＋２の骨・・・・第Ｌの骨を含む場合において、第Ｋの骨から第Ｌの骨に行くしたがって、第１のモーションデータの個別ブレンド率が徐々に増加し、第２のモーションデータの個別ブレンド率が徐々に減少するように設定されていることを特徴とする。
【０００９】
このようにすれば、端部に位置する第Ｋの骨については、第１のモーションデータよりも第２のモーションデータの影響を強くし、第Ｌの骨（例えば端部ではない中央部に位置する骨）については、第２のモーションデータよりも第１のモーションデータの影響を強くするという設定が可能になる。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記モーションブレンド手段が、モデルオブジェクトのスケルトンの骨に対して一律に設定される全体ブレンド率と、各骨毎に任意に設定される個別ブレンド率とに基づいて、モーションデータをブレンドすることを特徴とする。
【００１１】
このようにすれば、全体ブレンド率を変化させることで、個別ブレンド率によるモーションブレンドの影響を強めたり、弱めたりすることが可能になり、更に多様なモーション表現を実現できる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、全体ブレンド率を時間経過に伴い変化させることを特徴とする。
【００１３】
この場合、時間経過は、フレーム進行（フレーム更新の毎にカウントアップされるカウンタ）により判断してもよいし、実時間（タイマー）や仮想ゲーム時間に基づいて判断してもよい。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、現在選択すべきモーションデータとモーションスクリプトの変更条件とが記述されるモーションスクリプトに基づいて、モデルオブジェクトのモーションデータを選択し、モデルオブジェクトのモーションを制御する複数のモーション制御手段を含み（該手段としてコンピュータを機能させるためのプログラム又は該プログラムを記憶した情報記憶媒体であって）、前記モーションブレンド手段が、前記複数のモーション制御手段により選択されたモーションデータをブレンドすることを特徴とする。
【００１５】
また本発明は、画像生成を行う画像生成システムであって、現在選択すべきモーションデータとモーションスクリプトの変更条件とが記述されるモーションスクリプトに基づいて、モデルオブジェクトのモーションデータを選択し、モデルオブジェクトのモーションを制御する複数のモーション制御手段と、前記複数のモーション制御手段により選択されたモーションデータをブレンドし、ブレンドにより得られたモーションデータに基づいて、モデルオブジェクトにモーションを行わせるモーションブレンド手段と、モデルオブジェクトを含む複数のオブジェクトが配置されるオブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【００１６】
本発明によれば、並列動作可能な複数のモーション制御手段を動作させ、これらの複数のモーション制御手段により選択された複数のモーションデータをモーションブレンドできるようになる。従って、例えば、第１のモーション制御部の第１のモーションスクリプトと、第２のモーション制御部の第２のモーションスクリプトとを合成したようなモーションスクリプトによるモーション制御を実現できる。これにより、少ないデータ量のモーションスクリプトで多様なモーション表現を実現できる。
【００１７】
なお、第１、第２のモーション制御部により選択されるモーションデータは、複数のモーションデータをブレンドしたものであってもよい。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、モーションスクリプトの前記変更条件が、操作手段を用いた操作入力とモデルオブジェクトの状態情報に基づいて判断されることを特徴とする。
【００１９】
ここでモデルオブジェクトの状態情報とは、例えば、モデルオブジェクトが行っているモーションに関する情報や、モデルオブジェクトのステータスパラメータ（体力値、攻撃力又は守備力等）などである。
【００２０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、第１のモーションスクリプト群については、前記複数のモーション制御手段の第１のモーション制御手段に割り当てられ、第２のモーションスクリプト群については、前記複数のモーション制御手段の第２のモーション制御手段に割り当てられることを特徴とする。
【００２１】
このようにすれば、第１のモーションスクリプト群のモーションスクリプトで選択されるモーションデータと、第２のモーションスクリプト群のモーションスクリプトで選択されるモーションデータとをモーションブレンドして、再生することが可能になる。
【００２２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、第１のモーションスクリプト群のモーションスクリプトに、第２のモーションスクリプト群のモーションスクリプトへの変更条件が記述され、第２のモーションスクリプト群のモーションスクリプトへの変更条件が満たされ、前記第２のモーション制御手段が変更先のモーションスクリプト（第２のモーションスクリプト群のモーションスクリプト）に基づくモーション制御を開始した場合にも、前記第１のモーション制御手段が、第１のモーションスクリプト群のモーションスクリプトに基づくモーション制御を続行することを特徴とする。
【００２３】
このようにすれば、第２のモーション制御部が動作を開始した場合にも、その動作と並列して第１のモーション制御部も動作するようになる。従って、例えば、第１のモーション制御部の第１のモーションの再生後、第１、第２のモーション制御部の第１、第２のモーションのブレンドモーションを再生し、その後に、第１のモーション制御部の第１のモーションの再生に戻るというようなモーション表現が可能になる。
【００２４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、移動指示の操作入力が変更条件となる移動モーションスクリプト群については、前記複数のモーション制御手段の第１のモーション制御手段に割り当てられ、攻撃指示の操作入力が変更条件となる攻撃モーションスクリプト群については、前記複数のモーション制御手段の第２のモーション制御手段に割り当てられ、前記第１のモーション制御手段が、移動モーションスクリプトに基づいて、該移動モーションスクリプトに対応する移動モーションデータを選択し、前記第２のモーション制御手段が、攻撃モーションスクリプトに基づいて、該攻撃モーションスクリプトに対応する攻撃モーションデータを選択し、前記モーションブレンド手段が、前記第１のモーション制御手段により選択された移動モーションデータと前記第２のモーション制御手段により選択された攻撃モーションデータとをブレンドすることを特徴とする。
【００２５】
このようにすれば、第１のモーション制御部により制御される移動モーションと、第２のモーション制御部により制御される攻撃モーションのブレンドが可能になり、モデルオブジェクトが移動しながら攻撃するというモーション表現を少ないデータ量で実現できる。
【００２６】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【００２７】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２８】
１．構成
図１に、本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外のブロックについては任意の構成要素とすることができる。
【００２９】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、センサー或いは筺体などのハードウェアにより実現できる。
【００３０】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３１】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の各手段（特に処理部１００に含まれるブロック）としてコンピュータを機能させるためのプログラム（各手段をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【００３２】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データなどを含ませることができる。
【００３３】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３４】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００３５】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００３６】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３７】
なお本発明（本実施形態）の各手段としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００３８】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。
【００３９】
ここで、処理部１００が行う処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００４０】
処理部１００は、移動処理部１１０、モーション処理部１１２、画像生成部１２０、音生成部１３０を含む。なお、処理部１００は、これらの全ての機能ブロックを含む必要はない。
【００４１】
ここで、移動処理部１１０は、モデルオブジェクト（キャラクタ、ロボット、車又は戦車等の移動オブジェクト）の移動を制御する処理を行うものである。
【００４２】
より具体的には、移動処理部１１０は、モデルオブジェクトをオブジェクト空間（ゲーム空間）で移動（並進移動、回転移動）させる処理を行う。そして、このモデルオブジェクトの移動処理は、操作部１６０からの操作データ（プレーヤからの入力データ）や前のフレーム（１／６０秒、１／３０秒等）でのモデルオブジェクトの位置、回転角度（方向）等に基づいて、現在のフレーム（インター）でのモデルオブジェクトの位置、回転角度を求めることで実現できる。例えば（ｋ−１）フレームでのモデルオブジェクトの位置、回転角度をＰk-1、θk-1とし、モデルオブジェクトの１フレームでの位置変化量（速度）、回転変化量（回転速度）を△Ｐ、△θとする。するとｋフレームでのモデルオブジェクトの位置Ｐk、回転角度θkは例えば下式（１）、（２）のように求められる。
【００４３】
Ｐk＝Ｐk-1＋△Ｐ              （１）
θk＝θk-1＋△θ              （２）
モーション処理部１１２は、モデルオブジェクト（キャラクタ）にモーション（アニメーション）を行わせる処理（モーション再生、モーション生成）を行う。そして、このモデルオブジェクトのモーション処理は、モデルオブジェクトのモーションを、モーションデータ記憶部１７６に記憶されているモーションデータに基づいて再生することで実現できる。
【００４４】
より具体的には、モーションデータ記憶部１７６には、モデルオブジェクトのスケルトンを構成する各骨（モデルオブジェクトを構成するパーツオブジェクト、関節、モーション骨）の位置又は回転角度（親の骨に対する子の骨の３軸周りの回転角度）等を含むモーションデータが記憶されている。モーション処理部１１２は、このモーションデータを読み出し、このモーションデータに基づいてモデルオブジェクトのスケルトンを構成する各骨（パーツオブジェクト）を動かすことで（スケルトン形状を変形させることで）、モデルオブジェクトのモーションを再生する。
【００４５】
なお、モーションデータ記憶部１７６に記憶されるモーションデータは、現実世界の人にセンサをつけてモーションキャプチャを行うことで作成したものであることが望ましいが、モーションデータを、物理シミュレーション（物理計算を利用したシミュレーション。擬似的な物理計算でもよい）やモーションブレンドなどによりリアルタイムに生成してもよい。
【００４６】
また、少ないモーションデータ量でリアルなモーションを再生するために、インバース・キネマティクス等を用いてモーション再生を行ってもよい。
【００４７】
さて本実施形態では、モーション処理部１１２が、第１のモーション制御部１１４（メイン側モーション制御部）と、第２のモーション制御部１１６（サブ側モーション制御部）と、モーションブレンド部１１８を含む。なお、モーション制御部を３つ以上設ける構成としてもよい。
【００４８】
ここで、第１、第２のモーション制御部１１４、１１６は、モーションスクリプト記憶部１７８に記憶されるモーションスクリプト（モーション制御の処理手順が記述されたスクリプト）に基づいて、モデルオブジェクトのモーションデータを選択する。
【００４９】
ここで、モーションスクリプトには、そのモーションスクリプトが割り当てられているモーション制御部が現在選択すべきモーションデータと、モーションスクリプトの変更条件（モーション制御部に割り当てるモーションスクリプトの変更条件。操作入力、モデルオブジェクトの状態情報、或いはゲーム状況に基づき判断される変更条件）とが少なくとも記述されている。
【００５０】
例えば、第１のモーション制御部１１４に割り当てられているモーションスクリプトが前移動（前方向への移動）モーションスクリプトである場合には、第１のモーション制御部１１４は、前移動モーションデータを選択してモーション再生を行う。そして、前移動モーションスクリプトの中に「モデルオブジェクトが前移動の状態で、操作部１６０により縦切り攻撃の指示が入力された場合には、縦切りモーションスクリプトに変更（移行）する」という変更条件（設定条件）が記述されており、この変更条件が満たされた場合には、第２のモーション制御部１１６に割り当てるモーションスクリプトが縦切りモーションスクリプトに変更（設定）される。なお、この場合に、第１のモーション制御部１１４への前移動モーションスクリプトの割り当ては維持される。そして、この縦切りモーションスクリプトが割り当てられた第２のモーション制御部１１６は、縦切りモーションデータを用いてモーション再生を行う。
【００５１】
なお、第１のモーション制御部１１４が、モーションスクリプトに記述された変更条件により、第１のモーション制御部１１４に割り当てるモーションスクリプトを変更してもよいし、第２のモーション制御部１１６に割り当てるモーションスクリプトを変更してもよい。或いは、第２のモーション制御部１１６が、モーションスクリプトに記述された変更条件により、第１のモーション制御部１１４に割り当てるモーションスクリプトを変更してもよいし、第２のモーション制御部１１６に割り当てるモーションスクリプトを変更してもよい。
【００５２】
また、第１のモーション制御部１１４は、第１のモーションスクリプト群（例えば移動関係のモーションスクリプト群）の中から、使用すべきモーションスクリプトを選択し、第２のモーション制御部１１６は、第２のモーションスクリプト群（例えば攻撃関係のモーションスクリプト群）の中から、使用すべきモーションスクリプトを選択することが望ましい。このようにすることで、モーションスクリプトの管理が容易化される。
【００５３】
モーションブレンド部１１８は、モーションデータをブレンドする処理（モーションブレンド処理）を行う。
【００５４】
より具体的には、モデルオブジェクトのスケルトン形状（スケルトン形状の変化の仕方）を特定するモーションデータ（各フレーム番号でのモーションデータ）を、モデルオブジェクトのスケルトンを構成する各骨（アーク、関節、パーツオブジェクト）毎に任意に設定される個別ブレンド率（個別合成率）に基づきブレンド（合成）する。また、モデルオブジェクトのスケルトンの全ての骨に対して一律に設定される全体ブレンド率に基づいてモーションデータをブレンドする。この場合、例えば、個別ブレンド率と全体ブレンド率の乗算により得られるブレンド率に基づいて、モーションデータをブレンドすることが望ましい。
【００５５】
また、モーションブレンド部１１８のブレンド対象となるモーションデータは、第１、第２のモーション制御部１１４、１１６により選択される。この場合に、モーションブレンド部１１８のブレンド処理により生成されたモーションデータを、第１、第２のモーション制御部１１４、１１６が選択し、その選択されたモーションデータをモーションブレンド部１１８が更にブレンドするようにしてもよい。
【００５６】
また、モーションブレンド部１１８は、全体ブレンド率や個別ブレンド率を設定したり変化させる処理も行う。この場合、全体ブレンド率は時間経過（フレーム進行、仮想ゲーム時間の経過或いは現実時間の経過等）に応じて変化させることが望ましい。
【００５７】
また、モーションブレンド部１１８は、所与のイベントが発生したことを条件に、全体ブレンド率及び個別ブレンド率の両方に基づくブレンド処理を開始する。そして、所与の期間（ヒット期間及びモーション戻し期間）が経過すると、ブレンド処理を終了し、元の基本モーション（第１のモーション）の再生を行う。
【００５８】
ここで、イベントとは、ゲーム空間（オブジェクト空間）で発生する事象のことであり、このようなイベントとしては例えば、モデルオブジェクト（武器、手或いは足などのモデルオブジェクトの一部）と他のオブジェクト（敵キャラクタ等）とのヒットイベント（切りイベント）や、モデルオブジェクトと他のオブジェクトとの接触イベントや、モデルオブジェクトが所与のエリア（モデルオブジェクトの一部の動きを拘束するエリア）に侵入するイベントや、或いはモデルオブジェクトが物（球、槍等）を投げるイベントなどを考えることができる。
【００５９】
そして、本実施形態では、このイベントが発生すると、そのイベントの影響を最も及ばすべき骨（そのイベントに最も関係する骨）についての個別ブレンド率が、第１のモーションデータ（イベント発生前から再生されているモーションデータ）よりも第２のモーションデータ（イベント発生後に第１のモーションデータにブレンドされるモーションデータ）の方が多くブレンドされるブレンド率に設定されている。これにより、イベントが発生した場合に、そのイベントの影響を及ばすべき骨を、第２のモーションデータに強く依存させて動かすことが可能になる。
【００６０】
なお、モーションブレンド部１１８のブレンド対象となるモーションデータは、互いに全く異なるデータ内容のモーションデータ（スケルトン形状の動きが互いに全く異なるモーションデータ）であってもよいし、同一のデータ内容のモーションデータ（スケルトン形状の動きが同一のモーションデータ）であってもよい。より具体的には、例えば第１のモーションデータと、その第１のモーションデータの再生速度及び再生フレーム番号（再生開始フレーム）を異ならせた第２のモーションデータ（データ内容は第１のモーションデータと同一）とをブレンドするようにする。このようにすることで、スロー再生や早送り再生を表現できる。そして、所与のイベントが発生したことを条件に、これらの第１、第２のモーションデータをブレンドするようにすれば、イベント発生後に、モデルオブジェクトのモーションがスロー再生又は早送り再生になる画像を生成できる。
【００６１】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて画像処理を行い、ゲーム画像を生成し、表示部１９０に出力する。例えば、いわゆる３次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点（構成点）に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、ジオメトリ処理後のオブジェクト（１又は複数プリミティブ面）の画像が、描画バッファ１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画される。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成されるようになる。
【００６２】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００６４】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００６５】
２．本実施形態の特徴
次に本実施形態の特徴について図面を用いて説明する。なお、以下では、格闘ゲームに本実施形態を適用した場合を主に例にとり説明するが、本実施形態は、格闘ゲーム以外の他のゲームにも広く適用できる。
【００６６】
２．１  モーションブレンド
さて、本実施形態では、図２に示すように、モデルオブジェクトＭＯＢ（キャラクタ）が、複数のパーツオブジェクト（腰１２、胸１４、首１６、頭１８、右上腕２０、右前腕２２、右手２４、左上腕２６、左前腕２８、左手３０、右股３２、右すね３４、右足３６、左股３８、左すね４０、左足４２）により構成されている。そして、これらのパーツオブジェクト（部位）の位置や回転角度（方向）は、スケルトンモデルを構成する骨Ｂ０〜Ｂ１９の位置（関節Ｊ０〜Ｊ１５の位置）や回転角度（親の骨に対する子の骨の相対的な回転角度）により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【００６７】
本実施形態では、モデルオブジェクトＭＯＢのスケルトンを構成する骨（モーション骨、関節、パーツオブジェクト）が親子（階層）構造を有している。例えば、手２４、３０の骨Ｂ７、Ｂ１１の親は前腕２２、２８の骨Ｂ６、Ｂ１０となり、Ｂ６、Ｂ１０の親は上腕２０、２６の骨Ｂ５、Ｂ９となる。また、Ｂ５、Ｂ９の親は胸１４の骨Ｂ１となり、Ｂ１の親は腰１２の骨Ｂ０となる。また、足３６、４２の骨Ｂ１５、Ｂ１９の親はすね３４、４０の骨Ｂ１４、Ｂ１８となり、Ｂ１４、Ｂ１８の親は股３２、３８の骨Ｂ１３、Ｂ１７となり、Ｂ１３、Ｂ１７の親は腰１２の骨Ｂ１２、Ｂ１６となる。
【００６８】
モーションデータ記憶部には、これらの骨（パーツオブジェクト、関節）の位置、回転角度が、モーションデータとして記憶されている。なお、骨の回転角度だけをモーションデータに含ませて、骨の位置（関節の位置）についてはモデルオブジェクトのモデルデータの中に含ませてもよい。
【００６９】
例えば、歩きモーションが、Ｍ０、Ｍ１、Ｍ２・・・・ＭＮという基準モーション（各フレームでのモーション）により構成されているとする。するとこれらの各基準モーションＭ０、Ｍ１、Ｍ２・・・・ＭＮでの各骨の位置又は回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションＭ０の各パーツオブジェクトの位置、回転角度を読み出し、次に基準モーションＭ１の各パーツオブジェクトの位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション再生が実現される。
【００７０】
なお、モーションデータ記憶部に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。また、骨の位置、回転角度は、親の骨の位置、回転角度に対する相対的な位置、相対的な回転角度（３軸周りの回転角度）で表される。
【００７１】
また、図２においてＲＰはモデルオブジェクトＭＯＢの代表点であり、このＲＰは例えば腰（Ｊ０）の真下の位置（高さ零の位置）に設定されている。
【００７２】
また、図２では、手２４と武器（刀）とが同一のパーツオブジェクトとして一体形成されているが、手２４と武器とを別パーツオブジェクトにしてもよい。即ち、手２４の骨と武器の骨を別の骨にしてもよい。
【００７３】
そして本実施形態では、モデルオブジェクトのスケルトン形状（時間経過に伴うスケルトンの変形の仕方）を特定するモーションデータを、図３に示すようにブレンドする処理を行う。
【００７４】
例えばモーションデータＭＡ（広義には第１のモーションデータ。以下の説明でも同様）とモーションデータＭＢ（広義には第２のモーションデータ。以下の説明でも同様）とを、ＭＡのブレンド率αＡとＭＢのブレンド率αＢによりブレンドする場合には、下式のような処理をスケルトンの各骨のデータに対して行い、ブレンド後のモーションデータＭを得る。
【００７５】
Ｍ＝ＭＡ×αＡ＋ＭＢ×αＢ
Ｍ＝ＭＡ×（１−αＢ）＋ＭＢ×αＢ    （３）
なお、ブレンド率αＡ、αＢの両方を設定する必要はなく、例えばαＡは、αＡ＝１ーαＢの計算式により求めることができる。
【００７６】
また、具体的には上式（３）のモーションブレンドは、骨のローカルマトリクス（ローカル座標系への座標変換マトリクス）に対して行うことになる。即ち、モーションデータやモデルデータに含まれる骨の回転角度や位置に基づいて、各骨（モーション骨）のローカルマトリクスを計算する。そして、モーションデータＭＡについて求められた骨のローカルマトリクスと、モーションデータＭＢについて求められた骨のローカルマトリクスとを、上式（３）の計算式のようにブレンドすることで、ブレンド後のモーションデータＭの骨のローカルマトリクスを求める。
【００７７】
例えば、モーションデータＭＡ、ＭＢ、ブレンド後のモーションデータＭの骨のローカルマトリクスをＭＴＡ、ＭＴＢ、ＭＴと表すと、下式のようになる。
【００７８】
0004775989.tif 000002
次に、モデルデータなどに含まれる親子構造データに基づいて、骨の親子関係を判断し、その親子関係にしたがって親の骨のローカルマトリクス（ブレンド後のモーションデータＭのローカルマトリクスＭＴ）に対して子の骨のローカルマトリクスを順次乗算して行くことで、モーションデータＭの骨のワールドマトリクスを求める。そして、この求められたモーションデータＭの骨のワールドマトリクスに基づいて、各骨に付随する各パーツオブジェクト（ポリゴン）の頂点のワールド座標を求める。これによりモデルオブジェクトの形状（スケルトンの形状）を、ブレンド後のモーションデータＭに応じた形状にすることができる。
【００７９】
なお、ブレンド率を上述のようにローカルマトリクスに乗算する代わりに、ワールドマトリクス（広義には座標変換マトリクス。以下の説明でも同様）に乗算するようにしてもよい。
【００８０】
２．２  個別ブレンド率に基づくモーションブレンド
さて、これまでのモーションブレンドは全体ブレンド率（全体合成率）に基づいて行われていた。ここで、全体ブレンド率は、モデルオブジェクトのスケルトンの全ての骨に対して一律に設定されるブレンド率（一律に作用するブレンド率）である。
【００８１】
例えばモーションデータＭＡの全体ブレンド率をαＡと表し、モーションデータＭＢの全体ブレンド率をαＢと表す（αＡ＝１−αＢ）。そして、例えばαＡ＝０．２、αＢ＝０．８とすると、モーションデータＭＡの全ての骨のデータに対してαＡ＝０．２が乗算され、モーションデータＭＢの全ての骨のデータに対してαＢ＝０．８が乗算されることになる。より具体的には、モーションデータＭＡの全ての骨の座標変換マトリクス（ローカルマトリクス又はワールドマトリクス）に対してαＡ＝０．２が乗算され、モーションデータＭＢの全ての骨の座標変換マトリクスに対してαＡ＝０．８が乗算される。
【００８２】
しかしながら、このような全体ブレンド率だけでは、モーションブレンドにより得られるモーションデータの多様性を今ひとつ向上できないことが判明した。
【００８３】
そこで本実施形態では、図４に示すように、全体ブレンド率とは異なる個別ブレンド率（個別合成率）という概念を導入している。ここで個別ブレンド率とは、モデルオブジェクトのスケルトンを構成する各骨（アーク、関節、パーツオブジェクト）毎に任意に設定可能なブレンド率である。より具体的には、各骨の座標変換マトリクスに対して、各骨毎に異なった値に設定して乗算することができるブレンド率である。
【００８４】
例えば、モーションデータＭＡについての個別ブレンド率をβＡと表し、モーションデータＭＢについての個別ブレンド率をβＢと表す（βＡ＝１−βＢ）。すると図４において、骨Ｂ７（手及び武器）では個別ブレンド率がβＡ＝０．０、βＢ＝１．０に設定され、骨Ｂ６（前腕）ではβＡ＝０．２、βＢ＝０．８に設定され、骨Ｂ５（上腕）ではβＡ＝０．４、βＢ＝０．６に設定され、骨Ｂ４（肩）ではβＡ＝０．６、βＢ＝０．４に設定され、骨Ｂ１（胸）ではβＡ＝０．８、βＢ＝０．２に設定され、骨Ｂ０（腰）ではβＡ＝１．０、βＢ＝０．０に設定されている。
【００８５】
そして、このように設定されたブレンド率に基づいて、例えば下式のような処理をスケルトンの骨のデータに対して行い、ブレンド後のモーションデータＭを得ることができる。
【００８６】
0004775989.tif 000003
より具体的には、モーションデータＭＡ、ＭＢ、ブレンドの後のモーションデータＭの骨の座標変換マトリクス（ローカルマトリクス又はワールドマトリクス）をＭＴＡ、ＭＴＢ、ＭＴと表すと、下式のようになる。
【００８７】
0004775989.tif 000004
上式（６）において、全体ブレンド率αＡ、αＢは、全ての骨の座標マトリクスに対して同じ値になる一方で、個別ブレンド率βＡ、βＢは、各骨の座標マトリクス毎に異なった値に設定できるようになっている。
【００８８】
なお、全体ブレンド率αＡ、αＢは、いずれか一方のみをデータとして設定し、他方は計算により求めればよい。例えば、αＢをデータとして設定し、αＡはαＡ＝１−αＢの計算により求める（逆でもよい）。
【００８９】
同様に、個別ブレンド率βＡ、βＢも、いずれか一方のみをデータとして設定し、他方は計算により求めればよい。例えば、βＢをデータとして設定し、βＡはβＡ＝１−βＢの計算により求める（逆でもよい）。
【００９０】
２．３  攻撃モーションと移動モーションのブレンド
さて、本実施形態では以上のような個別ブレンド率を導入することで、多様なモーション表現を少ないモーションデータ量で実現することに成功している。
【００９１】
例えば図４では、モデルオブジェクトのスケルトンの端部（末端部）に位置する骨Ｂ７（第Ｋの骨）、その隣の骨Ｂ６（第Ｋ＋１の骨）、その隣の骨Ｂ５（第Ｋ＋２の骨）・・・・中央部（主要部）の骨Ｂ０（第Ｌの骨）に行くしたがって、モーションデータＭＡの個別ブレンド率βＡは、低いブレンド率（βＡ＝０．０）から高いブレンド率（βＡ＝１．０）に徐々に増加している。一方、モーションデータＭＢの個別ブレンド率βＢは、高いブレンド率（βＢ＝１．０）から低いブレンド率（βＢ＝０．０）に徐々に減少している。
【００９２】
このように個別ブレンド率を設定することで、武器（骨Ｂ７）などを用いた攻撃モーションと移動モーションとをブレンドし、プレーヤが不自然さを感じないリアルなモーション画像を生成できる。
【００９３】
例えば図５のＣ１〜Ｃ５は、モデルオブジェクトの一連の移動モーション（モーションデータＭＡ）である。一方、図５のＤ１〜Ｄ５は、モデルオブジェクトの一連の攻撃モーション（モーションデータＭＢ）である。そして図６のＥ１〜Ｅ５は、本実施形態の手法により移動モーションＣ１〜Ｃ５と攻撃モーションＤ１〜Ｄ５をブレンドすることで生成された一連の移動・攻撃モーション（モーションデータＭ）である。
【００９４】
図６のＥ１〜Ｅ５と、図５のＣ１〜Ｃ５、Ｄ１〜Ｄ５を比較すれば明らかなように、本実施形態によれば、武器の部分（モデルオブジェクトの端部）では図５のＤ１〜Ｄ５の攻撃モーション（モーションデータＭＢ）の影響が強く反映され、腰の部分（モデルオブジェクトの中央部）では図５のＣ１〜Ｃ５の移動モーション（モーションデータＭＡ）の影響が強く反映されたモーションブレンド画像を得ることができる。これは、図４において、武器の部分（Ｂ７）では、攻撃モーション（モーションデータＭＢ）の個別ブレンド率βＢの方が高く設定されている一方で、腰の部分（Ｂ０）では、移動モーション（モーションデータＭＡ）の個別ブレンド率βＡが低く設定されているからである。
【００９５】
このように本実施形態では、個別ブレンド率を導入することで、単なる全体ブレンド率だけでは得ることができない、リアルで自然なモーション画像の生成に成功している。
【００９６】
例えば、全体ブレンド率を用いて、図５のＣ１〜Ｃ５の移動モーションと図５のＤ１〜Ｄ５の攻撃モーションをブレンドすると、ブレンド後のモーション画像における武器の位置についても、全体ブレンド率に応じた位置に変更されてしまう。従って、ブレンド後のモーション画像では、図５のＤ１〜Ｄ５のような武器を振り回しているという画像表現が失われてしまう。同様に、ブレンド後のモーション画像では、図５のＣ１〜Ｃ５のように腰、足を動かして歩いているという画像表現についても失われてしまう。
【００９７】
これに対して個別ブレンド率を用いる本実施形態では、図６に示すように、武器については図５のＤ１〜Ｄ５の攻撃モーションとほぼ同じ動きを行い、腰及び足については図５のＣ１〜Ｃ５の移動モーションとほぼ同じ動きを行うようになる。従って、武器を振り回しながら歩いている様子を、よりリアルに表現できる。
【００９８】
しかも本実施形態では、図４に示すように、個別ブレンド率が徐々に変化するようになっている。従って、図５のＣ１〜Ｃ５、Ｄ１〜Ｄ５のように全く異なって見えるモーションをブレンドしても、自然に見えるモーションブレンド画像を生成でき、モーションブレンドが行われていることをプレーヤに気づかれるのを防止できる。
【００９９】
２．４  切りごたえ
さて、武器を用いた格闘ゲームにおいては、いわゆる「切りごたえ」、「打感」を表現できることが望まれる。即ち、刀などの武器が敵にヒットした場合に、刀の動きが一瞬止まると共に、敵の体の抵抗により刀の振る速度も遅くなるという表現を実現できることが望ましい。
【０１００】
このような「切りごたえ」を表現する第１の比較例として、例えば、刀が敵にヒットした瞬間から、ゲーム全体のフレーム進行速度を遅らせて、スローモーション画像にする手法が考えられる。しかしながら、この第１の比較例によると、いかにもスローモーションになったということがプレーヤにわかってしまい、プレーヤが不自然さを感じる。
【０１０１】
一方、「切りごたえ」を表現する第２の比較例として、例えば、刀が敵にヒットした瞬間から、自キャラクタの動きについてのみ進行速度を遅らせる手法が考えられる。しかしながら、この第２の比較例によると、自キャラクタの動きがその分だけ遅れてしまい、ヒットイベントが終了した後の自キャラクタの動きが不自然なものになってしまう。
【０１０２】
そこで本実施形態では、前述の個別ブレンド率を利用した以下に説明する手法を用いて、「切りごたえ」表現を実現している。
【０１０３】
即ち、この手法では、図７（Ａ）に示すように、所与のイベントが発生したことを条件に、全体ブレンド率及び個別ブレンド率を用いたモーションブレンドを行うようにする。
【０１０４】
ここで所与のイベントとは、例えば、図７（Ｂ）に示すように、モデルオブジェクト（キャラクタの武器）と他のオブジェクト（敵キャラクタ）とのヒットイベント（接触イベント）である。或いは、図７（Ｃ）に示すように、モデルオブジェクトが所与のエリア（タールなどにより足の動きが拘束されるエリア）に侵入するイベントである。或いは、図７（Ｄ）に示すように、モデルオブジェクトが物（球、槍）を投げるイベントである。
【０１０５】
そして本実施形態では、このようなイベントが発生した場合に、そのイベントの影響を最も及ばすべき骨（イベントに関係する骨、イベントに関連する骨、イベントの発生箇所に近い骨）についての個別ブレンド率が、モーションデータＭＡ（第１のモーションデータ、イベント発生前まで再生していたモーションデータ）よりも、モーションデータＭＢ（第２のモーションデータ、イベント発生後に第１のモーションデータとブレンドされるモーションデータ）の方がより多くブレンドされるように設定されている。
【０１０６】
例えば図７（Ｂ）のヒットイベントでは、ヒットイベントの影響を及ばすべき骨（ヒット位置にある骨、ヒット位置に近い骨）である武器（手）の骨の個別ブレンド率βＢをβＡよりも大きくする。より具体的には図４に示すように個別ブレンド率βＢを設定する。また、図７（Ｃ）の侵入イベントでは、侵入イベントの影響を及ばすべき骨（侵入エリアの地面に接する骨、侵入エリアの地面に近い骨）である足の骨の個別ブレンド率βＢを大きくする。また、図７（Ｄ）の投げイベントでは、投げイベントの影響を及ばすべき骨（投げる物に近い骨）である手の骨の個別ブレンド率βＢを大きくする。
【０１０７】
このようにすることで、イベントの影響を最も及ばすべき骨を、ＭＢのモーションに最も近い動きで動かすことができ、イベント発生をプレーヤに効果的に伝える画像を生成できる。
【０１０８】
例えば、図８のＧ１〜Ｇ５は、ヒットイベントが発生していない時におけるモデルオブジェクトの縦切りモーションの例である。一方、図８のＨ１〜Ｈ６は、武器が敵にヒットするヒットイベントが発生した時におけるモデルオブジェクトの縦切りモーションの例である。この図８のＨ１〜Ｈ６のモーションは、イベントが発生したことを条件に、Ｇ１〜Ｇ５の縦切りモーションと、この縦切りモーションの再生速度を遅くすると共に再生フレーム番号（再生開始フレーム）を後ろにずらしたモーションとを、ブレンドすることで生成される。
【０１０９】
図８に示すように、Ｇ２とＨ２では、刀の位置はほぼ同じである。一方、Ｇ３では、刀が下の方に振り下ろされているのに対して、Ｈ３では、刀の動きが止まっている。また、Ｈ４、Ｈ５に示すように、刀の振り下ろし速度が遅くなっており、刀が敵の体を通過するまでの時間が長い。刀がこのような軌道をえがくのは、刀（手）に設定される個別ブレンド率βＢが大きいからである。また、モーションデータＭＢの再生速度を遅くすると共に再生フレーム番号を後ろにずらしているからである。
【０１１０】
また、図８のＧ３、Ｈ５を比較すればわかるように、Ｇ３とＨ５では刀の位置がほぼ同じであるのに対して、Ｈ５の方がＧ３に比べてモデルオブジェクトの腰や胸の動きが先行している。これは、腰や胸などの主要部における個別ブレンド率βＡを大きくしているからである（図４参照）。
【０１１１】
このように、図８のＨ１〜Ｈ６は、モデルオブジェクトの体全体の動きが遅くなるのではなくて、一部（武器）だけが遅くなり、他の部分（腰、胸）は通常通りの動き（モーションデータＭＡにしたがった動き）になる。従って、ゲーム全体のフレーム進行速度を遅くする上述の第１の比較例や、モデルオブジェクト全体の動きを遅くする上述の第２の比較例に比べて、自然でリアルなモーション画像を生成できる。
【０１１２】
そして図８のＨ１〜Ｈ６のような画像を生成できれば、敵へのヒットにより刀の動きが一瞬止まり、その後に敵の体の抵抗により刀の振る速度も遅くなるという「切りごたえ」の表現を、簡素な処理で実現できる。
【０１１３】
なお、本実施形態の手法は、このような「切りごたえ」の表現に特に効果的だが、キック、パンチがヒットした時の「打感」の表現にも効果的である。
【０１１４】
２．５  全体ブレンド率の変化
さて、本実施形態では、個別ブレンド率の設定のみならず、全体ブレンド率の設定についても種々の工夫を施している。
【０１１５】
例えば図９（Ａ）に示すように本実施形態では、イベント（ヒットイベント等）が発生するまでは、モーションデータＭＢ（第２のモーションデータ）の全体ブレンド率αＢを零に設定している。
【０１１６】
このように全体ブレンド率αＢを零に設定すれば、モーションデータＭＡとＭＢのブレンドを行っても、ＭＢが実質的にブレンドされないことになる。この結果、イベント発生前の期間においては、モーションデータＭＡによる基本モーション（メインモーション）の再生が行われるようになり、モーションデータＭＢの影響を無くすことができる。また、全体ブレンド率αＢを零に設定するだけで済むため、処理負荷も非常に少ないという利点がある。
【０１１７】
例えば図５のＣ１〜Ｃ５の移動モーションとＤ１〜Ｄ５の攻撃モーションのブレンドの場合には、攻撃イベント発生前の期間においてαＢを零に設定することで、モデルオブジェクトは通常の移動モーションを行うことになり、自然な画像を生成できる。
【０１１８】
また図８の縦切りモーションでは、ヒットイベント発生前の期間（Ｈ１、Ｈ２）では、αＢを零に設定することで、モデルオブジェクトは通常の縦切りモーションを行うことになり、自然な画像を生成できる。
【０１１９】
また本実施形態では、図９（Ａ）に示すように、イベント発生後に、全体ブレンド率αＡ、αＢ（いずれか一方でよい）を時間経過（フレーム進行、仮想ゲーム時間の経過或いは現実時間の経過等）に応じて変化させている。
【０１２０】
このように全体ブレンド率を時間経過に伴い変化させることで、モーションデータＭＢの影響を徐々に強めたり、徐々に弱めたりすることが可能となり、より多様な画像表現を実現できる。
【０１２１】
例えば、図９（Ｂ）では、イベントが発生してから期間Ｔ１（第１の期間）が経過するまでは、モーションデータＭＢの全体ブレンド率αＢが時間経過に伴い増加している。一方、期間Ｔ１の経過後、期間Ｔ２が経過するまでは、モーションデータＭＢの全体ブレンド率αＢが時間経過に伴い減少している。
【０１２２】
ここで期間Ｔ１は、例えば図８のＨ２〜Ｈ５のヒット期間（刀が敵の体を通過する期間、ヒットしていると判断される期間）である。また期間Ｔ２は、例えば図８のＨ５〜Ｈ６のモーションの戻し期間（モーションを、元のＭＡのモーションに戻すための期間）である。
【０１２３】
そして図９（Ｂ）のように期間Ｔ１においてαＢを増加（αＡを減少）させることで、モーションデータＭＢの影響が高くなって行く。即ち、モーションデータＭＢ（再生時間を遅くし再生フレーム番号を後ろにずらしたモーションデータ）の全体ブレンド率αＢが増加することで、ヒット期間であるＴ１において刀の動きが遅くなって行く。
【０１２４】
一方、図９（Ｂ）のように期間Ｔ２においてαＢを減少（αＡを増加）させることで、モーションデータＭＢの影響が低くなって行く。即ち、モーションデータＭＢの全体ブレンド率αＢが減少しＭＡの全体ブレンド率が増加することで、モーションの戻し期間であるＴ２においてモデルオブジェクトのモーションが元のＭＡのモーションに戻って行く。そして、期間Ｔ２が終了して、αＢが零になると、その後は通常の基本モーションデータＭＡが再生されることになる。
【０１２５】
なお、図９（Ｃ）に示すように、期間Ｔ１においてはαＢの変化率を高くする（急激に変化させる）と共に、期間Ｔ２においてはαＢの変化率を低くする（ゆっくりと変化させる）ことが望ましい。
【０１２６】
期間Ｔ１においてαＢを急激に変化させれば、刀の動きが急激に遅くなって、刀が敵にヒットして止まったかのように見える画像を生成できる。
【０１２７】
一方、期間Ｔ２においてαＢをゆっくりと変化させれば、モーションデータＭＡへの戻りが緩やかになり、プレーヤが不自然さを感じない画像を生成できる。
【０１２８】
また本実施形態では図１０（Ａ）に示すように、イベント発生前の期間では、モーションデータＭＡが再生され、モデルオブジェクトがＭＡのモーションを行う。これは図１０（Ｂ）に示すようにモーションデータＭＢの全体ブレンド率αＢを零に設定することで実現できる。次に、イベントが発生すると、モーションデータＭＡ、ＭＢのブレンドが行われる。そして、イベントが発生してから期間Ｔ（Ｔ１＋Ｔ２）が経過すると、モーションブレンドが終了し、モデルオブジェクトがＭＡのモーションを再び行う。これは図１０（Ｂ）に示すようにモーションデータＭＢの全体ブレンド率αＢを零に設定することで実現できる。
【０１２９】
このように全体ブレンド率を変化させることで、例えば、図５、図６において、通常に走った後、攻撃イベントが発生すると走りながら攻撃を行い、期間Ｔの経過後に通常の走りに戻るというモーション表現が可能になる。また、図８のＨ１〜Ｈ６に示すように、ヒットイベントの前は通常の縦切りモーションとなり、ヒットイベントが発生すると「切りごたえ」が表現された縦切りモーションとなり、期間Ｔが経過すると通常の縦切りモーションに戻るというモーション表現が可能になる。
【０１３０】
なお、図１０（Ｃ）に示すように、モーションブレンドが行われる期間Ｔの長さや、期間Ｔでの全体ブレンド率αＢ（αＡ）の設定を、発生したイベントや、モデルオブジェクトの状態情報や、ヒット対象となるオブジェクトの状態情報に応じて異ならせることが望ましい。
【０１３１】
例えば、発生したイベントが図５、図６のような攻撃イベントである場合には、期間Ｔを攻撃モーションの再生時間に合わせて調整すると共に、攻撃イベントの発生の直後にαＢを１．０に設定し、期間Ｔが経過したら直ぐにαＢを０．０に戻す。一方、発生したイベントが図８のようなヒットイベントである場合には、図９（Ｂ）や図９（Ｃ）のように期間Ｔ（Ｔ１＋Ｔ２）やαＢを設定する。
【０１３２】
また、モデルオブジェクトが使用する武器の種類やモデルオブジェクトの能力（広義にはモデルオブジェクトの状態情報）、或いはヒット対象となる敵の防具や能力（広義にはヒット対象となるオブジェクトの状態情報）に基づいて、期間Ｔの長さやαＢの設定を変えてもよい。例えばモデルオブジェクトの刀が良い刀である場合や、モデルオブジェクトの能力が高い場合には、期間Ｔを短くする。或いは、敵の防具が良い防具である場合や、敵の能力が高い場合には、期間Ｔを長くしたり、刀がより止まって見えるようにα値を設定すればよい。
【０１３３】
２．６  再生速度、再生フレーム番号の制御
さて、本実施形態では、図８のＨ１〜Ｈ６のような「切りごたえ」を表現するために、モーションデータＭＡにブレンドされるＭＢとして、次のようなモーションデータを用いている。
【０１３４】
即ち、まず、モーションデータＭＢとしてＭＡと同一内容のデータを用いる。例えばＭＡが縦切りモーションデータである場合には、ＭＢにも縦切りモーションデータを用いる。そして、モーションデータＭＡの再生速度や再生フレーム番号を異ならせたものをＭＢに設定する。
【０１３５】
例えば図１１（Ａ）では、モーションデータＭＡは、各フレームのモーションデータＭ０、Ｍ１、Ｍ２、Ｍ３、Ｍ４・・・で構成される。同様にモーションデータＭＢも、各フレームのモーションデータＭ０、Ｍ１、Ｍ２、Ｍ３、Ｍ４・・・で構成される。
【０１３６】
但し図１１（Ａ）では、ＭＢは、ＭＡよりも再生速度が遅くなっている。これは、例えば、ＭＡにおいては、フレームＦ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４・・・でＭ０、Ｍ１、Ｍ２、Ｍ３、Ｍ４・・・を再生する一方で、ＭＢにおいては、フレームＦ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４・・・でＭ０、Ｍ0.5、Ｍ１、Ｍ1.5、Ｍ２・・・を再生することで実現できる。このようにすれば、ＭＢの再生速度を半分にできる。ここでＭ0.5は、Ｍ０とＭ１の補間（ブレンド）モーションであり、Ｍ1.5は、Ｍ１とＭ２の補間モーションである。
【０１３７】
そして、ＭＡと、再生速度が半分であるＭＢとをヒット期間においてモーションブレンドすることで、ヒット期間で生成される画像をスローモーション画像にでき（刀の部分だけスローモーション画像）、図８のＨ１〜Ｈ６のような「切りごたえ」を表現できる。
【０１３８】
なお、ＭＢの再生速度を１／３倍にする場合には、フレームＦ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４・・・でＭ０、Ｍ1/3、Ｍ2/3、Ｍ１、Ｍ4/3・・・・を再生すればよい。
【０１３９】
また、図１１（Ｂ）では、ＭＢは、ＭＡよりも再生速度が速くなっている。これは、例えば、ＭＡにおいては、フレームＦ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４・・・でＭ０、Ｍ１、Ｍ２、Ｍ３、Ｍ４・・・を再生する一方で、ＭＢにおいては、フレームＦ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４・・・でＭ０、Ｍ２、Ｍ４、Ｍ６、Ｍ８・・・を再生することで実現できる。このようにすれば、ＭＢの再生速度を倍にできる。
【０１４０】
なお、ＭＢの再生速度を３倍にする場合には、Ｆ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４・・・・でＭ０、Ｍ３、Ｍ６、Ｍ９、Ｍ１２・・・を再生すればよい。
【０１４１】
また、図１１（Ｃ）では、ＭＢの再生フレーム番号（モーションデータのどのフレームを再生するかを指定する番号）をずらしている。より具体的には、ＭＡにおいては、フレームＦ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４、Ｆ５・・・でＭ０、Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５を再生する一方で、ＭＢにおいては、再生フレーム番号を後ろにずらし、フレームＦ２、Ｆ３、Ｆ４、Ｆ５・・・でＭ０、Ｍ１、Ｍ２、Ｍ３を再生する。
【０１４２】
そして、ＭＡと、再生フレーム番号を後ろにずらしたＭＢとをヒット期間においてモーションブレンドすることで、ヒット期間で生成される画像をスローモーション画像や停止画像にでき、図８のＨ１〜Ｈ６のような「切りごたえ」を表現できる。
【０１４３】
なお、ＭＢの再生速度を、より遅くすることで、図８のＨ３〜Ｈ５において刀が敵の体を通過する速度を遅くできる。これにより、敵の体の抵抗の度合いを表現できる。
【０１４４】
一方、ＭＢの再生フレーム番号を、より後ろにずらすことで、図８のＨ２において刀が敵にヒットした時の刀の停止時間（或いは跳ね返り時間）を長くできる。これにより、刀が敵にヒットした瞬間の刀の止まり具合（跳ね返り具合）を表現できる。
【０１４５】
２．７  モーションスクリプト及びモーション制御部の並列動作
さて、本実施形態では、並列動作可能な複数のモーション制御部が、モーションスクリプトを用いてモデルオブジェクトのモーション制御を行っている。
【０１４６】
例えば図１２に示すように、本実施形態では、移動（移動関係）モーションスクリプト群（広義には第１のスクリプト群。以下の説明でも同様）と、攻撃（攻撃関係）モーションスクリプト群（広義には第２のスクリプト群。以下の説明でも同様）とが用意される。
【０１４７】
この移動モーションスクリプト群には、立ちモーション、前移動モーション、後ろ移動モーション、右移動モーション、左移動モーション、ジャンプモーション、しゃがみモーションのスクリプトなどの、移動に関する種々のモーションスクリプトが含まれる。
【０１４８】
一方、攻撃モーションスクリプト群には、縦切りモーション、横切りモーション、キックモーション、投げモーション、ガードモーション、特殊攻撃（必殺技）モーションＡ、特殊攻撃モーションＢなどの、攻撃に関する種々のモーションスクリプトが含まれる。
【０１４９】
そして本実施形態では、移動モーションスクリプト群については、メイン側モーション制御部（広義には第１のモーション制御部。以下の説明でも同様）に割り当てられ、攻撃モーションスクリプト群については、サブ側モーション制御部（広義には第２のモーション制御部。以下の説明でも同様）に割り当てられる。
【０１５０】
即ち、メイン側モーション制御部は、移動モーションスクリプト群の中から割り当てられた移動モーションスクリプト（立ちモーション、前移動モーションスクリプト等）に基づいて、その移動モーションスクリプトに対応づけられた移動モーションデータを選択し、モデルオブジェクトの移動モーション制御を行う。
【０１５１】
一方、サブ側モーション制御部は、攻撃モーションスクリプト群の中から割り当てられた攻撃モーションスクリプト（縦切りモーション、横切りモーションのスクリプト等）に基づいて、その攻撃モーションスクリプトに対応づけられた攻撃モーションデータを選択し、モデルオブジェクトの攻撃モーション制御を行う。
【０１５２】
なお、以下では、並列動作可能な２つのモーション制御部を用いる場合について主に例にとり説明するが、並列動作可能な３つ以上のモーション制御部を用いる場合にも本発明は適用できる。
【０１５３】
さて、本実施形態のモーションスクリプト（モーション制御の処理手順が記述されたスクリプト）には、そのモーションスクリプトが割り当てられているモーション制御部が現在選択すべきモーションデータと、モーションスクリプトの変更条件とが記述されている。即ち、モーション制御部は、モーションスクリプトに対応するモーションデータを選択し、モーション制御処理を行うと共に、モーションスクリプトの変更条件が満たされているか否かを判断し、満たされている場合には、モーション制御部（自身のモーション制御部又は他のモーション制御部）へのモーションスクリプトの割り当てを変更する。
【０１５４】
例えば図１３に、立ちモーションスクリプトの処理例に関するフローチャートを示す。
【０１５５】
まず、この立ちモーションスクリプトでは、立ちモーションデータを選択する（ステップＳ１）。次に、操作入力（操作ボタンや操作レバーの操作データ）及びモデルオブジェクトの状態情報（モデルオブジェクトの現在の状況）に基づき、モーションスクリプトの変更条件を判断する（ステップＳ２）。
【０１５６】
そして、操作入力が移動指示の場合には、移動指示の方向に対応する移動モーションスクリプトへの変更を行う（ステップＳ３、Ｓ４）。例えば、前移動の指示の場合には、メイン側モーション制御部へのモーションスクリプトの割り当てを、前移動モーションスクリプトに変更し、右移動の指示の場合には右移動モーションスクリプトに変更する。
【０１５７】
一方、操作入力が攻撃指示の場合には、攻撃指示に対応する攻撃モーションスクリプトへの変更を行う（ステップＳ５、Ｓ６）。例えば、縦切りの指示の場合には、サブ側モーション制御部へのモーションスクリプトの割り当てを、縦切りモーションスクリプトに変更し、横切りの指示の場合には横切りモーションスクリプトに変更する。
【０１５８】
図１４に、移動（前移動、後ろ移動等）モーションのスクリプトの処理例に関するフローチャートを示す。
【０１５９】
まず、スクリプトに対応する移動モーションデータを選択する（ステップＳ１１）。次に、操作入力及びモデルオブジェクトの状態情報に基づき、モーションスクリプトの変更条件を判断する（ステップＳ１２）。
【０１６０】
そして、操作入力が攻撃指示の場合には、攻撃指示に対応する攻撃モーションスクリプトへの変更を行う（ステップＳ１３、Ｓ１４）。
【０１６１】
一方、操作入力が方向変換指示の場合には、変換方向に対応する移動モーションスクリプトへの変更を行う（ステップＳ１５、Ｓ１６）。例えば、現在の移動モーションが前方向で、左方向への変換が指示された場合には、メイン側モーション制御部へのモーションスクリプトへの割り当てを、左移動モーションスクリプトに変更する。
【０１６２】
また、移動指示入力が終了した場合（操作レバーがニュートラルに戻った場合）には、立ちモーションスクリプトへの変更を行う（ステップＳ１７、Ｓ１８）。即ち、メイン側モーション制御部へのモーションスクリプトへの割り当てを、立ちモーションスクリプトに変更する。
【０１６３】
図１５に、攻撃（縦切り、横切り等）モーションのスクリプトの処理例に関するフローチャートを示す。
【０１６４】
まず、スクリプトに対応する攻撃モーションデータを選択する（ステップＳ２１）。次に、操作入力及びモデルオブジェクトの状態情報に基づき、モーションスクリプトの変更条件を判断する（ステップＳ２２）。
【０１６５】
そして、操作入力によりコンボ条件を満たす攻撃指示が行われた場合には、そのコンボに対応する特殊攻撃モーションスクリプトへの変更を行う（ステップＳ２３、Ｓ２４）。即ち、サブ側モーション制御部へのモーションスクリプトへの割り当てを、特殊攻撃モーションスクリプトに変更する。
【０１６６】
さて、本実施形態では、このようなモーションスクリプトを用いて、メイン側、サブ側のモーション制御部が、以下に説明するような並列動作を行っている。
【０１６７】
例えば、図１６（Ａ）において、メイン側モーション制御部に歩きモーションスクリプトが割り当てられ、歩きモーションが行われている時に、攻撃指示の操作入力が行われたとする。すると、図１６のＪ１に示すようにメイン側の歩きモーションスクリプトに記述されている変更条件が満たされて、サブ側モーション制御部に攻撃モーションスクリプトが割り当てられる。これにより、Ｊ２に示すようにサブ側モーション制御部が動作を開始し（実行状態になり）、攻撃モーションデータを選択する。
【０１６８】
そして本実施形態では、このように攻撃モーションスクリプト（図１２の攻撃モーションスクリプト群の中のモーションスクリプト）への変更条件が満たされて、サブ側モーション制御部（第２のモーション制御部）が攻撃モーションスクリプトに基づくモーション制御を開始した場合にも、図１６（Ａ）のＪ３に示すように、メイン側モーション制御部（第１のモーション制御部）は歩きモーションスクリプト（図１２の移動モーションスクリプト群の中のモーションスクリプト）に基づくモーション制御を続行する。
【０１６９】
従って図１６（Ａ）のＪ４に示すように、メイン側モーション制御部のモーションデータと、サブ側モーション制御部の攻撃モーションデータとをブレンドできるようになる。これにより、図６のような歩きながら攻撃するという歩き・攻撃モーションを再生できる。そして、攻撃モーションの再生時間が終了すると、図１６（Ａ）のＪ５に示すようにサブ側モーション制御部の動作が終了し、Ｊ６に示すようにモデルオブジェクトのモーションは歩きモーションに戻る。
【０１７０】
次に、走ることを指示する操作入力が行われると、Ｊ７に示すようにメイン側の歩きモーションスクリプトに記述されている変更条件が満たされて、メイン側モーション制御部に走りモーションスクリプトが割り当てられる。これにより、Ｊ８に示すようにメイン側モーション制御部が走りモーションデータを選択し、走りモーションが再生される。
【０１７１】
そして、その後に、攻撃指示の操作入力が行われると、Ｊ９に示すようにメイン側の歩きモーションスクリプトに記述されている変更条件が満たされて、サブ側モーション制御部に攻撃モーションスクリプトが割り当てられる。これにより、Ｊ１０に示すようにサブ側モーション制御部が動作を開始し（実行状態になり）、攻撃モーションデータを選択する。
【０１７２】
すると、Ｊ１１に示すようにメイン側モーション制御部のモーションデータと、サブ側モーション制御部の攻撃モーションデータとがブレンドされ、走り・攻撃モーションが再生される。そして、攻撃モーションの再生時間が終了すると、Ｊ１２に示すようにモデルオブジェクトのモーションは走りモーションに戻る。
【０１７３】
以上のように本実施形態によれば、歩き・攻撃モーションデータや走り・攻撃モーションデータをモーションブレンドにより生成できる。従って、歩き・攻撃モーションデータや走り・攻撃モーションデータなどを予め用意しておく必要がないため、モーションデータ量を大幅に軽減できる。しかも本実施形態では、メイン側のモーションデータとサブ側のモーションデータの組み合わせにより、モーションブレンドを用いて多種多様なモーションデータを生成でき、少ないデータ量で多様なモーション表現を実現できる。
【０１７４】
また本実施形態では、メイン側モーション制御部とサブ側モーション制御部を同時動作可能にすることで、モーションスクリプトについても、歩き・攻撃モーションスクリプトや走り・攻撃モーションスクリプトなどを予め用意しなくて済むようになる。このため、モーションスクリプトのデータ量を大幅に軽減できる。しかも本実施形態では、メイン側のモーションスクリプトとサブ側のモーションスクリプトの組み合わせにより、多種多様なモーションスクリプトを実現できる。
【０１７５】
なお、サブ側モーション制御部が、自身のサブ側モーション制御部に割り当てるモーションスクリプトを変更することも可能である。
【０１７６】
例えば図１６（Ｂ）のＪ１３では、メイン側モーション制御部の走りモーションが再生されている状態で、攻撃指示の操作入力が行われて、サブ側モーション制御部に攻撃Ａのモーションスクリプトが割り当てられる。これにより、サブ側モーション制御部が攻撃Ａのモーションデータを選択し、走りモーションと攻撃Ａのモーションがブレンドされる。
【０１７７】
次に、コンボ条件を満たす攻撃指示が行われると、Ｊ１４に示すようにサブ側モーション制御部のモーションスクリプトに記述された変更条件が満たされて、サブ側モーション制御部に攻撃Ｂのモーションスクリプトが割り当てられる。これにより、サブ側モーション制御部が攻撃Ｂのモーションデータを選択し、走りモーションと攻撃Ｂのモーションがブレンドされる。
【０１７８】
その後、次々とコンボ条件を満たす攻撃指示が行われると、サブ側モーション制御部に攻撃Ｃ、攻撃Ｄのモーションスクリプトが割り当てられ、走りモーションと攻撃Ｃ、Ｄのモーションがブレンドされるようになる。そして、その後、走りモーションの再生に戻る。
【０１７９】
また、サブ側モーション制御部が、メイン側モーション制御部に割り当てるモーションスクリプトを変更することも可能である。
【０１８０】
例えば図１６（Ｃ）のＪ１５では、メイン側モーション制御部の走りモーションが再生されている状態で、攻撃指示の操作入力が行われて、メイン側の走りモーションとサブ側の攻撃モーションがブレンドされる。
【０１８１】
そしてサブ側の攻撃モーションの最後の状態がしゃがみモーションである場合には、Ｊ１６に示すようにサブ側モーション制御部に記述されている変更条件が満たされて、メイン側モーション制御部にしゃがみモーションスクリプトが割り当てられるようになる。これにより、メイン側モーション制御部がしゃがみモーションデータを選択し、しゃがみモーションが再生されるようになる。
【０１８２】
以上のように本実施形態では、一方のモーション制御部が、自身に割り当てるモーションスクリプトのみならず、他方のモーション制御部に割り当てるモーションスクリプトも変更できる。従って、このモーションスクリプトの割り当ての変更により不自然な画像が生成されないように配慮して、モーションスクリプトを記述しておく必要がある。
【０１８３】
例えば、メイン側で倒れモーションを再生している状態で、サブ側が図１６（Ｃ）のＪ１６に示すようにメイン側のモーションスクリプトを変更して、再度メイン側に倒れモーションを行わせると、一度倒れかけたモデルオブジェクトが、再度立ち上がって再び倒れるという不自然な画像が生成される。従って、このような場合には、サブ側によるメイン側のモーションスクリプトの変更を制限することが望ましい。
【０１８４】
なお、例えばメイン側モーション制御部（第１のモーション制御部）に、移動モーションスクリプトを割り当てると共に、サブ側モーション制御部（第２のモーション制御部）に、やられモーションスクリプト（広義には攻撃を受けたことを示すモーションのスクリプト。以下の説明でも同様）を割り当てて、モーションブレンド処理を行ってもよい。
【０１８５】
このようにすれば、モデルオブジェクトの一部（例えば上半身又は下半身）だけが、やられモーションになり、他の部分が移動モーションになるモーションブレンド画像を生成できる。
【０１８６】
また、この場合に、移動モーションスクリプトにおいては、移動指示に関する操作入力を受け付けるようにすると共に、やられモーションスクリプトにおいては、攻撃（又は防御）に関する操作入力を受け付けないようにしてもよい。このようにすれば、モデルオブジェクトの一部がやられモーションになっているような場合にも、プレーヤは、移動指示によりモデルオブジェクトを移動させることはできるようになる。一方、やられモーションになったモデルオブジェクトは、敵の攻撃により所与の期間だけ動作不能状態（硬直状態）になっているため、プレーヤは、攻撃指示（又は防御指示）により、モデルオブジェクトに攻撃（又は防御）を行わせることはできないようになる。
【０１８７】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図１７、図１８、図１９のフローチャートを用いて説明する。
【０１８８】
図１７は、図８〜図１１（Ｃ）で説明したモーションブレンド処理を実現するフローチャートである。
【０１８９】
まず、メイン側、サブ側のモーションデータＭＡ、ＭＢの全体ブレンド率αＡ、αＢを、各々、１．０、０．０に初期設定しておく（ステップＳ３１）。
【０１９０】
次に、フレーム更新か否かを判断する（ステップＳ３２）。これは、表示部に出力する垂直同期信号がアクティブになったか否かを検出することで判断できる。
【０１９１】
そして、フレーム更新の場合には、攻撃が相手にヒットしているヒット期間Ｔ１か否かを判断する（ステップＳ３３）。そして、期間Ｔ１である場合には、サブ側のモーションデータＭＢの全体ブレンド率αＢを徐々に増加させる（ステップＳ３４。図９（Ｂ）、（Ｃ）参照）。
【０１９２】
一方、期間Ｔ１でない場合には、ヒット期間Ｔ１の終了後のモーション戻し期間Ｔ２か否かを判断する（ステップＳ３５）。そして、期間Ｔ２である場合には、サブ側のモーションデータＭＢの全体ブレンド率αＢを徐々に減少させる（ステップＳ３６）。
【０１９３】
次に、メイン側のモーションデータＭＡと、ＭＡの再生速度を遅らせて再生フレーム番号を後ろにずらしたサブ側のモーションデータＭＢとを、全体ブレンド率αＡ，αＢと個別ブレンド率βＡ，βＢに基づきモーションブレンドする（ステップＳ３７。図１１（Ａ）、（Ｂ）、（Ｃ）参照）。そして、ステップＳ３２に戻り、次にフレーム更新されるのを待つ。
【０１９４】
図１８、図１９は、図１２〜図１６（Ｃ）で説明したモーション制御部の並列動作によるモーションブレンド処理を実現するフローチャートである。
【０１９５】
まず、メイン側モーション制御部に現在割り当てられているモーションスクリプトに基づき、メイン側モーション制御部がモーション制御処理（操作入力の判断や状況の判断処理等）を行う（ステップＳ４１）。次に、サブ側モーション制御部に現在割り当てられているモーションスクリプトに基づき、サブ側モーション制御部がモーション制御処理（操作入力の判断や状況の判断処理等）を行う（ステップＳ４２）。
【０１９６】
そして、メイン側によりサブ側のモーションスクリプトの変更があった場合には、サブ側に割り当てるモーションスクリプトを変更する（ステップＳ４３、Ｓ４４。図１６（Ａ）のＪ１、Ｊ９参照）。また、メイン側によりメイン側のモーションスクリプトの変更があった場合には、メイン側に割り当てるモーションスクリプトを変更する（ステップＳ４５、Ｓ４６。図１６（Ａ）のＪ７参照）。
【０１９７】
また、サブ側によりサブ側のモーションスクリプトの変更があった場合には、サブ側に割り当てるモーションスクリプトを変更する（ステップＳ４７、Ｓ４８。図１６（Ｂ）のＪ１４参照）。また、サブ側によりメイン側のモーションスクリプトの変更があった場合には、メイン側に割り当てるモーションスクリプトを変更する（ステップＳ５０。図１６（Ｃ）のＪ１６参照）。
【０１９８】
次に、メイン側のモーションスクリプトに応じたモーションデータを生成する（ステップＳ５１）。例えば、メイン側モーション制御部が右移動モーションと前移動モーションを選択した場合には、これらのモーションをブレンドして、右前移動モーションを生成する。次に、サブ側のモーションスクリプトに応じたモーションデータを生成する（ステップＳ５２）。例えば、サブ側モーション制御部が横切りモーションと縦切りモーションを選択した場合には、これらのモーションをブレンドして、斜め切りモーションを生成する。
【０１９９】
次に、全体ブレンド率と骨毎の個別ブレンド率に基づき、メイン側とサブ側のモーションデータをブレンドし、得られたモーションを再生する（ステップＳ５３）。
【０２００】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図２０を用いて説明する。
【０２０１】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０２０２】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０２０３】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０２０４】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０２０５】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０２０６】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０２０７】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０２０８】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０２０９】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０２１０】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０２１１】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０２１２】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０２１３】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０２１４】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本発明の各手段として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【０２１５】
図２１（Ａ）に、本実施形態を業務用ゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、コントローラ１１０２などを操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実現するためのプログラム（データ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、このプログラムを格納プログラム（格納情報）と呼ぶ。
【０２１６】
図２１（Ｂ）に、本実施形態を家庭用のゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、コントローラ１２０２、１２０４などを操作してゲームを楽しむ。この場合、上記格納プログラム（格納情報）は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９などに格納されている。
【０２１７】
図２１（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-１〜１３０４-n（ゲーム機、携帯電話）とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム（格納情報）は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体１３０６に格納されている。端末１３０４-１〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-１〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-１〜１３０４-nに伝送し端末において出力することになる。
【０２１８】
なお、図２１（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実現するようにしてもよい。また、本発明の各手段を実現するための上記格納プログラム（格納情報）を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０２１９】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０２２０】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０２２１】
例えば、本実施形態で説明した個別ブレンド率や全体ブレンド率と数学的に等価なパラメータを用いてモーションブレンドを行う場合も、本発明の均等の範囲に含まれる。
【０２２２】
また、本発明のモーションブレンドは、個別ブレンド率と全体ブレンド率の両方を用いて行ってもよいし、個別ブレンド率と全体ブレンド率のいずれか一方を用いて行ってもよい。
【０２２３】
また、個別ブレンド率や全体ブレンド率の設定手法も、本実施形態で説明した手法に限定されず、種々の変形実施が可能である。また、モーションスクリプトの処理についても種々の変形実施が可能である。
【０２２４】
また、本実施形態では２つのモーション制御部が並列動作する場合について説明したが、３つ以上のモーション制御部を並列動作させてもよい。
【０２２５】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０２２６】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０２２７】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】モデルオブジェクト、スケルトン構造の例を示す図である。
【図３】モーションブレンドについて説明するための図である。
【図４】個別ブレンド率の設定について説明するための図である。
【図５】移動モーションと攻撃モーションの例について示す図である。
【図６】移動モーションと攻撃モーションをブレンドしたモーションの例について示す図である。
【図７】図７（Ａ）、（Ｂ）、（Ｃ）は、イベントが発生したことを条件に、全体ブレンド率及び個別ブレンド率に基づくモーションブレンドを行う手法について説明するための図である。
【図８】ヒットイベントが発生していない時における縦切りモーションの例とヒットイベントが発生した時における縦切りモーションの例について示す図である。
【図９】図９（Ａ）、（Ｂ）、（Ｃ）は、全体ブレンド率や期間Ｔ１、Ｔ２の設定手法について説明するための図である。
【図１０】図１０（Ａ）、（Ｂ）、（Ｃ）は、全体ブレンド率や期間Ｔの設定手法について説明するための図である。
【図１１】図１１（Ａ）、（Ｂ）、（Ｃ）は、再生速度や再生フレーム番号を異ならせたモーションデータをブレンドする手法について説明するための図である。
【図１２】移動モーションスクリプト群、攻撃モーションスクリプト群について説明するための図である。
【図１３】立ちモーションスクリプトの処理例について説明するためのフローチャートである。
【図１４】移動モーションスクリプトの処理例について説明するためのフローチャートである。
【図１５】攻撃モーションスクリプトの処理例について説明するためのフローチャートである。
【図１６】図１６（Ａ）、（Ｂ）、（Ｃ）は、モーション制御部の並列動作について説明するための図である。
【図１７】本実施形態の処理の詳細例について示すフローチャートである。
【図１８】本実施形態の処理の詳細例について示すフローチャートである。
【図１９】本実施形態の処理の詳細例について示すフローチャートである。
【図２０】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図２１】図２１（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
ＭＯＢ      モデルオブジェクト
αＡ、αＢ  全体ブレンド率
βＡ、βＢ  個別ブレンド率
１００  処理部
１１０  移動処理部
１１２  モーション処理部
１１４  第１のモーション制御部（メイン側モーション制御部）
１１６  第２のモーション制御部（サブ側モーション制御部）
１１８  モーションブレンド部
１２０  画像生成部
１３０  音生成部
１６０  操作部
１７０  記憶部
１７２  主記憶部
１７４  描画バッファ
１７６  モーションデータ記憶部
１７８  モーションスクリプト記憶部
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004775989.tif 000005
【図２】
0004775989.tif 000006
【図３】
0004775989.tif 000007
【図４】
0004775989.tif 000008
【図５】
0004775989.tif 000009
【図６】
0004775989.tif 000010
【図７】
0004775989.tif 000011
【図８】
0004775989.tif 000012
【図９】
0004775989.tif 000013
【図１０】
0004775989.tif 000014
【図１１】
0004775989.tif 000015
【図１２】
0004775989.tif 000016
【図１３】
0004775989.tif 000017
【図１４】
0004775989.tif 000018
【図１５】
0004775989.tif 000019
【図１６】
0004775989.tif 000020
【図１７】
0004775989.tif 000021
【図１８】
0004775989.tif 000022
【図１９】
0004775989.tif 000023
【図２０】
0004775989.tif 000024
【図２１】
0004775989.tif 000025