(57)【特許請求の範囲】
【請求項１】
身体に付けた衣服の動作をシミュレートする衣服シミュレーション装置であって、
前記身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶する身体モデル記憶手段と、
前記衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶する衣服モデル記憶手段と、
前記身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および前記衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を前記衣服モデル記憶手段に格納する動力学シミュレーション手段と、
前記衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出する変位量算出手段と、
前記力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子に隣接する辺の長さの変位量とに基づいて、前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から前記詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を前記詳細衣服モデル記憶手段に記憶する曲面変形手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画手段と
を備えた衣服シミュレーション装置。
【請求項２】
さらに、前記身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形手段を備えた請求項１記載の衣服シミュレーション装置。
【請求項３】
身体に付けた衣服の動作をシミュレートする衣服シミュレーション装置としてコンピュータを機能させる衣服シミュレーションプログラムであって、
前記身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶する身体モデル記憶手段と、
前記衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶する衣服モデル記憶手段と、
前記身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および前記衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を前記衣服モデル記憶手段に格納する動力学シミュレーション手段と、
前記衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出する変位量算出手段と、
前記力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子に隣接する辺の長さの変位量とに基づいて、前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から前記詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を前記詳細衣服モデル記憶手段に記憶する曲面変形手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画手段と
してコンピュータを機能させる衣服シミュレーションプログラム。
【請求項４】
さらに前記コンピュータを、前記身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形手段として機能させる請求項３記載の衣服シミュレーションプログラム。
【請求項５】
身体に付けた衣服の動作をシミュレートする衣服シミュレーション方法であって、
予め身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶した身体モデル記憶手段から前記身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、予め衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶した衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を前記衣服モデル記憶手段に格納する動力学シミュレーションステップと、
前記衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出する変位量算出ステップと、
前記力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子に隣接する辺の長さの変位量とに基づいて、前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から前記詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を前記詳細衣服モデル記憶手段に記憶する曲面変形ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画ステップと
を含む衣服シミュレーション方法。
【請求項６】
身体に付けた衣服の動作をシミュレートする衣服シミュレーション方法であって、
予め身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶した身体モデル記憶手段から前記身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、予め衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶した衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を前記衣服モデル記憶手段に格納する動力学シミュレーションステップと、
前記衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成ステップと、
前記身体モデル記憶手段から身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出する変位量算出ステップと、
前記力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子に隣接する辺の長さの変位量とに基づいて、前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から前記詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を前記詳細衣服モデル記憶手段に記憶する曲面変形ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画ステップと
を含む衣服シミュレーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、衣服の自然なアニメーションをリアルタイムに生成するための衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法に関する。
【０００２】
【従来の技術】
粗い幾何形状モデルから詳細な幾何形状モデルを生成する細分割技術（例えば、非特許文献１参照。）はモデリングなどで広く使われている。これらの技術を適用することによって、動力学シミュレーションを用いて計算された粗い衣服モデルから、滑らかな衣服モデルを生成することができる。しかし、シミュレーションに用いる元のモデルが比較的粗い場合、単純に滑らかな曲面を生成するだけでは衣服の皺などを再現することができないため、衣服に特化した何らかの曲面生成手法が必要になる。
【０００３】
近年、動力学シミュレーションと幾何学的な処理を組み合わせることによって高速に衣服シミュレーションを行うことを目標とした手法がいくつか提案されている。例えば、非特許文献２には、予め皺のデータをディスプレイスメントマップとして用意しておき、粗い衣服モデルの圧縮の程度に応じてディスプレイスメントマップを適用することで、衣服の皺を表現する手法が提案されている。
【０００４】
本発明者らは、非特許文献３において、粗い衣服モデルから詳細な衣服モデルを生成する際に、粗い衣服モデルの縮んでいる辺上に膨らみを追加する手法を提案している。また、非特許文献４には、粗い衣服モデルのシミュレーション結果に追従するように詳細な衣服モデルの形状を強制的に修正し、その後、弾性力のみを考慮して詳細な衣服モデルの簡易的なシミュレーションを行う手法が提案されている。さらに、非特許文献５には、衣服の袖など体に接している範囲を円柱としてモデル化し、揺れなどをシミュレートする手法が提案されている。
【０００５】
ところで、粒子ベースの動力学シミュレーションを計算するための数値積分のための主な解法として、イクスプリシット（Explicit）手法とインプリシット（Implicit）手法の２種類がある。例えば、非特許文献６において提案されているインプリシット手法は、イクスプリシット手法に比べてシミュレーションの刻み幅を大きくできるため高速に計算を行うことができるというメリットがある。
【０００６】
また、衣服と身体モデルの衝突判定を高速化するための手法としては、例えば、非特許文献７において提案されている方法が知られている。非特許文献７に記載の手法では、荒い衣服モデルの各粒子に身体モデルを構成する頂点のうち最も近い頂点の情報をそれぞれ持たせている。
【０００７】
【非特許文献１】
アレックス・ヴラチョス（Alex VLACHOS）、ジョルグ・ピータース（Jorg PETERS）、チャス・ボイド（Chas BOYD）、ジェイソン・エル・ミッチェル（Jason L. MITCHELL）著，“カーヴド・ピーエヌ・トライアングルス（Curved PN Triangles）”，プロシーディングズ・オブ・ザ・２００１・エイシーエム・シンポジウム・オン・インタラクティブ・スリーディ・グラフィクス（Proceedings of the 2001 ACM Symposium on Interactive 3D Graphics），（米国），エイシーエム（ACM），２００１年，ｐ．１５９−１６６
【非特許文献２】
スニル・ハダップ（Sunil HADAP）、エンドレ・バンゲルテ（Endre BANGERTE）、パスカル・ヴォリーノ（Pascal VOLINO）、ナディア・マグネナト・タルマン（Nadia MAGNENAT-THALMANN）著，“アニメーティング・リンクルズ・オン・クローズ（Animating wrinkles on clothes）”，プロシーディングズ・オブ・アイトリプルイー・ヴィジュアリゼーション’９９（Proceedings of IEEE Visualization '99），（米国），アイトリプルイー（IEEE），１９９９年，ｐ．１７５−１８２
【非特許文献３】
尾下真樹、牧之内顕文著，“リアルタイム・クロス・シミュレーション・ウィズ・スパース・パーティクルズ・アンド・カーブド・フェイシーズ（Real-time cloth simulation with sparse particles and curved faces）”，プロシーディングズ・オブ・コンピュータ・アニメーション２００１（Proceedings of Computer Animation 2001），（米国），アイトリプルイー（IEEE），２００１年，ｐ．２２０−２２７
【非特許文献４】
ヤン・ミン・カン（Young-Min KANG），ホワン・ギュ・チョ（Hwan-Gue CHO）著，“バイレイヤード・アプロキシメート・インテグレーション・フォー・ラピッド・アンド・プロージブル・アニメーション・オブ・ヴァーチャル・クロス・ウィズ・リアリスティック・リンクルズ（Bilayered approximate integration for rapid and plausible animation of virtual cloth with realistic wrinkles）”，プロシーディングズ・オブ・コンピュータ・アニメーション２００２（Proceedings of Computer Animation 2002），（米国），アイトリプルイー（IEEE），２００２年，ｐ．２０３−２１２
【非特許文献５】
フレデリック・コーディア（Frederic CORDIER）、ナディア・マグネナト・タルマン（Nadia MAGNENAT-THALMANN）著，“リアルタイム・アニメーション・オブ・ドレスト・ヴァーチャル・ヒューマンズ（Real-time animation of dressed virtual humans）”，コンピュータ・グラフィクス・フォーラム（Computer Graphics Forum），（英国），ユーログラフィクス（Eurographics），２００２年，第２１巻，第３号，ｐ．３２７−３３４
【非特許文献６】
デイヴィッド・バラフ（David BARAFF）、アンドリュー・ウィットキン（Andrew WITKIN）著，“ラージ・ステップス・イン・クロス・シミュレーション（Large steps in cloth simulation）”，プロシーディングズ・オブ・シググラフ９８（Proceedings of SIGGRAPH 98），（米国），エイシーエム（ACM），１９９８年，ｐ．４３−５４
【非特許文献７】
タケオ・イガラシ（Takeo IGARASHI）、ジェイ・エフ・ヒューズ（J. F. HUGHES）著，“クロージング・マニピュレーション（Clothing manipulation）”，プロシーディングズ・オブ・フィフティーンス・アニュアル・シンポジウム・オン・ユーザ・インターフェース・ソフトウェア・アンド・テクノロジー（Proceedings of 15th Annual Symposium on User Interface Software and Technology），（米国），エイシーエム（ACM），２００２年，ｐ．９１−１００
【０００８】
【発明が解決しようとする課題】
非特許文献２〜５に記載の手法では、衣服モデルの曲面生成時に身体モデルとの接触が考慮されておらず、生成される皺の形状も限定されている。そのため、生成される皺には不自然さが残る。
【０００９】
そこで、本発明においては、衣服モデルと身体モデルとの接触を考慮し、衣服モデルの表面に働く力に応じた細かい皺を表現可能とした衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明のシミュレーション装置は、身体に付けた衣服の動作をシミュレートする衣服シミュレーション装置であって、身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶する身体モデル記憶手段と、衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶する衣服モデル記憶手段と、身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段に格納する動力学シミュレーション手段と、衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出する変位量算出手段と、力算出手段により算出した各粒子に働く法線方向の力と変位量算出手段により算出した各粒子の周辺の長さの変位量とに基づいて、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段に記憶する曲面変形手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画手段とを備えたものである。
【００１１】
本発明の衣服シミュレーション装置は、さらに、身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形手段を備えたものとすることが望ましい。
【００１２】
本発明の衣服シミュレーションプログラムは、身体に付けた衣服の動作をシミュレートする衣服シミュレーション装置としてコンピュータを機能させるシミュレーションプログラムであって、身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶する身体モデル記憶手段と、衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶する衣服モデル記憶手段と、身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段に格納する動力学シミュレーション手段と、衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出する変位量算出手段と、力算出手段により算出した各粒子に働く法線方向の力と変位量算出手段により算出した各粒子の周辺の長さの変位量とに基づいて、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段に記憶する曲面変形手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画手段としてコンピュータを機能させるものである。
【００１３】
本発明の衣服シミュレーションプログラムは、さらにコンピュータを、身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形手段として機能させるものとすることが望ましい。
【００１４】
本発明の衣服シミュレーション方法は、身体に付けた衣服の動作をシミュレートする衣服シミュレーション方法であって、予め身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶した身体モデル記憶手段から身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、予め衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶した衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段に格納する動力学シミュレーションステップと、衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出する変位量算出ステップと、力算出手段により算出した各粒子に働く法線方向の力と変位量算出手段により算出した各粒子の周辺の長さの変位量とに基づいて、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段に記憶する曲面変形ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画ステップとを含む。
【００１５】
また、本発明の衣服シミュレーション方法は、身体に付けた衣服の動作をシミュレートする衣服シミュレーション方法であって、予め身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶した身体モデル記憶手段から身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、予め衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶した衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段に格納する動力学シミュレーションステップと、衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成ステップと、身体モデル記憶手段から身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出する変位量算出ステップと、力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子の周辺の長さの変位量とに基づいて、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段に記憶する曲面変形ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画ステップとを含む。
【００１６】
上記本発明の衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法では、身体に付けた衣服について、まず粗くモデル化した最小限の衣服モデルの各粒子の位置情報および各粒子の連結情報と身体モデルの各頂点の位置情報および各頂点の連結情報とを用いて、数値積分、追従動作演算やめり込み回避演算などの動力学シミュレーションを行うことにより、身体モデルの動作に応じた衣服モデルの運動を計算する。その後、計算された衣服モデルの各粒子の位置情報および各粒子の連結情報を元に、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出して、幾何学的な曲面生成手法を用いることで、最終的な衣服モデルの表面形状を生成する。このとき、衣服の下の身体モデルの形状に合わせて詳細な衣服モデルの表面形状を変形する。また、詳細な衣服モデルの各粒子に働く弾性力を計算し、この計算した弾性力と各粒子の周囲に粒子の位置とから各粒子に働く法線方向の力、すなわち衣服の表面に働く力を分析し、さら詳細な衣服モデルの各粒子の周辺の長さの変位量を算出することによって、衣服の皺などの細部の形状変化を計算する。このような幾何学的な処理を適用することによって、衣服の自然な表面形状を生成し、描画することができる。
【００１７】
本発明の要点の一つは、詳細な衣服モデルの各粒子に働く周囲からの弾性力を元に法線方向の変形を計算するというものである。これは、衣服のある範囲が周囲から力を受けるとき、その範囲は力が釣り合うように丸く膨らむような形状を取るという仮定に基づき、ある粒子に周囲からの力が集中しているほど、その粒子がより膨らむ方向に変化するように変形処理を行うものである。
【００１８】
一般に粒子モデルによる衣服シミュレーションでは、ある粒子に働く全ての力を合計することによって、その粒子の運動を計算する。したがって、ある粒子に周囲から大きな力が働いている場合であっても、力の合計がゼロに近ければその粒子は運動しないことになる。衣服の表面に水平な方向の運動を計算するだけであればこのような方法でも構わないが、本発明のように表面に対して垂直方向（法線方向）の変形をシミュレートする場合、単純に周囲からの力を合計するだけではなく、各方向からの力同士の影響を考慮する必要がある。そこで、本発明では、上記の法線方向の力に加えて、辺の長さを制約として考慮する。粗い衣服モデルの動力学シミュレーションの結果、ある辺が縮められている場合は、その範囲の衣服の長さが一定に保たれるように衣服の変形量を決定し、法線方向の力に応じて皺を生成する。
【００１９】
さらに、本発明の衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法では、身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行うことにより、衣服モデルが身体モデルにめり込む場合には、このめり込んでいる範囲について体の形状に合わせてめり込まないように衣服を変形し、描画することができる。
【００２０】
【発明の実施の形態】
図１は本実施形態における衣服シミュレーション装置のブロック図である。
本実施形態における衣服シミュレーション装置は、身体に付けた衣服の動作をシミュレートするものである。この衣服シミュレーション装置は、図１に示すように、身体モデル記憶手段１０、衣服モデル記憶手段１１、詳細衣服モデル記憶手段１２、動力学シミュレーション手段１３、基準曲面生成手段１４、めり込み回避変形手段１５、力算出手段１６、変位量算出手段１７、曲面変形手段１８、および描画手段１９を備える。なお、本実施形態における衣服シミュレーション装置は、上記各手段１０〜１９としてコンピュータを機能させるための衣服シミュレーションプログラムの実行により実現される。
【００２１】
以下、上記各手段１０〜１９の詳細について説明する。
〔身体モデル記憶手段１０〕
身体モデル記憶手段１０は、身体をポリゴンモデルとして表現した身体モデルについて、身体モデルを構成するポリゴンの各頂点の位置情報および各頂点の連結情報を記憶するものである。身体モデル記憶手段１０には、身体モデルの各頂点の位置情報として位置ベクトルｖi（ｉ＝１〜ｋ，ｋは身体モデルの頂点の数）を記憶する。また、身体モデル記憶手段１０に記憶する各頂点の連結情報は、各頂点の繋がり関係を示す情報である。
【００２２】
〔衣服モデル記憶手段１１〕
衣服モデル記憶手段１１は、身体と同様、衣服を粒子により粗くモデル化した衣服モデルについて、各粒子の位置情報および各粒子の連結情報を記憶するものである。衣服モデル記憶手段１１には、衣服モデルの各粒子の位置情報として位置ベクトルｑi（ｉ＝１〜ｍ，ｍは衣服モデルの粒子の数）を記憶する。また、衣服モデル記憶手段１１に記憶する各粒子の連結情報は、各粒子の繋がり関係を示す情報である。
【００２３】
〔詳細衣服モデル記憶手段１２〕
詳細衣服モデル記憶手段１２は、衣服モデル記憶手段１１に記憶された粗い衣服モデルの各粒子の位置情報および連結情報に基づいて生成した細かい衣服モデルについて、各粒子の位置情報および各粒子の連結情報を記憶するものである。詳細衣服モデル記憶手段１２には、詳細な衣服モデルの各粒子の位置情報として位置ベクトルｐi（ｉ＝１〜ｎ，ｎは詳細な衣服モデルの粒子の数）を記憶する。また、衣服モデル記憶手段１２に記憶する各粒子の連結情報は、各粒子の繋がり関係を示す情報である。
【００２４】
〔動力学シミュレーション手段１３〕
動力学シミュレーション手段１３は、身体モデル記憶手段１０から読み出した身体モデルの各頂点の位置情報（位置ベクトルｖi，ｉ＝１〜ｋ）および各頂点の連結情報、および衣服モデル記憶手段１１から読み出した衣服モデルの各粒子の位置情報（位置ベクトルｑi，ｉ＝１〜ｍ）および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、この計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段１１に格納するものである。本実施形態において行う動力学シミュレーションは、身体モデルの動作に応じた衣服モデルの大まかな運動を計算することを目的とするものであり、数値積分、追従動作演算、めり込み回避演算から構成される。
【００２５】
以下、動力学シミュレーションの詳細について説明する。
（少数粒子による動力学シミュレーション）
後述するように基準曲面生成手段１４では、少数の粒子を用いてシミュレートされた粗い衣服モデルの形状をもとに最終的な衣服の表面形状を生成する。したがって、基本的には、少数粒子の動力学シミュレーションにはどのような手法を用いても構わない。しかし、少数の粒子モデルを使って高速にシミュレーションを行い、また、次に適用する表面形状の生成処理とうまく協調するためには、いくつかの工夫が必要となる。
【００２６】
（数値積分手法）
非特許文献６において提案されているインプリシット手法では、上記のようなめり込み回避や身体動作への追従処理などの強制的に粒子の位置を修正する制約を扱いづらいという問題がある。そこで、本実施形態においては、イクスプリシット手法の一つである、４次のルンゲ・クッタ（Runge-Kutta）法を使用する。なお、一般に、ごく少数の粒子のみを扱う場合であれば、イクスプリシット手法であってもインプリシット手法と同じ程度に高速に処理することができる。
【００２７】
（力のモデル）
粒子ベースの動力学シミュレーションでは、粒子に働く各種の力（弾性力、屈折力、摩擦力、重力、空気抵抗力など）をモデル化する必要がある。衣服シミュレーションにおいてとりわけ重要とされるのが衣服の弾性力である。弾性力ｆijは２つの隣接する粒子ｉ，ｊの間に働く一種のばね力としてモデル化される。
【数１】
0004243681.tif 000002
【００２８】
ここで、ｑi，ｑjは隣接する２つの粒子の位置ベクトルであり、Ｌijは安定状態での両者の距離である。また、ｋelasticはそのパラメータである。一般に、衣服の弾性力は非常に強く、衣服の長さはほとんど変化しないという性質がある。このような衣服の特性を実現するためには、弾性力のパラメータｋelasticには大きな値を設定する必要がある。もし、ｋelasticが十分大きくなければ、衣服はゴムのように伸び縮みしてしまい、非常に不自然な印象を与えてしまう。
【００２９】
しかし、本実施形態においては、粗い衣服モデルのシミュレーションにおいて縮んでしまった範囲に皺を追加することで、衣服の長さを一定に保つように最終的な衣服の表面形状を生成する。したがって、少数粒子のシミュレーションの段階では粒子間の距離を一定に保つ必要はなく、むしろある程度粒子間の距離が縮まることを許した方が効果的に衣服の皺が生成される。しかし、衣服の長さが延びてしまっている場合は、このような方法では対応できない。そこで、本手法の弾性力のモデルでは２種類のｋelasticを用い、２つの粒子間の距離が元の長さよりも離れている場合は大きなｋelastic_compressを、元の長さよりも短い場合は小さなｋelastic_stretchを使用する。
【００３０】
また、本実施形態においては、上記の弾性力に加えて、屈折力、摩擦力、重力や、空気抵抗力などの力のモデルを導入する。これらについては、基本的に既存のイクスプリシット積分ベースの力のモデルと同様であるため詳しい説明は省略する。
【００３１】
（衝突判定とめり込み回避）
動力学シミュレーション手段１３は、身体モデル記憶手段１０から読み出した身体モデルの各頂点の位置情報（位置ベクトルｖi，ｉ＝１〜ｋ）および各頂点の連結情報、および衣服モデル記憶手段１１から読み出した衣服モデルの各粒子の位置情報（位置ベクトルｑi，ｉ＝１〜ｍ）および各粒子の連結情報に基づいて、衣服モデルの身体モデルへのめり込み回避演算を行う。
【００３２】
なお、本実施形態における動力学シミュレーション手段１３では、頂点のめり込み回避処理だけを行い、辺のめり込み回避処理を行わない。粗いモデルで無理にめり込み回避を行おうとすると、元の粗いメッシュの影響を受けて最終的に生成される形状が逆に不自然になってしまうためである。正確なめり込み回避処理は、後述の基準曲面生成手段１４により行う。
【００３３】
衣服モデルと身体モデルの衝突判定を高速化するため、非特許文献７において提案されているものと同様のアプローチを採り、粗い衣服モデルの粒子ごとに身体モデルを構成する頂点のうち最も近い頂点の情報を持たせる。この最近頂点の情報は、毎回衝突判定の前に、前回のステップの最近頂点の周囲の頂点を探索することによって更新される。衝突判定時にはこの最近頂点の位置情報を参照し、身体モデルを構成する面のうち最近頂点を含む全ての面の内側に衣服の頂点が存在するかを判定することによって、衝突判定を行う。
【００３４】
衝突判定の結果、衣服モデルの粒子が身体モデルにめり込んでいる場合は、その粒子の位置を身体モデル上の点に強制的に移動することによってめり込みを回避する。動力学シミュレーション手段１３は、この演算後の衣服モデルの各粒子の位置情報（位置ベクトルｑi，ｉ＝１〜ｍ）を衣服モデル記憶手段１１に格納する。
【００３５】
（身体の動作への追従処理）
一般に、実時間シミュレーションでは刻み幅を大きくする必要があり、必然的に身体モデルのフレーム間での動きも大きくなるため、そのままでは身体モデルが衣服モデルを突き抜けてしまう現象が生じる。このような問題を防ぐため、シミュレーションを行う前に身体モデルの姿勢変化に応じて衣服モデルの粒子の位置を強制的に修正する。
【００３６】
動力学シミュレーション手段１３は、この衣服モデルの身体モデルの動作に対する追従動作演算を、身体モデル記憶手段１０から読み出した身体モデルの各頂点の位置情報（位置ベクトルｖi，ｉ＝１〜ｋ）および各頂点の連結情報に基づいて行う。ここでも、衝突判定処理に使用した身体モデル上の最近点の情報を使用する。前ステップのシミュレーション終了時に、衣服モデルの粒子ごとに、身体モデルの最近面からの相対座標を記録しておく。
【００３７】
そして、次のステップのシミュレーションの前に、与えられた身体モデルの変形に応じて、最近面からの相対座標が保存されるように、衣服モデルの各粒子の距離を強制的に修正する。動力学シミュレーション手段１３は、この追従動作演算後の衣服モデルの各粒子の位置情報（位置ベクトルｑi，ｉ＝１〜ｍ）を衣服モデル記憶手段１１に格納する。
【００３８】
〔基準曲面生成手段１４〕
基準曲面生成手段１４は、衣服モデル記憶手段１１から読み出した衣服モデルの各粒子の位置情報（位置ベクトルｑi，ｉ＝１〜ｍ）および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報（位置ベクトルｐi，ｉ＝１〜ｎ）および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段１２に記憶するものである。
【００３９】
以下、基準曲面生成処理の詳細について説明する。
（基準となる表面形状の生成）
粗い衣服モデルから詳細な衣服モデルを生成するための細分割手法として、非特許文献１において提案されたピーエヌ・トライアングルス（ＰＮＴ）法を用いる。ピーエヌ・トライアングルス法は、ポリゴンメッシュの三角面を３次ベジェ（Bezier）曲面パッチで置き換えることで、曲面を生成する手法である。ピーエヌ・トライアングルス法によって生成された曲面は元の粗いメッシュの頂点を必ず通るため、頂点における身体モデルとの接触状態が保存されるという利点がある。
【００４０】
本実施形態においては、粗い衣服モデルのそれぞれの三角面に対応する３次ベジェ曲面パッチを、一定数の三角面に分割することで詳細な衣服モデルを生成する。詳細な衣服モデルの各粒子の制御方向（法線ベクトルｎi）は、粗い衣服モデルの頂点の法線を補間することで計算する。
【００４１】
具体的には、基準曲面生成手段１４は、以下の手順により基準となる表面形状を生成する。
（１）粗い衣服モデルの粒子の位置ベクトルｑiから法線ベクトルＮiを計算する。
（２）粗い衣服モデルの粒子の位置ベクトルｑiと法線ベクトルＮiからピーエヌ・トライアングルス法により詳細な衣服モデルの粒子の位置ベクトルｐsmoothed,iを計算する。
（３）粗い衣服モデルの法線ベクトルＮiからピーエヌ・トライアングルス法により詳細な衣服モデルの粒子の法線ベクトルｎiを計算する。
（４）ここまでの処理による詳細な衣服モデルの粒子の位置ベクトルｐiを次式により計算する。
【数２】
0004243681.tif 000003
（Δｈlast_frame,i：前フレームの詳細な衣服モデルの粒子の高さ）
【００４２】
〔めり込み回避変形手段１５〕
めり込み回避変形手段１５は、身体モデル記憶手段１０から読み出した身体モデルの各頂点の位置情報（位置ベクトルｖi，ｉ＝１〜ｋ）および各頂点の連結情報、および詳細衣服モデル記憶手段１２から読み出した詳細な衣服モデルの各粒子の位置情報（位置ベクトルｐi，ｉ＝１〜ｎ）および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報（位置ベクトルｐi，ｉ＝１〜ｎ）を詳細衣服モデル記憶手段１２に記憶するものである。
【００４３】
以下、めり込み回避変形処理の詳細について説明する。
（表面形状のめり込み回避処理）
基準曲面生成手段１４によって生成された表面形状が身体モデルにめり込んでいる場合、粗い衣服モデルのめり込み回避処理と同様、めり込みを回避するように各粒子の高さΔｈpenetration,iを修正する。このとき、全ての粒子について衝突判定を行うと非常に多くの処理時間が必要となる。そこで、粗い粒子モデルの粒子の接触情報を利用することで、衝突の可能性のある粒子から順番に判定していく。
【００４４】
具体的には、粗い衣服モデルのある面のどの頂点も身体モデルと接触していない場合は、その面内の衣服モデルの粒子については接触判定を行わない。また、身体モデルに接している衣服モデルの面についても、面内をトップダウンに分割したときの上位の粒子が身体モデルに接している場合のみ、下位の粒子の接触判定を順次行っていく。
【００４５】
より具体的には、めり込み回避変形手段１５は、以下の手順により計算する。（１）詳細な衣服モデルの各粒子が身体モデルにめり込んでいるかどうかを判定する。
（２）めり込んでいる場合は、めり込まないための最小限の高さΔｈpenetration,iの修正量を計算する。
（３）ここまでの処理による粒子の位置ベクトルｐiを次式により計算する。
【数３】
0004243681.tif 000004
なお、実際には全ての粒子について判定すると時間がかかるので、めり込んでいる可能性のあるものだけを順番に処理していく。
【００４６】
〔力算出手段１６〕
力算出手段１６は、詳細衣服モデル記憶手段１２から読み出した詳細な衣服モデルの各粒子の位置情報（位置ベクトルｐi，ｉ＝１〜ｎ）および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出するものである。
【００４７】
以下、力算出処理の詳細について説明する。
（法線方向の力の計算）
まず、詳細な衣服モデルの各粒子に働く弾性力を、粗い衣服モデルの各粒子に働く弾性力を表面の曲率を考慮しながら補間することによって計算する。非特許文献４において提案された方法により、詳細な衣服モデルの各粒子の位置から、弾性力のモデルに従って各粒子の弾性力を計算することも可能である。しかし、この方法では各粒子の位置の差によって粒子ごとの弾性力が大きく異なり、結果として、垂直方向の力がばらついたり不安定になったりしてしまう。そこで、本実施形態においては、それぞれの粒子単体で力を正確にシミュレートするよりも、表面に加わる力の分布に応じて近似的な変形を適用するために、上記のように粗いモデルの粒子に働く弾性力から計算する。
【００４８】
具体的には、まず、図３に示すように粗い衣服モデルの粒子から、粗い衣服モデルの辺上の粒子および面内部の粒子に向けて、各粒子の曲率に応じて力を補間する。本実施形態においては、粒子間の曲率（両辺の角度）に応じて、どれくらい伝わる力が変化するかを決定する。本実施形態においては、力の伝達率ｃi,jkは、次式に示すように単純に両辺の角度としている。なお、実際には、衣服の素材などによっても、角度と伝達率の関係は異なると考えられるため、素材に応じた伝達率を設定する。
【数４】
0004243681.tif 000005
【００４９】
各粒子の伝達率が決まれば、次式に示すように辺上の全粒子の伝達率を加重平均することで、辺の両端点の粒子の弾性力から、粒子上の各粒子の弾性力ｅｆiが求まる。
【数５】
0004243681.tif 000006
【００５０】
同様に、辺上の粒子の弾性力が決定すれば、縦方向と横方向のそれぞれについて同様に面内の各粒子の弾性力を計算し、両者を平均することによって、面内の各粒子の弾性力も計算できる。
【００５１】
各粒子の弾性力が決まったら、隣接する粒子から加わる弾性力をもとに垂直方向の力を計算する。粒子ｉに隣接する粒子ｊに弾性力ｅｆjが加わるときの粒子ｉへの垂直方向の力ｖｆijを次式によって決定する。
【数６】
0004243681.tif 000007
【００５２】
最後に、次式に示すように隣接する全ての粒子からの垂直方向の力を加算することで、粒子に働く垂直方向の力ｖｆiを決定する。
【数７】
0004243681.tif 000008
【００５３】
ここで、ｖｆiが正であれば、粒子ｉは周囲から押されており、より起伏が大きくなる方向へと変形することを意味する。つまり、粒子ｉが周囲の粒子よりも高い位置にあればより高い位置に移動し、周囲の粒子よりも低い位置にあればより低い位置に移動することになる。一方、ｖｆiが負であれば周囲から引かれており、より水平になる方向へと変形する。本実施形態においては、ｖｆiが正であれば単純に上方向に移動し、ｖｆiが負であれば単純に下方向に移動するものとして処理している。
【００５４】
より具体的には、力算出手段１６は、以下の手順により計算する。
（１）詳細な衣服モデルの各粒子に働く弾性力を計算する。
（１−１）粗い衣服モデルの粒子に対応する詳細な衣服モデルの粒子の弾性力ｅｆiを計算する。
（１−２）詳細な衣服モデルの粒子の力の伝達率（曲率）ｃiを計算する。
（１−３）（１−１）と（１−２）の結果から、粗い衣服モデルの辺上にある詳細な衣服モデルの粒子の弾性力ｅｆiを計算する。
（１−４）（１−３）と（１−２）の結果から、粗い衣服モデルの面上にある詳細な衣服モデルの粒子の弾性力ｅｆiを計算する。
（２）詳細な衣服モデルの各粒子に働く法線方向の力を計算する。
周囲の各粒子ｊの位置ｐjと弾性力ｅｆjから、前２式により法線方向の力ｖｆiを計算する。
【００５５】
〔変位量算出手段１７〕
変位量算出手段１７は、詳細衣服モデル記憶手段１２から読み出した詳細な衣服モデルの各粒子の位置情報（位置ベクトルｐi，ｉ＝１〜ｎ）および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出するものである。
【００５６】
以下、変位量算出処理の詳細について説明する。
変位量算出手段１７は、表面の長さを一定に保つために粒子ｉの付近でどれくらい長さが変化する必要があるかという値ΔＬrequired,iを計算する。ここで、各粒子当たりの長さの必要変位量ΔＬrequired,iを直接計算することは難しい。そこで、まず、次式に示すように、粗いモデルの辺ｅごとに、安定状態での辺の長さとの差から、辺の長さがどれくらい変化すべきかという値ΔＬＥrequired,eを求める。
【数８】
0004243681.tif 000009
【００５７】
より具体的には、変位量算出手段１７は、以下の手順により計算する。
（１）粗い衣服モデルの辺ごとに元の辺の長さからどれくらい長さが変化しているかを示す変位量ΔＬＥrequired,eを計算する。
（２）（１）の結果から、粗い衣服モデルの粒子に対応する詳細な衣服モデルの粒子のΔＬrequired,iを計算する。
（３）（２）の結果から、粗い衣服モデルの辺上にある詳細な衣服モデルの粒子のΔＬrequired,iを計算する。
（４）（３）の結果から、粗い衣服モデルの面上にある詳細な衣服モデルの粒子のΔＬrequired,iを計算する。
【００５８】
〔曲面変形手段１８〕
曲面変形手段１８は、力算出手段１６により算出した各粒子に働く法線方向の力ｖｆiと変位量算出手段１７により算出した各粒子の周辺の長さの変位量ΔＬrequired,iとに基づいて、詳細衣服モデル記憶手段１２から読み出した詳細な衣服モデルの各粒子の位置情報（位置ベクトルｐi）および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報（位置ベクトルｐi）を算出し、この算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段１２に記憶するものである。
【００５９】
曲面変形手段１８は、辺ごとの長さの変位量を、弾性力を計算した時と同様のアルゴリズムで面内に分配することによって、それぞれの粒子の必要変位量ΔＬrequired,iを計算する。ΔＬexpcted,iとは、垂直方向の力ｖｆiに応じて詳細な衣服モデルの粒子ｉの位置を変化させたとき、どれくらい長さが変化するかという値である。
【００６０】
具体的には、粗い衣服モデルの粒子ごとに、隣接する辺の必要変位量ΔＬＥrequired,eを平均することで、粒子の必要変位量ΔＬrequired,iを計算する。この粒子ごとの値を、辺上の粒子、面内の粒子に順に補間することで、全粒子の値ΔＬrequired,iを計算する。弾性力の計算の場合とは異なり、ここでは粒子の曲率や伝達率は考慮せず、単純に補間することで計算する。
【００６１】
各粒子のΔＬexpcted,iを表面形状から解析的に求めることは難しい。そこで、各粒子が法線方向の力に比例して動くと仮定し、次の２式により周囲の粒子との法線方向の力の差からΔＬexpcted,iを近似する。すでに高い粒子がより大きく移動する場合、長さは広がるものとし、反対であれば縮まるものとする。
【数９】
0004243681.tif 000010
【数１０】
0004243681.tif 000011
【００６２】
最後に、ΔＬrequired,iとΔＬexpcted,iに応じて、次式により粒子の位置変位量Δｈlength,iを計算する。ただし、両者の符号が反対であれば、修正は行わない。
【数１１】
0004243681.tif 000012
【００６３】
（変形アルゴリズム）
上記の計算において、粒子ｉに働く法線方向の力が比較的小さい場合、ΔＬexpcted,iも小さくなり、結果的にΔｈlength,iが非常に大きな値になってしまい、その結果、不自然に大きな皺が生成されてしまうことになる。そのため、必ずしもΔＬexpcted,iを満たそうとはせず、法線方向の力によってどの程度位置変化を許すかという値Δｈout-plane_force,i（次式参照。）によってこの値を制限する。
【数１２】
0004243681.tif 000013
【００６４】
ここで、Δｔはシミュレーションの刻み幅、ｋout-planeは単位時間・法線方向の力当たり、どれくらいの位置変化を許すかというパラメータである。ここまでに計算されたΔｈlength,iとΔｈout-plane_force,iの内、小さい方の値が変形処理による粒子ｉの法線方向の位置変位量Δｈdeformation,iとして使用される。
【００６５】
曲面変形手段１８は、最終的な衣服モデルの表面形状を、各粒子の高さの初期値としては前フレームの高さΔｈlast_flame,iを用いて次の２式により求める。
【数１３】
0004243681.tif 000014
【数１４】
0004243681.tif 000015
【００６６】
（変形の制約）
最後に、上記の各処理および上式によって計算された粒子の位置修正量Δｈiに対して、いくつかの制約を適用する。まず、常に基準となる曲面よりも低くなることがないようにΔｈi≧０という制約を適用する。次に、隣接する粒子間の間が一定以上長くならないような制約を適用する。最後に、粗いモデルの面を構成する全ての辺においての長さがもとの長さよりも長い場合ΔＬＥrequired,e＜０は、その面の内部には皺がなくなるよう、面内の粒子の高さをΔｈi＝０と修正する。以上の処理により、各粒子の高さΔｈiおよび最終位置Ｐiが求まる。
【００６７】
（粒子の法線の計算）
最後に、詳細な衣服モデルの各粒子の法線の計算方法について説明する。
各粒子の法線を、単純に最終的に生成された表面形状から計算することもできる。しかし、本実施形態における手法ではそれぞれの粒子を独立かつ近似的に制御するため、隣接する粒子の高さが不規則になる場合があり、単純に計算された法線では必要以上に角張った印象を与えてしまう。また、ピーエヌ・トライアングルス法の元々の問題として、生成曲面は必ず元の頂点を通るという制約のため、一定の周期で波状になってしまうという問題がある。そのため、ピーエヌ・トライアングルス法では、非特許文献１に記載のように元の粗いメッシュの頂点の法線を補間することで詳細メッシュの頂点を計算し、なめらかにシェーディングを行う手法が提供されている。本実施形態においても、このピーエヌ・トライアングルス法によって計算された法線を使用する。すなわち、変形後の曲面から計算された法線ベクトルｎdeformと、ピーエヌ・トライアングルス法により計算された基準曲面の法線ベクトルｎpntを各粒子の高さΔｈiに応じてブレンドすることで最終的な法線を計算する（次の２式参照。）。
【数１５】
0004243681.tif 000016
【数１６】
0004243681.tif 000017
ここで、ｈnormalはブレンド比率を決定するためのパラメータである。
【００６８】
曲面変形手段１８による具体的な処理手順は、以下の通りである。
（１）詳細な衣服モデルの粒子を法線方向の力ｖｆiに比例して移動させたときの粒子の周辺の長さの変位量の期待値ΔＬexpcted,iを計算する。
（２）法線方向の力ｖｆiと長さの変位量ΔＬrequired,iと長さの変位量の期待値ΔＬexpcted,iから、粒子の高さの修正量Δｈlength,iを計算する。
（３）法線方向の力に応じて最大どれだけの粒子の高さの変化を許すかという量ΔＨout-plane_force,iを計算する（Δｈlength,iに対応するフィルタとして働く。）。
（４）Δｈlength,iとΔｈout-plane_force,iのうち大きい方の値をΔｈdeformation,iとして使用する。
（５）制約条件に応じてΔｈdeformation,iを修正する。
（６）最終的な粒子の位置を次式により計算する。
【数１７】
0004243681.tif 000018
（７）粒子の高さの修正量の合計Δｈｉ＝Δｈlast_frame,i＋Δｈpenetration,i＋Δｈdeformation,iを次回の処理のΔｈlast_frame,iとする。
（８）レンダリングに使用する粒子の法線ベクトルｎiを計算する。
【００６９】
〔描画手段１９〕
描画手段１９は、身体モデル記憶手段１０から読み出した身体モデルの各頂点の位置情報（位置ベクトルｖi）および各頂点の連結情報、および詳細衣服モデル記憶手段１２から読み出した詳細な衣服モデルの各粒子の位置情報（位置ベクトルｐi）および各粒子の連結情報に基づいて、ディスプレイ等の表示装置上に描画する身体モデルに重ねて衣服モデルを描画するものである。
【００７０】
上記構成の衣服シミュレーション装置による衣服シミュレーション方法について、図２のフロー図に基づいて説明する。
【００７１】
〔ステップＳ１０１〕
動力学シミュレーション手段１３による粗い衣服モデルの動力学シミュレーションを行う。動力学シミュレーション手段１３は、身体モデル記憶手段１０から身体モデルの各頂点の位置ベクトルｖiおよび各頂点の連結情報を読み出し、衣服モデル記憶手段１１からシミュレーション前の身体モデルの各頂点の位置ベクトルｑiおよび各頂点の連結情報を読み出し、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置ベクトルｑiを衣服モデル記憶手段１１に格納する。
【００７２】
〔ステップＳ１０２〕
基準曲面生成手段１４による基準曲面の生成を行う。基準曲面生成手段１４は、動力学シミュレーション手段１３による動力学シミュレーション後の粗い衣服モデルの粒子の位置ベクトルｑiを衣服モデル記憶手段１１から読み出し、前述のように細分割手法の適用により基準となる表面形状を生成し、この基準曲面の生成処理後の詳細な衣服モデルの粒子の位置ベクトルｐiおよび詳細な衣服モデルの粒子の法線ベクトルｎiを詳細衣服モデル記憶手段１２へ格納する。
【００７３】
〔ステップＳ１０３〕
表面形状が身体にめり込まないようにめり込み回避手段１５による変形処理を行う。めり込み回避手段１５は、基準曲面生成手段１４による基準曲面の生成処理後の詳細な衣服モデルの粒子の位置ベクトルｐiおよび詳細な衣服モデルの粒子の法線ベクトルｎiを詳細衣服モデル記憶手段１２から読み出し、また身体モデル記憶手段１０から身体モデルの各頂点の位置ベクトルｖiおよび各頂点の連結情報を読み出し、前述のように衣服モデルの粒子が身体モデルの内部に存在する場合にその粒子を身体モデルの外部に移動することによりめり込み回避処理を行い、このめり込み回避処理後の詳細な衣服モデルの粒子の位置ベクトルｐiを詳細衣服モデル記憶手段１２へ格納する。
【００７４】
〔ステップＳ１０４〕
力算出手段１６により、詳細な衣服モデルの粒子に働く法線方向の力の計算処理を行う。力算出手段１６は、めり込み回避手段１５によるめり込み回避処理後の詳細な衣服モデルの粒子の位置ベクトルｐiを詳細衣服モデル記憶手段１２から読み出し、前述のように詳細な衣服モデルの各粒子が周囲のどの粒子からどの程度押されているか、あるいは引っ張られているかを計算し、詳細な衣服モデルの粒子に働く法線方向の力ｖｆiを曲面変形手段１８へ出力する。
【００７５】
〔ステップＳ１０５〕
変位量算出手段１７による衣服の長さの変位量の計算処理を行う。変位量算出手段１７は、めり込み回避手段１５によるめり込み回避処理後の詳細な衣服モデルの粒子の位置ベクトルｐiを詳細衣服モデル記憶手段１２から読み出し、前述のように詳細な衣服モデルの粒子の周辺の長さがどれくらい変化しているかを計算し、詳細な衣服モデルの粒子の周辺の長さの変位量ΔＬrequired,iを曲面変形手段１８へ出力する。
【００７６】
〔ステップＳ１０６〕
曲面変形手段１８による衣服の表面形状の変形処理を行う。曲面変形手段１８は、詳細衣服モデル記憶手段１２から詳細な衣服モデルの粒子の位置ベクトルｐiを読み出し、この詳細な衣服モデルの粒子の法線ベクトルｎi、力算出手段１６により算出された詳細な衣服モデルの粒子に働く法線方向の力ｖｆi、および変位量算出手段１７により算出された詳細な衣服モデルの粒子の周辺の長さの変位量ΔＬrequired,iに基づいて前述のように表面形状の変形を計算し、最終的な詳細な衣服モデルの粒子の位置ベクトルｐiを詳細衣服モデル記憶手段１２へ格納する。
【００７７】
〔ステップＳ１０７〕
描画手段１９による描画処理を行う。描画手段１９は、身体モデル記憶手段１２から身体モデルの各頂点の位置ベクトルｖiを読み出すとともに、詳細衣服モデル記憶手段１２から最終的な詳細な衣服モデルの粒子の位置ベクトルｐiを読み出し、身体モデルに重ねて衣服モデルを描画する。
【００７８】
以上のように、本実施形態におけるシミュレーション装置では、まず粗い衣服モデルによる動力学シミュレーションを行い、次に粗い衣服モデルから細かい衣服モデルを生成するという大きく分けて２段階のステップ（本ステップは、（１）粗いモデルを滑らかにすることで基本となる表面形状を生成する、（２）めり込んでいる範囲については、体の形状に合わせてめり込まないように変形する、（３）衣服の表面に働く力を計算し、周囲から力を受ける範囲には押し上げる力が働くという仮定に基づいて、衣服の表面形状を変形する、という３ステップを含む。）により衣服シミュレーションを行うことによって、自然なアニメーションを高速に実現することができる。
【００７９】
【実施例】
本実施形態におけるシミュレーション装置を用いてアニメーションを生成した。表１は、それぞれの衣服モデルの頂点数、面数および処理時間を表している。なお、処理にはインテル社のペンティアム（登録商標）４・プロセッサ２．５ＧＨｚを用いた。単位はミリ秒である。
【００８０】
【表１】
0004243681.tif 000019
【００８１】
図示していないが、実験結果の画像からは、本発明の狙い通り、衣服が身体モデルに接している範囲では身体モデルに沿った形状になっており、また、衣服の特に圧縮されている範囲に細かい皺が生成されていることが分かった。また、表１に示すように、衣服が１枚だけの場合は十分リアルタイムに処理できたが、衣服が２枚の場合はやや遅く、秒間４〜５フレーム程度であった。
【００８２】
また、実時間衣服シミュレーションのアプリケーションとして、仮想試着システムのプロトタイプを開発した。仮想試着システムは、利用者の動きをモーションキャプチャ機器で取り込み、リアルタイムに衣服シミュレーションを行って利用者の前のスクリーンに映し出すことで、あたかも利用者が仮想空間内でさまざまな衣服を試着するような体験を可能にするシステムである。
【００８３】
仮想試着システムには、上記の衣服シミュレーション手法を実装した。モーションキャプチャ機器として、磁気式のシステムであるアセンション・テック（Ascension Tech）社製のモーションスター（MotionStar）（１６センサ）を使用した。
【００８４】
利用者の骨格と用意されたキャラクタの骨格は若干異なるため、モーションキャプチャで得られた利用者の関節角度をそのままキャラクタにマッピングしただけではキャラクタの動きが不自然になってしまう。そこで、下半身の動きについては、腰の位置・向き、および両足首の位置・向きをキャラクタにマッピングし、キャラクタの足の関節角度は逆運動学を用いて計算した。腕を含む上半身の動きについては、利用者の関節角度をそのままキャラクタの関節角度にマッピングした。
【００８５】
本システムでは、モーションキャプチャによるオーバーヘッドはほとんどなく、ペンティアム４プロセッサ２．８ＧＨｚを備えたのコンピュータ上で秒間１３フレーム程度で動作した。モーションキャプチャによる遅延や、生成される衣服の形状に多少の違和感はあるものの、仮想空間で衣服を身に着けて動き回るような感覚を十分に得ることができた。
【００８６】
【発明の効果】
本発明により、以下の効果を奏することができる。
【００８７】
（１）身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出するとともに、詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出し、算出した各粒子に働く法線方向の力と各粒子の周辺の長さの変位量とに基づいて、詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する構成により、衣服モデルと身体モデルとの接触を考慮し、衣服モデルの表面に働く力に応じた細かい皺を表現することができる。これにより、衣服の自然な表面形状を高速に生成し、シミュレートすることが可能となる。
【００８８】
（２）さらに、身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行う構成により、衣服モデルが身体モデルにめり込む場合には、このめり込んでいる範囲について体の形状に合わせてめり込まないように衣服を変形し、描画することができる。これにより、衣服のより自然な表面形状を高速に生成し、シミュレートすることが可能となる。
【図面の簡単な説明】
【図１】  本発明の実施の形態における衣服シミュレーション装置のブロック図である。
【図２】  本発明の実施の形態における衣服シミュレーション装置による衣服シミュレーション方法のフロー図である。
【図３】  粗い衣服モデルの辺上にある詳細な衣服モデルの粒子間の曲率および力の伝達率の計算の説明図である。
【符号の説明】
１０  身体モデル記憶手段
１１  衣服モデル記憶手段
１２  詳細衣服モデル記憶手段
１３  動力学シミュレーション手段
１４  基準曲面生成手段
１５  めり込み回避変形手段
１６  力算出手段
１７  変位量算出手段
１８  曲面変形手段
１９  描画手段
【図１】
0004243681.tif 000020
【図２】
0004243681.tif 000021
【図３】
0004243681.tif 000022