(57)【要約】【課題】キャラクタオブジェクトの姿勢や顔の表情の変化の表現のリアリティの向上を図ることが可能になる画像処理装置を提供すること。【解決手段】本発明は、キャラクタオブジェクトが配置された仮想３次元空間の様子を表す画像を表示する画像処理装置に関するものである。本発明では、キャラクタオブジェクトに設定されるスケルトンが回転される（Ｓ１０１）。また、スケルトンの回転角度に基づいて、該スケルトンの位置が補正される（Ｓ１０２及びＳ１０３）。そして、スケルトンの回転角度及び位置に基づいて、キャラクタオブジェクトを構成するポリゴンの頂点の位置が決定される（Ｓ１０４及びＳ１０５）。【選択図】図４
2008305066.tif 000002
【特許請求の範囲】
【請求項１】
キャラクタオブジェクトが配置された仮想３次元空間の様子を表す画像を表示する画像処理装置において、
前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転手段と、
前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正手段と、
前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記スケルトン位置補正手段は、回転角度と、前記スケルトンの位置補正の基礎となる補正情報と、を対応づけてなる位置補正データを記憶する手段を含み、前記スケルトンの回転角度に対応する前記補正情報に基づいて、該スケルトンの位置を補正することを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記補正情報は、所定方向への前記スケルトンの移動距離を示す情報であり、
前記スケルトン位置補正手段は、前記スケルトンを、該スケルトンの回転角度に対応する前記補正情報が示す移動距離だけ、前記所定方向に移動させる、
ことを特徴とする画像処理装置。
【請求項４】
キャラクタオブジェクトが配置された仮想３次元空間の様子を表す画像を表示する画像処理方法において、
前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転ステップと、
前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正ステップと、
前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定ステップと、
を含むことを特徴とする画像処理方法。
【請求項５】
キャラクタオブジェクトが配置された仮想３次元空間の様子を表す画像を表示する画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転手段、
前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正手段、及び、
前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定手段、
として前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
キャラクタオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表す画像を表示する画像処理装置が知られている。例えば、サッカー選手を表すキャラクタオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表す画像を表示することによって、サッカーゲームを実現するゲーム装置（画像処理装置）が知られている。
【０００３】
上記のような画像処理装置では、キャラクタオブジェクトの姿勢や顔の表情が変化する様子を表現するために、キャラクタオブジェクトに複数のスケルトンが設定される。スケルトンは、関節部分に相当するジョイントと、ジョイント間を接続するボーンと、を含んで構成される。各ジョイントやボーンには、キャラクタオブジェクトを構成するポリゴンの頂点の少なくとも一部が関連づけられる。ジョイントやボーンの状態（回転角度や位置）が変化した場合、そのジョイントやボーンに関連づけられた頂点がそのジョイントやボーンの状態変化に基づいて移動する。すなわち、キャラクタオブジェクトの姿勢や顔の表情が変化する。こうして、キャラクタオブジェクトの姿勢や顔の表情が変化する様子が表現される。
【０００４】
図１３はキャラクタオブジェクトの顔の表情の一例を示している。図１３では、キャラクタオブジェクト４６が口を大きく開いている。図１４は、キャラクタオブジェクト４６が口を開閉する様子を表現するためにキャラクタオブジェクト４６の顔に設定されるスケルトンの一例を示している。図１４に示す例では、複数のポリゴンを含んで構成されるキャラクタオブジェクト４６に対して、第１ジョイント５０、第１ボーン５１、第２ジョイント５２、第２ボーン５３、第３ジョイント５４が設定されている。第１ボーン５１は第１ジョイント５０と第２ジョイント５２との間を接続している。第２ボーン５３は第２ジョイント５２と第３ジョイント５４との間を接続している。第２ジョイント５２及び第２ボーン５３は第１ジョイント５０及び第１ボーン５１に従属しており、第２ジョイント５２及び第２ボーン５３は第１ジョイント５０及び第１ボーン５１に従動する。すなわち、第２ジョイント５２及び第２ボーン５３の状態（位置や回転角度）は第１ジョイント５０及び第１ボーン５１の状態（位置や回転角度）に応じて変化する。また、第２ジョイント５２及び第２ボーン５３には、例えばキャラクタオブジェクト４６の頬５６のポリゴンの頂点が関連づけられている。それらの頂点の位置は第２ジョイント５２及び第２ボーン５３の状態（位置や回転角度）に応じて変化する。また、第３ジョイント５４は第２ジョイント５２及び第２ボーン５３に従属しており、第３ジョイント５４は第２ジョイント５２及び第２ボーン５３に従動する。すなわち、第３ジョイント５４の状態（位置や回転角度）は第２ジョイント５２及び第２ボーン５３の状態（位置や回転角度）に応じて変化する。第３ジョイント５４には、例えばキャラクタオブジェクト４６の下唇５７や顎５８のポリゴンの頂点が関連づけられている。それらの頂点の位置は第３ジョイント５４の状態（位置や回転角度）に応じて変化する。
【０００５】
キャラクタオブジェクト４６が口を開く様子を表す場合には、第１ジョイント５０がＸ軸方向を回転軸としてＡ方向に回転する。このとき、第１ボーン５１は、第１ジョイント５０の回転に応じて、第１ジョイント５０を回転の中心としてＡ方向に回転する。また、第２ジョイント５２の位置は第１ジョイント５０の回転（第１ボーン５１の回転）に応じてＢ方向に移動する。また、第２ボーン５３や第３ジョイント５４の位置は第２ジョイント５２の位置変化（第１ジョイント５０の回転）に応じてＣ方向に移動する。そして、キャラクタオブジェクト４６の頬５６、下唇５７や顎５８のポリゴンの頂点の位置が、第２ジョイント５２、第２ボーン５３や第３ジョイント５４の位置変化に応じて変化する。その結果として、キャラクタオブジェクト４６が口を開く様子が表される。なお、キャラクタオブジェクト４６が口を閉じる様子を表す場合には、第１ジョイント５０がＸ軸方向を回転軸としてＡ方向とは逆方向に回転する。
【０００６】
【特許文献１】特開２００３−１３２３６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のような画像処理装置では、例えばジョイントやボーンの回転角度が比較的大きくなった場合に、キャラクタオブジェクトを構成するポリゴンの頂点の位置が不自然になってしまう場合がある。その結果、キャラクタオブジェクトの姿勢や顔の表情の変化の表現のリアリティが損なわれてしまう場合がある。例えば、図１４に示した例において、キャラクタオブジェクト４６が口を大きく開く様子を表現するために、第１ジョイント５０（第１ボーン５１）の回転角度（Ｘ軸方向を回転軸とした回転角度）を比較的大きくした場合、第２ジョイント５２、第２ボーン５３や第３ジョイント５４の移動量も大きくなるため、キャラクタオブジェクト４６の顎５８が首５９にめり込んでしまう場合がある。
【０００８】
本発明は上記課題に鑑みてなされたものであって、その目的は、キャラクタオブジェクトの姿勢や顔の表情の変化の表現のリアリティの向上を図ることが可能になる画像処理装置、画像処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係る画像処理装置は、キャラクタオブジェクトが配置された仮想３次元空間の様子を表す画像を表示する画像処理装置において、前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転手段と、前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正手段と、前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定手段と、を含むことを特徴とする。
【００１０】
また、本発明に係る画像処理方法は、キャラクタオブジェクトが配置された仮想３次元空間の様子を表す画像を表示する画像処理方法において、前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転ステップと、前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正ステップと、前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定ステップと、を含むことを特徴とする。
【００１１】
また、本発明に係るプログラムは、キャラクタオブジェクトが配置された仮想３次元空間の様子を表す画像を表示する画像処理装置として、家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記キャラクタオブジェクトに設定されるスケルトンを回転させるスケルトン回転手段、前記スケルトンの回転角度に基づいて、該スケルトンの位置を補正するスケルトン位置補正手段、及び、前記スケルトンの回転角度及び位置に基づいて、前記キャラクタオブジェクトを構成するポリゴンの頂点の位置を決定する頂点位置決定手段、として前記コンピュータを機能させるためのプログラムである。
【００１２】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【００１３】
本発明はキャラクタオブジェクトが配置された仮想３次元空間の様子を表す画像を表示する画像処理装置に関するものである。本発明では、キャラクタオブジェクトに設定されるスケルトンが回転する。また、スケルトンの回転角度に基づいて、該スケルトンの位置が補正される。そして、スケルトンの回転角度及び位置に基づいて、キャラクタオブジェクトを構成するポリゴンの頂点の位置が決定される。本発明によれば、キャラクタオブジェクトの姿勢や顔の表情の変化の表現のリアリティの向上を図ることが可能になる。
【００１４】
また、本発明の一態様では、前記スケルトン位置補正手段は、回転角度と、前記スケルトンの位置補正の基礎となる補正情報と、を対応づけてなる位置補正データを記憶する手段を含み、前記スケルトンの回転角度に対応する前記補正情報に基づいて、該スケルトンの位置を補正するようにしてもよい。
【００１５】
この態様では、前記補正情報は、所定方向への前記スケルトンの移動距離を示す情報であってもよい。前記スケルトン位置補正手段は、前記スケルトンを、該スケルトンの回転角度に対応する前記補正情報が示す移動距離だけ、前記所定方向に移動させるようにしてもよい。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。ここでは、画像処理装置の一態様であるゲーム装置に本発明を適用した例について説明する。ゲーム装置は、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）又はパーソナルコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【００１７】
図１は、本発明の実施形態に係るゲーム装置の全体構成を示す図である。図１に示すゲーム装置１０は、家庭用ゲーム機１１、モニタ３２、スピーカ３４、光ディスク３６を含んでいる。モニタ３２及びスピーカ３４は家庭用ゲーム機１１に接続される。モニタ３２としては例えば家庭用テレビ受像機が用いられる。スピーカ３４としては例えば家庭用テレビ受像機に内蔵されたスピーカが用いられる。光ディスク３６は情報記憶媒体であり、家庭用ゲーム機１１に装着される。
【００１８】
家庭用ゲーム機１１は公知のコンピュータゲームシステムである。家庭用ゲーム機１１は、バス１２、マイクロプロセッサ１４、主記憶１６、画像処理部１８、入出力処理部２０、音声処理部２２、光ディスク読み取り部２４、ハードディスク２６、通信インタフェース２８及びコントローラ３０を含んでいる。コントローラ３０以外の構成要素は家庭用ゲーム機１１の筐体内に収容される。
【００１９】
バス１２はアドレス及びデータを家庭用ゲーム機１１の各部でやり取りするためのものである。マイクロプロセッサ１４、主記憶１６、画像処理部１８及び入出力処理部２０は、バス１２によって相互データ通信可能に接続される。
【００２０】
マイクロプロセッサ１４は、図示しないＲＯＭに格納されるオペレーティングシステム、光ディスク３６又はハードディスク２６から読み出されるプログラム及びデータに基づいて、家庭用ゲーム機１１の各部を制御する。主記憶１６は、例えばＲＡＭを含んでいる。主記憶１６には、光ディスク３６又はハードディスク２６から読み出されたプログラム及びデータが必要に応じて書き込まれる。主記憶１６はマイクロプロセッサ１４の作業用メモリとしても用いられる。
【００２１】
画像処理部１８はＶＲＡＭを含んでいる。画像処理部１８は、マイクロプロセッサ１４から送られる画像データに基づいてＶＲＡＭ上にゲーム画面を描画する。そして、画像処理部１８は、そのゲーム画面をビデオ信号に変換して所定のタイミングでモニタ３２に出力する。
【００２２】
入出力処理部２０は、マイクロプロセッサ１４が音声処理部２２、光ディスク読み取り部２４、ハードディスク２６、通信インタフェース２８及びコントローラ３０にアクセスするためのインタフェースである。入出力処理部２０には、音声処理部２２、光ディスク読み取り部２４、ハードディスク２６、通信インタフェース２８及びコントローラ３０が接続される。
【００２３】
音声処理部２２はサウンドバッファを含んでいる。サウンドバッファには、光ディスク３６又はハードディスク２６から読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データが記憶される。音声処理部２２は、サウンドバッファに記憶された各種音声データを再生してスピーカ３４から出力する。
【００２４】
光ディスク読み取り部２４はマイクロプロセッサ１４からの指示に従って光ディスク３６に記録されたプログラムやデータを読み取る。なお、ここではプログラムやデータを家庭用ゲーム機１１に供給するために光ディスク３６を用いることとするが、ＲＯＭカード等、他のあらゆる情報記憶媒体を用いて、プログラムやデータを家庭用ゲーム機１１に供給するようにしてもよい。また、例えばインターネット等の通信ネットワークを介して遠隔地からプログラムやデータを家庭用ゲーム機１１に供給するようにしてもよい。
【００２５】
ハードディスク２６は一般的なハードディスク装置（補助記憶装置）である。ハードディスク２６にはプログラムやデータが記憶される。例えば、セーブデータ等の各種ゲームデータがハードディスク２６に記憶される。通信インタフェース２８は、インターネット等の通信ネットワークに家庭用ゲーム機１１を有線又は無線接続するためのインタフェースである。
【００２６】
コントローラ３０は、ユーザが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部２０は一定周期毎（例えば１／６０秒ごと）にコントローラ３０の各部の状態をスキャンする。そして、入出力処理部２０はそのスキャン結果を表す操作信号をバス１２を介してマイクロプロセッサ１４に渡す。マイクロプロセッサ１４はその操作信号に基づいてユーザのゲーム操作を判定する。家庭用ゲーム機１１には複数のコントローラ３０を接続することが可能である。マイクロプロセッサ１４は各コントローラ３０から入力される操作信号に基づいてゲーム制御を実行する。
【００２７】
上記の構成を備えるゲーム装置１０では、光ディスク３６又はハードディスク２６から読み出されたゲームプログラムが実行されることによって、例えばサッカーゲームが実現される。
【００２８】
ゲーム装置１０の主記憶１６には仮想３次元空間が構築される。図２は仮想３次元空間の一例を示している。図２に示すように、仮想３次元空間４０にはサッカーの試合会場が形成される。すなわち、仮想３次元空間４０には、サッカーのフィールドを表すフィールドオブジェクト４２が配置される。フィールドオブジェクト４２上には、ゴールを表すゴールオブジェクト４４と、サッカー選手を表すキャラクタオブジェクト４６と、サッカーボールを表すボールオブジェクト４８と、が配置される。なお、図２では省略されているが、仮想３次元空間４０には２２体のキャラクタオブジェクト４６が配置される。また図２ではキャラクタオブジェクト４６が簡略化されている。なお、図１４に示したように、キャラクタオブジェクト４６は複数のポリゴンを含んで構成される。また、キャラクタオブジェクト４６には複数のスケルトンが設定される。スケルトンは、関節部分に相当するジョイントと、ジョイント間を接続するボーンと、を含んで構成される。キャラクタオブジェクト４６には、例えば図１４に示したように、第１ジョイント５０、第１ボーン５１、第２ジョイント５２、第２ボーン５３、第３ジョイント５４等が設定される。
【００２９】
仮想３次元空間４０には仮想カメラ４９も配置される。この仮想カメラ４９から仮想３次元空間４０を見た様子を表すゲーム画面がモニタ３２に表示される。ユーザはゲーム画面を見ながら、コントローラ３０を用いて操作対象のキャラクタオブジェクト４６を操作する。
【００３０】
以下、キャラクタオブジェクト４６の姿勢や顔の表情の変化の表現のリアリティを向上するための技術について説明する。ここでは、キャラクタオブジェクト４６が口を大きく開ける様子の表現のリアリティを向上する場合を例として説明する。
【００３１】
まず、ゲーム装置１０（光ディスク３６又はハードディスク２６）に記憶されるデータについて説明する。ゲーム装置１０には、開口動作モーションデータと、第１ジョイント５０の位置補正データと、が記憶される。
【００３２】
開口動作モーションデータは、キャラクタオブジェクト４６が口を開く際の第１ジョイント５０（第１ボーン５１）の回転角度（Ｘ軸方向を回転軸とする回転角度）の所定時間（例えば１／６０秒）ごとの変化を定義したデータである。この開口動作モーションデータが再生されることによって、すなわち、開口動作モーションデータに従って第１ジョイント５０の回転角度が変化することによって、キャラクタオブジェクト４６が口を開く様子が表される。
【００３３】
図３は第１ジョイント５０の位置補正データの一例を示している。図３に示すように、第１ジョイント５０の位置補正データは、Ｘ軸方向を回転軸とした第１ジョイント５０の回転角度θ１と、第１ジョイント５０のＹ，Ｚ軸方向の位置補正量Ｍ１ｙ，Ｍ１ｚ（補正情報）と、を対応づけたデータである。第１ジョイント５０の回転角度θ１は、初期状態における第１ジョイント５０の回転角度を基準（０）として、第１ジョイント５０がＸ軸方向を回転軸としてＡ方向にどれだけ回転したかを示す。初期状態とは例えばキャラクタオブジェクト４６が完全に口を閉じた状態である。また、位置補正量Ｍ１ｙ，Ｍ１ｚは、Ｙ軸又はＺ軸正方向の位置補正量（移動距離）を示す場合には正の値となり、Ｙ軸又はＺ軸負方向の位置補正量（移動距離）を示す場合には負の値になる。このため、位置補正量Ｍ１ｙ，Ｍ１ｚは位置補正方向（移動方向）を示す情報ともいうことができる。なお、先述したように、第１ボーン５１は、第１ジョイント５０の回転に応じて、第１ジョイント５０を回転の中心としてＡ方向に回転し、また、第１ボーン５１は、第１ジョイント５０の移動に応じて移動する。このため、図３に示す位置補正データは、第１ボーン５１の回転角度と、第１ボーン５１のＹ，Ｚ軸方向の位置補正量と、を対応づけてなる、第１ボーン５１の位置補正データともいうことができる。また、第１ジョイント５０に直接又は間接的に従属する第１ボーン５１、第２ジョイント５２、第２ボーン５３及び第３ジョイント５４は第１ジョイント５０の位置変化に応じて移動する。このため、図３に示す位置補正データは、第１ジョイント５０の回転角度と、第１ジョイント５０に直接又は間接的に従属する第１ボーン５１、第２ジョイント５２、第２ボーン５３及び第３ジョイント５４のＹ，Ｚ軸方向の位置補正情報と、を対応づけてなるデータ（第１ボーン５１、第２ジョイント５２、第２ボーン５３及び第３ジョイント５４の位置補正データ）ともいうことができる。また、位置補正データはテーブル形式のデータであってもよいし、数式形式のデータであってもよい。また、位置補正データはテーブル形式のデータと数式形式のデータとを組み合わせた形式のデータであってもよい。
【００３４】
次に、ゲーム装置１０で実行される処理について説明する。図４は、キャラクタオブジェクト４６が口を開く様子を表現する際に所定時間（例えば１／６０秒）ごとに実行される処理のうち、本発明に関連するものを主として示すフロー図である。マイクロプロセッサ１４は光ディスク３６又はハードディスク２６に記憶されるプログラムに従って、図４に示す処理を実行する。
【００３５】
図４に示すように、マイクロプロセッサ１４（スケルトン回転手段）は、開口動作モーションデータに基づいて、第１ジョイント５０の回転状態（回転角度θ１）を更新する（Ｓ１０１）。その後、マイクロプロセッサ１４（スケルトン位置補正手段）は、位置補正データ（図３参照）に基づいて、第１ジョイント５０の現在の回転角度θ１に対応する位置補正量Ｍ１ｙ，Ｍ１ｚを取得する（Ｓ１０２）。例えば第１ジョイント５０の現在の回転角度θ１が２０°である場合、Ｙ軸方向の位置補正量Ｍ１ｙとして、−０．０２８が取得され、Ｚ軸方向の位置補正量Ｍ１ｚとして、０．６９６が取得される。
【００３６】
その後、マイクロプロセッサ１４（スケルトン位置補正手段）は第１ジョイント５０の位置を補正する（Ｓ１０３）。具体的には、マイクロプロセッサ１４は、「第１ジョイント５０の初期位置から、Ｙ軸方向に、Ｓ１０２で取得された位置補正量Ｍ１ｙだけ移動し、かつ、Ｚ軸方向に、Ｓ１０２で取得された位置補正量Ｍ１ｚだけ移動した位置」に第１ジョイント５０を移動する。このとき、第１ジョイント５０は回転状態（回転角度）を維持したまま移動する。
【００３７】
その後、マイクロプロセッサ１４は、第１ボーン５１と、第２ジョイント５２と、第２ボーン５３と、第３ジョイント５４と、の状態を第１ジョイント５０の状態に基づいて更新する（Ｓ１０４）。すなわち、マイクロプロセッサ１４は、第１ボーン５１や第２ジョイント５２の状態（位置や回転角度）を第１ジョイント５０の状態（位置や回転角度）に基づいて更新する。そして、マイクロプロセッサ１４は、第２ボーン５３や第３ジョイント５４の状態（位置や回転角度）を第２ジョイント５２の状態（位置や回転角度）に基づいて更新する。
【００３８】
その後、マイクロプロセッサ１４（頂点位置決定手段）は、第１ジョイント５０と第１ボーン５１と第２ジョイント５２と第２ボーン５３と第３ジョイント５４との状態（位置や回転角度）に基づいて、キャラクタオブジェクト４６の頂点の位置を更新する（Ｓ１０５）。例えば、マイクロプロセッサ１４は、キャラクタオブジェクト４６の頬５６のポリゴンの頂点の位置を第２ジョイント５２や第２ボーン５３の状態に基づいて更新する。また例えば、マイクロプロセッサ１４は、キャラクタオブジェクト４６の下唇５７や顎５８のポリゴンの頂点の位置を第３ジョイント５４の状態に基づいて更新する。
【００３９】
その後、マイクロプロセッサ１４及び画像処理部１８は、仮想３次元空間４０を仮想カメラ４９から見た様子を表すゲーム画面をＶＲＡＭ上に生成する（Ｓ１０６）。ＶＲＡＭ上に生成されたゲーム画面は所与のタイミングでモニタ３２に表示出力される。
【００４０】
以上のように、ゲーム装置１０では第１ジョイント５０の回転角度θ１に基づいて第１ジョイント５０の位置が補正される。図５は、補正された第１ジョイント５０の位置の一例を示す図である。なお、符号５０ａは第１ジョイント５０の初期位置を示している。
【００４１】
第１ジョイント５０の位置は図３に示す位置補正データに基づいて補正されるため、第１ジョイント５０の位置は、図５に示すように、キャラクタオブジェクト４６の顔の正面方向（Ｚ軸正方向）に回転角度θ１に応じた距離（Ｍ１ｚ）移動するとともに、キャラクタオブジェクト４６の顔の下方向（Ｙ軸負方向）に回転角度θ１に応じた距離（Ｍ１ｙ）移動する。そして、第１ジョイント５０に直接又は間接的に従属する第１ボーン５１、第２ジョイント５２、第２ボーン５３や第３ジョイント５４の状態（位置）は、第１ジョイント５０の補正後の位置に基づいて決定される。また、キャラクタオブジェクト４６の頬５６、下唇５７や顎５８のポリゴンの頂点の位置は、そのようにして決定された第２ジョイント５２、第２ボーン５３や第３ジョイント５４等の状態に基づいて決定される。
【００４２】
キャラクタオブジェクト４６が口を大きく開ける様子を表現する際に、第１ジョイント５０の回転角度θ１が比較的大きくなったとしても、第１ジョイント５０の位置が第１ジョイント５０の回転角度θ１に応じてＺ軸正方向（顔の正面方向）に補正されるため、キャラクタオブジェクト４６の顎５８は首５９にめり込まないようになる。すなわち、第１ジョイント５０の回転角度が比較的大きくなっても、キャラクタオブジェクト４６の顎５８のポリゴンの頂点の位置が不自然にならないようになる。その結果、キャラクタオブジェクト４６が大きく口を開ける様子の表現のリアリティが向上される。
【００４３】
以上説明したように、ゲーム装置１０によれば、ジョイントやボーンの回転角度が比較的大きくなっても、キャラクタオブジェクト４６を構成するポリゴンの頂点の位置が不自然にならないように図ることが可能になる。すなわち、キャラクタオブジェクト４６の姿勢や顔の表情の変化の表現のリアリティの向上を図ることが可能になる。
【００４４】
なお、第１ジョイント５０の回転角度が比較的大きくなっても、キャラクタオブジェクト４６の顎５８のポリゴンの頂点の位置が不自然にならないように図るための方法としては、次のような方法も考えられる。すなわち、開口動作モーションデータとして、第１ジョイント５０の回転角度θ１の所定時間ごとの変化を定義したデータととともに、第１ジョイント５０の位置の所定時間ごとの変化を定義したデータをあらかじめ用意しておく。そして、これらのデータに従って第１ジョイント５０の回転角度及び位置を変化させることによって、キャラクタオブジェクト４６が口を開く様子を表す。
【００４５】
しかしながら、この方法を採用した場合にはモーションデータのデータ量が増大してしまう。また、この方法を採用した場合、第１ジョイント５０の位置の所定時間ごとの変化を定義したデータも用意しなければならなくなるため、ゲーム開発時におけるデータ作成の作業量も増大してしまう。この点、本実施の形態によれば、図３に示すような比較的簡易な位置補正データを用意すれば足りるため、データ量や作業量の増大の軽減を図ることが可能になる。
【００４６】
ところで、本発明は、キャラクタオブジェクト４６が口を大きく開ける様子を表現する場合以外にも適用することができる。本発明は、例えば図６に示すように、キャラクタオブジェクト４６が口（唇）を横に引く様子を表現する場合にも用いることができる。以下、キャラクタオブジェクト４６が口を横に引く様子を表現する場合について説明する。
【００４７】
まず、キャラクタオブジェクト４６に設定されるスケルトンについて説明する。図７は、キャラクタオブジェクト４６が口を横に引く様子を表現するためのスケルトンの一例を示している。なお図７では、第４ジョイント６０と第５ジョイント６２とが同じ位置に重ねて設定されている。また図７では、第４ジョイント６０及び第５ジョイント６２がキャラクタオブジェクト４６の顔の表面に表されているが、実際には、第４ジョイント６０及び第５ジョイント６２はキャラクタオブジェクト４６の内部に設定される。すなわち、第４ジョイント６０及び第５ジョイント６２は、顔の表面からＺ軸の負方向にあり、図５の第２ジョイント５２と同程度の位置にある。つまり、顔の表面から第４ジョイント６０及び第５ジョイント６２までの距離（深さ）は図５の第２ジョイント５２と同程度になっている。第４ジョイント６０には、キャラクタオブジェクト４６の唇の左側部分６４のポリゴンの頂点が関連づけられている。第５ジョイント６２には、キャラクタオブジェクト４６の唇の右側部分６６のポリゴンの頂点が関連づけられている。キャラクタオブジェクト４６が口を横に引く様子を表現する際には、第４ジョイント６０がＹ軸方向を回転軸としてＤ方向に回転し、かつ、第５ジョイント６２がＹ軸方向を回転軸としてＥ方向に回転する。なお、第４ジョイント６０及び第５ジョイント６２はキャラクタオブジェクト４６が口（唇）を突き出す様子を表現するためにも用いられる。キャラクタオブジェクト４６が唇を突き出す様子を表現する際には、第４ジョイント６０がＹ軸方向を回転軸としてＥ方向に回転し、かつ、第５ジョイント６２がＹ軸方向を回転軸としてＤ方向に回転する。
【００４８】
次に、ゲーム装置１０（光ディスク３６又はハードディスク２６）に記憶されるデータについて説明する。ゲーム装置１０には、口を横に引く動作のモーションデータと、第４ジョイント６０の位置補正データと、第５ジョイント６２の位置補正データと、が記憶される。
【００４９】
口を横に引く動作のモーションデータは、キャラクタオブジェクト４６が口を横に引く際の第４ジョイント６０及び第５ジョイント６２の回転角度（Ｙ軸方向を回転軸とした回転角度）の所定時間（例えば１／６０秒）ごとの変化を定義したデータである。
【００５０】
図８は第４ジョイント６０の位置補正データの一例を示している。図８に示すように、第４ジョイント６０の位置補正データは、Ｙ軸方向を回転軸とした第４ジョイント６０の回転角度θ４と、第４ジョイント６０のＸ軸方向の位置補正量Ｍ４（補正情報）と、を対応づけたデータである。第４ジョイント６０の回転角度θ４は、初期状態における第４ジョイント６０の回転角度を基準（０）として、第４ジョイント６０がＹ軸方向を回転軸としてどれだけ回転しているかを示す。ここでの初期状態とは、例えばキャラクタオブジェクト４６が唇を横に引いておらず、かつ、唇を突き出してもいない状態である。第４ジョイント６０がＹ軸方向を回転軸としてＤ方向に回転している状態では、第４ジョイント６０の回転角度θ４は正の値になる。一方、第４ジョイント６０がＹ軸方向を回転軸としてＥ方向に回転している状態では、第４ジョイント６０の回転角度θ４は負の値になる。
【００５１】
図９は第５ジョイント６２の位置補正データの一例を示している。図９に示すように、第５ジョイント６２の位置補正データは、Ｙ軸方向を回転軸とした第５ジョイント６２の回転角度θ５と、第５ジョイント６２のＸ軸方向への位置補正量Ｍ５（補正情報）と、を対応づけたデータである。第５ジョイント６２の回転角度θ５は、初期状態における第５ジョイント６２の回転角度を基準（０）として、第５ジョイント６２がＹ軸方向を回転軸としてどれだけ回転しているかを示す。第５ジョイント６２がＹ軸方向を回転軸としてＥ方向に回転している状態では、第５ジョイント６２の回転角度θ５は正の値になる。一方、第５ジョイント６２がＹ軸方向を回転軸としてＤ方向に回転している状態では、第５ジョイント６２の回転角度θ５は負の値になる。
【００５２】
位置補正量Ｍ４，Ｍ５はＸ軸正方向への位置補正量（移動距離）を示す場合には正の値となり、Ｘ軸負方向への位置補正量（移動距離）を示す場合には負の値になる。このため、位置補正量Ｍ４，Ｍ５は位置補正方向（移動方向）を示す情報ともいうことができる。なお図８及び図９において、θ１は、Ｘ軸方向を回転軸とした第１ジョイント５０の回転角度を示している。すなわち図７及び図８におけるθ１は図３におけるθ１と同じである。
【００５３】
次に、キャラクタオブジェクト４６が口を横に引く様子を表現するために実行される処理について説明する。図１０は、キャラクタオブジェクト４６が口を横に引く様子を表現する際に所定時間（例えば１／６０秒）ごとに実行される処理のうち、本発明に関連するものを主として示すフロー図である。マイクロプロセッサ１４は光ディスク３６又はハードディスク２６に記憶されるプログラムに従って、図１０に示す処理を実行する。
【００５４】
図１０に示すように、マイクロプロセッサ１４（ボーン回転手段）は、口を横に引く動作のモーションデータに基づいて、第４ジョイント６０の回転状態（回転角度θ４）と、第５ジョイント６２の回転状態（回転角度θ５）と、を更新する（Ｓ２０１）。また、マイクロプロセッサ１４は、第１ジョイント５０の現在の回転状態（回転角度θ１）を取得する（Ｓ２０２）。
【００５５】
その後、マイクロプロセッサ１４（スケルトン位置補正手段）は、第４ジョイント６０及び第５ジョイント６２のＸ軸方向への位置補正量を取得する（Ｓ２０３）。すなわち、マイクロプロセッサ１４は、第４ジョイント６０の現在の回転角度θ４に対応する位置補正量Ｍ４を、位置補正データ（図８参照）と、第１ジョイント５０の現在の回転角度θ１と、に基づいて取得する。例えば、θ４が１０°であり、θ１が５°である場合、Ｘ軸方向の位置補正量Ｍ４として、０．２８５（＝（１０＊０．０４）−（５＊０．０２３））が取得される。また、マイクロプロセッサ１４は、第５ジョイント６２の現在の回転角度θ５に対応する位置補正量Ｍ５を、位置補正データ（図９参照）と、第１ジョイント５０の現在の回転角度θ１と、に基づいて取得する。例えば、θ５が１０°であり、θ１が５°である場合、Ｘ軸方向の移動量Ｍ５として、−０．２８５（＝（５＊０．０２３）−（１０＊０．０４））が取得される。
【００５６】
その後、マイクロプロセッサ１４（スケルトン位置補正手段）は第４ジョイント６０及び第５ジョイント６２の位置を補正する（Ｓ２０４）。すなわち、マイクロプロセッサ１４は「第４ジョイント６０の初期位置から、Ｘ軸方向に、Ｓ２０３で取得された位置補正量Ｍ４だけ移動した位置」に第４ジョイント６０を移動する。またマイクロプロセッサ１４は「第５ジョイント６２の初期位置から、Ｘ軸方向に、Ｓ２０４で取得された位置補正量Ｍ５だけ移動した位置」に第５ジョイント６２を移動する。このとき、第４ジョイント６０及び第５ジョイント６２は回転状態（回転角度）を維持したまま移動する。
【００５７】
その後、マイクロプロセッサ１４（頂点位置決定手段）は、第４ジョイント６０と第５ジョイント６２との状態（位置や回転角度）に基づいて、キャラクタオブジェクト４６の頂点の位置を更新する（Ｓ２０５）。例えば、マイクロプロセッサ１４は、キャラクタオブジェクト４６の唇の左側部分６４のポリゴンの頂点の位置を第４ジョイント６０の状態に基づいて更新する。また例えば、マイクロプロセッサ１４は、キャラクタオブジェクト４６の唇の右側部分６６のポリゴンの頂点の位置を第５ジョイント６２の状態に基づいて更新する。
【００５８】
その後、マイクロプロセッサ１４及び画像処理部１８は、仮想３次元空間４０を仮想カメラ４９から見た様子を表すゲーム画面をＶＲＡＭ上に生成する（Ｓ２０６）。ＶＲＡＭ上に生成されたゲーム画面は所与のタイミングでモニタ３２に表示出力される。
【００５９】
以上のように、この場合、第４ジョイント６０の回転角度θ４に基づいて第４ジョイント６０の位置が補正され、第５ジョイント６２の回転角度θ５に基づいて第５ジョイント６２の位置が補正される。図１１は、補正された第４ジョイント６０、第５ジョイント６２の位置の一例を示す図である。なお、符号６０ａ，６２ａは第４ジョイント６０、第５ジョイント６２の初期位置を示している。
【００６０】
第４ジョイント６０の位置は図８に示す位置補正データに基づいて補正されるため、例えば、θ１が５°であり、θ４及びθ５がともに１０°である場合、第４ジョイント６０の位置は、図１１に示すように、キャラクタオブジェクト４６の顔の左方向（Ｘ軸正方向）に回転角度θ４に応じた距離（Ｍ４）移動する。そして、キャラクタオブジェクト４６の唇の左側部分６４のポリゴンの頂点の位置は、補正された第４ジョイント６０の状態に基づいて決定される。すなわち、キャラクタオブジェクト４６の唇の左側部分６４のポリゴンの頂点は顔の左方向に移動するようになる。
【００６１】
また、第５ジョイント６２の位置は図９に示す位置補正データに基づいて補正されるため、例えば、θ１が５°であり、θ４及びθ５がともに１０°である場合、第５ジョイント６２の位置は、図１１に示すように、キャラクタオブジェクト４６の顔の右方向（Ｘ軸負方向）に回転角度θ５に応じた距離（Ｍ５）移動する。そして、キャラクタオブジェクト４６の唇の右側部分６６のポリゴンの頂点の位置は、補正された第５ジョイント６２の状態に基づいて決定される。すなわち、キャラクタオブジェクト４６の唇の右側部分６６のポリゴンの頂点は顔の右方向に移動するようになる。
【００６２】
キャラクタオブジェクト４６が口を横に引く様子を、第４ジョイント６０や第５ジョイント６２の回転（Ｙ軸方向を回転軸とする回転）のみによって表現する場合、キャラクタオブジェクト４６の唇のポリゴンの頂点が左右方向（Ｘ軸方向）にあまり移動しないため、キャラクタオブジェクト４６が口を横に引く様子の表現のリアリティは高くはならない。この点、本実施の形態によれば、第４ジョイント６０や第５ジョイント６２が移動しない場合に比べて、キャラクタオブジェクト４６の唇の左側部分６４のポリゴンの頂点は顔の左方向に移動し、キャラクタオブジェクト４６の唇の右側部分６４のポリゴンの頂点が顔の右方向に移動するようになるため、キャラクタオブジェクト４６が口を横に引く様子の表現のリアリティが向上される。
【００６３】
なお、図８及び図９に示す位置補正データによれば、第４ジョイント６０又は第５ジョイント６２のＸ軸方向への位置補正量（Ｍ４又はＭ５）が第１ジョイント５０の回転角度θ１にも基づいて決定されるようになっている。人間が特別な表情をつくる意図を持たずに口を開く（顎関節を動かす）場合、口の両端の肉は下顎に引っ張られることによって中央に移動する傾向があることが知られている。この点、本実施の形態によれば、このような傾向を考慮しつつ、第４ジョイント６０又は第５ジョイント６２の位置を補正することが可能になる。その結果として、キャラクタオブジェクト４６が唇を横に引く様子の表現のリアリティをより向上できるようになる。
【００６４】
また、第４ジョイント６０又は第５ジョイント６２の回転角度（θ４又はθ５）が０未満になる場合とは、キャラクタオブジェクト４６に口（唇）を突き出させるために、第４ジョイント６０がＹ軸方向を回転軸としてＥ方向に回転し、第５ジョイント６２がＹ軸方向を回転軸としてＤ方向に回転した場合である。図８及び図９に示す位置補正データによれば、そのような場合、第４ジョイント６０又は第５ジョイント６２のＸ軸方向への位置補正量（Ｍ４又はＭ５）が、第１ジョイント５０の回転角度θ１に基づいて決定されるようになっている。このため、本実施の形態によれば、上述の人間の口の両端の肉の動きの傾向を考慮しつつ、キャラクタオブジェクト４６が口を突き出す様子を表現できるようになる。その結果として、キャラクタオブジェクト４６が口を突き出す様子の表現のリアリティを向上できるようになる。
【００６５】
本発明は以上に説明した実施の形態に限定されるものではない。
【００６６】
例えば、ゲーム装置１０で実行されるゲームはサッカーゲーム以外のゲームであってもよい。また、本発明はゲーム装置１０以外の画像処理装置にも用いることができる。
【００６７】
また例えば、以上の説明では、プログラムを情報記憶媒体たる光ディスク３６から家庭用ゲーム機１１に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図１２は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図１２に基づいて本発明に係るプログラム配信方法を説明する。図１２に示すように、このプログラム配信システム１００は、ゲームデータベース１０２、サーバ１０４、通信ネットワーク１０６、パソコン１０８、家庭用ゲーム機１１０、ＰＤＡ（携帯情報端末）１１２を含んでいる。このうち、ゲームデータベース１０２とサーバ１０４とによりプログラム配信装置１１４が構成される。通信ネットワーク１０６は、例えばインターネットやケーブルテレビネットワークを含んでいる。このシステムでは、ゲームデータベース（情報記憶媒体）１０２に、光ディスク３６の記憶内容と同様のプログラムが記憶されている。そして、パソコン１０８、家庭用ゲーム機１１０又はＰＤＡ１１２等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク１０６を介してサーバ１０４に伝えられる。そして、サーバ１０４はゲーム配信要求に応じてゲームデータベース１０２からプログラムを読み出し、それをパソコン１０８、家庭用ゲーム機１１０、ＰＤＡ１１２等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ１０４から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信（一括配信）する必要はなく、ゲームの局面に応じて必要な部分を配信（分割配信）するようにしてもよい。このように通信ネットワーク１０６を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【００６８】
【図１】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図２】仮想３次元空間の一例を示す図である。
【図３】第１ジョイントの位置補正データの一例を示す図である。
【図４】ゲーム装置で実行される処理を示すフロー図である。
【図５】第１ジョイントの補正位置の一例を示す図である。
【図６】キャラクタオブジェクトが口を横に引く様子を表す図である。
【図７】キャラクタオブジェクトが口を横に引く様子を表現するために設定されるスケルトンの一例を示す図である。
【図８】第４ジョイントの位置補正データの一例を示す図である。
【図９】第５ジョイントの位置補正データの一例を示す図である。
【図１０】ゲーム装置で実行される処理を示すフロー図である。
【図１１】第４ジョイント及び第５ジョイントの補正位置の一例を示す図である。
【図１２】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【図１３】キャラクタオブジェクトが口を大きく開ける様子を表す図である。
【図１４】キャラクタオブジェクトが口を大きく開ける様子を表現するために設定されるスケルトンの一例を示す図である。
【符号の説明】
【００６９】
１０  ゲーム装置、１１，１１０  家庭用ゲーム機、１２  バス、１４  マイクロプロセッサ、１６  主記憶、１８  画像処理部、２０  入出力処理部、２２  音声処理部、２４  光ディスク読み取り部、２６  ハードディスク、２８  通信インタフェース、３０  コントローラ、３２  モニタ、３４  スピーカ、３６  光ディスク、４０  仮想３次元空間、４２  フィールドオブジェクト、４４  ゴールオブジェクト、４６  キャラクタオブジェクト、４８  ボールオブジェクト、４９  仮想カメラ、５０  第１ジョイント、５０ａ  第１ジョイントの初期位置、５１  第１ボーン、５２  第２ジョイント、５３  第２ボーン、５４  第３ジョイント、５６  頬、５７  下唇、５８  顎、５９  首、６０  第４ジョイント、６０ａ  第４ジョイントの初期位置、６２  第５ジョイント、６２ａ  第５ジョイントの初期位置、６４  唇の左側部分、６６  唇の右側部分、１００  プログラム配信システム、１０２  ゲームデータベース、１０４  サーバ、１０６  通信ネットワーク、１０８  パソコン、１１２  携帯情報端末（ＰＤＡ）、１１４  プログラム配信装置。
【図１】
2008305066.tif 000003
【図２】
2008305066.tif 000004
【図３】
2008305066.tif 000005
【図４】
2008305066.tif 000006
【図５】
2008305066.tif 000007
【図６】
2008305066.tif 000008
【図７】
2008305066.tif 000009
【図８】
2008305066.tif 000010
【図９】
2008305066.tif 000011
【図１０】
2008305066.tif 000012
【図１１】
2008305066.tif 000013
【図１２】
2008305066.tif 000014
【図１３】
2008305066.tif 000015
【図１４】
2008305066.tif 000016