JP2011095935A - プログラム、情報記憶媒体及び画像生成システム - Google Patents

プログラム、情報記憶媒体及び画像生成システム Download PDF

Info

Publication number
JP2011095935A
JP2011095935A JP2009248306A JP2009248306A JP2011095935A JP 2011095935 A JP2011095935 A JP 2011095935A JP 2009248306 A JP2009248306 A JP 2009248306A JP 2009248306 A JP2009248306 A JP 2009248306A JP 2011095935 A JP2011095935 A JP 2011095935A
Authority
JP
Japan
Prior art keywords
joint
vertex
motion
processing
bone
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.)
Pending
Application number
JP2009248306A
Other languages
English (en)
Inventor
Gen Kawagoe
玄 川越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Namco Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2009248306A priority Critical patent/JP2011095935A/ja
Publication of JP2011095935A publication Critical patent/JP2011095935A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

【課題】より自然な関節部分の画像を少ない処理負荷で生成できるプログラム、情報記憶媒体、画像生成システム等の提供。
【解決手段】画像生成システムは、モーションデータ記憶部と、モーション処理部と、モーション処理により動作するモデルオブジェクトの描画処理を行い、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部を含む。モーション処理部は、モデルオブジェクトの隣り合う第1、第2のパーツオブジェクトが関節運動を行うモーション処理を行う。画像生成部は、第1、第2のパーツオブジェクトの関節運動の伸展側領域では、第1、第2のパーツオブジェクトの関節面に対応する頂点を有し、第1、第2のパーツオブジェクトの関節運動の屈曲側領域では、関節面に対応する頂点を有しないモデルオブジェクトの描画処理を行う。
【選択図】 図5

Description

本発明は、プログラム、情報記憶媒体及び画像生成システム等に関する。
従来より、キャラクタ等のモデルオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部(ゲームコントローラ)を用いてキャラクタ(モデルオブジェクト)を操作し、相手プレーヤやコンピュータが操作する他キャラクタ(敵キャラクタ)と対戦することでゲームを楽しむ。
このような画像生成システムでは、モーションデータに基づくモーション処理を行うことで、キャラクタの動作を表現する。モーション処理では、頭部、胴体、腕等の複数のパーツオブジェクトで構成されるモデルオブジェクトによりキャラクタを表し、これらのパーツオブジェクトに関節運動を行わせることで、キャラクタのリアルな動きを表現する。このようなモーション処理における関節運動に関する従来技術としては、例えば特許文献1に開示される技術がある。
しかしながら、これまでのモーション処理では、例えばキャラクタの上腕と前腕の関節運動の際に、肘関節の部分が極端に細くなってしまい、不自然な画像が生成されてしまうという問題がある。このような問題を解決する手法として、上腕や前腕の関節部分でのポリゴン数を増やす手法も考えられるが、これはポリゴン数の増加により処理負荷が重くなるという問題を招く。
特開平9−94348号公報
本発明の幾つかの態様によれば、より自然な関節部分の画像を少ない処理負荷で生成できるプログラム、情報記憶媒体、画像生成システム等を提供できる。
本発明の一態様は、モデルオブジェクトのモーションデータを記憶するモーションデータ記憶部と、前記モーションデータに基づいて前記モデルオブジェクトのモーション処理を行うモーション処理部と、前記モーション処理により動作する前記モデルオブジェクトの描画処理を行い、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部とを含み、前記モーション処理部は、前記モデルオブジェクトの隣り合う第1、第2のパーツオブジェクトが関節運動を行うモーション処理を行い、前記画像生成部は、前記第1、第2のパーツオブジェクトの関節運動の伸展側領域では、前記第1、第2のパーツオブジェクトの関節面に対応する頂点を有し、前記第1、第2のパーツオブジェクトの関節運動の屈曲側領域では、前記関節面に対応する頂点を有しない前記モデルオブジェクトの描画処理を行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
本発明の一態様では、モデルオブジェクトの隣り合う第1、第2のパーツオブジェクトが関節運動を行うモーション処理が行われる。そしてモデルオブジェクトは、関節運動の伸展側領域においては、関節面に対応する頂点(関節面の場所に位置する頂点)を有している。一方、関節運動の屈曲側領域においては、関節面に対応する頂点を有しない。従って、このようなモデルオブジェクトを描画して画像を生成すれば、例えば関節運動の屈曲側領域において、関節面の頂点の存在を原因とする不自然な画像が生成されてしまう事態を防止できる。従って、より自然な関節部分の画像を少ない処理負荷で生成することが可能になる。
また本発明の一態様では、前記第1のパーツオブジェクト側の前記屈曲側領域の頂点のうち、前記関節面に隣接する頂点を第1の頂点とし、前記第2のパーツオブジェクト側の前記屈曲側領域の頂点のうち、前記関節面に隣接する頂点を第2の頂点とした場合に、前記画像生成部は、前記第1の頂点と前記第2の頂点を結ぶ線分を一辺とするポリゴンを描画して、前記第1、第2のパーツオブジェクトの関節部分での画像を生成してもよい。
このようにすれば、屈曲側領域において関節面に対応する頂点が設けられていない場合にも、第1のパーツオブジェクト側の第1の頂点と第2のパーツオブジェクト側の第2の頂点を結ぶ線分により構成されるポリゴンを描画することで、第1、第2のパーツオブジェクトの関節部分での画像を生成できるようになる。
また本発明の一態様では、前記伸展側領域では前記関節面に対応する頂点を有し、前記屈曲側領域では前記関節面に対応する頂点を有しない前記モデルオブジェクトのモデルデータを記憶するモデルデータ記憶部を含み(モデルデータ記憶部としてコンピュータを機能させ)、前記画像生成部は、前記モデルデータ記憶部に記憶される前記モデルデータに基づいて、前記モデルオブジェクトの描画処理を行ってもよい。
このようなデータ構造のモデルデータを用意してモデルデータ記憶部に記憶し、このモデルデータに基づきモデルオブジェクトの描画処理を行えば、関節面の頂点の存在を原因とする不自然な画像が生成されるのを防止して、より自然な関節部分の画像を少ない処理負荷で生成できるようになる。
また本発明の一態様では、前記画像生成部は、前記屈曲側領域のうちの第1の側面側領域では前記関節面に対応する頂点を有し、前記屈曲側領域のうちの第2の側面側領域では前記関節面に対応する頂点を有しない前記モデルオブジェクトの描画処理を行ってもよい。
このようにすれば、第1の側面側領域では、関節面に設けられた頂点を利用して、第1の側面側領域に応じた適切な画像を生成する一方で、第2の側面側領域では、関節面の頂点の存在を原因とする不自然な画像が生成されるのを防止して、第2の側面側領域に応じた適切な画像を生成することが可能になる。
また本発明の一態様では、前記第1のパーツオブジェクトは上腕オブジェクトであり、前記第2のパーツオブジェクトは前腕オブジェクトであり、前記第1の側面側領域は小指側の領域であり、前記第2の側面側領域は親指側の領域であってもよい。
このようにすれば、上腕と前腕の関節運動における、より自然な関節運動画像を生成できるようになる。
また本発明の一態様では、前記第1のパーツオブジェクトに対応して設けられる第1の骨と、前記第2のパーツオブジェクトに対応して設けられる第2の骨と、前記第1、第2のパーツオブジェクトの関節部分に対応して設けられる関節骨に基づいて、前記第1、第2のパーツオブジェクトの頂点位置を求める頂点処理部を含み(頂点処理部としてコンピュータを機能させ)、前記頂点処理部は、前記伸展側領域における前記関節面に対応する頂点については、前記関節骨に追従させる演算処理を行って頂点位置を求めてもよい。
このようにすれば、関節運動の屈曲側領域のみならず伸展側領域においても、より自然な関節運動画像を生成できるようになる。
また本発明の一態様では、前記モーション処理部は、関節運動時に前記第2の骨の回転に連動させて前記関節骨を回転させてもよい。
このようにすれば、第2の骨の回転に連動して回転する関節骨を用いて、伸展側領域における関節面の頂点の位置を適切に設定できるようになる。
また本発明の一態様では、前記モーション処理部は、前記第2の骨の回転角度をθ=θBとした場合に、前記関節骨をθ=θJ(θJ<θB)の回転角度だけ回転させてもよい。
このようにすれば、第2の骨に連動して回転する際の関節骨の回転角度を、第2の骨の回転角度よりも小さくすることで、伸展側領域における関節面の頂点の位置を、より適切に設定できるようになる。
本実施形態の画像生成システムの構成例。 モーションデータの説明図。 図3(A)、図3(B)は従来例の問題点の説明図。 従来例の問題点の説明図。 図5(A)、図5(B)は本実施形態の手法の説明図。 本実施形態の手法の説明図。 モデルデータのデータ構造例。 図8(A)、図8(B)は関節運動の屈曲側領域の第1の側面側領域と第2の側面側領域で処理を異ならせる手法の説明図。 図9(A)、図9(B)は、伸展側領域の頂点の設定手法の説明図。 伸展側領域の頂点の設定手法の説明図。 関節運動の詳細な画像例。 関節運動の詳細な画像例。 関節運動の詳細な画像例。 関節運動の詳細な画像例。 関節運動の詳細な画像例。 関節運動の詳細な画像例。 本実施形態の処理のフローチャート。 本実施形態の処理のフローチャート。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動処理部106、モーション処理部107、仮想カメラ制御部108、画像生成部120、音生成部130を含む。なおこれらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
オブジェクト空間設定部104は、移動体(人、ロボット、車、戦闘機、ミサイル、弾等)、マップ(地形)、建物、コース(道路)、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。
移動処理部106は、モデルオブジェクト等の移動オブジェクトを移動させる処理を行う。例えば操作部160によりプレーヤが入力した操作データや、プログラム(移動アルゴリズム)や、各種データなどに基づいて、移動オブジェクトをオブジェクト空間内で移動させる。具体的には、移動オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動処理やモーション処理や画像生成処理を行う時間の単位である。
モーション処理部107は、キャラクタ等のモデルオブジェクトにモーション(アニメーション)を行わせるモーション処理(モーション再生、モーション生成)を行う。このモーション処理は、モデルオブジェクトのモーションを、モーションデータ記憶部173に記憶されているモーションデータに基づいて再生することなどで実現できる。
具体的にはモーションデータ記憶部173には、モデルオブジェクトのスケルトンを構成する各骨(モデルオブジェクトを構成する各パーツオブジェクト)の位置又は回転角度(親の骨に対する子の骨の3軸周りの回転角度)等を含むモーションデータが記憶されている。モーション処理部107は、このモーションデータをモーションデータ記憶部173から読み出し、読み出されたモーションデータに基づいてモデルオブジェクトのスケルトンを構成する各骨(パーツオブジェクト)を動かすことで(スケルトン形状を変形させることで)、モデルオブジェクトのモーションを再生する。
なお、モーションデータ記憶部173に記憶されるモーションデータは、現実世界の人にセンサをつけてモーションキャプチャを行うことで作成できるが、モーションデータを、物理シミュレーション(物理計算を利用したシミュレーション。擬似的な物理計算でもよい)やモーションブレンドなどによりリアルタイムに生成してもよい。また、少ないモーションデータ量でリアルなモーションを再生するために、インバース・キネマティクス等を用いてモーション再生を行ってもよい。
またモデルデータ記憶部174は、モデルオブジェクトのモデルデータを記憶する。このモデルデータは、例えばモデルオブジェクトの形状を規定するデータであり、モデルオブジェクトの基本姿勢や基本形状などを決めるデータである。具体的にはモデルデータ記憶部174は、モデルオブジェクトのスケルトンを構成する骨の位置(親の骨からの相対位置)や初期回転角度(基本姿勢での各骨の回転角度)などの初期状態情報を記憶する。またモデルオブジェクトの頂点データ(頂点位置等)を記憶する。モーション処理は、モデルデータに含まれる初期回転角度などの初期状態情報を、モーションデータに基づき更新して行くことで実現される。
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
例えば仮想カメラによりキャラクタ、車などのモデルオブジェクト(移動体)を後方から撮影する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動処理部106で得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ176(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
例えば画像生成部120は、頂点処理部122、ピクセル処理部124を含むことができる。
頂点処理部122(頂点シェーダ、ジオメトリーシェーダ)は頂点処理を行う。具体的には、オブジェクトの頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)に基づいて、頂点処理(頂点シェーダによるシェーディング)を行う。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。
ピクセル処理部124(ピクセルシェーダ)はピクセル処理を行う。具体的には、ラスタライズ後に、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)を行う。
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャ記憶部175からのテクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
そして本実施形態ではモーション処理部107は、モーションデータ記憶部173に記憶されるモデルオブジェクトのモーションデータに基づいて、モデルオブジェクトのモーション処理を行う。そして画像生成部120は、モーション処理により動作するモデルオブジェクトの描画処理を行って、オブジェクト空間において仮想カメラから見える画像を生成する。
この場合にモーション処理部107は、モデルオブジェクトの隣り合う第1、第2のパーツオブジェクト(例えば上腕と前腕、大腿と脛)が関節運動を行うモーション処理を行う。例えば第1、第2のパーツオブジェクトを関節を中心に屈曲させたり伸展させるモーション処理を行う。ここで第1のパーツオブジェクトは例えば上腕オブジェクトや大腿オブジェクトである。第2のパーツオブジェクトは例えば前腕オブジェクトや脛オブジェクトである。但し、第1、第2のパーツオブジェクトはこれに限定されず、例えば第1、第2のパーツオブジェクトの少なくとも一方が、武器オブジェクト(例えばマシンガン、剣)や義足オブジェクトや義手オブジェクトであってもよい。
そして画像生成部120は、第1、第2のパーツオブジェクトの関節運動の伸展側領域では、第1、第2のパーツオブジェクトの関節面に対応する頂点を有し、第1、第2のパーツオブジェクトの関節運動の屈曲側領域では、関節面に対応する頂点を有しないモデルオブジェクトの描画処理を行う。即ちモデルデータ記憶部174は、伸展側領域では関節面に対応する頂点を有し、屈曲側領域では関節面に対応する頂点を有しないモデルオブジェクトのモデルデータを記憶する。そして画像生成部120は、モデルデータ記憶部174に記憶されるモデルデータに基づいて、モデルオブジェクトの描画処理を行う。
ここで屈曲側領域は、第1、第2のパーツオブジェクトのサーフェース領域のうち、屈曲の関節運動が行われる側の領域である。上腕と前腕の関節運動を例にとれば、屈曲側領域は、上腕オブジェクト(広義には第1のパーツオブジェクト)と前腕オブジェクト(広義には第2のパーツオブジェクト)のサーフェース領域のうち、手の平側の領域である。大腿と脛の関節運動を例にとれば、屈曲側領域は、大腿オブジェクト(広義には第1のパーツオブジェクト)と脛オブジェクト(広義には第2のパーツオブジェクト)のサーフェース領域のうち、足のかかと側の領域である。
一方、伸展側領域は、第1のパーツオブジェクトと第2のパーツオブジェクトのサーフェース領域のうち、伸展の関節運動が行われる側の領域(屈曲側領域の反対側の領域)である。上腕と前腕の関節運動を例にとれば、伸展側領域は、上腕オブジェクトと前腕オブジェクトのサーフェース領域のうち、手の甲側の領域である。大腿と脛の関節運動を例にとれば、伸展側領域は、大腿オブジェクトと脛オブジェクトのサーフェース領域のうち、足の甲側の領域である。
また関節面に対応する頂点は、例えば第1、第2のパーツオブジェクトの関節面(接続面)の場所に配置される頂点である。上腕と前腕の関節運動を例にとれば、屈曲側領域での関節面に対応する頂点は、肘関節の内側(手の平側)の頂点のうち関節面の場所に配置される頂点である。また伸展側領域での関節面に対応する頂点は、肘関節の外側(手の甲側)の頂点のうち関節面の場所に配置される頂点である。
また第1のパーツオブジェクト側の屈曲側領域の頂点のうち、関節面に隣接する頂点(関節面に最も近い頂点)を第1の頂点とし、第2のパーツオブジェクト側の屈曲側領域の頂点のうち関節面に隣接する頂点を第2の頂点としたとする。この場合に画像生成部120は、第1の頂点と前記第2の頂点を結ぶ線分を一辺とするポリゴン(プリミティブ面)を描画して、第1、第2のパーツオブジェクトの関節部分での画像(屈曲側領域の画像)を生成する。上腕と前腕の関節運動を例にとれば、肘関節の内側の上腕側の第1の頂点と、肘関節の内側の前腕側の第2の頂点を結ぶ線分を一辺とするポリゴンを描画して、肘関節の内側の画像を生成する。
また画像生成部120は、屈曲側領域のうちの第1の側面側領域では関節面に対応する頂点を有し、屈曲側領域のうちの第2の側面側の領域では関節面に対応する頂点を有しないモデルオブジェクトの描画処理を行ってもよい。上腕と前腕の関節運動を例にとれば、第1の側面側領域は小指側(尺骨側)の領域であり、第2の側面側領域は親指側(橈骨側)の領域である。大腿と脛の関節運動を例にとれば、第1の側面側領域は足の小指側及び親指側の一方の領域であり、第2の側面側領域は足の小指側及び親指側の他方の領域である。
また頂点処理部122は、第1のパーツオブジェクトに対応して設けられる第1の骨と、第2のパーツオブジェクトに対応して設けられる第2の骨と、第1、第2のパーツオブジェクトの関節部分に対応して設けられる関節骨に基づいて、第1、第2のパーツオブジェクトの頂点位置を求める。例えば第1の骨、第2の骨、関節骨と、これらの骨に対する重み付け値に基づいて、第1、第2のパーツオブジェクトの各頂点の位置(位置座標)を求める。そして頂点処理部122は、伸展側領域における関節面に対応する頂点については、関節骨に追従させる演算処理を行って頂点位置を求める。上腕と前腕の関節運動を例にとれば、肘関節の外側(手の甲側)の頂点については、肘関節に設定される関節骨に追従させる演算処理を行って、その頂点位置を求める。
この場合にモーション処理部107は、関節運動時に第2の骨の回転に連動させて関節骨を回転させてもよい。例えば第2の骨の回転角度をθ=θBとした場合に、関節骨をθ=θJ(θJ<θB)の回転角度だけ回転させる。なお、関節骨の配置位置(回転中心となる位置)は、第2の骨の配置位置と一致させてもよいし、関節骨の配置位置を、例えば第2の骨の配置位置から伸展側(外側)にシフトさせた位置に設定してもよい。
2.本実施形態の手法
2.1 モーション処理
図2に示すように、キャラクタなどを表すモデルオブジェクトMOBは、複数のパーツオブジェクトPB0〜PB15により構成される。そして、これらのパーツオブジェクト(部位)の位置や回転角度(方向)は、モデルオブジェクトMOBのスケルトンモデルを構成する骨B0〜B19の位置(関節J0〜J15の位置)や回転角度(親の骨に対する子の骨の相対的な回転角度)により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
モデルオブジェクトMOBのスケルトンを構成する骨(モーション骨、関節、パーツオブジェクト)は、親子(階層)構造を有している。例えば、手の骨B7、B11の親は前腕の骨B6、B10になり、B6、B10の親は上腕の骨B5、B9になり、B5、B9の親は肩の骨B4、B8になる。足、脛(すね)、大腿、腰、胸、頭の骨も同様である。
モーションデータ記憶部173には、これらの骨(パーツオブジェクト、関節)の位置、回転角度が、モーションデータとして記憶されている。なお骨の回転角度だけをモーションデータに含ませて、骨(アーク)の位置(関節の位置)についてはモデルオブジェクトのモデルデータの中に含ませてもよい。
例えば、歩きモーションが、M0、M1、M2・・・・MNという基準モーション(各フレームでのモーション)により構成されているとする。するとこれらの各基準モーションM0、M1、M2・・・・MNでの各骨の位置又は回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションM0の各骨(各パーツオブジェクト)の位置、回転角度を読み出し、次に基準モーションM1の各骨の位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション処理(モーション再生)が実現される。
なお、モーションデータ記憶部173に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。またモーションデータは、親の骨の位置、回転角度に対する子の骨の相対的な位置、相対的な回転角度(3軸周りの回転角度)で表される。具体的には、親の骨に対する子の骨のX軸、Y軸、Z軸回りの回転角度(相対的な回転角度)が、モーションデータとして記憶される。なお親の骨に対する子の骨の相対的な位置(相対距離)は、例えばモデルオブジェクト(キャラクタ)のモデルデータに含ませてもよい。
2.2 関節運動
上述したモーション処理の際には、例えば図2の上腕のパーツオブジェクトPB4(第1のパーツオブジェクト)と前腕のパーツオブジェクトPB5(第2のパーツオブジェクト)が関節運動を行う。また大腿のパーツオブジェクトPB10(第1のパーツオブジェクト)と脛のパーツオブジェクトPB11(第2のパーツオブジェクト)も関節運動を行う。以下、この第1、第2のパーツオブジェクト(第1、第2の骨)の関節運動について説明する。
図3(A)、図3(B)、図4は従来例での関節運動の説明図である。なお、第1、第2のパーツオブジェクトPOA、POBは実際には3次元形状のオブジェクトであるが、以下では説明の簡素化のために2次元形状に簡略化して説明する。
図3(A)において、例えば上腕や大腿等を表すパーツオブジェクトPOAは、頂点V1〜V12(V1〜V9)により構成され、前腕や脛を表すパーツオブジェクトPOBは、頂点V10〜V21(V10〜V18)により構成される。即ちパーツオブジェクトPOAは、頂点V1〜V12により形成される複数のポリゴンで構成され、パーツオブジェクトPOBは、頂点V10〜V21により形成される複数のポリゴンで構成される。
パーツオブジェクトPOAの頂点V1〜V12の位置は基本的には骨BNAに追従し、パーツオブジェクトPOBの頂点V10〜V21の位置は基本的には骨BNBに追従する。但し、これらの頂点の一部(例えばV10、V11、V12)については、両方の骨BNA、BNBに追従し、その追従の度合いは、後述する重み付け値により設定される。
また図3(A)において骨BNA(パーツオブジェクトPOA)は親であり、骨BNB(パーツオブジェクトPOB)は骨BNAの子になる。従って、この関節運動のモーションデータは、親の骨BNAに対する子の骨BNBのX軸回りの回転角度、Y軸回りの回転角度、Z軸回りの回転角度により表されることになる。
またパーツオブジェクトPOAについてのモデルデータ(頂点リスト、オブジェクトデータ)は、骨BNAのローカル座標系におけるPOAの頂点データ(頂点位置、テクスチャ座標、色データ、法線ベクトル、α値等)を含むことができる。またパーツオブジェクトPOBについてのモデルデータは、骨BNBのローカル座標系におけるPOBの頂点データを含むことができる。但し、頂点V10、V11、V12の頂点データは重複するため、子のパーツオブジェクトPOBのモデルデータのみに含ませればよい。
図3(A)において、RBEはパーツオブジェクトPOA、POBの関節運動の屈曲側領域(曲がる側の領域)であり、REXは伸展側領域(曲がる側の領域の反対側の領域)である。そして図3(A)の従来例では、関節運動の伸展側領域REXにおいて、関節面JSFに対応する場所に頂点V12を有すると共に、屈曲側領域RBEにおいても、関節面JSFに対応する場所に頂点V10を有する。このため関節運動の際に図3(B)、図4に示すような問題が生じることが判明した。
例えば図3(B)、図4において、関節面JSFの頂点V10、V11、V12の骨BNAに対する重み付け値(追従する度合いを表す係数値)は例えば50%(0.5)になっており、頂点V10、V11、V12の骨BNBに対する重み付け値も例えば50%(0.5)になっている。従って、関節運動によるオブジェクトの変形後の頂点V10の位置は、骨BNAに完全(100%)に追従した場合の頂点V10’と、骨BNBに完全に追従した場合の頂点V10”の中点の位置になる。同様に、関節運動によるオブジェクトの変形後の頂点V12の位置は、骨BNAに完全に追従した場合の頂点V12’と、骨BNBに完全に追従した場合の頂点V12”の中点の位置になる。
このため図3(B)、図4に示すように、屈曲時に、関節面JSFでの関節部分の太さが細くなってしまう。即ち、あたかもゴムチューブを曲げたときのようなエンベロープの形状になってしまう。特に図4に示すように屈曲角が90度に近づくと、関節部分が極端に細くなり、生成される画像の品質が劣化してしまう。
そこで本実施形態では、屈曲側領域RBEにおける関節面JSFでの頂点V10を省略する手法を採用している。
即ち図3(A)では、屈曲側領域RBE及び伸展側領域REXの両方において、関節面JSFの場所に頂点V10、V12が設けられている。これに対して本実施形態では図5(A)に示すように、伸展側領域REXでは関節面JSFの場所に頂点V12が設けられているが、屈曲側領域RBEでは関節面JSFの場所に頂点が設けられておらず、図3(A)のV10に相当する頂点が省略されている。
また図5(A)において、パーツオブジェクトPOA側の屈曲側領域RBEの頂点V1、V4、V7のうち、関節面JSFに隣接する頂点(JSFに最も近い頂点)を第1の頂点V7とする。またパーツオブジェクトPOB側の屈曲側領域RBEの頂点V13、V16、V19のうち、関節面JSFに隣接する頂点を第2の頂点V13とする。この場合には、第1の頂点V7と第2の頂点V13を結ぶ線分を一辺とするポリゴンPLJが生成される。例えば図5(A)では三角形のポリゴンPLJが生成され、図3(A)とはポリゴンの分割の仕方が変化する。そしてこのポリゴンPLJを描画することで、パーツオブジェクトPOA、POBの屈曲側領域RBEでの関節部分の画像が生成される。
このような手法を採用すれば、例えば図5(B)、図6に示すようにパーツオブジェクトPOA、POBの関節運動が行われた場合にも、関節面JSFでの関節部分の太さが極端に細くなってしまう事態を防止できる。即ち図3(B)、図4では関節部分が細くなる事態が生じていたが、図5(B)、図6では、このような事態が生じない。特に図6に示すように屈曲角が90度に近づいた場合にも、図4のように関節部分が極端に細くなってしまう事態が防止される。従って、生成される画像の品質劣化を防止でき、より自然な関節運動画像を生成できる。
特に格闘ゲームなどでは、基本姿勢の状態(構えの状態)において、腕等の関節部分が屈曲した状態である場合が多い。従って、図4のように関節部分が極端に細くなると、生成される画像が不自然になり、プレーヤの仮想現実感を低下させる。この点、本実施形態では図5(B)、図6に示すように、関節部分が細くなるのが防止されるため、プレーヤの仮想現実感の低下を防止できる。
また図5(A)〜図6の本実施形態の手法は、新たな特別な処理を付加することなく、関節面の屈曲側での頂点(図3(A)のV10)を省略するだけで済む。従って、処理負荷の増加を防止しながら関節運動のより自然が画像を生成できるという利点がある。
図7に、図5(A)のパーツオブジェクトPOA、POBのモデルデータ(頂点リスト)の例を示す。図7のモデルデータでは、各頂点に対して、その頂点の位置(骨のローカル座標系での位置)や、各骨に対する重み付け値(ウェイト値)が対応づけられている。
例えば頂点V1に対しては、V1の位置座標(X1、Y1、Z1)や、骨BNAに対する重み付け値WT1Aが対応づけられ、頂点V2に対しては、V2の位置座標(X2、Y2、Z2)や、骨BNAに対する重み付け値WT2Aが対応づけられている。頂点V3〜V9も同様である。そして図5(A)〜図6では、頂点V1〜V9は骨BNAに対して完全に追従する。従って、頂点V1〜V9の骨BNAに対する重み付け値WT1A〜WT9Aは100%(1.0)に設定される。なお頂点V1〜V9には、骨BNBに対する重み付け値は設定されていない。
一方、関節面JSFの頂点V11、V12は、骨BNAと骨BNBの両方に追従する。従って、骨BNAに対する重み付け値WT11A、WT12Aと、骨BNBに対する重み付け値WT11B、WT12Bが設定される。例えば頂点V11の骨BNA、BNBに対する重み付け値WT11A、WT11Bは共に例えば50%(0.5)に設定され、頂点V12の骨BNA、BNBに対する重み付け値WT12A、WT12Bも共に例えば50%に設定される。
また頂点V13〜V21は骨BNBに対して完全に追従する。従って、頂点V13〜V21の骨BNBに対する重み付け値WT13B〜WT21Bは100%に設定される。なお頂点V13〜V21には、骨BNAに対する重み付け値は設定されていない。
図7に示すように本実施形態のモデルデータは、屈曲側領域RBEの関節面JSFの頂点V10のデータが削除されている。即ち、伸展側領域REXでは関節面JSFに対応する頂点V12を有し、屈曲側領域RBEでは関節面JSFに対応する頂点を有しないデータ構造のモデルデータ(頂点リスト)になっている。そして、このようなデータ構造のモデルデータをモデルデータ記憶部174から読み出して、モデルデータにより規定される頂点で構成されるポリゴンを描画することで、関節部分が細くなる事態が防止されたリアルな画像を生成できるようになる。
2.3 第1、第2の側面側領域の頂点
以上では、屈曲側領域の関節面での頂点を省略する手法について説明したが、屈曲側領域の関節面での全ての頂点を省略する必要はなく、一部の頂点については残すようにしてもよい。
例えば図8(A)、図8(B)は、キャラクタの上腕と前腕が屈曲する関節運動の様子を示す画像である。図8(A)はキャラクタを前側から見た画像であり、図8(B)はキャラクタを後ろ側から見た画像である。図8(A)の前側画像では、例えば上腕二頭筋が膨らみ、上腕と前腕の関節部分がくびれて見える画像が、自然な画像になる。一方、図8(B)の後ろ側画像では、上腕三頭筋等の筋肉が盛り上がって見える画像が、自然な画像になる。
そこで本実施形態では、屈曲側領域RBEのうちの第1の側面SD1側(前側)の領域RSD1では、図3(A)のように関節面の頂点(V10)を設ける手法を採用し、屈曲側領域RBEのうちの第2の側面SD2側(後ろ側)の領域RSD2では、図5(A)のように関節面の頂点を省略する手法を採用する。
このようにすれば、屈曲側領域RBEのSD1側の領域RSD1では、図4のように関節部分が細くなってしまう現象を逆利用して、図8(A)のように関節部分がくびれた画像を生成できる。即ち領域RSD1は、屈曲側領域RBEであっても、関節面の場所に頂点を有するため、図4のように関節部分が細くなる画像が生成され、図8(A)のように関節部分がくびれた画像が生成されるようになる。
一方、屈曲側領域RBEのSD2側の領域RSD2では、関節部分が細くなるのを防止する本実施形態の手法を採用することで、図8(B)のように筋肉が盛り上がって見える画像を生成できる。即ち領域RSD2では、関節面の場所に頂点を有しないため、図6に示すように関節部分が細くなるのが防止され、図8(B)のように関節部分のくびれが防止された画像が生成されるようになる。
なお図8(A)、図8(B)では、第1のパーツオブジェクトPOAは上腕オブジェクトになり、第2のパーツオブジェクトPOBは前腕オブジェクトになる。そして図8(A)に示すように第1の側面SD1側の領域RSD1は小指側(尺骨側)の領域になり、図8(B)に示すように第2の側面SD2側の領域RSD2は親指側(橈骨側)の領域になる(腕や手が内転或いは外転していないと仮定する)。そして小指側の領域RSD1では関節面の場所に頂点が設けられ、親指側の領域RSD2では関節面の場所の頂点が削除される。
2.4 関節骨
さて、図5(A)〜図6の本実施形態の手法では、屈曲側領域RBEでの関節部分のくびれは防止できるが、伸展側領域REXでの関節部分のへっこみは防止できない。例えば上腕と前腕のなす角度が90度になった場合に、肘の外側形状(伸展側の形状)の角度も理想的には90度になることが望ましい。しかしながら、図6では、V12’とV12”の中点が頂点V12になるため、このような肘の外側形状を表現できない。
そこで本実施形態では図9(A)に示すように、骨BNA、骨BNBの他に、関節部分(例えば頂点V11の位置)に関節骨BJを設ける。この関節骨BJは関節運動を補助するための骨であり、骨BNBの動きに追従する。
例えば関節骨BJは、骨BNBと同様の位置(V11の位置)に配置され、骨BNBの回転に連動して回転する。即ち、骨BNBがその配置位置(V11)を回転中心としてθ=θBだけ回転すると、関節骨BJはその配置位置を回転中心としてθ=θJ(θJ<θB)だけ回転する。例えば図9(B)に示すように骨BNBがθB=60度回転すると、関節骨BJはθJ=30度回転する。また図10に示すように、骨BNBがθB=90度回転すると、関節骨BJはθJ=45度回転する。
なお図9(A)〜図10では、骨BNBの配置位置と関節骨BJの配置位置が一致しているが、これらの配置位置が一致しないようにしてもよい。例えば関節骨BJの配置位置を、骨BNBの配置位置から伸展側(外側)にシフトした位置に設定する。具体的には、図9(A)の頂点V11とV12の間の位置(例えばV11とV12の中点)に、関節骨BJを配置してもよい。
本実施形態では、このような関節骨BJを設け、この関節骨BJと、パーツオブジェクトPOAに対応する骨BNAと、パーツオブジェクトPOBに対応する骨BNBに基づいて、パーツオブジェクトPOA、POBの頂点位置を求める頂点処理を行う。具体的には、伸展側領域REXにおける関節面JSFに対応する頂点V12については、関節骨BJに追従させる演算処理を行って、その頂点位置を求める。
例えば図9(B)では、骨BNBの60度の回転に連動して、関節骨BJは30度だけ回転している。すると頂点V12は、関節骨BJの回転に追従して、関節骨BJの配置位置である頂点V11を回転中心として30度だけ回転する。また図10では、骨BNBの90度の回転に連動して、関節骨BJは45度だけ回転している。すると、頂点V12は、関節骨BJの回転に追従して、頂点V11を回転中心として45度だけ回転する。
このようにすれば、図5(B)、図6と図9(B)、図10を比較すれば理解されるように、関節部分の屈曲時に頂点V12は、より伸展側に離れた位置に配置されるようになる。これにより、図10に示すように、肘等の関節部分の伸展側の形状を90度に近づけることが可能になる。従って、よりリアルな関節部分の関節運動画像を生成できるようになり、屈曲側領域RBEの画像のみならず伸展側領域REXの画像のリアル度も増すことができる。
2.5 関節運動画像
次に関節運動の詳細な画像例について説明する。図11においてキャラクタCHの前方向をD1方向とし、左方向をD2方向とし、上方向をD3方向とする。するとキャラクタCHの左腕は左方向D2の方に伸びており、図11、図12、図13は、この左腕の関節運動を上側から見た場合のワイヤフレーム画像の例である。
図11のF1に示すように、この左腕のモデルオブジェクトでは、伸展側領域REXでは関節面の場所に頂点が設けられている。一方、図11のF2に示すように、屈曲側領域RBEでは関節面の場所に頂点が設けられていない。そして、上腕オブジェクト側の第1の頂点VA1と、前腕オブジェクト側の第2の頂点VB2を結ぶ線分を一辺とするポリゴンが描画されて、屈曲側領域RBEでの関節部分の画像が生成されている。
図12、図13は、図11の状態から関節部分が徐々に屈曲して行く様子を示す関節運動画像である。図12のF3や図13のF4に示すように、屈曲側領域RBEの関節面に頂点を設けないことで、関節部分が細くなってくびれが生じてしまう事態を防止できる。また図12のF5や図13のF6に示すように、図9(A)〜図10で説明した関節骨を設けることで、肘の関節部分の伸展側の形状を90度に近づけることができ、よりリアルな画像を生成できるようになる。
図14、図15、図16は、キャラクタCHの左腕の関節運動を前側から見た場合のワイヤフレーム画像の例である。
図14において、屈曲側領域RBEのうちの下側(小指側)の領域が第1の側面側領域RSD1になり、屈曲側領域RBEのうちの上側(親指側)の領域が第2の側面側領域RSD2になる。そして図14のG1に示すように、第1の側面側領域RSD1では関節面の場所に頂点が設けられる。一方、G2に示すように、第2の側面側領域RSD2では関節面の場所に頂点が設けられていない。
従って、関節面に頂点を有する第1の側面側領域RSD1では、図8(A)で説明したような関節分のくびれを表現できる。一方、関節面に頂点を有しない第2の側面側領域RSD2では、図8(B)で説明したような関節部分付近の筋肉の盛り上がり等を表現できるようになる。
3.処理例
次に本実施形態の処理例について図17、図18のフローチャートを用いて説明する。図17は画像生成システムの全体的な処理の例を表すフローチャートである。
まず、モデルオブジェクトなどの複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定処理を行う(ステップS1)。そして、モデルオブジェクトなどの移動体をオブジェクト空間内で移動させる移動処理や、モデルオブジェクトの動きを表現するモーション処理などを行う(ステップS2、S3)。具体的には、操作部からの操作データ等に基づいてモデルオブジェクトを移動させる移動処理を行ったり、モデルオブジェクトのスケルトンを構成する各骨を、モーションデータに基づいて動かすモーション処理を行う。
次に頂点シェーダプログラムによる頂点シェーダ処理を行う(ステップS4)。この頂点シェーダ処理(頂点処理)では、頂点単位での座標変換処理(ローカル座標系からワールド座標系への変換等)、頂点単位での陰影処理(シェーディング処理)、頂点単位での光源処理(ライティング処理)、テクスチャ座標の演算処理などが行われる。例えばモーション処理後のモデルオブジェクトの頂点位置を求める処理を、この頂点シェーダ処理により実現してもよい。そして、この頂点シェーダ処理により得られた頂点座標、視線ベクトル、光源ベクトル、法線ベクトル等は、出力レジスタに格納され、ピクセルシェーダ処理に渡される。
次に、ピクセルシェーダプログラムによるピクセルシェーダ処理を開始する(ステップS5)。このピクセルシェーダ処理では、ラスタライズ後にピクセル単位の様々な処理が行われる。具体的には、ピクセル単位での陰影処理(シェーディング処理)、テクスチャマッピング処理、半透明処理などが行われる。これにより、表示部に表示される最終的な画像(ゲーム画像)が生成される。
図18は、モデルオブジェクトのモーション処理や形状変形処理の詳細を示すフローチャートである。まずモーションデータ等に基づいて、モデルオブジェクトの骨のワールドマトリクスを計算する(ステップS11)。具体的には、モーションデータに含まれる骨の回転角度とモデルデータに含まれる骨の位置に基づいて、各骨のローカルマトリクス(ローカル座標系への座標変換マトリクス)を計算する。そしてモデルデータに含まれる親子構造データに基づいて親子関係を判断し、この親子関係にしたがって親の骨のローカルマトリクスに対して子の骨のローカルマトリクスを順次乗算して行く事で、各骨のワールドマトリクス(ワールド座標系への座標変換マトリクス)を求める。
次に、全ての骨のワールドマトリクスの計算が終了したか否かを判断し(ステップS12)、終了していない場合にはステップS11に戻って次の骨のワールドマトリクスを計算する。一方、終了した場合には、求められた骨のワールドマトリクスと、モデルデータ(頂点リスト)に基づいて、モデルオブジェクトの頂点位置(ワールド座標系での頂点位置)を求めて、モデルオブジェクトの形状変形処理を実行する(ステップS13)。そして、その後にピクセル単位の描画処理が行われることで、関節運動のモーション画像が生成される。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(第1のパーツオブジェクト、第2のパーツオブジェクト等)と共に記載された用語(上腕オブジェクト、前腕オブジェクト等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、モーション処理、頂点処理、描画処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
POA 第1のパーツオブジェクト、POB 第1のパーツオブジェクト、
BNA 第1の骨、BNB 第2の骨、BJ 関節骨、
RBE 屈曲側領域、REX 伸展側領域、JSF 関節面、
RSD1 第1の側面側領域、RSD2 第2の側面側領域、
100 処理部、102 ゲーム演算部、104 オブジェクト空間設定部、
106 移動処理部、107 モーション処理部、108 仮想カメラ制御部、
120 画像生成部、122 頂点処理部、124 ピクセル処理部、
130 音生成部、160 操作部、170 記憶部、
172 オブジェクトデータ記憶部、173 モーションデータ記憶部、
174 モデルデータ記憶部、175 テクスチャ記憶部、176 描画バッファ、
180 情報記憶媒体、190 表示部、192 音出力部、194 補助記憶装置、
196 通信部

Claims (10)

  1. モデルオブジェクトのモーションデータを記憶するモーションデータ記憶部と、
    前記モーションデータに基づいて前記モデルオブジェクトのモーション処理を行うモーション処理部と、
    前記モーション処理により動作する前記モデルオブジェクトの描画処理を行い、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部として、
    コンピュータを機能させ、
    前記モーション処理部は、
    前記モデルオブジェクトの隣り合う第1、第2のパーツオブジェクトが関節運動を行うモーション処理を行い、
    前記画像生成部は、
    前記第1、第2のパーツオブジェクトの関節運動の伸展側領域では、前記第1、第2のパーツオブジェクトの関節面に対応する頂点を有し、前記第1、第2のパーツオブジェクトの関節運動の屈曲側領域では、前記関節面に対応する頂点を有しない前記モデルオブジェクトの描画処理を行うことを特徴とするプログラム。
  2. 請求項1において、
    前記第1のパーツオブジェクト側の前記屈曲側領域の頂点のうち、前記関節面に隣接する頂点を第1の頂点とし、前記第2のパーツオブジェクト側の前記屈曲側領域の頂点のうち、前記関節面に隣接する頂点を第2の頂点とした場合に、
    前記画像生成部は、
    前記第1の頂点と前記第2の頂点を結ぶ線分を一辺とするポリゴンを描画して、前記第1、第2のパーツオブジェクトの関節部分での画像を生成することを特徴とするプログラム。
  3. 請求項1又は2において、
    前記伸展側領域では前記関節面に対応する頂点を有し、前記屈曲側領域では前記関節面に対応する頂点を有しない前記モデルオブジェクトのモデルデータを記憶するモデルデータ記憶部として、
    コンピュータを機能させ、
    前記画像生成部は、
    前記モデルデータ記憶部に記憶される前記モデルデータに基づいて、前記モデルオブジェクトの描画処理を行うことを特徴とするプログラム。
  4. 請求項1乃至3のいずれかにおいて、
    前記画像生成部は、
    前記屈曲側領域のうちの第1の側面側領域では前記関節面に対応する頂点を有し、前記屈曲側領域のうちの第2の側面側領域では前記関節面に対応する頂点を有しない前記モデルオブジェクトの描画処理を行うことを特徴とするプログラム。
  5. 請求項4において、
    前記第1のパーツオブジェクトは上腕オブジェクトであり、前記第2のパーツオブジェクトは前腕オブジェクトであり、前記第1の側面側領域は小指側の領域であり、前記第2の側面側領域は親指側の領域であることを特徴とするプログラム。
  6. 請求項1乃至5のいずれかにおいて、
    前記第1のパーツオブジェクトに対応して設けられる第1の骨と、前記第2のパーツオブジェクトに対応して設けられる第2の骨と、前記第1、第2のパーツオブジェクトの関節部分に対応して設けられる関節骨に基づいて、前記第1、第2のパーツオブジェクトの頂点位置を求める頂点処理部として、
    コンピュータを機能させ、
    前記頂点処理部は、
    前記伸展側領域における前記関節面に対応する頂点については、前記関節骨に追従させる演算処理を行って頂点位置を求めることを特徴とするプログラム。
  7. 請求項6において、
    前記モーション処理部は、
    関節運動時に前記第2の骨の回転に連動させて前記関節骨を回転させることを特徴とするプログラム。
  8. 請求項7において、
    前記モーション処理部は、
    前記第2の骨の回転角度をθ=θBとした場合に、前記関節骨をθ=θJ(θJ<θB)の回転角度だけ回転させることを特徴とするプログラム。
  9. コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至8のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
  10. モデルオブジェクトのモーションデータを記憶するモーションデータ記憶部と、
    前記モーションデータに基づいて前記モデルオブジェクトのモーション処理を行うモーション処理部と、
    前記モーション処理により動作する前記モデルオブジェクトの描画処理を行い、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部とを含み、
    前記モーション処理部は、
    前記モデルオブジェクトの隣り合う第1、第2のパーツオブジェクトが関節運動を行うモーション処理を行い、
    前記画像生成部は、
    前記第1、第2のパーツオブジェクトの関節運動の伸展側領域では、前記第1、第2のパーツオブジェクトの関節面に対応する頂点を有し、前記第1、第2のパーツオブジェクトの関節運動の屈曲側領域では、前記関節面に対応する頂点を有しない前記モデルオブジェクトの描画処理を行うことを特徴とする画像生成システム。
JP2009248306A 2009-10-28 2009-10-28 プログラム、情報記憶媒体及び画像生成システム Pending JP2011095935A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009248306A JP2011095935A (ja) 2009-10-28 2009-10-28 プログラム、情報記憶媒体及び画像生成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009248306A JP2011095935A (ja) 2009-10-28 2009-10-28 プログラム、情報記憶媒体及び画像生成システム

Publications (1)

Publication Number Publication Date
JP2011095935A true JP2011095935A (ja) 2011-05-12

Family

ID=44112783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009248306A Pending JP2011095935A (ja) 2009-10-28 2009-10-28 プログラム、情報記憶媒体及び画像生成システム

Country Status (1)

Country Link
JP (1) JP2011095935A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014042121A1 (ja) * 2012-09-12 2014-03-20 独立行政法人産業技術総合研究所 動作評価装置及びそのプログラム
JP2018200671A (ja) * 2017-05-26 2018-12-20 株式会社コロプラ 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP2022503776A (ja) * 2018-09-21 2022-01-12 ピナンブラ、インク 視覚ディスプレイの補完的なデータを生成するためのシステム及び方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014042121A1 (ja) * 2012-09-12 2014-03-20 独立行政法人産業技術総合研究所 動作評価装置及びそのプログラム
JPWO2014042121A1 (ja) * 2012-09-12 2016-08-18 国立研究開発法人産業技術総合研究所 動作評価装置及びそのプログラム
JP2018200671A (ja) * 2017-05-26 2018-12-20 株式会社コロプラ 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP2022503776A (ja) * 2018-09-21 2022-01-12 ピナンブラ、インク 視覚ディスプレイの補完的なデータを生成するためのシステム及び方法
US11586276B2 (en) 2018-09-21 2023-02-21 Penumbra, Inc. Systems and methods for generating complementary data for visual display

Similar Documents

Publication Publication Date Title
JP4651435B2 (ja) プログラム、情報記憶媒体及び画像生成システム
US7706636B2 (en) Image generation system (game system), image generation method, program and information storage medium
US7088366B2 (en) Image generation method, program, and information storage medium
JP5520443B2 (ja) プログラム、情報記憶媒体及びゲームシステム
JP6362634B2 (ja) 画像生成システム、ゲーム装置及びプログラム
JP2008033521A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP3747050B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2017138915A (ja) 画像生成システム及びプログラム
JP4804122B2 (ja) プログラム、テクスチャデータ構造、情報記憶媒体及び画像生成システム
JP2012234441A (ja) プログラム、情報記憶媒体、画像生成システム及びサーバシステム
JP3748451B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4776017B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2011095935A (ja) プログラム、情報記憶媒体及び画像生成システム
US6890261B2 (en) Game system, program and image generation method
JP7370198B2 (ja) 処理システム、情報処理装置、プログラム及び処理方法
JP4786389B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4420729B2 (ja) プログラム、情報記憶媒体および画像生成システム
US20100144448A1 (en) Information storage medium, game device, and game system
JP4662260B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4229317B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2006263321A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4641602B2 (ja) ゲームシステム及び情報記憶媒体
JP4624527B2 (ja) ゲームシステム及び情報記憶媒体
JP2006252291A (ja) プログラム、情報記憶媒体及び画像生成システム
JP4782631B2 (ja) プログラム、情報記憶媒体及び画像生成システム