(57)【特許請求の範囲】
【請求項１】
３次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、前記フレームにおける前記物体の表面を示す点の位置が、前記物体の位置を代表する第１原点に対して規定され、前記物体の位置を代表する前記第１原点の位置が第２原点に対して規定される複数のフレームを用いて、３次元コンピュータグラフィックスの物体の動作を補正する方法であって、
一のフレーム及び前記一のフレームの１つ前のフレームの対それぞれに対して、前記一のフレームにおける前記第１原点から所定の距離の範囲にある前記物体の表面を示す点の位置と、前記１つ前のフレームにおける対応する前記物体の表面を示す点の位置とに基づいて、前記一のフレームと前記１つ前のフレームとの間の前記物体のフレーム間距離を求め、
前記一のフレーム及び前記１つ前のフレームの対それぞれの前記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する前記物体の動作時間で除して平均動作速度を求め、
最初のフレームを除いた複数のフレームそれぞれに対して、前記物体の位置を代表する前記第１原点が前記第２原点に対して、最初のフレームから前記一のフレームまで前記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから前記一のフレームまでの前記フレーム間距離の和との差を求めて、前記一のフレームの補正動作距離とし、
最初のフレームを除いた複数のフレームそれぞれに対して、前記一のフレームにおける前記物体の表面を示す点の位置を、前記一のフレームの前記補正動作距離を用いて補正する、
ことをコンピュータが実行する３次元コンピュータグラフィックスの物体の動作を補正する方法。
【請求項２】
前記一のフレーム及び前記１つ前のフレームの対それぞれに対して、前記一のフレームにおける前記第１原点から所定の距離の範囲にある前記物体の表面を示す点の位置と、前記１つ前のフレームにおける対応する前記物体の表面を示す点の位置との間の距離を求め、求めた距離の最大値を、前記一のフレームと前記１つ前のフレームとの間の前記物体のフレーム間距離とする請求項１に記載の方法。
【請求項３】
最初のフレームを除いた複数のフレームそれぞれに対して、前記物体の移動に伴って前記第１原点の位置が前記第２原点に対して移動する方向と一致する方向に、前記一のフレームにおける前記物体の表面を示す点の前記第１原点に対する位置を、前記一のフレームの前記補正動作距離を用いて補正する請求項１又は２に記載の方法。
【請求項４】
前記一のフレームにおける前記第１原点から所定の距離の範囲にある前記物体の表面を示す点の位置が、前記第１原点から第２の所定の距離の範囲に含まれる場合には、前記一のフレームの補正動作距離をゼロとする請求項１〜３の何れか一項に記載の方法。
【請求項５】
前記複数のフレームは、前記物体の動作の一周期に対応する請求項１〜４の何れか一項に記載の方法。
【請求項６】
前記物体は脚部を有しており、
前記第１原点から所定の距離の範囲には、前記物体の脚部の表面が含まれる請求項１〜５の何れか一項に記載の方法。
【請求項７】
最初と最後のフレームを除いた複数のフレームそれぞれに対して、前記一のフレームにおける前記物体の表面を示す点の位置を、前記一のフレームの前記補正動作距離を用いて補正する、請求項１〜６の何れか一項に記載の３次元コンピュータグラフィックスの物体の動作を補正する方法。
【請求項８】
３次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、前記フレームにおける前記物体の表面を示す点の位置が、前記物体の位置を代表する第１原点に対して規定され、前記物体の位置を代表する前記第１原点の位置が第２原点に対して規定される複数のフレームを記憶する記憶部と、
前記記憶部に記憶された複数のフレームを読み出し、一のフレーム及び前記一のフレームの１つ前のフレームの対それぞれに対して、前記一のフレームにおける前記第１原点から所定の距離の範囲にある前記物体の表面を示す点の位置と、前記１つ前のフレームにおける対応する前記物体の表面を示す点の位置とに基づいて、前記一のフレームと前記１つ前のフレームとの間の前記物体のフレーム間距離を求め、且つ、
前記一のフレーム及び前記１つ前のフレームの対それぞれの前記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する前記物体の動作時間で除して平均動作速度を求め、且つ、
最初のフレームを除いた複数のフレームそれぞれに対して、前記物体の位置を代表する前記第１原点が前記第２原点に対して、最初のフレームから前記一のフレームまで前記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから前記一のフレームまでの前記フレーム間距離の和との差を求めて、前記一のフレームの補正動作距離とし、且つ、
最初のフレームを除いた複数のフレームそれぞれに対して、前記一のフレームにおける前記物体の表面を示す点の位置を、前記一のフレームの前記補正動作距離を用いて補正し、補正された前記一のフレームにおける前記物体の表面を示す点の位置を前記記憶部に記憶する、演算部と、
を備える３次元コンピュータグラフィックスの物体の動作を補正する装置。
【請求項９】
３次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、前記フレームにおける前記物体の表面を示す点の位置が、前記物体の位置を代表する第１原点に対して規定され、前記物体の位置を代表する前記第１原点の位置が第２原点に対して規定される複数のフレームを用いて、３次元コンピュータグラフィックスの物体の動作を補正するプログラムであって、
一のフレーム及び前記一のフレームの１つ前のフレームの対それぞれに対して、前記一のフレームにおける前記第１原点から所定の距離の範囲にある前記物体の表面を示す点の位置と、前記１つ前のフレームにおける対応する前記物体の表面を示す点の位置とに基づいて、前記一のフレームと前記１つ前のフレームとの間の前記物体のフレーム間距離を求め、
前記一のフレーム及び前記１つ前のフレームの対それぞれの前記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する前記物体の動作時間で除して平均動作速度を求め、
最初のフレームを除いた複数のフレームそれぞれに対して、前記物体の位置を代表する前記第１原点が前記第２原点に対して、最初のフレームから前記一のフレームまで前記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから前記一のフレームまでの前記フレーム間距離の和との差を求めて、前記一のフレームの補正動作距離とし、
最初のフレームを除いた複数のフレームそれぞれに対して、前記一のフレームにおける前記物体の表面を示す点の位置を、前記一のフレームの前記補正動作距離を用いて補正する、
ことをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元コンピュータグラフィックスの物体の動作を補正する方法、そのような方法を用いる装置及びそのような方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
従来、バーチャル・リアリティ（仮想現実）における模擬画像による動画を作成するために、３次元コンピュータグラフィックスが用いられている。
【０００３】
この３次元コンピュータグラフィックスを用いた動画技術は、ゲーム機、遊戯施設、博物館又は展示館等の体験施設又はアトラクション装置、自動車、列車、航空機といった乗物の運転・操縦の訓練又は研究といった種々の分野で使われている。
【０００４】
こうした模擬画像による動画では、人・動物の動作又は移動が表現される。例えば、自動車の運転模擬装置では、運転者の安全運転の教育又は反応動作の研究を目的として、運転者が見る市街地の景観の中に、人が歩行すること又は人が急に道路に飛び出すことといった人の動作又は移動が作り出される場合がある。また、列車の運行に携わる運転士又は車掌の安全教育を目的に、踏切での人の歩行又は飛び出し、駅のプラットホームでの乗客の歩行又は走り込みといった人の動作又は移動が作り出される場合がある。そして、模擬画像による動画中の人の動作又は移動は、現実のものに近く表現されることが望まれている。
【０００５】
３次元コンピュータグラフィックスを用いた模擬画像による動画技術では、人の動作は、各動作を一コマずつで示すフレームを用いて表される。各フレームにおける人の３次元コンピュータグラフィックスは、いわゆる３Ｄモデリングソフトウェアを用いて作成される。また、各フレームにおける人は、人のモデルデータにより記述される。
【０００６】
人のモデルデータは、例えば、人の関節の位置を示すモーションデータと、モーションデータを元に作成される関節間の骨格を表すボーンデータと、ボーンデータを元に人の表面を示す点の位置を表すスキンデータとを有する。
【０００７】
人のモデルデータは、通常、人の腰の位置に定められる原点、いわゆるモデリング座標系の原点、に対して規定される。そして、スキンデータの人の表面を示す点の座標は、モデリング座標系において記述される。このようにして、人の脚部又は腕部の動作が表現される。
【０００８】
また、人の移動は、いわゆるワールド座標系の原点に対するモデリング座標系の原点の位置の移動として規定される。そして、地面の上を歩行する人の移動が表現される。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−１１７６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、３Ｄモデリングソフトウェアを用いて人の動作を作成する時には、作成された人がワールド座標系においてどのような速度で移動するのかが不明な場合がある。そのため、人の動作速度と、人の移動速度とが、本来の関係とは一致しなくなる場合が生じる。
【００１１】
例えば、人の手足の動作速度に対して、人の移動速度が速い場合には、人の運動が地面の上をスケートしているように見えたりする。一方、人の手足の動作速度に対して、人の移動速度が遅い場合には、人の運動が手足をバタバタしているように見えたりする。
【００１２】
本明細書では、３次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現されるように、３次元コンピュータグラフィックスの物体の動作を補正する方法を提供することを目的とする。
【００１３】
また、本明細書では、３次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現されるように、３次元コンピュータグラフィックスの物体の動作を補正する装置を提供することを目的とする。
【００１４】
更に、本明細書では、３次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現されるように、３次元コンピュータグラフィックスの物体の動作を補正することをコンピュータに実行させるプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本明細書に開示する方法によれば、３次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、上記フレームにおける上記物体の表面を示す点の位置が、上記物体の位置を代表する原点に対して規定される複数のフレームを用いて、３次元コンピュータグラフィックスの物体の動作を補正する方法であって、一のフレーム及び上記一のフレームの１つ前のフレームの対それぞれに対して、上記一のフレームにおける上記原点から所定の距離の範囲にある上記物体の表面を示す点の位置と、上記１つ前のフレームにおける対応する上記物体の表面を示す点の位置とに基づいて、上記一のフレームと上記１つ前のフレームとの間の上記物体のフレーム間距離を求め、上記一のフレーム及び上記１つ前のフレームの対それぞれの上記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する上記物体の動作時間で除して平均動作速度を求め、最初のフレームを除いた複数のフレームそれぞれに対して、上記物体が最初のフレームから上記一のフレームまで上記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから上記一のフレームまでの上記フレーム間距離の和との差を求めて、上記一のフレームの補正動作距離とし、最初のフレームを除いた複数のフレームそれぞれに対して、上記一のフレームにおける上記物体の表面を示す点の位置を、上記一のフレームの上記補正動作距離を用いて補正する、ことをコンピュータが実行する。
【００１６】
また、本明細書に開示する３次元コンピュータグラフィックスの物体の動作を補正する装置によれば、３次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、上記フレームにおける上記物体の表面を示す点の位置が、上記物体の位置を代表する原点に対して規定される複数のフレームを記憶する記憶部と、上記記憶部に記憶された複数のフレームを読み出し、一のフレーム及び上記一のフレームの１つ前のフレームの対それぞれに対して、上記一のフレームにおける上記原点から所定の距離の範囲にある上記物体の表面を示す点の位置と、上記１つ前のフレームにおける対応する上記物体の表面を示す点の位置とに基づいて、上記一のフレームと上記１つ前のフレームとの間の上記物体のフレーム間距離を求め、且つ、上記一のフレーム及び上記１つ前のフレームの対それぞれの上記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する上記物体の動作時間で除して平均動作速度を求め、且つ、最初のフレームを除いた複数のフレームそれぞれに対して、上記物体が最初のフレームから上記一のフレームまで上記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから上記一のフレームまでの上記フレーム間距離の和との差を求めて、上記一のフレームの補正動作距離とし、且つ、最初のフレームを除いた複数のフレームそれぞれに対して、上記一のフレームにおける上記物体の表面を示す点の位置を、上記一のフレームの上記補正動作距離を用いて補正し、補正された上記一のフレームにおける上記物体の表面を示す点の位置を上記記憶部に記憶する、演算部と、を備える。
【００１７】
更に、本明細書に開示するプログラムによれば、３次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、上記フレームにおける上記物体の表面を示す点の位置が、上記物体の位置を代表する原点に対して規定される複数のフレームを用いて、３次元コンピュータグラフィックスの物体の動作を補正するプログラムであって、一のフレーム及び上記一のフレームの１つ前のフレームの対それぞれに対して、上記一のフレームにおける上記原点から所定の距離の範囲にある上記物体の表面を示す点の位置と、上記１つ前のフレームにおける対応する上記物体の表面を示す点の位置とに基づいて、上記一のフレームと上記１つ前のフレームとの間の上記物体のフレーム間距離を求め、上記一のフレーム及び上記１つ前のフレームの対それぞれの上記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する上記物体の動作時間で除して平均動作速度を求め、最初のフレームを除いた複数のフレームそれぞれに対して、上記物体が最初のフレームから上記一のフレームまで上記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから上記一のフレームまでの上記フレーム間距離の和との差を求めて、上記一のフレームの補正動作距離とし、最初のフレームを除いた複数のフレームそれぞれに対して、上記一のフレームにおける上記物体の表面を示す点の位置を、上記一のフレームの上記補正動作距離を用いて補正する、ことをコンピュータに実行させる。
【発明の効果】
【００１８】
上述した本明細書に開示する方法によれば、３次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現される。
【００１９】
また、上述した本明細書に開示する装置によれば、３次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現される。
【００２０】
更に、上述した本明細書に開示するプログラムによれば、３次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現される。
【図面の簡単な説明】
【００２１】
【図１】本明細書に開示する３次元コンピュータグラフィックスの物体の動作を補正する装置の一実施形態を示す図である。
【図２】３次元コンピュータグラフィックスの人の動作を表す２つのフレームを示す図である。
【図３】人の位置を代表する第１原点を有する第１座標系及び第１原点の位置を規定する第２原点を有する第２座標系を示す図である。
【図４】図１に示す装置の動作を説明するフローチャートである。
【図５】フレーム間動作距離及び平均移動速度を説明する図である。
【図６】フレーム間動作距離の求め方を説明する図である。
【図７】（Ａ）〜（Ｄ）は、フレームの補正動作距離の求め方を説明する図である。
【図８】補正後のフレームを示す図である。
【発明を実施するための形態】
【００２２】
以下、本明細書で開示する３次元コンピュータグラフィックスの物体の動作を補正する装置の好ましい一実施形態を、図面を参照して説明する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【００２３】
図１は、本明細書に開示する３次元コンピュータグラフィックスの物体の動作を補正する装置の一実施形態を示す図である。
【００２４】
本実施形態の装置１０は、３次元コンピュータグラフィックスの物体の動作を表す複数のフレームを用いて、３次元コンピュータグラフィックスの物体の動作を補正するものである。
【００２５】
装置１０は、図１に示すように、所定のプログラムを実行する演算部１１と、所定のプログラム及び複数のフレームを記憶する記憶部１３と、演算部１１の演算結果等を表示する表示部１３と、装置１０への情報を入力する入力部１４と、外部のネットワーク等との通信を行う通信部１５とを有する。
【００２６】
記憶部１２には、記憶媒体に記憶される所定のプログラムを記憶部１２にインストールすることにより記憶しても良い。または、記憶部１２には、所定のプログラムがネットワークを介してインストールされて記憶されても良い。
【００２７】
装置１０としては、例えば、サーバ又はパーソナルコンピュータ等のコンピュータを用いることができる。
【００２８】
記憶部１３に記憶される３次元コンピュータグラフィックスの物体の動作を表す複数のフレームは、例えば、公知の３Ｄモデリングソフトウェアを用いて作成され得る。複数のフレームは、装置１０により作成されたものでも良いし、他の装置により作成されたものであっても良い。
【００２９】
複数のフレームに含まれるフレームの例を図２に示す。
【００３０】
図２は、３次元コンピュータグラフィックスの人の動作を表す２つのフレームを示す図である。ここでは、３次元コンピュータグラフィックスの物体として人を用いている。
【００３１】
図２には、人の歩行動作を示す連続した２つのフレームが示されている。フレームｎ−１には、歩行中の人Ｂｎ−１の動作が表されており、フレームｎには、次の歩行動作を行う人Ｂｎが表わされている。
【００３２】
記憶部１２に記憶される複数のフレームは、人の動作の一周期に対応するものであることが好ましい。例えば、複数のフレームが人の歩行動作を表す場合には、複数のフレームは、人が左足を出して踏み込み、右足を出して踏み込み、もう一度左足を出す直前までの動作を含むことが好ましい。
【００３３】
各フレームにおける人は、人のモデルデータにより記述され得る。人のモデルデータは、例えば、人の関節の位置及びその回転角度を示すモーションデータと、モーションデータを元に作成される関節間の骨格を表すボーンデータと、ボーンデータを元に人の表面（輪郭）を示す点の位置を表すスキンデータとを有する。例えば、人の形状がポリゴンで表される場合には、ポリゴンは、人の表面を示す点を頂点として形成される。
【００３４】
図３は、人の位置を代表する第１原点を有する第１座標系及び第１原点の位置を規定する第２原点を有する第２座標系を示す図である。
【００３５】
スキンデータ等の人のモデルデータは、人の位置を代表する第１原点Ｒに対して規定される。第１原点Ｒは、いわゆるモデリング座標系としての第１座標系Ｓ１の原点である。第１原点Ｒは、通常、人の重心を示す腰の位置に定められる。
【００３６】
スキンデータの人の表面を示す点の座標Ｐ（ｘ、ｙ、ｚ）は、第１座標系Ｓ１において記述される。同様に、ボーンデータ及びモーションデータも、第１座標系Ｓ１において記述される。このように、人の脚部又は腕部の動作は、各フレーム内のスキンデータ等を含むモデルデータの変化として表現される。
【００３７】
また、人の移動は、いわゆるワールド座標系としての第２座標系Ｓ２の原点Ｑに対して規定される第１座標系Ｓ１の原点Ｒ（ｘ’、ｙ’、ｚ’）の位置の移動として表される。
【００３８】
人の歩行動作又は走行動作では、人は固定した地面に対して上下又は左右に運動する。このような人の運動は、第２座標系Ｓ２上の第１座標系Ｓ１の原点Ｒ（ｘ’、ｙ’、ｚ’）の移動として表される。このようにして、第１座標系Ｓ１における人の移動が表現される。ここで、人の運動は、人の動作及び移動を含む意味である。
【００３９】
また、本実施形態では、第１座標系Ｓ１のｘ軸の方向は、第２座標系Ｓ２のｘ’軸の方向と一致している。また、第１座標系Ｓ１のｙ軸の方向は、第２座標系Ｓ２のｙ’軸の方向と一致している。また、第１座標系Ｓ１のｚ軸の方向は、第２座標系Ｓ２のｚ’軸の方向と一致している。ここで、方向が一致しているとは、例えば、ｘ軸とｘ’軸とが平行であることを意味する。
【００４０】
本実施形態では、人の歩行動作又は走行動作による移動方向は、第１座標系Ｓ１のｙ軸の方向と一致している。即ち、人の歩行動作又は走行動作による移動方向は、第２座標系Ｓ２のｙ’軸の方向と一致している。
【００４１】
次に、上述した装置１０の動作を、図面を参照して、以下に説明する。
【００４２】
図４は、図１に示す装置の動作を説明するフローチャートである。図４に示す装置１０の各動作は、演算部１１が、記憶部１２に記憶された所定のプログラムを実行することにより実現される。
【００４３】
まず、ステップＳ１０において、演算部１１は、記憶部１２に記憶されたＮ個のフレームを読み出す。
【００４４】
次に、ステップＳ１２において、演算部１１は、読み出したＮ個のフレームの一のフレームｎ及びフレームｎの１つ前のフレームｎ−１の対それぞれに対して、フレームｎにおける第１原点Ｒから所定の距離の範囲Ｌにある人Ｂｎの表面を示す点の位置と、１つ前のフレームｎ−１における対応する人Ｂｎ−１の表面を示す点の位置とに基づいて、フレームｎと１つ前のフレームｎ−１との間の人のフレーム間動作距離ｄｎを求める。
【００４５】
図５は、フレーム間動作距離及び平均移動速度を説明する図である。
【００４６】
演算部１１は、フレーム１とフレーム２との間のフレーム間動作距離ｄ２から、フレームＮ−１とフレームＮとの間のフレーム間動作距離ｄＮまでのＮ−１個のフレーム間動作距離を求める。
【００４７】
図６は、フレーム間動作距離の求め方を説明する図である。
【００４８】
本実施形態では、第１原点Ｒから所定の距離の範囲Ｌには、人の脚部の表面が含まれる。本実施形態では、地面と接触して歩行又は走行する人の脚部のフレーム間の動作量に基づいて、フレーム間動作距離ｄｎを求める。具体的には、人の脚部の表面の点が含まれる所定の距離の範囲Ｌは、第１座標系Ｓ１のｚ座標の値の範囲を定めることにより決定される。人の脚部の表面の点が含まれる所定の距離の範囲Ｌは、第２座標系Ｓ２から見ると、地面から所定の高さの範囲に対応する。
【００４９】
また、第１原点Ｒから所定の距離の範囲Ｌとして、地面と接触する足の裏の部分のみを含むようにしても良い。このように、第１原点Ｒから所定の距離の範囲Ｌには、人の脚部の一部の表面が含まれていれば良い。
【００５０】
ステップＳ１２において、演算部１１は、フレームｎにおける第１原点Ｒから所定の距離の範囲Ｌに含まれる人Ｂｎの脚部の表面を示す点Ｐｎ（ｘｎ、ｙｎ、ｚｎ）の全てと、１つ前のフレームｎ−１における人Ｂｎ−１の対応する脚部の表面を示す点Ｐｎ−１（ｘｎ−１、ｙｎ−１、ｚｎ−１）との間の距離ｄを求める。点Ｐｎ（ｘｎ、ｙｎ、ｚｎ）及び点Ｐｎ−１（ｘｎ−１、ｙｎ−１、ｚｎ−１）は、共に第１座標系Ｓ１上の点であるので、距離ｄは、第１座標系Ｓ１の２点間の距離として求められる。
【００５１】
本実施形態では、演算部１１は、フレームｎの点Ｐｎと、対応するフレームｎ−１の点Ｐｎ−１との全ての対に対して、距離ｄを求め、求めた距離ｄの最大値を、フレームｎと１つ前のフレームｎ-１との間の人Ｂｎのフレーム間動作距離ｄｎとする。
【００５２】
詳しくは後述するが、フレームｎに対して、求めた距離ｄの最大値をフレーム間動作距離ｄｎとすることにより、地面に着地している足の地面との接触位置がフレーム間で保持されるので、人が地面をスケートするような運動を改善することができる。
【００５３】
なお、補正する物体の運動によっては、フレーム間動作距離ｄｎは、求めた距離ｄの最大値ではなくても良い。例えば、フレーム間動作距離ｄｎは、求めた距離ｄの平均値であっても良い。また、フレーム間動作距離ｄｎは、求めた距離ｄの最小値であっても良い。
【００５４】
次に、ステップＳ１４において、演算部１１は、２番目のフレーム２から最後のフレームＮまでのフレームｎ及び１つ前のフレームｎ−１の対それぞれのフレーム間動作距離ｄｎの和Ｓを求め、この和Ｓを、Ｎ個のフレームの最初から最後のフレームまでの動作に要する人の動作時間Ｔで除して平均動作速度Ｖａｖを求める。
【００５５】
ここで、人の動作時間Ｔは、図５に示すように、フレームとフレームとの間の時間間隔であるフレーム間隔ΔｔとＮ−１との積により求められる。フレーム間隔Δｔは、あらかじめＮ個のフレームと共に与えられる数値である。
【００５６】
次に、ステップＳ１６において、演算部１１は、最初のフレーム１を除いたＮ−１個のフレームそれぞれに対して、人が最初のフレーム１からフレームｎまで平均動作速度Ｖａｖで動作した場合の仮想動作距離Ｇｎと、最初のフレーム１からフレームｎまでのフレーム間動作距離ｄｎの和Ｓｎとの差Ｓｎ−Ｇｎを求め、この差をフレームｎの補正動作距離ｅｎとする。
【００５７】
図７（Ａ）〜図７（Ｄ）は、フレームの補正動作距離の求め方を説明する図である。
【００５８】
図７（Ａ）は、人が最初のフレーム１からフレームｎまで平均動作速度Ｖａｖで動作した場合の仮想動作距離Ｇｎを示している。仮想動作距離Ｇｎは、最初のフレーム１からフレームｎまでのフレーム間仮想動作距離ｄａｖの和として求められる。フレーム間仮想動作距離ｄａｖは、図５に示すように、フレーム間隔Δｔと平均動作速度Ｖａｖとの積として求められる。
【００５９】
図７（Ｃ）は、最初のフレーム１からフレームｎまでのフレーム間動作距離ｄｎの和Ｓｎを示している。図７（Ｃ）では、フレーム間動作距離は、最後のフレームＮまで求められている。図７（Ｃ）に示す例では、最後のフレームＮの人の表面を示す点の位置の補正も行う。
【００６０】
図７（Ｂ）は、フレームｎの補正動作距離ｅｎを示している。補正動作距離ｅｎは、仮想動作距離Ｇｎが和Ｓｎよりも大きければ正の値となり、仮想動作距離Ｇｎが和Ｓｎよりも小さければ負の値となる。図７（Ｂ）では、補正動作距離は、最後のフレームＮまで求められている。
【００６１】
図７（Ｄ）は、最初のフレーム１から、フレームＮ−１までのフレーム間動作距離ｄｎの和を示している。図７（Ｄ）では、フレーム間動作距離は、フレームＮ−１まで求められている。図７（Ｄ）に示す例では、最後のフレームＮの人の表面を示す点の位置の補正は行わない。
【００６２】
ここで、フレームｎの補正動作距離ｅｎを求める際に、フレームｎにおいて、人の脚部が地面と接触していない場合には、補正動作距離ｅｎをゼロとしても良い。地面の位置は、第１座標系Ｓ１におけるｚ軸の位置として定められるので、演算部１１は、人の脚部の表面を示す点Ｐのｚ座標の値と、地面の位置を示すｚ軸の位置とを比較することにより、人の脚部と地面との接触の有無を判断する。
【００６３】
このように、フレームｎにおける第１原点Ｒから所定の距離Ｌの範囲にある人の表面を示す点Ｐの位置が、第１原点Ｒから第２の所定の距離の範囲に含まれる場合には、フレームｎの補正動作距離ｅｎをゼロとしても良い。
【００６４】
次に、ステップＳ１８において、演算部１１は、最初のフレーム１を除いたＮ−１個のフレームそれぞれに対して、フレームｎにおける人の表面を示す点Ｐ（ｘ、ｙ、ｚ）の位置を、フレームｎの補正動作距離ｅｎを用いて補正する。
【００６５】
具体的には、演算部１１は、人の移動に伴って第１原点Ｒの位置が第２の原点Ｑに対して移動する方向と一致する方向に、フレームｎにおける人の表面を示す点Ｐの第１原点Ｒに対する位置を、フレームｎの補正動作距離ｅｎを用いて補正する。
【００６６】
即ち、演算部１１は、フレームｎにおける人の表面を示す点Ｐ（ｘ、ｙ、ｚ）の位置を、人の歩行動作又は走行動作による移動方向において、フレームｎの補正動作距離ｅｎの分だけ加えて補正する。
【００６７】
本実施形態では、人の歩行動作又は走行動作による移動方向は、第１座標系Ｓ１のｙ軸の方向と一致しているので、補正後のフレームｎにおける人の表面を示す点の位置は、点Ｐ（ｘ、ｙ、ｚ）のｙ座標に補正動作距離ｅｎを加算して、Ｐ（ｘ、ｙ＋ｅｎ、ｚ）となる。
【００６８】
このようにして、補正後のフレームｎにおける人の表面を示す点Ｐ（ｘ、ｙ、ｚ）の位置は、第１原点Ｒに対して、ｙ軸方向に補正動作距離ｅｎの分だけずらされる。
【００６９】
また、人の移動方向が、ｙ軸方向の成分と共に、ｘ軸又はｚ軸方向の成分を含む場合には、補正動作距離ｅｎを、人の移動方向のｘ成分及びｙ成分及びｚ成分に分けて、フレームｎにおける人の表面を示す点Ｐ（ｘ、ｙ、ｚ）の位置の各座標が補正される。
【００７０】
このようにして、人の表面を示す点Ｐ（ｘ、ｙ、ｚ）の位置からなるスキンデータが補正される。同様にして、モデルデータのモーションデータ及びボーンデータも補正される。
【００７１】
図８は、補正後のフレームを示す図である。
【００７２】
図８では、補正後のフレームｎの人Ｂｎの脚部と、補正後のフレームｎ−１の人Ｂｎ−１の脚部との地面との接触位置がフレーム間で保持されることが示される。従って、人の手足の動作速度に対して、人の移動速度が速い場合には、人の運動が地面の上をスケートしているように見えることが防止される。一方、人の手足の動作速度に対して、人の移動速度が遅い場合には、人の運動が手足をバタバタしているように見えることが防止されることになる。
【００７３】
また、ステップＳ１８において、演算部１１は、最初のフレーム１と最後のフレームＮを除いたＮ−２個のフレームそれぞれに対して、フレームｎにおける人の表面を示す点Ｐ（ｘ、ｙ、ｚ）の位置を、フレームｎの補正動作距離ｅｎを用いて補正しても良い。この場合には、最初のフレーム１の第１原点Ｒ（ｘ１，ｙ１、ｚ１）の位置及び最後のフレームＮの第１原点Ｒ（ｘＮ、ｙＮ、ｚＮ）の位置は補正されない。これは、Ｎ個のフレームが、人の動作の一周期に対応するものである場合に、最後のフレームＮの人の位置が補正されることによる不都合を防止するためである。
【００７４】
そして、ステップＳ２０において、演算部１１は、補正された一のフレームにおける人の表面を示す点の位置を記憶部１２に記憶する。
【００７５】
上述した本実施形態の装置によれば、３次元コンピュータグラフィックスの物体の動作又は移動が現実の運動に近くなるように表現される。
【００７６】
本実施形態の装置によれば、人が等速で移動する場合には、特に実際の運動に人の近い動きを表すことができる。また、本実施形態の装置により補正された複数のフレームを用いる動画技術は、ゲーム機、遊戯施設、博物館又は展示館等の体験施設又はアトラクション装置、自動車、列車、航空機といった乗物の運転・操縦の訓練又は研究といった種々の分野で使用され得る。
【００７７】
また、複数のフレームのセットとして、移動速度が異なる２つ以上のセットを用意し、それぞれのセットに対して、上述した処理により補正後のフレームのセットを作成する。そして、移動速度が異なる２つ以上のセットを組み合わせることにより、任意の移動速度で移動する人の動作を表しても良い。
【００７８】
本発明では、上述した実施形態の３次元コンピュータグラフィックスの物体の動作を補正する方法及びそのような方法を用いる装置及びそのような方法をコンピュータに実行させるプログラムは、本発明の趣旨を逸脱しない限り適宜変更が可能である。
【００７９】
例えば、上述した実施形態では、３次元コンピュータグラフィックスの物体として、人を例にして説明されたが、３次元コンピュータグラフィックスの物体は、２足又は４足歩行する動物、鳥類又はロボット等であっても良い。
【符号の説明】
【００８０】
１０    装置
１１    演算部
１２    記憶部
１３    表示部
１４    入力部
１５    通信部
Ｂｎ、Ｂｎ−１    物体
Ｓ１    第１座標系
Ｓ２    第２座標系
Ｒ    第１原点
Ｑ    第２原点
ｄｎ    フレーム間移動量
Ｖａｖ    平均移動速度
Δｔ    フレーム間隔
ｄａｖ    平均フレーム間移動量
ｅｎ    補正動作距離
Ｌ    所定の範囲
【図１】
0005641922.tif 000002
【図２】
0005641922.tif 000003
【図３】
0005641922.tif 000004
【図４】
0005641922.tif 000005
【図５】
0005641922.tif 000006
【図６】
0005641922.tif 000007
【図７】
0005641922.tif 000008
【図８】
0005641922.tif 000009