TOP > 国内特許検索 > 衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法 > 明細書

明細書 :衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第4243681号 (P4243681)
公開番号 特開2005-011027 (P2005-011027A)
登録日 平成21年1月16日(2009.1.16)
発行日 平成21年3月25日(2009.3.25)
公開日 平成17年1月13日(2005.1.13)
発明の名称または考案の名称 衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法
国際特許分類 G06T  15/70        (2006.01)
G06F  17/50        (2006.01)
FI G06T 15/70 B
G06F 17/50 612L
G06F 17/50 680J
請求項の数または発明の数 6
全頁数 24
出願番号 特願2003-173742 (P2003-173742)
出願日 平成15年6月18日(2003.6.18)
審査請求日 平成18年6月16日(2006.6.16)
特許権者または実用新案権者 【識別番号】504145342
【氏名又は名称】国立大学法人九州大学
発明者または考案者 【氏名】牧之内 顕文
【氏名】尾下 真樹
個別代理人の代理人 【識別番号】100099508、【弁理士】、【氏名又は名称】加藤 久
審査官 【審査官】千葉 久博
参考文献・文献 Alex Vlachos, 外3名,”Curved PN Triangles”,Proceedings of the 2001 Symposium on Interactive 3D graphics,ACM,2001年,p.159-166
Sunil Hadap, 外3名,”Animating Wrinkles on Clothes”,Proceedings of the conference on Visualization ’99,IEEE Computer Society Press,1999年,p.175-183
尾下真樹, 外1名,”Real-time Cloth Simulation with Sparse Particles and Curved Faces”,Proceedings of Computer Animation 2001,2001年,p.220-227
Young-Min Kang, 外1名,”Bilayered Approximate Integration for Rapid and Plausible Animation of Virtual Cloth with Realistic Wrinkles”,Proceedings of Computer Animation 2002,IEEE Computer Society,2002年,p.203-211
Frederic Cordier, 外1名,”Real-time Animation of Dressed Virtual Humans”,Computer Graphics Forum,Blackwell Publishers,2002年 9月 4日,第21巻, 第3号,p.327-335
David Baraff, 外1名,”Large Steps in Cloth Simulation”,Proceedings of the 25th annual conference on Computer Graphics and Interactive techniques,ACM,1998年,p.43-54
Takeo Igarashi, 外1名,”Clothing Manipulation”,Proceedings of the 15th annual ACM symposium on User interface software and technology,ACM,2002年,p.91-100
Kwang-Jin Choi, 外1名,”Stable but Responsive Cloth”,Proceedings of ACM SIGGRAPH 2002,ACM,2002年 7月,第21巻, 第3号,p.604-611
尾下真樹,”実時間シミュレーションライブラリの開発”,平成14年度 未踏ソフトウェア創造事業 報告論文集,日本,情報処理振興事業協会(IPA),2003年 5月,[平成20年9月8日検索],URL,http://www.oshita-lab.org/paper/mitou03.pdf
調査した分野 G06T 15/70
G06T 17/40
G06F 17/50
特許請求の範囲 【請求項1】
身体に付けた衣服の動作をシミュレートする衣服シミュレーション装置であって、
前記身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶する身体モデル記憶手段と、
前記衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶する衣服モデル記憶手段と、
前記身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および前記衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を前記衣服モデル記憶手段に格納する動力学シミュレーション手段と、
前記衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出する変位量算出手段と、
前記力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子に隣接する辺の長さの変位量とに基づいて、前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から前記詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を前記詳細衣服モデル記憶手段に記憶する曲面変形手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画手段と
を備えた衣服シミュレーション装置。
【請求項2】
さらに、前記身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形手段を備えた請求項1記載の衣服シミュレーション装置。
【請求項3】
身体に付けた衣服の動作をシミュレートする衣服シミュレーション装置としてコンピュータを機能させる衣服シミュレーションプログラムであって、
前記身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶する身体モデル記憶手段と、
前記衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶する衣服モデル記憶手段と、
前記身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および前記衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を前記衣服モデル記憶手段に格納する動力学シミュレーション手段と、
前記衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出する変位量算出手段と、
前記力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子に隣接する辺の長さの変位量とに基づいて、前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から前記詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を前記詳細衣服モデル記憶手段に記憶する曲面変形手段と、
前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画手段と
してコンピュータを機能させる衣服シミュレーションプログラム。
【請求項4】
さらに前記コンピュータを、前記身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形手段として機能させる請求項3記載の衣服シミュレーションプログラム。
【請求項5】
身体に付けた衣服の動作をシミュレートする衣服シミュレーション方法であって、
予め身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶した身体モデル記憶手段から前記身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、予め衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶した衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を前記衣服モデル記憶手段に格納する動力学シミュレーションステップと、
前記衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出する変位量算出ステップと、
前記力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子に隣接する辺の長さの変位量とに基づいて、前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から前記詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を前記詳細衣服モデル記憶手段に記憶する曲面変形ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画ステップと
を含む衣服シミュレーション方法。
【請求項6】
身体に付けた衣服の動作をシミュレートする衣服シミュレーション方法であって、
予め身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶した身体モデル記憶手段から前記身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、予め衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶した衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を前記衣服モデル記憶手段に格納する動力学シミュレーションステップと、
前記衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成ステップと、
前記身体モデル記憶手段から身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出する変位量算出ステップと、
前記力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子に隣接する辺の長さの変位量とに基づいて、前記詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から前記詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を前記詳細衣服モデル記憶手段に記憶する曲面変形ステップと、
前記詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画ステップと
を含む衣服シミュレーション方法。
発明の詳細な説明 【0001】
【発明の属する技術分野】
本発明は、衣服の自然なアニメーションをリアルタイムに生成するための衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法に関する。
【0002】
【従来の技術】
粗い幾何形状モデルから詳細な幾何形状モデルを生成する細分割技術(例えば、非特許文献1参照。)はモデリングなどで広く使われている。これらの技術を適用することによって、動力学シミュレーションを用いて計算された粗い衣服モデルから、滑らかな衣服モデルを生成することができる。しかし、シミュレーションに用いる元のモデルが比較的粗い場合、単純に滑らかな曲面を生成するだけでは衣服の皺などを再現することができないため、衣服に特化した何らかの曲面生成手法が必要になる。
【0003】
近年、動力学シミュレーションと幾何学的な処理を組み合わせることによって高速に衣服シミュレーションを行うことを目標とした手法がいくつか提案されている。例えば、非特許文献2には、予め皺のデータをディスプレイスメントマップとして用意しておき、粗い衣服モデルの圧縮の程度に応じてディスプレイスメントマップを適用することで、衣服の皺を表現する手法が提案されている。
【0004】
本発明者らは、非特許文献3において、粗い衣服モデルから詳細な衣服モデルを生成する際に、粗い衣服モデルの縮んでいる辺上に膨らみを追加する手法を提案している。また、非特許文献4には、粗い衣服モデルのシミュレーション結果に追従するように詳細な衣服モデルの形状を強制的に修正し、その後、弾性力のみを考慮して詳細な衣服モデルの簡易的なシミュレーションを行う手法が提案されている。さらに、非特許文献5には、衣服の袖など体に接している範囲を円柱としてモデル化し、揺れなどをシミュレートする手法が提案されている。
【0005】
ところで、粒子ベースの動力学シミュレーションを計算するための数値積分のための主な解法として、イクスプリシット(Explicit)手法とインプリシット(Implicit)手法の2種類がある。例えば、非特許文献6において提案されているインプリシット手法は、イクスプリシット手法に比べてシミュレーションの刻み幅を大きくできるため高速に計算を行うことができるというメリットがある。
【0006】
また、衣服と身体モデルの衝突判定を高速化するための手法としては、例えば、非特許文献7において提案されている方法が知られている。非特許文献7に記載の手法では、荒い衣服モデルの各粒子に身体モデルを構成する頂点のうち最も近い頂点の情報をそれぞれ持たせている。
【0007】
【非特許文献1】
アレックス・ヴラチョス(Alex VLACHOS)、ジョルグ・ピータース(Jorg PETERS)、チャス・ボイド(Chas BOYD)、ジェイソン・エル・ミッチェル(Jason L. MITCHELL)著,“カーヴド・ピーエヌ・トライアングルス(Curved PN Triangles)”,プロシーディングズ・オブ・ザ・2001・エイシーエム・シンポジウム・オン・インタラクティブ・スリーディ・グラフィクス(Proceedings of the 2001 ACM Symposium on Interactive 3D Graphics),(米国),エイシーエム(ACM),2001年,p.159-166
【非特許文献2】
スニル・ハダップ(Sunil HADAP)、エンドレ・バンゲルテ(Endre BANGERTE)、パスカル・ヴォリーノ(Pascal VOLINO)、ナディア・マグネナト・タルマン(Nadia MAGNENAT-THALMANN)著,“アニメーティング・リンクルズ・オン・クローズ(Animating wrinkles on clothes)”,プロシーディングズ・オブ・アイトリプルイー・ヴィジュアリゼーション’99(Proceedings of IEEE Visualization '99),(米国),アイトリプルイー(IEEE),1999年,p.175-182
【非特許文献3】
尾下真樹、牧之内顕文著,“リアルタイム・クロス・シミュレーション・ウィズ・スパース・パーティクルズ・アンド・カーブド・フェイシーズ(Real-time cloth simulation with sparse particles and curved faces)”,プロシーディングズ・オブ・コンピュータ・アニメーション2001(Proceedings of Computer Animation 2001),(米国),アイトリプルイー(IEEE),2001年,p.220-227
【非特許文献4】
ヤン・ミン・カン(Young-Min KANG),ホワン・ギュ・チョ(Hwan-Gue CHO)著,“バイレイヤード・アプロキシメート・インテグレーション・フォー・ラピッド・アンド・プロージブル・アニメーション・オブ・ヴァーチャル・クロス・ウィズ・リアリスティック・リンクルズ(Bilayered approximate integration for rapid and plausible animation of virtual cloth with realistic wrinkles)”,プロシーディングズ・オブ・コンピュータ・アニメーション2002(Proceedings of Computer Animation 2002),(米国),アイトリプルイー(IEEE),2002年,p.203-212
【非特許文献5】
フレデリック・コーディア(Frederic CORDIER)、ナディア・マグネナト・タルマン(Nadia MAGNENAT-THALMANN)著,“リアルタイム・アニメーション・オブ・ドレスト・ヴァーチャル・ヒューマンズ(Real-time animation of dressed virtual humans)”,コンピュータ・グラフィクス・フォーラム(Computer Graphics Forum),(英国),ユーログラフィクス(Eurographics),2002年,第21巻,第3号,p.327-334
【非特許文献6】
デイヴィッド・バラフ(David BARAFF)、アンドリュー・ウィットキン(Andrew WITKIN)著,“ラージ・ステップス・イン・クロス・シミュレーション(Large steps in cloth simulation)”,プロシーディングズ・オブ・シググラフ98(Proceedings of SIGGRAPH 98),(米国),エイシーエム(ACM),1998年,p.43-54
【非特許文献7】
タケオ・イガラシ(Takeo IGARASHI)、ジェイ・エフ・ヒューズ(J. F. HUGHES)著,“クロージング・マニピュレーション(Clothing manipulation)”,プロシーディングズ・オブ・フィフティーンス・アニュアル・シンポジウム・オン・ユーザ・インターフェース・ソフトウェア・アンド・テクノロジー(Proceedings of 15th Annual Symposium on User Interface Software and Technology),(米国),エイシーエム(ACM),2002年,p.91-100
【0008】
【発明が解決しようとする課題】
非特許文献2~5に記載の手法では、衣服モデルの曲面生成時に身体モデルとの接触が考慮されておらず、生成される皺の形状も限定されている。そのため、生成される皺には不自然さが残る。
【0009】
そこで、本発明においては、衣服モデルと身体モデルとの接触を考慮し、衣服モデルの表面に働く力に応じた細かい皺を表現可能とした衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明のシミュレーション装置は、身体に付けた衣服の動作をシミュレートする衣服シミュレーション装置であって、身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶する身体モデル記憶手段と、衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶する衣服モデル記憶手段と、身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段に格納する動力学シミュレーション手段と、衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出する変位量算出手段と、力算出手段により算出した各粒子に働く法線方向の力と変位量算出手段により算出した各粒子の周辺の長さの変位量とに基づいて、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段に記憶する曲面変形手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画手段とを備えたものである。
【0011】
本発明の衣服シミュレーション装置は、さらに、身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形手段を備えたものとすることが望ましい。
【0012】
本発明の衣服シミュレーションプログラムは、身体に付けた衣服の動作をシミュレートする衣服シミュレーション装置としてコンピュータを機能させるシミュレーションプログラムであって、身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶する身体モデル記憶手段と、衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶する衣服モデル記憶手段と、身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段に格納する動力学シミュレーション手段と、衣服モデル記憶手段から読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出する変位量算出手段と、力算出手段により算出した各粒子に働く法線方向の力と変位量算出手段により算出した各粒子の周辺の長さの変位量とに基づいて、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段に記憶する曲面変形手段と、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画手段としてコンピュータを機能させるものである。
【0013】
本発明の衣服シミュレーションプログラムは、さらにコンピュータを、身体モデル記憶手段から読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形手段として機能させるものとすることが望ましい。
【0014】
本発明の衣服シミュレーション方法は、身体に付けた衣服の動作をシミュレートする衣服シミュレーション方法であって、予め身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶した身体モデル記憶手段から身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、予め衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶した衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段に格納する動力学シミュレーションステップと、衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出する変位量算出ステップと、力算出手段により算出した各粒子に働く法線方向の力と変位量算出手段により算出した各粒子の周辺の長さの変位量とに基づいて、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段に記憶する曲面変形ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画ステップとを含む。
【0015】
また、本発明の衣服シミュレーション方法は、身体に付けた衣服の動作をシミュレートする衣服シミュレーション方法であって、予め身体をモデル化した身体モデルの各頂点の位置情報および各頂点の連結情報を記憶した身体モデル記憶手段から身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、予め衣服をモデル化した衣服モデルの各粒子の位置情報および各粒子の連結情報を記憶した衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段に格納する動力学シミュレーションステップと、衣服モデル記憶手段から衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段に記憶する基準曲面生成ステップと、身体モデル記憶手段から身体モデルの各頂点の位置情報および各頂点の連結情報を読み出すとともに、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、これらの読み出した身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報を詳細衣服モデル記憶手段に記憶するめり込み回避変形ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出する力算出ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出する変位量算出ステップと、力算出手段により算出した各粒子に働く法線方向の力と前記変位量算出手段により算出した各粒子の周辺の長さの変位量とに基づいて、詳細衣服モデル記憶手段から読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段に記憶する曲面変形ステップと、詳細衣服モデル記憶手段から詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を読み出し、この読み出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する描画ステップとを含む。
【0016】
上記本発明の衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法では、身体に付けた衣服について、まず粗くモデル化した最小限の衣服モデルの各粒子の位置情報および各粒子の連結情報と身体モデルの各頂点の位置情報および各頂点の連結情報とを用いて、数値積分、追従動作演算やめり込み回避演算などの動力学シミュレーションを行うことにより、身体モデルの動作に応じた衣服モデルの運動を計算する。その後、計算された衣服モデルの各粒子の位置情報および各粒子の連結情報を元に、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出して、幾何学的な曲面生成手法を用いることで、最終的な衣服モデルの表面形状を生成する。このとき、衣服の下の身体モデルの形状に合わせて詳細な衣服モデルの表面形状を変形する。また、詳細な衣服モデルの各粒子に働く弾性力を計算し、この計算した弾性力と各粒子の周囲に粒子の位置とから各粒子に働く法線方向の力、すなわち衣服の表面に働く力を分析し、さら詳細な衣服モデルの各粒子の周辺の長さの変位量を算出することによって、衣服の皺などの細部の形状変化を計算する。このような幾何学的な処理を適用することによって、衣服の自然な表面形状を生成し、描画することができる。
【0017】
本発明の要点の一つは、詳細な衣服モデルの各粒子に働く周囲からの弾性力を元に法線方向の変形を計算するというものである。これは、衣服のある範囲が周囲から力を受けるとき、その範囲は力が釣り合うように丸く膨らむような形状を取るという仮定に基づき、ある粒子に周囲からの力が集中しているほど、その粒子がより膨らむ方向に変化するように変形処理を行うものである。
【0018】
一般に粒子モデルによる衣服シミュレーションでは、ある粒子に働く全ての力を合計することによって、その粒子の運動を計算する。したがって、ある粒子に周囲から大きな力が働いている場合であっても、力の合計がゼロに近ければその粒子は運動しないことになる。衣服の表面に水平な方向の運動を計算するだけであればこのような方法でも構わないが、本発明のように表面に対して垂直方向(法線方向)の変形をシミュレートする場合、単純に周囲からの力を合計するだけではなく、各方向からの力同士の影響を考慮する必要がある。そこで、本発明では、上記の法線方向の力に加えて、辺の長さを制約として考慮する。粗い衣服モデルの動力学シミュレーションの結果、ある辺が縮められている場合は、その範囲の衣服の長さが一定に保たれるように衣服の変形量を決定し、法線方向の力に応じて皺を生成する。
【0019】
さらに、本発明の衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法では、身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行うことにより、衣服モデルが身体モデルにめり込む場合には、このめり込んでいる範囲について体の形状に合わせてめり込まないように衣服を変形し、描画することができる。
【0020】
【発明の実施の形態】
図1は本実施形態における衣服シミュレーション装置のブロック図である。
本実施形態における衣服シミュレーション装置は、身体に付けた衣服の動作をシミュレートするものである。この衣服シミュレーション装置は、図1に示すように、身体モデル記憶手段10、衣服モデル記憶手段11、詳細衣服モデル記憶手段12、動力学シミュレーション手段13、基準曲面生成手段14、めり込み回避変形手段15、力算出手段16、変位量算出手段17、曲面変形手段18、および描画手段19を備える。なお、本実施形態における衣服シミュレーション装置は、上記各手段10~19としてコンピュータを機能させるための衣服シミュレーションプログラムの実行により実現される。
【0021】
以下、上記各手段10~19の詳細について説明する。
〔身体モデル記憶手段10〕
身体モデル記憶手段10は、身体をポリゴンモデルとして表現した身体モデルについて、身体モデルを構成するポリゴンの各頂点の位置情報および各頂点の連結情報を記憶するものである。身体モデル記憶手段10には、身体モデルの各頂点の位置情報として位置ベクトルvi(i=1~k,kは身体モデルの頂点の数)を記憶する。また、身体モデル記憶手段10に記憶する各頂点の連結情報は、各頂点の繋がり関係を示す情報である。
【0022】
〔衣服モデル記憶手段11〕
衣服モデル記憶手段11は、身体と同様、衣服を粒子により粗くモデル化した衣服モデルについて、各粒子の位置情報および各粒子の連結情報を記憶するものである。衣服モデル記憶手段11には、衣服モデルの各粒子の位置情報として位置ベクトルqi(i=1~m,mは衣服モデルの粒子の数)を記憶する。また、衣服モデル記憶手段11に記憶する各粒子の連結情報は、各粒子の繋がり関係を示す情報である。
【0023】
〔詳細衣服モデル記憶手段12〕
詳細衣服モデル記憶手段12は、衣服モデル記憶手段11に記憶された粗い衣服モデルの各粒子の位置情報および連結情報に基づいて生成した細かい衣服モデルについて、各粒子の位置情報および各粒子の連結情報を記憶するものである。詳細衣服モデル記憶手段12には、詳細な衣服モデルの各粒子の位置情報として位置ベクトルpi(i=1~n,nは詳細な衣服モデルの粒子の数)を記憶する。また、衣服モデル記憶手段12に記憶する各粒子の連結情報は、各粒子の繋がり関係を示す情報である。
【0024】
〔動力学シミュレーション手段13〕
動力学シミュレーション手段13は、身体モデル記憶手段10から読み出した身体モデルの各頂点の位置情報(位置ベクトルvi,i=1~k)および各頂点の連結情報、および衣服モデル記憶手段11から読み出した衣服モデルの各粒子の位置情報(位置ベクトルqi,i=1~m)および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、この計算後の衣服モデルの各粒子の位置情報を衣服モデル記憶手段11に格納するものである。本実施形態において行う動力学シミュレーションは、身体モデルの動作に応じた衣服モデルの大まかな運動を計算することを目的とするものであり、数値積分、追従動作演算、めり込み回避演算から構成される。
【0025】
以下、動力学シミュレーションの詳細について説明する。
(少数粒子による動力学シミュレーション)
後述するように基準曲面生成手段14では、少数の粒子を用いてシミュレートされた粗い衣服モデルの形状をもとに最終的な衣服の表面形状を生成する。したがって、基本的には、少数粒子の動力学シミュレーションにはどのような手法を用いても構わない。しかし、少数の粒子モデルを使って高速にシミュレーションを行い、また、次に適用する表面形状の生成処理とうまく協調するためには、いくつかの工夫が必要となる。
【0026】
(数値積分手法)
非特許文献6において提案されているインプリシット手法では、上記のようなめり込み回避や身体動作への追従処理などの強制的に粒子の位置を修正する制約を扱いづらいという問題がある。そこで、本実施形態においては、イクスプリシット手法の一つである、4次のルンゲ・クッタ(Runge-Kutta)法を使用する。なお、一般に、ごく少数の粒子のみを扱う場合であれば、イクスプリシット手法であってもインプリシット手法と同じ程度に高速に処理することができる。
【0027】
(力のモデル)
粒子ベースの動力学シミュレーションでは、粒子に働く各種の力(弾性力、屈折力、摩擦力、重力、空気抵抗力など)をモデル化する必要がある。衣服シミュレーションにおいてとりわけ重要とされるのが衣服の弾性力である。弾性力fijは2つの隣接する粒子i,jの間に働く一種のばね力としてモデル化される。
【数1】
JP0004243681B2_000002t.gif【0028】
ここで、qi,qjは隣接する2つの粒子の位置ベクトルであり、Lijは安定状態での両者の距離である。また、kelasticはそのパラメータである。一般に、衣服の弾性力は非常に強く、衣服の長さはほとんど変化しないという性質がある。このような衣服の特性を実現するためには、弾性力のパラメータkelasticには大きな値を設定する必要がある。もし、kelasticが十分大きくなければ、衣服はゴムのように伸び縮みしてしまい、非常に不自然な印象を与えてしまう。
【0029】
しかし、本実施形態においては、粗い衣服モデルのシミュレーションにおいて縮んでしまった範囲に皺を追加することで、衣服の長さを一定に保つように最終的な衣服の表面形状を生成する。したがって、少数粒子のシミュレーションの段階では粒子間の距離を一定に保つ必要はなく、むしろある程度粒子間の距離が縮まることを許した方が効果的に衣服の皺が生成される。しかし、衣服の長さが延びてしまっている場合は、このような方法では対応できない。そこで、本手法の弾性力のモデルでは2種類のkelasticを用い、2つの粒子間の距離が元の長さよりも離れている場合は大きなkelastic_compressを、元の長さよりも短い場合は小さなkelastic_stretchを使用する。
【0030】
また、本実施形態においては、上記の弾性力に加えて、屈折力、摩擦力、重力や、空気抵抗力などの力のモデルを導入する。これらについては、基本的に既存のイクスプリシット積分ベースの力のモデルと同様であるため詳しい説明は省略する。
【0031】
(衝突判定とめり込み回避)
動力学シミュレーション手段13は、身体モデル記憶手段10から読み出した身体モデルの各頂点の位置情報(位置ベクトルvi,i=1~k)および各頂点の連結情報、および衣服モデル記憶手段11から読み出した衣服モデルの各粒子の位置情報(位置ベクトルqi,i=1~m)および各粒子の連結情報に基づいて、衣服モデルの身体モデルへのめり込み回避演算を行う。
【0032】
なお、本実施形態における動力学シミュレーション手段13では、頂点のめり込み回避処理だけを行い、辺のめり込み回避処理を行わない。粗いモデルで無理にめり込み回避を行おうとすると、元の粗いメッシュの影響を受けて最終的に生成される形状が逆に不自然になってしまうためである。正確なめり込み回避処理は、後述の基準曲面生成手段14により行う。
【0033】
衣服モデルと身体モデルの衝突判定を高速化するため、非特許文献7において提案されているものと同様のアプローチを採り、粗い衣服モデルの粒子ごとに身体モデルを構成する頂点のうち最も近い頂点の情報を持たせる。この最近頂点の情報は、毎回衝突判定の前に、前回のステップの最近頂点の周囲の頂点を探索することによって更新される。衝突判定時にはこの最近頂点の位置情報を参照し、身体モデルを構成する面のうち最近頂点を含む全ての面の内側に衣服の頂点が存在するかを判定することによって、衝突判定を行う。
【0034】
衝突判定の結果、衣服モデルの粒子が身体モデルにめり込んでいる場合は、その粒子の位置を身体モデル上の点に強制的に移動することによってめり込みを回避する。動力学シミュレーション手段13は、この演算後の衣服モデルの各粒子の位置情報(位置ベクトルqi,i=1~m)を衣服モデル記憶手段11に格納する。
【0035】
(身体の動作への追従処理)
一般に、実時間シミュレーションでは刻み幅を大きくする必要があり、必然的に身体モデルのフレーム間での動きも大きくなるため、そのままでは身体モデルが衣服モデルを突き抜けてしまう現象が生じる。このような問題を防ぐため、シミュレーションを行う前に身体モデルの姿勢変化に応じて衣服モデルの粒子の位置を強制的に修正する。
【0036】
動力学シミュレーション手段13は、この衣服モデルの身体モデルの動作に対する追従動作演算を、身体モデル記憶手段10から読み出した身体モデルの各頂点の位置情報(位置ベクトルvi,i=1~k)および各頂点の連結情報に基づいて行う。ここでも、衝突判定処理に使用した身体モデル上の最近点の情報を使用する。前ステップのシミュレーション終了時に、衣服モデルの粒子ごとに、身体モデルの最近面からの相対座標を記録しておく。
【0037】
そして、次のステップのシミュレーションの前に、与えられた身体モデルの変形に応じて、最近面からの相対座標が保存されるように、衣服モデルの各粒子の距離を強制的に修正する。動力学シミュレーション手段13は、この追従動作演算後の衣服モデルの各粒子の位置情報(位置ベクトルqi,i=1~m)を衣服モデル記憶手段11に格納する。
【0038】
〔基準曲面生成手段14〕
基準曲面生成手段14は、衣服モデル記憶手段11から読み出した衣服モデルの各粒子の位置情報(位置ベクトルqi,i=1~m)および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報(位置ベクトルpi,i=1~n)および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を詳細衣服モデル記憶手段12に記憶するものである。
【0039】
以下、基準曲面生成処理の詳細について説明する。
(基準となる表面形状の生成)
粗い衣服モデルから詳細な衣服モデルを生成するための細分割手法として、非特許文献1において提案されたピーエヌ・トライアングルス(PNT)法を用いる。ピーエヌ・トライアングルス法は、ポリゴンメッシュの三角面を3次ベジェ(Bezier)曲面パッチで置き換えることで、曲面を生成する手法である。ピーエヌ・トライアングルス法によって生成された曲面は元の粗いメッシュの頂点を必ず通るため、頂点における身体モデルとの接触状態が保存されるという利点がある。
【0040】
本実施形態においては、粗い衣服モデルのそれぞれの三角面に対応する3次ベジェ曲面パッチを、一定数の三角面に分割することで詳細な衣服モデルを生成する。詳細な衣服モデルの各粒子の制御方向(法線ベクトルni)は、粗い衣服モデルの頂点の法線を補間することで計算する。
【0041】
具体的には、基準曲面生成手段14は、以下の手順により基準となる表面形状を生成する。
(1)粗い衣服モデルの粒子の位置ベクトルqiから法線ベクトルNiを計算する。
(2)粗い衣服モデルの粒子の位置ベクトルqiと法線ベクトルNiからピーエヌ・トライアングルス法により詳細な衣服モデルの粒子の位置ベクトルpsmoothed,iを計算する。
(3)粗い衣服モデルの法線ベクトルNiからピーエヌ・トライアングルス法により詳細な衣服モデルの粒子の法線ベクトルniを計算する。
(4)ここまでの処理による詳細な衣服モデルの粒子の位置ベクトルpiを次式により計算する。
【数2】
JP0004243681B2_000003t.gif(Δhlast_frame,i:前フレームの詳細な衣服モデルの粒子の高さ)
【0042】
〔めり込み回避変形手段15〕
めり込み回避変形手段15は、身体モデル記憶手段10から読み出した身体モデルの各頂点の位置情報(位置ベクトルvi,i=1~k)および各頂点の連結情報、および詳細衣服モデル記憶手段12から読み出した詳細な衣服モデルの各粒子の位置情報(位置ベクトルpi,i=1~n)および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行い、演算後の各粒子の位置情報(位置ベクトルpi,i=1~n)を詳細衣服モデル記憶手段12に記憶するものである。
【0043】
以下、めり込み回避変形処理の詳細について説明する。
(表面形状のめり込み回避処理)
基準曲面生成手段14によって生成された表面形状が身体モデルにめり込んでいる場合、粗い衣服モデルのめり込み回避処理と同様、めり込みを回避するように各粒子の高さΔhpenetration,iを修正する。このとき、全ての粒子について衝突判定を行うと非常に多くの処理時間が必要となる。そこで、粗い粒子モデルの粒子の接触情報を利用することで、衝突の可能性のある粒子から順番に判定していく。
【0044】
具体的には、粗い衣服モデルのある面のどの頂点も身体モデルと接触していない場合は、その面内の衣服モデルの粒子については接触判定を行わない。また、身体モデルに接している衣服モデルの面についても、面内をトップダウンに分割したときの上位の粒子が身体モデルに接している場合のみ、下位の粒子の接触判定を順次行っていく。
【0045】
より具体的には、めり込み回避変形手段15は、以下の手順により計算する。(1)詳細な衣服モデルの各粒子が身体モデルにめり込んでいるかどうかを判定する。
(2)めり込んでいる場合は、めり込まないための最小限の高さΔhpenetration,iの修正量を計算する。
(3)ここまでの処理による粒子の位置ベクトルpiを次式により計算する。
【数3】
JP0004243681B2_000004t.gifなお、実際には全ての粒子について判定すると時間がかかるので、めり込んでいる可能性のあるものだけを順番に処理していく。
【0046】
〔力算出手段16〕
力算出手段16は、詳細衣服モデル記憶手段12から読み出した詳細な衣服モデルの各粒子の位置情報(位置ベクトルpi,i=1~n)および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出するものである。
【0047】
以下、力算出処理の詳細について説明する。
(法線方向の力の計算)
まず、詳細な衣服モデルの各粒子に働く弾性力を、粗い衣服モデルの各粒子に働く弾性力を表面の曲率を考慮しながら補間することによって計算する。非特許文献4において提案された方法により、詳細な衣服モデルの各粒子の位置から、弾性力のモデルに従って各粒子の弾性力を計算することも可能である。しかし、この方法では各粒子の位置の差によって粒子ごとの弾性力が大きく異なり、結果として、垂直方向の力がばらついたり不安定になったりしてしまう。そこで、本実施形態においては、それぞれの粒子単体で力を正確にシミュレートするよりも、表面に加わる力の分布に応じて近似的な変形を適用するために、上記のように粗いモデルの粒子に働く弾性力から計算する。
【0048】
具体的には、まず、図3に示すように粗い衣服モデルの粒子から、粗い衣服モデルの辺上の粒子および面内部の粒子に向けて、各粒子の曲率に応じて力を補間する。本実施形態においては、粒子間の曲率(両辺の角度)に応じて、どれくらい伝わる力が変化するかを決定する。本実施形態においては、力の伝達率ci,jkは、次式に示すように単純に両辺の角度としている。なお、実際には、衣服の素材などによっても、角度と伝達率の関係は異なると考えられるため、素材に応じた伝達率を設定する。
【数4】
JP0004243681B2_000005t.gif【0049】
各粒子の伝達率が決まれば、次式に示すように辺上の全粒子の伝達率を加重平均することで、辺の両端点の粒子の弾性力から、粒子上の各粒子の弾性力efiが求まる。
【数5】
JP0004243681B2_000006t.gif【0050】
同様に、辺上の粒子の弾性力が決定すれば、縦方向と横方向のそれぞれについて同様に面内の各粒子の弾性力を計算し、両者を平均することによって、面内の各粒子の弾性力も計算できる。
【0051】
各粒子の弾性力が決まったら、隣接する粒子から加わる弾性力をもとに垂直方向の力を計算する。粒子iに隣接する粒子jに弾性力efjが加わるときの粒子iへの垂直方向の力vfijを次式によって決定する。
【数6】
JP0004243681B2_000007t.gif【0052】
最後に、次式に示すように隣接する全ての粒子からの垂直方向の力を加算することで、粒子に働く垂直方向の力vfiを決定する。
【数7】
JP0004243681B2_000008t.gif【0053】
ここで、vfiが正であれば、粒子iは周囲から押されており、より起伏が大きくなる方向へと変形することを意味する。つまり、粒子iが周囲の粒子よりも高い位置にあればより高い位置に移動し、周囲の粒子よりも低い位置にあればより低い位置に移動することになる。一方、vfiが負であれば周囲から引かれており、より水平になる方向へと変形する。本実施形態においては、vfiが正であれば単純に上方向に移動し、vfiが負であれば単純に下方向に移動するものとして処理している。
【0054】
より具体的には、力算出手段16は、以下の手順により計算する。
(1)詳細な衣服モデルの各粒子に働く弾性力を計算する。
(1-1)粗い衣服モデルの粒子に対応する詳細な衣服モデルの粒子の弾性力efiを計算する。
(1-2)詳細な衣服モデルの粒子の力の伝達率(曲率)ciを計算する。
(1-3)(1-1)と(1-2)の結果から、粗い衣服モデルの辺上にある詳細な衣服モデルの粒子の弾性力efiを計算する。
(1-4)(1-3)と(1-2)の結果から、粗い衣服モデルの面上にある詳細な衣服モデルの粒子の弾性力efiを計算する。
(2)詳細な衣服モデルの各粒子に働く法線方向の力を計算する。
周囲の各粒子jの位置pjと弾性力efjから、前2式により法線方向の力vfiを計算する。
【0055】
〔変位量算出手段17〕
変位量算出手段17は、詳細衣服モデル記憶手段12から読み出した詳細な衣服モデルの各粒子の位置情報(位置ベクトルpi,i=1~n)および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に隣接する辺の長さの変位量を算出するものである。
【0056】
以下、変位量算出処理の詳細について説明する。
変位量算出手段17は、表面の長さを一定に保つために粒子iの付近でどれくらい長さが変化する必要があるかという値ΔLrequired,iを計算する。ここで、各粒子当たりの長さの必要変位量ΔLrequired,iを直接計算することは難しい。そこで、まず、次式に示すように、粗いモデルの辺eごとに、安定状態での辺の長さとの差から、辺の長さがどれくらい変化すべきかという値ΔLErequired,eを求める。
【数8】
JP0004243681B2_000009t.gif【0057】
より具体的には、変位量算出手段17は、以下の手順により計算する。
(1)粗い衣服モデルの辺ごとに元の辺の長さからどれくらい長さが変化しているかを示す変位量ΔLErequired,eを計算する。
(2)(1)の結果から、粗い衣服モデルの粒子に対応する詳細な衣服モデルの粒子のΔLrequired,iを計算する。
(3)(2)の結果から、粗い衣服モデルの辺上にある詳細な衣服モデルの粒子のΔLrequired,iを計算する。
(4)(3)の結果から、粗い衣服モデルの面上にある詳細な衣服モデルの粒子のΔLrequired,iを計算する。
【0058】
〔曲面変形手段18〕
曲面変形手段18は、力算出手段16により算出した各粒子に働く法線方向の力vfiと変位量算出手段17により算出した各粒子の周辺の長さの変位量ΔLrequired,iとに基づいて、詳細衣服モデル記憶手段12から読み出した詳細な衣服モデルの各粒子の位置情報(位置ベクトルpi)および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報(位置ベクトルpi)を算出し、この算出した詳細な衣服モデルの各粒子の位置情報を詳細衣服モデル記憶手段12に記憶するものである。
【0059】
曲面変形手段18は、辺ごとの長さの変位量を、弾性力を計算した時と同様のアルゴリズムで面内に分配することによって、それぞれの粒子の必要変位量ΔLrequired,iを計算する。Δexpcted,iとは、垂直方向の力vfiに応じて詳細な衣服モデルの粒子iの位置を変化させたとき、どれくらい長さが変化するかという値である。
【0060】
具体的には、粗い衣服モデルの粒子ごとに、隣接する辺の必要変位量ΔLErequired,eを平均することで、粒子の必要変位量ΔLrequired,iを計算する。この粒子ごとの値を、辺上の粒子、面内の粒子に順に補間することで、全粒子の値ΔLrequired,iを計算する。弾性力の計算の場合とは異なり、ここでは粒子の曲率や伝達率は考慮せず、単純に補間することで計算する。
【0061】
各粒子のΔLexpcted,iを表面形状から解析的に求めることは難しい。そこで、各粒子が法線方向の力に比例して動くと仮定し、次の2式により周囲の粒子との法線方向の力の差からΔLexpcted,iを近似する。すでに高い粒子がより大きく移動する場合、長さは広がるものとし、反対であれば縮まるものとする。
【数9】
JP0004243681B2_000010t.gif【数10】
JP0004243681B2_000011t.gif【0062】
最後に、ΔLrequired,iとΔLexpcted,iに応じて、次式により粒子の位置変位量Δhlength,iを計算する。ただし、両者の符号が反対であれば、修正は行わない。
【数11】
JP0004243681B2_000012t.gif【0063】
(変形アルゴリズム)
上記の計算において、粒子iに働く法線方向の力が比較的小さい場合、ΔLexpcted,iも小さくなり、結果的にΔhlength,iが非常に大きな値になってしまい、その結果、不自然に大きな皺が生成されてしまうことになる。そのため、必ずしもΔLexpcted,iを満たそうとはせず、法線方向の力によってどの程度位置変化を許すかという値Δhout-plane_force,i(次式参照。)によってこの値を制限する。
【数12】
JP0004243681B2_000013t.gif【0064】
ここで、Δtはシミュレーションの刻み幅、kout-planeは単位時間・法線方向の力当たり、どれくらいの位置変化を許すかというパラメータである。ここまでに計算されたΔhlength,iとΔhout-plane_force,iの内、小さい方の値が変形処理による粒子iの法線方向の位置変位量Δhdeformation,iとして使用される。
【0065】
曲面変形手段18は、最終的な衣服モデルの表面形状を、各粒子の高さの初期値としては前フレームの高さΔhlast_flame,iを用いて次の2式により求める。
【数13】
JP0004243681B2_000014t.gif【数14】
JP0004243681B2_000015t.gif【0066】
(変形の制約)
最後に、上記の各処理および上式によって計算された粒子の位置修正量Δhiに対して、いくつかの制約を適用する。まず、常に基準となる曲面よりも低くなることがないようにΔhi≧0という制約を適用する。次に、隣接する粒子間の間が一定以上長くならないような制約を適用する。最後に、粗いモデルの面を構成する全ての辺においての長さがもとの長さよりも長い場合ΔLErequired,e<0は、その面の内部には皺がなくなるよう、面内の粒子の高さをΔhi=0と修正する。以上の処理により、各粒子の高さΔhiおよび最終位置Piが求まる。
【0067】
(粒子の法線の計算)
最後に、詳細な衣服モデルの各粒子の法線の計算方法について説明する。
各粒子の法線を、単純に最終的に生成された表面形状から計算することもできる。しかし、本実施形態における手法ではそれぞれの粒子を独立かつ近似的に制御するため、隣接する粒子の高さが不規則になる場合があり、単純に計算された法線では必要以上に角張った印象を与えてしまう。また、ピーエヌ・トライアングルス法の元々の問題として、生成曲面は必ず元の頂点を通るという制約のため、一定の周期で波状になってしまうという問題がある。そのため、ピーエヌ・トライアングルス法では、非特許文献1に記載のように元の粗いメッシュの頂点の法線を補間することで詳細メッシュの頂点を計算し、なめらかにシェーディングを行う手法が提供されている。本実施形態においても、このピーエヌ・トライアングルス法によって計算された法線を使用する。すなわち、変形後の曲面から計算された法線ベクトルndeformと、ピーエヌ・トライアングルス法により計算された基準曲面の法線ベクトルnpntを各粒子の高さΔhiに応じてブレンドすることで最終的な法線を計算する(次の2式参照。)。
【数15】
JP0004243681B2_000016t.gif【数16】
JP0004243681B2_000017t.gifここで、hnormalはブレンド比率を決定するためのパラメータである。
【0068】
曲面変形手段18による具体的な処理手順は、以下の通りである。
(1)詳細な衣服モデルの粒子を法線方向の力vfiに比例して移動させたときの粒子の周辺の長さの変位量の期待値ΔLexpcted,iを計算する。
(2)法線方向の力vfiと長さの変位量ΔLrequired,iと長さの変位量の期待値ΔLexpcted,iから、粒子の高さの修正量Δhlength,iを計算する。
(3)法線方向の力に応じて最大どれだけの粒子の高さの変化を許すかという量ΔHout-plane_force,iを計算する(Δhlength,iに対応するフィルタとして働く。)。
(4)Δhlength,iとΔhout-plane_force,iのうち大きい方の値をΔhdeformation,iとして使用する。
(5)制約条件に応じてΔhdeformation,iを修正する。
(6)最終的な粒子の位置を次式により計算する。
【数17】
JP0004243681B2_000018t.gif(7)粒子の高さの修正量の合計Δhi=Δhlast_frame,i+Δhpenetration,i+Δhdeformation,iを次回の処理のΔhlast_frame,iとする。
(8)レンダリングに使用する粒子の法線ベクトルniを計算する。
【0069】
〔描画手段19〕
描画手段19は、身体モデル記憶手段10から読み出した身体モデルの各頂点の位置情報(位置ベクトルvi)および各頂点の連結情報、および詳細衣服モデル記憶手段12から読み出した詳細な衣服モデルの各粒子の位置情報(位置ベクトルpi)および各粒子の連結情報に基づいて、ディスプレイ等の表示装置上に描画する身体モデルに重ねて衣服モデルを描画するものである。
【0070】
上記構成の衣服シミュレーション装置による衣服シミュレーション方法について、図2のフロー図に基づいて説明する。
【0071】
〔ステップS101〕
動力学シミュレーション手段13による粗い衣服モデルの動力学シミュレーションを行う。動力学シミュレーション手段13は、身体モデル記憶手段10から身体モデルの各頂点の位置ベクトルviおよび各頂点の連結情報を読み出し、衣服モデル記憶手段11からシミュレーション前の身体モデルの各頂点の位置ベクトルqiおよび各頂点の連結情報を読み出し、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置ベクトルqiを衣服モデル記憶手段11に格納する。
【0072】
〔ステップS102〕
基準曲面生成手段14による基準曲面の生成を行う。基準曲面生成手段14は、動力学シミュレーション手段13による動力学シミュレーション後の粗い衣服モデルの粒子の位置ベクトルqiを衣服モデル記憶手段11から読み出し、前述のように細分割手法の適用により基準となる表面形状を生成し、この基準曲面の生成処理後の詳細な衣服モデルの粒子の位置ベクトルpiおよび詳細な衣服モデルの粒子の法線ベクトルniを詳細衣服モデル記憶手段12へ格納する。
【0073】
〔ステップS103〕
表面形状が身体にめり込まないようにめり込み回避手段15による変形処理を行う。めり込み回避手段15は、基準曲面生成手段14による基準曲面の生成処理後の詳細な衣服モデルの粒子の位置ベクトルpiおよび詳細な衣服モデルの粒子の法線ベクトルniを詳細衣服モデル記憶手段12から読み出し、また身体モデル記憶手段10から身体モデルの各頂点の位置ベクトルviおよび各頂点の連結情報を読み出し、前述のように衣服モデルの粒子が身体モデルの内部に存在する場合にその粒子を身体モデルの外部に移動することによりめり込み回避処理を行い、このめり込み回避処理後の詳細な衣服モデルの粒子の位置ベクトルpiを詳細衣服モデル記憶手段12へ格納する。
【0074】
〔ステップS104〕
力算出手段16により、詳細な衣服モデルの粒子に働く法線方向の力の計算処理を行う。力算出手段16は、めり込み回避手段15によるめり込み回避処理後の詳細な衣服モデルの粒子の位置ベクトルpiを詳細衣服モデル記憶手段12から読み出し、前述のように詳細な衣服モデルの各粒子が周囲のどの粒子からどの程度押されているか、あるいは引っ張られているかを計算し、詳細な衣服モデルの粒子に働く法線方向の力vfiを曲面変形手段18へ出力する。
【0075】
〔ステップS105〕
変位量算出手段17による衣服の長さの変位量の計算処理を行う。変位量算出手段17は、めり込み回避手段15によるめり込み回避処理後の詳細な衣服モデルの粒子の位置ベクトルpiを詳細衣服モデル記憶手段12から読み出し、前述のように詳細な衣服モデルの粒子の周辺の長さがどれくらい変化しているかを計算し、詳細な衣服モデルの粒子の周辺の長さの変位量ΔLrequired,iを曲面変形手段18へ出力する。
【0076】
〔ステップS106〕
曲面変形手段18による衣服の表面形状の変形処理を行う。曲面変形手段18は、詳細衣服モデル記憶手段12から詳細な衣服モデルの粒子の位置ベクトルpiを読み出し、この詳細な衣服モデルの粒子の法線ベクトルni、力算出手段16により算出された詳細な衣服モデルの粒子に働く法線方向の力vfi、および変位量算出手段17により算出された詳細な衣服モデルの粒子の周辺の長さの変位量ΔLrequired,iに基づいて前述のように表面形状の変形を計算し、最終的な詳細な衣服モデルの粒子の位置ベクトルpiを詳細衣服モデル記憶手段12へ格納する。
【0077】
〔ステップS107〕
描画手段19による描画処理を行う。描画手段19は、身体モデル記憶手段12から身体モデルの各頂点の位置ベクトルviを読み出すとともに、詳細衣服モデル記憶手段12から最終的な詳細な衣服モデルの粒子の位置ベクトルpiを読み出し、身体モデルに重ねて衣服モデルを描画する。
【0078】
以上のように、本実施形態におけるシミュレーション装置では、まず粗い衣服モデルによる動力学シミュレーションを行い、次に粗い衣服モデルから細かい衣服モデルを生成するという大きく分けて2段階のステップ(本ステップは、(1)粗いモデルを滑らかにすることで基本となる表面形状を生成する、(2)めり込んでいる範囲については、体の形状に合わせてめり込まないように変形する、(3)衣服の表面に働く力を計算し、周囲から力を受ける範囲には押し上げる力が働くという仮定に基づいて、衣服の表面形状を変形する、という3ステップを含む。)により衣服シミュレーションを行うことによって、自然なアニメーションを高速に実現することができる。
【0079】
【実施例】
本実施形態におけるシミュレーション装置を用いてアニメーションを生成した。表1は、それぞれの衣服モデルの頂点数、面数および処理時間を表している。なお、処理にはインテル社のペンティアム(登録商標)4・プロセッサ2.5GHzを用いた。単位はミリ秒である。
【0080】
【表1】
JP0004243681B2_000019t.gif【0081】
図示していないが、実験結果の画像からは、本発明の狙い通り、衣服が身体モデルに接している範囲では身体モデルに沿った形状になっており、また、衣服の特に圧縮されている範囲に細かい皺が生成されていることが分かった。また、表1に示すように、衣服が1枚だけの場合は十分リアルタイムに処理できたが、衣服が2枚の場合はやや遅く、秒間4~5フレーム程度であった。
【0082】
また、実時間衣服シミュレーションのアプリケーションとして、仮想試着システムのプロトタイプを開発した。仮想試着システムは、利用者の動きをモーションキャプチャ機器で取り込み、リアルタイムに衣服シミュレーションを行って利用者の前のスクリーンに映し出すことで、あたかも利用者が仮想空間内でさまざまな衣服を試着するような体験を可能にするシステムである。
【0083】
仮想試着システムには、上記の衣服シミュレーション手法を実装した。モーションキャプチャ機器として、磁気式のシステムであるアセンション・テック(Ascension Tech)社製のモーションスター(MotionStar)(16センサ)を使用した。
【0084】
利用者の骨格と用意されたキャラクタの骨格は若干異なるため、モーションキャプチャで得られた利用者の関節角度をそのままキャラクタにマッピングしただけではキャラクタの動きが不自然になってしまう。そこで、下半身の動きについては、腰の位置・向き、および両足首の位置・向きをキャラクタにマッピングし、キャラクタの足の関節角度は逆運動学を用いて計算した。腕を含む上半身の動きについては、利用者の関節角度をそのままキャラクタの関節角度にマッピングした。
【0085】
本システムでは、モーションキャプチャによるオーバーヘッドはほとんどなく、ペンティアム4プロセッサ2.8GHzを備えたのコンピュータ上で秒間13フレーム程度で動作した。モーションキャプチャによる遅延や、生成される衣服の形状に多少の違和感はあるものの、仮想空間で衣服を身に着けて動き回るような感覚を十分に得ることができた。
【0086】
【発明の効果】
本発明により、以下の効果を奏することができる。
【0087】
(1)身体モデルの各頂点の位置情報および各頂点の連結情報、および衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、身体モデルの動作に応じた衣服モデルの運動を動力学シミュレーションを用いて計算し、計算後の衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、細分割手法により詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子に働く弾性力を算出し、この算出した弾性力と各粒子の周囲の粒子の位置とから各粒子に働く法線方向の力を算出するとともに、詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの各粒子の周辺の長さの変位量を算出し、算出した各粒子に働く法線方向の力と各粒子の周辺の長さの変位量とに基づいて、詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報から詳細な衣服モデルの変形後の各粒子の位置情報を算出し、算出した詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて衣服モデルを描画する構成により、衣服モデルと身体モデルとの接触を考慮し、衣服モデルの表面に働く力に応じた細かい皺を表現することができる。これにより、衣服の自然な表面形状を高速に生成し、シミュレートすることが可能となる。
【0088】
(2)さらに、身体モデルの各頂点の位置情報および各頂点の連結情報、および詳細な衣服モデルの各粒子の位置情報および各粒子の連結情報に基づいて、詳細な衣服モデルの身体モデルへのめり込み回避演算を行う構成により、衣服モデルが身体モデルにめり込む場合には、このめり込んでいる範囲について体の形状に合わせてめり込まないように衣服を変形し、描画することができる。これにより、衣服のより自然な表面形状を高速に生成し、シミュレートすることが可能となる。
【図面の簡単な説明】
【図1】 本発明の実施の形態における衣服シミュレーション装置のブロック図である。
【図2】 本発明の実施の形態における衣服シミュレーション装置による衣服シミュレーション方法のフロー図である。
【図3】 粗い衣服モデルの辺上にある詳細な衣服モデルの粒子間の曲率および力の伝達率の計算の説明図である。
【符号の説明】
10 身体モデル記憶手段
11 衣服モデル記憶手段
12 詳細衣服モデル記憶手段
13 動力学シミュレーション手段
14 基準曲面生成手段
15 めり込み回避変形手段
16 力算出手段
17 変位量算出手段
18 曲面変形手段
19 描画手段
図面
【図1】
0
【図2】
1
【図3】
2