(57)【要約】【課題】力学に従ったキャラクタの動作を示す画像データを容易に生成する画像処理装置を提供する。【解決手段】仮想空間上のキャラクタに行わせる行動を示す行動情報を生成する行動生成部１１と、キャラクタを動作させる力を算出する力トルク算出部１２と、力トルク算出手段１２により算出される力をキャラクタを模した剛体モデルに与えて状態変数を算出するシミュレータ１３と、行動生成部１１により生成される各行動情報とシミュレータ１３により算出される任意の状態変数とに対応付けたキャラクタのキーフレームデータが記憶されているデータベース１４と、キーフレームデータを参照して、行動生成部１１により生成された行動情報とシミュレータ１３により算出された状態変数とに応じたフレームデータを補間する補間処理部１５と、補間処理部１５により補間されたフレームデータに応じた画像データ出力するレンダラ１６とを備える。【選択図】  図２
2009053760.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間上のキャラクタの動作を示す画像データを生成する画像処理装置において、
上記キャラクタに行わせる行動を示す行動情報を生成する生成手段と、
上記生成手段により生成される行動情報に応じて、上記仮想空間上において上記キャラクタを動作させる力を算出する算出手段と、
上記算出手段により算出される力を上記キャラクタを模した剛体モデルに与え、該剛体モデルの力学的挙動を示す状態変数を算出するシミュレーション手段と、
上記生成手段により生成される各行動情報と上記シミュレーション手段により算出される任意の状態変数とに対応付けた上記キャラクタの姿勢に関する姿勢データが記憶されているデータベースと、
上記データベースに記憶されている姿勢データを参照して、上記生成手段により生成された行動情報と上記シミュレーション手段により算出された状態変数とに応じた上記キャラクタの姿勢データを補間する補間手段と、
上記補間手段により補間された姿勢データに応じた上記キャラクタの動作を示す画像データを出力する出力手段とを備える画像処理装置。
【請求項２】
上記データベースには、上記姿勢データとして、上記キャラクタを構成する各関節の関節角度データを記憶しており、
上記補間手段は、上記生成手段により生成された行動情報に対応付けられた姿勢データのうち、上記シミュレーション手段により算出された状態変数が近接する関係にある姿勢データから上記キャラクタを構成する各関節の関節角度を算出して、算出した関節角度に応じた上記キャラクタの姿勢データを補間することを特徴とする請求項１記載の画像処理装置。
【請求項３】
仮想空間上のキャラクタの動作を示す画像データを生成する画像処理方法において、
上記キャラクタに行わせる行動を示す行動情報を生成する生成工程と、
上記生成工程により生成される行動情報に応じて、上記仮想空間上において上記キャラクタを動作させる力を算出する算出工程と、
上記算出工程により算出される力を上記キャラクタを模した剛体モデルに与え、該剛体モデルの力学的挙動を示す状態変数を算出するシミュレーション工程と、
上記生成工程により生成される各行動情報と上記シミュレーション手段により算出される任意の状態変数とに対応付けた上記キャラクタの姿勢に関する姿勢データが記憶されているデータベースを参照して、上記生成工程により生成される行動情報と上記シミュレーション工程により算出される状態変数とに応じた上記キャラクタの姿勢データを補間する補間工程と、
上記補間工程により補間される姿勢データに応じた上記キャラクタの動作を示す画像データを出力する出力工程とからなる画像処理方法。
【請求項４】
仮想空間上のキャラクタの動作を示す画像データを生成する画像処理をコンピュータに実行させるためのプログラムにおいて、
上記キャラクタに行わせる行動を示す行動情報を生成する生成工程と、
上記生成工程により生成される行動情報に応じて、上記仮想空間上において上記キャラクタを動作させる力を算出する算出工程と、
上記算出工程により算出される力を上記キャラクタを模した剛体モデルに与え、該剛体モデルの力学的挙動を示す状態変数を算出するシミュレーション工程と、
上記生成工程により生成される各行動情報と上記シミュレーション工程により算出される任意の状態変数とに対応付けた上記キャラクタの姿勢に関する姿勢データが記憶されているデータベースを参照して、上記生成工程により生成された行動情報と上記シミュレーション工程により算出された状態変数とに応じた上記キャラクタの姿勢データを補間する補間工程と、
上記補間工程により補間される姿勢データに応じた上記キャラクタの動作を示す画像データを出力する出力工程とからなる画像処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャラクタを示す画像データを生成して出力する画像処理を行う画像処理装置、画像処理方法、及び、この画像処理をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【０００２】
近年のヒューマンインタフェース、コンピュータグラフィックスの進歩により、ゲームやエンタテインメント、メディアアートなどに用いられるバーチャル世界を取り巻く環境が大きく変化している。このため、力覚インタフェースやモーションセンサなどのヒューマンインタフェースや、コンピュータグラフィックス、３次元映像、高解像度映像などの映像提示技術は、体験者とバーチャル世界との間を行き交う情報量を飛躍的に増大させた。また、現実世界と同様に身体を使って、バーチャル世界と直接的、物理的なインタラクションをすることができるようになった。
【０００３】
この点において、体験者が仮想空間に対しリアリティを感じたり感情移入したりすることが容易になったと言える。そしてその結果、体験者に魅力的な体験を提供するには、仮想空間自体の魅力を高めることがより重要になってきている。仮想空間には、物体、動物や人物などを擬似的に表現したキャラクタが構成要素としてある。このような構成要素の中でも特にキャラクタは、体験者の注目を集め、体験者と仮想空間との間のインタラクションの中心的な対象となり、体験者の感情移入や情動の対象にもなるため、魅力的なコンテンツを制作する上で重要である。このため、体験者と仮想空間との間のインタラクションの対象として現実感がより高く、感情移入しやすいキャラクタを実現することが、魅力的な体験を体験者に提供するために重要になっている。
【０００４】
このようなヒューマンインタフェースの進歩により、仮想空間と物理的なインタラクションが行われるようになった。このため身体をつかった物理的なインタラクションに対してキャラクタが力学に従った反応動作をすることが、キャラクタのリアリティを高めるために必要となっている。これは、現実世界に存在する物体が力学に従って挙動するので、体験者は現実世界での経験則を仮想空間で生かせ、仮想空間での挙動を容易に理解でき、操作や予測が容易になるからである。例えば、キャラクタが物体を押すとき、物体の重さに応じて押し方や移動量に違いがあれば、体験者は、物体の重さをキャラクタの動きから推測することができる。
【０００５】
一方、体験者をキャラクタに感情移入させるためには、キャラクタの感情や意図を体験者に伝える必要がある。例えばゲームでは吹き出しや記号で感情を表現することもあるが、演劇や映画の俳優のように動作で表現することにより、より多様な感情や意図の表現が可能になり、体験者に感情移入させるのを助けることができる。キャラクタモーションのデザイナは、このような体験者により現実感の高いキャラクタを作り出すため、キャラクタの個性とキャラクタが現在置かれている状況に応じた動作を作ることが要求される。また、シナリオやストーリーを進行させるため、特定の姿勢や動作をすることが要求される場合もある。
【０００６】
例えば、特許文献１においては、「歩く」や「跳ぶ」などの個々のアニメーションを行動オブジェクトとして保持し、ある行動オブジェクトから別のオブジェクトにはイベントによって移行するとともに、各行動オブジェクトの動作が完結していなくてもイベントを受付けて別の行動オブジェクトに移行させることにより、個々のアニメーションの間をスムーズにつないだり、イベントに対するアニメーションの変化を考慮したアニメーションを自動的に生成する生成方法が記載されている。
【０００７】
【特許文献１】特開２０００―１１９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
インタラクションの対象として現実感が高く、感情移入しやすい魅力的なキャラクタを実現するには、デザイナがキャラクタ毎に膨大な動作を制作しなければならないという問題がある。例えば上述した特許文献１に記載された生成方法を用いた場合も、多種類の動作オブジェクトをデザイナが制作するため、制作コストが非常に高くなってしまう。そのため、デザイナによって制作されるキャラクタの静止画像を組み合わせて多様な動作オブジェクトを生み出すことで、コンテンツの生産性を高めることが求められる。このような処理には、従来のデザイナのスキルにあわせて、できるだけ容易に行うことが可能な制作環境が必要である。
【０００９】
本発明は、このような実情に鑑みて提案されたものであり、仮想空間において力学に従ったキャラクタの動作を示す画像データを容易に生成する画像処理装置、画像処理方法、及び、この画像処理をコンピュータに実行させるプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決するための手段として、本発明に係る画像処理装置は、仮想空間上のキャラクタの動作を示す画像データを生成する画像処理装置であって、上記キャラクタに行わせる行動を示す行動情報を生成する生成手段と、上記生成手段により生成される行動情報に応じて、上記仮想空間上において上記キャラクタを動作させる力を算出する算出手段と、上記算出手段により算出される力を上記キャラクタを模した剛体モデルに与え、該剛体モデルの力学的挙動を示す状態変数を算出するシミュレーション手段と、上記生成手段により生成される各行動情報と上記シミュレーション手段により算出される任意の状態変数とに対応付けた上記キャラクタの姿勢に関する姿勢データが記憶されているデータベースと、上記データベースに記憶されている姿勢データを参照して、上記生成手段により生成された行動情報と上記シミュレーション手段により算出された状態変数とに応じた上記キャラクタの姿勢データを補間する補間手段と、上記補間手段により補間された姿勢データに応じた上記キャラクタの動作を示す画像データを出力する出力手段とを備える。
【００１１】
また、本発明に係る画像処理方法は、仮想空間上のキャラクタの動作を示す画像データを生成する画像処理方法であって、上記キャラクタに行わせる行動を示す行動情報を生成する生成工程と、上記生成工程により生成される行動情報に応じて、上記仮想空間上において上記キャラクタを動作させる力を算出する算出工程と、上記算出工程により算出される力を上記キャラクタを模した剛体モデルに与え、該剛体モデルの力学的挙動を示す状態変数を算出するシミュレーション工程と、上記生成工程により生成される各行動情報と上記シミュレーション手段により算出される任意の状態変数とに対応付けた上記キャラクタの姿勢に関する姿勢データが記憶されているデータベースを参照して、上記生成工程により生成される行動情報と上記シミュレーション工程により算出される状態変数とに応じた上記キャラクタの姿勢データを補間する補間工程と、上記補間工程により補間される姿勢データに応じた上記キャラクタの動作を示す画像データを出力する出力工程とからなる。
【００１２】
また、本発明に係るプログラムは、仮想空間上のキャラクタの動作を示す画像データを生成する画像処理をコンピュータに実行させるためのプログラムであって、上記キャラクタに行わせる行動を示す行動情報を生成する生成工程と、上記生成工程により生成される行動情報に応じて、上記仮想空間上において上記キャラクタを動作させる力を算出する算出工程と、上記算出工程により算出される力を上記キャラクタを模した剛体モデルに与え、該剛体モデルの力学的挙動を示す状態変数を算出するシミュレーション工程と、上記生成工程により生成される各行動情報と上記シミュレーション工程により算出される任意の状態変数とに対応付けた上記キャラクタの姿勢に関する姿勢データが記憶されているデータベースを参照して、上記生成工程により生成された行動情報と上記シミュレーション工程により算出された状態変数とに応じた上記キャラクタの姿勢データを補間する補間工程と、上記補間工程により補間される姿勢データに応じた上記キャラクタの動作を示す画像データを出力する出力工程とからなる。
【発明の効果】
【００１３】
本発明は、各行動情報と任意の状態変数とに対応付けたキャラクタの姿勢に関する姿勢データが記憶されているデータベースを参照して、生成される行動情報と算出される状態変数とに応じた上記キャラクタの姿勢データを補間して、補間された姿勢データに応じたキャラクタの動作を示す画像データを出力するので、仮想空間において力学に従ったキャラクタの動作を示す画像データを容易に生成することができる。
【発明を実施するための最良の形態】
【００１４】
本発明が適用された画像処理装置は、仮想空間上におけるキャラクタの動作を示す画像データを生成して出力する画像処理を行う。このような画像処理装置の一例として、以下では図１に示すような画像処理装置１を用いて、本発明を実施するための形態について説明する。
【００１５】
画像処理装置１は、汎用性の演算処理プロセッサを備えるコンピュータであって、演算処理を行うＣＰＵ２と、画像データやアプリケーションを実行するためのプログラムを記憶するハードディスク３と、ＣＰＵ２が演算処理を行うデータを一時的に記憶するＲＡＭ４と、外部からユーザからの操作入力などを入力するためのインタフェース５と、ＣＰＵ２による演算処理結果を表示するディスプレイ６とを備える。
【００１６】
ＣＰＵ２は、仮想空間上のキャラクタの動作を示す画像データを生成する画像処理を行うためのプログラムをハードディスク３からＲＡＭ４に読み出して実行する。
【００１７】
ハードディスク３は、ＣＰＵ２による演算処理により生成される画像データや上述した画像処理を実行するためのプログラムを記憶する。
【００１８】
ＲＡＭ４は、ＣＰＵ２が演算処理を行うデータを一時的に記憶する。
【００１９】
インタフェース５は、ユーザからの操作入力を受け付け、この操作入力に関する操作情報をＣＰＵ２に供給する。
【００２０】
ディスプレイ６は、ＣＰＵ２による演算処理によって生成される画像データを表示する。
【００２１】
以上のような構成からなる画像処理装置１では、ＣＰＵ２が仮想空間上におけるキャラクタの動作を示す画像データを生成する画像処理を行うためのプログラムをハードディスク３からＲＡＭ４に読み出すことによって、図２に示すような画像処理部１０が実現される。
【００２２】
すなわち、画像処理部１０は、図２に示すように、キャラクタの行動を示す行動情報を生成する行動生成部１１と、キャラクタを動作させる力及びトルクに関する情報を算出する力トルク算出部１２と、キャラクタを模した剛体モデルの力学的挙動を示す状態変数を算出するシミュレータ１３と、所定の行動情報と任意の状態変数とに対応付けたキャラクタの姿勢に関する姿勢データが予め記憶されているデータベース１４と、姿勢データを補間する補間処理部１５と、補間処理部１５により補間される姿勢データに応じたキャラクタの動作を示す画像データを生成するレンダラ１６とを備える。
【００２３】
以上のような構成からなる画像処理部１０において、まず、キャラクタを模した剛体モデルの力学的挙動を示す状態変数を算出するシミュレータ１３について説明する。
【００２４】
シミュレータ１３は、後述する力トルク算出部１２により算出される力ＦｐとトルクＮｐを図３に示すようなキャラクタを模したキャラクタ剛体モデル１３１に与える。そして、シミュレータ１３は、キャラクタ剛体モデル１３１と、例えば壁などの物体を模した物体剛体モデル１３２と、床を模した床剛体モデル１３３との間で発生する衝突や摩擦などの力学的挙動をシミュレーションして、各剛体モデルの力学的挙動を示す状態変数を算出する。ここで、状態変数とは、例えば予め設定した３次元平面上の原点に対する剛体モデルの位置ｒ、位置ｒを時間で微分した速度ｖ、剛体モデルの重心に対する回転角度θ、回転角度θを時間で微分した角速度ωなどを示す情報である。シミュレータ１３は、キャラクタ剛体モデル１３１、物体剛体モデル１３２、及び、床剛体モデル１３３の全ての剛体モデルに関する状態変数を環境情報として算出して行動生成部１１に供給する。
【００２５】
また、シミュレータ１３では、関節などを有さないキャラクタ剛体モデル１３１を用いてキャラクタを表現している。これは、キャラクタの各部の位置と回転角度を計算するための力学モデルである多関節モデルでは、扱う状態変数の数が多く複雑な計算を要する上、目的の動作を得るための調整が難しいからである。そこで、この画像処理部１０では、シミュレータ１３においてキャラクタを模した剛体モデルを用いてキャラクタの力学的挙動をシミュレーションし、このシミュレーションによって得られる状態変数に基づいて、後述する補間処理部１５により生成される姿勢データでキャラクタの各関節の関節角度を表現して、レンダラ１６によってキャラクタの動作を示す画像データを出力する。
【００２６】
また、シミュレータ１３では、各剛体モデルの形状が剛体モデル同士の衝突判定に用いられるため、映像として表示されるキャラクタの外形に近いものを用いる。このようにすることで、シミュレータ１３では、このシミュレーション結果から得られるキャラクタと他の物体との接触時の映像において、物体間で離れすぎたりめり込んだりする現象が発生することを防止できる。
【００２７】
また、シミュレータ１３では、以下のように剛体モデルの特性を設定することで、デザイナが目的の動作を容易に作成することができる。
【００２８】
第１に、シミュレータ１３では、図４（Ａ）に示すように、平面部分１３１ａを有するキャラクタ剛体モデル１３１を設計することで、図４（Ｂ）に示すように、キャラクタ剛体モデル１３１と物体剛体モデル１３２との接触時においてキャラクタ剛体モデル１３１が物体剛体モデル１３２の平面部分１３２ａに向きやすくさせることができる。第２に、シミュレータ１３では、剛体モデルの辺及び頂点を回転の支点とすることで、容易にキャラクタの回転動作を調節することができる。第３に、シミュレータ１３では、キャラクタに応じてキャラクタ剛体モデル１３１の形状、質量、及び、重心を設定し、設定した情報に応じてキャラクタの回転特性である下記式の慣性テンソルＬを調節することができる。
【００２９】
Ｎ＝Ｌω
ここで、Ｎは回転角度θ方向に与える回転力を示すトルクであって、後述する力トルク算出部１２によって与えられる値である。通常、Ｌは単位行列が用いられる。
【００３０】
また、シミュレータ１３では、具体例として、図５に示すようなキャラクタ２００を用いる。ここでは、原点をキャラクタの最下部として３次元直交座標軸を次のように定義している。すなわち、キャラクタ２００の幅方向をｘ軸とし、鉛直方向をｙ軸とし、正面方向をｚ軸として定義する。また、キャラクタ２００の正面に物体が衝突したとき、すなわち−ｚ軸方向に外力Ｆ１が与えられたとき、キャラクタ２００の重心Ｇに対して回転するトルクＮ１がより大きく発生させて転がりやすくするようにするため、シミュレータ１３では、図６（Ａ）に示すように、ｘｚ平面の断面積が−ｙ軸方向に小さくなるような形状の剛体２１０を、物体剛体モデル１３２に衝突したときのキャラクタ剛体モデル１３１として用いる。また、キャラクタが床に倒れたときに必ずうつぶせか仰向けの状態になるようにするため、シミュレータ１３では、図６（Ｂ）に示すように、±ｚ軸方向に倒れやすい形状の剛体２２０を床剛体モデル１３３に衝突したときのキャラクタ剛体モデル１３１として用いる。このようにシミュレータ１３では、キャラクタ剛体モデル１３１として、衝突する物体毎に異なる形状のものを用いることでキャラクタ２００の自然な動きを容易に表現することができる。
【００３１】
また、この具体例において、シミュレータ１３では、下記のように定義した多次元空間（以下、キーフレーム空間Ｋという。）におけるキャラクタ２００の状態変数を算出する。
【００３２】
【数１】
2009053760.tif 000003
【００３３】
また、シミュレータ１３では、上述したキーフレーム空間Ｋにおける剛体モデルの位置ｒ、速度ｖ、向きを示す回転行列Ｒから、キャラクタがキーフレーム空間Ｋ上に位置する基準点に変換する関数Ｆを、下記式（２）のように定義している。
【００３４】
【数２】
2009053760.tif 000004
【００３５】
以上のようなシミュレータ１３によって算出される環境情報に応じて、行動生成部１１は、キャラクタの行動を決定して、決定したキャラクタの行動に関する行動情報及びこのキャラクタの状態変数を力トルク算出部１２に供給する。また、行動生成部１１は、この行動情報を補間処理部１５に供給する。ここで、行動生成部１１は、例えば、環境情報に応じて所定のＡＩ（Artificial Intelligence）処理によってキャラクタの行動を決定するが、インタフェース５からのユーザ操作によってキャラクタの行動を逐次決定するようにしてもよい。
【００３６】
力トルク算出部１２は、行動生成部１１から供給される行動情報と、シミュレータ１３により算出される環境情報に応じて、キャラクタを動作させるための力及びトルクに関する情報を算出する。例えば、上述した図５に示すようなキャラクタ２００を動作させるため、図７に示すようにキャラクタ２００に与える力Ｆｐ及びトルクＮｐを算出する。ここで力Ｆｐとは、キャラクタ２００が脚で発生させる力、すなわち剛体モデルの最下部においてｚ軸方向に作用させる力である。また、トルクＮｐとは、キャラクタ２００の重心Ｇにおけるｘ軸方向を中心軸として回転させるための力である。
【００３７】
力トルク算出部１２は、キャラクタ２００の姿勢を直立状態に安定させるための姿勢制御と、姿勢が安定している状態でキャラクタ２００の移動を行う移動制御との２つの制御に応じて力Ｆｐ及びトルクＮｐを算出する。
【００３８】
力トルク算出部１２は、姿勢制御として、図８（Ａ）に示すように、状態の遷移に応じて力Ｆｐ及びトルクＮｐを算出する。また、θｘは、キャラクタの姿勢を示す状態変数であって図８（Ｂ）に示すように、具体的にはｘ軸に対するキャラクタ剛体モデル１３１の回転角度を示し、初期状態をθｘ＝０°とする。また、力トルク算出部１２は、行動生成部１１から供給される状態変数に応じて以下のように制御モードを遷移させる。
【００３９】
まず、通常状態モードＳ１１において、力トルク算出部１２は、下記の（３）式のようにして力Ｆｐ及びトルクＮｐを算出する。
【００４０】
【数３】
2009053760.tif 000005
【００４１】
その後、力トルク算出部１２は、｜θｘ｜＞θ１となると、キャラクタ２００の姿勢がバランスを崩した状態となるので、この状態を直立状態に回復させるため、倒立振子制御モードＳ１２に遷移する。
【００４２】
倒立振子制御モードＳ１２において、力トルク算出部１２は、下記の（４）式のようにして力Ｆｐ及びトルクＮｐを算出する。
【００４３】
【数４】
2009053760.tif 000006
【００４４】
その後、力トルク算出部１２は、｜θｘ｜≒０°となったとき通常状態モードＳ１１に遷移し、｜θｘ｜＞θ２となると直立状態に回復させることができないものとして、キャラクタ２００が倒れて落ち着くまでの挙動を行わせるため、安定化待機モードＳ１３に遷移する。
【００４５】
安定化待機モードＳ１３において、力トルク算出部１２は、下記の（５）式のようにして力Ｆｐ及びトルクＮｐを算出する。
【００４６】
【数５】
2009053760.tif 000007
【００４７】
その後、力トルク算出部１２は、｜θｘ｜≒０かつ｜ｄθｘ｜≒０になると通常状態モードＳ１１に遷移し、｜ｄθｘ｜≒０かつキャラクタ２００が仰向けの姿勢になると起立モードＳ１５に遷移する。
【００４８】
起立モードＳ１５において、力トルク算出部１２は、下記の（６）式のようにして力Ｆｐ及びトルクＮｐを算出する。
【００４９】
【数６】
2009053760.tif 000008
【００５０】
その後、力トルク算出部１２は、｜θｘ｜≒０°となったとき通常状態モードＳ１１に遷移する。
【００５１】
また、力トルク算出部１２は、キャラクタ２００が通常状態モードのとき、位置ｒを移動させる移動制御を行うため、下記（７）式、及び（８）式のようにして力Ｆｐ及びトルクＮｐそれぞれを算出する。
【００５２】
【数７】
2009053760.tif 000009
【００５３】
ここで、Ｋｐｆ、ＫｐｎはＰＤ制御系の制御パラメータである。力トルク算出部１９では、例えば表１に示すように各動作の種類に対応付けた各値が算出されるように、上記の制御パラメータを設定している。
【００５４】
【表１】
2009053760.tif 000010
【００５５】
データベース１４は、行動生成部１１により生成される各行動情報とシミュレータ１３により算出される任意の状態変数とに対応付けたキャラクタの姿勢に関する姿勢データ（以下、キーフレームデータという。）が記憶されている。具体的に、データベース１４は、このキーフレームデータとして、キャラクタを構成する各関節の関節角度データを記憶している。
【００５６】
また、データベース１４は、例えば、図９に示すように、キャラクタが「歩く」動作を示す行動情報に対応付けられたキーフレームセット１４１と、キャラクタが「走る」動作を示す行動情報に対応付けられたキーフレームセット１４２と、キャラクタが「押す」動作を示す行動情報に対応付けられたキーフレームセット１４３毎に分類して各キーフレームデータを記憶している。
【００５７】
データベース１４が記憶しているキーフレームデータは、上述した各キーフレームセット１４１、１４２、１４３毎に、シミュレータ１３により算出される状態変数に対応する多次元空間内に配置されている。
【００５８】
例えば、キャラクタが「歩く」動作を示す行動情報に対応付けられたキーフレームセット１４１では、図１０に示すようにしてキーフレームデータがキャラクタの位置ｒ及び回転角度θを示す状態変数に対応した２次元空間内に配置されている。
【００５９】
すなわち、キーフレームセット１４１は、「キャラクタの意思に沿う動作」を示すキーフレームデータとして、キャラクタの回転角度が０°から４５°までの動作に対応するキーフレームデータＰ１１〜Ｐ１４、Ｐ２１〜Ｐ２４、及び、「キャラクタの意思に反する動作」を示すキーフレームデータとしてキャラクタの回転角度が４５°から９０°までの動作に対応するキーフレームデータＰ３１〜Ｐ３４から構成されている。ここで、「キャラクタの意思に沿う動作」とは、シミュレータ１３によって算出される状態変数に対応してキャラクタが歩く動作である。また、「キャラクタの意思に反する動作」とは、キャラクタが歩こうとしても歩けないでバランスを崩している動作である。
【００６０】
このように、「キャラクタの意思に反する動作」に応じたキーフレームデータをキーフレームセット１４１に設ける理由は、次のとおりである。
【００６１】
すなわち、キャラクタを示す画像データを生成する画像処理においては、例えばキャラクタが転倒している状態において行動生成部１１が「歩く」動作をさせる行動情報を生成しても、行動情報に応じた動作の遂行が不可能な状態があるからである。
【００６２】
また、キーフレームデータは、各キーフレームセット１４１、１４２、１４３の多次元空間において最初に特定の次元のみが変化するものが作成され、作成された各キーフレームデータから別の次元を変化させたものが作成される。例えば、キーフレームセット１４１に対応するキーフレーム空間Ｋにおいては、図１１に示すように、まず、回転角度に応じたキャラクタの姿勢を示すキーフレームデータＰ１１１、Ｐ１２１、Ｐ１３１が作成される（Ｓ２１）。このキーフレーム空間Ｋにおいては、続いて、キーフレームデータＰ１１１が示す回転角度を保ってキャラクタが移動する姿勢を示すキーフレームデータＰ１１２、Ｐ１１３、Ｐ１１４が作成される（Ｓ２２）。同様にして、このキーフレーム空間Ｋにおいては、キーフレームデータＰ１２１が示す回転角度を保ってキャラクタが移動する姿勢を示すキーフレームデータＰ１２２、Ｐ１２３、Ｐ１２４が作成され（Ｓ２３）、キーフレームデータＰ１３１が示す回転角度を保ってキャラクタが移動する姿勢を示すキーフレームデータＰ１３２、Ｐ１３３、Ｐ１３４が作成される（Ｓ２４）。
【００６３】
また、剛体モデルの力学的挙動と映像として表示されるキャラクタが解離しないようにするため、各キーフレームデータを構成する各関節の関節角度情報の基準となる三次元座標系は、図１２に示すように、キーフレーム空間Ｋ上の点を介して、回転角度が互いに異なるキャラクタを示す各キーフレームデータＰ２０１、Ｐ２０２、Ｐ２０３に対応した剛体モデルに固定されたキャラクタ座標系ｘ１−ｙ１−ｚ１、ｘ２−ｙ２−ｚ２、ｘ３−ｙ３−ｚ３を用いている。また、各キーフレームデータは、剛体モデルからはみ出したキャラクタの表示部分がシミュレータ１３による衝突判定の範囲を超えるため、キャラクタがこれに対応する回転角度の剛体モデルからできだけ超えないように作成されたものを用いる。
【００６４】
具体的に、データベース１４では、上述したキーフレーム空間に対応したキーフレームセットとして、表２に示すようなキーフレームセットを記憶している。
【００６５】
【表２】
2009053760.tif 000011
【００６６】
補間処理部１５は、行動生成部１１により生成される行動情報と、シミュレータ１３により算出された状態変数とに応じて、データベース１４に記憶されているキーフレームデータを参照して、参照したキーフレームデータに補間処理を施して、状態変数におけるキーフレームデータを生成する。
【００６７】
具体的に、補間処理部１５では、行動生成部１１により生成された行動情報に対応付けられたキーフレームデータのうち、シミュレータ１３により算出された状態変数が近接する関係にあるキーフレームデータからキャラクタを構成する各関節の関節角度を算出して、算出した関節角度に応じたキャラクタの姿勢データであるフレームデータを補間する。
【００６８】
すなわち、補間処理部１５は、まず、行動生成部１１により生成される行動情報に対応するキーフレームセットをデータベース１４から検索する。続いて、補間処理部１５は、図１３に示すように、シミュレータ１３に算出された状態変数である位置ｒ及び回転角度θの二次元空間上で近接する関係にある参照キーフレームデータＰ１、Ｐ２、Ｐ３、Ｐ４を、データベース１４から読み出し、次のような線形補間処理を施して、位置ｒ及び回転角度θに対応するフレームデータＰｉを生成する。すなわち、補間処理部１５では、参照キーフレームデータＰ１、Ｐ２、Ｐ３、Ｐ４におけるキャラクタ座標系を一致させた状態で、このキャラクタを構成する各関節の関節角度を線形補間したフレームデータを生成し、回転角度に応じて状態を傾けて補間対象となるフレームデータＰｉを生成する。そして、補間処理部１５は、生成したフレームデータＰｉをレンダラ１６に供給する。
【００６９】
レンダラ１６は、補間処理部１５により生成されるフレームデータＰｉにレンダリング処理を施して表示用の画像データを生成してディスプレイ６に供給する。具体的に、レンダラ１６は、補間処理部１５により補間されたフレームデータに応じて、キャラクタを構成する各関節を示す画像を合成してキャラクタの動作を示す画像データを生成して、表示用の画像データをしてディスプレイ６に供給する。
【００７０】
以上のような処理部を備える画像処理部１０では、各行動情報と任意の状態変数とに対応付けたキャラクタの姿勢に関する姿勢データとしてキーフレームデータが記憶されているデータベース１４を参照して、補間処理部１５が、行動生成部１１により生成された行動情報とシミュレータ１３によって算出された状態変数とに応じたキャラクタのフレームデータを補間して出力するので、仮想空間上において力学に従ったキャラクタの動作を示す画像データを容易に生成することができる。
【００７１】
したがって、画像処理部１０では、仮想空間を体験する体験者が、仮想空間上のキャラクタとの物理的なインタラクションを実現するために、キャラクタが力学に従った動作や、壁などに対する衝突等に応じた力学的挙動を示す画像データをリアルタイムに生成することができる。
【００７２】
また、画像処理部１０では、予め用意されたキーフレームを用いてキャラクタの動作を示す画像データを生成するので、一連の動作に応じた動画像データを他種類用意する必要がなく、アニメーション画像を制作する制作コストを削減することができる。
【００７３】
なお、本発明は、以上の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００７４】
【図１】画像処理装置の全体構成を示す構成図である。
【図２】画像処理部が備える各処理部の構成を示す構成図である。
【図３】仮想空間で実現される各剛体モデルを模式的に示す図である。
【図４】図４（Ａ）は、キャラクタ剛体モデルの一例を示す図であり、図４（Ｂ）は、キャラクタ剛体モデルと物体剛体モデルとの衝突を模式的に示す図である。
【図５】キャラクタの一例を示す図である。
【図６】キャラクタ剛体モデルの一例を示す図である。
【図７】キャラクタの一例を示す図である。
【図８】図８（Ａ）は、姿勢制御の処理フローを説明するために供する状態遷移図であり、図８（Ｂ）は、制御対象となる回転角度について説明するために供する図である。
【図９】データベースに記憶されているキーフレームセットを模式的に示す図である。
【図１０】２次元空間上に配置されたキーフレームを模式的に示す図である。
【図１１】キーフレームセットを構成する各キーフレームの作成工程について説明するために供する図である。
【図１２】各姿勢毎にキャラクタに固定されたキャラクタ座標系を示す図である。
【図１３】補間処理によって生成されるフレームデータを模式的に示す図である。
【符号の説明】
【００７５】
１  画像処理装置、２  ＣＰＵ、３  ハードディスク、４  ＲＡＭ、５  インタフェース、６  ディスプレイ、１０  画像処理部、１１  行動生成部、１２  力トルク算出部、１３  シミュレータ、１４  データベース、１５  補間処理部、１６  レンダラ、１３１  キャラクタ剛体モデル、１３１ａ  平面部分、１３２  物体剛体モデル、１３２ａ  平面部分、１３３  床剛体モデル、１４１  、１４２、１４３  キーフレームセット、２００  キャラクタ、２１０、２２０  剛体
【図１】
2009053760.tif 000012
【図２】
2009053760.tif 000013
【図３】
2009053760.tif 000014
【図４】
2009053760.tif 000015
【図５】
2009053760.tif 000016
【図６】
2009053760.tif 000017
【図７】
2009053760.tif 000018
【図８】
2009053760.tif 000019
【図９】
2009053760.tif 000020
【図１０】
2009053760.tif 000021
【図１１】
2009053760.tif 000022
【図１２】
2009053760.tif 000023
【図１３】
2009053760.tif 000024