(57)【要約】【課題】少ない処理負荷でスキニング技術を用いて表示物をリアルに表現できる画像生成システム、プログラム及び情報記憶媒体を提供する。【解決手段】画像生成システムでは、スキニング処理部において、モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成する。スキニング処理後のモデルオブジェクトの頂点データをテンポラリデータとして記憶し、該頂点データに基づいて、互いに異なる第１〜第Ｎ（Ｎは２以上の整数）のジオメトリ処理を行い、第１〜第Ｎの表示物描画データを求める。画像生成システムは、第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、第１〜第Ｎの表示物が表示された画像を生成する。【選択図】        図２
2004334662.tif 000002
【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、
前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、
前記記憶部に記憶された前記頂点データに基づいて、互いに異なる第１〜第Ｎ（Ｎは２以上の整数）のジオメトリ処理を行い、第１〜第Ｎの表示物描画データを求めるジオメトリ処理部と、
前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、前記第１〜第Ｎの表示物が表示された画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記ジオメトリ処理部が、
前記頂点データに基づいて第１〜第Ｎのスクリーンへの透視変換を行って、前記第１〜第Ｎの表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、表示画面が分割された第１〜第Ｎの分割表示画面に前記第１〜第Ｎの表示物が表示された画像を生成することを特徴とする画像生成システム。
【請求項３】
請求項１において、
前記ジオメトリ処理部が、
前記頂点データに基づいて第１〜第Ｎのワールド座標変換を行って、前記第１〜第Ｎの表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、表示画面に前記第１〜第Ｎの表示物が表示された画像を生成することを特徴とする画像生成システム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記ジオメトリ処理部が、
過去のフレームで前記記憶部に記憶された前記頂点データに基づいて前記第１〜第Ｎのジオメトリ処理を行って前記第１〜第Ｎの表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｎの表示物描画データに基づいて前記第１〜第Ｎの表示物の描画処理を行い、当該フレームでの前記第１〜第Ｎの表示物が表示された画像を生成することを特徴とする画像生成システム。
【請求項５】
請求項１乃至３のいずれかにおいて、
前記スキニング処理部が、
第１のフレームでは、第１のモデルオブジェクトのオブジェクトデータと該第１のモデルオブジェクトのモーションデータとに基づく第１のスキニング処理を行ってスキニング処理後の第１の頂点データを求めると共に、第２のモデルオブジェクトのオブジェクトデータと該第２のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略し、
第２のフレームでは、前記第１のモデルオブジェクトのオブジェクトデータと該第１のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略すると共に、第２のモデルオブジェクトのオブジェクトデータと該第２のモデルオブジェクトのモーションデータとに基づく第２のスキニング処理を行ってスキニング処理後の第２の頂点データを求め、
前記ジオメトリ処理部が、
前記第１のフレームで求められた前記第１の頂点データに基づいて第１〜第Ｎのジオメトリ処理を行い第１〜第Ｎの表示物描画データを求めると共に、前記第２のフレームで求められた前記第２の頂点データに基づいて第（Ｎ＋１）〜第Ｌ（Ｌは（Ｎ＋１）以上の整数）のジオメトリ処理を行い第（Ｎ＋１）〜第Ｌの表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｌの表示物描画データに基づいて第１〜第Ｌの表示物の描画処理を行い、前記第１〜第Ｌの表示物が表示された画像を生成することを特徴とする画像生成システム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第１〜第Ｎの表示物の少なくとも１つの影表示データを生成する影処理部を含み、
前記ジオメトリ処理部が、
前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、
前記画像生成部が、
前記影描画データに基づいて前記第１〜第Ｎの表示物のいずれかの影の描画処理を行い、前記第１〜第Ｎの表示物の影が表示された画像を生成することを特徴とする画像生成システム。
【請求項７】
画像生成を行う画像生成システムであって、
モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、
前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、
前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求めるジオメトリ処理部と、
前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成する画像生成部と、
を含み、
第Ｋ（Ｋは自然数）のフレームにおいて、
前記スキニング処理部が、前記スキニング処理後のモデルオブジェクトの頂点データを生成し、
前記記憶部が、前記スキニング処理後のオブジェクトの頂点データを記憶し、
前記ジオメトリ処理部が、前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、
前記画像生成部が、前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成し、
前記第Ｋのフレーム以降のフレームにおいて、
前記ジオメトリ処理部が、前記第Ｋのフレームにおいて前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、
前記画像生成部が、当該フレームにおいて求められた前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成することを特徴とする画像生成システム。
【請求項８】
請求項７において、
前記ジオメトリ処理部が、
前記記憶部に記憶された前記頂点データに基づいて、ジオメトリ処理を行い、第１〜第Ｎ（Ｎは２以上の自然数）の表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、前記第１〜第Ｎの表示物が表示された画像を生成することを特徴とする画像生成システム。
【請求項９】
請求項８において、
前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第１〜第Ｎの表示物の少なくとも１つの影表示データを生成する影処理部を含み、
前記ジオメトリ処理部が、
前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、
前記画像生成部が、
前記影描画データに基づいて前記第１〜第Ｎの表示物のいずれかの影の描画処理を行い、前記第１〜第Ｎの表示物の影が表示された画像を生成することを特徴とする画像生成システム。
【請求項１０】
画像を生成するためのプログラムであって、
モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、
前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、
前記記憶部に記憶された前記頂点データに基づいて、互いに異なる第１〜第Ｎ（Ｎは２以上の整数）のジオメトリ処理を行い、第１〜第Ｎの表示物描画データを求めるジオメトリ処理部と、
前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、前記第１〜第Ｎの表示物が表示された画像を生成する画像生成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記ジオメトリ処理部が、
前記頂点データに基づいて第１〜第Ｎのスクリーンへの透視変換を行って、前記第１〜第Ｎの表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、表示画面が分割された第１〜第Ｎの分割表示画面に前記第１〜第Ｎの表示物が表示された画像を生成することを特徴とするプログラム。
【請求項１２】
請求項１０において、
前記ジオメトリ処理部が、
前記頂点データに基づいて第１〜第Ｎのワールド座標変換を行って、前記第１〜第Ｎの表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、表示画面に前記第１〜第Ｎの表示物が表示された画像を生成することを特徴とするプログラム。
【請求項１３】
請求項１０乃至１２のいずれかにおいて、
前記ジオメトリ処理部が、
過去のフレームで前記記憶部に記憶された前記頂点データに基づいて前記第１〜第Ｎのジオメトリ処理を行って前記第１〜第Ｎの表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｎの表示物描画データに基づいて前記第１〜第Ｎの表示物の描画処理を行い、当該フレームでの前記第１〜第Ｎの表示物が表示された画像を生成することを特徴とするプログラム。
【請求項１４】
請求項１０乃至１２のいずれかにおいて、
前記スキニング処理部が、
第１のフレームでは、第１のモデルオブジェクトのオブジェクトデータと該第１のモデルオブジェクトのモーションデータとに基づく第１のスキニング処理を行ってスキニング処理後の第１の頂点データを求めると共に、第２のモデルオブジェクトのオブジェクトデータと該第２のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略し、
第２のフレームでは、前記第１のモデルオブジェクトのオブジェクトデータと該第１のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略すると共に、第２のモデルオブジェクトのオブジェクトデータと該第２のモデルオブジェクトのモーションデータとに基づく第２のスキニング処理を行ってスキニング処理後の第２の頂点データを求め、
前記ジオメトリ処理部が、
前記第１のフレームで求められた前記第１の頂点データに基づいて第１〜第Ｎのジオメトリ処理を行い第１〜第Ｎの表示物描画データを求めると共に、前記第２のフレームで求められた前記第２の頂点データに基づいて第（Ｎ＋１）〜第Ｌ（Ｌは（Ｎ＋１）以上の整数）のジオメトリ処理を行い第（Ｎ＋１）〜第Ｌの表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｌの表示物描画データに基づいて第１〜第Ｌの表示物の描画処理を行い、前記第１〜第Ｌの表示物が表示された画像を生成することを特徴とするプログラム。
【請求項１５】
請求項１０乃至１４のいずれかにおいて、
前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第１〜第Ｎの表示物の少なくとも１つの影表示データを生成する影処理部としてコンピュータを機能させ、
前記ジオメトリ処理部が、
前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、
前記画像生成部が、
前記影描画データに基づいて前記第１〜第Ｎの表示物のいずれかの影の描画処理を行い、前記第１〜第Ｎの表示物の影が表示された画像を生成することを特徴とするプログラム。
【請求項１６】
画像を生成するためのプログラムであって、
モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、
前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、
前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求めるジオメトリ処理部と、
前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成する画像生成部としてコンピュータを機能させ、
第Ｋ（Ｋは自然数）のフレームにおいて、
前記スキニング処理部が、前記スキニング処理後のモデルオブジェクトの頂点データを生成し、
前記記憶部が、前記スキニング処理後のオブジェクトの頂点データを記憶し、
前記ジオメトリ処理部が、前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、
前記画像生成部が、前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成し、
前記第Ｋのフレーム以降のフレームにおいて、
前記ジオメトリ処理部が、前記第Ｋのフレームにおいて前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、
前記画像生成部が、当該フレームにおいて求められた前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成することを特徴とするプログラム。
【請求項１７】
請求項１６において、
前記ジオメトリ処理部が、
前記記憶部に記憶された前記頂点データに基づいて、ジオメトリ処理を行い、第１〜第Ｎ（Ｎは２以上の自然数）の表示物描画データを求め、
前記画像生成部が、
前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、前記第１〜第Ｎの表示物が表示された画像を生成することを特徴とするプログラム。
【請求項１８】
請求項１７において、
前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第１〜第Ｎの表示物の少なくとも１つの影表示データを生成する影処理部としてコンピュータを機能させ、
前記ジオメトリ処理部が、
前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、
前記画像生成部が、
前記影描画データに基づいて前記第１〜第Ｎの表示物のいずれかの影の描画処理を行い、前記第１〜第Ｎの表示物の影が表示された画像を生成することを特徴とするプログラム。
【請求項１９】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１０乃至１８のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【従来の技術】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。そしてこのような画像生成システムでは、キャラクタ（広義には表示物）についてもリアルに表現できることが望まれる。
【０００３】
キャラクタをリアルに表現する手法として、例えば特許文献１に記載されているようなスケルトンアニメーションの技術を用いることが考えられる。スケルトンアニメーションは、各部が骨により構成されるスケルトンモデルの骨にスキンと呼ばれる表面を付けることで実現される。スケルトンアニメーションでは、骨の動きに追従してスキンの表面が表現される。そして、スキンの表面の動きの表現にスキニングと呼ばれる技術を用いることで、より一層リアルな表現が可能となる。
【０００４】
【特許文献１】
特開２００２−６３５９５号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上述のようなスキニングを実現する処理では、モデルオブジェクトの動きを指定するためのモーションデータからマトリクス群を作り、該モデルオブジェクトの各頂点に割り当てられた影響度情報を加味しながら頂点ごとに上記マトリクス群によるマトリクス変換によって、モーション後の頂点の位置情報等を得る。
【０００６】
特に、このスキニング処理をリアルタイムで処理する場合、上述の演算処理をフレームごとに行うため、処理負荷が重いという問題があった。また複数のスケルトンモデルのオブジェクト画像をリアルタイムに表示させるためには、上述の演算処理に加え、モデル数分の座標変換処理も必要となり、更に処理負荷が重くなる。
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷でスキニング技術を用いて表示物をリアルに表現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００８】
【課題を解決するための手段】
本発明は、画像生成を行う画像生成システムであって、モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、前記記憶部に記憶された前記頂点データに基づいて、互いに異なる第１〜第Ｎ（Ｎは２以上の整数）のジオメトリ処理を行い、第１〜第Ｎの表示物描画データを求めるジオメトリ処理部と、前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、前記第１〜第Ｎの表示物が表示された画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００９】
本発明においては、スキニング処理部が、モデルオブジェクトのオブジェクトデータに対してスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを求める。また記憶部が、スキニング処理後のモデルオブジェクトの頂点データを保持する。そしてジオメトリ処理部が、該頂点データに対して、互いに異なる第１〜第Ｎのジオメトリ処理を行い、第１〜第Ｎの表示物描画データを求め、画像生成部が、描画処理を行って第１〜第Ｎの表示物が表示された画像を生成する。これにより、処理負荷の重いスキニング処理を１回行うだけで、第１〜第Ｎの表示物が表示された画像を生成することができる。そして、少ない処理負荷でスキニング技術を用いて表示物をリアルに表現することができる。また、スキニング処理の処理負荷を大幅に軽減して、リアルタイム処理への適用を容易にする。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ジオメトリ処理部が、前記頂点データに基づいて第１〜第Ｎのスクリーンへの透視変換を行って、前記第１〜第Ｎの表示物描画データを求め、前記画像生成部が、前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、表示画面が分割された第１〜第Ｎの分割表示画面に前記第１〜第Ｎの表示物が表示された画像を生成するようにしてもよい。
【００１１】
本発明によれば、表示画面が分割された第１〜第Ｎの分割表示画面に、１つのモデルオブジェクトのオブジェクトデータを用いてスキニング処理された頂点データに基づく表示物を表示させることができる。したがって、第１〜第Ｎの表示物を表示させるためにＮ回のスキニング処理を行うことなく１回のスキニング処理で済み、処理負荷を軽減することができる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ジオメトリ処理部が、前記頂点データに基づいて第１〜第Ｎのワールド座標変換を行って、前記第１〜第Ｎの表示物描画データを求め、前記画像生成部が、前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、表示画面に前記第１〜第Ｎの表示物が表示された画像を生成してもよい。
【００１３】
本発明においては、表示画面に表示される第１〜第Ｎの表示物を、１つのモデルオブジェクトのオブジェクトデータを用いてスキニング処理された頂点データに基づいて表示させるようにしている。これにより、スキニング処理の処理負荷を例えば１／Ｎ倍に軽減して、例えば群集等のシーンを、少ない処理負荷でよりリアルに表現することができるようになる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ジオメトリ処理部が、過去のフレームで前記記憶部に記憶された前記頂点データに基づいて前記第１〜第Ｎのジオメトリ処理を行って前記第１〜第Ｎの表示物描画データを求め、前記画像生成部が、前記第１〜第Ｎの表示物描画データに基づいて前記第１〜第Ｎの表示物の描画処理を行い、当該フレームでの前記第１〜第Ｎの表示物が表示された画像を生成してもよい。
【００１５】
本発明においては、過去のフレームで生成されたスキニング処理後のモデルオブジェクトの頂点データを用いて、当該フレームの表示物が表示された画像を生成するようにしている。これにより、フレームごとにスキニング処理を行うことなく、スケルトンモデルによるリアルな表現が可能な表示物を表示させることができる。また同時に、スキニング処理の処理負荷を軽減することができる。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スキニング処理部が、第１のフレームでは、第１のモデルオブジェクトのオブジェクトデータと該第１のモデルオブジェクトのモーションデータとに基づく第１のスキニング処理を行ってスキニング処理後の第１の頂点データを求めると共に、第２のモデルオブジェクトのオブジェクトデータと該第２のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略し、第２のフレームでは、前記第１のモデルオブジェクトのオブジェクトデータと該第１のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略すると共に、第２のモデルオブジェクトのオブジェクトデータと該第２のモデルオブジェクトのモーションデータとに基づく第２のスキニング処理を行ってスキニング処理後の第２の頂点データを求め、前記ジオメトリ処理部が、前記第１のフレームで求められた前記第１の頂点データに基づいて第１〜第Ｎのジオメトリ処理を行い第１〜第Ｎの表示物描画データを求めると共に、前記第２のフレームで求められた前記第２の頂点データに基づいて第（Ｎ＋１）〜第Ｌ（Ｌは（Ｎ＋１）以上の整数）のジオメトリ処理を行い第（Ｎ＋１）〜第Ｌの表示物描画データを求め、前記画像生成部が、前記第１〜第Ｌの表示物描画データに基づいて第１〜第Ｌの表示物の描画処理を行い、前記第１〜第Ｌの表示物が表示された画像を生成してもよい。
【００１７】
例えば、各グループが１又は複数のモデルオブジェクトを含む複数のグループにグループ化し、グループごとに、第１のフレームでスキニング処理を行い第２のフレームでスキニング処理を省略したり、或いは第１のフレームでスキニング処理を省略し第２のフレームでスキニング処理を行ったりすることも本発明に含まれる。
【００１８】
本発明においては、第１及び第２のモデルオブジェクトのスキニング処理が同一フレームで行われることなく、かつ各フレームにおいて、過去のフレーム又は当該フレームで求められたスキニング処理後の第１及び第２のモデルオブジェクトの頂点データに基づいて第１〜第Ｌの表示物を表示させる。このように、毎フレーム、スキニング処理を行うことなくスキニング処理を適宜省略して、モデルオブジェクトに応じてスキニング処理を行うフレームを分散化する。これにより、スキニング処理の処理負荷を更に軽減し、かつスキニング技術によるリアルに表現される表示物を多く表示させることができる。
【００１９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第１〜第Ｎの表示物の少なくとも１つの影表示データを生成する影処理部を含み（これらの各部としてコンピュータを機能させる、或いはこれらの各部としてコンピュータを機能させるプログラムを記憶し）、前記ジオメトリ処理部が、前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、前記画像生成部が、前記影描画データに基づいて前記第１〜第Ｎの表示物のいずれかの影の描画処理を行い、前記第１〜第Ｎの表示物の影が表示された画像を生成してもよい。
【００２０】
本発明によれば、スキニング処理後のモデルオブジェクトの頂点データを用いて、表示物の影が表示された画像を生成するようにしたので、スキニング技術を用いつつ、少ない処理負荷で表示物と、該表示物の影とが表示される画像を生成することができる。
【００２１】
また本発明は、画像生成を行う画像生成システムであって、モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求めるジオメトリ処理部と、前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成する画像生成部とを含み、第Ｋ（Ｋは自然数）のフレームにおいて、前記スキニング処理部が、前記スキニング処理後のモデルオブジェクトの頂点データを生成し、前記記憶部が、前記スキニング処理後のオブジェクトの頂点データを記憶し、前記ジオメトリ処理部が、前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、前記画像生成部が、前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成し、前記第Ｋのフレーム以降のフレームにおいて、前記ジオメトリ処理部が、前記第Ｋのフレームにおいて前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、前記画像生成部が、当該フレームにおいて求められた前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００２２】
本発明においては、過去のフレームで生成されたスキニング処理後のモデルオブジェクトの頂点データを用いて、当該フレームの表示物が表示された画像を生成するようにしている。即ち、第Ｋのフレームでは、スキニング処理を行って頂点データを求めると共に、該頂点データに対応した表示物が表示された画像を生成する。そして、第Ｋのフレーム以降のフレームでは、スキニング処理は行わずに、第Ｋのフレームにおいて生成された記憶部に記憶された頂点データを用いて、該頂点データに対応した表示物が表示された画像を生成する。これにより、フレームごとにスキニング処理を行うことなく、スケルトンモデルによるリアルな表現が可能な表示物を表示させることができる。また同時に、スキニング処理の処理負荷を軽減することができる。
【００２３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ジオメトリ処理部が、前記記憶部に記憶された前記頂点データに基づいて、ジオメトリ処理を行い、第１〜第Ｎ（Ｎは２以上の自然数）の表示物描画データを求め、前記画像生成部が、前記第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、前記第１〜第Ｎの表示物が表示された画像を生成してもよい。
【００２４】
本発明によれば、処理負荷の重いスキニング処理を１回行うだけで、第１〜第Ｎの表示物が表示された画像を生成することができる。そして、少ない処理負荷でスキニング技術を用いて表示物をリアルに表現することができる。また、スキニング処理の処理負荷を大幅に軽減して、リアルタイム処理への適用を容易にする。
【００２５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第１〜第Ｎの表示物の少なくとも１つの影表示データを生成する影処理部を含み、前記ジオメトリ処理部が、前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、前記画像生成部が、前記影描画データに基づいて前記第１〜第Ｎの表示物のいずれかの影の描画処理を行い、前記第１〜第Ｎの表示物の影が表示された画像を生成してもよい。
【００２６】
本発明によれば、スキニング処理後のモデルオブジェクトの頂点データを用いて、表示物の影が表示された画像を生成するようにしたので、スキニング技術を用いつつ、少ない処理負荷で表示物と、該表示物の影とが表示される画像を生成することができる。
【００２７】
【発明の実施の形態】
以下、本実施形態について説明する。
【００２８】
なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２９】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお、本実施形態の画像生成システムは、図１の構成要素（各部）を全て含む必要はなく、その一部（例えば操作部１６０、携帯型情報記憶装置１９４又は通信部１９６等）を省略した構成としてもよい。
【００３０】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサ、タッチパネル型ディスプレイ、或いは筺体などのハードウェアにより実現できる。
【００３１】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３２】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶（記録、格納）される。
【００３３】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３４】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【００３５】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。
【００３６】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３７】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３８】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。ここで処理部１００が行うゲーム処理としては、ゲーム開始条件（コースやマップやキャラクタや参加プレーヤ人数の選択等）が満たされた場合にゲームを開始させる処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了させる処理などがある。また処理部１００は記憶部１７０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）やＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラム（ゲームプログラム）により実現できる。
【００３９】
処理部１００は、オブジェクト空間処理部１１０、スキニング処理部１１４、ジオメトリ処理部１１６、影処理部１１８、画像生成部１２０、音生成部１３０を含む。なおこれらの一部を省略してもよい。
【００４０】
オブジェクト空間処理部１１０（シミュレーション演算部、移動・動作演算部）は、オブジェクト（移動オブジェクト、モデルオブジェクト）を制御する処理を行う。例えばオブジェクト空間処理部１１０は、オブジェクトの移動情報（位置情報、方向情報、速度情報或いは加速度情報）を求める処理を行う。オブジェクト空間処理部１１０は、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトをオブジェクト空間内で移動させる処理を行う。
【００４１】
より具体的には、オブジェクト空間処理部１１０は、オブジェクトの位置や回転角度（方向）を例えば１フレーム（１／６０秒等）毎に変化させる。例えば（ｋ−１）フレームでのオブジェクトの位置（Ｘ、Ｙ又はＺ座標）、回転角度（Ｘ、Ｙ又はＸ軸回りの回転角度）をＰｋ−１、θｋ−１とし、オブジェクトの１フレームでの位置変化量（速度）、回転変化量（回転角度）をΔＰ、Δθとする。すると、ｋフレームでのオブジェクトの位置Ｐｋ、回転角度θｋは例えば下式（１）、（２）のように求められる。
【００４２】
Ｐｋ＝Ｐｋ−１＋ΔＰ          （１）
θｋ＝θｋ−１＋Δθ          （２）
なおオブジェクト空間処理部１１０で行われる処理は、上式（１）、（２）の処理に限定されず、（１）、（２）式と均等な処理でもよい。
【００４３】
オブジェクト空間処理部１１０は、モデルオブジェクト制御部１１１、仮想カメラ設定部１１２を含む。
【００４４】
モデルオブジェクト制御部１１１は、モデルオブジェクトの動作情報（モデルオブジェクトの各パーツの位置情報、方向情報）を求める処理を行う。即ち、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、モデルオブジェクトを動作（モーション、アニメーション）させる処理を行う。
【００４５】
より具体的には、モデルオブジェクト制御部１１１は、モデルオブジェクトのモーションを、該モデルオブエジェクとのモーションデータに基づいて再生する処理等を行う。即ち、モデルオブジェクト（オブジェクト、スケルトン、キャラクタ）を構成する各骨（パーツオブジェクト）の位置又は回転角度（方向）等を含むモーションデータを記憶部１７０から読み出す。そして、モデルオブジェクトの各骨を動かすことで（スケルトン形状を変形させることで）、モデルオブジェクトのモーションを再生する。
【００４６】
そして、モデルオブジェクト制御部１１１は、上述のように制御されたモデルオブジェクトのオブジェクトデータを生成する。このオブジェクトデータは、そのままスキニング処理部１１４に出力され、或いは一旦主記憶部１７２（記憶部１７０）に格納された後にスキニング処理部１１４に出力される。
【００４７】
仮想カメラ設定部１１２は、オブジェクト空間内の所与（任意）の視点での画像を生成するための仮想カメラを制御する処理を行う。即ち、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００４８】
例えば、モデルオブジェクトに基づいて表示される表示物を背後から撮影した画像を生成する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、オブジェクト空間処理部１１０（移動・動作演算部）において得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた回転角度で回転させるようにしてもよい。なお、仮想カメラの位置（移動経路）や回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００４９】
仮想カメラ設定部１１２は、オブジェクト空間内で複数の仮想カメラを独立して制御する処理を行うことも可能である。この場合、各仮想カメラについて上述した制御を行う。
【００５０】
スキニング処理部１１４は、モデルオブジェクトのオブジェクトデータと該オブジェクトモデルのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを求める。
【００５１】
ここでモデルオブジェクトのモーションデータは、モデルオブジェクトのスケルトンモデルを構成する複数の骨（アーク）に基づく位置データ、回転角度（向き）データを含ませることができる。またモデルオブジェクトのオブジェクトデータは、基準頂点データ（モデルオブジェクトが基準姿勢であるときの頂点の位置データ等を含むデータ）と、モデルオブジェクト（スケルトンモデル）のモーション変化時の各骨に対する頂点の追従度合いを表す重み付けデータ（影響度情報）を含ませることができる。スキニング処理は、モーション変化時に、モデルオブジェクトの頂点を、重み付けデータ（影響度情報）に応じて各骨に追従させることで実現される。更に具体的には、スキニング処理は、モデルオブジェクトのスケルトンモデルを構成する各骨の位置と回転角度が特定されるモーションデータと、各骨に対するモデルオブジェクトの各頂点の追従度を表わす影響度情報とによって、モデルオブジェクトの新たな頂点データを求める処理をいう。
【００５２】
なおオブジェクトデータは、モデルオブジェクト制御部１１１により生成されたり、画像生成システムへの電源投入時等に例えば情報記憶媒体１８０から読み出されて主記憶部１７２にロードされる。或いは通信部１９６、インターネット（広義にはネットワーク）を介してホスト装置から主記憶部１７２にダウンロードされる。またモーションデータは、処理部１００によりリアルタイムで生成されたり、画像生成システムへの電源投入時等に例えば情報記憶媒体１８０から読み出されて主記憶部１７２にロードされる。或いは通信部１９６、インターネット（広義にはネットワーク）を介してホスト装置から主記憶部１７２にダウンロードされる。
【００５３】
スキニング処理部１１４によって求められたスキニング処理後のモデルオブジェクトの頂点データは、主記憶部１７２に記憶される。
【００５４】
ジオメトリ処理部１１６は、主記憶部１７２（記憶部）に記憶されたスキニング処理後の１つのモデルオブジェクトの頂点データに基づいて、１又は互いに異なる複数種類のジオメトリ処理を行い、複数の表示物描画データを求める。より具体的には、スキニング処理後の１つのモデルオブジェクトの頂点データに基づいて、互いに異なる第１〜第Ｎ（Ｎは２以上の整数）のジオメトリ処理を行い、第１〜第Ｎの表示物描画データを求める。ここで、第１〜第Ｎのジオメトリ処理のそれぞれは、ワールド座標変換、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも１つを含む。例えばオブジェクトデータがワールド座標変換されている場合には、第１〜第Ｎのジオメトリ処理のそれぞれは、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも１つを含む。また例えばオブジェクトデータがモデルオブジェクトを基準としたローカル座標系のデータである場合には、第１〜第Ｎのジオメトリ処理のそれぞれは、ワールド座標変換、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも１つを含む。
【００５５】
なお第１〜第Ｎのジオメトリ処理は、仮想カメラ設定部１１２によって設定される第１〜第Ｎの仮想カメラの位置又は回転角度（仮想カメラの向き）に基づいて行われる。
【００５６】
ジオメトリ処理部１１６は、主記憶部１７２（記憶部）に記憶されたスキニング処理後の１つのモデルオブジェクトの頂点データに基づいて、第１〜第Ｎのスクリーンへの透視変換を行って、第１〜第Ｎの表示物描画データを求めることもできる。第１〜第Ｎのスクリーンは、仮想カメラ設定部１１２によって設定される第１〜第Ｎの仮想カメラの位置又は回転角度（仮想カメラの向き）に基づいて定められる。第１〜第Ｎのスクリーンは、例えば表示画面を分割した第１〜第Ｎの分割表示画面に対応させることも可能である。
【００５７】
またジオメトリ処理部１１６は、主記憶部１７２（記憶部）に記憶されたスキニング処理後の１つのモデルオブジェクトの頂点データに基づいて、第１〜第Ｎのワールド座標変換を行って、第１〜第Ｎの表示物描画データを求めることもできる。第１〜第Ｎのワールド座標変換のそれぞれは、並進移動（トランスレーション）、回転移動（ローテーション）及びスケーリングの少なくとも１つの変換を含む。
【００５８】
影処理部１１８は、スキニング処理後のモデルオブジェクトの頂点データを用いて、第１〜第Ｎの表示物の少なくとも１つの影表示データを生成する。より具体的には、影処理部１１８は、主記憶部１７２（記憶部）に記憶されたスキニング処理後の１つのモデルオブジェクトの頂点データに基づいて、例えば平面投影法、シャドウボリューム（Ｓｈａｄｏｗ  Ｖｏｌｕｍｅ）、或いはシャドウマッピング（Ｓｈａｄｏｗ  Ｍａｐｐｉｎｇ）により影表示データを生成する。この場合、ジオメトリ処理部１１６が、影処理部１１８によって生成された影表示データに対してジオメトリ処理を行い、影描画データを求める。
【００５９】
影表示データがワールド座標変換されている場合には、ジオメトリ処理は、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも１つを含む。また例えば影表示データがローカル座標系のデータである場合には、ジオメトリ処理は、ワールド座標変換、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも１つを含む。
【００６０】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。即ち、ジオメトリ処理部１１６の処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、表示物の描画処理を行う。この描画データを描画バッファ１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画することにより、オブジェクト空間内において仮想カメラ（所与の視点、第１〜第Ｎの仮想カメラ）から見える表示物の画像が生成される。
【００６１】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６２】
なお本実施形態における画像生成システムでは、表示画面を分割した複数の分割表示画面に、オブジェクト空間内でそれぞれ設定される仮想カメラから見える表示物が表示された画像を生成することができる。この場合、仮想カメラ設定部１１２が各分割表示画面用に仮想カメラを制御する処理を行い、画像生成部１２０がジオメトリ処理後の描画データを、各分割表示画面用に割り当てられた描画バッファ１７４の描画領域に書き込んで、複数の分割表示画面にそれぞれ表示物が表示された画像を生成する。
【００６３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００６４】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００６５】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００６６】
２．１  処理の概要
図２に、本実施形態の処理の概要を説明するための模式図を示す。本実施形態では、ジオメトリ処理部１１６が、スキニング処理後の１つのモデルオブジェクトの頂点データであるテンポラリデータＴＭＰに対して、異なる第１〜第Ｎのジオメトリ処理ＧＰ−１〜ＧＰ−Ｎを行って第１〜第Ｎの表示物描画データを生成する。スキニング処理部１１４は、図２に示すようにモデルオブジェクトのオブジェクトデータＯＢＪと該モデルオブジェクトのモーションデータＭＤＡＴとに基づくスキニング処理ＳＰにより、テンポラリデータＴＭＰを求める。そして、画像生成部１２０が、第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行って第１〜第Ｎの表示物が表示された画像を生成する。
【００６７】
本実施形態では、スケルトンモデルにより表現されるキャラクタ（表示物）の画像を生成する。これにより、よりリアルな表示物の画像を生成する。
【００６８】
２．２  スキニング処理
まずスキニング処理について説明する。
【００６９】
スキニング処理は、スケルトンモデルによりモデル化されたモデルオブジェクトの頂点データを求める処理である。より具体的には、スキニング処理は、モデルオブジェクトのスケルトンモデルを構成する各骨の位置と回転角度が特定されるモーションデータと、各骨に対するモデルオブジェクトの各頂点の追従度を表わす影響度情報とにより、モデルオブジェクトの新たな頂点データを求める。
【００７０】
図３に、スケルトンモデルによりモデル化されたモデルオブジェクトの構成例を示す。スケルトンモデルでは、モーションデータにより位置や回転角度が特定される骨ＢＭ１〜ＢＭ２０が設定される。したがって、モーションデータに基づいて骨ＢＭ１〜ＢＭ２０を動かすことで、モデルオブジェクトを変形し、モデルオブジェクトのモーションを表現することができる。
【００７１】
モーションデータは、例えばモーションキャプチャを用いて作成される。モーションデータは、図４（Ａ）に示すように、例えば親の骨ＢＭＰに対する子の骨ＢＭＣのＸ軸、Ｙ軸、Ｚ軸回りの相対的な回転角度ｒｘ、ｒｙ、ｒｚにより表わされる。
【００７２】
例えば、右手を上げるというモデルオブジェクトの動きを表現する場合には、演技する人に右手を上げてもらい、その人の肩に取り付けたセンサ或いは肘に取り付けたセンサを用いてモーションキャプチャにより上腕の回転角度を取得する。そして、取得した回転角度を、モーションデータとして記憶しておく。こうすることで、図３に示す親の骨ＢＭ１１に対する子の骨ＢＭ１２の回転角度がモーションデータとして記憶される。このようにして記憶されたモーションデータに基づいて骨ＢＭ１〜ＢＭ２０をリアルタイムに動かし、これらの骨の動きに追従するようにモデルオブジェクトを変形することで、右手を上げるというモデルオブジェクトの動きを表現する。
【００７３】
図４（Ｂ）には、本実施形態におけるモーションデータの構成例である。ここでは、スケルトンモデルの骨の構成によって定まる関節の数がＫ（Ｋは自然数）であるものとする。
【００７４】
モーションデータは、フレーム０〜フレームＦｍａｘ−１（Ｆｍａｘは正の整数）の各フレームごとに、各関節の位置データ（Ｘ軸、Ｙ軸、Ｚ軸の座標（ｘ，ｙ，ｚ））と、当該関節における親の骨に対する子の骨の回転角度データ（Ｘ軸、Ｙ軸、Ｚ軸回りの回転角度（ｒｘ，ｒｙ，ｒｚ））を含む。例えば図４（Ｃ）では、フレーム０において、関節０が座標（０．０，１．０，０．０）の位置で、予め決められた関節０における親の骨に対し、子の骨が（０，０，３０）の回転角度を有していることを示す。
【００７５】
図４（Ｂ）、（Ｃ）では、関節の位置データと、当該関節における子の骨の回転角度とによりモーションデータを構成したが、これに限定されるものではなく、モデルオブジェクトのスケルトンモデルを構成する複数の骨の位置データ、回転角度（向き）データによりモーションデータを構成してもよい。
【００７６】
図５（Ａ）、（Ｂ）に、本実施形態におけるモデルオブジェクトのオブジェクトデータの構成例を示す。ここでは、モデルオブジェクトのモーション変化時の各頂点を、スキニング処理により追従させる骨の数をＢ（Ｂは自然数）とする。またモデルオブジェクトの頂点数をＶｍａｘ（Ｖｍａｘは自然数）とする。
【００７７】
モデルオブジェクトを構成する各頂点には、位置データ（Ｘ軸、Ｙ軸、Ｚ軸の座標（ｘ，ｙ，ｚ））と、モデルオブジェクトのモーション変化時に用いられる各骨のマトリクス番号と、各骨の追従度合いを表す重み付けデータとが付与されている。
【００７８】
位置データは、基準頂点データとして、モデルオブジェクトが基準姿勢であるときの頂点の位置データということができる。この位置データは、モデルオブジェクト制御部１１１において、例えば操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、モデルオブジェクトをオブジェクト空間内で移動させる処理の結果として生成される。
【００７９】
マトリクス番号は、行列演算に用いられるマトリクスを特定するための番号である。このマトリクスは、図４（Ｂ）に示すモーションデータに基づいて生成される。骨ＢＭ０〜ＢＭ（Ｂ−１）の各骨の重み付けの総和が１になるように、各重み付けが割り当てられる。
【００８０】
例えば頂点０の座標をＢＸ、骨ＢＭ０〜骨ＢＭ（Ｂ−１）のマトリクス番号によって特定されるマトリクスをＭ０〜Ｍ（Ｂ−１）とすると、スキニング処理後の頂点の座標ＳＸは、次の式により表わされる。
【００８１】
2004334662.tif 000003
したがって、図５（Ｂ）では、頂点０の座標が（０．３，０．０，−０．４）で、モーション変化時に骨ＢＭ０のマトリクス番号が０で、その重み付けｗ０が１．０であることを示し、骨ＢＭ１〜ＢＭ３に追従しないことを示す。
【００８２】
このようにしてスキニング処理されて求められた頂点データ（図２に示すテンポラリデータＴＭＰ）は、主記憶部１７２に保存される。ジオメトリ処理部１１６は、主記憶部１７２に保存された頂点データに基づいて異なる複数のジオメトリ処理を行って表示物描画データを求める。
【００８３】
図６（Ａ）、（Ｂ）に本実施形態における表示物描画データの構成例を示す。ここでは、モデルオブジェクトのポリゴン数がＰ（Ｐは正の整数）であるものとする。表示物描画データは、ポリゴンごとに、当該ポリゴンを構成する頂点を特定するデータである。即ち、表示物描画データは、ポリゴンごとに、頂点数と、該頂点数分の頂点番号とを含んで構成される。頂点番号は、図５（Ａ）に示す頂点データごとに、スキニング処理後の頂点データを特定する番号である。
【００８４】
例えば図６（Ｂ）に示すように、ポリゴン０は、頂点数が３で、頂点番号０、１、２の３頂点により構成される。例えば頂点番号０の位置は、図５（Ａ）に示す頂点０に対して（３）式で示すスキニング処理後の頂点データの位置である。
【００８５】
本実施形態では、主記憶部１７２に保存された頂点データに基づいて、異なる複数のジオメトリ処理を行うことで、スキニング処理の処理負荷を軽減することができる。
【００８６】
図７に、ゲーム画像の一例を示す。図７では、表示画面が第１〜第４の分割表示画面ＤＩＳＰ１〜ＤＩＳＰ４に分割されている例を示している。ここでは、１つの３次元のゲーム空間（ゲーム処理において設定される領域）内を、４人のプレーヤが操作する４つのキャラクタ（表示物）Ｃ１〜Ｃ４が銃を持って動き回り、他のプレーヤ又はコンピュータが操作するキャラクタ、若しくは共通の敵キャラクタを倒すゲームの画像を示す。各分割表示画面には、各プレーヤが操作するキャラクタを背後から見た画像が表示される。
【００８７】
図７では、各キャラクタが操作するキャラクタを背後から見た範囲に、他のキャラクタが現れていない。そのため、第１〜第４の分割表示画面ＤＩＳＰ１〜ＤＩＳＰ４には、それぞれ自キャラクタの画像Ｃ１〜Ｃ４のみが表示される。したがって、各キャラクタをそれぞれ別個のスケルトンモデルを用いて表現する場合、１フレームで４キャラクタ分のスキニング処理が必要となる。
【００８８】
図８に、ゲーム画像の他の例を示す。図８では、各分割表示画面に自キャラクタ以外に他のプレーヤが操作するキャラクタの画像が表示される。即ち、オブジェクト空間内で設定される第１〜第４の仮想カメラの位置及び回転角度によって定まる第１〜第４のスクリーンへの透視変換を行って、第１〜第４の分割表示画面ＤＩＳＰ１〜ＤＩＳＰ４に、第１〜第４の表示物が表示された画像が生成されている。
【００８９】
第１の分割表示画面ＤＩＳＰ１に、自キャラクタの画像Ｃ１の他に、他のキャラクタが操作するキャラクタの画像Ｃ２−１〜Ｃ４−１が表示される。同様に、第２の分割表示画面ＤＩＳＰ２に、自キャラクタの画像Ｃ２の他に、他のキャラクタが操作するキャラクタの画像Ｃ１−２、Ｃ３−２、Ｃ４−２が表示される。第３の分割表示画面ＤＩＳＰ３に、自キャラクタの画像Ｃ３の他に、他のキャラクタが操作するキャラクタの画像Ｃ１−３、Ｃ２−３、Ｃ４−３が表示される。第４の分割表示画面ＤＩＳＰ４に、自キャラクタの画像Ｃ４の他に、他のキャラクタが操作するキャラクタの画像Ｃ１−４〜Ｃ３−４が表示される。
【００９０】
各キャラクタをそれぞれ別個のスケルトンモデルを用いて表現する場合、上述したような処理負荷の重いスキニング処理が１フレームで１６キャラクタ分必要となってしまい、リアルタイム性が必要とされるゲーム処理において実現できる処理が制限される。
【００９１】
ところが図２に示すように、本実施形態においては、１つのモデルオブジェクトに対して行ったスキニング処理後のデータを用いて、異なるジオメトリ処理を行って求めた表示物描画データに基づいて描画処理を行う。
【００９２】
したがって、本実施形態によれば、第１の分割表示画面ＤＩＳＰ１に表示されるキャラクタの画像Ｃ２−１は、第２の分割表示画面ＤＩＳＰ２に表示される自キャラクタＣ２のスキニング処理後のデータに基づいて描画処理された結果生成された画像として生成される。同様に、第１の分割表示画面ＤＩＳＰ１に表示されるキャラクタの画像Ｃ３−１は、第３の分割表示画面ＤＩＳＰ３に表示される自キャラクタＣ３のスキニング処理後のデータに基づいて描画処理された結果生成された画像として生成される。第１の分割表示画面ＤＩＳＰ１に表示されるキャラクタの画像Ｃ４−１は、第４の分割表示画面ＤＩＳＰ４に表示される自キャラクタＣ４のスキニング処理後のデータに基づいて描画処理された結果生成された画像として生成される。第２〜第４の分割表示画面ＤＩＳＰ２〜ＤＩＳＰ４についても同様である。
【００９３】
以上のように、本実施形態によれば、図８に示す場合でも、４キャラクタ分のスキニング処理で済み、リアルタイム性が必要とされるゲーム演算の処理負荷を大幅に軽減することができるようになる。
【００９４】
２．３  群衆等の表現
また本実施形態では、ジオメトリ処理部１１６が、スキニング処理後の頂点データに基づいて第１〜第Ｎのワールド座標変換を行って第１〜第Ｎの表示物描画データを求めるようにしてもよい。この場合、画像生成部１２０が、第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、表示画面に第１〜第Ｎの表示物が表示された画像を生成する。
【００９５】
より具体的には、スキニング処理前のモデルオブジェクトのオブジェクトデータを、ローカル座標系のデータとして持っておく。そして、スキニング処理部１１４が、ローカル座標系のモデルオブジェクトのオブジェクトデータを用いて、上述のようなスキニング処理を行う。こうして得られたスキニング処理後の頂点データを用いて、ジオメトリ処理部１１６が、第１〜第Ｎの表示物を表示させたいワールド座標に、それぞれ異なる第１〜第Ｎのワールド座標変換を行って第１〜第Ｎの表示物描画データを求める。
【００９６】
こうすることで、図９に示すように、１つの表示画面ＤＩＳＰ（或いは第１〜第４の分割表示画面ＤＩＳＰ１〜ＤＩＳＰ４のいずれか）に、１つのモデルオブジェクトに基づいて生成された第１〜第Ｎの表示物ＤＯＢ１〜ＤＯＢＮが表示された画像を、より少ない処理負荷で生成することができる。Ｎ個の表示物の画像生成に対し、スキニング処理が当該モデルオブジェクトに対して１回のみ行われるからである。
【００９７】
こうすることで、例えば群集や観客、サッカーゲーム等のチームのメンバなどを、少ない処理負荷でスケルトンモデルによりリアルに表現することができる。
【００９８】
２．４  スキニング処理負荷の軽減
２．４．１  スキニング処理の省略
また本実施形態では、当該フレームでスキニング処理された頂点データを用いることなく、過去のフレームで求められたスキニング処理後の頂点データに基づいてジオメトリ処理を行って、第１〜第Ｎの表示物が表示された画像を生成するようにしてもよい。
【００９９】
図１０（Ａ）に、本実施形態の各処理をフレームごとに行った場合の処理の概要を模式的に示す。ここでは、フレーム１に後続する次のフレームがフレーム２、フレーム２に後続する次のフレームがフレーム３であるものとする。
【０１００】
図１０（Ａ）では、フレーム１において、モデルオブジェクトのオブジェクトデータ生成処理ＯＢＭ１、スキニング処理ＳＰ１、ジオメトリ処理ＧＰ１及び画像生成処理ＤＰ１が行われる。オブジェクトデータ生成処理ＯＢＭ１は、モデルオブジェクト制御部１１１によって行われる。スキニング処理ＳＰ１は、スキニング処理部１１４によって行われる。ジオメトリ処理ＧＰ１は、ジオメトリ処理部１１６によって行われる。画像生成処理ＤＰ１は、画像生成部１２０によって行われる。
【０１０１】
またフレーム２においても、モデルオブジェクト制御部１１１によるモデルオブジェクトのオブジェクトデータ生成処理ＯＢＭ２、スキニング処理部１１４によるスキニング処理ＳＰ２、ジオメトリ処理部１１６によるジオメトリ処理ＧＰ２及び画像生成部１２０による画像生成処理ＤＰ２が行われることを示している。
したがって、フレームごとに、上述したように処理負荷の重いスキニング処理ＳＰを実行しなければならず、１フレームという制限された時間内に実行すべき他の処理を省略する必要が生ずる場合がある。
【０１０２】
図１０（Ｂ）に、本実施形態のスキニング処理を省略する場合の処理の概要を模式的に示す。図１０（Ｂ）において、フレーム１では、図１０（Ａ）に示すように、モデルオブジェクトのオブジェクトデータ生成処理ＯＢＭ１、スキニング処理ＳＰ１、ジオメトリ処理ＧＰ１及び画像生成処理ＤＰ１が行われる。
【０１０３】
これに対して、フレーム２では、フレーム１で行われたスキニング処理ＳＰ１によって求められたスキニング処理後の頂点データを用いて、ジオメトリ処理部１１６によるジオメトリ処理ＧＰ２及び画像生成部１２０による画像生成処理ＤＰ２が行われる。したがって、フレーム２では、処理負荷の重いスキニング処理を省略している。
【０１０４】
そして、フレーム３では、再び、モデルオブジェクト制御部１１１によるモデルオブジェクトのオブジェクトデータ生成処理ＯＢＭ１、スキニング処理部１１４によるスキニング処理ＳＰ１、ジオメトリ処理部１１６によるジオメトリ処理ＧＰ１及び画像生成部１２０による画像生成処理ＤＰ１が行われる。
【０１０５】
以上のように、ジオメトリ処理部１１６が、過去のフレームで記憶部１７０に記憶された頂点データに基づいて第１〜第Ｎのジオメトリ処理を行って第１〜第Ｎの表示物描画データを求めている。そして、画像生成部１２０が、第１〜第Ｎの表示物描画データに基づいて第１〜第Ｎの表示物の描画処理を行い、当該フレームでの前記第１〜第Ｎの表示物が表示された画像を生成する。これにより、スキニング処理が省略され、処理負荷を軽減することが可能である。
【０１０６】
なお図１０（Ｂ）においては、スキニング処理ＳＰ２が省略されるフレーム２において、モデルオブジェクト制御部１１１によるオブジェクトデータ生成処理ＯＢＭ２を行っているが、これに限定されるものではなく、フレーム２においてオブジェクトデータ生成処理ＯＢＭ２を省略するようにしてもよい。しかし、モデルオブジェクトにより表示物をよりリアルに表現する場合には、フレーム２においてもオブジェクトデータ生成処理ＯＢＭ２を省略しないことが望ましい。
【０１０７】
また図１０（Ｂ）では、フレーム２において、フレーム１で生成されたスキニング処理後の頂点データを用いるものとしているが、２フレーム以上過去のフレームで生成されたスキニング処理後の頂点データを用いるようにしてもよい。
【０１０８】
また、過去のフレームでスキニング処理により生成された頂点データを用いて当該フレームで第１〜第Ｎの表示物が表示される画像を生成しているが、過去のフレームでスキニング処理により生成された頂点データを用いて当該フレームで１つの表示物が表示される画像を生成してもよい。
【０１０９】
この場合、画像生成システムは、モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部１１４と、スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部１７０と、記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求めるジオメトリ処理部１１６と、表示物描画データに基づいて表示物の描画処理を行い、表示物が表示された画像を生成する画像生成部１２０とを含む。
【０１１０】
そして、第Ｋ（Ｋは自然数）のフレームにおいて、スキニング処理部１１４が、スキニング処理後のモデルオブジェクトの頂点データを生成し、記憶部１７０が、第Ｋのフレームで行われたスキニング処理後のオブジェクトの頂点データを記憶する。更にジオメトリ処理部１１６が、記憶部１７０に記憶された頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、画像生成部１２０が、表示物描画データに基づいて表示物の描画処理を行い、表示物が表示された画像を生成する。
【０１１１】
更にまた、第Ｋのフレーム以降のフレームにおいて、ジオメトリ処理部１１６が、第Ｋのフレームにおいて記憶部１７０に記憶された頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、画像生成部１２０が、当該フレームにおいて求められた表示物描画データに基づいて表示物の描画処理を行い、表示物が表示された画像を生成する。
【０１１２】
また、ジオメトリ処理部１１６は、第１〜第Ｎの表示物描画データを求める際に、１つの頂点データに対して互いに異なる第１〜第Ｎのジオメトリ処理を行ってもよいが、同一のジオメトリ処理であってもよい。
【０１１３】
２．４．２  モデルオブジェクトに応じたスキニング処理
また本実施形態では、モデルオブジェクトに応じてスキニング処理を行うフレームを変更するようにしてもよい。こうすることで、複数のモデルオブエジェクトを用いて複数の表示物を表示させる場合、スキニング処理が行われるフレームを適宜割り当てて、同一フレームで行われるスキニング処理の負荷を分散させることができるようになる。
【０１１４】
図１１（Ａ）、（Ｂ）に、モデルオブジェクトＯＢＪ１〜ＯＢＪ４についてのスキニング処理の分散例を模式的に示す。図１１（Ａ）は、スキニング処理ＳＰにおいて行われる処理の概要を示す。即ちスキニング処理ＳＰは、モデルオブジェクトのオブジェクトデータと、該モデルオブジェクトのモーションデータとを用いてスキニング処理を行い、該モデルオブジェクトのスキニング処理後の頂点データを求める。
【０１１５】
そして、図１１（Ｂ）に示すように、奇数フレーム（第１のフレーム）では、モデルオブジェクトＯＢＪ１（第１のモデルオブジェクト）のオブジェクトデータと該モデルオブジェクトのモーションデータとに基づくスキニング処理（第１のスキニング処理）を行ってスキニング処理後のモデルオブジェクトＯＢＪ１の頂点データ（第１の頂点データ）を求める。またモデルオブジェクトＯＢＪ２（第２のモデルオブジェクト）のオブジェクトデータと該モデルオブジェクトのモーションデータとに基づくスキニング処理を省略する。
【０１１６】
そして、偶数フレーム（第２のフレーム）では、モデルオブジェクトＯＢＪ２（第２のモデルオブジェクト）のオブジェクトデータと該モデルオブジェクトのモーションデータとに基づくスキニング処理（第２のスキニング処理）を行ってスキニング処理後のモデルオブジェクトＯＢＪ２の頂点データ（第２の頂点データ）を求める。またモデルオブジェクトＯＢＪ１（第１のモデルオブジェクト）のオブジェクトデータと該モデルオブジェクトのモーションデータとに基づくスキニング処理を省略する。
【０１１７】
なお図１１（Ｂ）では、奇数フレームでにおいて、モデルオブジェクトＯＢＪ１、ＯＢＪ３についてのスキニング処理を行い、偶数フレームではモデルオブジェクトＯＢＪ２、ＯＢＪ４についてのスキニング処理を行っている。
【０１１８】
以上のようにすることで、同一フレームで行われるスキニング処理の負荷を分散させることができる。
【０１１９】
図１２（Ａ）に、フレームごとに、モデルオブジェクトＯＢＪ１、ＯＢＪ２についてスキニング処理を行う場合の処理の概要を示す。図１２（Ｂ）に、スキニング処理を省略する場合の処理の概要を示す。各処理には、図１０（Ａ）、（Ｂ）と同様の符号を付している。
【０１２０】
図１２（Ｂ）では、フレーム１、フレーム３を奇数フレーム、フレーム２を偶数フレームとして示している。
【０１２１】
ジオメトリ処理部１１６は、奇数フレーム（第１のフレーム）で求められたモデルオブジェクトＯＢＪ１の頂点データ（第１の頂点データ）に基づいて第１〜第Ｎのジオメトリ処理を行い第１〜第Ｎの表示物描画データを求める。そして、ジオメトリ処理部１１６は、偶数フレーム（第２のフレーム）で求められたモデルオブジェクトＯＢＪ３（第２の頂点データ）に基づいて第（Ｎ＋１）〜第Ｌ（Ｌは（Ｎ＋１）以上の整数）のジオメトリ処理を行い第（Ｎ＋１）〜第Ｌの表示物描画データを求める。そして、画像生成部１２０が、第１〜第Ｌの表示物描画データに基づいて第１〜第Ｌの表示物の描画処理を行い、第１〜第Ｌの表示物が表示された画像を生成する。
【０１２２】
以上のように、図１２（Ａ）に示すようにフレームごとにスキニング処理を行う場合に比べて、図１２（Ｂ）では、フレーム１〜フレーム３でスキニング処理の負荷を分散させることができる。
【０１２３】
なお、図１２（Ｂ）ではモデルオブジェクトＯＢＪ１についてのスキニング処理と、モデルオブジェクトＯＢＪ２についてのスキニング処理とが、異なるフレームで行われ、かつ同じ周期（２フレーム周期）で行われているが、これに限定されるものではない。例えば、モデルオブジェクトＯＢＪ１についてのスキニング処理と、モデルオブジェクトＯＢＪ２についてのスキニング処理とが、異なる周期で行われ、周期的に同一フレームでモデルオブジェクトＯＢＪ１についてのスキニング処理と、モデルオブジェクトＯＢＪ２についてのスキニング処理とが行われてもよい。少なくとも異なるフレームで、モデルオブジェクトＯＢＪ１についてのスキニング処理と、モデルオブジェクトＯＢＪ２についてのスキニング処理とが行われ、スキニング処理が分散されていればよい。
【０１２４】
２．５  影の表現
また本実施形態では、スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第１〜第Ｎの表示物の少なくとも１つの影が表示される画像を生成するようにしてもよい。
【０１２５】
即ち影処理部１１８が、スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第１〜第Ｎの表示物の少なくとも１つの影表示データを生成する。そしてジオメトリ処理部１１６が、該影表示データに基づいてジオメトリ処理を行い、影描画データを求める。更に画像生成部１２０が、該影描画データに基づいて前記第１〜第Ｎの表示物のいずれかの影の描画処理を行い、前記第１〜第Ｎの表示物の影が表示された画像を生成する。
【０１２６】
図１３（Ａ）、図１３（Ｂ）、図１３（Ｃ）に、平面投影法により影表示データを生成する場合の説明図を示す。
【０１２７】
平面投影法では、モデルオブジェクトのオブジェクトデータに基づいて、図１３（Ａ）に示すようにＸＺ平面への投影面が該モデルオブジェクトに基づく表示物の影表示データとして生成される。
【０１２８】
この場合、図１３（Ａ）に示すように光源の光線方向とＺ軸とのなす角度をθ、図１３（Ｂ）に示すように光源の光線方向とＸＺ平面とのなす角度をΦとすると、図１３（Ｃ）に示すように影行列Ｓが規定される。
【０１２９】
モデルオブジェクトに基づく表示物の影の座標（ｘ１，ｙ１，ｚ１）は、モデルオブジェクトのスキニング処理後の頂点座標（ｘ，ｙ，ｚ）と、影行列Ｓとにより、次式にしたがって求められる。
【０１３０】
（ｘ１，ｙ１，ｚ１）＝（ｘ，ｙ，ｚ）・Ｓ      （５）
以上のように、スキニング処理後の頂点データを流用することで、よりリアルな画像の影を容易に表現することができる。
【０１３１】
なお図１３（Ａ）〜（Ｃ）では、平面投影法により影を表現する場合について説明したが、これに限定されるものではなく、スキニング処理後の頂点データを流用して例えばシャドウマッピングやシャドウボリュームにより影を表現するようにしてもよい。
【０１３２】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図１４〜図２１のフローチャートを用いて説明する。
【０１３３】
図１４に、スキニング処理後の１つのモデルオブジェクトの頂点データに基づいて、Ｎ個のスクリーン（分割表示画面）に第１〜第Ｎの表示物が表示される画像を生成する場合の処理フローの一例を示す。
【０１３４】
図１４において、ｆはモーションデータのフレームをカウントするための変数であり、Ｆｍａｘはモーションデータが記憶されているフレームの最大値、ｊはスクリーン（分割表示画面）を特定するための変数、Ｎはスクリーン数（分割表示画面数）である。
【０１３５】
まず変数ｆを０に初期化する（ステップＳ１０）。次に、モデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する（ステップＳ１１）。モデルオブジェクト制御部１１１は、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、該モデルオブジェクトの位置や向きを決定し、その決定後の該モデルオブジェクトの位置や向きに基づいて上述の位置回転行列を作成する。
【０１３６】
そして、スキニング処理部１１４は、モーションデータのｆフレーム目からマトリクス（関節行列データ）を作成する（ステップＳ１２）。またスキニング処理部１１４は、オブジェクトデータ（基本頂点データ）と、マトリクスとを用いて、（３）式で示したように重み付けをして、スキニング処理後の頂点データ（キャラクタデータ）を求める（ステップＳ１３）。
【０１３７】
その後、求めたスキニング処理後の頂点データに対して、ステップＳ１１で求めた位置回転行列によりワールド座標変換を行う（ステップＳ１４）。例えばジオメトリ処理部１１６が、このワールド座標変換を行う。
【０１３８】
続いて、ワールド座標変換後の頂点データを主記憶部１７２に保存する（ステップＳ１５）。このように、ワールド座標変換された頂点データを保存しておくことで、Ｎ個の分割表示画面の各分割表示画面に表示される画像を生成するたびにワールド座標変換を行う必要がなくなる。
【０１３９】
次に、変数ｆをインクリメントする（ステップＳ１６）。変数ｆがＦｍａｘ以上のとき（ステップＳ１７：Ｎ）、変数ｆを０に初期化して（ステップＳ１８）、ステップＳ１９に進む。またステップＳ１７において、変数ｆがＦｍａｘより小さいとき（ステップＳ１７：Ｙ）、ステップＳ１９に進む。
【０１４０】
ステップＳ１９では、変数ｊを０に初期化する（ステップＳ１９）。そして、ｊ番目のスクリーンの初期化を行い（ステップＳ２０）、ｊ番目のスクリーン用の仮想カメラ（第ｊの仮想カメラ）の位置・回転及び画角を設定する（ステップＳ２１）。例えば、ｊ番目の仮想カメラが飛行機、車などのモデルオブジェクトに追従する場合には、モデルオブジェクトの位置や回転角度により、仮想カメラの位置や回転角度を設定できる。またｊ番目の仮想カメラが所定の軌道上を移動する場合には、仮想カメラデータに基づいて仮想カメラの位置や回転角度を設定できる。
【０１４１】
次に、ジオメトリ処理部１１６では、ステップＳ１５で保存されたスキニング処理後のモデルオブジェクトの頂点データを、ｊ番目のカメラの設定位置や角度等によって定まるｊ番目のカメラ座標変換及び透視変換を行って第ｊの表示物描画データを求める。そして、該第ｊの表示物描画データに基づいて第ｊの表示物の描画処理を行い、第ｊの表示物が表示された画像を生成し、ｊ番目のスクリーンに表示する（ステップＳ２２）。
【０１４２】
続いて、変数ｊをインクリメントする（ステップＳ２３）。変数ｊがＮより小さいとき（ステップＳ２４：Ｙ）、ステップＳ２０に戻る。したがって、１番目のスクリーンからＮ番目のスクリーン（第１〜第Ｎの分割表示画面）に、ステップＳ１５で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づく第１〜第Ｎの表示物が表示された画像を生成することができる。
【０１４３】
ステップＳ２４において、変数ｊがＮ以上のとき（ステップＳ２４：Ｎ）、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき（ステップＳ２５：Ｙ）、一連の処理を終了する。終了ではないとき（ステップＳ２５：Ｎ）、ステップＳ１１に戻る。
【０１４４】
これにより、図８に示すように、第１〜第４の分割表示画面にスキニング処理後の１つのモデルオブジェクトのオブジェクトデータの頂点データに基づく第１〜第４の表示物が表示された画像を生成することができる。
【０１４５】
図１５及び図１６に、Ｎ個のスクリーン（分割表示画面）に、Ｍ（Ｍは自然数）個のモデルオブジェクトのスキニング処理後の頂点データに基づいて各分割表示画面に複数の表示物が表示される場合の処理フローの一例を示す。この場合、１つの表示画面に同時Ｍ×Ｎ個の表示物が表示される画像が生成される。
【０１４６】
図１５及び図１６において、ｆ［ｉ］（０≦ｉ≦Ｍ−１、ｉは整数）はｉ番目のモデルオブジェクトのモーションデータのフレームをカウントするための変数であり、Ｆｍａｘ［ｉ］はｉ番目のモデルオブジェクトのモーションデータが記憶されているフレームの最大値、ｊはスクリーンを特定するための変数、Ｎはスクリーン数、Ｍは表示物の数である。
【０１４７】
まず変数ｆ［０］〜ｆ［Ｍ−１］を０に初期化する（ステップＳ３０）。また変数ｉを０に初期化する（ステップＳ３１）。
【０１４８】
次にｉ番目のモデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する（ステップＳ３２）。
【０１４９】
そして、スキニング処理部１１４は、モーションデータのｆ［ｉ］フレーム目からマトリクス（関節行列データ）を作成する（ステップＳ３３）。またスキニング処理部１１４は、オブジェクトデータ（基本頂点データ）と、マトリクスとを用いて、（３）式で示したように重み付けをして、スキニング処理後の頂点データ（キャラクタデータ）を求める（ステップＳ３４）。
【０１５０】
その後、求めたスキニング処理後の頂点データに対して、ステップＳ３２で求めた位置回転行列によりワールド座標変換を行う（ステップＳ３５）。
【０１５１】
続いて、ワールド座標変換後の頂点データを主記憶部１７２に保存する（ステップＳ３６）。
【０１５２】
次に、変数ｆ［ｉ］をインクリメントする（ステップＳ３７）。変数ｆ［ｉ］がＦｍａｘ［ｉ］以上のとき（ステップＳ３８：Ｎ）、変数ｆ［ｉ］を０に初期化して（ステップＳ３９）、ステップＳ４０に進む。またステップＳ３８において、変数ｆ［ｉ］がＦｍａｘ［ｉ］より小さいとき（ステップＳ３８：Ｙ）、ステップＳ４０に進む。
【０１５３】
ステップＳ４０では、変数ｉをインクリメントして（ステップＳ４０）、変数ｉがＭより小さいか否かを判別する（ステップＳ４１）。変数ｉがＭより小さいとき（ステップＳ４１：Ｙ）、ステップＳ３２に戻る。変数ｉがＭ以上のとき（ステップＳ４１：Ｎ）、ステップＳ４２に進む。これにより、Ｍ個の表示物の画像を生成するための、スキニング処理後の頂点データを求めることができる。
【０１５４】
図１６に示すステップＳ４２では、変数ｊを０に初期化する（ステップＳ４２）。そして、ｊ番目のスクリーンの初期化を行い（ステップＳ４３）、ｊ番目のスクリーン用の仮想カメラ（第ｊの仮想カメラ）の位置・回転及び画角を設定する（ステップＳ４４）。
【０１５５】
次に、再び変数ｉを０に初期化して（ステップＳ４５）、ジオメトリ処理部１１６では、ステップＳ３６で保存されたｉ番目のモデルオブジェクトのスキニング処理後の頂点データを、ｊ番目のカメラの設定位置や角度等によって定まるｊ番目のカメラ座標変換及び透視変換を行って表示物描画データを求め、該表示物描画データに基づいて表示物の描画処理を行い、該表示物が表示された画像を生成し、ｊ番目のスクリーンに表示する（ステップＳ４６）。
【０１５６】
そして、変数ｉをインクリメントする（ステップＳ４７）。変数ｉがＭより小さいか否かを判別し、変数ｉがＭより小さいとき（ステップＳ４８：Ｙ）、ステップＳ４６に戻る。これにより、ｊ番目のスクリーン（第ｊの分割表示画面）に、ステップＳ３６で保存されたＭ個のモデルオブジェクトのスキニング処理後の頂点データに基づき、Ｍ個の表示物が表示される画像を生成することができる。
【０１５７】
一方、ステップＳ４８において変数ｉがＭ以上のとき（ステップＳ４８：Ｎ）、変数ｊをインクリメントする（ステップＳ４９）。変数ｊがＮより小さいとき（ステップＳ５０：Ｙ）、ステップＳ４３に戻る。したがって、１番目からＮ番目のスクリーン（第１〜第Ｎの分割表示画面）に、ステップＳ３６で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づくＭ×Ｎ個の表示物が表示された画像を生成することができる。
【０１５８】
ステップＳ５０において、変数ｊがＮ以上のとき（ステップＳ５０：Ｎ）、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき（ステップＳ５１：Ｙ）、一連の処理を終了する。終了ではないとき（ステップＳ５１：Ｎ）、ステップＳ３１に戻る。
【０１５９】
これにより、図８に示すように、第１〜第４の分割表示画面に４つのモデルオブジェクトのオブジェクトデータのスキニング処理後の頂点データに基づく１６個の表示物が表示された画像をより少ない処理負荷で生成することができる。
【０１６０】
図１７に、スキニング処理後の１つのモデルオブジェクトの頂点データに基づいて、１個のスクリーンに第１〜第Ｍの表示物が表示される画像を生成する場合の処理フローの一例を示す。これにより、例えば群集シーンを、より少ない処理負荷で、よりリアルに表現することができる。
【０１６１】
図１７において、ｆはモーションデータのフレームをカウントするための変数であり、Ｆｍａｘはモーションデータが記憶されているフレームの最大値、ｉは表示物を特定するための変数、Ｍは１つのスクリーンに表示させる表示物の数である。
【０１６２】
まず変数ｆを０に初期化する（ステップＳ６０）。次に、スキニング処理部１１４は、モーションデータのｆフレーム目からマトリクス（関節行列データ）を作成する（ステップＳ６１）。またスキニング処理部１１４は、オブジェクトデータ（基本頂点データ）と、マトリクスとを用いて、（３）式で示したように重み付けをして、スキニング処理後の頂点データ（キャラクタデータ）を求める（ステップＳ６２）。
【０１６３】
その後、求めたスキニング処理後の頂点データを主記憶部１７２に保存する（ステップＳ６３）。このように、ローカル座標系の頂点データを保存しておくことで、１つの表示画面にワールド座標が異なるＭ個の表示物を表示させる。
【０１６４】
次に、変数ｆをインクリメントする（ステップＳ６４）。変数ｆがＦｍａｘ以上のとき（ステップＳ６５：Ｎ）、変数ｆを０に初期化して（ステップＳ６６）、ステップＳ６７に進む。またステップＳ６５において、変数ｆがＦｍａｘより小さいとき（ステップＳ６５：Ｙ）、ステップＳ６７に進む。
【０１６５】
ステップＳ６７では、スクリーンの初期化を行い（ステップＳ６７）、仮想カメラの位置・回転及び画角を設定する（ステップＳ６８）。
【０１６６】
その後、変数ｉを０に初期化する（ステップＳ６９）。次に、モデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する（ステップＳ７０）。そして、ステップＳ６３で保存されたスキニング処理後の頂点データに対して、ステップＳ７０で求めた位置回転行列によりワールド座標変換し、仮想カメラのカメラ座標変換及び透視変換をしてスクリーンに表示する（ステップＳ７１）。
【０１６７】
続いて、変数ｉをインクリメントする（ステップＳ７２）。変数ｉがＭより小さいとき（ステップＳ７３：Ｙ）、ステップＳ７０に戻る。したがって、１つのスクリーンに、ステップＳ６３で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づく複数の表示物が表示された画像を生成することができる。
【０１６８】
ステップＳ７３において、変数ｉがＭ以上のとき（ステップＳ７３：Ｎ）、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき（ステップＳ７４：Ｙ）、一連の処理を終了する。終了ではないとき（ステップＳ７４：Ｎ）、ステップＳ６１に戻る。
【０１６９】
これにより、図９に示すように、１つの表示画面に、スキニング処理後の１つのモデルオブジェクトのオブジェクトデータの頂点データに基づく複数の表示物が表示された画像を生成することができる。
【０１７０】
図１８及び図１９に、モデルオブジェクトに応じてスキニング処理が行われるフレームを変更する場合の処理フローの一例を示す。ここでは、Ｎ個のスクリーン（分割表示画面）に、Ｍ（Ｍは自然数）個のモデルオブジェクトのスキニング処理後の頂点データに基づいて各分割表示画面に複数の表示物が表示される画像を生成する。そして、各モデルオブジェクトのスキニング処理は、交番でＧ（Ｇは２以上の整数）回に１回行うものとする。したがって、Ｇが２の場合、１フレームとばしでスキニング処理を行う。
【０１７１】
図１８及び図１９において、ｆ［ｉ］（０≦ｉ≦Ｍ−１、ｉは整数）はｉ番目のモデルオブジェクトのモーションデータのフレームをカウントするための変数、ｅ［ｉ］はｉ番目のモデルオブジェクトのスキニング処理の終了フラグ、Ｆｍａｘ［ｉ］はｉ番目のモデルオブジェクトのモーションデータが記憶されているフレームの最大値、Ｇは交番描画グループ数、ｊはスクリーンを特定するための変数、Ｎはスクリーン数、Ｍは表示物の数、ｃｎｔは描画フレームカウンタの変数である。
【０１７２】
まず変数ｃｎｔを０に初期化する（ステップＳ８０）。また変数ｆ［０］〜ｆ［Ｍ−１］、ｅ［０］〜ｅ［Ｍ−１］を０に初期化する（ステップＳ８１）。なお変数ｅ［０］〜ｅ［Ｍ−１］を０に初期化することによって、Ｍ個のモデルオブジェクトすべてについてスキニング処理後の頂点データが求められていないことを示す。
【０１７３】
続いて、変数ｉを０に初期化する（ステップＳ８２）。次に、描画フレームカウンタ変数ｃｎｔについて（ｃｎｔ  ｍｏｄ  Ｇ）を求める。（ｃｎｔ  ｍｏｄＧ）は、ｃｎｔをＧで割った余りを意味する。そして、（ｉ  ｍｏｄ  Ｇ）と、（ｃｎｔ  ｍｏｄ  Ｇ）とが一致するか否かを判別する（ステップＳ８３）。
【０１７４】
（ｉ  ｍｏｄ  Ｇ）と（ｃｎｔ  ｍｏｄ  Ｇ）とが一致するｉ番目のモデルオブジェクトに対しては、当該フレームでスキニング処理を行う。即ち、（ｉ  ｍｏｄ  Ｇ）と（ｃｎｔ  ｍｏｄ  Ｇ）とが一致したと判別したとき（ステップＳ８３：Ｙ）、ｉ番目のモデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する（ステップＳ８４）。
【０１７５】
そして、スキニング処理部１１４は、モーションデータのｆ［ｉ］フレーム目からマトリクス（関節行列データ）を作成する（ステップＳ８５）。またスキニング処理部１１４は、オブジェクトデータ（基本頂点データ）と、マトリクスとを用いて、（３）式で示したように重み付けをして、スキニング処理後の頂点データ（キャラクタデータ）を求める（ステップＳ８６）。
【０１７６】
その後、求めたスキニング処理後の頂点データに対して、ステップＳ８４で求めた位置回転行列によりワールド座標変換を行う（ステップＳ８７）。
【０１７７】
続いて、ワールド座標変換後の頂点データを主記憶部１７２に保存する（ステップＳ８８）。そして、ｉ番目のモデルオブジェクトに対するスキニング処理が終了したことを示すために変数ｅ［ｉ］を１に設定する（ステップＳ８９）。これにより、ｉ番目のモデルオブジェクトについては、当該フレーム以降のフレームでも、当該フレームで求められたスキニング処理後の頂点データを用いて表示物が表示された画像の生成が可能となる。
【０１７８】
ステップＳ８９において変数ｅ［１］を１に設定した後、ステップＳ９０に進む。また、ステップＳ８３において（ｉ  ｍｏｄ  Ｇ）と（ｃｎｔ  ｍｏｄ  Ｇ）とが一致しないと判別したとき（ステップＳ８３：Ｎ）、ステップＳ９０に進む。ステップＳ９０では、変数ｆ［ｉ］をインクリメントする（ステップＳ９０）。変数ｆ［ｉ］がＦｍａｘ［ｉ］以上のとき（ステップＳ９１：Ｎ）、変数ｆ［ｉ］を０に初期化して（ステップＳ９２）、ステップＳ９２に進む。またステップＳ９１において、変数ｆ［ｉ］がＦｍａｘ［ｉ］より小さいとき（ステップＳ９１：Ｙ）、ステップＳ９３に進む。
【０１７９】
ステップＳ９３では、変数ｉをインクリメントして（ステップＳ９２）、変数ｉがＭより小さいか否かを判別する（ステップＳ９４）。変数ｉがＭより小さいとき（ステップＳ９４：Ｙ）、ステップＳ８３に戻る。変数ｉがＭ以上のとき（ステップＳ９４：Ｎ）、ステップＳ９５に進む。これにより、Ｍ個のモデルオブジェクトを交番でＧ回に１回の割合でスキンニング処理を行うようになり、同一フレームで多くのモデルオブジェクトについてスキニング処理を行うことがなくなる。
【０１８０】
図１９に示すステップＳ９５では、変数ｊを０に初期化する（ステップＳ９５）。そして、ｊ番目のスクリーンの初期化を行い（ステップＳ９６）、ｊ番目のスクリーン用の仮想カメラ（第ｊの仮想カメラ）の位置・回転及び画角を設定する（ステップＳ９７）。
【０１８１】
次に、再び変数ｉを０に初期化して（ステップＳ９８）、変数ｅ［ｉ］が１に設定されているか否かを判別する（ステップＳ９９）。変数ｅ［ｉ］が１に設定されていると判別したとき（ステップＳ９９：Ｙ）、ジオメトリ処理部１１６では、ステップＳ３６で保存されたｉ番目のモデルオブジェクトのスキニング処理後の頂点データを、ｊ番目のカメラの設定位置や角度等によって定まるｊ番目のカメラ座標変換及び透視変換を行って表示物描画データを求め、該表示物描画データに基づいて表示物の描画処理を行い、該表示物が表示された画像を生成し、ｊ番目のスクリーンに表示する（ステップＳ１００）。
【０１８２】
そして、変数ｉをインクリメントする（ステップＳ１０１）。
【０１８３】
一方、ステップＳ９９において、変数ｅ［ｉ］が１に設定されていないと判別したとき（ステップＳ９９：Ｎ）、ステップＳ１００を省略してステップＳ１０１に進む。ｉ番目のモデルオブジェクトについてのスキニング処理後の頂点データが求められていないと判断したため、描画処理を行うのは不都合となるからである。
【０１８４】
ステップＳ１０２では、変数ｉがＭより小さいか否かを判別し、変数ｉがＭより小さいとき（ステップＳ１０２：Ｙ）、ステップＳ９９に戻る。これにより、ｊ番目のスクリーン（第ｊの分割表示画面）に、ステップＳ８８で保存されたＭ個のモデルオブジェクトのスキニング処理後の頂点データに基づき、Ｍ個の表示物が表示される画像を生成することができる。
【０１８５】
一方、ステップＳ１０２において変数ｉがＭ以上のとき（ステップＳ１０２：Ｎ）、変数ｊをインクリメントする（ステップＳ１０３）。変数ｊがＮより小さいとき（ステップＳ１０４：Ｙ）、ステップＳ９６に戻る。したがって、１番目からＮ番目のスクリーン（第１〜第Ｎの分割表示画面）に、ステップＳ８８で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づくＭ×Ｎ個の表示物が表示された画像を生成することができる。
【０１８６】
ステップＳ１０４において、変数ｊがＮ以上のとき（ステップＳ１０４：Ｎ）、変数ｃｎｔをインクリメントする（ステップＳ１０５）。
【０１８７】
続いて、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき（ステップＳ１０６：Ｙ）、一連の処理を終了する。終了ではないとき（ステップＳ１０６：Ｎ）、ステップＳ８２に戻る。
【０１８８】
なお図１８及び図１９においてＧが２のとき、図１１（Ｂ）に示すように、モデルオブジェクトに応じて、奇数フレームと偶数フレームとでスキニング処理の負荷を分散させることができる。
【０１８９】
図２０及び図２１に、Ｎ個のスクリーン（分割表示画面）に、Ｍ（Ｍは自然数）個のモデルオブジェクトのスキニング処理後の頂点データに基づいて各分割表示画面に複数の表示物と、該複数の表示物の影画像が表示される場合の処理フローの一例を示す。ただし、図１５及び図１６に示す処理フローと共通する変数は、その説明を省略する。
【０１９０】
まず変数ｆ［０］〜ｆ［Ｍ−１］を０に初期化する（ステップＳ１２０）。また変数ｉを０に初期化する（ステップＳ１２１）。
【０１９１】
次にｉ番目のモデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する（ステップＳ１２２）。
【０１９２】
そして、スキニング処理部１１４は、モーションデータのｆ［ｉ］フレーム目からマトリクス（関節行列データ）を作成する（ステップＳ１２３）。またスキニング処理部１１４は、オブジェクトデータ（基本頂点データ）と、マトリクスとを用いて、（３）式で示したように重み付けをして、スキニング処理後の頂点データ（ローカル座標系のキャラクタデータであるローカルデータ）を求める（ステップＳ１２４）。
【０１９３】
そして、ローカル座標系のキャラクタデータであるローカルデータとしてのスキニング処理後の頂点データに対して、図１３（Ｃ）に示す影行列と、ワールド座標系に変換するためのワールド座標系変換行列とを用いて、ｉ番目の影表示データを生成する（ステップＳ１２５）。
【０１９４】
更に、求めたスキニング処理後の頂点データに対して、ステップＳ１２２で求めた位置回転行列によりワールド座標変換を行って（ステップＳ１２６）、ワールド座標系のスキニング処理後の頂点データ（キャラクタデータ）を求める。
【０１９５】
続いて、ワールド座標変換後の影表示データとスキニング処理後の頂点データとを主記憶部１７２に保存する（ステップＳ１２７）。
【０１９６】
次に、変数ｆ［ｉ］をインクリメントする（ステップＳ１２８）。変数ｆ［ｉ］がＦｍａｘ［ｉ］以上のとき（ステップＳ１２９：Ｎ）、変数ｆ［ｉ］を０に初期化して（ステップＳ１３０）、ステップＳ１３１に進む。またステップＳ１２９において、変数ｆ［ｉ］がＦｍａｘ［ｉ］より小さいとき（ステップＳ１２９：Ｙ）、ステップＳ１３１に進む。
【０１９７】
ステップＳ１３１では、変数ｉをインクリメントして（ステップＳ１３１）、変数ｉがＭより小さいか否かを判別する（ステップＳ１３２）。変数ｉがＭより小さいとき（ステップＳ１３２：Ｙ）、ステップＳ１２２に戻る。変数ｉがＭ以上のとき（ステップＳ１３２：Ｎ）、ステップＳ１３３に進む。これにより、Ｍ個の表示物の画像を生成するための、スキニング処理後の頂点データと、これら表示物の影画像を生成するための頂点データとを求めることができる。
【０１９８】
図２１に示すステップＳ１３３では、変数ｊを０に初期化する（ステップＳ１３３）。そして、ｊ番目のスクリーンの初期化を行い（ステップＳ１３４）、ｊ番目のスクリーン用の仮想カメラ（第ｊの仮想カメラ）の位置・回転及び画角を設定する（ステップＳ１３５）。
【０１９９】
次に、再び変数ｉを０に初期化して（ステップＳ１３６）、ジオメトリ処理部１１６では、ステップＳ１２７で保存されたｉ番目のモデルオブジェクトのスキニング処理後の頂点データを、ｊ番目のカメラの設定位置や角度等によって定まるｊ番目のカメラ座標変換及び透視変換を行って表示物描画データを求め、該表示物描画データに基づいて表示物の描画処理を行い、該表示物が表示された画像を生成し、ｊ番目のスクリーンに表示する（ステップＳ１３７）。
【０２００】
またジオメトリ処理部１１６では、ステップＳ１２７で保存されたｉ番目の影表示データを、ｊ番目のカメラ座標変換及び透視変換を行って影描画データを求め、該影描画データに基づいて表示物の影の描画処理を行い、該表示物の影が表示された画像を生成し、ｊ番目のスクリーンに表示する（ステップＳ１３８）。
【０２０１】
そして、変数ｉをインクリメントする（ステップＳ１３９）。変数ｉがＭより小さいか否かを判別し、変数ｉがＭより小さいとき（ステップＳ１４０：Ｙ）、ステップＳ１３７に戻る。これにより、ｊ番目のスクリーン（第ｊの分割表示画面）に、ステップＳ１２７で保存されたＭ個のモデルオブジェクトのスキニング処理後の頂点データに基づき、Ｍ個の表示物とこれら表示物の影とが表示される画像を生成することができる。
【０２０２】
一方、ステップＳ１４０において変数ｉがＭ以上のとき（ステップＳ１４０：Ｎ）、変数ｊをインクリメントする（ステップＳ１４１）。変数ｊがＮより小さいとき（ステップＳ１４２：Ｙ）、ステップＳ１３４に戻る。したがって、１番目からＮ番目のスクリーン（第１〜第Ｎの分割表示画面）に、ステップＳ１２７で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づくＭ×Ｎ個の表示物とこれらの影が表示された画像を生成することができる。
【０２０３】
ステップＳ１４２において、変数ｊがＮ以上のとき（ステップＳ１４２：Ｎ）、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき（ステップＳ１４３：Ｙ）、一連の処理を終了する。終了ではないとき（ステップＳ１４３：Ｎ）、ステップＳ１２１に戻る。
【０２０４】
これにより、図８に示すように、第１〜第４の分割表示画面に４つのモデルオブジェクトのオブジェクトデータのスキニング処理後の頂点データに基づく１６個の表示物とこれらの影が表示された画像をより少ない処理負荷で生成することができる。
【０２０５】
４．ハードウェア構成
図２２に本実施形態を実現できるハードウェア構成の例を示す。
【０２０６】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。
【０２０７】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０２０８】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０２０９】
データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード（伸長）処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０２１０】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。そして１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０２１１】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介して入力される。
【０２１２】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする処理を行う。
【０２１３】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行う。通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどがある。
【０２１４】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０２１５】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０２１６】
図２３（Ａ）に業務用ゲームシステムへの本実施形態の適用例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、操作部１１０２を操作してゲームを楽しむ。内蔵されるシステムボード１１０６にはプロセッサ、メモリなどが実装される。本実施形態の各部の処理を実現するためのプログラム（データ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、このプログラムを格納プログラムと呼ぶ。
【０２１７】
図２３（Ｂ）に家庭用ゲームシステムへの本実施形態の適用例を示す。この場合、上記格納プログラム（格納情報）は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９に格納される。
【０２１８】
図２３（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２を介して接続される端末１３０４−１〜１３０４−ｎ（ゲーム機、携帯電話）とを含むシステムへの本実施形態の適用例を示す。この場合、上記格納プログラムは、ホスト装置１３００の情報記憶媒体１３０６（ハードディスク、磁気テープ装置等）に格納される。また本実施形態の各部の処理をホスト装置と端末の分散処理で実現してもよい。
【０２１９】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０２２０】
例えば、明細書又は図面中の記載において広義な用語として引用された用語は、明細書又は図面中の他の記載においても広義な用語に置き換えることができる。
【０２２１】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０２２２】
また、本発明は種々のゲーム（格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等）に適用できる。
【０２２３】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】本実施形態の処理の概要を説明するための模式図。
【図３】スケルトンモデルによりモデル化されたモデルオブジェクトの構成例を示す図。
【図４】図４（Ａ）〜（Ｃ）はモーションデータの説明図。
【図５】図５（Ａ）、（Ｂ）はオブジェクトデータの説明図。
【図６】図６（Ａ）、（Ｂ）は表示物描画データの説明図。
【図７】ゲーム画像の一例を示す図。
【図８】ゲーム画像の他の例を示す図。
【図９】１つの表示画面に、１つのモデルオブジェクトに基づいて生成された複数の表示物が表示された画像の例の概要を示す図。
【図１０】図１０（Ａ）、（Ｂ）は本実施形態におけるスキニング処理の省略化による負荷の軽減を説明する図。
【図１１】図１１（Ａ）、（Ｂ）はモデルオブジェクトに応じたスキニング処理の分散化の手法の説明図。
【図１２】図１２（Ａ）、（Ｂ）は本実施形態におけるモデルオブジェクトに応じたスキニング処理の分散化による負荷の軽減を説明する図。
【図１３】図１３（Ａ）、（Ｂ）、（Ｃ）は本実施形態における影の生成の説明図。
【図１４】１つのモデルオブジェクトのオブジェクトデータを用いて、複数のスクリーンに複数の表示物が表示される画像を生成する処理の一例を示すフロー図。
【図１５】複数のモデルオブジェクトのオブジェクトデータを用いて、複数のスクリーンに複数の表示物が表示される画像を生成する処理の一例の前半を示すフロー図。
【図１６】図１５のフローの後半を示す図。
【図１７】１つのモデルオブジェクトのスキニング処理後の頂点データに基づいて、１個のスクリーンに複数の表示物が表示される画像を生成する処理の一例を示すフロー図。
【図１８】モデルオブジェクトに応じてスキニング処理が行われるフレームを変更する場合の処理の一例の前半のフロー図。
【図１９】図１８のフローの後半を示す図。
【図２０】複数のスクリーンに、複数のモデルオブジェクトのスキニング処理後の頂点データに基づいて複数の表示物と、該複数の表示物の影画像が表示される場合の処理の一例をフロー図。
【図２１】図２０のフローの後半を示す図。
【図２２】ハードウェア構成例を示す図。
【図２３】図２３（Ａ）、（Ｂ）、（Ｃ）は種々の形態のシステム例を示す図。
【符号の説明】
１００  処理部、１１０  オブジェクト空間処理部、
１１１  モデルオブジェクト制御部、１１２  仮想カメラ設定部、
１１４  スキニング処理部、１１６  ジオメトリ処理部、１１８  影処理部、
１２０  画像生成部、１３０  音生成部、１６０  操作部、１７０  記憶部、
１７２  主記憶部、１７４  描画バッファ、１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９４  携帯型情報記憶装置、
１９６  通信部、ＧＰ−１〜ＧＰ−Ｎ  第１〜第Ｎのジオメトリ処理、
ＭＤＡＴ  モーションデータ、ＯＢＪＤ  オブジェクトデータ
ＳＰ  スキニング処理、ＴＭＰ  テンポラリデータ
【図１】
2004334662.tif 000004
【図２】
2004334662.tif 000005
【図３】
2004334662.tif 000006
【図４】
2004334662.tif 000007
【図５】
2004334662.tif 000008
【図６】
2004334662.tif 000009
【図７】
2004334662.tif 000010
【図８】
2004334662.tif 000011
【図９】
2004334662.tif 000012
【図１０】
2004334662.tif 000013
【図１１】
2004334662.tif 000014
【図１２】
2004334662.tif 000015
【図１３】
2004334662.tif 000016
【図１４】
2004334662.tif 000017
【図１５】
2004334662.tif 000018
【図１６】
2004334662.tif 000019
【図１７】
2004334662.tif 000020
【図１８】
2004334662.tif 000021
【図１９】
2004334662.tif 000022
【図２０】
2004334662.tif 000023
【図２１】
2004334662.tif 000024
【図２２】
2004334662.tif 000025
【図２３】
2004334662.tif 000026