JP2004334662A - 画像生成システム、プログラム及び情報記憶媒体 - Google Patents
画像生成システム、プログラム及び情報記憶媒体 Download PDFInfo
- Publication number
- JP2004334662A JP2004334662A JP2003131576A JP2003131576A JP2004334662A JP 2004334662 A JP2004334662 A JP 2004334662A JP 2003131576 A JP2003131576 A JP 2003131576A JP 2003131576 A JP2003131576 A JP 2003131576A JP 2004334662 A JP2004334662 A JP 2004334662A
- Authority
- JP
- Japan
- Prior art keywords
- data
- display
- nth
- skinning
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
【解決手段】画像生成システムでは、スキニング処理部において、モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成する。スキニング処理後のモデルオブジェクトの頂点データをテンポラリデータとして記憶し、該頂点データに基づいて、互いに異なる第1〜第N(Nは2以上の整数)のジオメトリ処理を行い、第1〜第Nの表示物描画データを求める。画像生成システムは、第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、第1〜第Nの表示物が表示された画像を生成する。
【選択図】 図2
Description
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【0002】
【従来の技術】
従来より、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。そしてこのような画像生成システムでは、キャラクタ(広義には表示物)についてもリアルに表現できることが望まれる。
【0003】
キャラクタをリアルに表現する手法として、例えば特許文献1に記載されているようなスケルトンアニメーションの技術を用いることが考えられる。スケルトンアニメーションは、各部が骨により構成されるスケルトンモデルの骨にスキンと呼ばれる表面を付けることで実現される。スケルトンアニメーションでは、骨の動きに追従してスキンの表面が表現される。そして、スキンの表面の動きの表現にスキニングと呼ばれる技術を用いることで、より一層リアルな表現が可能となる。
【0004】
【特許文献1】
特開2002−63595号公報
【0005】
【発明が解決しようとする課題】
しかしながら、上述のようなスキニングを実現する処理では、モデルオブジェクトの動きを指定するためのモーションデータからマトリクス群を作り、該モデルオブジェクトの各頂点に割り当てられた影響度情報を加味しながら頂点ごとに上記マトリクス群によるマトリクス変換によって、モーション後の頂点の位置情報等を得る。
【0006】
特に、このスキニング処理をリアルタイムで処理する場合、上述の演算処理をフレームごとに行うため、処理負荷が重いという問題があった。また複数のスケルトンモデルのオブジェクト画像をリアルタイムに表示させるためには、上述の演算処理に加え、モデル数分の座標変換処理も必要となり、更に処理負荷が重くなる。
【0007】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷でスキニング技術を用いて表示物をリアルに表現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【0008】
【課題を解決するための手段】
本発明は、画像生成を行う画像生成システムであって、モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、前記記憶部に記憶された前記頂点データに基づいて、互いに異なる第1〜第N(Nは2以上の整数)のジオメトリ処理を行い、第1〜第Nの表示物描画データを求めるジオメトリ処理部と、前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、前記第1〜第Nの表示物が表示された画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0009】
本発明においては、スキニング処理部が、モデルオブジェクトのオブジェクトデータに対してスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを求める。また記憶部が、スキニング処理後のモデルオブジェクトの頂点データを保持する。そしてジオメトリ処理部が、該頂点データに対して、互いに異なる第1〜第Nのジオメトリ処理を行い、第1〜第Nの表示物描画データを求め、画像生成部が、描画処理を行って第1〜第Nの表示物が表示された画像を生成する。これにより、処理負荷の重いスキニング処理を1回行うだけで、第1〜第Nの表示物が表示された画像を生成することができる。そして、少ない処理負荷でスキニング技術を用いて表示物をリアルに表現することができる。また、スキニング処理の処理負荷を大幅に軽減して、リアルタイム処理への適用を容易にする。
【0010】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ジオメトリ処理部が、前記頂点データに基づいて第1〜第Nのスクリーンへの透視変換を行って、前記第1〜第Nの表示物描画データを求め、前記画像生成部が、前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、表示画面が分割された第1〜第Nの分割表示画面に前記第1〜第Nの表示物が表示された画像を生成するようにしてもよい。
【0011】
本発明によれば、表示画面が分割された第1〜第Nの分割表示画面に、1つのモデルオブジェクトのオブジェクトデータを用いてスキニング処理された頂点データに基づく表示物を表示させることができる。したがって、第1〜第Nの表示物を表示させるためにN回のスキニング処理を行うことなく1回のスキニング処理で済み、処理負荷を軽減することができる。
【0012】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ジオメトリ処理部が、前記頂点データに基づいて第1〜第Nのワールド座標変換を行って、前記第1〜第Nの表示物描画データを求め、前記画像生成部が、前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、表示画面に前記第1〜第Nの表示物が表示された画像を生成してもよい。
【0013】
本発明においては、表示画面に表示される第1〜第Nの表示物を、1つのモデルオブジェクトのオブジェクトデータを用いてスキニング処理された頂点データに基づいて表示させるようにしている。これにより、スキニング処理の処理負荷を例えば1/N倍に軽減して、例えば群集等のシーンを、少ない処理負荷でよりリアルに表現することができるようになる。
【0014】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ジオメトリ処理部が、過去のフレームで前記記憶部に記憶された前記頂点データに基づいて前記第1〜第Nのジオメトリ処理を行って前記第1〜第Nの表示物描画データを求め、前記画像生成部が、前記第1〜第Nの表示物描画データに基づいて前記第1〜第Nの表示物の描画処理を行い、当該フレームでの前記第1〜第Nの表示物が表示された画像を生成してもよい。
【0015】
本発明においては、過去のフレームで生成されたスキニング処理後のモデルオブジェクトの頂点データを用いて、当該フレームの表示物が表示された画像を生成するようにしている。これにより、フレームごとにスキニング処理を行うことなく、スケルトンモデルによるリアルな表現が可能な表示物を表示させることができる。また同時に、スキニング処理の処理負荷を軽減することができる。
【0016】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スキニング処理部が、第1のフレームでは、第1のモデルオブジェクトのオブジェクトデータと該第1のモデルオブジェクトのモーションデータとに基づく第1のスキニング処理を行ってスキニング処理後の第1の頂点データを求めると共に、第2のモデルオブジェクトのオブジェクトデータと該第2のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略し、第2のフレームでは、前記第1のモデルオブジェクトのオブジェクトデータと該第1のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略すると共に、第2のモデルオブジェクトのオブジェクトデータと該第2のモデルオブジェクトのモーションデータとに基づく第2のスキニング処理を行ってスキニング処理後の第2の頂点データを求め、前記ジオメトリ処理部が、前記第1のフレームで求められた前記第1の頂点データに基づいて第1〜第Nのジオメトリ処理を行い第1〜第Nの表示物描画データを求めると共に、前記第2のフレームで求められた前記第2の頂点データに基づいて第(N+1)〜第L(Lは(N+1)以上の整数)のジオメトリ処理を行い第(N+1)〜第Lの表示物描画データを求め、前記画像生成部が、前記第1〜第Lの表示物描画データに基づいて第1〜第Lの表示物の描画処理を行い、前記第1〜第Lの表示物が表示された画像を生成してもよい。
【0017】
例えば、各グループが1又は複数のモデルオブジェクトを含む複数のグループにグループ化し、グループごとに、第1のフレームでスキニング処理を行い第2のフレームでスキニング処理を省略したり、或いは第1のフレームでスキニング処理を省略し第2のフレームでスキニング処理を行ったりすることも本発明に含まれる。
【0018】
本発明においては、第1及び第2のモデルオブジェクトのスキニング処理が同一フレームで行われることなく、かつ各フレームにおいて、過去のフレーム又は当該フレームで求められたスキニング処理後の第1及び第2のモデルオブジェクトの頂点データに基づいて第1〜第Lの表示物を表示させる。このように、毎フレーム、スキニング処理を行うことなくスキニング処理を適宜省略して、モデルオブジェクトに応じてスキニング処理を行うフレームを分散化する。これにより、スキニング処理の処理負荷を更に軽減し、かつスキニング技術によるリアルに表現される表示物を多く表示させることができる。
【0019】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第1〜第Nの表示物の少なくとも1つの影表示データを生成する影処理部を含み(これらの各部としてコンピュータを機能させる、或いはこれらの各部としてコンピュータを機能させるプログラムを記憶し)、前記ジオメトリ処理部が、前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、前記画像生成部が、前記影描画データに基づいて前記第1〜第Nの表示物のいずれかの影の描画処理を行い、前記第1〜第Nの表示物の影が表示された画像を生成してもよい。
【0020】
本発明によれば、スキニング処理後のモデルオブジェクトの頂点データを用いて、表示物の影が表示された画像を生成するようにしたので、スキニング技術を用いつつ、少ない処理負荷で表示物と、該表示物の影とが表示される画像を生成することができる。
【0021】
また本発明は、画像生成を行う画像生成システムであって、モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求めるジオメトリ処理部と、前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成する画像生成部とを含み、第K(Kは自然数)のフレームにおいて、前記スキニング処理部が、前記スキニング処理後のモデルオブジェクトの頂点データを生成し、前記記憶部が、前記スキニング処理後のオブジェクトの頂点データを記憶し、前記ジオメトリ処理部が、前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、前記画像生成部が、前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成し、前記第Kのフレーム以降のフレームにおいて、前記ジオメトリ処理部が、前記第Kのフレームにおいて前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、前記画像生成部が、当該フレームにおいて求められた前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0022】
本発明においては、過去のフレームで生成されたスキニング処理後のモデルオブジェクトの頂点データを用いて、当該フレームの表示物が表示された画像を生成するようにしている。即ち、第Kのフレームでは、スキニング処理を行って頂点データを求めると共に、該頂点データに対応した表示物が表示された画像を生成する。そして、第Kのフレーム以降のフレームでは、スキニング処理は行わずに、第Kのフレームにおいて生成された記憶部に記憶された頂点データを用いて、該頂点データに対応した表示物が表示された画像を生成する。これにより、フレームごとにスキニング処理を行うことなく、スケルトンモデルによるリアルな表現が可能な表示物を表示させることができる。また同時に、スキニング処理の処理負荷を軽減することができる。
【0023】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ジオメトリ処理部が、前記記憶部に記憶された前記頂点データに基づいて、ジオメトリ処理を行い、第1〜第N(Nは2以上の自然数)の表示物描画データを求め、前記画像生成部が、前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、前記第1〜第Nの表示物が表示された画像を生成してもよい。
【0024】
本発明によれば、処理負荷の重いスキニング処理を1回行うだけで、第1〜第Nの表示物が表示された画像を生成することができる。そして、少ない処理負荷でスキニング技術を用いて表示物をリアルに表現することができる。また、スキニング処理の処理負荷を大幅に軽減して、リアルタイム処理への適用を容易にする。
【0025】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第1〜第Nの表示物の少なくとも1つの影表示データを生成する影処理部を含み、前記ジオメトリ処理部が、前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、前記画像生成部が、前記影描画データに基づいて前記第1〜第Nの表示物のいずれかの影の描画処理を行い、前記第1〜第Nの表示物の影が表示された画像を生成してもよい。
【0026】
本発明によれば、スキニング処理後のモデルオブジェクトの頂点データを用いて、表示物の影が表示された画像を生成するようにしたので、スキニング技術を用いつつ、少ない処理負荷で表示物と、該表示物の影とが表示される画像を生成することができる。
【0027】
【発明の実施の形態】
以下、本実施形態について説明する。
【0028】
なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0029】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお、本実施形態の画像生成システムは、図1の構成要素(各部)を全て含む必要はなく、その一部(例えば操作部160、携帯型情報記憶装置194又は通信部196等)を省略した構成としてもよい。
【0030】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサ、タッチパネル型ディスプレイ、或いは筺体などのハードウェアにより実現できる。
【0031】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0032】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶(記録、格納)される。
【0033】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0034】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【0035】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。
【0036】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0037】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0038】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。ここで処理部100が行うゲーム処理としては、ゲーム開始条件(コースやマップやキャラクタや参加プレーヤ人数の選択等)が満たされた場合にゲームを開始させる処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了させる処理などがある。また処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)やASIC(ゲートアレイ等)などのハードウェアや、プログラム(ゲームプログラム)により実現できる。
【0039】
処理部100は、オブジェクト空間処理部110、スキニング処理部114、ジオメトリ処理部116、影処理部118、画像生成部120、音生成部130を含む。なおこれらの一部を省略してもよい。
【0040】
オブジェクト空間処理部110(シミュレーション演算部、移動・動作演算部)は、オブジェクト(移動オブジェクト、モデルオブジェクト)を制御する処理を行う。例えばオブジェクト空間処理部110は、オブジェクトの移動情報(位置情報、方向情報、速度情報或いは加速度情報)を求める処理を行う。オブジェクト空間処理部110は、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトをオブジェクト空間内で移動させる処理を行う。
【0041】
より具体的には、オブジェクト空間処理部110は、オブジェクトの位置や回転角度(方向)を例えば1フレーム(1/60秒等)毎に変化させる。例えば(k−1)フレームでのオブジェクトの位置(X、Y又はZ座標)、回転角度(X、Y又はX軸回りの回転角度)をPk−1、θk−1とし、オブジェクトの1フレームでの位置変化量(速度)、回転変化量(回転角度)をΔP、Δθとする。すると、kフレームでのオブジェクトの位置Pk、回転角度θkは例えば下式(1)、(2)のように求められる。
【0042】
Pk=Pk−1+ΔP (1)
θk=θk−1+Δθ (2)
なおオブジェクト空間処理部110で行われる処理は、上式(1)、(2)の処理に限定されず、(1)、(2)式と均等な処理でもよい。
【0043】
オブジェクト空間処理部110は、モデルオブジェクト制御部111、仮想カメラ設定部112を含む。
【0044】
モデルオブジェクト制御部111は、モデルオブジェクトの動作情報(モデルオブジェクトの各パーツの位置情報、方向情報)を求める処理を行う。即ち、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、モデルオブジェクトを動作(モーション、アニメーション)させる処理を行う。
【0045】
より具体的には、モデルオブジェクト制御部111は、モデルオブジェクトのモーションを、該モデルオブエジェクとのモーションデータに基づいて再生する処理等を行う。即ち、モデルオブジェクト(オブジェクト、スケルトン、キャラクタ)を構成する各骨(パーツオブジェクト)の位置又は回転角度(方向)等を含むモーションデータを記憶部170から読み出す。そして、モデルオブジェクトの各骨を動かすことで(スケルトン形状を変形させることで)、モデルオブジェクトのモーションを再生する。
【0046】
そして、モデルオブジェクト制御部111は、上述のように制御されたモデルオブジェクトのオブジェクトデータを生成する。このオブジェクトデータは、そのままスキニング処理部114に出力され、或いは一旦主記憶部172(記憶部170)に格納された後にスキニング処理部114に出力される。
【0047】
仮想カメラ設定部112は、オブジェクト空間内の所与(任意)の視点での画像を生成するための仮想カメラを制御する処理を行う。即ち、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0048】
例えば、モデルオブジェクトに基づいて表示される表示物を背後から撮影した画像を生成する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、オブジェクト空間処理部110(移動・動作演算部)において得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた回転角度で回転させるようにしてもよい。なお、仮想カメラの位置(移動経路)や回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0049】
仮想カメラ設定部112は、オブジェクト空間内で複数の仮想カメラを独立して制御する処理を行うことも可能である。この場合、各仮想カメラについて上述した制御を行う。
【0050】
スキニング処理部114は、モデルオブジェクトのオブジェクトデータと該オブジェクトモデルのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを求める。
【0051】
ここでモデルオブジェクトのモーションデータは、モデルオブジェクトのスケルトンモデルを構成する複数の骨(アーク)に基づく位置データ、回転角度(向き)データを含ませることができる。またモデルオブジェクトのオブジェクトデータは、基準頂点データ(モデルオブジェクトが基準姿勢であるときの頂点の位置データ等を含むデータ)と、モデルオブジェクト(スケルトンモデル)のモーション変化時の各骨に対する頂点の追従度合いを表す重み付けデータ(影響度情報)を含ませることができる。スキニング処理は、モーション変化時に、モデルオブジェクトの頂点を、重み付けデータ(影響度情報)に応じて各骨に追従させることで実現される。更に具体的には、スキニング処理は、モデルオブジェクトのスケルトンモデルを構成する各骨の位置と回転角度が特定されるモーションデータと、各骨に対するモデルオブジェクトの各頂点の追従度を表わす影響度情報とによって、モデルオブジェクトの新たな頂点データを求める処理をいう。
【0052】
なおオブジェクトデータは、モデルオブジェクト制御部111により生成されたり、画像生成システムへの電源投入時等に例えば情報記憶媒体180から読み出されて主記憶部172にロードされる。或いは通信部196、インターネット(広義にはネットワーク)を介してホスト装置から主記憶部172にダウンロードされる。またモーションデータは、処理部100によりリアルタイムで生成されたり、画像生成システムへの電源投入時等に例えば情報記憶媒体180から読み出されて主記憶部172にロードされる。或いは通信部196、インターネット(広義にはネットワーク)を介してホスト装置から主記憶部172にダウンロードされる。
【0053】
スキニング処理部114によって求められたスキニング処理後のモデルオブジェクトの頂点データは、主記憶部172に記憶される。
【0054】
ジオメトリ処理部116は、主記憶部172(記憶部)に記憶されたスキニング処理後の1つのモデルオブジェクトの頂点データに基づいて、1又は互いに異なる複数種類のジオメトリ処理を行い、複数の表示物描画データを求める。より具体的には、スキニング処理後の1つのモデルオブジェクトの頂点データに基づいて、互いに異なる第1〜第N(Nは2以上の整数)のジオメトリ処理を行い、第1〜第Nの表示物描画データを求める。ここで、第1〜第Nのジオメトリ処理のそれぞれは、ワールド座標変換、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも1つを含む。例えばオブジェクトデータがワールド座標変換されている場合には、第1〜第Nのジオメトリ処理のそれぞれは、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも1つを含む。また例えばオブジェクトデータがモデルオブジェクトを基準としたローカル座標系のデータである場合には、第1〜第Nのジオメトリ処理のそれぞれは、ワールド座標変換、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも1つを含む。
【0055】
なお第1〜第Nのジオメトリ処理は、仮想カメラ設定部112によって設定される第1〜第Nの仮想カメラの位置又は回転角度(仮想カメラの向き)に基づいて行われる。
【0056】
ジオメトリ処理部116は、主記憶部172(記憶部)に記憶されたスキニング処理後の1つのモデルオブジェクトの頂点データに基づいて、第1〜第Nのスクリーンへの透視変換を行って、第1〜第Nの表示物描画データを求めることもできる。第1〜第Nのスクリーンは、仮想カメラ設定部112によって設定される第1〜第Nの仮想カメラの位置又は回転角度(仮想カメラの向き)に基づいて定められる。第1〜第Nのスクリーンは、例えば表示画面を分割した第1〜第Nの分割表示画面に対応させることも可能である。
【0057】
またジオメトリ処理部116は、主記憶部172(記憶部)に記憶されたスキニング処理後の1つのモデルオブジェクトの頂点データに基づいて、第1〜第Nのワールド座標変換を行って、第1〜第Nの表示物描画データを求めることもできる。第1〜第Nのワールド座標変換のそれぞれは、並進移動(トランスレーション)、回転移動(ローテーション)及びスケーリングの少なくとも1つの変換を含む。
【0058】
影処理部118は、スキニング処理後のモデルオブジェクトの頂点データを用いて、第1〜第Nの表示物の少なくとも1つの影表示データを生成する。より具体的には、影処理部118は、主記憶部172(記憶部)に記憶されたスキニング処理後の1つのモデルオブジェクトの頂点データに基づいて、例えば平面投影法、シャドウボリューム(Shadow Volume)、或いはシャドウマッピング(Shadow Mapping)により影表示データを生成する。この場合、ジオメトリ処理部116が、影処理部118によって生成された影表示データに対してジオメトリ処理を行い、影描画データを求める。
【0059】
影表示データがワールド座標変換されている場合には、ジオメトリ処理は、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも1つを含む。また例えば影表示データがローカル座標系のデータである場合には、ジオメトリ処理は、ワールド座標変換、カメラ座標変換、クリッピング処理、透視変換、及び光源処理の少なくとも1つを含む。
【0060】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。即ち、ジオメトリ処理部116の処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、表示物の描画処理を行う。この描画データを描画バッファ174(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画することにより、オブジェクト空間内において仮想カメラ(所与の視点、第1〜第Nの仮想カメラ)から見える表示物の画像が生成される。
【0061】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0062】
なお本実施形態における画像生成システムでは、表示画面を分割した複数の分割表示画面に、オブジェクト空間内でそれぞれ設定される仮想カメラから見える表示物が表示された画像を生成することができる。この場合、仮想カメラ設定部112が各分割表示画面用に仮想カメラを制御する処理を行い、画像生成部120がジオメトリ処理後の描画データを、各分割表示画面用に割り当てられた描画バッファ174の描画領域に書き込んで、複数の分割表示画面にそれぞれ表示物が表示された画像を生成する。
【0063】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0064】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて生成してもよい。
【0065】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0066】
2.1 処理の概要
図2に、本実施形態の処理の概要を説明するための模式図を示す。本実施形態では、ジオメトリ処理部116が、スキニング処理後の1つのモデルオブジェクトの頂点データであるテンポラリデータTMPに対して、異なる第1〜第Nのジオメトリ処理GP−1〜GP−Nを行って第1〜第Nの表示物描画データを生成する。スキニング処理部114は、図2に示すようにモデルオブジェクトのオブジェクトデータOBJと該モデルオブジェクトのモーションデータMDATとに基づくスキニング処理SPにより、テンポラリデータTMPを求める。そして、画像生成部120が、第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行って第1〜第Nの表示物が表示された画像を生成する。
【0067】
本実施形態では、スケルトンモデルにより表現されるキャラクタ(表示物)の画像を生成する。これにより、よりリアルな表示物の画像を生成する。
【0068】
2.2 スキニング処理
まずスキニング処理について説明する。
【0069】
スキニング処理は、スケルトンモデルによりモデル化されたモデルオブジェクトの頂点データを求める処理である。より具体的には、スキニング処理は、モデルオブジェクトのスケルトンモデルを構成する各骨の位置と回転角度が特定されるモーションデータと、各骨に対するモデルオブジェクトの各頂点の追従度を表わす影響度情報とにより、モデルオブジェクトの新たな頂点データを求める。
【0070】
図3に、スケルトンモデルによりモデル化されたモデルオブジェクトの構成例を示す。スケルトンモデルでは、モーションデータにより位置や回転角度が特定される骨BM1〜BM20が設定される。したがって、モーションデータに基づいて骨BM1〜BM20を動かすことで、モデルオブジェクトを変形し、モデルオブジェクトのモーションを表現することができる。
【0071】
モーションデータは、例えばモーションキャプチャを用いて作成される。モーションデータは、図4(A)に示すように、例えば親の骨BMPに対する子の骨BMCのX軸、Y軸、Z軸回りの相対的な回転角度rx、ry、rzにより表わされる。
【0072】
例えば、右手を上げるというモデルオブジェクトの動きを表現する場合には、演技する人に右手を上げてもらい、その人の肩に取り付けたセンサ或いは肘に取り付けたセンサを用いてモーションキャプチャにより上腕の回転角度を取得する。そして、取得した回転角度を、モーションデータとして記憶しておく。こうすることで、図3に示す親の骨BM11に対する子の骨BM12の回転角度がモーションデータとして記憶される。このようにして記憶されたモーションデータに基づいて骨BM1〜BM20をリアルタイムに動かし、これらの骨の動きに追従するようにモデルオブジェクトを変形することで、右手を上げるというモデルオブジェクトの動きを表現する。
【0073】
図4(B)には、本実施形態におけるモーションデータの構成例である。ここでは、スケルトンモデルの骨の構成によって定まる関節の数がK(Kは自然数)であるものとする。
【0074】
モーションデータは、フレーム0〜フレームFmax−1(Fmaxは正の整数)の各フレームごとに、各関節の位置データ(X軸、Y軸、Z軸の座標(x,y,z))と、当該関節における親の骨に対する子の骨の回転角度データ(X軸、Y軸、Z軸回りの回転角度(rx,ry,rz))を含む。例えば図4(C)では、フレーム0において、関節0が座標(0.0,1.0,0.0)の位置で、予め決められた関節0における親の骨に対し、子の骨が(0,0,30)の回転角度を有していることを示す。
【0075】
図4(B)、(C)では、関節の位置データと、当該関節における子の骨の回転角度とによりモーションデータを構成したが、これに限定されるものではなく、モデルオブジェクトのスケルトンモデルを構成する複数の骨の位置データ、回転角度(向き)データによりモーションデータを構成してもよい。
【0076】
図5(A)、(B)に、本実施形態におけるモデルオブジェクトのオブジェクトデータの構成例を示す。ここでは、モデルオブジェクトのモーション変化時の各頂点を、スキニング処理により追従させる骨の数をB(Bは自然数)とする。またモデルオブジェクトの頂点数をVmax(Vmaxは自然数)とする。
【0077】
モデルオブジェクトを構成する各頂点には、位置データ(X軸、Y軸、Z軸の座標(x,y,z))と、モデルオブジェクトのモーション変化時に用いられる各骨のマトリクス番号と、各骨の追従度合いを表す重み付けデータとが付与されている。
【0078】
位置データは、基準頂点データとして、モデルオブジェクトが基準姿勢であるときの頂点の位置データということができる。この位置データは、モデルオブジェクト制御部111において、例えば操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、モデルオブジェクトをオブジェクト空間内で移動させる処理の結果として生成される。
【0079】
マトリクス番号は、行列演算に用いられるマトリクスを特定するための番号である。このマトリクスは、図4(B)に示すモーションデータに基づいて生成される。骨BM0〜BM(B−1)の各骨の重み付けの総和が1になるように、各重み付けが割り当てられる。
【0080】
例えば頂点0の座標をBX、骨BM0〜骨BM(B−1)のマトリクス番号によって特定されるマトリクスをM0〜M(B−1)とすると、スキニング処理後の頂点の座標SXは、次の式により表わされる。
【0081】
したがって、図5(B)では、頂点0の座標が(0.3,0.0,−0.4)で、モーション変化時に骨BM0のマトリクス番号が0で、その重み付けw0が1.0であることを示し、骨BM1〜BM3に追従しないことを示す。
【0082】
このようにしてスキニング処理されて求められた頂点データ(図2に示すテンポラリデータTMP)は、主記憶部172に保存される。ジオメトリ処理部116は、主記憶部172に保存された頂点データに基づいて異なる複数のジオメトリ処理を行って表示物描画データを求める。
【0083】
図6(A)、(B)に本実施形態における表示物描画データの構成例を示す。ここでは、モデルオブジェクトのポリゴン数がP(Pは正の整数)であるものとする。表示物描画データは、ポリゴンごとに、当該ポリゴンを構成する頂点を特定するデータである。即ち、表示物描画データは、ポリゴンごとに、頂点数と、該頂点数分の頂点番号とを含んで構成される。頂点番号は、図5(A)に示す頂点データごとに、スキニング処理後の頂点データを特定する番号である。
【0084】
例えば図6(B)に示すように、ポリゴン0は、頂点数が3で、頂点番号0、1、2の3頂点により構成される。例えば頂点番号0の位置は、図5(A)に示す頂点0に対して(3)式で示すスキニング処理後の頂点データの位置である。
【0085】
本実施形態では、主記憶部172に保存された頂点データに基づいて、異なる複数のジオメトリ処理を行うことで、スキニング処理の処理負荷を軽減することができる。
【0086】
図7に、ゲーム画像の一例を示す。図7では、表示画面が第1〜第4の分割表示画面DISP1〜DISP4に分割されている例を示している。ここでは、1つの3次元のゲーム空間(ゲーム処理において設定される領域)内を、4人のプレーヤが操作する4つのキャラクタ(表示物)C1〜C4が銃を持って動き回り、他のプレーヤ又はコンピュータが操作するキャラクタ、若しくは共通の敵キャラクタを倒すゲームの画像を示す。各分割表示画面には、各プレーヤが操作するキャラクタを背後から見た画像が表示される。
【0087】
図7では、各キャラクタが操作するキャラクタを背後から見た範囲に、他のキャラクタが現れていない。そのため、第1〜第4の分割表示画面DISP1〜DISP4には、それぞれ自キャラクタの画像C1〜C4のみが表示される。したがって、各キャラクタをそれぞれ別個のスケルトンモデルを用いて表現する場合、1フレームで4キャラクタ分のスキニング処理が必要となる。
【0088】
図8に、ゲーム画像の他の例を示す。図8では、各分割表示画面に自キャラクタ以外に他のプレーヤが操作するキャラクタの画像が表示される。即ち、オブジェクト空間内で設定される第1〜第4の仮想カメラの位置及び回転角度によって定まる第1〜第4のスクリーンへの透視変換を行って、第1〜第4の分割表示画面DISP1〜DISP4に、第1〜第4の表示物が表示された画像が生成されている。
【0089】
第1の分割表示画面DISP1に、自キャラクタの画像C1の他に、他のキャラクタが操作するキャラクタの画像C2−1〜C4−1が表示される。同様に、第2の分割表示画面DISP2に、自キャラクタの画像C2の他に、他のキャラクタが操作するキャラクタの画像C1−2、C3−2、C4−2が表示される。第3の分割表示画面DISP3に、自キャラクタの画像C3の他に、他のキャラクタが操作するキャラクタの画像C1−3、C2−3、C4−3が表示される。第4の分割表示画面DISP4に、自キャラクタの画像C4の他に、他のキャラクタが操作するキャラクタの画像C1−4〜C3−4が表示される。
【0090】
各キャラクタをそれぞれ別個のスケルトンモデルを用いて表現する場合、上述したような処理負荷の重いスキニング処理が1フレームで16キャラクタ分必要となってしまい、リアルタイム性が必要とされるゲーム処理において実現できる処理が制限される。
【0091】
ところが図2に示すように、本実施形態においては、1つのモデルオブジェクトに対して行ったスキニング処理後のデータを用いて、異なるジオメトリ処理を行って求めた表示物描画データに基づいて描画処理を行う。
【0092】
したがって、本実施形態によれば、第1の分割表示画面DISP1に表示されるキャラクタの画像C2−1は、第2の分割表示画面DISP2に表示される自キャラクタC2のスキニング処理後のデータに基づいて描画処理された結果生成された画像として生成される。同様に、第1の分割表示画面DISP1に表示されるキャラクタの画像C3−1は、第3の分割表示画面DISP3に表示される自キャラクタC3のスキニング処理後のデータに基づいて描画処理された結果生成された画像として生成される。第1の分割表示画面DISP1に表示されるキャラクタの画像C4−1は、第4の分割表示画面DISP4に表示される自キャラクタC4のスキニング処理後のデータに基づいて描画処理された結果生成された画像として生成される。第2〜第4の分割表示画面DISP2〜DISP4についても同様である。
【0093】
以上のように、本実施形態によれば、図8に示す場合でも、4キャラクタ分のスキニング処理で済み、リアルタイム性が必要とされるゲーム演算の処理負荷を大幅に軽減することができるようになる。
【0094】
2.3 群衆等の表現
また本実施形態では、ジオメトリ処理部116が、スキニング処理後の頂点データに基づいて第1〜第Nのワールド座標変換を行って第1〜第Nの表示物描画データを求めるようにしてもよい。この場合、画像生成部120が、第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、表示画面に第1〜第Nの表示物が表示された画像を生成する。
【0095】
より具体的には、スキニング処理前のモデルオブジェクトのオブジェクトデータを、ローカル座標系のデータとして持っておく。そして、スキニング処理部114が、ローカル座標系のモデルオブジェクトのオブジェクトデータを用いて、上述のようなスキニング処理を行う。こうして得られたスキニング処理後の頂点データを用いて、ジオメトリ処理部116が、第1〜第Nの表示物を表示させたいワールド座標に、それぞれ異なる第1〜第Nのワールド座標変換を行って第1〜第Nの表示物描画データを求める。
【0096】
こうすることで、図9に示すように、1つの表示画面DISP(或いは第1〜第4の分割表示画面DISP1〜DISP4のいずれか)に、1つのモデルオブジェクトに基づいて生成された第1〜第Nの表示物DOB1〜DOBNが表示された画像を、より少ない処理負荷で生成することができる。N個の表示物の画像生成に対し、スキニング処理が当該モデルオブジェクトに対して1回のみ行われるからである。
【0097】
こうすることで、例えば群集や観客、サッカーゲーム等のチームのメンバなどを、少ない処理負荷でスケルトンモデルによりリアルに表現することができる。
【0098】
2.4 スキニング処理負荷の軽減
2.4.1 スキニング処理の省略
また本実施形態では、当該フレームでスキニング処理された頂点データを用いることなく、過去のフレームで求められたスキニング処理後の頂点データに基づいてジオメトリ処理を行って、第1〜第Nの表示物が表示された画像を生成するようにしてもよい。
【0099】
図10(A)に、本実施形態の各処理をフレームごとに行った場合の処理の概要を模式的に示す。ここでは、フレーム1に後続する次のフレームがフレーム2、フレーム2に後続する次のフレームがフレーム3であるものとする。
【0100】
図10(A)では、フレーム1において、モデルオブジェクトのオブジェクトデータ生成処理OBM1、スキニング処理SP1、ジオメトリ処理GP1及び画像生成処理DP1が行われる。オブジェクトデータ生成処理OBM1は、モデルオブジェクト制御部111によって行われる。スキニング処理SP1は、スキニング処理部114によって行われる。ジオメトリ処理GP1は、ジオメトリ処理部116によって行われる。画像生成処理DP1は、画像生成部120によって行われる。
【0101】
またフレーム2においても、モデルオブジェクト制御部111によるモデルオブジェクトのオブジェクトデータ生成処理OBM2、スキニング処理部114によるスキニング処理SP2、ジオメトリ処理部116によるジオメトリ処理GP2及び画像生成部120による画像生成処理DP2が行われることを示している。
したがって、フレームごとに、上述したように処理負荷の重いスキニング処理SPを実行しなければならず、1フレームという制限された時間内に実行すべき他の処理を省略する必要が生ずる場合がある。
【0102】
図10(B)に、本実施形態のスキニング処理を省略する場合の処理の概要を模式的に示す。図10(B)において、フレーム1では、図10(A)に示すように、モデルオブジェクトのオブジェクトデータ生成処理OBM1、スキニング処理SP1、ジオメトリ処理GP1及び画像生成処理DP1が行われる。
【0103】
これに対して、フレーム2では、フレーム1で行われたスキニング処理SP1によって求められたスキニング処理後の頂点データを用いて、ジオメトリ処理部116によるジオメトリ処理GP2及び画像生成部120による画像生成処理DP2が行われる。したがって、フレーム2では、処理負荷の重いスキニング処理を省略している。
【0104】
そして、フレーム3では、再び、モデルオブジェクト制御部111によるモデルオブジェクトのオブジェクトデータ生成処理OBM1、スキニング処理部114によるスキニング処理SP1、ジオメトリ処理部116によるジオメトリ処理GP1及び画像生成部120による画像生成処理DP1が行われる。
【0105】
以上のように、ジオメトリ処理部116が、過去のフレームで記憶部170に記憶された頂点データに基づいて第1〜第Nのジオメトリ処理を行って第1〜第Nの表示物描画データを求めている。そして、画像生成部120が、第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、当該フレームでの前記第1〜第Nの表示物が表示された画像を生成する。これにより、スキニング処理が省略され、処理負荷を軽減することが可能である。
【0106】
なお図10(B)においては、スキニング処理SP2が省略されるフレーム2において、モデルオブジェクト制御部111によるオブジェクトデータ生成処理OBM2を行っているが、これに限定されるものではなく、フレーム2においてオブジェクトデータ生成処理OBM2を省略するようにしてもよい。しかし、モデルオブジェクトにより表示物をよりリアルに表現する場合には、フレーム2においてもオブジェクトデータ生成処理OBM2を省略しないことが望ましい。
【0107】
また図10(B)では、フレーム2において、フレーム1で生成されたスキニング処理後の頂点データを用いるものとしているが、2フレーム以上過去のフレームで生成されたスキニング処理後の頂点データを用いるようにしてもよい。
【0108】
また、過去のフレームでスキニング処理により生成された頂点データを用いて当該フレームで第1〜第Nの表示物が表示される画像を生成しているが、過去のフレームでスキニング処理により生成された頂点データを用いて当該フレームで1つの表示物が表示される画像を生成してもよい。
【0109】
この場合、画像生成システムは、モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部114と、スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部170と、記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求めるジオメトリ処理部116と、表示物描画データに基づいて表示物の描画処理を行い、表示物が表示された画像を生成する画像生成部120とを含む。
【0110】
そして、第K(Kは自然数)のフレームにおいて、スキニング処理部114が、スキニング処理後のモデルオブジェクトの頂点データを生成し、記憶部170が、第Kのフレームで行われたスキニング処理後のオブジェクトの頂点データを記憶する。更にジオメトリ処理部116が、記憶部170に記憶された頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、画像生成部120が、表示物描画データに基づいて表示物の描画処理を行い、表示物が表示された画像を生成する。
【0111】
更にまた、第Kのフレーム以降のフレームにおいて、ジオメトリ処理部116が、第Kのフレームにおいて記憶部170に記憶された頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、画像生成部120が、当該フレームにおいて求められた表示物描画データに基づいて表示物の描画処理を行い、表示物が表示された画像を生成する。
【0112】
また、ジオメトリ処理部116は、第1〜第Nの表示物描画データを求める際に、1つの頂点データに対して互いに異なる第1〜第Nのジオメトリ処理を行ってもよいが、同一のジオメトリ処理であってもよい。
【0113】
2.4.2 モデルオブジェクトに応じたスキニング処理
また本実施形態では、モデルオブジェクトに応じてスキニング処理を行うフレームを変更するようにしてもよい。こうすることで、複数のモデルオブエジェクトを用いて複数の表示物を表示させる場合、スキニング処理が行われるフレームを適宜割り当てて、同一フレームで行われるスキニング処理の負荷を分散させることができるようになる。
【0114】
図11(A)、(B)に、モデルオブジェクトOBJ1〜OBJ4についてのスキニング処理の分散例を模式的に示す。図11(A)は、スキニング処理SPにおいて行われる処理の概要を示す。即ちスキニング処理SPは、モデルオブジェクトのオブジェクトデータと、該モデルオブジェクトのモーションデータとを用いてスキニング処理を行い、該モデルオブジェクトのスキニング処理後の頂点データを求める。
【0115】
そして、図11(B)に示すように、奇数フレーム(第1のフレーム)では、モデルオブジェクトOBJ1(第1のモデルオブジェクト)のオブジェクトデータと該モデルオブジェクトのモーションデータとに基づくスキニング処理(第1のスキニング処理)を行ってスキニング処理後のモデルオブジェクトOBJ1の頂点データ(第1の頂点データ)を求める。またモデルオブジェクトOBJ2(第2のモデルオブジェクト)のオブジェクトデータと該モデルオブジェクトのモーションデータとに基づくスキニング処理を省略する。
【0116】
そして、偶数フレーム(第2のフレーム)では、モデルオブジェクトOBJ2(第2のモデルオブジェクト)のオブジェクトデータと該モデルオブジェクトのモーションデータとに基づくスキニング処理(第2のスキニング処理)を行ってスキニング処理後のモデルオブジェクトOBJ2の頂点データ(第2の頂点データ)を求める。またモデルオブジェクトOBJ1(第1のモデルオブジェクト)のオブジェクトデータと該モデルオブジェクトのモーションデータとに基づくスキニング処理を省略する。
【0117】
なお図11(B)では、奇数フレームでにおいて、モデルオブジェクトOBJ1、OBJ3についてのスキニング処理を行い、偶数フレームではモデルオブジェクトOBJ2、OBJ4についてのスキニング処理を行っている。
【0118】
以上のようにすることで、同一フレームで行われるスキニング処理の負荷を分散させることができる。
【0119】
図12(A)に、フレームごとに、モデルオブジェクトOBJ1、OBJ2についてスキニング処理を行う場合の処理の概要を示す。図12(B)に、スキニング処理を省略する場合の処理の概要を示す。各処理には、図10(A)、(B)と同様の符号を付している。
【0120】
図12(B)では、フレーム1、フレーム3を奇数フレーム、フレーム2を偶数フレームとして示している。
【0121】
ジオメトリ処理部116は、奇数フレーム(第1のフレーム)で求められたモデルオブジェクトOBJ1の頂点データ(第1の頂点データ)に基づいて第1〜第Nのジオメトリ処理を行い第1〜第Nの表示物描画データを求める。そして、ジオメトリ処理部116は、偶数フレーム(第2のフレーム)で求められたモデルオブジェクトOBJ3(第2の頂点データ)に基づいて第(N+1)〜第L(Lは(N+1)以上の整数)のジオメトリ処理を行い第(N+1)〜第Lの表示物描画データを求める。そして、画像生成部120が、第1〜第Lの表示物描画データに基づいて第1〜第Lの表示物の描画処理を行い、第1〜第Lの表示物が表示された画像を生成する。
【0122】
以上のように、図12(A)に示すようにフレームごとにスキニング処理を行う場合に比べて、図12(B)では、フレーム1〜フレーム3でスキニング処理の負荷を分散させることができる。
【0123】
なお、図12(B)ではモデルオブジェクトOBJ1についてのスキニング処理と、モデルオブジェクトOBJ2についてのスキニング処理とが、異なるフレームで行われ、かつ同じ周期(2フレーム周期)で行われているが、これに限定されるものではない。例えば、モデルオブジェクトOBJ1についてのスキニング処理と、モデルオブジェクトOBJ2についてのスキニング処理とが、異なる周期で行われ、周期的に同一フレームでモデルオブジェクトOBJ1についてのスキニング処理と、モデルオブジェクトOBJ2についてのスキニング処理とが行われてもよい。少なくとも異なるフレームで、モデルオブジェクトOBJ1についてのスキニング処理と、モデルオブジェクトOBJ2についてのスキニング処理とが行われ、スキニング処理が分散されていればよい。
【0124】
2.5 影の表現
また本実施形態では、スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第1〜第Nの表示物の少なくとも1つの影が表示される画像を生成するようにしてもよい。
【0125】
即ち影処理部118が、スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第1〜第Nの表示物の少なくとも1つの影表示データを生成する。そしてジオメトリ処理部116が、該影表示データに基づいてジオメトリ処理を行い、影描画データを求める。更に画像生成部120が、該影描画データに基づいて前記第1〜第Nの表示物のいずれかの影の描画処理を行い、前記第1〜第Nの表示物の影が表示された画像を生成する。
【0126】
図13(A)、図13(B)、図13(C)に、平面投影法により影表示データを生成する場合の説明図を示す。
【0127】
平面投影法では、モデルオブジェクトのオブジェクトデータに基づいて、図13(A)に示すようにXZ平面への投影面が該モデルオブジェクトに基づく表示物の影表示データとして生成される。
【0128】
この場合、図13(A)に示すように光源の光線方向とZ軸とのなす角度をθ、図13(B)に示すように光源の光線方向とXZ平面とのなす角度をΦとすると、図13(C)に示すように影行列Sが規定される。
【0129】
モデルオブジェクトに基づく表示物の影の座標(x1,y1,z1)は、モデルオブジェクトのスキニング処理後の頂点座標(x,y,z)と、影行列Sとにより、次式にしたがって求められる。
【0130】
(x1,y1,z1)=(x,y,z)・S (5)
以上のように、スキニング処理後の頂点データを流用することで、よりリアルな画像の影を容易に表現することができる。
【0131】
なお図13(A)〜(C)では、平面投影法により影を表現する場合について説明したが、これに限定されるものではなく、スキニング処理後の頂点データを流用して例えばシャドウマッピングやシャドウボリュームにより影を表現するようにしてもよい。
【0132】
3.本実施形態の処理
次に、本実施形態の詳細な処理例について図14〜図21のフローチャートを用いて説明する。
【0133】
図14に、スキニング処理後の1つのモデルオブジェクトの頂点データに基づいて、N個のスクリーン(分割表示画面)に第1〜第Nの表示物が表示される画像を生成する場合の処理フローの一例を示す。
【0134】
図14において、fはモーションデータのフレームをカウントするための変数であり、Fmaxはモーションデータが記憶されているフレームの最大値、jはスクリーン(分割表示画面)を特定するための変数、Nはスクリーン数(分割表示画面数)である。
【0135】
まず変数fを0に初期化する(ステップS10)。次に、モデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する(ステップS11)。モデルオブジェクト制御部111は、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、該モデルオブジェクトの位置や向きを決定し、その決定後の該モデルオブジェクトの位置や向きに基づいて上述の位置回転行列を作成する。
【0136】
そして、スキニング処理部114は、モーションデータのfフレーム目からマトリクス(関節行列データ)を作成する(ステップS12)。またスキニング処理部114は、オブジェクトデータ(基本頂点データ)と、マトリクスとを用いて、(3)式で示したように重み付けをして、スキニング処理後の頂点データ(キャラクタデータ)を求める(ステップS13)。
【0137】
その後、求めたスキニング処理後の頂点データに対して、ステップS11で求めた位置回転行列によりワールド座標変換を行う(ステップS14)。例えばジオメトリ処理部116が、このワールド座標変換を行う。
【0138】
続いて、ワールド座標変換後の頂点データを主記憶部172に保存する(ステップS15)。このように、ワールド座標変換された頂点データを保存しておくことで、N個の分割表示画面の各分割表示画面に表示される画像を生成するたびにワールド座標変換を行う必要がなくなる。
【0139】
次に、変数fをインクリメントする(ステップS16)。変数fがFmax以上のとき(ステップS17:N)、変数fを0に初期化して(ステップS18)、ステップS19に進む。またステップS17において、変数fがFmaxより小さいとき(ステップS17:Y)、ステップS19に進む。
【0140】
ステップS19では、変数jを0に初期化する(ステップS19)。そして、j番目のスクリーンの初期化を行い(ステップS20)、j番目のスクリーン用の仮想カメラ(第jの仮想カメラ)の位置・回転及び画角を設定する(ステップS21)。例えば、j番目の仮想カメラが飛行機、車などのモデルオブジェクトに追従する場合には、モデルオブジェクトの位置や回転角度により、仮想カメラの位置や回転角度を設定できる。またj番目の仮想カメラが所定の軌道上を移動する場合には、仮想カメラデータに基づいて仮想カメラの位置や回転角度を設定できる。
【0141】
次に、ジオメトリ処理部116では、ステップS15で保存されたスキニング処理後のモデルオブジェクトの頂点データを、j番目のカメラの設定位置や角度等によって定まるj番目のカメラ座標変換及び透視変換を行って第jの表示物描画データを求める。そして、該第jの表示物描画データに基づいて第jの表示物の描画処理を行い、第jの表示物が表示された画像を生成し、j番目のスクリーンに表示する(ステップS22)。
【0142】
続いて、変数jをインクリメントする(ステップS23)。変数jがNより小さいとき(ステップS24:Y)、ステップS20に戻る。したがって、1番目のスクリーンからN番目のスクリーン(第1〜第Nの分割表示画面)に、ステップS15で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づく第1〜第Nの表示物が表示された画像を生成することができる。
【0143】
ステップS24において、変数jがN以上のとき(ステップS24:N)、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき(ステップS25:Y)、一連の処理を終了する。終了ではないとき(ステップS25:N)、ステップS11に戻る。
【0144】
これにより、図8に示すように、第1〜第4の分割表示画面にスキニング処理後の1つのモデルオブジェクトのオブジェクトデータの頂点データに基づく第1〜第4の表示物が表示された画像を生成することができる。
【0145】
図15及び図16に、N個のスクリーン(分割表示画面)に、M(Mは自然数)個のモデルオブジェクトのスキニング処理後の頂点データに基づいて各分割表示画面に複数の表示物が表示される場合の処理フローの一例を示す。この場合、1つの表示画面に同時M×N個の表示物が表示される画像が生成される。
【0146】
図15及び図16において、f[i](0≦i≦M−1、iは整数)はi番目のモデルオブジェクトのモーションデータのフレームをカウントするための変数であり、Fmax[i]はi番目のモデルオブジェクトのモーションデータが記憶されているフレームの最大値、jはスクリーンを特定するための変数、Nはスクリーン数、Mは表示物の数である。
【0147】
まず変数f[0]〜f[M−1]を0に初期化する(ステップS30)。また変数iを0に初期化する(ステップS31)。
【0148】
次にi番目のモデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する(ステップS32)。
【0149】
そして、スキニング処理部114は、モーションデータのf[i]フレーム目からマトリクス(関節行列データ)を作成する(ステップS33)。またスキニング処理部114は、オブジェクトデータ(基本頂点データ)と、マトリクスとを用いて、(3)式で示したように重み付けをして、スキニング処理後の頂点データ(キャラクタデータ)を求める(ステップS34)。
【0150】
その後、求めたスキニング処理後の頂点データに対して、ステップS32で求めた位置回転行列によりワールド座標変換を行う(ステップS35)。
【0151】
続いて、ワールド座標変換後の頂点データを主記憶部172に保存する(ステップS36)。
【0152】
次に、変数f[i]をインクリメントする(ステップS37)。変数f[i]がFmax[i]以上のとき(ステップS38:N)、変数f[i]を0に初期化して(ステップS39)、ステップS40に進む。またステップS38において、変数f[i]がFmax[i]より小さいとき(ステップS38:Y)、ステップS40に進む。
【0153】
ステップS40では、変数iをインクリメントして(ステップS40)、変数iがMより小さいか否かを判別する(ステップS41)。変数iがMより小さいとき(ステップS41:Y)、ステップS32に戻る。変数iがM以上のとき(ステップS41:N)、ステップS42に進む。これにより、M個の表示物の画像を生成するための、スキニング処理後の頂点データを求めることができる。
【0154】
図16に示すステップS42では、変数jを0に初期化する(ステップS42)。そして、j番目のスクリーンの初期化を行い(ステップS43)、j番目のスクリーン用の仮想カメラ(第jの仮想カメラ)の位置・回転及び画角を設定する(ステップS44)。
【0155】
次に、再び変数iを0に初期化して(ステップS45)、ジオメトリ処理部116では、ステップS36で保存されたi番目のモデルオブジェクトのスキニング処理後の頂点データを、j番目のカメラの設定位置や角度等によって定まるj番目のカメラ座標変換及び透視変換を行って表示物描画データを求め、該表示物描画データに基づいて表示物の描画処理を行い、該表示物が表示された画像を生成し、j番目のスクリーンに表示する(ステップS46)。
【0156】
そして、変数iをインクリメントする(ステップS47)。変数iがMより小さいか否かを判別し、変数iがMより小さいとき(ステップS48:Y)、ステップS46に戻る。これにより、j番目のスクリーン(第jの分割表示画面)に、ステップS36で保存されたM個のモデルオブジェクトのスキニング処理後の頂点データに基づき、M個の表示物が表示される画像を生成することができる。
【0157】
一方、ステップS48において変数iがM以上のとき(ステップS48:N)、変数jをインクリメントする(ステップS49)。変数jがNより小さいとき(ステップS50:Y)、ステップS43に戻る。したがって、1番目からN番目のスクリーン(第1〜第Nの分割表示画面)に、ステップS36で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づくM×N個の表示物が表示された画像を生成することができる。
【0158】
ステップS50において、変数jがN以上のとき(ステップS50:N)、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき(ステップS51:Y)、一連の処理を終了する。終了ではないとき(ステップS51:N)、ステップS31に戻る。
【0159】
これにより、図8に示すように、第1〜第4の分割表示画面に4つのモデルオブジェクトのオブジェクトデータのスキニング処理後の頂点データに基づく16個の表示物が表示された画像をより少ない処理負荷で生成することができる。
【0160】
図17に、スキニング処理後の1つのモデルオブジェクトの頂点データに基づいて、1個のスクリーンに第1〜第Mの表示物が表示される画像を生成する場合の処理フローの一例を示す。これにより、例えば群集シーンを、より少ない処理負荷で、よりリアルに表現することができる。
【0161】
図17において、fはモーションデータのフレームをカウントするための変数であり、Fmaxはモーションデータが記憶されているフレームの最大値、iは表示物を特定するための変数、Mは1つのスクリーンに表示させる表示物の数である。
【0162】
まず変数fを0に初期化する(ステップS60)。次に、スキニング処理部114は、モーションデータのfフレーム目からマトリクス(関節行列データ)を作成する(ステップS61)。またスキニング処理部114は、オブジェクトデータ(基本頂点データ)と、マトリクスとを用いて、(3)式で示したように重み付けをして、スキニング処理後の頂点データ(キャラクタデータ)を求める(ステップS62)。
【0163】
その後、求めたスキニング処理後の頂点データを主記憶部172に保存する(ステップS63)。このように、ローカル座標系の頂点データを保存しておくことで、1つの表示画面にワールド座標が異なるM個の表示物を表示させる。
【0164】
次に、変数fをインクリメントする(ステップS64)。変数fがFmax以上のとき(ステップS65:N)、変数fを0に初期化して(ステップS66)、ステップS67に進む。またステップS65において、変数fがFmaxより小さいとき(ステップS65:Y)、ステップS67に進む。
【0165】
ステップS67では、スクリーンの初期化を行い(ステップS67)、仮想カメラの位置・回転及び画角を設定する(ステップS68)。
【0166】
その後、変数iを0に初期化する(ステップS69)。次に、モデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する(ステップS70)。そして、ステップS63で保存されたスキニング処理後の頂点データに対して、ステップS70で求めた位置回転行列によりワールド座標変換し、仮想カメラのカメラ座標変換及び透視変換をしてスクリーンに表示する(ステップS71)。
【0167】
続いて、変数iをインクリメントする(ステップS72)。変数iがMより小さいとき(ステップS73:Y)、ステップS70に戻る。したがって、1つのスクリーンに、ステップS63で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づく複数の表示物が表示された画像を生成することができる。
【0168】
ステップS73において、変数iがM以上のとき(ステップS73:N)、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき(ステップS74:Y)、一連の処理を終了する。終了ではないとき(ステップS74:N)、ステップS61に戻る。
【0169】
これにより、図9に示すように、1つの表示画面に、スキニング処理後の1つのモデルオブジェクトのオブジェクトデータの頂点データに基づく複数の表示物が表示された画像を生成することができる。
【0170】
図18及び図19に、モデルオブジェクトに応じてスキニング処理が行われるフレームを変更する場合の処理フローの一例を示す。ここでは、N個のスクリーン(分割表示画面)に、M(Mは自然数)個のモデルオブジェクトのスキニング処理後の頂点データに基づいて各分割表示画面に複数の表示物が表示される画像を生成する。そして、各モデルオブジェクトのスキニング処理は、交番でG(Gは2以上の整数)回に1回行うものとする。したがって、Gが2の場合、1フレームとばしでスキニング処理を行う。
【0171】
図18及び図19において、f[i](0≦i≦M−1、iは整数)はi番目のモデルオブジェクトのモーションデータのフレームをカウントするための変数、e[i]はi番目のモデルオブジェクトのスキニング処理の終了フラグ、Fmax[i]はi番目のモデルオブジェクトのモーションデータが記憶されているフレームの最大値、Gは交番描画グループ数、jはスクリーンを特定するための変数、Nはスクリーン数、Mは表示物の数、cntは描画フレームカウンタの変数である。
【0172】
まず変数cntを0に初期化する(ステップS80)。また変数f[0]〜f[M−1]、e[0]〜e[M−1]を0に初期化する(ステップS81)。なお変数e[0]〜e[M−1]を0に初期化することによって、M個のモデルオブジェクトすべてについてスキニング処理後の頂点データが求められていないことを示す。
【0173】
続いて、変数iを0に初期化する(ステップS82)。次に、描画フレームカウンタ変数cntについて(cnt mod G)を求める。(cnt modG)は、cntをGで割った余りを意味する。そして、(i mod G)と、(cnt mod G)とが一致するか否かを判別する(ステップS83)。
【0174】
(i mod G)と(cnt mod G)とが一致するi番目のモデルオブジェクトに対しては、当該フレームでスキニング処理を行う。即ち、(i mod G)と(cnt mod G)とが一致したと判別したとき(ステップS83:Y)、i番目のモデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する(ステップS84)。
【0175】
そして、スキニング処理部114は、モーションデータのf[i]フレーム目からマトリクス(関節行列データ)を作成する(ステップS85)。またスキニング処理部114は、オブジェクトデータ(基本頂点データ)と、マトリクスとを用いて、(3)式で示したように重み付けをして、スキニング処理後の頂点データ(キャラクタデータ)を求める(ステップS86)。
【0176】
その後、求めたスキニング処理後の頂点データに対して、ステップS84で求めた位置回転行列によりワールド座標変換を行う(ステップS87)。
【0177】
続いて、ワールド座標変換後の頂点データを主記憶部172に保存する(ステップS88)。そして、i番目のモデルオブジェクトに対するスキニング処理が終了したことを示すために変数e[i]を1に設定する(ステップS89)。これにより、i番目のモデルオブジェクトについては、当該フレーム以降のフレームでも、当該フレームで求められたスキニング処理後の頂点データを用いて表示物が表示された画像の生成が可能となる。
【0178】
ステップS89において変数e[1]を1に設定した後、ステップS90に進む。また、ステップS83において(i mod G)と(cnt mod G)とが一致しないと判別したとき(ステップS83:N)、ステップS90に進む。ステップS90では、変数f[i]をインクリメントする(ステップS90)。変数f[i]がFmax[i]以上のとき(ステップS91:N)、変数f[i]を0に初期化して(ステップS92)、ステップS92に進む。またステップS91において、変数f[i]がFmax[i]より小さいとき(ステップS91:Y)、ステップS93に進む。
【0179】
ステップS93では、変数iをインクリメントして(ステップS92)、変数iがMより小さいか否かを判別する(ステップS94)。変数iがMより小さいとき(ステップS94:Y)、ステップS83に戻る。変数iがM以上のとき(ステップS94:N)、ステップS95に進む。これにより、M個のモデルオブジェクトを交番でG回に1回の割合でスキンニング処理を行うようになり、同一フレームで多くのモデルオブジェクトについてスキニング処理を行うことがなくなる。
【0180】
図19に示すステップS95では、変数jを0に初期化する(ステップS95)。そして、j番目のスクリーンの初期化を行い(ステップS96)、j番目のスクリーン用の仮想カメラ(第jの仮想カメラ)の位置・回転及び画角を設定する(ステップS97)。
【0181】
次に、再び変数iを0に初期化して(ステップS98)、変数e[i]が1に設定されているか否かを判別する(ステップS99)。変数e[i]が1に設定されていると判別したとき(ステップS99:Y)、ジオメトリ処理部116では、ステップS36で保存されたi番目のモデルオブジェクトのスキニング処理後の頂点データを、j番目のカメラの設定位置や角度等によって定まるj番目のカメラ座標変換及び透視変換を行って表示物描画データを求め、該表示物描画データに基づいて表示物の描画処理を行い、該表示物が表示された画像を生成し、j番目のスクリーンに表示する(ステップS100)。
【0182】
そして、変数iをインクリメントする(ステップS101)。
【0183】
一方、ステップS99において、変数e[i]が1に設定されていないと判別したとき(ステップS99:N)、ステップS100を省略してステップS101に進む。i番目のモデルオブジェクトについてのスキニング処理後の頂点データが求められていないと判断したため、描画処理を行うのは不都合となるからである。
【0184】
ステップS102では、変数iがMより小さいか否かを判別し、変数iがMより小さいとき(ステップS102:Y)、ステップS99に戻る。これにより、j番目のスクリーン(第jの分割表示画面)に、ステップS88で保存されたM個のモデルオブジェクトのスキニング処理後の頂点データに基づき、M個の表示物が表示される画像を生成することができる。
【0185】
一方、ステップS102において変数iがM以上のとき(ステップS102:N)、変数jをインクリメントする(ステップS103)。変数jがNより小さいとき(ステップS104:Y)、ステップS96に戻る。したがって、1番目からN番目のスクリーン(第1〜第Nの分割表示画面)に、ステップS88で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づくM×N個の表示物が表示された画像を生成することができる。
【0186】
ステップS104において、変数jがN以上のとき(ステップS104:N)、変数cntをインクリメントする(ステップS105)。
【0187】
続いて、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき(ステップS106:Y)、一連の処理を終了する。終了ではないとき(ステップS106:N)、ステップS82に戻る。
【0188】
なお図18及び図19においてGが2のとき、図11(B)に示すように、モデルオブジェクトに応じて、奇数フレームと偶数フレームとでスキニング処理の負荷を分散させることができる。
【0189】
図20及び図21に、N個のスクリーン(分割表示画面)に、M(Mは自然数)個のモデルオブジェクトのスキニング処理後の頂点データに基づいて各分割表示画面に複数の表示物と、該複数の表示物の影画像が表示される場合の処理フローの一例を示す。ただし、図15及び図16に示す処理フローと共通する変数は、その説明を省略する。
【0190】
まず変数f[0]〜f[M−1]を0に初期化する(ステップS120)。また変数iを0に初期化する(ステップS121)。
【0191】
次にi番目のモデルオブジェクトにより規定されたキャラクタの位置回転行列を作成する(ステップS122)。
【0192】
そして、スキニング処理部114は、モーションデータのf[i]フレーム目からマトリクス(関節行列データ)を作成する(ステップS123)。またスキニング処理部114は、オブジェクトデータ(基本頂点データ)と、マトリクスとを用いて、(3)式で示したように重み付けをして、スキニング処理後の頂点データ(ローカル座標系のキャラクタデータであるローカルデータ)を求める(ステップS124)。
【0193】
そして、ローカル座標系のキャラクタデータであるローカルデータとしてのスキニング処理後の頂点データに対して、図13(C)に示す影行列と、ワールド座標系に変換するためのワールド座標系変換行列とを用いて、i番目の影表示データを生成する(ステップS125)。
【0194】
更に、求めたスキニング処理後の頂点データに対して、ステップS122で求めた位置回転行列によりワールド座標変換を行って(ステップS126)、ワールド座標系のスキニング処理後の頂点データ(キャラクタデータ)を求める。
【0195】
続いて、ワールド座標変換後の影表示データとスキニング処理後の頂点データとを主記憶部172に保存する(ステップS127)。
【0196】
次に、変数f[i]をインクリメントする(ステップS128)。変数f[i]がFmax[i]以上のとき(ステップS129:N)、変数f[i]を0に初期化して(ステップS130)、ステップS131に進む。またステップS129において、変数f[i]がFmax[i]より小さいとき(ステップS129:Y)、ステップS131に進む。
【0197】
ステップS131では、変数iをインクリメントして(ステップS131)、変数iがMより小さいか否かを判別する(ステップS132)。変数iがMより小さいとき(ステップS132:Y)、ステップS122に戻る。変数iがM以上のとき(ステップS132:N)、ステップS133に進む。これにより、M個の表示物の画像を生成するための、スキニング処理後の頂点データと、これら表示物の影画像を生成するための頂点データとを求めることができる。
【0198】
図21に示すステップS133では、変数jを0に初期化する(ステップS133)。そして、j番目のスクリーンの初期化を行い(ステップS134)、j番目のスクリーン用の仮想カメラ(第jの仮想カメラ)の位置・回転及び画角を設定する(ステップS135)。
【0199】
次に、再び変数iを0に初期化して(ステップS136)、ジオメトリ処理部116では、ステップS127で保存されたi番目のモデルオブジェクトのスキニング処理後の頂点データを、j番目のカメラの設定位置や角度等によって定まるj番目のカメラ座標変換及び透視変換を行って表示物描画データを求め、該表示物描画データに基づいて表示物の描画処理を行い、該表示物が表示された画像を生成し、j番目のスクリーンに表示する(ステップS137)。
【0200】
またジオメトリ処理部116では、ステップS127で保存されたi番目の影表示データを、j番目のカメラ座標変換及び透視変換を行って影描画データを求め、該影描画データに基づいて表示物の影の描画処理を行い、該表示物の影が表示された画像を生成し、j番目のスクリーンに表示する(ステップS138)。
【0201】
そして、変数iをインクリメントする(ステップS139)。変数iがMより小さいか否かを判別し、変数iがMより小さいとき(ステップS140:Y)、ステップS137に戻る。これにより、j番目のスクリーン(第jの分割表示画面)に、ステップS127で保存されたM個のモデルオブジェクトのスキニング処理後の頂点データに基づき、M個の表示物とこれら表示物の影とが表示される画像を生成することができる。
【0202】
一方、ステップS140において変数iがM以上のとき(ステップS140:N)、変数jをインクリメントする(ステップS141)。変数jがNより小さいとき(ステップS142:Y)、ステップS134に戻る。したがって、1番目からN番目のスクリーン(第1〜第Nの分割表示画面)に、ステップS127で保存されたスキニング処理後のモデルオブジェクトの頂点データに基づくM×N個の表示物とこれらの影が表示された画像を生成することができる。
【0203】
ステップS142において、変数jがN以上のとき(ステップS142:N)、ゲームオーバ等の所定の終了条件を満たしているか否かを判別し、終了のとき(ステップS143:Y)、一連の処理を終了する。終了ではないとき(ステップS143:N)、ステップS121に戻る。
【0204】
これにより、図8に示すように、第1〜第4の分割表示画面に4つのモデルオブジェクトのオブジェクトデータのスキニング処理後の頂点データに基づく16個の表示物とこれらの影が表示された画像をより少ない処理負荷で生成することができる。
【0205】
4.ハードウェア構成
図22に本実施形態を実現できるハードウェア構成の例を示す。
【0206】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。
【0207】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0208】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0209】
データ伸張プロセッサ906は、圧縮された画像データや音データのデコード(伸長)処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できる。
【0210】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。そして1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0211】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介して入力される。
【0212】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御する。CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982にアクセスする処理を行う。
【0213】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行う。通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどがある。
【0214】
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0215】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0216】
図23(A)に業務用ゲームシステムへの本実施形態の適用例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、操作部1102を操作してゲームを楽しむ。内蔵されるシステムボード1106にはプロセッサ、メモリなどが実装される。本実施形態の各部の処理を実現するためのプログラム(データ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、このプログラムを格納プログラムと呼ぶ。
【0217】
図23(B)に家庭用ゲームシステムへの本実施形態の適用例を示す。この場合、上記格納プログラム(格納情報)は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209に格納される。
【0218】
図23(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302を介して接続される端末1304−1〜1304−n(ゲーム機、携帯電話)とを含むシステムへの本実施形態の適用例を示す。この場合、上記格納プログラムは、ホスト装置1300の情報記憶媒体1306(ハードディスク、磁気テープ装置等)に格納される。また本実施形態の各部の処理をホスト装置と端末の分散処理で実現してもよい。
【0219】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0220】
例えば、明細書又は図面中の記載において広義な用語として引用された用語は、明細書又は図面中の他の記載においても広義な用語に置き換えることができる。
【0221】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0222】
また、本発明は種々のゲーム(格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等)に適用できる。
【0223】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム(ゲームシステム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態の画像生成システムの機能ブロック図の例。
【図2】本実施形態の処理の概要を説明するための模式図。
【図3】スケルトンモデルによりモデル化されたモデルオブジェクトの構成例を示す図。
【図4】図4(A)〜(C)はモーションデータの説明図。
【図5】図5(A)、(B)はオブジェクトデータの説明図。
【図6】図6(A)、(B)は表示物描画データの説明図。
【図7】ゲーム画像の一例を示す図。
【図8】ゲーム画像の他の例を示す図。
【図9】1つの表示画面に、1つのモデルオブジェクトに基づいて生成された複数の表示物が表示された画像の例の概要を示す図。
【図10】図10(A)、(B)は本実施形態におけるスキニング処理の省略化による負荷の軽減を説明する図。
【図11】図11(A)、(B)はモデルオブジェクトに応じたスキニング処理の分散化の手法の説明図。
【図12】図12(A)、(B)は本実施形態におけるモデルオブジェクトに応じたスキニング処理の分散化による負荷の軽減を説明する図。
【図13】図13(A)、(B)、(C)は本実施形態における影の生成の説明図。
【図14】1つのモデルオブジェクトのオブジェクトデータを用いて、複数のスクリーンに複数の表示物が表示される画像を生成する処理の一例を示すフロー図。
【図15】複数のモデルオブジェクトのオブジェクトデータを用いて、複数のスクリーンに複数の表示物が表示される画像を生成する処理の一例の前半を示すフロー図。
【図16】図15のフローの後半を示す図。
【図17】1つのモデルオブジェクトのスキニング処理後の頂点データに基づいて、1個のスクリーンに複数の表示物が表示される画像を生成する処理の一例を示すフロー図。
【図18】モデルオブジェクトに応じてスキニング処理が行われるフレームを変更する場合の処理の一例の前半のフロー図。
【図19】図18のフローの後半を示す図。
【図20】複数のスクリーンに、複数のモデルオブジェクトのスキニング処理後の頂点データに基づいて複数の表示物と、該複数の表示物の影画像が表示される場合の処理の一例をフロー図。
【図21】図20のフローの後半を示す図。
【図22】ハードウェア構成例を示す図。
【図23】図23(A)、(B)、(C)は種々の形態のシステム例を示す図。
【符号の説明】
100 処理部、110 オブジェクト空間処理部、
111 モデルオブジェクト制御部、112 仮想カメラ設定部、
114 スキニング処理部、116 ジオメトリ処理部、118 影処理部、
120 画像生成部、130 音生成部、160 操作部、170 記憶部、
172 主記憶部、174 描画バッファ、180 情報記憶媒体、
190 表示部、192 音出力部、194 携帯型情報記憶装置、
196 通信部、GP−1〜GP−N 第1〜第Nのジオメトリ処理、
MDAT モーションデータ、OBJD オブジェクトデータ
SP スキニング処理、TMP テンポラリデータ
Claims (19)
- 画像生成を行う画像生成システムであって、
モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、
前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、
前記記憶部に記憶された前記頂点データに基づいて、互いに異なる第1〜第N(Nは2以上の整数)のジオメトリ処理を行い、第1〜第Nの表示物描画データを求めるジオメトリ処理部と、
前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、前記第1〜第Nの表示物が表示された画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。 - 請求項1において、
前記ジオメトリ処理部が、
前記頂点データに基づいて第1〜第Nのスクリーンへの透視変換を行って、前記第1〜第Nの表示物描画データを求め、
前記画像生成部が、
前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、表示画面が分割された第1〜第Nの分割表示画面に前記第1〜第Nの表示物が表示された画像を生成することを特徴とする画像生成システム。 - 請求項1において、
前記ジオメトリ処理部が、
前記頂点データに基づいて第1〜第Nのワールド座標変換を行って、前記第1〜第Nの表示物描画データを求め、
前記画像生成部が、
前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、表示画面に前記第1〜第Nの表示物が表示された画像を生成することを特徴とする画像生成システム。 - 請求項1乃至3のいずれかにおいて、
前記ジオメトリ処理部が、
過去のフレームで前記記憶部に記憶された前記頂点データに基づいて前記第1〜第Nのジオメトリ処理を行って前記第1〜第Nの表示物描画データを求め、
前記画像生成部が、
前記第1〜第Nの表示物描画データに基づいて前記第1〜第Nの表示物の描画処理を行い、当該フレームでの前記第1〜第Nの表示物が表示された画像を生成することを特徴とする画像生成システム。 - 請求項1乃至3のいずれかにおいて、
前記スキニング処理部が、
第1のフレームでは、第1のモデルオブジェクトのオブジェクトデータと該第1のモデルオブジェクトのモーションデータとに基づく第1のスキニング処理を行ってスキニング処理後の第1の頂点データを求めると共に、第2のモデルオブジェクトのオブジェクトデータと該第2のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略し、
第2のフレームでは、前記第1のモデルオブジェクトのオブジェクトデータと該第1のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略すると共に、第2のモデルオブジェクトのオブジェクトデータと該第2のモデルオブジェクトのモーションデータとに基づく第2のスキニング処理を行ってスキニング処理後の第2の頂点データを求め、
前記ジオメトリ処理部が、
前記第1のフレームで求められた前記第1の頂点データに基づいて第1〜第Nのジオメトリ処理を行い第1〜第Nの表示物描画データを求めると共に、前記第2のフレームで求められた前記第2の頂点データに基づいて第(N+1)〜第L(Lは(N+1)以上の整数)のジオメトリ処理を行い第(N+1)〜第Lの表示物描画データを求め、
前記画像生成部が、
前記第1〜第Lの表示物描画データに基づいて第1〜第Lの表示物の描画処理を行い、前記第1〜第Lの表示物が表示された画像を生成することを特徴とする画像生成システム。 - 請求項1乃至5のいずれかにおいて、
前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第1〜第Nの表示物の少なくとも1つの影表示データを生成する影処理部を含み、
前記ジオメトリ処理部が、
前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、
前記画像生成部が、
前記影描画データに基づいて前記第1〜第Nの表示物のいずれかの影の描画処理を行い、前記第1〜第Nの表示物の影が表示された画像を生成することを特徴とする画像生成システム。 - 画像生成を行う画像生成システムであって、
モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、
前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、
前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求めるジオメトリ処理部と、
前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成する画像生成部と、
を含み、
第K(Kは自然数)のフレームにおいて、
前記スキニング処理部が、前記スキニング処理後のモデルオブジェクトの頂点データを生成し、
前記記憶部が、前記スキニング処理後のオブジェクトの頂点データを記憶し、
前記ジオメトリ処理部が、前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、
前記画像生成部が、前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成し、
前記第Kのフレーム以降のフレームにおいて、
前記ジオメトリ処理部が、前記第Kのフレームにおいて前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、
前記画像生成部が、当該フレームにおいて求められた前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成することを特徴とする画像生成システム。 - 請求項7において、
前記ジオメトリ処理部が、
前記記憶部に記憶された前記頂点データに基づいて、ジオメトリ処理を行い、第1〜第N(Nは2以上の自然数)の表示物描画データを求め、
前記画像生成部が、
前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、前記第1〜第Nの表示物が表示された画像を生成することを特徴とする画像生成システム。 - 請求項8において、
前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第1〜第Nの表示物の少なくとも1つの影表示データを生成する影処理部を含み、
前記ジオメトリ処理部が、
前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、
前記画像生成部が、
前記影描画データに基づいて前記第1〜第Nの表示物のいずれかの影の描画処理を行い、前記第1〜第Nの表示物の影が表示された画像を生成することを特徴とする画像生成システム。 - 画像を生成するためのプログラムであって、
モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、
前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、
前記記憶部に記憶された前記頂点データに基づいて、互いに異なる第1〜第N(Nは2以上の整数)のジオメトリ処理を行い、第1〜第Nの表示物描画データを求めるジオメトリ処理部と、
前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、前記第1〜第Nの表示物が表示された画像を生成する画像生成部として、
コンピュータを機能させることを特徴とするプログラム。 - 請求項10において、
前記ジオメトリ処理部が、
前記頂点データに基づいて第1〜第Nのスクリーンへの透視変換を行って、前記第1〜第Nの表示物描画データを求め、
前記画像生成部が、
前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、表示画面が分割された第1〜第Nの分割表示画面に前記第1〜第Nの表示物が表示された画像を生成することを特徴とするプログラム。 - 請求項10において、
前記ジオメトリ処理部が、
前記頂点データに基づいて第1〜第Nのワールド座標変換を行って、前記第1〜第Nの表示物描画データを求め、
前記画像生成部が、
前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、表示画面に前記第1〜第Nの表示物が表示された画像を生成することを特徴とするプログラム。 - 請求項10乃至12のいずれかにおいて、
前記ジオメトリ処理部が、
過去のフレームで前記記憶部に記憶された前記頂点データに基づいて前記第1〜第Nのジオメトリ処理を行って前記第1〜第Nの表示物描画データを求め、
前記画像生成部が、
前記第1〜第Nの表示物描画データに基づいて前記第1〜第Nの表示物の描画処理を行い、当該フレームでの前記第1〜第Nの表示物が表示された画像を生成することを特徴とするプログラム。 - 請求項10乃至12のいずれかにおいて、
前記スキニング処理部が、
第1のフレームでは、第1のモデルオブジェクトのオブジェクトデータと該第1のモデルオブジェクトのモーションデータとに基づく第1のスキニング処理を行ってスキニング処理後の第1の頂点データを求めると共に、第2のモデルオブジェクトのオブジェクトデータと該第2のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略し、
第2のフレームでは、前記第1のモデルオブジェクトのオブジェクトデータと該第1のモデルオブジェクトのモーションデータとに基づくスキニング処理を省略すると共に、第2のモデルオブジェクトのオブジェクトデータと該第2のモデルオブジェクトのモーションデータとに基づく第2のスキニング処理を行ってスキニング処理後の第2の頂点データを求め、
前記ジオメトリ処理部が、
前記第1のフレームで求められた前記第1の頂点データに基づいて第1〜第Nのジオメトリ処理を行い第1〜第Nの表示物描画データを求めると共に、前記第2のフレームで求められた前記第2の頂点データに基づいて第(N+1)〜第L(Lは(N+1)以上の整数)のジオメトリ処理を行い第(N+1)〜第Lの表示物描画データを求め、
前記画像生成部が、
前記第1〜第Lの表示物描画データに基づいて第1〜第Lの表示物の描画処理を行い、前記第1〜第Lの表示物が表示された画像を生成することを特徴とするプログラム。 - 請求項10乃至14のいずれかにおいて、
前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第1〜第Nの表示物の少なくとも1つの影表示データを生成する影処理部としてコンピュータを機能させ、
前記ジオメトリ処理部が、
前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、
前記画像生成部が、
前記影描画データに基づいて前記第1〜第Nの表示物のいずれかの影の描画処理を行い、前記第1〜第Nの表示物の影が表示された画像を生成することを特徴とするプログラム。 - 画像を生成するためのプログラムであって、
モデルオブジェクトのオブジェクトデータと該モデルオブジェクトのモーションデータに基づいてスキニング処理を行い、スキニング処理後のモデルオブジェクトの頂点データを生成するスキニング処理部と、
前記スキニング処理後のモデルオブジェクトの頂点データを記憶する記憶部と、
前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求めるジオメトリ処理部と、
前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成する画像生成部としてコンピュータを機能させ、
第K(Kは自然数)のフレームにおいて、
前記スキニング処理部が、前記スキニング処理後のモデルオブジェクトの頂点データを生成し、
前記記憶部が、前記スキニング処理後のオブジェクトの頂点データを記憶し、
前記ジオメトリ処理部が、前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、
前記画像生成部が、前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成し、
前記第Kのフレーム以降のフレームにおいて、
前記ジオメトリ処理部が、前記第Kのフレームにおいて前記記憶部に記憶された前記頂点データに基づいてジオメトリ処理を行って表示物描画データを求め、
前記画像生成部が、当該フレームにおいて求められた前記表示物描画データに基づいて表示物の描画処理を行い、前記表示物が表示された画像を生成することを特徴とするプログラム。 - 請求項16において、
前記ジオメトリ処理部が、
前記記憶部に記憶された前記頂点データに基づいて、ジオメトリ処理を行い、第1〜第N(Nは2以上の自然数)の表示物描画データを求め、
前記画像生成部が、
前記第1〜第Nの表示物描画データに基づいて第1〜第Nの表示物の描画処理を行い、前記第1〜第Nの表示物が表示された画像を生成することを特徴とするプログラム。 - 請求項17において、
前記スキニング処理後のモデルオブジェクトの頂点データを用いて、前記第1〜第Nの表示物の少なくとも1つの影表示データを生成する影処理部としてコンピュータを機能させ、
前記ジオメトリ処理部が、
前記影表示データに基づいてジオメトリ処理を行い、影描画データを求め、
前記画像生成部が、
前記影描画データに基づいて前記第1〜第Nの表示物のいずれかの影の描画処理を行い、前記第1〜第Nの表示物の影が表示された画像を生成することを特徴とするプログラム。 - コンピュータ読み取り可能な情報記憶媒体であって、請求項10乃至18のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003131576A JP4229316B2 (ja) | 2003-05-09 | 2003-05-09 | 画像生成システム、プログラム及び情報記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003131576A JP4229316B2 (ja) | 2003-05-09 | 2003-05-09 | 画像生成システム、プログラム及び情報記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004334662A true JP2004334662A (ja) | 2004-11-25 |
JP4229316B2 JP4229316B2 (ja) | 2009-02-25 |
Family
ID=33506710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003131576A Expired - Fee Related JP4229316B2 (ja) | 2003-05-09 | 2003-05-09 | 画像生成システム、プログラム及び情報記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4229316B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012223371A (ja) * | 2011-04-20 | 2012-11-15 | Sega Corp | ゲームプログラム、ゲームシステム、ゲーム装置、及び記憶媒体 |
JP6487083B1 (ja) * | 2018-03-07 | 2019-03-20 | 株式会社スクウェア・エニックス | ウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラム |
CN112634415A (zh) * | 2020-12-11 | 2021-04-09 | 北方信息控制研究院集团有限公司 | 一种基于人体骨骼模型的人员动作实时仿真方法 |
JP2021527895A (ja) * | 2018-06-21 | 2021-10-14 | 華為技術有限公司Huawei Technologies Co.,Ltd. | オブジェクト・モデリング動作方法及び装置並びにデバイス |
-
2003
- 2003-05-09 JP JP2003131576A patent/JP4229316B2/ja not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012223371A (ja) * | 2011-04-20 | 2012-11-15 | Sega Corp | ゲームプログラム、ゲームシステム、ゲーム装置、及び記憶媒体 |
JP6487083B1 (ja) * | 2018-03-07 | 2019-03-20 | 株式会社スクウェア・エニックス | ウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラム |
JP2019159348A (ja) * | 2018-03-07 | 2019-09-19 | 株式会社スクウェア・エニックス | ウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラム |
JP2021527895A (ja) * | 2018-06-21 | 2021-10-14 | 華為技術有限公司Huawei Technologies Co.,Ltd. | オブジェクト・モデリング動作方法及び装置並びにデバイス |
US11436802B2 (en) | 2018-06-21 | 2022-09-06 | Huawei Technologies Co., Ltd. | Object modeling and movement method and apparatus, and device |
JP7176012B2 (ja) | 2018-06-21 | 2022-11-21 | 華為技術有限公司 | オブジェクト・モデリング動作方法及び装置並びにデバイス |
CN112634415A (zh) * | 2020-12-11 | 2021-04-09 | 北方信息控制研究院集团有限公司 | 一种基于人体骨骼模型的人员动作实时仿真方法 |
CN112634415B (zh) * | 2020-12-11 | 2023-11-10 | 北方信息控制研究院集团有限公司 | 一种基于人体骨骼模型的人员动作实时仿真方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4229316B2 (ja) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3748451B1 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2002222435A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
US6890261B2 (en) | Game system, program and image generation method | |
JP4229316B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4743770B2 (ja) | 画像生成システム、プログラム、及び情報記憶媒体 | |
JP3576126B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4245356B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2001079261A (ja) | 画像生成システム及び情報記憶媒体 | |
JP2001229403A (ja) | ゲームシステム及び情報記憶媒体 | |
JP4577968B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2005209217A (ja) | ゲームシステム及び情報記憶媒体 | |
JP4574058B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2002216167A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4786389B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4159060B2 (ja) | 画像生成装置及び情報記憶媒体 | |
JP2002035409A (ja) | ゲームシステム及び情報記憶媒体 | |
JP3377490B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4662260B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP3431562B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2004038639A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4592039B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4641602B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4162125B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2003162734A (ja) | ゲームシステム及び情報記憶媒体 | |
JP4480322B2 (ja) | ゲームシステム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060327 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080903 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081028 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081126 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081127 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4229316 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121212 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121212 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131212 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |