ソフトボディダイナミクスは、変形可能な物体(またはソフトボディ)の動きと特性の視覚的にリアルな物理シミュレーションに焦点を当てたコンピュータグラフィックスの分野です。 [1]アプリケーションは主にビデオゲームや映画です。剛体のシミュレーションとは異なり、ソフトボディの形状は変化する可能性があり、つまり、物体上の2点の相対距離は固定されていません。点の相対距離は固定されていませんが、物体はある程度その形状を維持することが期待されます(流体とは異なります)。ソフトボディダイナミクスの範囲は非常に広く、筋肉、脂肪、髪、植物などの柔らかい有機材料や、衣服や布地などのその他の変形可能な材料のシミュレーションが含まれます。一般に、これらの方法は、正確な科学的/工学的シミュレーションではなく、視覚的に妥当なエミュレーションのみを提供しますが、特に有限要素シミュレーションの場合、科学的方法と多少重複しています。現在、いくつかの物理エンジンがソフトボディシミュレーション用のソフトウェアを提供しています。[2] [3] [4] [5] [6] [7]
変形可能な固体
体積固体軟体[8]のシミュレーションは、さまざまなアプローチを使用して実現できます。
バネ/質量モデル

このアプローチでは、物体はフックの法則の変形に従う理想的な無重力弾性バネで接続された一組の点質点(ノード) としてモデル化されます。ノードは、物体の表面の 2 次元ポリゴン メッシュ表現のエッジから派生するか、物体の内部構造をモデル化したノードとエッジの 3 次元ネットワーク (または、たとえばロープや髪の毛をシミュレートする場合は 1 次元のリンク システム) から派生します。ノード間に追加のバネを追加したり、バネの力の法則を変更したりして、目的の効果を得ることができます。バネによって適用される力や外部の力 (接触、重力、空気抵抗、風などによる) を含む点質点にニュートンの第 2 法則を適用すると、ノードの運動に関する微分方程式系が得られ、これはODE を解く標準的な数値スキームで解かれます。[9] 3次元の質量バネ格子のレンダリングは、多くの場合、自由形状変形[10]を使用して行われます。この変形では、レンダリングされたメッシュが格子に埋め込まれ、格子の形状に合わせて変形されます。すべての点質量がゼロであると仮定すると、弾性格子の挙動に関連するいくつかの工学的問題の解決を目的としたストレッチグリッド法を得ることができます。これらは、質量バネダンパーモデルと呼ばれることもあります。加圧された軟体[11]では、バネ質量モデルは理想気体の法則に基づく圧力と組み合わされています。
有限要素シミュレーション
これはより物理的に正確なアプローチであり、広く使用されている有限要素法を使用して、弾性材料のダイナミクスを支配する偏微分方程式を解きます。物体は、互いにフィットする多数のソリッド要素に分割し、材料のモデルを使用して各要素の応力と歪みを解くことで、3次元の弾性連続体としてモデル化されます。 [12]要素は通常四面体で、ノードは四面体の頂点です( 2次元の多角形を三角形に分割するのと同様に、ポリゴンメッシュで囲まれた3次元領域を四面体に四面体化する比較的簡単な方法が存在します[13] [14])。歪み(材料の点の静止状態からの局所的な変形を測定するもの)は、歪みテンソルによって定量化されます。応力(材料に作用するすべての方向の単位面積あたりの局所的な力を測定するもの)は、コーシー応力テンソルによって定量化されます。現在の局所ひずみが与えられれば、フックの法則の一般化形式を介して局所応力を計算できます。 ここで、 は弾性テンソルであり、材料特性をエンコードします(等方性材料の線形弾性では、ポアソン比とヤング率によってパラメータ化されます)。
要素ノードの運動方程式は、各要素上の応力場を積分し、これをニュートンの第 2 法則を介してノードの加速度に関連付けることによって得られます。
Pixelux(デジタル分子物質システムの開発者)は、四面体メッシュを使用し、応力テンソルを直接ノード力に変換する有限要素ベースのアプローチをソフトボディに使用しています。[15]レンダリングは、自由形状変形の形式で行われます。[10]
エネルギー最小化法
このアプローチは変分原理と表面の物理学に基づいており、制約された表面は変形の総エネルギーを最小にする形状をとると規定している(シャボン玉に類似)。表面のエネルギーを局所的な変形(エネルギーは伸張と曲げの組み合わせによる)で表すと、表面上の局所的な力はエネルギーを位置に関して微分することによって与えられ、標準的な方法で解くことができる運動方程式が得られる。[16] [17]
形状マッチング
この方式では、モデルにペナルティ力または制約を適用して、モデルを元の形状に近づけます[18] (つまり、材料が形状記憶を持っているかのように動作します)。運動量を保存するには、たとえば極分解によって、物体の回転を適切に推定する必要があります。有限要素シミュレーションを近似するために、形状マッチングを3次元格子に適用し、複数の形状マッチング制約をブレンドすることができます。[19]
剛体ベースの変形
変形は従来の剛体物理エンジンでも処理でき、制約によって接続された複数の剛体のネットワークを使用してソフトボディの動きをモデル化し、(たとえば)マトリックスパレットスキニングを使用してレンダリング用のサーフェスメッシュを生成します。これは、Havok Destructionの変形可能オブジェクトに使用されるアプローチです。[20]
布のシミュレーション
コンピュータグラフィックスの文脈では、布のシミュレーションとは、2次元の連続した弾性膜の形で柔らかい体をシミュレーションすることを指します。つまり、この目的では、糸レベルでの実際の布の構造は無視できます(ただし、糸レベルでの布のモデリングは試みられています)。[21]レンダリング効果を介して、これは、ビデオゲーム、アニメーション、映画のさまざまなコンテキストで使用される織物や衣服の視覚的にもっともらしいエミュレーションを生成することができます。また、変形可能な金属パネルや植物など、織物以外の材料の2次元シートをシミュレートするためにも使用できます。ビデオゲームでは、服を着たアニメキャラクターのリアリティを高めるためによく使用されます。
布シミュレータは一般に質量バネモデルに基づいていますが、力ベースのソルバーと位置ベースのソルバーを区別する必要があります。
力ベースの布
質量バネモデル(布のポリゴンメッシュ表現から得られる)は、各タイムステップでノードに作用する内部バネ力(重力および印加力との組み合わせ)を決定する。ニュートンの第2法則は、標準のODEソルバーで解くことができる運動方程式を与える。しかしながら、タイムステップがインタラクティブなアプリケーションには小さすぎる場合を除いて(よく知られているように[引用が必要]、明示的積分は十分に硬いシステムに対して数値的に不安定であるため)、単純な明示的ソルバー(前進オイラー積分など)では、現実的な剛性を持つ高解像度の布を作成することはできない。したがって、[22]暗黙的ソルバーを使用する必要があり、これには(共役勾配法などを介して)大規模なスパース行列システムの解が必要であり、それ自体もインタラクティブなフレームレートで達成するのが難しい可能性がある。別の方法[23] [24]は、不安定性と過度の伸張を回避するためにアドホックな方法(ひずみ制限補正など)を備えた 、剛性の低い明示的方法を使用することである。
位置ベースのダイナミクス
ODEシステムのコストのかかる暗黙的な解法を実行する必要性を回避するために、多くのリアルタイム布シミュレータ(特にPhysX、Havok Cloth、Maya nCloth)は、制約緩和に基づくアプローチである位置ベースダイナミクス(PBD)[25]を使用します。質量バネモデルは、接続されたノード間の距離が初期距離と等しくなるように要求する制約システムに変換されます。このシステムは、十分に硬い布が得られるまで、各制約を満たすようにノードを直接移動することにより、順次反復的に解かれます。これは、質量バネモデルの暗黙的な行列システムのガウス-ザイデル解に似ています。ただし、スプリアス振動を避け、制約が線形および角運動量保存則に違反しないようにするために、各タイムステップで同じ順序で制約を解くように注意する必要があります。追加の位置制約を適用して、たとえば、ノードを目的の空間領域内(たとえば、アニメーション モデルに十分近い)に保持したり、形状マッチングによってボディの全体的な形状を維持したりできます。
変形可能なオブジェクトの衝突検出
視覚的にリアルな結果を得るには、シミュレートされた柔らかいオブジェクトとその環境とのリアルな相互作用が重要になる場合があります。布の自己交差は、許容できるほどリアルなシミュレートされた衣服を実現するいくつかのアプリケーションで重要です。これは、特に 2 つ以上の変形可能なオブジェクト間の自己衝突や相互衝突を検出して解決する場合、インタラクティブなフレーム レートで実現するのが困難です。
衝突検出は、離散的/事後的(つまり、オブジェクトは事前に決められた間隔で時間的に前進し、その後、貫通が検出されて解決される) または連続的/事前的(オブジェクトは衝突が発生するまでのみ前進し、衝突が処理されてから先に進む) のいずれかです。前者は実装が簡単で高速ですが、オブジェクトが十分に速く移動すると、衝突を検出できない (または誤った衝突を検出できない) 場合があります。リアルタイム システムでは通常、衝突を検出できないことを避けるため 、離散的衝突検出とその他のアドホックな方法を使用する必要があります。
明確に定義された「内部」を持つ布と環境オブジェクト間の衝突の検出は簡単です。これは、システムが布メッシュの頂点と面がボディと交差しているかどうかを明確に検出し、それに応じて解決できるためです。明確に定義された「内部」が存在しない場合 (たとえば、閉じた境界を形成しないメッシュとの衝突の場合)、「内部」は押し出しによって構築される場合があります。四面体で定義されたソフト ボディの相互衝突または自己衝突は簡単です。これは、ソリッド 四面体間の衝突の検出に帰着するためです。
しかし、離散衝突検出による 2 つの多角形布の衝突 (または布同士の衝突) の検出ははるかに困難です。これは、時間ステップ後に、貫通した布のノードが「間違った」側にあるかどうかをローカルに検出する明確な方法がないためです。解決策としては、交差イベントが発生したかどうかを判断するために布の動きの履歴を使用するか、布の状態をグローバルに分析して自己交差を検出して解決するかのいずれかがあります。Pixarは、構成空間でのメッシュ交差のグローバルなトポロジカル分析を使用して、布の自己相互貫通を検出して解決する方法を発表しました。[26]現在、これは一般に、リアルタイムの布システムには計算コストが高すぎます。
衝突検出を効率的に行うには、衝突しないことが確実なプリミティブをできるだけ早く特定し、時間の無駄を避けるために考慮から除外する必要があります。これを行うには、プリミティブ衝突のブルートフォース テストを回避するために、何らかの形式の空間分割スキームが不可欠です。使用されるアプローチには次のものがあります。
- 境界ボリューム階層(AABBツリー、[27] OBBツリー、球面ツリー)
- グリッドは均一型[28](メモリ効率のためにハッシュを使用)または階層型(例えばオクツリー、kdツリー)のいずれかである。
- 挿入ソートによるスイープとプルーニング、またはフロント トラッキングによるツリー間衝突などの、一貫性を活用するスキーム。
- これらのさまざまなスキームの組み合わせを含むハイブリッド方式。たとえば、粗い AABB ツリーと、衝突するリーフ間の一貫性を備えたスイープ アンド プルーニングなどです。
その他のアプリケーション
ソフトボディダイナミクスの方法でシミュレートできるその他の効果は次のとおりです。
- 破壊可能な材料:脆性固体の破壊、軟体の切断[29] 、布の引き裂き。有限要素法は、破壊力学によれば、物理的に破壊の発生を決定する材料内の内部応力の分布の現実的なモデルを含むため、破壊のモデル化に特に適しています[15]。
- 塑性[18](永久変形)と融解[30]
- 模造毛髪、[31]、毛皮、羽毛
- 生体医学応用のための模擬臓器[32]
コンピュータ グラフィックスのコンテキストで流体をシミュレートすることは、通常、ソフト ボディ ダイナミクスとは見なされません。これは通常、形状と形態を保持する傾向がある材料のシミュレーションに限定されます。対照的に、流体は、粒子が比較的弱い力で結合しているため、流体を含む容器の形状をとります。
ソフトボディ物理をサポートするソフトウェア
シミュレーションエンジン
ゲーム
参照
参考文献
- ^ Nealen、Müller、 Keiser、Boxerman、Carlson (2005)。「コンピュータグラフィックスにおける物理ベースの変形可能モデル」。CiteSeerX 10.1.1.124.4664 。
{{cite web}}:欠落または空|url=(ヘルプ)CS1 maint: multiple names: authors list (link) - ^ 「Numerion ソフトウェア - 炭素物理学」。
- ^ 「PhysX ソフトボディ」。2014 年 2 月 24 日。
- ^ 「Pixelux のデジタル分子物質 (DMM)」。2009 年 9 月 21 日時点のオリジナルよりアーカイブ。2010 年 3 月 7 日閲覧。
- ^ “Havok Cloth”. 2012年2月29日時点のオリジナルよりアーカイブ。2010年3月7日閲覧。
- ^ 「Bullet Physics」. 2022年3月21日.
- ^ 「マヤ核」。
- ^ 「Doc:2.4/Manual/Physics/Soft Bodies 2.46 - BlenderWiki」。wiki.blender.org。2015年11月4日時点のオリジナルよりアーカイブ。 2015年9月19日閲覧。
- ^ Desbrun、Schroder、Barr (1999)。「構造化された変形可能なオブジェクトのインタラクティブアニメーション」(PDF)。
- ^ ab Sederberg & Parry (1986). 「立体幾何モデルの自由形状変形」(PDF)。
- ^ Matyka & Ollila (2003). 「ソフトボディシミュレーションのための圧力モデル」(PDF)。
- ^ カウフマン、マーティン、ボッチ、グロス (2008)。 「不連続 Galerkin FEM を使用した変形可能モデルの柔軟なシミュレーション」(PDF)。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ スピルマン、ワーグナー、テシュナー (2006)。 「三角形スープの堅牢な四面体メッシング」(PDF)。
- ^ Bridson、Teran、Molino、Fedkiw (2003)。「レベルセットを使用した適応型物理ベースの四面体メッシュ生成」(PDF)。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ ab Parker & O'Brien (2009). 「ゲーム環境におけるリアルタイムの変形と破壊」
- ^ Terzopoulos、Platt、Barr、Fleischer (1987)。「弾性変形可能モデル」(PDF)。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ Wardetzky、Bergou、Harmon、Zorin、Grinspun (2007)。「離散二次曲率エネルギー」(PDF)。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ ab ミュラー、ハイデルベルガー、テシュナー、グロス (2005)。 「形状マッチングに基づくメッシュレス変形」(PDF)。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ Steinemann、Otaduy、Gross (2008)。「Fast Adaptive Shape Matching Deformations」。2011年1月10日時点のオリジナルよりアーカイブ。2010年3月8日閲覧。
- ^ 「Havok Destruction」。2010年2月21日時点のオリジナルよりアーカイブ。2010年3月7日閲覧。
- ^ Kaldor, James & Marschner (2008). 「糸レベルでのニット布のシミュレーション」(PDF)。
- ^ Baraff & Witkin (1998). 「布地シミュレーションにおける大きなステップ」(PDF)。
- ^ Provot (1997). 「衣服デザイン専用の布モデルにおける衝突および自己衝突の処理」CiteSeerX 10.1.1.89.9232。
{{cite web}}:欠落または空|url=(ヘルプ) - ^ Bridson、Fedkiw、Anderson (2002)。「布アニメーションにおける衝突、接触、摩擦の堅牢な処理」(PDF)。
- ^ ミュラー、ハイデルベルガー、ヘニックス、ラトクリフ (2006)。 「位置ベースのダイナミクス」(PDF)。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ Baraff、Witkin、Kass (2003)。「布を解く」(PDF)。
- ^ Van Den Bergen (1998). 「AABB ツリーを使用した複雑な変形可能モデルの効率的な衝突検出」(PDF)。
- ^ Teschner、Heidelberger、Müller、Pomeranets、Gross (2003)。「変形可能なオブジェクトの衝突検出のための最適化された空間ハッシュ」(PDF)。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ Steinemann、Otaduy、Gross (2006)。「変形オブジェクトの高速任意分割」(PDF)。
- ^ Müller、Keiser、Nealen、Pauly、Gross、Alexa (2004)。「弾性、塑性、溶融オブジェクトのポイントベースアニメーション」(PDF)。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ Selle、Lentine、Fedkiw (2008)。「ヘアシミュレーションのための質量スプリングモデル」。2009年12月14日時点のオリジナルよりアーカイブ。2010年3月7日閲覧。
- ^ 「バーチャル手術はいつ普及するのか?」サイエンティフィック・アメリカン。2007年。
- ^ “$jigglebone”. developer.valvesoftware . 2022年8月4日閲覧。
外部リンク
- 「自然現象のアニメーション」、変形可能な物体を含む物理ベースのアニメーションに関する CMU コース
- ソフトボディダイナミクスのビデオ例
- 紹介記事
- PBD法の基礎を解説したトーマス・ヤコブセンの記事
