(57)【特許請求の範囲】
【請求項１】
複数のパーツが関節により接続されたオブジェクトのモーションを生成するために予め与えられたモーションデータであって、前記関節の回転角を含むモーションデータを用いて前記オブジェクトを動作させて画像生成を行うゲームシステムであって、
所与のイベントが発生した場合に、複数のパーツが関節により接続されたオブジェクトのモーションを補正するためのオフセット情報を生成し、当該オフセット情報に基づき前記オブジェクトのモーションを補正するモーション補正手段と、
補正後のモーションで複数のパーツが関節により接続されたオブジェクトを動作させて画像生成を行う画像生成手段と、
を含み、
前記モーション補正手段は、
フレームの進行に従い前記オフセット情報として生成されるオフセット値を減衰させ、
予め与えられたモーションデータの前記関節の回転角に対して、前記オフセット値を加算する補正を行い、補正後の関節の回転角を求め、
前記画像生成手段は、
所与のイベントが発生しない場合には、予め与えられたモーションデータであって、前記関節の回転角を含むモーションデータに基づき前記オブジェクトを動作させ、
所与のイベントが発生した場合には、補正後の関節の回転角を含むモーションデータに基づき前記オブジェクトを動作させることを特徴とするゲームシステム。
【請求項２】
請求項１において、
前記モーション補正手段が、
前記オブジェクトに加わった衝撃ベクトルに基づきオフセット情報を生成することを特徴とするゲームシステム。
【請求項３】
請求項２において、
前記モーション補正手段が、
プレーヤの入力にもとづいて前記衝撃ベクトルを発生させることを特徴とするゲームシステム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記モーション補正手段が、
フレームの進行に従い生成するオフセット値を０に収束させることを特徴とするゲームシステム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記モーション補正手段が、
前記オブジェクトの所与の基準パーツについてのみモーションの補正を行うことを特徴とするゲームシステム。
【請求項６】
複数のパーツが関節により接続されたオブジェクトのモーションを生成するために予め与えられたモーションデータであって、前記関節の回転角を含むモーションデータを用いて前記オブジェクトを動作させて画像生成を行うためのコンピュータが読取可能な情報記憶媒体であって、
所与のイベントが発生した場合に、複数のパーツが関節により接続されたオブジェクトのモーションを補正するためのオフセット情報を生成し、当該オフセット情報に基づき前記オブジェクトのモーションを補正するモーション補正手段と、
補正後のモーションで複数のパーツが関節により接続されたオブジェクトを動作させて画像生成を行う画像生成手段と、
してコンピュータを機能させるプログラムを含み、
前記モーション補正手段は、
フレームの進行に従い前記オフセット情報として生成されるオフセット値を減衰させ、
予め与えられたモーションデータの前記関節の回転角に対して、前記オフセット値を加算する補正を行い、補正後の関節の回転角を求め、
前記画像生成手段は、
所与のイベントが発生しない場合には、予め与えられたモーションデータであって、前記関節の回転角を含むモーションデータに基づき前記オブジェクトを動作させ、
所与のイベントが発生した場合には、補正後の関節の回転角を含むモーションデータに基づき前記オブジェクトを動作させることを特徴とする情報記憶媒体。
【請求項７】
請求項６において、
前記モーション補正手段が、
前記オブジェクトに加わった衝撃ベクトルに基づきオフセット情報を生成することを特徴とする情報記憶媒体。
【請求項８】
請求項７において、
前記モーション補正手段が、
プレーヤの入力にもとづいて前記衝撃ベクトルを発生させることを特徴とする情報記憶媒体。
【請求項９】
請求項６乃至８のいずれかにおいて、
前記モーション補正手段が、
フレームの進行に従い生成するオフセット値を０に収束させることを特徴とする情報記憶媒体。
【請求項１０】
請求項６乃至９のいずれかにおいて、
前記モーション補正手段が、
前記オブジェクトの所与の基準パーツについてのみモーションの補正を行うことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。ガンゲームを楽しむことができるゲームシステムを例にとれば、プレーヤ（操作者）は、銃などを模して作られたガン型コントローラ（シューティングデバイス）を用いて、画面に映し出される敵キャラクタ（オブジェクト）などの標的オブジェクトをシューティングすることで、３次元ゲームを楽しむ。
【０００３】
さて、このようなゲームシステムでは、プレーヤの仮想現実感の向上のために、よりリアルで高品質な画像を生成することが重要な技術的課題になっている。このため例えば人体の複雑な動きをモーションキャプチャー等で計測して、モーションデータを生成し、当該モーションデータに基づきキャラクタ等の複雑でリアルな動きをゲーム画面上で生成することが行われる。
【０００４】
このとき仮想現実のより一層の向上を図るためには、例えばゲーム空間の敵キャラクタがプレーヤのシューティングにより被弾した場合には、当該敵キャラクタが被弾により受けた衝撃を反映して動作する画像を生成することが好ましい。
【０００５】
しかしシューティングにより敵キャラクタが受ける衝撃の大きさおよび方向はプレーヤの入力やゲーム状況に応じて変化するものであるため、これを反映させたモーションを予め全て用意しておくことはモーションデータのデータ量の増大やデータ管理負荷の増大を招くことになる。
【０００６】
そこでいかにして少ないデータ量でプレーヤの入力やゲーム状況に応じて発生する衝撃やゆれをモーションに反映させるかが問題となる。
【０００７】
また、衝撃やゆれを反映させるためにモーションの変更や補正をリアルタイムに行った場合には、その変更や補正の具合によっては次のモーションに滑らかにつながらず画像に不具合が生じる可能性もある。
【０００８】
本発明は以上のような課題に鑑みてなされたものであり、その目的とするところは少ないモーションデータおよび演算負荷でプレーヤの入力やゲーム状況に応じて発生する衝撃やゆれをモーションに反映させてリアルな映像を生成可能なゲームシステム及び情報記憶媒体を提供することにある。
【０００９】
【課題を解決するための手段】
本発明は、画像生成を行うゲームシステムであって、複数のパーツが関節により接続されたオブジェクトのモーションを補正するためのオフセット情報をゲーム状況に基づき生成し、当該オフセット情報に基づき前記オブジェクトのモーションを補正するモーション補正手段と、補正後のモーションで複数のパーツが関節により接続されたオブジェクトを動作させて画像生成を行う手段と、を含むことを特徴とする。
【００１０】
また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体または搬送波に具現化されるプログラムを含む）であって、上記手段を実行するためのモジュールを含むことを特徴とする。
【００１１】
ここにおいてモーションを補正するとは、予め用意されているモーションデータを補正する場合でもよいし、リアルタイムにモーションを生成する際に動きに補正を加える場合でもよい。
【００１２】
ゲーム状況に基づきとは、プレーヤの入力に基づき発生するイベントでもよいし、例えば飛来する障害物にヒットした場合などプレーヤの入力とは無関係に発生するイベントに基づく場合でもよい。
【００１３】
本発明によればゲーム状況に応じて、リアルタイムに生成されたオフセット情報を用いて前記オブジェクトのモーションを補正してオブジェクトを動作させるので、予め多数のモーションパターンを用意しておかなくてもよい。
【００１４】
しかもオフセット情報を用いてモーションを補正するため、もと元のモーションの動きに揺らぎが加わったような動きを生成することができる。従ってゲーム状況により何らかの外力等が加わったり、または何らかのイベントが発生することによりオブジェクトが揺らぐ様子を表現する場合に便利である。
【００１５】
またゲーム状況に応じてリアルタイムにオフセット情報を生成するものであるため、例えば加わった力の向きや大きさを反映させたゆれを表現することができるため、よりリアリティに富んだ画像を生成することができる。
【００１６】
このように本発明によれば少ないモーションデータおよび演算負荷でプレーヤの入力やゲーム状況に応じて発生する衝撃やゆれをモーションに反映させてリアルな映像が生成可能なゲームシステム及び情報記憶媒体を提供することができる。
【００１７】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記モーション補正手段が、モーションデータの回転情報を補正するためのオフセット情報を生成し、当該オフセット情報に基づき前記オブジェクトのモーションデータの回転情報を補正することを特徴とする。
【００１８】
一般にモーションデータは各関節の回転情報や位置情報（長さ）で与えられる場合が多い。この場合回転情報に補正を加えることで、関節間の長さを固定して動きのみ変形させることができるので、アルゴリズムを複雑にすることなく簡単な制御でゆれの表現を行うことができる。
【００１９】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、
前記モーション補正手段が、前記オブジェクトに加わった衝撃ベクトルに基づきオフセット情報を生成することを特徴とする。
【００２０】
ここで前記オブジェクトに加わった衝撃ベクトルとは、プレーヤの操作入力により発生する場合でもよいし、ゲーム空間でおきた他の要因により発生する場合でもよい。
【００２１】
本発明によれば衝撃ベクトルの大きさや方向を反映させたゆれを表現するためのオフセット値を生成することができる。このため少ないモーションデータおよび演算負荷でゲーム中に加わった衝撃の大きさや向きに応じて発生する衝撃やゆれを反映したリアルな映像を生成することができる。
【００２２】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記モーション補正手段が、プレーヤの入力にもとづいて前記衝撃ベクトルを発生させること特徴とする。
【００２３】
本発明によれば例えばプレーヤが行ったシューティングによる被弾方向等を反映させて被弾したキャラクタ等のゆれを表現することができる。このため、どちらからうっても被弾したキャラクタが同じような動きをする場合にくらべ、よりリアルな画像を生成できる。
【００２４】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記モーション補正手段が、フレームの進行に従い生成するオフセット値を減衰させることを特徴とする。
【００２５】
本発明によればフレームの進行に従い生成するオフセット値を減衰させるため、オブジェクトの揺らぎが次第におさまっていくようすを表現することができる。
【００２６】
また最終的にオフセット値を０にすることにより元のモーションに戻るため、次のモーションと滑らかに繋げることが容易になる。
【００２７】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記モーション補正手段が、フレームの進行に従い生成するオフセット値を０に収束させることを特徴とする。
【００２８】
フレームの進行に従い生成するオフセット値を０に収束させるためには例えば、抵抗力等を作用させてオフセット値を求めるとよい。
【００２９】
本発明によればフレームの進行に従いオフセット値が０に収束するため、オブジェクトに揺らぎが発生して次第に収まる様子を表現することができる。
【００３０】
また最終的にオフセット値が０になり元のモーションに戻るため、次のモーションと滑らかに繋げることが容易になる。
【００３１】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記モーション補正手段が、前記オブジェクトの所与の基準パーツについてのみモーションの補正を行うことを特徴とする。
【００３２】
基準パーツは必ずしも衝撃を直接受けたパーツでなくてもよい。このようにすることで全てのパーツ、または一部の複数のパーツを補正する場合に比べ演算負荷が軽くなる。
【００３３】
ここで複数のパーツは関節により接続されているため、基準パーツの揺らぎは、基準パーツを直接または間接の親パーツとする他の子パーツに反映させる。
【００３４】
従ってより少ない演算負荷でオブジェクトのゆれを表現することができる。
【００３５】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００３６】
１．構成
図１に、本実施形態のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく、それ以外のブロックについては、任意の構成要素とすることができる。
【００３７】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００３８】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【００３９】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、メインメモリ１７２、フレームバッファ１７４（第１のフレームバッファ、第２のフレームバッファ）として機能し、ＲＡＭなどのハードウェアにより実現できる。
【００４０】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００４１】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００４２】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００４３】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００４４】
セーブ用情報記憶装置１９４は、プレーヤの個人データ（セーブデータ）などが記憶されるものであり、このセーブ用情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００４５】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４６】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４７】
処理部１００は、ゲーム処理部１１０、画像生成部１３０、音生成部１５０を含む。
【００４８】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置するための処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部１６０からの操作データや、セーブ用情報記憶装置１９４からの個人データや、ゲームプログラムなどに基づいて行う。
【００４９】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。また、音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、音声などの音を生成し、音出力部１９２に出力する。
【００５０】
なお、ゲーム処理部１１０、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００５１】
ゲーム処理部１１０は、移動・動作演算部１１２、モーション補正処理部１１４とを含む。
【００５２】
ここで移動・動作演算部１１２は、キャラクタ車などのオブジェクトの移動情報（位置データ、回転角度データ）や動作情報（オブジェクトの各パーツの位置データ、回転角度データ）を演算するものであり、例えば、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【００５３】
より具体的には、移動・動作演算部１１２は、オブジェクトの位置や回転角度を例えば１フレーム（１／６０秒）毎に求める処理を行う。例えば（ｋ−１）フレームでのオブジェクトの位置をＰＭk-1、速度をＶＭk-1、加速度をＡＭk-1、１フレームの時間を△ｔとする。するとｋフレームでのオブジェクトの位置ＰＭk、速度ＶＭkは例えば下式（１）、（２）のように求められる。
【００５４】
ＰＭk＝ＰＭk-1＋ＶＭk-1×△ｔ              （１）
ＶＭk＝ＶＭk-1＋ＡＭk-1×△ｔ              （２）
またモーション補正処理部１１４は、複数のパーツが関節により接続されたオブジェクトのモーションを補正するためのオフセット情報をゲーム状況に基づき生成し、当該オフセット情報に基づき前記オブジェクトのモーションを補正する処理を行う。
【００５５】
またモーションデータの回転情報を補正するためのオフセット情報を生成し、当該オフセット情報に基づき前記オブジェクトのモーションデータの回転情報を補正するようにしてもよい。
【００５６】
また前記オブジェクトに加わった衝撃ベクトルに基づきオフセット情報を生成するようにしてもよい。
【００５７】
またプレーヤの入力にもとづいて衝撃ベクトルを与えるようにしてもよい。
【００５８】
またフレームの進行に従い生成するオフセット値を減衰させるようにしてもよい。
【００５９】
またフレームの進行に従い生成するオフセット値を０に収束させるようににてもよい。
【００６０】
また前記オブジェクトの所与の基準パーツについてのみモーションの補正を行うようにしてもよい。
【００６１】
画像生成部１３０は、ジオメトリ処理部１３２、描画部１４０を含む。
【００６２】
ここで、ジオメトリ処理部１３２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）を行う。そして、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標などの形状データ、或いは頂点テクスチャ座標、輝度データ等）は、記憶部１７０のメインメモリ１７２に保存される。
【００６３】
描画部１４０は、ジオメトリ処理後のオブジェクト（モデル）を、フレームバッファ１７４に描画するための処理を行うものである。
【００６４】
なお前記オブジェクトとして表示画面サイズのポリゴンを用いてもよいし、表示画面を分割したブロックのサイズのポリゴンを用いてもよい。
【００６５】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００６６】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００６７】
２．本実施形態の特徴と処理
本実施の形態の特徴と処理を図面を用いて説明する。
【００６８】
図２は本実施の形態におけるモーションの補正処理の概要について説明するための図である。
【００６９】
２００は複数のパーツが関節により接続されたオブジェクトであり、２１０〜２９０はモーションの補正を行わない場合の各フレームにおけるオブジェクトの画像を模式的に表したものである。
【００７０】
また２１２〜２９２はイベントの発生によりモーションの補正を行った場合の各フレームにおけるオブジェクトの画像を模式的に表したものである。
【００７１】
ここでｍ−１〜ｍ７はオブジェクト２００に予め与えられたモーションデータである。もし当該オブジェクトに対して特別のイベントが発生しない場合には、オブジェクト２００はモーションデータｍ−１〜ｍ７に基づき動作し、２１０〜２９０に示すような画像が生成される。
【００７２】
ここでｎフレーム目でオブジェクト２００に衝撃ベクトルが加わるというイベントが発生したとする。この場合本実施の形態では衝撃によるオブジェクトのゆれを表現するためのオフセット値を生成して、予め与えられたモーションデータに対してオフセット値を加算する補正を行い、補正後のモーションデータ（ｍ０’〜ｍ５’）を用いてオブジェクトの画像を生成する。
【００７３】
すなわち衝撃発生から所定フレームの間（図２ではｎフレーム目からｎ＋５フレーム目まで）、各フレームごとにオフセット値（００〜０５）を生成して、予め与えられたモーションデータ（ｍ０〜ｍ５）にオフセット値（００〜０５）を加算する補正を行い、補正後のモーションデータ（ｍ０’〜ｍ５’）を生成する。
【００７４】
ここにおいて、各フレームごとに生成されるオフセット値の絶対値はフレームが進行するにつれて小さくなり、ｎ＋６フレーム目では０となる。
【００７５】
このようにフレームの進行に伴いオフセット値の値を減衰させることで、時間の経過に従い衝撃によるゆれがおさまる様子を表現することができる。
【００７６】
ここでｍ０が例えば所与の軸の回転角として与えられる場合には、オフセット値Ｏ０も回転角で与えられる。この場合には補正後のモーションデータｍ０は、予め与えられたモーションデータの回転角ｍ０にオフセット値として生成された回転角を加算して得られる（ｍ０’＝ｍ０＋Ｏ０）。
【００７７】
図３はオブジェクトに加わった衝撃によるモーションの補正処理について説明するための図である。
【００７８】
２００は複数のパーツが関節により接続されたオブジェクトである。パーツ３（３３０）の親ベクトルはパーツ２（３２０）であり、パーツ２（３２０）の親ベクトルはパーツ１（３１０）であるとし、パーツ１（３１０）が基準パーツであるとする。パーツ２（３２０）のＰ点に衝撃が加わった場合に、本実施の形態では基準パーツであるパーツ１（２１０）のモーションデータのみに補正を行う。
【００７９】
ここで補正の対象となるモーションデータｍはパーツ１（３１０）の関節の回転情報（ｍｒｘ、ｍｒｙ、ｍｒｚ）である。ｍｒｘ、ｍｒｙ、ｍｒｚはそれぞれパーツ１（３１０）の関節の回転量（パーツ１のローカル座標系であるＸ軸３１２、Ｙ軸３１４、Ｚ軸３１６の回転量）である。従ってこの関節の回転情報（ｍｒｘ、ｍｒｙ、ｍｒｚ）を補正するためのオフセット値Ｏもパーツ１（３１０）の関節の回転量の形式（ｒｘ、ｒｙ、ｒｚ）で求める必要がある。
【００８０】
まず衝撃が加わった直後のフレーム（例えば図２のｎフレーム目）のオフセット値（ｒｘ、ｒｙ、ｒｚ）の演算方法について説明する。衝撃が加わった直後は衝撃による力でパーツ２（３２０）のＰ点に加速度が発生し、これにより初速度Ｖが与えられる。
【００８１】
衝撃点Ｐのパーツ１（３１０）のローカル座標系における位置ベクトルをＰベクトルとすると、点Ｐの速度ベクトルはＶベクトルなので、点Ｐは単位時間あたりＶだけ移動することになる。点ＰがＶベクトル移動した場合の回転量Ｗは次式であたえられる。
【００８２】
【数１】
0004641602.tif 000002
（３）式を用いてＷの各成分（ｗｒｘ、ｗｒｙ、ｗｒｚ）についてを求めると、これがそれぞれ衝撃が加わった場合のパーツ１（３１０）のローカル座標系であるＸ軸、Ｙ軸、Ｚ軸の角初速度となる。
【００８３】
そして衝撃によるゆれが時間とともに減衰するように、以下にしめすばねの運動方程式を適用してオフセット値を演算する。
【００８４】
【数２】
0004641602.tif 000003
ここにおいてｔが時間（フレーム）であり、ｒ（ｒｘ、ｒｙ、ｒｚ）がオフセット値であり、ｋがばね定数であり、αが速度抵抗の比例定数である。
【００８５】
なおｒベクトルの変化量をＶベクトルとおいて離散的に求めると以下のようになる。ｒ’、Ｖ’はｒ、Ｖの次フレームの値である。
【００８６】
【数３】
0004641602.tif 000004
ここで求められたｒ（ｒｘ、ｒｙ、ｒｚ）が衝撃が加わった直後のフレーム（例えば図２のｎフレーム目）のオフセット情報となる。そして予めモーションデータとして与えられているパーツ１（３１０）のローカル座標系のＸ軸、Ｙ軸、Ｚ軸の回転情報（ｍｒｘ、ｍｒｙ、ｍｒｚ）を補正する。
【００８７】
補正後のＸ軸、Ｙ軸、Ｚ軸の回転情報を（ｍｒｘ’、ｍｒｙ’、ｒｍｚ’）とすると以下の式が成り立つ。
【００８８】
ｍｒｘ’＝ｍｒｘ＋ｒｘ        （７）
ｍｒｙ’＝ｍｒｙ＋ｒｙ        （８）
ｍｒｚ’＝ｍｒｚ＋ｒｚ        （９）
次のフレーム以降は衝撃による力は加わらないので、（３）式の演算は不用となり、（５）（６）式により次フレームのオフセット値（ｒｘ、ｒｙ、ｒｚ）を求める。このようにして得られるオフセット値（ｒｘ、ｒｙ、ｒｚ）の値は、フレームの進行に伴い速度抵抗により減衰しやがて０になる。
【００８９】
図４は本実施の形態のモーションの補正処理の一例について説明するためのフローチャート図である。
【００９０】
まずモーションデータを補正するためのオフセット値の初期化を行う（ステップＳ１０）。
【００９１】
次に予め与えられたモーションデータに基づき、オブジェクトを構成する各パーツの関節の位置を決定する（ステップＳ２０）。
【００９２】
次に、予め与えられている各関節のモーションデータに基づき各関節の位置を決定する（ステップＳ２０）。
【００９３】
次に衝撃があった場合には、衝撃点の位置、衝撃速度を特定関節を基準とした座標系で求める（ステップＳ３０）。ここで衝撃点とは、例えば図３のＰであり、衝撃速度とは図３のＶベクトルであり、特定関節を基準とした座標系とは図３のパーツ１のローカル座標系（Ｘ軸３１２、Ｙ軸３１４、Ｚ軸３１６）である。
【００９４】
次に衝撃点の初速度を、特定関節を基準とした座標系の回転初速度に変換するステップＳ５０）。ここで特定関節を基準とした座標系の回転初速度とは例えば図３のＷ（ｗｒｘ、ｗｒｙ、ｗｒｚ）である、（３）式により求めることができる。
【００９５】
次に角速度、関節のばね定数、抵抗力などから特定関節の回転角を補正するためのオフセット値を計算する（ステップＳ６０）（（４）式参照）。
【００９６】
次に求めた特定関節の回転角を補正するためのオフセット値を、モーションデータとして与えられた特定関節の回転角に加算する補正を行う（ステップＳ７０）（（５）〜（７）式参照）。
【００９７】
次に特定関節について補正後のモーションデータを用いて、オブジェクトの画像を生成する（ステップＳ８０）。
【００９８】
そして次フレームの画像を生成する場合には再びステップＳ２０に戻り以降の処理を繰り返す。
【００９９】
３．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図５を用いて説明する。
【０１００】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１０１】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１０２】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１０３】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、所与の画像圧縮方式で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１０４】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１０５】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１０６】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１０７】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１０８】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１０９】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１１０】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１１１】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【０１１２】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０１１３】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０１１４】
図６（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム又はデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１１５】
図６（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１１６】
図６（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１１７】
なお、図６（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１１８】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１１９】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１２０】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１２１】
また本実施の形態では特定関節が腰の部分である場合を例にとり説明したがこれに限られない。他の部分でもよい。
【０１２２】
また本実施の形態では、複数のパーツが関節により接続されたオブジェクトの特定関節にのみにオフセット値による補正を行う場合を例にとり説明したがこれに限られない。全ての関節または一部の複数の関節に対してオフセット値による補正を行う場合でもよい。例えば衝撃点からの各関節までの距離に基づき重み付けをつけて衝撃ベクトルを配分し各関節に作用させるオフセット値を求めるようにしてもよい。
【０１２３】
また本実施の形態ではフレームの進行とともに減衰するオフセット値を得るために（５）式を用いる場合を例にとり説明したがこれに限られない。他の式を用いてもよい。
【０１２４】
また本実施の形態では衝撃の発生等のイベントに基づきモーションを補正する場合を例にとり説明したがこれに限られない。衝撃等の外力が加わらない場合やオブジェクトに自発的に発生するゆれを表現する場合でもよい。
【０１２５】
また本実施の形態ではフレームの進行とともに減衰するようなオフセット値を用いてモーションデータを演算する場合を例にとり説明したがこれに限られない。  例えば次式を用いて関節に与えるオフセット値（ｒｘ、ｒｙ、ｒｚ）をもとめてもよい。
【０１２６】
【数４】
0004641602.tif 000005
ここにおいて、ｒがオフセット値（ｒｘ、ｒｙ、ｒｚ）、Ａは振幅、ωはウェーブの角速度、ｔは時間（フレーム）、ｘはオブジェクトのｘ座標、βはｘによるずれ幅である。
【０１２７】
このようにして求めたオフセット値を用いて基準パーツ４５０の関節の回転情報を補正することにより、図７に示すように人体オブジェクトが体を左右に揺らすモーションをリアルタイムに生成することができる。
【０１２８】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１２９】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【図面の簡単な説明】
【図１】本実施形態のゲームシステムのブロック図の例である。
【図２】本実施の形態におけるモーションの補正処理の概要について説明するための図である。
【図３】オブジェクトに加わった衝撃によるモーションの補正処理について説明するための図である。
【図４】本実施の形態のモーションの補正処理の一例について説明するためのフローチャート図である。
【図５】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図６】図６（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【図７】本実施の形態のモーションの補正処理の他の一例について説明するためのフローチャート図である。
【符号の説明】
１００  処理部
１１０  ゲーム処理部
１１２  移動・動作演算部
１１４  モーション補正処理部
１３０  画像生成部
１３２  ジオメトリ処理部
１４０  描画部
１４２  テクスチャ設定部
１４４  マッピング処理部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  メインメモリ
１７４  フレームバッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  セーブ用情報記憶装置
１９６  通信部
【図１】
0004641602.tif 000006
【図２】
0004641602.tif 000007
【図３】
0004641602.tif 000008
【図４】
0004641602.tif 000009
【図５】
0004641602.tif 000010
【図６】
0004641602.tif 000011
【図７】
0004641602.tif 000012