(57)【特許請求の範囲】
【請求項１】
画像を生成するための画像生成システムであって、
複数の部位により構成されるモデルオブジェクトをオブジェクト空間に設定するオブジェクト空間設定手段と、
前記モデルオブジェクトのスケルトン形状を特定するモーションデータを記憶する記憶手段と、
複数の前記モデルオブジェクトのそれぞれについて、同一の前記モーションデータに基づいて前記スケルトン形状を変化させてモーションを行わせるモーション再生手段と、
複数の前記モデルオブジェクトのそれぞれについて、同一の前記モーションデータに対する複数種類のモーション補正の各種類に対応づけて有効又は無効を示すフラグ値を設定する設定手段と、
複数の前記モデルオブジェクトのそれぞれについて、複数種類のモーション補正のうち、有効なフラグ値が設定されているモーション補正の種類に基づいて、前記モーションデータに応じた前記スケルトン形状を変形させるモーション補正を行うモーション補正手段と、
前記オブジェクト空間を仮想カメラから見た画像を生成する手段と、
を含み、
前記設定手段が、
少なくとも２つの前記モデルオブジェクト間において、複数種類のモーション補正それぞれの各フラグ値の組み合わせが異なるように、各フラグ値を設定することを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記モーション補正手段は、
前記モデルオブジェクトの前記モーションデータに応じた位置および回転角度の少なくとも一方を変化させずに、前記モーション補正を行うことを特徴とする画像生成システム。
【請求項３】
コンピュータが使用可能な情報記憶媒体であって、
複数の部位により構成されるモデルオブジェクトをオブジェクト空間に設定するオブジェクト空間設定手段と、
前記モデルオブジェクトのスケルトン形状を特定するモーションデータを記憶する記憶手段と、
複数の前記モデルオブジェクトのそれぞれについて、同一の前記モーションデータに基づいて前記スケルトン形状を変化させてモーションを行わせるモーション再生手段と、
複数の前記モデルオブジェクトのそれぞれについて、同一の前記モーションデータに対する複数種類のモーション補正の各種類に対応づけて有効又は無効を示すフラグ値を設定する設定手段と、
複数の前記モデルオブジェクトのそれぞれについて、複数種類のモーション補正のうち、有効なフラグ値が設定されているモーション補正の種類に基づいて、前記モーションデータに応じた前記スケルトン形状を変形させるモーション補正を行うモーション補正手段と、
前記オブジェクト空間を仮想カメラから見た画像を生成する手段としてコンピュータを機能させるためのプログラムが記憶され、
前記設定手段が、
少なくとも２つの前記モデルオブジェクト間において、複数種類のモーション補正それぞれの各フラグ値の組み合わせが異なるように、各フラグ値を設定することを特徴とする情報記憶媒体。
【請求項４】
請求項３において、
前記モーション補正手段は、
前記モデルオブジェクトの前記モーションデータに応じた位置および回転角度の少なくとも一方を変化させずに、前記モーション補正を行うことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成する画像生成システムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。ガンゲームを楽しむことができる画像生成システムを例にとれば、プレーヤ（操作者）は、銃などを模して作られたガン型コントローラ（シューティングデバイス）を用いて、画面に映し出される敵キャラクタ（モデルオブジェクト）などの標的をシューティングすることで、３次元ゲームを楽しむ。
【０００３】
さて、このような画像生成システムでは、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。従って、敵キャラクタのモーションについてもリアルに表現できることが望まれる。そして、これまでの画像生成システムでは、各フレームでの敵キャラクタのスケルトン形状（骨構造）を特定するモーションデータを予め用意しておき、このモーションデータに基づきモーション再生処理を行うことで、敵キャラクタのモーションを表現していた。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このように単にモーションデータに基づきモーションを再生する手法には、以下のような問題点がある。
（１）プレーヤ（プレーヤが操作するプレーヤキャラクタ、仮想カメラ）の位置や方向が変化したり、プレーヤからのショット（弾等）がヒットした場合にも、敵キャラクタはいつも同じ動きをする。このため、モーション表現が単調になる。
（２）モーション表現が単調にならないように、敵キャラクタのモーションのバリエーションを増やそうとすると、それに比例してモーションデータを増やす必要性が生じる。しかしながら、モーションデータを記憶するメモリの容量は有限であるため、モーションのバリエーションの増加には限界がある。
【０００５】
一方、モーションデータに基づくモーション再生手法には、敵キャラクタの移動経路や配置を常に同じにできるという利点がある。
【０００６】
即ち、この種のガンゲームでは、特定のストーリーにしたがってゲームが進行し、このストーリー展開に沿うように仮想カメラは常に同じ動きをする。従って、敵キャラクタが勝手な経路で移動すると、仮想カメラの撮影範囲に入るべき敵キャラクタが撮影範囲に入らなくなり、スムーズなストーリー展開を実現できない。
【０００７】
しかしながら、モーションデータに基づくモーション再生手法によれば、敵キャラクタの移動経路や配置は常に同じになり、仮想カメラの撮影範囲に入るべき敵キャラクタが撮影範囲に入らなくなる事態を防止できる。従って、このようなモーションデータに基づくモーション再生手法の利点については、生かされることが望まれる。
【０００８】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、モーションデータに基づくモーション再生手法を用いながらも、リアルで多様なモーション表現を少ないデータ量で実現できる画像生成システム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、画像を生成するための画像生成システムであって、複数の部位により構成されるモデルオブジェクトがヒットされた場合に、モーションデータに基づき特定されるモデルオブジェクトのスケルトン形状を、ヒット情報に基づいて微少変形させるモーション補正を行う手段と、モデルオブジェクトの画像を含む画像を生成する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実現（実行）するための情報（プログラム或いはデータ等）を含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実現（実行）するための処理ルーチンを含むことを特徴とする。
【００１０】
本発明では、モデルオブジェクトが複数の部位により構成され、各部位の位置又は回転角度は、スケルトンを構成する骨の位置又は回転角度により特定される。但し、スケルトン、骨は現実に表示されるものではなく、仮想的なものであり、その実体は、各部位の位置又は回転角度を表すデータである。
【００１１】
そして本発明によれば、ショット、パンチ、キック、衝突などによりモデルオブジェクトがヒットされると、モーションデータに基づき特定されるスケルトン形状が微少変形される。これにより、モデルオブジェクトがヒットの衝撃にリアクションする様子を表現できる。この結果、１組のモーションデータを用いながらも、リアルで多様なモーション表現を実現できるようになる。
【００１２】
なお、モーションデータに基づき特定されるスケルトン形状は、モーションデータにより一意に決まるスケルトン形状でもよいし、そのスケルトン形状に対して他の１又は複数のモーション補正を施した後のスケルトン形状でもよい。
【００１３】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、モデルオブジェクトのスケルトン形状をモーションデータに基づき特定される元のスケルトン形状に戻す復元力と、前記ヒット情報とに基づいて、前記モーション補正を行うことを特徴とする。このようにすれば、ヒットの衝撃によりモデルオブジェクトが微少に振動するようになり、更にリアルで多様なモーション表現を実現できる。
【００１４】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、ヒット情報に基づくスケルトン形状の微少変形量が時間経過に伴い徐々に小さくなるように、前記モーション補正を行うことを特徴とする。このようにすれば、ヒット後、時間経過に伴い、モデルオブジェクトの振動の振幅が徐々に小さくなって行く様子を表現できるようになる。
【００１５】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、モデルオブジェクトの所与の部位の位置又は回転角度をほぼ固定しながら、前記モーション補正を行うことを特徴とする。このようにすれば、例えば、オブジェクトの第１の部位（例えば頭部、手、武器）を所与の目標位置に向けながら、或いは、第２の部位（例えば足）を、モーションデータに基づき特定される位置や回転角度に固定しながら、ヒット時にスケルトン形状を微少変形させるモーション補正が行われるようになる。このようにすることで、１組のモーションデータを用いながらも、更に多様なモーション表現を実現できるようになる。
【００１６】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、モデルオブジェクトのボディ座標系の、ワールド座標系に対する位置又は回転角度を、モーションデータに基づき特定される位置又は回転角度にほぼ固定しながら、前記モーション補正を行うことを特徴とする。このようにすれば、モデルオブジェクトのボディ座標系の位置又は回転角度は、モーションデータにしたがって変化するようになる。従って、モデルオブジェクトのスケルトン形状（各部位の動き）などについてはモーション補正により変化するが、モデルオブジェクトの全体の動きについては、モーションデータ通りに動かすことができるようになる。この結果、例えば、ゲーム状況が変化しても、仮想カメラの撮影範囲にモデルオブジェクトを常に収めるなどのカメラワークが可能になる。
【００１７】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、モデルオブジェクトの所与の部位を所与の目標位置に向ける第１のモーション補正を行った後に、前記モーション補正を行うことを特徴とする。このように多段階にモーション補正を行うことで、モーション表現のバラエティ度を更に増すことができる。
【００１８】
また本発明は、画像を生成するための画像生成システムであって、複数の部位により構成されるモデルオブジェクトの、モーションデータに基づき特定されるスケルトン形状を、変形させる第１のモーション補正を行い、前記第１のモーション補正により変形したスケルトン形状を更に変形させる第２のモーション補正を行い・・・・・・第Ｎ−１のモーション補正により変形したスケルトン形状を更に変形させる第Ｎ（Ｎ≧２）のモーション補正を行う手段と、モデルオブジェクトの画像を含む画像を生成する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実現（実行）するための情報（プログラム或いはデータ等）を含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実現（実行）するための処理ルーチンを含むことを特徴とする。
【００１９】
本発明によれば、第１〜第Ｎのモーション補正による多段階のモーション補正が行われるようになる。これにより、例えば同じ１組のモーションデータを用いたモーションであっても、施される第１〜第Ｎのモーション補正の内容が異なれば異なったモーションに見るようになり、モーション表現のバラエティ度を増すことができる。
【００２０】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、前記各第１〜第Ｎのモーション補正を個別に有効、無効に設定するための情報が、モデルオブジェクトに対して設定されることを特徴とする。このようにすれば、例えば、第１のモデルオブジェクトに対しては第１、第２のモーション補正を共に有効にし、第２のモデルオブジェクトに対しては第１のモーション補正を有効にする一方で第２のモーション補正を無効にし、第３のモデルオブジェクトに対しては第１、第２のモーション補正を共に無効にするなどの設定が可能になる。これにより、同じプログラムや同じモーションデータで動くモデルオブジェクトであっても、上記設定を変えることで、異なったモーションを行うようになる。この結果、多種多様なモーションを行うモデルオブジェクトを簡易に提供できるようになる。
【００２１】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、モデルオブジェクトのボディ座標系の、ワールド座標系に対する位置又は回転角度を、モーションデータに基づき特定される位置又は回転角度にほぼ固定しながら、前記第１〜第Ｎのモーション補正を行うことを特徴とする。このようにすれば、第１〜第Ｎのモーション補正によりモデルオブジェクトのスケルトン形状（各部位の動き）などは変化するが、モデルオブジェクトの全体の動きについては、モーションデータ通りに動かすことができるようになる。
【００２２】
また本発明は、画像を生成するための画像生成システムであって、複数の部位により構成されるモデルオブジェクトの所与の部位を所与の目標位置に向ける共に、モデルオブジェクトがヒットされた場合にモデルオブジェクトのスケルトン形状が微少変形するように、モデルオブジェクトのスケルトン形状を変形させる手段と、モデルオブジェクトの画像を含む画像を生成する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実現（実行）するための情報（プログラム或いはデータ等）を含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実現（実行）するための処理ルーチンを含むことを特徴とする。
【００２３】
本発明によれば、モデルオブジェクトは、その所与の部位（例えば頭部、手、武器）を所与の目標位置（例えばプレーヤキャラクタ、仮想カメラ）に向けながら、モーションデータにしたがって動くようになる。また、モデルオブジェクトがヒットされた場合には、ヒット情報に基づいてそのスケルトン形状が微少変形するようになる。この結果、ガンゲームなどのシューティングゲームの標的（敵キャラクタ）として最適なモデルオブジェクトの動きを実現できるようになる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態を業務用ゲームシステムに適用した場合の構成例を示す図である。
【図２】本実施形態の画像生成システムのブロック図の例である。
【図３】敵キャラクタ（モデルオブジェクト）と、そのスケルトンの例を示す図である。
【図４】骨の回転角度について説明するための図である。
【図５】ヒット情報に基づいてスケルトン形状を微少変形させるモーション補正について説明するための図である。
【図６】図６（Ａ）、（Ｂ）、（Ｃ）は、復元力を用いたモーション補正の手法について説明するための図である。
【図７】図７（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、スケルトン形状の微少変形量を時間経過に伴い徐々に小さくする手法について説明するための図である。
【図８】手（銃）や足を固定しながらモーション補正を行う手法について説明するための図である。
【図９】ベース（ボディ座標系）の位置、回転角度を、モーションデータにより特定される位置、回転角度に固定しながら、モーション補正を行う手法について説明するための図である。
【図１０】頭部や銃をプレーヤの方に向ける第１のモーション補正と、スケルトン形状を微少変形させる第２のモーション補正からなる多段階補正を行う手法について説明するための図である。
【図１１】図１１（Ａ）、（Ｂ）は、各モーション補正の有効、無効を設定するフラグについて説明するための図である。
【図１２】図１２（Ａ）、（Ｂ）も、各モーション補正の有効、無効を設定するフラグについて説明するための図である。
【図１３】本実施形態の全体処理について示すフローチャートである。
【図１４】第１のモーション補正の処理について示すフローチャートである。
【図１５】第１のモーション補正の処理について示すフローチャートである。
【図１６】敵キャラクタの頭部を目標位置に向けさせる手法について説明するための図である。
【図１７】図１７（Ａ）、（Ｂ）、（Ｃ）は、敵キャラクタの銃を目標位置に向けさせる手法について説明するための図である。
【図１８】第２のモーション補正の処理について示すフローチャートである。
【図１９】図１９（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）、（Ｅ）は、第２のモーション補正の手法について説明するための図である。
【図２０】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図２１】図２１（Ａ）、（Ｂ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の好適な実施形態について図面を用いて説明する。なお以下では、本発明を、ガン型コントローラを用いたガンゲーム（シューティングゲーム）に適用した場合を例にとり説明するが、本発明はこれに限定されず、種々のゲームに適用できる。
【００２６】
１．構成
図１に、本実施形態を業務用ゲームシステムに適用した場合の構成例を示す。
【００２７】
プレーヤ５００は、本物のマシンガンを模して作られたガン型コントローラ（広義にはシューティングデバイス）５０２を構える。そして、画面５０４に映し出される敵キャラクタ（広義にはモデルオブジェクト）などの標的を狙ってシューティングすることでガンゲームを楽しむ。
【００２８】
特に、本実施形態のガン型コントローラ５０２は、引き金を引くと、仮想的なショット（弾等）が高速で自動的に連射される。従って、あたかも本物のマシンガンを撃っているかのような仮想現実感をプレーヤに与えることができる。
【００２９】
なお、ショットのヒット位置（着弾位置）は、ガン型コントローラ５０２に光センサを設け、この光センサを用いて画面の走査光を検知することで検出してもよいし、ガン型コントローラ５０２から光（レーザー光）を発射し、この光の照射位置をＣＣＤカメラなどを用いて検知することで検出してもよい。
【００３０】
図２に、本実施形態のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１４０、或いは処理部１００と記憶部１４０と情報記憶媒体１５０を含めばよく）、それ以外のブロック（例えば操作部１３０、画像生成部１６０、表示部１６２、音生成部１７０、音出力部１７２、通信部１７４、Ｉ／Ｆ部１７６、メモリーカード１８０等）については、任意の構成要素とすることができる。
【００３１】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム演算などの各種の処理を行うものであり、その機能は、ＣＰＵ（ＣＩＳＣ型、ＲＩＳＣ型）、ＤＳＰ、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００３２】
操作部１３０は、プレーヤが操作データを入力するためのものであり、その機能は、図１のガン型コントローラ５０２、レバー、ボタン、筺体などのハードウェアにより実現できる。
【００３３】
記憶部１４０は、処理部１００、画像生成部１６０、音生成部１７０、通信部１７４、Ｉ／Ｆ部１７６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３４】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１５０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いは半導体メモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１５０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１５０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実現（実行）するための種々の情報（プログラム、データ）が格納される。
【００３５】
なお、情報記憶媒体１５０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１４０に転送されることになる。また情報記憶媒体１５０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像情報、音情報、表示物の形状情報、テーブルデータ、リストデータ、プレーヤ情報や、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００３６】
画像生成部１６０は、処理部１００からの指示等にしたがって、各種の画像を生成し表示部１６２に出力するものであり、その機能は、画像生成用ＡＳＩＣ、ＣＰＵ、或いはＤＳＰなどのハードウェアや、所与のプログラム（画像生成プログラム）、画像情報により実現できる。
【００３７】
音生成部１７０は、処理部１００からの指示等にしたがって、各種の音を生成し音出力部１７２に出力するものであり、その機能は、音生成用ＡＳＩＣ、ＣＰＵ、或いはＤＳＰなどのハードウェアや、所与のプログラム（音生成プログラム）、音情報（波形データ等）により実現できる。
【００３８】
通信部１７４は、外部装置（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、通信用ＡＳＩＣ、或いはＣＰＵなどのハードウェアや、所与のプログラム（通信プログラム）により実現できる。
【００３９】
なお本発明（本実施形態）の処理を実現するための情報は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１７４を介して情報記憶媒体１５０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４０】
また処理部１００の機能の一部又は全部を、画像生成部１６０、音生成部１７０、又は通信部１７４の機能により実現するようにしてもよい。或いは、画像生成部１６０、音生成部１７０、又は通信部１７４の機能の一部又は全部を、処理部１００の機能により実現するようにしてもよい。
【００４１】
Ｉ／Ｆ部１７６は、処理部１００からの指示等にしたがってメモリーカード（広義には、携帯型ゲーム機などを含む携帯型情報記憶装置）１８０との間で情報交換を行うためのインターフェースとなるものであり、その機能は、メモリーカードを挿入するためのスロットや、データ書き込み・読み出し用コントローラＩＣなどにより実現できる。なお、メモリーカード１８０との間の情報交換を赤外線などの無線を用いて実現する場合には、Ｉ／Ｆ部１７６の機能は、半導体レーザ、赤外線センサーなどのハードウェアにより実現できる。
【００４２】
処理部１００は、ゲーム演算部１１０を含む。
【００４３】
ここでゲーム演算部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクトの位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を決める処理、視点位置や視線角度（視線方向）を決める処理、モーションの再生（生成）処理、オブジェクト空間へオブジェクトを配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム演算処理を、操作部１３０からの操作データ、メモリーカード１８０からのデータ、ゲームプログラムなどに基づいて行う。
【００４４】
ゲーム演算部１１０は、ヒットチェック部１１２、モーション再生部１１４、第１のモーション補正部１１６、第２のモーション補正部１１８を含む。
【００４５】
ここで、ヒットチェック部１１２は、ガン型コントローラを用いてプレーヤが発射した仮想的なショットがモデルオブジェクトにヒットしたか否かを調べるヒットチェック処理を行う。なお、処理負担の軽減のためには、モデルオブジェクトの形状を簡易化した簡易オブジェクトを用いてヒットチェック処理を行うことが望ましい。
【００４６】
モーション再生部１１４は、モデルオブジェクト（敵キャラクタ等）のモーションを、モーションデータ記憶部１４２に記憶されているモーションデータに基づいて再生する処理を行う。
【００４７】
即ち、モーションデータ記憶部１４２には、モデルオブジェクトのスケルトンを構成する骨（部位）の位置又は回転角度等を含むモーションデータが記憶されている。モーション再生部１１４は、このモーションデータを読み出し、このモーションデータに基づいてモデルオブジェクトの骨（部位）を動かすことで（モデルオブジェクトのスケルトン形状を変形させることで）、モデルオブジェクトのモーションを再生する。
【００４８】
なお、モーションデータ記憶部１４２に記憶されるモーションデータは、モーションキャプチャなどを利用して作成したものであることが特に望ましいが、モーションデータを、物理シミュレーション（物理計算を利用したシミュレーション。物理計算は擬似的な物理計算でもよい）などによりリアルタイムに生成するようにしてもよい。
【００４９】
第１のモーション補正部１１６は、モーション再生部１１４によるモーション再生に基づき特定されたスケルトン形状を変形させるモーション補正を行う。
【００５０】
より具体的には、頭部や武器（手）などの部位を、プレーヤ（プレーヤキャラクタ、仮想カメラ）の方向に向けるモーション補正を行う。これにより、プレーヤとモデルオブジェクト（敵キャラクタ）との位置関係に応じて、モデルオブジェクトのモーションが変化するようになり、リアルで多様なモーション表現を少ないデータ量で実現できるようになる。
【００５１】
第２のモーション補正部１１８は、第１のモーション補正部１１６により変形したスケルトン形状を更に変形させるモーション補正を行う。これにより、モデルオブジェクトのモーションが多段階で補正されるようになる。
【００５２】
より具体的には、スケルトン形状を元の形状に戻す復元力や、ヒット情報（ヒット力、ヒット方向等）などに基づいて、モデルオブジェクトのスケルトン形状を微少変形させるモーション補正を行う。これにより、ショットのヒットの衝撃に対して細かくリアクションするモデルオブジェクトを表現できるようになる。
【００５３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５４】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００５５】
２．本実施形態の特徴
図３に、敵キャラクタ２０（モデルオブジェクト）及びそのスケルトン（骨構造）の例を示す。
【００５６】
ここで、図３のスケルトンを構成する骨Ｂ１〜Ｂ１５（部位）は親子構造を有する。例えば、Ｂ１５の親はＢ１４、Ｂ１４の親はＢ１３、Ｂ１３の親はＢ１である。また、Ｂ１２の親はＢ１１、Ｂ１１の親はＢ１０、Ｂ１０の親はＢ１である。また、Ｂ９の親はＢ８、Ｂ８の親はＢ７、Ｂ７の親はＢ２である。またＢ６の親はＢ５、Ｂ５の親はＢ４、Ｂ４の親はＢ２である。またＢ３の親はＢ２であり、Ｂ２の親はＢ１である。更にＢ１の親はベースＢＳとなる。
【００５７】
ここで、ベースＢＳは、敵キャラクタ２０（モデルオブジェクト）のボディ座標系であり、このベースの、ワールド座標系に対する位置や回転角度を変化させることで、敵キャラクタ２０全体を移動させたり回転させたりすることができる。
【００５８】
各骨の位置、回転角度は、親の骨に対する相対位置、相対回転角度で表される。例えば、骨Ｂ２の位置（関節）Ｊ２は、その親の骨Ｂ１の位置Ｊ１に対する相対位置で表される。また、図４に示すように、子の骨ＢＣの回転角度は、親の骨ＢＰを例えばＸＬ軸上に配置した場合の、ＸＬ、ＹＬ、ＺＬ軸回りでの相対回転角度で表される。
【００５９】
なお、図３の骨Ｂ１〜Ｂ１５は現実に表示されるものではなく、仮想的なものであり、その実体は、敵キャラクタ２０（モデルオブジェクト）の各部位の位置や回転角度を表すデータ（座標変換マトリクス）である。
【００６０】
図２のモーションデータ記憶部１４２には、骨Ｂ１〜Ｂ１５の位置Ｊ１〜Ｊ１５や回転角度が、モーションデータとして記憶されている（回転角度のみ記憶してもよい）。例えば、歩きモーションが、ＭＰ１、ＭＰ２、ＭＰ３・・・・ＭＰＮという複数の一連の基準モーション（姿勢）により構成されていたとする。するとこれらの各基準モーションＭＰ１、ＭＰ２、ＭＰ３・・・・ＭＰＮでの各骨の位置、回転角度が、モーションデータとしてモーションデータ記憶部１４２に記憶されている。そして、例えば、第１のフレームでは基準モーションＭＰ１の各骨の位置、回転角度を読み出し、次の第２のフレームでは基準モーションＭＰ２の各骨の位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション再生が実現される。
【００６１】
なお、本実施形態では、ベースＢＳ（ボディ座標系）の、ワールド座標系に対する位置や回転角度についても、モーションデータにより特定されるようになっている。
【００６２】
図３の敵キャラクタ２０を構成する部位である腰１、胸２、頭部３、右上腕４、右前腕５、右手（銃）６、左上腕７、左前腕８、左手９、右大腿１０、右すね１１、右足１２、左大腿１３、左すね１４、左足１５は、各々、骨Ｂ１〜Ｂ１５に追従して動くことになる。従って、骨Ｂ１〜Ｂ１５により構成されるスケルトンの形状が変形すると、これに追従して敵キャラクタ２０の形状も変形するようになる。なお、関節に近い部分については、一定の割合で隣の骨に追従させるようにしてもよい。例えば上腕４の、関節Ｊ５に近い部分については、骨Ｂ４のみならず骨Ｂ５にも一定の割合で追従させるようにする。このようにすれば、関節付近での形状変形を滑らかにすることができる。
【００６３】
さて、本実施形態では、敵キャラクタがショット等によりヒットされた場合に、モーションデータに基づき特定されるモデルオブジェクトのスケルトン形状（他の補正を行った後のスケルトン形状でもよい）を、ヒット力やヒット方向（広義にはヒット情報）に基づいて微少変形させるモーション補正を行っている。例えば図５では、ショットが敵キャラクタの胸にヒットしており、そのヒット力やヒット方向に応じて、スケルトン形状が微少変形している。
【００６４】
このようにすれば、ヒット力やヒット方向が異なれば、スケルトンも異なる形状に変形するようになる。例えばヒット力が大きければ、スケルトン形状の変形量も大きくなる。また、ヒット方向が第１の方向であれば、第１の方向にほぼ沿った方向でスケルトン形状が変形し、ヒット方向が第２の方向であれば、第２の方向にほぼ沿った方向でスケルトン形状が変形する。従って、一連の基準モーションからなる１組のモーションデータだけを用いながらも、種々様々な形状にスケルトンを変形させるできるようになる。この結果、少ないデータ量で、リアルで多様なモーション表現を実現できるようになる。
【００６５】
そして、本実施形態では更に、ヒット情報の他に、スケルトン形状を元のスケルトン形状（モーションデータに基づき特定される形状）に戻す復元力を用いて、モーション補正を行うようにしている。
【００６６】
例えば図６（Ａ）に示すように右方向からヒットされた場合に、骨ＢＡは、図６（Ｂ）に示すように反時計回りに回転する。そして、骨ＢＡが、Ｅ１に示す元の向きからＥ２に示すように反時計回りにθ１だけ回転すると、−Ｋ１×θ１という復元力が働き、骨ＢＡを時計回りに回転させようとする。一方、骨ＢＡが、Ｅ１に示す元の向きから図６（Ｃ）のＥ３に示すように時計回りにθ２だけ回転すると、−Ｋ１×θ２という復元力が働き、骨ＢＡを反時計回りに回転させようとする。
【００６７】
このような復元力を働かせることで、各骨がバネ運動を行うようになり、ショットがヒットする毎に、スケルトン形状が微少に振動するようになる。この結果、あたかもショットのヒットによるリアクションで敵キャラクタがぴくぴくと震えているかのように見せることができ、単なるモーション再生処理では得られないリアルなモーション表現を実現できる。
【００６８】
また本実施形態では、ヒット情報に基づくスケルトン形状の微少変形量が、時間経過に伴い徐々に小さくなるように、モーション補正を行っている。
【００６９】
即ち本実施形態では、ショットがヒットすると、図７（Ａ）に示すようにタイマー値ＴＭが例えば９０にセットされる。そして、このタイマー値ＴＭは１フレーム毎にデクリメントされる。
【００７０】
タイマー値ＴＭが９０（初期値）の場合には、図７（Ａ）のＥ４に示すように骨ＢＡの回転角度の振幅は最も大きくなる。そして、図７（Ｂ）のＥ５、図７（Ｃ）のＥ６、図７（Ｄ）のＥ７に示すように、ヒット時から時間が経過し、タイマー値ＴＭがデクリメントされるにつれて、骨ＢＡの回転角度の振幅が徐々に小さくなって行く。
【００７１】
これにより、ショットのヒット時にはスケルトン形状は大きく振動し、その後、振動幅が徐々に小さくなって行くように見えるようになる。従って、ショットのヒットの衝撃によるリアクションで敵キャラクタがぴくぴくと震えている様子を、更にリアルに見せることができる。この結果、一連の基準モーションからなる１組のモーションデータだけを用いながらも、単なるモーション再生処理では得られないリアルなモーション表現を実現できるようになる。
【００７２】
また、本実施形態では、敵キャラクタの所与の部位（骨）の位置や回転角度をほぼ固定しながら、モーション補正を行うようにしている。
【００７３】
例えば図８では、敵キャラクタの右手（骨Ｂ６）の位置Ｊ６や回転角度、左手（骨Ｂ９）の位置Ｊ９や回転角度、右足（骨Ｂ１２）の位置Ｊ１２や回転角度、左足（骨Ｂ１５）の位置Ｊ１５や回転角度を固定しながら、スケルトン形状を微少変形させている。
【００７４】
このようにすれば、手と一体形成された銃（武器）の位置や方向が、ショットのヒットが原因となってぶれてしまうという事態が防止される。これにより、銃をプレーヤの方向にしっかりと向けながらショットのヒットにより振動するという敵キャラクタの様子を表現できるようになる。
【００７５】
また、足を固定しながらモーション補正を行うことで、足が地面を滑ってしまい、すり足状態になってしまうという事態を防止できるようになる。
【００７６】
即ち、スケルトン形状を微少変形させるモーション補正により、足の位置や回転角度が変化してしまうと、本来は滑るべきではない足が滑って見えてしまうという問題が生じる。本実施形態では、スケルトン形状を微少変形させるモーション補正を行う際に、図８に示すように足の位置や回転角度を固定させている。従って、このようなモーション補正を行っても、足の位置や回転角度は、モーションデータにより特定される位置や回転角度からずれないようになる。そして、モーションデータは、足が滑らないように予め作られているため、結局、上記のようなモーション補正が行われても、敵キャラクタの足は滑らないようになる。この結果、敵キャラクタのモーションを、より自然なものにすることができる。
【００７７】
また、本実施形態では、敵キャラクタの図３に示すベースＢＳ（ボディ座標系）の、ワールド座標系ＸＷ、ＹＷ、ＺＷに対する位置や回転角度については、モーションデータに基づき特定される位置や回転角度にほぼ固定しながら、モーション補正を行うようにしている。
【００７８】
例えば図９では、ベースＢＳの位置や回転角度が、モーションデータに基づいて変化している。そして、仮想カメラ３０は、このベースＢＳの移動に伴って移動する敵キャラクタが撮影範囲に入るように、その位置や回転角度を変化させている。
【００７９】
この場合に、スケルトン形状を微少変形させるなどのモーション補正により、ベースＢＳの位置や回転角度（ワールド座標系に対する位置、回転角度）が変化してしまうと、敵キャラクタが撮影範囲に入らなくなるなどの事態が生じてしまう。従って、ストーリー展開に沿ったカメラワークを実現できなくなる。
【００８０】
本実施形態では、ベースＢＳの位置や回転角度については、モーションデータに基づき特定される位置や回転角度に固定しながら、モーション補正が行われる。従って、モーション補正により敵キャラクタの部位が変化しても、ベースＢＳの位置や回転角度はモーションデータの通りに変化するようになる。このため、敵キャラクタが仮想カメラ３０の撮影範囲に入らなくなる事態を防止でき、ストーリー展開に沿ったカメラワークを実現できるようになる。
【００８１】
さて、本実施形態では多段階のモーション補正を行っている。例えば、モーションデータに基づき特定されるスケルトン形状を変形させる第１のモーション補正を行い、次に、この第１のモーション補正により変形したスケルトン形状を更に変形させる第２のモーション補正を行う。なお、更に第３、第４・・・・第Ｎのモーション補正を行うようにしてもよい。
【００８２】
より具体的には、図１０のＦ１では、単にモーションデータに基づくモーション再生を行っている。この場合、敵キャラクタ２０は、プレーヤ（プレーヤキャラクタ、仮想カメラ）の方を向くことなく、モーションデータに基づいて例えば歩きモーションを行う。
【００８３】
一方、図１０のＦ２では、敵キャラクタ２０の頭部や銃（右手）をプレーヤの方に向かせる第１のモーション補正を行っている。このようにすれば、Ｆ１に示すような歩きモーションのモーションデータを用いながらも、プレーヤの方に頭部や銃を向ける敵キャラクタ２０のモーションを実現できるようになる。この結果、図１０のＦ１に示すような単なるモーション補正のみを行う場合に比べて、１組のモーションデータで、より多様なモーションを表現できるようになる。
【００８４】
更に、図１０のＦ３では、プレーヤからのショットのヒットにより敵キャラクタ２０のスケルトン形状を微少変形させる第２のモーション補正を行っている。このようにすれば、敵キャラクタの頭部や銃（広義には所与の部位）をプレーヤ（広義には目標位置）の方に向けると共に、敵キャラクタがヒットされた場合にスケルトン形状が微少変形するような変形処理を実現できる。この結果、図１０のＦ１に示すような単なるモーション補正のみを行う場合や、図１０のＦ２に示すような第１のモーション補正のみを行う場合に比べて、１組のモーションデータで、より多様なモーションを表現できるようになる。
【００８５】
なお、各モーション補正を個別に有効、無効に設定するためのフラグ（広義には情報）を、敵キャラクタ（モデルオブジェクト）毎に設定できることが望ましい。
【００８６】
例えば図１１（Ａ）では、敵キャラクタ２０に対しては、フラグＨＦ（頭部をプレーヤの方に向けるモーション補正の有効、無効を設定するフラグ）、フラグＧＦ（銃をプレーヤの方に向けるモーション補正の有効、無効を設定するフラグ）、フラグＲＦ（ヒットの衝撃にリアクションするモーション補正の有効、無効を設定するフラグ）が、全て１（有効）に設定されている。従って、図１１（Ｂ）に示すように、この敵キャラクタ２０は、プレーヤの方に頭部や銃を向けると共に、ショットがヒットした場合にリアクション（微少振動）するようになる。
【００８７】
一方、敵キャラクタ２１に対しては、フラグＨＦ、ＧＦが１（有効）に設定されているが、フラグＲＦが０（無効）に設定されている。従って、図１１（Ｂ）に示すように、この敵キャラクタ２１はプレーヤの方に頭部や銃を向けないが、ショットがヒットした場合にはリアクションするようになる。
【００８８】
また、敵キャラクタ２２に対しては、フラグＨＦ、ＧＦ、ＲＦが全て０（無効）に設定されている。従って、図１１（Ｂ）に示すように、この敵キャラクタ２２はプレーヤの方に頭部や銃を向けないと共に、ショットがヒットした場合にもリアクションしないようになる。
【００８９】
また、図１２（Ａ）では、ゲーム中であるため、敵キャラクタ２０に対しては、フラグＨＦ、ＧＦ、ＲＦが全て１（有効）に設定されている。従って、ゲーム中においては敵キャラクタ２０は、プレーヤの方に頭部や銃を向けると共に、ショットがヒットした場合に微少振動するようになる。
【００９０】
一方、図１２（Ｂ）では、デモ中（アトラクション中）であるため、敵キャラクタ２０に対しては、フラグＨＦ、ＧＦ、ＲＦが全て０（無効）に設定されている。従って、デモ中においては敵キャラクタ２０は、プレーヤの方に頭部や銃を向けないと共に、ショットがヒットした場合にもリアクションしないようになる。
【００９１】
以上のように、モーション補正の有効、無効を制御するための各種フラグを、各敵キャラクタ毎に設定可能にすることで、ゲーム状況やゲームモードなどに応じて、敵キャラクタの動きを異なったものにすることができる。従って、同一のプログラム或いは同一のモーションデータで動く敵キャラクタであっても、各フラグを異ならせることで、異なった動きをするようになる。この結果、敵キャラクタの更に多様なモーション表現を実現できる。
【００９２】
３．本実施形態の処理
次に、本実施形態の処理の詳細例についてフローチャートを用いて説明する。
【００９３】
図１３は、本実施形態の処理の全体について示すフローチャートである。
【００９４】
まず、図２のモーションデータ記憶部１４２からモーションデータを読み出し、モーションデータに基づくモーション再生を行う（ステップＳ１）。即ち、モーションデータに基づき、当該フレームでの各部位（骨）の位置や回転角度を求める。
【００９５】
次に、図１０のＦ２で説明したような、頭部と銃の向きに関する第１のモーション補正を行う（ステップＳ２）。
【００９６】
次に、ショットがヒットしたか否かを判断し、ヒットした場合にはステップＳ４に、ヒットしなかった場合にはステップＳ７に移行する（ステップＳ３）。
【００９７】
ステップＳ４に移行した場合には、敵キャラクタのリアクション（第２のモーション補正）を開始するか否かを、図１１（Ａ）〜図１２（Ｂ）で説明したフラグＲＦに基づいて判断する。そして、開始する場合にはステップＳ５に移行し、開始しない場合にはステップＳ７に移行する。
【００９８】
ステップＳ５に移行した場合には、ヒット力とヒット方向を決定する。そして、図７（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）で説明したリアクションのタイマー値ＴＭに初期値（例えば９０）をセットする（ステップＳ６）。
【００９９】
次に、タイマー値ＴＭをデクリメントし（ステップＳ７）、タイマー値ＴＭが０になったか否かを判断する（ステップＳ８）。そして、０になった場合には、そのままステップＳ１に戻る。一方、０になっていない場合には、ステップＳ９に移行してリアクションに関する第２のモーション補正を行った後に、ステップＳ１に戻る。
【０１００】
以上のようにして１フレーム分の処理を完了する。
【０１０１】
図１４は、図１３のステップＳ２に示す第１のモーション補正のフローチャートである。
【０１０２】
まず、図１６に示す目標位置ＴＰ（例えばプレーヤの位置）を決定する（ステップＳ１０）。
【０１０３】
次に、敵キャラクタの頭部を目標位置ＴＰに向けるか否かを、図１１（Ａ）〜図１２（Ｂ）で説明したフラグＨＦに基づき判断する（ステップＳ１１）。そして、目標位置に向ける場合にはステップＳ１２に、向けない場合にはステップＳ１７に移行する。
【０１０４】
ステップＳ１７に移行した場合には、モーションデータにより特定される元の視線ベクトルＭＨＶの方向に、敵キャラクタの頭部を向ける。
【０１０５】
一方、ステップＳ１２に移行した場合には、図１６に示すように頭部から目標位置ＴＰへのベクトルＴＨＶを求める。そして、モーションデータにより特定される元の視線ベクトルＭＨＶと、ＴＨＶとのなす角度θＨ１を求める（ステップＳ１３）。
【０１０６】
次に、θＨ１が９０度よりも小さいか否かを判断し（ステップＳ１４）、９０度以上の場合にはステップＳ１７に移行し、元の視線ベクトルＭＨＶの方向に頭部を向ける。即ち、θＨ１が９０度以上の場合には敵キャラクタの頭部はプレーヤの方を向かないようになる。頭部を９０度以上回転させるのは、現実世界の事象を考慮すると不自然だからである。
【０１０７】
θＨ１が９０度よりも小さい場合には、敵キャラクタの視線ベクトルＨＶを、ＨＶとＭＨＶとのなす角度θＨ２が４５度以内に収まるように補正する（ステップＳ１５）。そして、補正されたＨＶの方向に頭部を向けるようにする（ステップＳ１６）。
【０１０８】
次に、銃を目標位置ＴＰ（プレーヤ）に向けるか否かを、図１１（Ａ）〜図１２（Ｂ）で説明したフラグＧＦに基づき判断する（ステップＳ１８）。そして、向けない場合にはステップＳ２４に移行し、向ける場合にはステップＳ１９に移行する。
【０１０９】
ステップＳ２４に移行した場合には、胸と両腕を、モーションデータにより特定される元の方向に向けるようにする。
【０１１０】
一方、ステップＳ１９に移行した場合には、図１７（Ａ）に示すように、胸から目標位置ＴＰへのベクトルＴＧＶを求める。そして、モーションデータにより特定される元の銃方向ベクトルＭＧＶと、ＴＧＶとのなす角度θＧを求める（ステップＳ２０）。
【０１１１】
次に、θＧが６０度よりも小さいか否かを判断し（ステップＳ２１）、６０度以上の場合には、ステップＳ２４に移行し、胸と両腕を、モーションデータにより特定される元の方向に向けるようにする。
【０１１２】
一方、θＧが６０度よりも小さい場合には、図１７（Ｂ）に示すように、胸を、ベースの座標系のＹ軸回りで回転させて方向を合わせる（ステップＳ２２）。次に、図１７（Ｃ）に示すように、両腕を、胸の座標系のＸ軸回りで回転させて方向を合わせる（ステップＳ２３）。
【０１１３】
以上のようにして、敵キャラクタの頭部や銃の向きを目標位置（プレーヤ）に向ける第１のモーション補正が実現される。
【０１１４】
図１８は、図１３のステップＳ９に示す第２のモーション補正のフローチャートである。
【０１１５】
まず、ヒット部位に応じたヒット力を各部位（骨）に加える（ステップＳ３０）。例えば図１９（Ａ）では頭部にショットがヒットしており、この場合には、頭部に対するヒット力を最大にし、頭部から遠く離れるにつれて、加えるヒット力を小さくする。
【０１１６】
次に、処理対象が腰か否かを判断し（ステップＳ３１）、腰ではない場合には、ヒット力と復元力（図６（Ａ）、（Ｂ）、（Ｃ）参照）と減衰抵抗に基づき、各部位（骨）を微少変位させるための回転速度を更新する。より具体的には次式（１）に示すような計算を行う。
【０１１７】
ωn＝ωn-1−Ｋ１×△θn-1−Ｋ２×ωn-1＋ＦＨ    （１）
上式（１）において、ωn、ωn-1はｎ、n-1フレームにおける回転速度、Ｋ１はバネ係数（復元力の係数）、△θn-1はn-1フレームでの部位の微少回転変位量、Ｋ２は減衰抵抗の係数、ＦＨはヒット力である。
【０１１８】
次に、更新された回転速度に基づいて、各部位（骨）の微少回転変位量を更新する。より具体的には次式（２）に示すような計算を行う。
【０１１９】
△θn＝（ＴＭ／ＴＭＳ）×（△θn-1＋ωｎ）    （２）
上式（２）において、ＴＭは図７（Ａ）〜（Ｄ）で説明したタイマー値であり、ＴＭＳはタイマー値の初期値（例えば９０）である。また、△θn、△θn-1はn、ｎ-1フレームにおける微少回転変位量であり、ωnは上式（１）で求められた微少回転変位量である。
【０１２０】
なお、上式（１）、（２）の計算は、実際には各軸回りの回転に対して行う。
【０１２１】
処理対象が腰の場合には、回転速度のみならず移動速度も更新する（ステップＳ３４）。また、微少回転変位量のみならず、微少移動変位量も更新する（ステップＳ３５）。
【０１２２】
即ち図１９（Ｂ）に示すように、腰以外の部位である例えば頭部３では、回転角度だけを変位させる。また、図１９（Ｃ）に示すように、腰１では、回転角度のみならず位置も変位させる。
【０１２３】
なお、腕（上腕、前腕）では、図８で説明したように手（銃）が固定され回転の自由度が少ないため、図１９（Ｄ）に示すように、肩と手を結んだ軸回りで腕を微少回転させるようにする。また、脚（大腿、すね）では、図８で説明したように足が固定され回転の自由度が少ないため、図１９（Ｅ）に示すように、股関節と足を結んだ軸回りで脚を微少回転させるようにする。
【０１２４】
次に、腰、胸、頭部の位置、回転角度を決定する（ステップＳ３６）。
【０１２５】
より具体的には、まず、モーションデータに基づき図３のベースＢＳの位置、回転角度が決定される。次に、このベースＢＳの位置、回転角度と、モーションデータと、ステップＳ３５で求められた微少回転変位量、微少移動変位量とに基づいて、腰の位置、回転角度が決定される（腰の骨のワールド座標系への座標変換マトリクスが決定される）。
【０１２６】
次に、求められた腰の位置、回転角度と、図１４、図１５の第１のモーション補正により変化したモーションデータと、ステップＳ３３で得られた微少回転変位量とに基づいて、胸の位置、回転角度が決定される（胸の骨のワールド座標系への座標変換マトリクスが決定される）。
【０１２７】
次に、求められた胸の位置、回転角度と、図１４、図１５の第１のモーション補正により変化したモーションデータと、ステップＳ３３で得られた微少回転変位量とに基づいて、頭部の位置、回転角度が決定される（頭部の骨のワールド座標系への座標変換マトリクスが決定される）。
【０１２８】
次に、胸の位置、回転角度により特定される両肩の位置と、固定されている両手（銃）の位置とに基づき、両腕の位置、回転角度が決定される（ステップＳ３７）。即ち、図１９（Ｄ）の微少回転変位量を考慮して、インバースキネマティクスにより、上腕、前腕の位置、回転角度が決定される（上腕、前腕の骨のワールド座標系への座標変換マトリクスが決定される）。
【０１２９】
次に、腰の位置、回転角度により特定される股関節の位置と、固定されている両足の位置とに基づき、両脚の位置、回転角度が決定される（ステップＳ３８）。即ち、図１９（Ｅ）の微少回転変位量を考慮して、インバースキネマティクスにより、大腿、すねの位置、回転角度が決定される（大腿、すねの骨のワールド座標系への座標変換マトリクスが決定される）。
【０１３０】
以上のようにして、全ての部位（骨）の位置、回転角度（ワールド座標系への座標変換マトリクス）が決定される。そして、部位の位置、回転角度が決定されると、部位を構成する各頂点の位置が決定され（各頂点がワールド座標系に座標変換され）、敵キャラクタの画像を生成できるようになる。
【０１３１】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図２０を用いて説明する。同図に示すシステムでは、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４が、システムバス１０１６により相互にデータ送受信可能に接続されている。そして前記画像生成ＩＣ１０１０にはディスプレイ１０１８が接続され、音生成ＩＣ１００８にはスピーカ１０２０が接続され、Ｉ／Ｏポート１０１２にはコントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には通信装置１０２４が接続されている。
【０１３２】
情報記憶媒体１００６は、プログラム、表示物を表現するための画像データ、音データ等が主に格納されるものである。例えば家庭用ゲームシステムではゲームプログラム等を格納する情報記憶媒体としてＤＶＤ、ゲームカセット、ＣＤＲＯＭ等が用いられる。また業務用ゲームシステムではＲＯＭ等のメモリが用いられ、この場合には情報記憶媒体１００６はＲＯＭ１００２になる。
【０１３３】
コントロール装置１０２２はゲームコントローラ、操作パネル等に相当するものであり、プレーヤがゲーム進行に応じて行う判断の結果をシステム本体に入力するための装置である。
【０１３４】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（システム本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、ＣＰＵ１０００はシステム全体の制御や各種データ処理を行う。ＲＡＭ１００４はこのＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果等が格納される。また本実施形態を実現するための論理的な構成を持つデータ構造は、このＲＡＭ又は情報記憶媒体上に構築されることになる。
【０１３５】
更に、この種のシステムには音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていてゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から送られる画像情報に基づいてディスプレイ１０１８に出力するための画素情報を生成する集積回路である。なおディスプレイ１０１８として、いわゆるヘッドマウントディスプレイ（ＨＭＤ）と呼ばれるものを使用することもできる。
【０１３６】
また、通信装置１０２４は画像生成システム内部で利用される各種の情報を外部とやりとりするものであり、他の画像生成システムと接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受することなどに利用される。
【０１３７】
そして図１〜図１９（Ｅ）で説明した種々の処理は、プログラムやデータなどの情報を格納した情報記憶媒体１００６、この情報記憶媒体１００６からの情報等に基づいて動作するＣＰＵ１０００、画像生成ＩＣ１０１０或いは音生成ＩＣ１００８等によって実現される。なお画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【０１３８】
図１に示すような業務用ゲームシステムに本実施形態を適用した場合には、内蔵されるシステムボード（サーキットボード）１１０６に対して、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ等が実装される。そして、本実施形態の処理（本発明の手段）を実行（実現）するための情報は、システムボード１１０６上の情報記憶媒体である半導体メモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１３９】
図２１（Ａ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＤＶＤ１２０６、メモリーカード１２０８、１２０９等に格納されている。
【０１４０】
図２１（Ｂ）に、ホスト装置１３００と、このホスト装置１３００と通信回線（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）１３０２を介して接続される端末１３０４-1〜１３０４-nとを含む画像生成システムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、半導体メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、ＣＰＵ、画像生成ＩＣ、音処理ＩＣを有し、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１４１】
なお、図２１（Ｂ）の構成の場合に、本発明の処理を、ホスト装置（サーバー）と端末とで分散して処理するようにしてもよい。また、本発明を実現するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１４２】
また通信回線に接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムを通信回線に接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリーカード、携帯型ゲーム機）を用いることが望ましい。
【０１４３】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１４４】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１４５】
また、モデルオブジェクトのスケルトン形状を微少変形させる手法は、本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【０１４６】
また、モーション補正の手法も、本実施形態で説明したものに限定されない。
【０１４７】
また、本実施形態では２段階のモーション補正を行う場合について説明したが、３段階以上のモーション補正を行うようにしてもよい。
【０１４８】
また、本実施形態では、モデルオブジェクトが敵キャラクタである場合について説明したが、本発明のモデルオブジェクトは敵キャラクタに限定されず、プレーヤキャラクタ、移動体、固定物など、少なくとも骨構造を有しモーションデータにより動く種々のモデルオブジェクトを考えることができる。
【０１４９】
また、本実施形態では、ショットによりモデルオブジェクトがヒットされる場合を例にとり説明したが、本発明におけるモデルオブジェクトのヒットは、これに限定されず、例えば、剣によるヒットや、パンチやキックによるヒット等も含まれる。
【０１５０】
また本発明はガンゲーム以外にも種々のゲーム（ガンゲーム以外のシューティングゲーム、格闘ゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１５１】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、画像生成システム、ゲーム画像を生成するシステムボード等の種々の画像生成システムに適用できる。
【符号の説明】
【０１５２】
ＢＳ          ベース（ボディ座標系）
Ｂ１〜Ｂ１５  骨
Ｊ１〜Ｊ１５  骨の位置（関節）
１            腰
２            胸
３            頭部
４            右上腕
５            右前腕
６            右手（銃）
７            左上腕
８            左前腕
９            左手
１０          右大腿
１１          右すね
１２          右足
１３          左大腿
１４          左すね
１５          左足
２０、２１、２２  敵キャラクタ（モデルオブジェクト）
３０          仮想カメラ
１００  処理部
１１０  ゲーム演算部
１１２  ヒットチェック部
１１４  モーション再生部
１１６  第１のモーション補正部
１１８  第２のモーション補正部
１３０  操作部
１４０  記憶部
１４２  モーションデータ記憶部
１５０  情報記憶媒体
１６０  画像生成部
１６２  表示部
１７０  音生成部
１７２  音出力部
１７４  通信部
１７６  Ｉ／Ｆ部
１８０  メモリーカード
【図１】
0004669054.tif 000002
【図２】
0004669054.tif 000003
【図３】
0004669054.tif 000004
【図４】
0004669054.tif 000005
【図５】
0004669054.tif 000006
【図６】
0004669054.tif 000007
【図７】
0004669054.tif 000008
【図８】
0004669054.tif 000009
【図９】
0004669054.tif 000010
【図１０】
0004669054.tif 000011
【図１１】
0004669054.tif 000012
【図１２】
0004669054.tif 000013
【図１３】
0004669054.tif 000014
【図１４】
0004669054.tif 000015
【図１５】
0004669054.tif 000016
【図１６】
0004669054.tif 000017
【図１７】
0004669054.tif 000018
【図１８】
0004669054.tif 000019
【図１９】
0004669054.tif 000020
【図２０】
0004669054.tif 000021
【図２１】
0004669054.tif 000022