説明

3次元コンピュータグラフィックスの物体の動作を補正する方法、そのような方法を用いる装置及びそのような方法をコンピュータに実行させるプログラム

【課題】3次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現される補正の方法を提供する。
【解決手段】本明細書に開示する方法は、3次元コンピュータグラフィックスの物体の動作を表す複数のフレームの一のフレーム及び1つ前のフレームの対それぞれに対して、一のフレームにおける原点から所定の距離の範囲にある物体の表面を示す点の位置と1つ前のフレームにおける対応する物体の表面を示す点の位置とに基づいてフレーム間距離を求め、物体が最初のフレームから一のフレームまで平均動作速度で動作した場合の仮想動作距離と、最初のフレームから一のフレームまでのフレーム間距離の和との差を求めて一のフレームの補正動作距離とし、最初のフレームを除いた複数のフレームそれぞれに対して、一のフレームにおける物体の表面を示す点の位置を、一のフレームの補正動作距離を用いて補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元コンピュータグラフィックスの物体の動作を補正する方法、そのような方法を用いる装置及びそのような方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【0002】
従来、バーチャル・リアリティ(仮想現実)における模擬画像による動画を作成するために、3次元コンピュータグラフィックスが用いられている。
【0003】
この3次元コンピュータグラフィックスを用いた動画技術は、ゲーム機、遊戯施設、博物館又は展示館等の体験施設又はアトラクション装置、自動車、列車、航空機といった乗物の運転・操縦の訓練又は研究といった種々の分野で使われている。
【0004】
こうした模擬画像による動画では、人・動物の動作又は移動が表現される。例えば、自動車の運転模擬装置では、運転者の安全運転の教育又は反応動作の研究を目的として、運転者が見る市街地の景観の中に、人が歩行すること又は人が急に道路に飛び出すことといった人の動作又は移動が作り出される場合がある。また、列車の運行に携わる運転士又は車掌の安全教育を目的に、踏切での人の歩行又は飛び出し、駅のプラットホームでの乗客の歩行又は走り込みといった人の動作又は移動が作り出される場合がある。そして、模擬画像による動画中の人の動作又は移動は、現実のものに近く表現されることが望まれている。
【0005】
3次元コンピュータグラフィックスを用いた模擬画像による動画技術では、人の動作は、各動作を一コマずつで示すフレームを用いて表される。各フレームにおける人の3次元コンピュータグラフィックスは、いわゆる3Dモデリングソフトウェアを用いて作成される。また、各フレームにおける人は、人のモデルデータにより記述される。
【0006】
人のモデルデータは、例えば、人の関節の位置を示すモーションデータと、モーションデータを元に作成される関節間の骨格を表すボーンデータと、ボーンデータを元に人の表面を示す点の位置を表すスキンデータとを有する。
【0007】
人のモデルデータは、通常、人の腰の位置に定められる原点、いわゆるモデリング座標系の原点、に対して規定される。そして、スキンデータの人の表面を示す点の座標は、モデリング座標系において記述される。このようにして、人の脚部又は腕部の動作が表現される。
【0008】
また、人の移動は、いわゆるワールド座標系の原点に対するモデリング座標系の原点の位置の移動として規定される。そして、地面の上を歩行する人の移動が表現される。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2010−117668号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、3Dモデリングソフトウェアを用いて人の動作を作成する時には、作成された人がワールド座標系においてどのような速度で移動するのかが不明な場合がある。そのため、人の動作速度と、人の移動速度とが、本来の関係とは一致しなくなる場合が生じる。
【0011】
例えば、人の手足の動作速度に対して、人の移動速度が速い場合には、人の運動が地面の上をスケートしているように見えたりする。一方、人の手足の動作速度に対して、人の移動速度が遅い場合には、人の運動が手足をバタバタしているように見えたりする。
【0012】
本明細書では、3次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現されるように、3次元コンピュータグラフィックスの物体の動作を補正する方法を提供することを目的とする。
【0013】
また、本明細書では、3次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現されるように、3次元コンピュータグラフィックスの物体の動作を補正する装置を提供することを目的とする。
【0014】
更に、本明細書では、3次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現されるように、3次元コンピュータグラフィックスの物体の動作を補正することをコンピュータに実行させるプログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
本明細書に開示する方法によれば、3次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、上記フレームにおける上記物体の表面を示す点の位置が、上記物体の位置を代表する原点に対して規定される複数のフレームを用いて、3次元コンピュータグラフィックスの物体の動作を補正する方法であって、一のフレーム及び上記一のフレームの1つ前のフレームの対それぞれに対して、上記一のフレームにおける上記原点から所定の距離の範囲にある上記物体の表面を示す点の位置と、上記1つ前のフレームにおける対応する上記物体の表面を示す点の位置とに基づいて、上記一のフレームと上記1つ前のフレームとの間の上記物体のフレーム間距離を求め、上記一のフレーム及び上記1つ前のフレームの対それぞれの上記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する上記物体の動作時間で除して平均動作速度を求め、最初のフレームを除いた複数のフレームそれぞれに対して、上記物体が最初のフレームから上記一のフレームまで上記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから上記一のフレームまでの上記フレーム間距離の和との差を求めて、上記一のフレームの補正動作距離とし、最初のフレームを除いた複数のフレームそれぞれに対して、上記一のフレームにおける上記物体の表面を示す点の位置を、上記一のフレームの上記補正動作距離を用いて補正する、ことをコンピュータが実行する。
【0016】
また、本明細書に開示する3次元コンピュータグラフィックスの物体の動作を補正する装置によれば、3次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、上記フレームにおける上記物体の表面を示す点の位置が、上記物体の位置を代表する原点に対して規定される複数のフレームを記憶する記憶部と、上記記憶部に記憶された複数のフレームを読み出し、一のフレーム及び上記一のフレームの1つ前のフレームの対それぞれに対して、上記一のフレームにおける上記原点から所定の距離の範囲にある上記物体の表面を示す点の位置と、上記1つ前のフレームにおける対応する上記物体の表面を示す点の位置とに基づいて、上記一のフレームと上記1つ前のフレームとの間の上記物体のフレーム間距離を求め、且つ、上記一のフレーム及び上記1つ前のフレームの対それぞれの上記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する上記物体の動作時間で除して平均動作速度を求め、且つ、最初のフレームを除いた複数のフレームそれぞれに対して、上記物体が最初のフレームから上記一のフレームまで上記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから上記一のフレームまでの上記フレーム間距離の和との差を求めて、上記一のフレームの補正動作距離とし、且つ、最初のフレームを除いた複数のフレームそれぞれに対して、上記一のフレームにおける上記物体の表面を示す点の位置を、上記一のフレームの上記補正動作距離を用いて補正し、補正された上記一のフレームにおける上記物体の表面を示す点の位置を上記記憶部に記憶する、演算部と、を備える。
【0017】
更に、本明細書に開示するプログラムによれば、3次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、上記フレームにおける上記物体の表面を示す点の位置が、上記物体の位置を代表する原点に対して規定される複数のフレームを用いて、3次元コンピュータグラフィックスの物体の動作を補正するプログラムであって、一のフレーム及び上記一のフレームの1つ前のフレームの対それぞれに対して、上記一のフレームにおける上記原点から所定の距離の範囲にある上記物体の表面を示す点の位置と、上記1つ前のフレームにおける対応する上記物体の表面を示す点の位置とに基づいて、上記一のフレームと上記1つ前のフレームとの間の上記物体のフレーム間距離を求め、上記一のフレーム及び上記1つ前のフレームの対それぞれの上記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する上記物体の動作時間で除して平均動作速度を求め、最初のフレームを除いた複数のフレームそれぞれに対して、上記物体が最初のフレームから上記一のフレームまで上記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから上記一のフレームまでの上記フレーム間距離の和との差を求めて、上記一のフレームの補正動作距離とし、最初のフレームを除いた複数のフレームそれぞれに対して、上記一のフレームにおける上記物体の表面を示す点の位置を、上記一のフレームの上記補正動作距離を用いて補正する、ことをコンピュータに実行させる。
【発明の効果】
【0018】
上述した本明細書に開示する方法によれば、3次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現される。
【0019】
また、上述した本明細書に開示する装置によれば、3次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現される。
【0020】
更に、上述した本明細書に開示するプログラムによれば、3次元コンピュータグラフィックスの物体の動作又は移動が現実のものに近く表現される。
【図面の簡単な説明】
【0021】
【図1】本明細書に開示する3次元コンピュータグラフィックスの物体の動作を補正する装置の一実施形態を示す図である。
【図2】3次元コンピュータグラフィックスの人の動作を表す2つのフレームを示す図である。
【図3】人の位置を代表する第1原点を有する第1座標系及び第1原点の位置を規定する第2原点を有する第2座標系を示す図である。
【図4】図1に示す装置の動作を説明するフローチャートである。
【図5】フレーム間動作距離及び平均移動速度を説明する図である。
【図6】フレーム間動作距離の求め方を説明する図である。
【図7】(A)〜(D)は、フレームの補正動作距離の求め方を説明する図である。
【図8】補正後のフレームを示す図である。
【発明を実施するための形態】
【0022】
以下、本明細書で開示する3次元コンピュータグラフィックスの物体の動作を補正する装置の好ましい一実施形態を、図面を参照して説明する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【0023】
図1は、本明細書に開示する3次元コンピュータグラフィックスの物体の動作を補正する装置の一実施形態を示す図である。
【0024】
本実施形態の装置10は、3次元コンピュータグラフィックスの物体の動作を表す複数のフレームを用いて、3次元コンピュータグラフィックスの物体の動作を補正するものである。
【0025】
装置10は、図1に示すように、所定のプログラムを実行する演算部11と、所定のプログラム及び複数のフレームを記憶する記憶部13と、演算部11の演算結果等を表示する表示部13と、装置10への情報を入力する入力部14と、外部のネットワーク等との通信を行う通信部15とを有する。
【0026】
記憶部12には、記憶媒体に記憶される所定のプログラムを記憶部12にインストールすることにより記憶しても良い。または、記憶部12には、所定のプログラムがネットワークを介してインストールされて記憶されても良い。
【0027】
装置10としては、例えば、サーバ又はパーソナルコンピュータ等のコンピュータを用いることができる。
【0028】
記憶部13に記憶される3次元コンピュータグラフィックスの物体の動作を表す複数のフレームは、例えば、公知の3Dモデリングソフトウェアを用いて作成され得る。複数のフレームは、装置10により作成されたものでも良いし、他の装置により作成されたものであっても良い。
【0029】
複数のフレームに含まれるフレームの例を図2に示す。
【0030】
図2は、3次元コンピュータグラフィックスの人の動作を表す2つのフレームを示す図である。ここでは、3次元コンピュータグラフィックスの物体として人を用いている。
【0031】
図2には、人の歩行動作を示す連続した2つのフレームが示されている。フレームn−1には、歩行中の人Bn−1の動作が表されており、フレームnには、次の歩行動作を行う人Bnが表わされている。
【0032】
記憶部12に記憶される複数のフレームは、人の動作の一周期に対応するものであることが好ましい。例えば、複数のフレームが人の歩行動作を表す場合には、複数のフレームは、人が左足を出して踏み込み、右足を出して踏み込み、もう一度左足を出す直前までの動作を含むことが好ましい。
【0033】
各フレームにおける人は、人のモデルデータにより記述され得る。人のモデルデータは、例えば、人の関節の位置及びその回転角度を示すモーションデータと、モーションデータを元に作成される関節間の骨格を表すボーンデータと、ボーンデータを元に人の表面(輪郭)を示す点の位置を表すスキンデータとを有する。例えば、人の形状がポリゴンで表される場合には、ポリゴンは、人の表面を示す点を頂点として形成される。
【0034】
図3は、人の位置を代表する第1原点を有する第1座標系及び第1原点の位置を規定する第2原点を有する第2座標系を示す図である。
【0035】
スキンデータ等の人のモデルデータは、人の位置を代表する第1原点Rに対して規定される。第1原点Rは、いわゆるモデリング座標系としての第1座標系S1の原点である。第1原点Rは、通常、人の重心を示す腰の位置に定められる。
【0036】
スキンデータの人の表面を示す点の座標P(x、y、z)は、第1座標系S1において記述される。同様に、ボーンデータ及びモーションデータも、第1座標系S1において記述される。このように、人の脚部又は腕部の動作は、各フレーム内のスキンデータ等を含むモデルデータの変化として表現される。
【0037】
また、人の移動は、いわゆるワールド座標系としての第2座標系S2の原点Qに対して規定される第1座標系S1の原点R(x’、y’、z’)の位置の移動として表される。
【0038】
人の歩行動作又は走行動作では、人は固定した地面に対して上下又は左右に運動する。このような人の運動は、第2座標系S2上の第1座標系S1の原点R(x’、y’、z’)の移動として表される。このようにして、第1座標系S1における人の移動が表現される。ここで、人の運動は、人の動作及び移動を含む意味である。
【0039】
また、本実施形態では、第1座標系S1のx軸の方向は、第2座標系S2のx’軸の方向と一致している。また、第1座標系S1のy軸の方向は、第2座標系S2のy’軸の方向と一致している。また、第1座標系S1のz軸の方向は、第2座標系S2のz’軸の方向と一致している。ここで、方向が一致しているとは、例えば、x軸とx’軸とが平行であることを意味する。
【0040】
本実施形態では、人の歩行動作又は走行動作による移動方向は、第1座標系S1のy軸の方向と一致している。即ち、人の歩行動作又は走行動作による移動方向は、第2座標系S2のy’軸の方向と一致している。
【0041】
次に、上述した装置10の動作を、図面を参照して、以下に説明する。
【0042】
図4は、図1に示す装置の動作を説明するフローチャートである。図4に示す装置10の各動作は、演算部11が、記憶部12に記憶された所定のプログラムを実行することにより実現される。
【0043】
まず、ステップS10において、演算部11は、記憶部12に記憶されたN個のフレームを読み出す。
【0044】
次に、ステップS12において、演算部11は、読み出したN個のフレームの一のフレームn及びフレームnの1つ前のフレームn−1の対それぞれに対して、フレームnにおける第1原点Rから所定の距離の範囲Lにある人Bnの表面を示す点の位置と、1つ前のフレームn−1における対応する人Bn−1の表面を示す点の位置とに基づいて、フレームnと1つ前のフレームn−1との間の人のフレーム間動作距離dnを求める。
【0045】
図5は、フレーム間動作距離及び平均移動速度を説明する図である。
【0046】
演算部11は、フレーム1とフレーム2との間のフレーム間動作距離d2から、フレームN−1とフレームNとの間のフレーム間動作距離dNまでのN−1個のフレーム間動作距離を求める。
【0047】
図6は、フレーム間動作距離の求め方を説明する図である。
【0048】
本実施形態では、第1原点Rから所定の距離の範囲Lには、人の脚部の表面が含まれる。本実施形態では、地面と接触して歩行又は走行する人の脚部のフレーム間の動作量に基づいて、フレーム間動作距離dnを求める。具体的には、人の脚部の表面の点が含まれる所定の距離の範囲Lは、第1座標系S1のz座標の値の範囲を定めることにより決定される。人の脚部の表面の点が含まれる所定の距離の範囲Lは、第2座標系S2から見ると、地面から所定の高さの範囲に対応する。
【0049】
また、第1原点Rから所定の距離の範囲Lとして、地面と接触する足の裏の部分のみを含むようにしても良い。このように、第1原点Rから所定の距離の範囲Lには、人の脚部の一部の表面が含まれていれば良い。
【0050】
ステップS12において、演算部11は、フレームnにおける第1原点Rから所定の距離の範囲Lに含まれる人Bnの脚部の表面を示す点Pn(xn、yn、zn)の全てと、1つ前のフレームn−1における人Bn−1の対応する脚部の表面を示す点Pn−1(xn−1、yn−1、zn−1)との間の距離dを求める。点Pn(xn、yn、zn)及び点Pn−1(xn−1、yn−1、zn−1)は、共に第1座標系S1上の点であるので、距離dは、第1座標系S1の2点間の距離として求められる。
【0051】
本実施形態では、演算部11は、フレームnの点Pnと、対応するフレームn−1の点Pn−1との全ての対に対して、距離dを求め、求めた距離dの最大値を、フレームnと1つ前のフレームn-1との間の人Bnのフレーム間動作距離dnとする。
【0052】
詳しくは後述するが、フレームnに対して、求めた距離dの最大値をフレーム間動作距離dnとすることにより、地面に着地している足の地面との接触位置がフレーム間で保持されるので、人が地面をスケートするような運動を改善することができる。
【0053】
なお、補正する物体の運動によっては、フレーム間動作距離dnは、求めた距離dの最大値ではなくても良い。例えば、フレーム間動作距離dnは、求めた距離dの平均値であっても良い。また、フレーム間動作距離dnは、求めた距離dの最小値であっても良い。
【0054】
次に、ステップS14において、演算部11は、2番目のフレーム2から最後のフレームNまでのフレームn及び1つ前のフレームn−1の対それぞれのフレーム間動作距離dnの和Sを求め、この和Sを、N個のフレームの最初から最後のフレームまでの動作に要する人の動作時間Tで除して平均動作速度Vavを求める。
【0055】
ここで、人の動作時間Tは、図5に示すように、フレームとフレームとの間の時間間隔であるフレーム間隔ΔtとN−1との積により求められる。フレーム間隔Δtは、あらかじめN個のフレームと共に与えられる数値である。
【0056】
次に、ステップS16において、演算部11は、最初のフレーム1を除いたN−1個のフレームそれぞれに対して、人が最初のフレーム1からフレームnまで平均動作速度Vavで動作した場合の仮想動作距離Gnと、最初のフレーム1からフレームnまでのフレーム間動作距離dnの和Snとの差Sn−Gnを求め、この差をフレームnの補正動作距離enとする。
【0057】
図7(A)〜図7(D)は、フレームの補正動作距離の求め方を説明する図である。
【0058】
図7(A)は、人が最初のフレーム1からフレームnまで平均動作速度Vavで動作した場合の仮想動作距離Gnを示している。仮想動作距離Gnは、最初のフレーム1からフレームnまでのフレーム間仮想動作距離davの和として求められる。フレーム間仮想動作距離davは、図5に示すように、フレーム間隔Δtと平均動作速度Vavとの積として求められる。
【0059】
図7(C)は、最初のフレーム1からフレームnまでのフレーム間動作距離dnの和Snを示している。図7(C)では、フレーム間動作距離は、最後のフレームNまで求められている。図7(C)に示す例では、最後のフレームNの人の表面を示す点の位置の補正も行う。
【0060】
図7(B)は、フレームnの補正動作距離enを示している。補正動作距離enは、仮想動作距離Gnが和Snよりも大きければ正の値となり、仮想動作距離Gnが和Snよりも小さければ負の値となる。図7(B)では、補正動作距離は、最後のフレームNまで求められている。
【0061】
図7(D)は、最初のフレーム1から、フレームN−1までのフレーム間動作距離dnの和を示している。図7(D)では、フレーム間動作距離は、フレームN−1まで求められている。図7(D)に示す例では、最後のフレームNの人の表面を示す点の位置の補正は行わない。
【0062】
ここで、フレームnの補正動作距離enを求める際に、フレームnにおいて、人の脚部が地面と接触していない場合には、補正動作距離enをゼロとしても良い。地面の位置は、第1座標系S1におけるz軸の位置として定められるので、演算部11は、人の脚部の表面を示す点Pのz座標の値と、地面の位置を示すz軸の位置とを比較することにより、人の脚部と地面との接触の有無を判断する。
【0063】
このように、フレームnにおける第1原点Rから所定の距離Lの範囲にある人の表面を示す点Pの位置が、第1原点Rから第2の所定の距離の範囲に含まれる場合には、フレームnの補正動作距離enをゼロとしても良い。
【0064】
次に、ステップS18において、演算部11は、最初のフレーム1を除いたN−1個のフレームそれぞれに対して、フレームnにおける人の表面を示す点P(x、y、z)の位置を、フレームnの補正動作距離enを用いて補正する。
【0065】
具体的には、演算部11は、人の移動に伴って第1原点Rの位置が第2の原点Qに対して移動する方向と一致する方向に、フレームnにおける人の表面を示す点Pの第1原点Rに対する位置を、フレームnの補正動作距離enを用いて補正する。
【0066】
即ち、演算部11は、フレームnにおける人の表面を示す点P(x、y、z)の位置を、人の歩行動作又は走行動作による移動方向において、フレームnの補正動作距離enの分だけ加えて補正する。
【0067】
本実施形態では、人の歩行動作又は走行動作による移動方向は、第1座標系S1のy軸の方向と一致しているので、補正後のフレームnにおける人の表面を示す点の位置は、点P(x、y、z)のy座標に補正動作距離enを加算して、P(x、y+en、z)となる。
【0068】
このようにして、補正後のフレームnにおける人の表面を示す点P(x、y、z)の位置は、第1原点Rに対して、y軸方向に補正動作距離enの分だけずらされる。
【0069】
また、人の移動方向が、y軸方向の成分と共に、x軸又はz軸方向の成分を含む場合には、補正動作距離enを、人の移動方向のx成分及びy成分及びz成分に分けて、フレームnにおける人の表面を示す点P(x、y、z)の位置の各座標が補正される。
【0070】
このようにして、人の表面を示す点P(x、y、z)の位置からなるスキンデータが補正される。同様にして、モデルデータのモーションデータ及びボーンデータも補正される。
【0071】
図8は、補正後のフレームを示す図である。
【0072】
図8では、補正後のフレームnの人Bnの脚部と、補正後のフレームn−1の人Bn−1の脚部との地面との接触位置がフレーム間で保持されることが示される。従って、人の手足の動作速度に対して、人の移動速度が速い場合には、人の運動が地面の上をスケートしているように見えることが防止される。一方、人の手足の動作速度に対して、人の移動速度が遅い場合には、人の運動が手足をバタバタしているように見えることが防止されることになる。
【0073】
また、ステップS18において、演算部11は、最初のフレーム1と最後のフレームNを除いたN−2個のフレームそれぞれに対して、フレームnにおける人の表面を示す点P(x、y、z)の位置を、フレームnの補正動作距離enを用いて補正しても良い。この場合には、最初のフレーム1の第1原点R(x1,y1、z1)の位置及び最後のフレームNの第1原点R(xN、yN、zN)の位置は補正されない。これは、N個のフレームが、人の動作の一周期に対応するものである場合に、最後のフレームNの人の位置が補正されることによる不都合を防止するためである。
【0074】
そして、ステップS20において、演算部11は、補正された一のフレームにおける人の表面を示す点の位置を記憶部12に記憶する。
【0075】
上述した本実施形態の装置によれば、3次元コンピュータグラフィックスの物体の動作又は移動が現実の運動に近くなるように表現される。
【0076】
本実施形態の装置によれば、人が等速で移動する場合には、特に実際の運動に人の近い動きを表すことができる。また、本実施形態の装置により補正された複数のフレームを用いる動画技術は、ゲーム機、遊戯施設、博物館又は展示館等の体験施設又はアトラクション装置、自動車、列車、航空機といった乗物の運転・操縦の訓練又は研究といった種々の分野で使用され得る。
【0077】
また、複数のフレームのセットとして、移動速度が異なる2つ以上のセットを用意し、それぞれのセットに対して、上述した処理により補正後のフレームのセットを作成する。そして、移動速度が異なる2つ以上のセットを組み合わせることにより、任意の移動速度で移動する人の動作を表しても良い。
【0078】
本発明では、上述した実施形態の3次元コンピュータグラフィックスの物体の動作を補正する方法及びそのような方法を用いる装置及びそのような方法をコンピュータに実行させるプログラムは、本発明の趣旨を逸脱しない限り適宜変更が可能である。
【0079】
例えば、上述した実施形態では、3次元コンピュータグラフィックスの物体として、人を例にして説明されたが、3次元コンピュータグラフィックスの物体は、2足又は4足歩行する動物、鳥類又はロボット等であっても良い。
【符号の説明】
【0080】
10 装置
11 演算部
12 記憶部
13 表示部
14 入力部
15 通信部
Bn、Bn−1 物体
S1 第1座標系
S2 第2座標系
R 第1原点
Q 第2原点
dn フレーム間移動量
Vav 平均移動速度
Δt フレーム間隔
dav 平均フレーム間移動量
en 補正動作距離
L 所定の範囲

【特許請求の範囲】
【請求項1】
3次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、前記フレームにおける前記物体の表面を示す点の位置が、前記物体の位置を代表する原点に対して規定される複数のフレームを用いて、3次元コンピュータグラフィックスの物体の動作を補正する方法であって、
一のフレーム及び前記一のフレームの1つ前のフレームの対それぞれに対して、前記一のフレームにおける前記原点から所定の距離の範囲にある前記物体の表面を示す点の位置と、前記1つ前のフレームにおける対応する前記物体の表面を示す点の位置とに基づいて、前記一のフレームと前記1つ前のフレームとの間の前記物体のフレーム間距離を求め、
前記一のフレーム及び前記1つ前のフレームの対それぞれの前記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する前記物体の動作時間で除して平均動作速度を求め、
最初のフレームを除いた複数のフレームそれぞれに対して、前記物体が最初のフレームから前記一のフレームまで前記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから前記一のフレームまでの前記フレーム間距離の和との差を求めて、前記一のフレームの補正動作距離とし、
最初のフレームを除いた複数のフレームそれぞれに対して、前記一のフレームにおける前記物体の表面を示す点の位置を、前記一のフレームの前記補正動作距離を用いて補正する、
ことをコンピュータが実行する3次元コンピュータグラフィックスの物体の動作を補正する方法。
【請求項2】
前記一のフレーム及び前記1つ前のフレームの対それぞれに対して、前記一のフレームにおける前記原点から所定の距離の範囲にある前記物体の表面を示す点の位置と、前記1つ前のフレームにおける対応する前記物体の表面を示す点の位置との間の距離を求め、求めた距離の最大値を、前記一のフレームと前記1つ前のフレームとの間の前記物体のフレーム間距離とする請求項1に記載の方法。
【請求項3】
前記物体の位置を代表する前記原点の位置が第2の原点に対して規定され、
最初のフレームを除いた複数のフレームそれぞれに対して、前記物体の移動に伴って前記原点の位置が前記第2の原点に対して移動する方向と一致する方向に、前記一のフレームにおける前記物体の表面を示す点の前記原点に対する位置を、前記一のフレームの前記補正動作距離を用いて補正する請求項1又は2に記載の方法。
【請求項4】
前記一のフレームにおける前記原点から所定の距離の範囲にある前記物体の表面を示す点の位置が、前記原点から第2の所定の距離の範囲に含まれる場合には、前記一のフレームの補正動作距離をゼロとする請求項1〜3の何れか一項に記載の方法。
【請求項5】
前記複数のフレームは、前記物体の動作の一周期に対応する請求項1〜4の何れか一項に記載の方法。
【請求項6】
前記物体は脚部を有しており、
前記原点から所定の距離の範囲には、前記物体の脚部の表面が含まれる請求項1〜5の何れか一項に記載の方法。
【請求項7】
最初と最後のフレームを除いた複数のフレームそれぞれに対して、前記一のフレームにおける前記物体の表面を示す点の位置を、前記一のフレームの前記補正動作距離を用いて補正する、請求項1〜6の何れか一項に記載の3次元コンピュータグラフィックスの物体の動作を補正する方法。
【請求項8】
3次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、前記フレームにおける前記物体の表面を示す点の位置が、前記物体の位置を代表する原点に対して規定される複数のフレームを記憶する記憶部と、
前記記憶部に記憶された複数のフレームを読み出し、一のフレーム及び前記一のフレームの1つ前のフレームの対それぞれに対して、前記一のフレームにおける前記原点から所定の距離の範囲にある前記物体の表面を示す点の位置と、前記1つ前のフレームにおける対応する前記物体の表面を示す点の位置とに基づいて、前記一のフレームと前記1つ前のフレームとの間の前記物体のフレーム間距離を求め、且つ、
前記一のフレーム及び前記1つ前のフレームの対それぞれの前記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する前記物体の動作時間で除して平均動作速度を求め、且つ、
最初のフレームを除いた複数のフレームそれぞれに対して、前記物体が最初のフレームから前記一のフレームまで前記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから前記一のフレームまでの前記フレーム間距離の和との差を求めて、前記一のフレームの補正動作距離とし、且つ、
最初のフレームを除いた複数のフレームそれぞれに対して、前記一のフレームにおける前記物体の表面を示す点の位置を、前記一のフレームの前記補正動作距離を用いて補正し、補正された前記一のフレームにおける前記物体の表面を示す点の位置を前記記憶部に記憶する、演算部と、
を備える3次元コンピュータグラフィックスの物体の動作を補正する装置。
【請求項9】
3次元コンピュータグラフィックスの物体の動作を表す複数のフレームであって、前記フレームにおける前記物体の表面を示す点の位置が、前記物体の位置を代表する原点に対して規定される複数のフレームを用いて、3次元コンピュータグラフィックスの物体の動作を補正するプログラムであって、
一のフレーム及び前記一のフレームの1つ前のフレームの対それぞれに対して、前記一のフレームにおける前記原点から所定の距離の範囲にある前記物体の表面を示す点の位置と、前記1つ前のフレームにおける対応する前記物体の表面を示す点の位置とに基づいて、前記一のフレームと前記1つ前のフレームとの間の前記物体のフレーム間距離を求め、
前記一のフレーム及び前記1つ前のフレームの対それぞれの前記フレーム間距離の和を、複数のフレームの最初から最後のフレームまでの動作に要する前記物体の動作時間で除して平均動作速度を求め、
最初のフレームを除いた複数のフレームそれぞれに対して、前記物体が最初のフレームから前記一のフレームまで前記平均動作速度で動作した場合の仮想動作距離と、最初のフレームから前記一のフレームまでの前記フレーム間距離の和との差を求めて、前記一のフレームの補正動作距離とし、
最初のフレームを除いた複数のフレームそれぞれに対して、前記一のフレームにおける前記物体の表面を示す点の位置を、前記一のフレームの前記補正動作距離を用いて補正する、
ことをコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−133536(P2012−133536A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−284541(P2010−284541)
【出願日】平成22年12月21日(2010.12.21)
【出願人】(000176730)三菱プレシジョン株式会社 (97)
【Fターム(参考)】