説明

画像処理装置、画像処理方法及びプログラム

【課題】キャラクタオブジェクトの姿勢や顔の表情の変化の表現のリアリティの向上を図ることが可能になる画像処理装置を提供すること。
【解決手段】本発明は、キャラクタオブジェクトが配置された仮想3次元空間の様子を表す画像を表示する画像処理装置に関するものである。本発明では、キャラクタオブジェクトに設定されるスケルトンが回転される(S101)。また、スケルトンの回転角度に基づいて、該スケルトンの位置が補正される(S102及びS103)。そして、スケルトンの回転角度及び位置に基づいて、キャラクタオブジェクトを構成するポリゴンの頂点の位置が決定される(S104及びS105)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
キャラクタオブジェクトが配置された仮想3次元空間を所与の視点から見た様子を表す画像を表示する画像処理装置が知られている。例えば、サッカー選手を表すキャラクタオブジェクトが配置された仮想3次元空間を所与の視点から見た様子を表す画像を表示することによって、サッカーゲームを実現するゲーム装置(画像処理装置)が知られている。
【0003】
上記のような画像処理装置では、キャラクタオブジェクトの姿勢や顔の表情が変化する様子を表現するために、キャラクタオブジェクトに複数のスケルトンが設定される。スケルトンは、関節部分に相当するジョイントと、ジョイント間を接続するボーンと、を含んで構成される。各ジョイントやボーンには、キャラクタオブジェクトを構成するポリゴンの頂点の少なくとも一部が関連づけられる。ジョイントやボーンの状態(回転角度や位置)が変化した場合、そのジョイントやボーンに関連づけられた頂点がそのジョイントやボーンの状態変化に基づいて移動する。すなわち、キャラクタオブジェクトの姿勢や顔の表情が変化する。こうして、キャラクタオブジェクトの姿勢や顔の表情が変化する様子が表現される。
【0004】
図13はキャラクタオブジェクトの顔の表情の一例を示している。図13では、キャラクタオブジェクト46が口を大きく開いている。図14は、キャラクタオブジェクト46が口を開閉する様子を表現するためにキャラクタオブジェクト46の顔に設定されるスケルトンの一例を示している。図14に示す例では、複数のポリゴンを含んで構成されるキャラクタオブジェクト46に対して、第1ジョイント50、第1ボーン51、第2ジョイント52、第2ボーン53、第3ジョイント54が設定されている。第1ボーン51は第1ジョイント50と第2ジョイント52との間を接続している。第2ボーン53は第2ジョイント52と第3ジョイント54との間を接続している。第2ジョイント52及び第2ボーン53は第1ジョイント50及び第1ボーン51に従属しており、第2ジョイント52及び第2ボーン53は第1ジョイント50及び第1ボーン51に従動する。すなわち、第2ジョイント52及び第2ボーン53の状態(位置や回転角度)は第1ジョイント50及び第1ボーン51の状態(位置や回転角度)に応じて変化する。また、第2ジョイント52及び第2ボーン53には、例えばキャラクタオブジェクト46の頬56のポリゴンの頂点が関連づけられている。それらの頂点の位置は第2ジョイント52及び第2ボーン53の状態(位置や回転角度)に応じて変化する。また、第3ジョイント54は第2ジョイント52及び第2ボーン53に従属しており、第3ジョイント54は第2ジョイント52及び第2ボーン53に従動する。すなわち、第3ジョイント54の状態(位置や回転角度)は第2ジョイント52及び第2ボーン53の状態(位置や回転角度)に応じて変化する。第3ジョイント54には、例えばキャラクタオブジェクト46の下唇57や顎58のポリゴンの頂点が関連づけられている。それらの頂点の位置は第3ジョイント54の状態(位置や回転角度)に応じて変化する。
【0005】
キャラクタオブジェクト46が口を開く様子を表す場合には、第1ジョイント50がX軸方向を回転軸としてA方向に回転する。このとき、第1ボーン51は、第1ジョイント50の回転に応じて、第1ジョイント50を回転の中心としてA方向に回転する。また、第2ジョイント52の位置は第1ジョイント50の回転(第1ボーン51の回転)に応じてB方向に移動する。また、第2ボーン53や第3ジョイント54の位置は第2ジョイント52の位置変化(第1ジョイント50の回転)に応じてC方向に移動する。そして、キャラクタオブジェクト46の頬56、下唇57や顎58のポリゴンの頂点の位置が、第2ジョイント52、第2ボーン53や第3ジョイント54の位置変化に応じて変化する。その結果として、キャラクタオブジェクト46が口を開く様子が表される。なお、キャラクタオブジェクト46が口を閉じる様子を表す場合には、第1ジョイント50がX軸方向を回転軸としてA方向とは逆方向に回転する。
【0006】
【特許文献1】特開2003−132366号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記のような画像処理装置では、例えばジョイントやボーンの回転角度が比較的大きくなった場合に、キャラクタオブジェクトを構成するポリゴンの頂点の位置が不自然になってしまう場合がある。その結果、キャラクタオブジェクトの姿勢や顔の表情の変化の表現のリアリティが損なわれてしまう場合がある。例えば、図14に示した例において、キャラクタオブジェクト46が口を大きく開く様子を表現するために、第1ジョイント50(第1ボーン51)の回転角度(X軸方向を回転軸とした回転角度)を比較的大きくした場合、第2ジョイント52、第2ボーン53や第3ジョイント54の移動量も大きくなるため、キャラクタオブジェクト46の顎58が首59にめり込んでしまう場合がある。
【0008】
本発明は上記課題に鑑みてなされたものであって、その目的は、キャラクタオブジェクトの姿勢や顔の表情の変化の表現のリアリティの向上を図ることが可能になる画像処理装置、画像処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る画像処理装置は、キャラクタオブジェクトが配置された仮想3次元空間の様子を表す画像を表示する画像処理装置において、前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転手段と、前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正手段と、前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定手段と、を含むことを特徴とする。
【0010】
また、本発明に係る画像処理方法は、キャラクタオブジェクトが配置された仮想3次元空間の様子を表す画像を表示する画像処理方法において、前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転ステップと、前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正ステップと、前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定ステップと、を含むことを特徴とする。
【0011】
また、本発明に係るプログラムは、キャラクタオブジェクトが配置された仮想3次元空間の様子を表す画像を表示する画像処理装置として、家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転手段、前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正手段、及び、前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定手段、として前記コンピュータを機能させるためのプログラムである。
【0012】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【0013】
本発明はキャラクタオブジェクトが配置された仮想3次元空間の様子を表す画像を表示する画像処理装置に関するものである。本発明では、キャラクタオブジェクトに設定されるスケルトンが回転する。また、スケルトンの回転角度に基づいて、該スケルトンの位置が補正される。そして、スケルトンの回転角度及び位置に基づいて、キャラクタオブジェクトを構成するポリゴンの頂点の位置が決定される。本発明によれば、キャラクタオブジェクトの姿勢や顔の表情の変化の表現のリアリティの向上を図ることが可能になる。
【0014】
また、本発明の一態様では、前記スケルトン位置補正手段は、回転角度と、前記スケルトンの位置補正の基礎となる補正情報と、を対応づけてなる位置補正データを記憶する手段を含み、前記スケルトンの回転角度に対応する前記補正情報に基づいて、該スケルトンの位置を補正するようにしてもよい。
【0015】
この態様では、前記補正情報は、所定方向への前記スケルトンの移動距離を示す情報であってもよい。前記スケルトン位置補正手段は、前記スケルトンを、該スケルトンの回転角度に対応する前記補正情報が示す移動距離だけ、前記所定方向に移動させるようにしてもよい。
【発明を実施するための最良の形態】
【0016】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。ここでは、画像処理装置の一態様であるゲーム装置に本発明を適用した例について説明する。ゲーム装置は、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【0017】
図1は、本発明の実施形態に係るゲーム装置の全体構成を示す図である。図1に示すゲーム装置10は、家庭用ゲーム機11、モニタ32、スピーカ34、光ディスク36を含んでいる。モニタ32及びスピーカ34は家庭用ゲーム機11に接続される。モニタ32としては例えば家庭用テレビ受像機が用いられる。スピーカ34としては例えば家庭用テレビ受像機に内蔵されたスピーカが用いられる。光ディスク36は情報記憶媒体であり、家庭用ゲーム機11に装着される。
【0018】
家庭用ゲーム機11は公知のコンピュータゲームシステムである。家庭用ゲーム機11は、バス12、マイクロプロセッサ14、主記憶16、画像処理部18、入出力処理部20、音声処理部22、光ディスク読み取り部24、ハードディスク26、通信インタフェース28及びコントローラ30を含んでいる。コントローラ30以外の構成要素は家庭用ゲーム機11の筐体内に収容される。
【0019】
バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。マイクロプロセッサ14、主記憶16、画像処理部18及び入出力処理部20は、バス12によって相互データ通信可能に接続される。
【0020】
マイクロプロセッサ14は、図示しないROMに格納されるオペレーティングシステム、光ディスク36又はハードディスク26から読み出されるプログラム及びデータに基づいて、家庭用ゲーム機11の各部を制御する。主記憶16は、例えばRAMを含んでいる。主記憶16には、光ディスク36又はハードディスク26から読み出されたプログラム及びデータが必要に応じて書き込まれる。主記憶16はマイクロプロセッサ14の作業用メモリとしても用いられる。
【0021】
画像処理部18はVRAMを含んでいる。画像処理部18は、マイクロプロセッサ14から送られる画像データに基づいてVRAM上にゲーム画面を描画する。そして、画像処理部18は、そのゲーム画面をビデオ信号に変換して所定のタイミングでモニタ32に出力する。
【0022】
入出力処理部20は、マイクロプロセッサ14が音声処理部22、光ディスク読み取り部24、ハードディスク26、通信インタフェース28及びコントローラ30にアクセスするためのインタフェースである。入出力処理部20には、音声処理部22、光ディスク読み取り部24、ハードディスク26、通信インタフェース28及びコントローラ30が接続される。
【0023】
音声処理部22はサウンドバッファを含んでいる。サウンドバッファには、光ディスク36又はハードディスク26から読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データが記憶される。音声処理部22は、サウンドバッファに記憶された各種音声データを再生してスピーカ34から出力する。
【0024】
光ディスク読み取り部24はマイクロプロセッサ14からの指示に従って光ディスク36に記録されたプログラムやデータを読み取る。なお、ここではプログラムやデータを家庭用ゲーム機11に供給するために光ディスク36を用いることとするが、ROMカード等、他のあらゆる情報記憶媒体を用いて、プログラムやデータを家庭用ゲーム機11に供給するようにしてもよい。また、例えばインターネット等の通信ネットワークを介して遠隔地からプログラムやデータを家庭用ゲーム機11に供給するようにしてもよい。
【0025】
ハードディスク26は一般的なハードディスク装置(補助記憶装置)である。ハードディスク26にはプログラムやデータが記憶される。例えば、セーブデータ等の各種ゲームデータがハードディスク26に記憶される。通信インタフェース28は、インターネット等の通信ネットワークに家庭用ゲーム機11を有線又は無線接続するためのインタフェースである。
【0026】
コントローラ30は、ユーザが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部20は一定周期毎(例えば1/60秒ごと)にコントローラ30の各部の状態をスキャンする。そして、入出力処理部20はそのスキャン結果を表す操作信号をバス12を介してマイクロプロセッサ14に渡す。マイクロプロセッサ14はその操作信号に基づいてユーザのゲーム操作を判定する。家庭用ゲーム機11には複数のコントローラ30を接続することが可能である。マイクロプロセッサ14は各コントローラ30から入力される操作信号に基づいてゲーム制御を実行する。
【0027】
上記の構成を備えるゲーム装置10では、光ディスク36又はハードディスク26から読み出されたゲームプログラムが実行されることによって、例えばサッカーゲームが実現される。
【0028】
ゲーム装置10の主記憶16には仮想3次元空間が構築される。図2は仮想3次元空間の一例を示している。図2に示すように、仮想3次元空間40にはサッカーの試合会場が形成される。すなわち、仮想3次元空間40には、サッカーのフィールドを表すフィールドオブジェクト42が配置される。フィールドオブジェクト42上には、ゴールを表すゴールオブジェクト44と、サッカー選手を表すキャラクタオブジェクト46と、サッカーボールを表すボールオブジェクト48と、が配置される。なお、図2では省略されているが、仮想3次元空間40には22体のキャラクタオブジェクト46が配置される。また図2ではキャラクタオブジェクト46が簡略化されている。なお、図14に示したように、キャラクタオブジェクト46は複数のポリゴンを含んで構成される。また、キャラクタオブジェクト46には複数のスケルトンが設定される。スケルトンは、関節部分に相当するジョイントと、ジョイント間を接続するボーンと、を含んで構成される。キャラクタオブジェクト46には、例えば図14に示したように、第1ジョイント50、第1ボーン51、第2ジョイント52、第2ボーン53、第3ジョイント54等が設定される。
【0029】
仮想3次元空間40には仮想カメラ49も配置される。この仮想カメラ49から仮想3次元空間40を見た様子を表すゲーム画面がモニタ32に表示される。ユーザはゲーム画面を見ながら、コントローラ30を用いて操作対象のキャラクタオブジェクト46を操作する。
【0030】
以下、キャラクタオブジェクト46の姿勢や顔の表情の変化の表現のリアリティを向上するための技術について説明する。ここでは、キャラクタオブジェクト46が口を大きく開ける様子の表現のリアリティを向上する場合を例として説明する。
【0031】
まず、ゲーム装置10(光ディスク36又はハードディスク26)に記憶されるデータについて説明する。ゲーム装置10には、開口動作モーションデータと、第1ジョイント50の位置補正データと、が記憶される。
【0032】
開口動作モーションデータは、キャラクタオブジェクト46が口を開く際の第1ジョイント50(第1ボーン51)の回転角度(X軸方向を回転軸とする回転角度)の所定時間(例えば1/60秒)ごとの変化を定義したデータである。この開口動作モーションデータが再生されることによって、すなわち、開口動作モーションデータに従って第1ジョイント50の回転角度が変化することによって、キャラクタオブジェクト46が口を開く様子が表される。
【0033】
図3は第1ジョイント50の位置補正データの一例を示している。図3に示すように、第1ジョイント50の位置補正データは、X軸方向を回転軸とした第1ジョイント50の回転角度θ1と、第1ジョイント50のY,Z軸方向の位置補正量M1y,M1z(補正情報)と、を対応づけたデータである。第1ジョイント50の回転角度θ1は、初期状態における第1ジョイント50の回転角度を基準(0)として、第1ジョイント50がX軸方向を回転軸としてA方向にどれだけ回転したかを示す。初期状態とは例えばキャラクタオブジェクト46が完全に口を閉じた状態である。また、位置補正量M1y,M1zは、Y軸又はZ軸正方向の位置補正量(移動距離)を示す場合には正の値となり、Y軸又はZ軸負方向の位置補正量(移動距離)を示す場合には負の値になる。このため、位置補正量M1y,M1zは位置補正方向(移動方向)を示す情報ともいうことができる。なお、先述したように、第1ボーン51は、第1ジョイント50の回転に応じて、第1ジョイント50を回転の中心としてA方向に回転し、また、第1ボーン51は、第1ジョイント50の移動に応じて移動する。このため、図3に示す位置補正データは、第1ボーン51の回転角度と、第1ボーン51のY,Z軸方向の位置補正量と、を対応づけてなる、第1ボーン51の位置補正データともいうことができる。また、第1ジョイント50に直接又は間接的に従属する第1ボーン51、第2ジョイント52、第2ボーン53及び第3ジョイント54は第1ジョイント50の位置変化に応じて移動する。このため、図3に示す位置補正データは、第1ジョイント50の回転角度と、第1ジョイント50に直接又は間接的に従属する第1ボーン51、第2ジョイント52、第2ボーン53及び第3ジョイント54のY,Z軸方向の位置補正情報と、を対応づけてなるデータ(第1ボーン51、第2ジョイント52、第2ボーン53及び第3ジョイント54の位置補正データ)ともいうことができる。また、位置補正データはテーブル形式のデータであってもよいし、数式形式のデータであってもよい。また、位置補正データはテーブル形式のデータと数式形式のデータとを組み合わせた形式のデータであってもよい。
【0034】
次に、ゲーム装置10で実行される処理について説明する。図4は、キャラクタオブジェクト46が口を開く様子を表現する際に所定時間(例えば1/60秒)ごとに実行される処理のうち、本発明に関連するものを主として示すフロー図である。マイクロプロセッサ14は光ディスク36又はハードディスク26に記憶されるプログラムに従って、図4に示す処理を実行する。
【0035】
図4に示すように、マイクロプロセッサ14(スケルトン回転手段)は、開口動作モーションデータに基づいて、第1ジョイント50の回転状態(回転角度θ1)を更新する(S101)。その後、マイクロプロセッサ14(スケルトン位置補正手段)は、位置補正データ(図3参照)に基づいて、第1ジョイント50の現在の回転角度θ1に対応する位置補正量M1y,M1zを取得する(S102)。例えば第1ジョイント50の現在の回転角度θ1が20°である場合、Y軸方向の位置補正量M1yとして、−0.028が取得され、Z軸方向の位置補正量M1zとして、0.696が取得される。
【0036】
その後、マイクロプロセッサ14(スケルトン位置補正手段)は第1ジョイント50の位置を補正する(S103)。具体的には、マイクロプロセッサ14は、「第1ジョイント50の初期位置から、Y軸方向に、S102で取得された位置補正量M1yだけ移動し、かつ、Z軸方向に、S102で取得された位置補正量M1zだけ移動した位置」に第1ジョイント50を移動する。このとき、第1ジョイント50は回転状態(回転角度)を維持したまま移動する。
【0037】
その後、マイクロプロセッサ14は、第1ボーン51と、第2ジョイント52と、第2ボーン53と、第3ジョイント54と、の状態を第1ジョイント50の状態に基づいて更新する(S104)。すなわち、マイクロプロセッサ14は、第1ボーン51や第2ジョイント52の状態(位置や回転角度)を第1ジョイント50の状態(位置や回転角度)に基づいて更新する。そして、マイクロプロセッサ14は、第2ボーン53や第3ジョイント54の状態(位置や回転角度)を第2ジョイント52の状態(位置や回転角度)に基づいて更新する。
【0038】
その後、マイクロプロセッサ14(頂点位置決定手段)は、第1ジョイント50と第1ボーン51と第2ジョイント52と第2ボーン53と第3ジョイント54との状態(位置や回転角度)に基づいて、キャラクタオブジェクト46の頂点の位置を更新する(S105)。例えば、マイクロプロセッサ14は、キャラクタオブジェクト46の頬56のポリゴンの頂点の位置を第2ジョイント52や第2ボーン53の状態に基づいて更新する。また例えば、マイクロプロセッサ14は、キャラクタオブジェクト46の下唇57や顎58のポリゴンの頂点の位置を第3ジョイント54の状態に基づいて更新する。
【0039】
その後、マイクロプロセッサ14及び画像処理部18は、仮想3次元空間40を仮想カメラ49から見た様子を表すゲーム画面をVRAM上に生成する(S106)。VRAM上に生成されたゲーム画面は所与のタイミングでモニタ32に表示出力される。
【0040】
以上のように、ゲーム装置10では第1ジョイント50の回転角度θ1に基づいて第1ジョイント50の位置が補正される。図5は、補正された第1ジョイント50の位置の一例を示す図である。なお、符号50aは第1ジョイント50の初期位置を示している。
【0041】
第1ジョイント50の位置は図3に示す位置補正データに基づいて補正されるため、第1ジョイント50の位置は、図5に示すように、キャラクタオブジェクト46の顔の正面方向(Z軸正方向)に回転角度θ1に応じた距離(M1z)移動するとともに、キャラクタオブジェクト46の顔の下方向(Y軸負方向)に回転角度θ1に応じた距離(M1y)移動する。そして、第1ジョイント50に直接又は間接的に従属する第1ボーン51、第2ジョイント52、第2ボーン53や第3ジョイント54の状態(位置)は、第1ジョイント50の補正後の位置に基づいて決定される。また、キャラクタオブジェクト46の頬56、下唇57や顎58のポリゴンの頂点の位置は、そのようにして決定された第2ジョイント52、第2ボーン53や第3ジョイント54等の状態に基づいて決定される。
【0042】
キャラクタオブジェクト46が口を大きく開ける様子を表現する際に、第1ジョイント50の回転角度θ1が比較的大きくなったとしても、第1ジョイント50の位置が第1ジョイント50の回転角度θ1に応じてZ軸正方向(顔の正面方向)に補正されるため、キャラクタオブジェクト46の顎58は首59にめり込まないようになる。すなわち、第1ジョイント50の回転角度が比較的大きくなっても、キャラクタオブジェクト46の顎58のポリゴンの頂点の位置が不自然にならないようになる。その結果、キャラクタオブジェクト46が大きく口を開ける様子の表現のリアリティが向上される。
【0043】
以上説明したように、ゲーム装置10によれば、ジョイントやボーンの回転角度が比較的大きくなっても、キャラクタオブジェクト46を構成するポリゴンの頂点の位置が不自然にならないように図ることが可能になる。すなわち、キャラクタオブジェクト46の姿勢や顔の表情の変化の表現のリアリティの向上を図ることが可能になる。
【0044】
なお、第1ジョイント50の回転角度が比較的大きくなっても、キャラクタオブジェクト46の顎58のポリゴンの頂点の位置が不自然にならないように図るための方法としては、次のような方法も考えられる。すなわち、開口動作モーションデータとして、第1ジョイント50の回転角度θ1の所定時間ごとの変化を定義したデータととともに、第1ジョイント50の位置の所定時間ごとの変化を定義したデータをあらかじめ用意しておく。そして、これらのデータに従って第1ジョイント50の回転角度及び位置を変化させることによって、キャラクタオブジェクト46が口を開く様子を表す。
【0045】
しかしながら、この方法を採用した場合にはモーションデータのデータ量が増大してしまう。また、この方法を採用した場合、第1ジョイント50の位置の所定時間ごとの変化を定義したデータも用意しなければならなくなるため、ゲーム開発時におけるデータ作成の作業量も増大してしまう。この点、本実施の形態によれば、図3に示すような比較的簡易な位置補正データを用意すれば足りるため、データ量や作業量の増大の軽減を図ることが可能になる。
【0046】
ところで、本発明は、キャラクタオブジェクト46が口を大きく開ける様子を表現する場合以外にも適用することができる。本発明は、例えば図6に示すように、キャラクタオブジェクト46が口(唇)を横に引く様子を表現する場合にも用いることができる。以下、キャラクタオブジェクト46が口を横に引く様子を表現する場合について説明する。
【0047】
まず、キャラクタオブジェクト46に設定されるスケルトンについて説明する。図7は、キャラクタオブジェクト46が口を横に引く様子を表現するためのスケルトンの一例を示している。なお図7では、第4ジョイント60と第5ジョイント62とが同じ位置に重ねて設定されている。また図7では、第4ジョイント60及び第5ジョイント62がキャラクタオブジェクト46の顔の表面に表されているが、実際には、第4ジョイント60及び第5ジョイント62はキャラクタオブジェクト46の内部に設定される。すなわち、第4ジョイント60及び第5ジョイント62は、顔の表面からZ軸の負方向にあり、図5の第2ジョイント52と同程度の位置にある。つまり、顔の表面から第4ジョイント60及び第5ジョイント62までの距離(深さ)は図5の第2ジョイント52と同程度になっている。第4ジョイント60には、キャラクタオブジェクト46の唇の左側部分64のポリゴンの頂点が関連づけられている。第5ジョイント62には、キャラクタオブジェクト46の唇の右側部分66のポリゴンの頂点が関連づけられている。キャラクタオブジェクト46が口を横に引く様子を表現する際には、第4ジョイント60がY軸方向を回転軸としてD方向に回転し、かつ、第5ジョイント62がY軸方向を回転軸としてE方向に回転する。なお、第4ジョイント60及び第5ジョイント62はキャラクタオブジェクト46が口(唇)を突き出す様子を表現するためにも用いられる。キャラクタオブジェクト46が唇を突き出す様子を表現する際には、第4ジョイント60がY軸方向を回転軸としてE方向に回転し、かつ、第5ジョイント62がY軸方向を回転軸としてD方向に回転する。
【0048】
次に、ゲーム装置10(光ディスク36又はハードディスク26)に記憶されるデータについて説明する。ゲーム装置10には、口を横に引く動作のモーションデータと、第4ジョイント60の位置補正データと、第5ジョイント62の位置補正データと、が記憶される。
【0049】
口を横に引く動作のモーションデータは、キャラクタオブジェクト46が口を横に引く際の第4ジョイント60及び第5ジョイント62の回転角度(Y軸方向を回転軸とした回転角度)の所定時間(例えば1/60秒)ごとの変化を定義したデータである。
【0050】
図8は第4ジョイント60の位置補正データの一例を示している。図8に示すように、第4ジョイント60の位置補正データは、Y軸方向を回転軸とした第4ジョイント60の回転角度θ4と、第4ジョイント60のX軸方向の位置補正量M4(補正情報)と、を対応づけたデータである。第4ジョイント60の回転角度θ4は、初期状態における第4ジョイント60の回転角度を基準(0)として、第4ジョイント60がY軸方向を回転軸としてどれだけ回転しているかを示す。ここでの初期状態とは、例えばキャラクタオブジェクト46が唇を横に引いておらず、かつ、唇を突き出してもいない状態である。第4ジョイント60がY軸方向を回転軸としてD方向に回転している状態では、第4ジョイント60の回転角度θ4は正の値になる。一方、第4ジョイント60がY軸方向を回転軸としてE方向に回転している状態では、第4ジョイント60の回転角度θ4は負の値になる。
【0051】
図9は第5ジョイント62の位置補正データの一例を示している。図9に示すように、第5ジョイント62の位置補正データは、Y軸方向を回転軸とした第5ジョイント62の回転角度θ5と、第5ジョイント62のX軸方向への位置補正量M5(補正情報)と、を対応づけたデータである。第5ジョイント62の回転角度θ5は、初期状態における第5ジョイント62の回転角度を基準(0)として、第5ジョイント62がY軸方向を回転軸としてどれだけ回転しているかを示す。第5ジョイント62がY軸方向を回転軸としてE方向に回転している状態では、第5ジョイント62の回転角度θ5は正の値になる。一方、第5ジョイント62がY軸方向を回転軸としてD方向に回転している状態では、第5ジョイント62の回転角度θ5は負の値になる。
【0052】
位置補正量M4,M5はX軸正方向への位置補正量(移動距離)を示す場合には正の値となり、X軸負方向への位置補正量(移動距離)を示す場合には負の値になる。このため、位置補正量M4,M5は位置補正方向(移動方向)を示す情報ともいうことができる。なお図8及び図9において、θ1は、X軸方向を回転軸とした第1ジョイント50の回転角度を示している。すなわち図7及び図8におけるθ1は図3におけるθ1と同じである。
【0053】
次に、キャラクタオブジェクト46が口を横に引く様子を表現するために実行される処理について説明する。図10は、キャラクタオブジェクト46が口を横に引く様子を表現する際に所定時間(例えば1/60秒)ごとに実行される処理のうち、本発明に関連するものを主として示すフロー図である。マイクロプロセッサ14は光ディスク36又はハードディスク26に記憶されるプログラムに従って、図10に示す処理を実行する。
【0054】
図10に示すように、マイクロプロセッサ14(ボーン回転手段)は、口を横に引く動作のモーションデータに基づいて、第4ジョイント60の回転状態(回転角度θ4)と、第5ジョイント62の回転状態(回転角度θ5)と、を更新する(S201)。また、マイクロプロセッサ14は、第1ジョイント50の現在の回転状態(回転角度θ1)を取得する(S202)。
【0055】
その後、マイクロプロセッサ14(スケルトン位置補正手段)は、第4ジョイント60及び第5ジョイント62のX軸方向への位置補正量を取得する(S203)。すなわち、マイクロプロセッサ14は、第4ジョイント60の現在の回転角度θ4に対応する位置補正量M4を、位置補正データ(図8参照)と、第1ジョイント50の現在の回転角度θ1と、に基づいて取得する。例えば、θ4が10°であり、θ1が5°である場合、X軸方向の位置補正量M4として、0.285(=(10*0.04)−(5*0.023))が取得される。また、マイクロプロセッサ14は、第5ジョイント62の現在の回転角度θ5に対応する位置補正量M5を、位置補正データ(図9参照)と、第1ジョイント50の現在の回転角度θ1と、に基づいて取得する。例えば、θ5が10°であり、θ1が5°である場合、X軸方向の移動量M5として、−0.285(=(5*0.023)−(10*0.04))が取得される。
【0056】
その後、マイクロプロセッサ14(スケルトン位置補正手段)は第4ジョイント60及び第5ジョイント62の位置を補正する(S204)。すなわち、マイクロプロセッサ14は「第4ジョイント60の初期位置から、X軸方向に、S203で取得された位置補正量M4だけ移動した位置」に第4ジョイント60を移動する。またマイクロプロセッサ14は「第5ジョイント62の初期位置から、X軸方向に、S204で取得された位置補正量M5だけ移動した位置」に第5ジョイント62を移動する。このとき、第4ジョイント60及び第5ジョイント62は回転状態(回転角度)を維持したまま移動する。
【0057】
その後、マイクロプロセッサ14(頂点位置決定手段)は、第4ジョイント60と第5ジョイント62との状態(位置や回転角度)に基づいて、キャラクタオブジェクト46の頂点の位置を更新する(S205)。例えば、マイクロプロセッサ14は、キャラクタオブジェクト46の唇の左側部分64のポリゴンの頂点の位置を第4ジョイント60の状態に基づいて更新する。また例えば、マイクロプロセッサ14は、キャラクタオブジェクト46の唇の右側部分66のポリゴンの頂点の位置を第5ジョイント62の状態に基づいて更新する。
【0058】
その後、マイクロプロセッサ14及び画像処理部18は、仮想3次元空間40を仮想カメラ49から見た様子を表すゲーム画面をVRAM上に生成する(S206)。VRAM上に生成されたゲーム画面は所与のタイミングでモニタ32に表示出力される。
【0059】
以上のように、この場合、第4ジョイント60の回転角度θ4に基づいて第4ジョイント60の位置が補正され、第5ジョイント62の回転角度θ5に基づいて第5ジョイント62の位置が補正される。図11は、補正された第4ジョイント60、第5ジョイント62の位置の一例を示す図である。なお、符号60a,62aは第4ジョイント60、第5ジョイント62の初期位置を示している。
【0060】
第4ジョイント60の位置は図8に示す位置補正データに基づいて補正されるため、例えば、θ1が5°であり、θ4及びθ5がともに10°である場合、第4ジョイント60の位置は、図11に示すように、キャラクタオブジェクト46の顔の左方向(X軸正方向)に回転角度θ4に応じた距離(M4)移動する。そして、キャラクタオブジェクト46の唇の左側部分64のポリゴンの頂点の位置は、補正された第4ジョイント60の状態に基づいて決定される。すなわち、キャラクタオブジェクト46の唇の左側部分64のポリゴンの頂点は顔の左方向に移動するようになる。
【0061】
また、第5ジョイント62の位置は図9に示す位置補正データに基づいて補正されるため、例えば、θ1が5°であり、θ4及びθ5がともに10°である場合、第5ジョイント62の位置は、図11に示すように、キャラクタオブジェクト46の顔の右方向(X軸負方向)に回転角度θ5に応じた距離(M5)移動する。そして、キャラクタオブジェクト46の唇の右側部分66のポリゴンの頂点の位置は、補正された第5ジョイント62の状態に基づいて決定される。すなわち、キャラクタオブジェクト46の唇の右側部分66のポリゴンの頂点は顔の右方向に移動するようになる。
【0062】
キャラクタオブジェクト46が口を横に引く様子を、第4ジョイント60や第5ジョイント62の回転(Y軸方向を回転軸とする回転)のみによって表現する場合、キャラクタオブジェクト46の唇のポリゴンの頂点が左右方向(X軸方向)にあまり移動しないため、キャラクタオブジェクト46が口を横に引く様子の表現のリアリティは高くはならない。この点、本実施の形態によれば、第4ジョイント60や第5ジョイント62が移動しない場合に比べて、キャラクタオブジェクト46の唇の左側部分64のポリゴンの頂点は顔の左方向に移動し、キャラクタオブジェクト46の唇の右側部分64のポリゴンの頂点が顔の右方向に移動するようになるため、キャラクタオブジェクト46が口を横に引く様子の表現のリアリティが向上される。
【0063】
なお、図8及び図9に示す位置補正データによれば、第4ジョイント60又は第5ジョイント62のX軸方向への位置補正量(M4又はM5)が第1ジョイント50の回転角度θ1にも基づいて決定されるようになっている。人間が特別な表情をつくる意図を持たずに口を開く(顎関節を動かす)場合、口の両端の肉は下顎に引っ張られることによって中央に移動する傾向があることが知られている。この点、本実施の形態によれば、このような傾向を考慮しつつ、第4ジョイント60又は第5ジョイント62の位置を補正することが可能になる。その結果として、キャラクタオブジェクト46が唇を横に引く様子の表現のリアリティをより向上できるようになる。
【0064】
また、第4ジョイント60又は第5ジョイント62の回転角度(θ4又はθ5)が0未満になる場合とは、キャラクタオブジェクト46に口(唇)を突き出させるために、第4ジョイント60がY軸方向を回転軸としてE方向に回転し、第5ジョイント62がY軸方向を回転軸としてD方向に回転した場合である。図8及び図9に示す位置補正データによれば、そのような場合、第4ジョイント60又は第5ジョイント62のX軸方向への位置補正量(M4又はM5)が、第1ジョイント50の回転角度θ1に基づいて決定されるようになっている。このため、本実施の形態によれば、上述の人間の口の両端の肉の動きの傾向を考慮しつつ、キャラクタオブジェクト46が口を突き出す様子を表現できるようになる。その結果として、キャラクタオブジェクト46が口を突き出す様子の表現のリアリティを向上できるようになる。
【0065】
本発明は以上に説明した実施の形態に限定されるものではない。
【0066】
例えば、ゲーム装置10で実行されるゲームはサッカーゲーム以外のゲームであってもよい。また、本発明はゲーム装置10以外の画像処理装置にも用いることができる。
【0067】
また例えば、以上の説明では、プログラムを情報記憶媒体たる光ディスク36から家庭用ゲーム機11に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図12は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図12に基づいて本発明に係るプログラム配信方法を説明する。図12に示すように、このプログラム配信システム100は、ゲームデータベース102、サーバ104、通信ネットワーク106、パソコン108、家庭用ゲーム機110、PDA(携帯情報端末)112を含んでいる。このうち、ゲームデータベース102とサーバ104とによりプログラム配信装置114が構成される。通信ネットワーク106は、例えばインターネットやケーブルテレビネットワークを含んでいる。このシステムでは、ゲームデータベース(情報記憶媒体)102に、光ディスク36の記憶内容と同様のプログラムが記憶されている。そして、パソコン108、家庭用ゲーム機110又はPDA112等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク106を介してサーバ104に伝えられる。そして、サーバ104はゲーム配信要求に応じてゲームデータベース102からプログラムを読み出し、それをパソコン108、家庭用ゲーム機110、PDA112等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ104から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信(一括配信)する必要はなく、ゲームの局面に応じて必要な部分を配信(分割配信)するようにしてもよい。このように通信ネットワーク106を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【0068】
【図1】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図2】仮想3次元空間の一例を示す図である。
【図3】第1ジョイントの位置補正データの一例を示す図である。
【図4】ゲーム装置で実行される処理を示すフロー図である。
【図5】第1ジョイントの補正位置の一例を示す図である。
【図6】キャラクタオブジェクトが口を横に引く様子を表す図である。
【図7】キャラクタオブジェクトが口を横に引く様子を表現するために設定されるスケルトンの一例を示す図である。
【図8】第4ジョイントの位置補正データの一例を示す図である。
【図9】第5ジョイントの位置補正データの一例を示す図である。
【図10】ゲーム装置で実行される処理を示すフロー図である。
【図11】第4ジョイント及び第5ジョイントの補正位置の一例を示す図である。
【図12】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【図13】キャラクタオブジェクトが口を大きく開ける様子を表す図である。
【図14】キャラクタオブジェクトが口を大きく開ける様子を表現するために設定されるスケルトンの一例を示す図である。
【符号の説明】
【0069】
10 ゲーム装置、11,110 家庭用ゲーム機、12 バス、14 マイクロプロセッサ、16 主記憶、18 画像処理部、20 入出力処理部、22 音声処理部、24 光ディスク読み取り部、26 ハードディスク、28 通信インタフェース、30 コントローラ、32 モニタ、34 スピーカ、36 光ディスク、40 仮想3次元空間、42 フィールドオブジェクト、44 ゴールオブジェクト、46 キャラクタオブジェクト、48 ボールオブジェクト、49 仮想カメラ、50 第1ジョイント、50a 第1ジョイントの初期位置、51 第1ボーン、52 第2ジョイント、53 第2ボーン、54 第3ジョイント、56 頬、57 下唇、58 顎、59 首、60 第4ジョイント、60a 第4ジョイントの初期位置、62 第5ジョイント、62a 第5ジョイントの初期位置、64 唇の左側部分、66 唇の右側部分、100 プログラム配信システム、102 ゲームデータベース、104 サーバ、106 通信ネットワーク、108 パソコン、112 携帯情報端末(PDA)、114 プログラム配信装置。

【特許請求の範囲】
【請求項1】
キャラクタオブジェクトが配置された仮想3次元空間の様子を表す画像を表示する画像処理装置において、
前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転手段と、
前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正手段と、
前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定手段と、
を含むことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記スケルトン位置補正手段は、回転角度と、前記スケルトンの位置補正の基礎となる補正情報と、を対応づけてなる位置補正データを記憶する手段を含み、前記スケルトンの回転角度に対応する前記補正情報に基づいて、該スケルトンの位置を補正することを特徴とする画像処理装置。
【請求項3】
請求項2に記載の画像処理装置において、
前記補正情報は、所定方向への前記スケルトンの移動距離を示す情報であり、
前記スケルトン位置補正手段は、前記スケルトンを、該スケルトンの回転角度に対応する前記補正情報が示す移動距離だけ、前記所定方向に移動させる、
ことを特徴とする画像処理装置。
【請求項4】
キャラクタオブジェクトが配置された仮想3次元空間の様子を表す画像を表示する画像処理方法において、
前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転ステップと、
前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正ステップと、
前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定ステップと、
を含むことを特徴とする画像処理方法。
【請求項5】
キャラクタオブジェクトが配置された仮想3次元空間の様子を表す画像を表示する画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転手段、
前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正手段、及び、
前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定手段、
として前記コンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2008−305066(P2008−305066A)
【公開日】平成20年12月18日(2008.12.18)
【国際特許分類】
【出願番号】特願2007−150333(P2007−150333)
【出願日】平成19年6月6日(2007.6.6)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】