(57)【要約】【課題】コストが低く、高速且つ高精度なシミュレーションが可能なデータ処理装置及びデータ処理プログラムを提供する。【解決手段】実施形態に係るデータ処理装置は、第１オブジェクトの形状を表す第１モデル、前記第１オブジェクトの変形の特性を表す変形パラメータ、第２オブジェクトの形状を表す第２モデルに基づいて、前記第１オブジェクトを前記第２オブジェクトに合わせて変形させた場合に、前記第１モデルの各点が前記第２モデルに対応して移動すべき目標位置座標を算出する制御点算出部と、前記目標位置座標と前記各点が到達する到達位置座標との差の絶対値の前記各点の重要度を考慮した総和が最小になるように、前記到達位置座標を算出する変形処理部と、を備える。【選択図】図２
2015184875.tif 000002
【特許請求の範囲】
【請求項１】
第１オブジェクトの形状を表す第１モデル、前記第１オブジェクトの変形の特性を表す変形パラメータ、第２オブジェクトの形状を表す第２モデルに基づいて、前記第１オブジェクトを前記第２オブジェクトに合わせて変形させた場合に、前記第１モデルの各点が前記第２モデルに対応して移動すべき目標位置座標を算出する制御点算出部と、
前記目標位置座標と前記各点が到達する到達位置座標との差の絶対値の前記各点の重要度を考慮した総和が最小になるように、前記到達位置座標を算出する変形処理部と、
を備えたデータ処理装置。
【請求項２】
前記変形パラメータには、前記到達位置座標の算出に用いる計算式のうち、前記第１モデル及び前記変形パラメータに基づいて算出可能な計算結果の少なくとも一部が含まれている請求項１記載のデータ処理装置。
【請求項３】
前記変形パラメータは、
前記第１モデルの各点が前記第１オブジェクトの変形に寄与する程度を表す制御重み情報、
前記第１モデルの各点が対応する前記第２モデル上の位置を表す対応位置情報、
前記目標位置座標と前記第２モデルとの距離を表すギャップ情報、及び、
前記第１オブジェクトの機械的性質を表す変形自由度情報、
のうち、少なくとも１つを含む請求項１または２に記載のデータ処理装置。
【請求項４】
前記制御重み情報は、前記各点が前記寄与する程度を表す一定範囲内の数値を含む請求項３記載のデータ処理装置。
【請求項５】
前記第１モデルのうち、構造パーツの前記数値は相対的に高く、装飾パーツの前記数値は相対的に低い請求項４記載のデータ処理装置。
【請求項６】
前記対応位置情報は、前記第２モデルを構成する複数のパーツのそれぞれに付されるパーツＩＤを含む請求項３記載のデータ処理装置。
【請求項７】
前記ギャップ情報は、前記第１モデルの各点が、前記第２モデルの各部から前記各部の法線方向に向かって離隔する離隔量の絶対値又は相対値を含む請求項３記載のデータ処理装置。
【請求項８】
前記第２モデルは、前記第２オブジェクトと前記第１オブジェクトとの間に配置される第３オブジェクトを適用した状態の前記第２オブジェクトを表すモデル、及び、前記第３オブジェクトを適用していない状態の前記第２オブジェクトを表すモデルの双方を含み、
前記相対値は、前記第３オブジェクトを適用していない状態の前記第２オブジェクトの表面の各点と、前記第３オブジェクトを適用した状態の前記第２オブジェクトの表面の各点との距離を基準として規定されている請求項７記載のデータ処理装置。
【請求項９】
前記第１オブジェクトのうち、前記第２オブジェクトの上方に配置される部分については、前記距離が相対的に短く、前記第２オブジェクトの側方又は下方に配置される部分については、前記距離が相対的に長い請求項３記載のデータ処理装置。
【請求項１０】
複数の種類の前記第１オブジェクトが前記第２オブジェクトに重ねて適用される場合は、前記第２オブジェクトに近い位置に配置される前記第１オブジェクトほど、前記距離が短い請求項３記載のデータ処理装置。
【請求項１１】
前記変形自由度情報は、
前記第１オブジェクトの素材の柔らかさ及び伸縮度合いのうち少なくとも１種の特性と、
前記第１モデルの各点のうち相互に隣接する点間の変形前後の変化ベクトルの許容範囲及び変化量の許容範囲のうち少なくとも一種の許容範囲と、
を含む請求項３記載のデータ処理装置。
【請求項１２】
前記変形パラメータはテクスチャ形式で記述されており、前記第１モデルにおいて設定されたテクスチャ座標に基づいてテクスチャマッピングすることにより、前記第１モデルの各点に対応付けられる請求項１〜１１のいずれか１つに記載のデータ処理装置。
【請求項１３】
変形後の前記第１モデルを変更履歴として格納する変形履歴格納部をさらに備え、
前記制御点算出部は、第１の時点よりも遅い第２の時点における前記目標位置座標を算出する際に、前記第２の時点における前記第１モデル、前記変形パラメータ及び前記第２モデルに加えて、前記第１の時点における前記変形履歴も参照する請求項１〜１２のいずれか１つに記載のデータ処理装置。
【請求項１４】
前記第１オブジェクトは衣服であり、前記第２オブジェクトは人体である請求項１〜１３のいずれか１つに記載のデータ処理装置。
【請求項１５】
コンピュータに、
第１オブジェクトの形状を表す第１モデル、前記第１オブジェクトの変形の特性を表す変形パラメータ、第２オブジェクトの形状を表す第２モデルに基づいて、前記第１オブジェクトを前記第２オブジェクトに合わせて変形させた場合に、前記第１モデルの各点が前記第２モデルに対応して移動すべき目標位置座標を算出する手順と、
前記目標位置座標と前記各点が到達する到達位置座標との差の絶対値の前記各点の重要度を考慮した総和が最小になるように、前記到達位置座標を算出する手順と、
を実行させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ処理装置及びデータ処理プログラムに関する。
【背景技術】
【０００２】
近年、実物体のセンシング技術やＣＧ（computer graphics：コンピュータグラフィックス）のレンダリング技術の進歩に伴い、ＶＲ（Virtual Reality：仮想現実）やＡＲ（Augmented Reality：拡張現実）と呼ばれる可視化の表現によって、様々なシーンのシミュレーションを行うアプリケーションが出現してきている。例えば、仮想試着シミュレーションや仮想設置シミュレーションが挙げられる。
【０００３】
仮想試着シミュレーションでは、実写の映像から人体の体型や姿勢をセンシングして人体モデルを生成し、その人体モデルの形状に応じて衣服モデルを変形し合成することで、仮想的に人が衣服を試着しているような体験をすることができる。また仮想設置シミュレーションでは、実写の映像からテーブルやベッド等の家具又は寝具をセンシングして家具・寝具モデルを生成し、その家具・寝具モデルの形状に応じて、テーブルクロスやシーツ等のモデルを変形し合成することで、仮想的に部屋のインテリアを変えるような体験をすることができる。被合成オブジェクト（人体、テーブル、ベッド等）も合成オブジェクト（衣服、テーブルクロス、シーツ等）もどちらもＣＧで可視化するとＶＲ表現となり、被合成オブジェクトを実写、合成オブジェクトをＣＧで可視化するとＡＲ表現となる。
【０００４】
このようなアプリケーションにおいては、被合成オブジェクトのモデル形状に応じて合成オブジェクトのモデルを仮想的に変形させる技術が必要である。モデルを変形させる方法には、例えば、合成オブジェクトの機械的特性や重力等を加味した物理シミュレーションによって行う方法がある。また、予め複数の種類の被合成オブジェクトを想定し、これらの被合成オブジェクトに合成オブジェクトを適合させたときの変形を計算し、この計算結果を蓄積しておき、現実に被合成オブジェクトが現れたときに、蓄積された計算結果の中から、現実の被合成オブジェクトに最も近い計算結果を選択するという方法もある。
【０００５】
しかしながら、物理シミュレーションによる方法は、コンピュータ資源を多く必要とし、計算時間が長くなりやすいという問題がある。また、予め計算結果を蓄積しておく方法は、事前に膨大なシミュレーションが必要であると共に、実際とは異なる被合成オブジェクトを用いた計算結果を代用するため、計算の精度が低くなりやすいという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２３０５６３号公報
【特許文献２】米国特許ＵＳ１１／１５８，４２８号公報
【０００７】
【非特許文献１】Jituo Li et al., "Fitting 3D garment onto individual human models,"  Computers & Graphics 34, 2010. (Chinese Academy of Sciences)
【非特許文献２】Peng Guan et al., "DRAPE: DRessing Any PErson," SIGGRAPH, 2012. (Brown University)
【発明の概要】
【発明が解決しようとする課題】
【０００８】
実施形態の目的は、コストが低く、高速且つ高精度なシミュレーションが可能なデータ処理装置及びデータ処理プログラムを提供することである。
【課題を解決するための手段】
【０００９】
実施形態に係るデータ処理装置は、第１オブジェクトの形状を表す第１モデル、前記第１オブジェクトの変形の特性を表す変形パラメータ、第２オブジェクトの形状を表す第２モデルに基づいて、前記第１オブジェクトを前記第２オブジェクトに合わせて変形させた場合に、前記第１モデルの各点が前記第２モデルに対応して移動すべき目標位置座標を算出する制御点算出部と、前記目標位置座標と前記各点が到達する到達位置座標との差の絶対値の前記各点の重要度を考慮した総和が最小になるように、前記到達位置座標を算出する変形処理部と、を備える。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係るデータ処理装置を例示するブロック図である。
【図２】第１の実施形態に係るデータ処理方法におけるデータの変化を模式的に例示する図である。
【図３】第１の実施形態に係るデータ処理方法を例示するフローチャート図である。
【図４】第１の実施形態における衣服モデルを例示する図である。
【図５】テクスチャ形式の制御重み情報を例示する図である。
【図６】ギャップ情報を絶対値として指定する場合を例示する図である。
【図７】ギャップ情報を相対値として指定する場合を例示する図である。
【図８】人体モデルを例示する図である。
【図９】第２の実施形態に係るデータ処理装置を例示するブロック図である。
【図１０】（ａ）は時刻（ｔ−１）における変形履歴を例示する図であり、（ｂ）は時刻ｔにおける制御点算出方法を例示する図である。
【図１１】第２の実施形態に係るデータ処理方法を例示するタイムチャート図である。
【図１２】第２の実施形態に係るデータ処理方法を例示するフローチャート図である。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
以下、図面を参照しつつ、本発明の実施形態について説明する。
先ず、第１の実施形態について説明する。
本実施形態では、被合成オブジェクト（第２オブジェクト）の形状に応じて合成オブジェクト（第１オブジェクト）のモデルを変形させる一連のデータ処理を具体的に示す。被合成オブジェクトとしては人体を例に挙げ、合成オブジェクトとしては衣服を例に挙げて説明する。特に、変形パラメータの内容及びその使用方法について詳細に説明する。
【００１２】
≪データ処理装置≫
本実施形態に係るデータ処理装置は、被合成オブジェクトに合成オブジェクトを適用したときに、被合成オブジェクトに合わせて変形する合成オブジェクトの変形後の形状をシミュレートするデータ処理装置である。より具体的には、衣服を人体に仮想的に着用させた場合の衣服の変形をシミュレートする装置である。なお、本明細書において、「合成オブジェクトを被合成オブジェクトに適用する」とは、合成オブジェクトの形状を被合成オブジェクトの形状にフィットするように変形させることをいい、例えば、「衣服を人体に着用させる」ことを含む概念である。
【００１３】
図１は、本実施形態に係るデータ処理装置を例示するブロック図である。
図１に示すように、本実施形態に係るデータ処理装置１においては、衣服モデル取得部１１、人体モデル取得部１２、変形パラメータ取得部１３、制御点算出部１４及び変形処理部１５が設けられている。
【００１４】
また、データ処理装置１には、合成モデル（第１モデル）である衣服モデルＤ１と、被合成モデル（第２モデル）である人体モデルＤ２と、衣服モデルの変形パラメータＤ３が入力される。衣服モデルＤ１は、合成オブジェクトである衣服の形状を表すデータであり、変形パラメータＤ３は、衣服の変形の特性を表すデータである。また、人体モデルＤ２は、被合成オブジェクトである人体の形状を表すデータである。衣服モデルＤ１、人体モデルＤ２及び変形パラメータＤ３の詳細は後述する。
【００１５】
衣服モデル取得部１１は、データ処理装置１の外部から衣服モデルＤ１を取得する。人体モデル取得部１２は、データ処理装置１の外部から人体モデルＤ２を取得する。変形パラメータ取得部１３は、データ処理装置１の外部から変形パラメータＤ３を取得する。
【００１６】
制御点算出部１４は、衣服モデルＤ１、人体モデルＤ２及び変形パラメータＤ３に基づいて、人体に衣服を着用させた場合において、衣服モデルＤ１の各点が人体モデルＤ２に対応して移動すべき目標位置座標を算出する。
【００１７】
変形処理部１５は、衣服モデルＤ１の各点の目標位置座標と各点が実際に到達する到達位置座標との差の絶対値の総和であって、各点の重要度を考慮した総和が最小になるように、到達位置座標を算出する。衣服の変形は、衣服の各点間の関係や衣服の素材の伸び縮みの許容量等によって制約されるため、変形後の衣服モデルにおける各点の到達位置座標は、目標位置座標とは異なる可能性がある。以上の処理を経ることにより、衣服モデルＤ１全体としてどのように変形するかをシミュレートできる。
【００１８】
データ処理装置１は、例えば、専用のハードウェアによって実現することができる。この場合、衣服モデル取得部１１、人体モデル取得部１２、変形パラメータ取得部１３、制御点算出部１４及び変形処理部１５は、相互に別個に構成されていてもよい。
【００１９】
また、データ処理装置１は、汎用のパーソナルコンピュータにプログラムを実行させることによって実現してもよい。この場合、衣服モデル取得部１１、人体モデル取得部１２及び変形パラメータ取得部１３は、例えば、光学ドライブ、ＬＡＮ（Local Area Network）端子又はＵＳＢ（Universal Serial Bus）端子と、ＣＰＵ（central processing unit：中央演算処理装置）及びＲＡＭ（Random Access Memory）との協働によって実現されてもよい。また、制御点算出部１４及び変形処理部１５は、ＣＰＵ及びＲＡＭによって実現されてもよい。
【００２０】
≪データ処理方法≫
次に、データ処理装置１の動作、すなわち、本実施形態に係るデータ処理方法について説明する。
【００２１】
＜データ処理方法の概略＞
先ず、データ処理方法の概略を、データ処理に用いる衣服モデルＤ１、人体モデルＤ２及び変形パラメータＤ３の作成方法と合わせて説明する。
図２は、本実施形態に係るデータ処理方法におけるデータの変化を模式的に例示する図である。
図３は、本実施形態に係るデータ処理方法を例示するフローチャート図である。
【００２２】
図２に示すように、本実施形態に係るデータ処理方法は、合成オブジェクトである衣服Ｏｂ１を被合成オブジェクトである人体Ｏｂ２に仮想的に着用させたときの衣服Ｏｂ１の変形をシミュレートする方法である。
【００２３】
データ処理に先立って、衣服Ｏｂ１の形状を表す衣服モデルＤ１を作成する。衣服モデルＤ１は、例えば作業者がＣＧモデリングソフト又はＣＡＤソフト等を用いることにより作成する。なお、衣服Ｏｂ１をカメラ又は赤外線カメラ等の深度センサー付き撮影手段によって撮影して衣服画像Ｇ１を取得し、衣服画像Ｇ１に基づいてＣＧモデリングソフト又はＣＡＤソフト等によって衣服モデルＤ１を作成してもよいし、深度データから３次元構造を推定することによって衣服モデルＤ１を自動生成してもよい。また、衣服Ｏｂ１から衣服モデルＤ１の変形の特性を表す変形パラメータＤ３を作成する。
【００２４】
一方、人体Ｏｂ２を深度センサー付き撮影手段によって撮影し、人体画像Ｇ２を取得する。そして、人体画像Ｇ２に基づいて、人体Ｏｂ２の形状を表す人体モデルＤ２を生成する。
【００２５】
そして、図３のステップＳ１０１に示すように、データ処理装置１の衣服モデル取得部１１が衣服モデルＤ１を取得する。
次に、ステップＳ１０２に示すように、人体モデル取得部１２が人体モデルＤ２を取得する。
次に、ステップＳ１０３に示すように、変形パラメータ取得部１３が変形パラメータＤ３を取得する。
【００２６】
次に、ステップＳ１０４に示すように、制御点算出部１４が、衣服モデルＤ１、変形パラメータＤ３、及び人体モデルＤ２に基づいて、人体に衣服を着用させることにより、衣服を人体に合わせて変形させた場合に、衣服モデルＤ１の各点が人体モデルＤ２に対応して移動するべき位置である目標位置座標を算出する。
【００２７】
次に、ステップＳ１０５に示すように、変形処理部１５が、変形後の衣服モデルの各点の到達位置座標を算出する。このとき、目標位置座標と到達位置座標との差の絶対値の総和であって、衣服モデルＤ１の各点の重要度を考慮した総和が最小になるように、到達位置座標を調整する。
【００２８】
これにより、変形後の衣服モデルＤ４が得られる。このとき、後述するように、シミュレーションに用いる計算式のうち、衣服モデルＤ１及び変形パラメータＤ３に基づいて算出可能な計算結果の少なくとも一部は、予め計算して変形パラメータＤ３に含ませておく。これにより、シミュレーションを高速で実行することができる。
【００２９】
その後、変形後の衣服モデルＤ４を、人体画像Ｇ２に重ね合わせることにより、合成画像Ｇ３を作成することができる。本実施形態においては、この重ね合わせの処理は、データ処理装置１の外部において行う。
【００３０】
＜データ処理方法の詳細＞
以下、本実施形態に係るデータ処理方法を詳細に説明する。
先ず、本実施形態において使用するデータ、すなわち、衣服モデルＤ１、変形パラメータＤ３及び人体モデルＤ２について説明する。
【００３１】
＜衣服モデル＞
先ず、衣服モデルＤ１について説明する。
図４は、本実施形態における衣服モデルを例示する図である。
図４に示すように、変形の対象となる合成モデルである衣服モデルＤ１は、コンピュータグラフィックスのデータで構成されている。衣服モデルＤ１においては、衣服の形状を表現する複数のポリゴン（多角形）データが、複数の頂点の３次元位置座標を示す頂点座標リスト、及び、どの頂点を使ってポリゴン（多角形）を形成するかを示す頂点インデックスリストによって構成されている。図４に示す格子の交点が頂点である。
【００３２】
なお、衣服モデルＤ１は、頂点インデックスリストを用いずにポリゴン（多角形）の形成する順番を考慮した頂点座標リストのみで構成されていてもよい。また、このようなモデルデータに付随するデータとして、各頂点又は各ポリゴンの法線ベクトルが予め含まれていてもよいし、データ処理装置１内で算出されてもよい。さらに、変形パラメータＤ３がテクスチャデータとして与えられる場合には、そのテクスチャデータを各頂点に対応づけるためのテクスチャ座標が含まれていてもよい。
【００３３】
＜変形パラメータ＞
次に、変形パラメータＤ３について説明する。
変形パラメータＤ３には、例えば、制御重み情報、対応位置情報、ギャップ情報、及び、変形自由度情報が含まれている。なお、変形パラメータＤ３には、上記の情報のうちの一部のみが含まれていてもよく、上記以外の情報が含まれていてもよい。
【００３４】
＜制御重み情報＞
制御重み情報とは、衣服モデルＤ１の各頂点に対して、衣服モデルＤ１を変形させる際にどれだけの重要度で制御の対象となるべきかを示す情報である。制御重み情報としては、ある頂点を制御点とするかしないかを示す真理値（ｔｒｕｅ／ｆａｌｓｅ、若しくは、１／０）、又は、制御の重要度を示す重みの値（０．０〜１．０の間の値）を指定する。
【００３５】
具体的には、衣服モデルＤ１の襟、ポケット、ボタンといった装飾パーツは、人体モデルＤ２の形状に応じて変形させるべきものではなく、衣服モデルＤ１の他のパーツの変形に伴って変形させるべきものなので、制御点としない。従って、制御重み情報としては、０又は０に近い値が設定される。一方、衣服モデルＤ１の肩や背中の上部は、人体モデルの形状に応じて比較的厳密に変形させるべきものであるため、重要度の高い制御点とする。従って、制御重み情報としては、１又は１に近い値が設定される。また、衣服モデルＤ１の脇腹や背中の下部に関しては、人体モデルの形状に応じて変形させるもののある程度自由度を持って変形させてもよい部分であるため、重要度の低い制御点とする。従って、制御重み情報は、例えば０．４や０．６といった中間的な値が設定される。
【００３６】
一般的には、合成オブジェクトのうち、構造パーツは制御重み情報の値を相対的に高く設定し、装飾パーツは制御重み情報の値を相対的に低く設定する。また、構造パーツにおいても、重力等の作用によって被合成オブジェクトに密着する部分は制御重み情報の値をより高くする。
【００３７】
図５は、テクスチャ形式の制御重み情報を例示する図である。
図５においては、衣服モデルＤ１を衣服のパーツ毎に分解し、各パーツの各部の制御重み情報の値をグラデーションによって示している。すなわち、濃い灰色の領域は制御重み情報が１又は１に近い値であり、薄い灰色の領域は制御重み情報が中間的な値であり、白色の領域は制御重み情報が０又は０に近い値である。
【００３８】
＜対応位置情報＞
対応位置情報とは、衣服モデルＤ１上の各頂点が対応する人体モデルＤ２上の位置を表す情報である。例えば、人体モデルを複数のパーツ、例えば、前頭部、頂頭部、側頭部、後頭部、首、右肩、左肩、右上腕、左上腕、右前腕、左上腕、右手、左手、胸、背中、腹、腰、右大腿、左大腿、右下腿、左下腿、右足、左足等に分け、各パーツにパーツＩＤを付し、このパーツＩＤを衣服モデルＤ１の各頂点の属性として記録する。
【００３９】
これにより、衣服モデルＤ１を人体モデルＤ２に適合させるときに、例えば、衣服モデルＤ１の首回りの部分は人体モデルＤ２の首パーツに対応させ、衣服モデルＤ１の右上腕の袖の部分は人体モデルＤ２の右上腕のパーツに対応させる。この結果、適合位置の大きな誤りを防止できると共に、シミュレーションの計算量を低減することができる。
【００４０】
なお、パーツＩＤは衣服モデルＤ１の全ての頂点に対応させる必要はなく、一部の頂点、例えば、上述の制御重み情報の値が大きい頂点のみに対応させてもよい。また、対応位置情報として、人体モデルＤ２のパーツＩＤ毎の対応位置を探索すべき優先度を示す対応パーツ重みを用いてもよく、人体モデルＤ２の各頂点における対応位置を探索すべき優先度を示す対応点重みを用いてもよい。更に、人体の各パーツに対応したパーツＩＤではなく、より細かい単位のＩＤを用いてもよく、例えば、衣服モデルＤ１の単一のポリゴン又は複数のポリゴンからなるグループに対応したＩＤを用いてもよい。
【００４１】
＜ギャップ情報＞
ギャップ情報とは、衣服モデルＤ１の各点と人体モデルＤ２との距離の設定値を表す情報であり、衣服モデルＤ１の各制御点について、人体モデルＤ２に対してどれだけ隙間をあけて変形後の目標位置とすべきかを示す情報である。ギャップ情報は、例えば、衣服モデルＤ１の変形後における制御点の目標位置が、人体モデルの表面から人体モデルの法線方向にどれだけ離れているかを示す離隔量である。ギャップ情報は、この離隔量を絶対値又は相対値として記述する。
【００４２】
図６は、ギャップ情報を絶対値として指定する場合を例示する図である。
図６に示すように、この場合は、衣服モデルＤ１上のある制御点ＰＤ１の目標位置を、人体モデルＤ２の対応点ＰＤ２から、対応点ＰＤ２の法線方向Ｎに沿って距離ｇだけ離隔した位置とする。
【００４３】
図７は、ギャップ情報を相対値として指定する場合を例示する図である。
図７に示すように、この場合は、２種類の人体モデルを用意する。例えば、衣服モデルＤ１が示す衣服Ｏｂ１ではなく、その内側に着用するインナー衣服を想定し、インナー衣服を着用していない状態の人体モデルＤ２０と、インナー衣服を着用した状態の人体モデルＤ２１とを用意する。そして、衣服モデルＤ１の制御点ＰＤ１に対応する人体モデルＤ２０の対応点ＰＤ２０と人体モデルＤ２１の対応点ＰＤ２１との間の距離ｄを求める。このとき、衣服モデルＤ１の制御点ＰＤ１と人体モデルＤ２０の対応点ＰＤ２０との距離ｇは、距離ｄとの間で一定の関係を持ち、例えば、ｇ＝ｒ×ｄと表すことができる。そして、係数ｒを制御点ＰＤ３のギャップ情報とする。
【００４４】
ギャップ情報を設定する際には、衣服の部位や衣服の種類を考慮する。
衣服の部位を考慮してギャップ情報の設定する場合、一般的には、合成オブジェクト（例えば衣服）のうち、被合成オブジェクト（例えば人体）の上方に配置される部分については、距離ｇを相対的に短く設定し、被合成オブジェクトの側方又は下方に配置される部分については、距離ｇを相対的に長く設定する。例えば、衣服モデルの肩や背中のパーツは、人体モデルに対して密着するように距離ｇを相対的に短く設定し、衣服モデルの腕や脇腹のパーツは、人体モデルに対して余裕を持たせて着せるために距離ｇを相対的に長く設定する。
【００４５】
一方、衣服の種類を考慮してギャップ情報の設定する場合は、例えば、合成オブジェクトに複数の種類があり、被合成オブジェクトに重ねて適用される場合に、被合成オブジェクトに近い位置に配置される合成オブジェクトほど、距離ｇを短く設定する。例えば、Ｔシャツ、ワイシャツ、セーター、ジャケット、コートといった衣服の種類を考慮し、重ね着の順番に基づき、人体モデルからの厚みを考慮して設定する。具体的には、Ｔシャツやワイシャツの距離ｇは、人体モデルに密着するように比較的短く設定し、セーターの距離ｇは、Ｔシャツやワイシャツの上に着ることを考慮して、Ｔシャツやワイシャツよりも長く設定する。また、ジャケットやコートの距離ｇは、Ｔシャツ、ワイシャツ、セーターの上に着ることを考慮して、Ｔシャツ、ワイシャツ、セーターよりも長く設定する。
【００４６】
＜変形自由度情報＞
変形自由度情報とは、衣服の機械的性質を表す情報である。変形自由度情報は、例えば、衣服モデルの素材の柔らかさや伸縮度合いに応じて設定され、衣服モデル上の各頂点における隣接する頂点との間の変形前後の変化ベクトル又は変化量の許容範囲を指定する。具体的には、セーターのように歪んだり伸び縮みしやすい素材の場合には、上述の変化ベクトルや変化量の許容範囲を大きくし、皮革のように歪んだり伸び縮みしにくい素材の場合には、変化ベクトルや変化量の許容範囲を小さくする。
【００４７】
そして、上述の変形パラメータＤ３は、衣服モデルＤ１の各頂点に割り当てられる。衣服モデルＤ１の各頂点に対応する変形パラメータは、法線ベクトルと同様に、各頂点に対応した数値データとして保持されていてもよく、図５に示すようなテクスチャ形式として保持されていてもよい。変形パラメータがテクスチャデータとして与えられる場合には、衣服モデルＤ１にはテクスチャ座標が設定されている必要がある。そして、衣服モデルに設定されたテクスチャ座標に基づいてテクスチャマッピングすることで変形パラメータを衣服モデルの各頂点に対応づけることができる。また、変形パラメータに含まれる各種の情報は、単一のテクスチャにデータとして埋め込んでもよいし、それぞれ別々のテクスチャにデータとして埋め込んでもよい。
【００４８】
＜人体モデル＞
人体モデルは、衣服モデルＤ１を変形させるための基準となるモデルであり、コンピュータグラフィックスのデータで構成されている。
図８は、人体モデルを例示する図である。
【００４９】
図８に示すように、人体モデルＤ２は、人体の形状を表現する複数のポリゴン（多角形）の複数の頂点についての３次元位置座標を示す頂点座標リスト、及び、どの頂点を使ってポリゴン（多角形）を形成するかを示す頂点インデックスリストによって構成されている。図８に示す格子の交点が頂点である。また、人体モデルＤ２には、上述の如く、各部位毎に割り振られたパーツＩＤが付与されている。更に、上述の如く、ギャップ情報を相対値として付与する場合には、同一の人体に関して、インナー衣服を着用していない状態の人体モデルＤ２０及びインナー衣服を着用した状態の人体モデルＤ２１の２種類の人体モデルを用意する。
【００５０】
なお、人体モデルＤ２は、頂点インデックスリストを用いずにポリゴン（多角形）の形成する順番を考慮した頂点座標リストのみで構成されていてもよい。また、このようなデータに付随するデータとして、各頂点又は各ポリゴンの法線ベクトルが含まれていてもよいし、データ処理装置１に入力された後で算出されてもよい。
【００５１】
＜データ処理の考え方＞
以下、ステップＳ１０４における制御点の算出及びステップＳ１０５に示す変形処理の考え方について説明する。ステップＳ１０４においては、下記数式１に示すエネルギー関数を考え、このエネルギー関数のエネルギーが最小になるような解を求めるための式を立てる。そして、ステップＳ１０５において、この式を解いて、衣服の変形をシミュレートする。
【００５２】
下記数式１において、Ｅはエネルギー関数、ｍは衣服モデルの頂点のうち制御点とした頂点の数、ｃｉはｉ番目の制御点の変形後の目標位置座標、ｘｉはｉ番目の制御点の変形後の到達位置座標、λｉはｉ番目の制御点の制御の重要度を表す制御重み情報である。エネルギー関数Ｅは、目標位置座標と到達位置座標との差の二乗を、全ての制御点について重み付けして合計したものである。目標位置座標ｃｉは人体モデルＤ２、ギャップ情報及び対応位置情報に基づいて決定される。従って、下記数式１には、人体モデルＤ２、並びに、変形パラメータＤ３のうち、制御重み情報、ギャップ情報及び対応位置情報が含まれている。
【００５３】
そして、以下のデータ処理においては、エネルギー関数Ｅが最小になるように、すなわち、衣服モデルＤ１が人体モデルＤ２に基づいて決定される理想的な位置にできるだけフィットするように、到達位置座標ｘｉを求める。
【００５４】
【数１】
2015184875.tif 000003
【００５５】
上記数式１に示すエネルギー関数Ｅが最小になるような到達位置座標ｘｉを求めるために、下記数式２〜４に示す行列式を解く。下記数式２において、行列Ａの行数は衣服モデルの制御点数に相当し、列数は衣服モデルの全頂点数に相当する。制御点数は、例えば３０００程度である。また、下記数式３において、行列ｂの行数は衣服モデルの制御点数に相当する。
【００５６】
【数２】
2015184875.tif 000004
【００５７】
【数３】
2015184875.tif 000005
【００５８】
【数４】
2015184875.tif 000006
【００５９】
上記数式４を到達位置座標ｘｉについて解くと、下記数式５のようになる。到達位置座標ｘｉを求めるためには、下記数式５に示す演算を行えばよい。
【００６０】
【数５】
2015184875.tif 000007
【００６１】
上記数式５に示す演算を行うためには、（ＡＴＡ）−１といった大規模な行列の逆行列を求める必要がある。行列Ａは対称正定値行列であるため、特異値分解やコレスキー分解と呼ばれる方法を用いることで、ある程度高速に逆行列を算出することができる。しかし、実行時にその都度計算すると、処理時間が長くなるという問題がある。
【００６２】
＜制御重み情報の効果＞
そこで、行列Ａに関わるパラメータ、特に、衣服モデルのどの頂点を制御点とし、その制御点をどれだけの重要度で制御するかを表す制御重み情報を事前に決めておくことが、処理の高速化にとって有効である。行列Ａが事前に決められれば、上記数式５のうち、行列Ａの情報だけで決定できる部分、すなわち、行列（ＡＴＡ）−１ＡＴを事前に計算し、その計算結果を変形パラメータＤ３の一部として保持しておくことができ、実行時の処理時間を著しく短縮することができる。すなわち、変形パラメータＤ３に制御重み情報を含めることにより、上記数式１又は下記数式６においてエネルギー関数Ｅが最小となるような到達位置座標ｘｉを算出する際に、衣服モデルＤ１の各頂点を制御点に含めるべきかどうか、含めるのであればλｉはどのような値に設定すべきかを決定することができる。
【００６３】
＜対応位置情報及びギャップ情報の効果＞
行列ｂにおいては、実行時に高速かつ高精度にｃｉを算出できるか否かがポイントである。ｃｉすなわちｉ番目の制御点の変形後の目標位置座標は、対応する人体モデル上の点を基準として求めるため、対応する人体モデル上の点を高速かつ高精度に求めることが重要である。
【００６４】
また、対応する人体モデル上の点からどの方向にどれだけシフトさせた位置を目標位置座標とするかの決定が、変形後の衣服モデルの品質に大きく影響する。従って、対応位置情報の存在により、上記数式１又は下記数式６において目標位置座標ｃｉを設定する際に、衣服モデルＤ１の各制御点が人体モデルＤ２のどの位置に対応するかを高速且つ高精度に決定することができる。従って、変形パラメータＤ３にギャップ情報を含めることにより、上記数式１又は下記数式６において目標位置座標ｃｉを高精度に設定することができる。
【００６５】
ここまでは、制御点の移動に関わるエネルギー項のみに触れてきたが、実際にこのようなエネルギー関数を用いて変形すると、制御点としなかった頂点が元の位置に残ってしまったり、衣服モデルが表す衣服の形状が歪んでしまったりするという問題が発生する。そこで例えば、ラプラシアンメッシュ変形と呼ばれる手法のように、隣接する頂点間の位置関係を維持するようなエネルギー項を、下記数式６のように追加する。下記数式６において、ｎは衣服モデルの頂点数、μｊはｊ番目の頂点の隣接する頂点間の位置関係を維持する重要度を示すための重みである。また、Ｌはラプラシアンであり、隣接する頂点間の位置関係のベクトル表現である。
【００６６】
【数６】
2015184875.tif 000008
【００６７】
上記数式６に示すラプラシアンＬは、下記数式７及び下記数式８のように計算することができる。下記数式７及び下記数式８において、ｅはｖｊとエッジで接続されている頂点の集合を表し、ωｊｋは頂点ｖｊに対する隣接する頂点ｖｋにおける重みである。Ｌ（ｐｊ）は変形前の衣服モデルのラプラシアンであり、Ｌ（ｘｊ）は最終的に求めたい変形後の衣服モデルのラプラシアンである。
【００６８】
【数７】
2015184875.tif 000009
【００６９】
【数８】
2015184875.tif 000010
【００７０】
上記数式７及び上記数式８に示すように、エネルギー項を追加した場合、エネルギー関数の最小値を求めるための行列式は、下記数式９及び下記数式１０のように表される。
【００７１】
【数９】
2015184875.tif 000011
【００７２】
【数１０】
2015184875.tif 000012
【００７３】
行列Ａは、行数が衣服モデル上の制御点数と全頂点数との和に相当し、列数が衣服モデル上の全頂点数に相当する。また行列ｂは、行数が衣服モデル上の制御点数と全頂点数との和に相当する。エネルギー項を追加するとその分行列が大きくなるため、上述のような事前計算の効果が大きくなる。
【００７４】
＜変形自由度情報の効果＞
また、μｊはｊ番目の頂点に隣接する頂点間の位置関係を維持する重要度を示すための重みであるが、特に衣服モデルの場合、衣服の素材に応じて、歪んでも良い部分と歪むべきでない部分が存在している。このようなパラメータを予め取得することによって、衣服モデルの変形をより高精度にシミュレートできる。すなわち、上記数式１０に示すμｊには、変形自由度情報が反映されている。
【００７５】
このように、変形パラメータＤ３に変形自由度情報を含めることにより、上記数式６において、μｊを高精度に求めることができる。例えば、頂点ｖｊにおいて隣接する頂点ｖｋとの間の変形前後の変化量（伸び縮み）の許容範囲がｓｋであるとき、頂点ｖｊにおける隣接する頂点間の位置関係を維持する重要度μｊは、下記数式１１によって算出することができる。下記数式１１において、ｌは隣接する頂点の数、Ｓは伸び縮みの許容範囲ｓｋの平均値に対して重要度μｊを１とするための閾値である。下記数式１１の右辺の分母が０である場合、及び、左辺のμｊが１以上である場合は、μｊ＝１とする。
【００７６】
【数１１】
2015184875.tif 000013
【００７７】
＜制御点算出部＞
上述の処理内容を踏まえ、制御点算出部１４について詳細に説明する。
制御点算出部１４は、前述のとおり、上記数式１又は上記数式６に示すエネルギー関数に各値を代入し、そのエネルギー関数を最小化するような到達位置座標ｘｉを求めるための式を立てる。
【００７８】
先ず、制御重み情報を用いて、上記数式１又は上記数式６において、衣服モデルの各頂点を制御点に含めるべきかどうか、含めるのであればλｉはどのように設定すべきかを決める。制御重み情報が与えられていればλｉを予め設定でき、上記数式１のようなエネルギー関数を用いた場合に、上記数式２の行列Ａが決定するため、上記数式５における行列（ＡＴＡ）−１ＡＴを事前に計算することができる。
【００７９】
これに対して、変形パラメータＤ３に制御重み情報が含まれていない場合は、ラプラシアンメッシュ法によって、人体モデルＤ２との対応点を算出した後、λｉを算出することができる。しかしながら、この場合は、行列（ＡＴＡ）−１ＡＴを事前計算することができないため、人体モデルＤ２を取得した後の処理に時間がかかる。
【００８０】
次に、対応位置情報を用いて人体モデルＤ２上の対応点を求め、ギャップ情報を用いて、目標とする位置座標ｃｉを求める。このとき、人体モデルＤ２の対応点の法線ベクトルの方向と重力の方向との関係を考慮し、ギャップの値ｇを換算してもよい。ここまで算出すると、上記数式３における行列ｂが決定し、上記数式５を計算できる状態となる。
【００８１】
これに対して、変形パラメータＤ３に対応位置情報が含まれていない場合には、ラプラシアンメッシュ法によって、３次元的に領域分割し近隣の領域から対応点を探索する方法を採用することもできる。しかしながら、この場合は、計算量が多くなり、計算に要する時間が増大する。また、変形パラメータＤ３にギャップ情報が含まれていない場合には、ギャップを設けない、又は、ギャップ量を一定値とすることが考えられるが、シミュレーションの精度は低下してしまう。
【００８２】
また、上記数式６に示すエネルギー関数を用いる場合には、変形自由度情報を用いて、μｊすなわちｊ番目の頂点の隣接する頂点間の位置関係を維持する重要度を求める。変形自由度情報が与えられていればμｊを予め設定でき、上記数式９に示す行列Ａが決定するため、上記数式５に示す行列（ＡＴＡ）−１ＡＴを事前計算することができる。このように、変形パラメータＤ３に衣服の素材の変形自由度情報が含まれていれば、衣服モデルＤ１の変形をより高精度にシミュレーションできる。
【００８３】
これに対して、変形パラメータＤ３に変形自由度情報が含まれていない場合は、μｊを一定値にすることになるため、シミュレーションの精度はやや低下してしまう。
【００８４】
以上のような方法で、人体モデルＤ２及び衣服モデルＤ１の組合せ毎に上記数式５を定義し、計算できる状態にすることができる。
【００８５】
＜変形処理部＞
次に、変形処理部１５について説明する。変形処理部１５においては、決定された制御点及び各制御点の目標位置座標ｃｉに基づいて、目標位置座標と到達位置座標ｘｉとの差の絶対値の総和であって、各点の重要度を考慮した総和が最小になるように、到達位置座標を算出する。具体的には、各値を代入して完成した上記数式５の計算を実行する。計算後に、異常値を除去して再計算したり、衣服モデルの各頂点における人体モデルとの位置関係を算出して補正したりすることもできる。
【００８６】
以上説明した本実施形態に係るデータ処理方法をまとめると、下記の手順によって構成される。
＜１＞衣服の形状を表す衣服モデル、衣服の変形の特性を表す変形パラメータ、人体の形状を表す人体モデルを取得する（ステップＳ１０１〜Ｓ１０３）。
＜２＞衣服を人体に着用して変形させた場合に、衣服モデルの各点が人体に対応して移動すべき目標位置座標を算出する（ステップＳ１０４）。
＜３＞目標位置座標と衣服モデルの各点が到達する到達位置座標との差の絶対値の総和であって衣服モデルの各点の重要度を考慮した総和が最小になるように、到達位置座標を算出する（ステップＳ１０５）。
【００８７】
≪画像作成プログラム≫
上述の如く、本実施形態に係るデータ処理装置１は、汎用のコンピュータにプログラムを実行させることにより、実現することができる。この場合に用いるデータ処理プログラムは、コンピュータに、上記手順＜１＞〜＜３＞を実行させるプログラムである。
【００８８】
≪第１の実施形態の効果≫
上述の如く、本実施形態によれば、人体に衣服を仮想的に着用させたときの変形後の衣服の形状を、人体モデルＤ２に基づいてシミュレートすることができる。これにより、予め計算結果を蓄積しておく方法と比較して、事前処理コストを抑えた上で、精度が高いシミュレーション結果を得ることができる。
【００８９】
また、本実施形態によれば、行列（ＡＴＡ）−１ＡＴを事前に計算し、その計算結果を変形パラメータＤ３に埋め込んでおくことにより、上記数式５の計算時間を短縮することができる。これにより、物理シミュレーションによる方法と比較して、人体モデルＤ２を取得した後の演算時間を短くすることができる。更に、衣服中の装飾部分のように変形に直接的に関連しない部分を考慮したり、衣服の種類に応じて人体との相対的な位置関係を考慮したりすることにより、シミュレーションを効率化することができる。
【００９０】
（第２の実施形態）
次に、第２の実施形態について説明する。
本実施形態に係るデータ処理装置は、アニメーション（動画）を作成するための装置である。このデータ処理装置においては、衣服モデルの変形後に変形履歴を格納し、次のフレームの変形に利用することで、人体の動きに追従して衣服を変形させることができ、高品質なアニメーションを作成することができる。
【００９１】
≪データ処理装置≫
図９は、本実施形態に係るデータ処理装置を例示するブロック図である。
図９に示すように、本実施形態に係るデータ処理装置２においては、前述の第１の実施形態に係るデータ処理装置１（図１参照）の構成に加えて、変形履歴格納部１６が設けられている。変形履歴格納部１６は、変形処理部１５によって行われた衣服モデルＤ１の変形シミュレーションの結果を、変更履歴として格納する。変形履歴格納部１６は、例えば、ＲＡＭによって構成することができる。
【００９２】
また、制御点算出部１４は、第１の時点及びそれよりも遅い第２の時点において変形のシミュレーションを行う場合に、第２の時点においては、衣服モデルＤ１、変形パラメータＤ３及び第２の時点における人体モデルＤ２に加えて、第１の時点における変形履歴も参照して、衣服モデルＤ１の各点の目標位置座標Ｃｉを算出する。
以下、各部の構成のうち、前述の第１の実施形態とは異なる部分を詳細に説明する。
【００９３】
＜変形履歴格納部＞
先ず、変形履歴格納部１６について説明する。
変形履歴格納部１６においては、変形処理部１５によって算出された変形後の衣服モデルＤ４を変形履歴として格納する。変形履歴には、変形処理部１５が算出した変形後の衣服モデルＤ４に加えて、制御点算出部１４が上記数式５を導出する際に利用した計算済みの行列（ＡＴＡ）−１ＡＴ、上記数式３又は上記数式１０に記載の行列ｂを導出する際に利用した各制御点における人体モデル上の対応点の情報、ｉ番目の制御点の変形後の目標位置座標ｃｉの情報も含まれる。そして、制御点算出部１４及び変形処理部１５において、次のフレームの処理を行う際に、これらの履歴情報を利用する。
【００９４】
＜制御点算出部＞
次に、制御点算出部１４について説明する。
制御点算出部１４は、取得した衣服モデルＤ１、変形パラメータＤ３及び人体モデルＤ２に加えて、変形履歴格納部１６から読み出した変形履歴も考慮して、制御点を決定し、各制御点における変形後の目標位置座標を算出する。このとき、変形履歴格納部１６に格納した計算済みの行列（ＡＴＡ）−１ＡＴに関しては、常時再利用できるため、全てのフレームにおいて再利用していく。
【００９５】
その他の変形履歴については、その再利用方法に応じて以下の３パターンに分けられる。
【００９６】
（１）対応点の情報及び目標位置座標をどちらも再利用するパターン
このパターンは、フレーム間の連続性が良好に保たれる一方、単一フレームで第１の実施形態と同様の処理を行った場合の結果と乖離するリスクが大きい。
図１０（ａ）は時刻（ｔ−１）における変形履歴を例示する図であり、（ｂ）は時刻ｔにおける制御点算出方法を例示する図である。
なお、時刻（ｔ−１）は、時刻ｔよりも１フレーム前の時刻である。
【００９７】
先ず、図１０（ａ）及び（ｂ）を参照して、衣服モデルＤ１のある制御点に対応する人体モデルＤ２の対応点を再利用する場合について説明する。この場合、時刻（ｔ−１）において、人体モデルＤ２のあるポリゴン内のある位置を対応点としたときに、時刻ｔにおいて、同じポリゴンの同位置を対応点とする。
【００９８】
次に、衣服モデルＤ１の制御点の目標位置座標を再利用する場合について説明する。時刻（ｔ−１）において、ある制御点の目標位置をｐ１、到達位置をｐ２とする。このとき、目標位置ｐ１及び到達位置ｐ２は、時刻（ｔ−１）における人体モデルのポリゴン、法線ベクトル、ポリゴン面上の特定のベクトルに対して所定の位置関係にある。次に、時刻ｔにおいて、時刻ｔにおける人体モデルのポリゴン、法線ベクトル、ポリゴン面上の特定のベクトルに対して、上記所定の位置関係にある位置ｐ１’及び位置ｐ２’を算出する。そして、位置ｐ１’又は位置ｐ２’を時刻ｔにおける目標位置とする。このように過去のフレームの履歴を利用するだけで、上記数式５を計算できる状態になる。
【００９９】
（２）対応点の情報のみ再利用するパターン
このパターンは、単一フレームで第１の実施形態と同様の処理をしたときの結果と近くなる一方、フレーム間の連続性が若干破綻する可能性がある。このパターンでは、対応点の情報だけを再利用し、その後の制御点の目標位置座標の算出は、第１の実施形態と同様に変形パラメータＤ３を利用して新たに算出する。このように一部の変形履歴を利用し、残りは新たに計算することで、ある程度の連続性を確保しながら実態に即したシミュレーションを行うことができる。
【０１００】
（３）対応点の情報及び目標位置座標をどちらも再利用しないパターン
このパターンは、単一フレームで第１の実施形態と同様の処理をしたときの結果と等しくなる一方、フレーム間の連続性が大きく破綻する可能性がある。このパターンでは、計算済みの行列（ＡＴＡ）−１ＡＴを再利用するだけで、他の処理は第１の実施形態と同様の処理を行う。
【０１０１】
以上のような３つのパターンをバランスよく使いながら、変形処理を行うことによって、フレーム間の連続性が保たれ、自然なアニメーションを実現することができる。
図１１は、本実施形態に係るデータ処理方法を例示するタイムチャート図である。
【０１０２】
図１１に示すように、例えば、最初のフレーム及びその後に一定の時間（フレーム数）Ｔ３だけ経過する毎に、上記パターン（３）により、過去の変形履歴を継承せずに、制御点の目標位置座標を新たに算出する。これにより、シミュレーションの精度を担保することができる。
【０１０３】
また、上記パターン（３）により制御点を算出した後、一定の時間（フレーム数）Ｔ２だけ経過する度に、上記パターン（２）により、過去の変形履歴を一部継承し、一部は新たに計算して、制御点の目標位置座標を算出する。時間Ｔ２は時間Ｔ３よりも短い。
【０１０４】
そして、上記パターン（３）及びパターン（２）による算出を行わないフレームにおいては、上記パターン（１）により、過去の変形履歴を継承して制御点の目標位置座標を算出する。これにより、フレーム間の連続性を保つことができる。
【０１０５】
このように、上述の３種類のパターンを適度に取り混ぜて配置することで、基本的にはフレーム間の連続性を保ちつつ、一定間隔で変形パラメータを用いた再計算を行い、衣服モデルを補正する。この結果、全体的に精度が高い結果を得ることができる。
【０１０６】
＜変形処理部＞
次に、変形処理部１５について説明する。変形処理部１５では、時刻ｔにおける変形のシミュレーションを行った後に、時刻（ｔ−１）以前の変形履歴を用いることで、時間方向のフィルタリング処理を行い補正してもよい。すなわち、時刻ｔにおけるシミュレーション結果と時刻（ｔ−１）以前の変形履歴を混合して、時刻ｔの衣服モデルを作成する。例えば、下記数式１２によってフィルタリング処理を行う。これにより、フレーム間の連続性をさらに向上させることができる。下記数式１２において、ｘ’ｔは時刻ｔにおける補正後の到達位置座標であり、ｘｔは時刻ｔにおける補正前（通常の変形処理後）の到達位置座標である。また、ｒはフィルタ処理の際に参照する過去のフレーム数であり、ｋは補間係数である。
【０１０７】
【数１２】
2015184875.tif 000014
【０１０８】
なお、上記数式１２によるフィルタリング方法は一例であり、一般的な時間方向のフィルタリングも同様に利用することができる。
【０１０９】
≪データ処理方法≫
次に、データ処理装置２の動作、すなわち、本実施形態に係るデータ処理方法について説明する。
図１２は、本実施形態に係るデータ処理方法を例示するフローチャート図である。
本実施形態においては、人体モデルＤ２には、時系列的に配列された複数のフレームが存在する。
【０１１０】
先ず、図１２のステップＳ１０１に示すように、衣服モデル取得部１１が衣服モデルＤ１を取得する。
次に、ステップＳ１０３に示すように、変形パラメータ取得部１３が変形パラメータＤ３を取得する。
【０１１１】
次に、ステップＳ２０１に示すように、人体モデル取得部１２が初期フレームを設定する。すなわち、時間パラメータｔの値を０とする。
次に、ステップＳ２０２に示すように、人体モデル取得部１２がｔフレーム目の人体モデルＤ２を取得する。
【０１１２】
次に、ステップＳ２０３に示すように、制御点算出部１４が変形履歴格納部１６から（ｔ−１）フレーム目以前の変形履歴を取得する。（ｔ−１）フレーム目以前の変形履歴とは、（ｔ−１）フレーム目以前の変形処理を行った際に生成され、変形履歴格納部１６に格納されたデータである。
【０１１３】
次に、ステップＳ２０４及び図１１に示すように、時間ｔに応じた制御点算出パターンを選択する。すなわち、上記パターン（１）〜（３）のうち、いずれか１つを選択する。そして、パターン（１）を選択した場合はステップＳ２０５に進み、パターン（２）を選択した場合はステップＳ２０６に進み、パターン（３）を選択した場合はステップＳ２０７に進む。
【０１１４】
ステップＳ２０５においては、制御点算出部１４が対応点の情報及び目標位置座標の双方を再利用して、ｔフレーム目の制御点を算出する。ここでは、ｔフレームで取得した衣服モデルＤ１、変形パラメータＤ３及び人体モデルＤ２の他に、（ｔ−１）フレーム以前の変形履歴に基づいて制御点を決定し、それぞれの制御点における変形後の目標位置座標を算出する。その後、ステップＳ２０８に進む。
【０１１５】
ステップＳ２０６においては、制御点算出部１４が対応点の情報を再利用して、ｔフレーム目の制御点を決定し、その目標位置座標を算出する。その後、ステップＳ２０８に進む。
【０１１６】
ステップＳ２０７においては、制御点算出部１４が過去の変形履歴を再利用せずに、新たにｔフレーム目の制御点を決定し、その目標位置座標を算出する。その後、ステップＳ２０８に進む。
【０１１７】
次に、ステップＳ２０８に示すように、変形処理部１５がｔフレーム目の変形処理を行う。ここでは、ｔフレーム目の人体モデルＤ２に対して決定された制御点及びそれぞれの制御点についての変形後の目標位置座標に基づいて、上記数式５の計算を行い、各制御点の到達位置座標を算出する。
次に、ステップＳ２０９に示すように、変形処理部１５がｔフレーム目の変形履歴を変形履歴格納部１６に格納する。
【０１１８】
次に、ステップＳ２１０に示すように、人体モデル取得部１２がフレームを次のフレームに変更する。すなわち、時間のパラメータｔを（ｔ＋１）に変更する。
次に、ステップＳ２１１に示すように、人体モデル取得部１２が、現在のフレームが最終フレームに達したかどうかを判定する。ここでは、人体モデルＤ２の全フレーム数をＮとするとき、現在のフレームｔが最終フレームに達したかどうかを判定し、最終フレームに達していれば、すなわち、ｔ＝Ｎであれば終了し、達していなければ、すなわち、（ｔ＜Ｎであれば、ステップＳ２０２に戻る。
【０１１９】
このような処理を行うことによって、複数のフレームが存在する人体モデルＤ２に対して、フレーム毎に衣服モデルＤ１の変形をシミュレートすることができる。これにより、動く人体に衣服を適用した場合のアニメーションを作成することができる。
【０１２０】
≪第２の実施形態の効果≫
本実施形態によれば、あるフレームにおける衣服モデルの変形履歴を変形履歴格納部に格納し、次の衣服モデルの変形シミュレーションに利用することで、人体の動きに追従した衣服モデルのアニメーションを高速且つ高精度に作成することができる。
【０１２１】
なお、本発明は前述の各実施形態そのままに限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変更して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。
【０１２２】
例えば、前述の各実施形態においては、合成オブジェクトである第１オブジェクトが衣服であり、被合成オブジェクトである第２オブジェクトが人体である例を示したが、これには限定されず、第１オブジェクトは第２オブジェクトの形状に合わせて変形するものであればよい。例えば、第１オブジェクトは布地カバーであり、第２オブジェクトは家具又は寝具であってもよい。
【０１２３】
また、前述の各実施形態においては、第１モデル及び第２モデルはいずれも１種類のオブジェクトを対象にしていたが、どちらか一方、もしくは双方とも、同時に複数種類のオブジェクトを対象としてもよい。
【０１２４】
更に、前述の各実施形態に係るデータ処理装置に、変形した第１モデルと第２モデルとを合成する合成手段と、合成結果を提示する提示手段を加えることで、合成結果のＶＲ表現を実現するための映像合成装置となりうる。
【０１２５】
更にまた、前述の各実施形態に係るデータ処理装置に、変形した衣服Ｄ４と人体画像Ｇ２とを合成して合成画像Ｇ３（図２参照）を生成する合成手段と、この合成画像Ｇ３を提示する提示手段を加えることで、ＡＲ表現を実現するための映像合成装置となりうる。
【０１２６】
以上説明した実施形態によれば、コストが低く、高速且つ高精度なシミュレーションが可能なデータ処理装置及びデータ処理プログラムを実現することができる。
【０１２７】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明及びその等価物の範囲に含まれる。
【符号の説明】
【０１２８】
１、２：データ処理装置、１１：衣服モデル取得部、１２：人体モデル取得部、１３：変形パラメータ取得部、１４：制御点算出部、１５：変形処理部、１６：変形履歴格納部、ｄ：距離、Ｄ１：衣服モデル、Ｄ２、Ｄ２０、Ｄ２１：人体モデル、Ｄ３：変形パラメータ、Ｄ４：変形後の衣服モデル、ｇ：距離、Ｇ１：衣服画像、Ｇ２：人体画像、Ｇ３：合成画像、Ｎ：法線方向、Ｏｂ１：衣服、Ｏｂ２：人体、ＰＤ１：制御点、ＰＤ２：対応点
【図１】
2015184875.tif 000015
【図２】
2015184875.tif 000016
【図３】
2015184875.tif 000017
【図６】
2015184875.tif 000018
【図７】
2015184875.tif 000019
【図９】
2015184875.tif 000020
【図１０】
2015184875.tif 000021
【図１１】
2015184875.tif 000022
【図１２】
2015184875.tif 000023
【図４】
2015184875.tif 000024
【図５】
2015184875.tif 000025
【図８】
2015184875.tif 000026