Chaos Flesh システムの概要
Chaos Flesh システムにより、Unreal Engine で変形可能 (ソフト) なボディの高品質のリアルタイム シミュレーションが可能になります。剛体シミュレーションとは異なり、ソフト ボディの形状はそのプロパティに応じてシミュレーション中に変化します。
このシステムでは、多様なパラメータを使うスタティックメッシュとスケルタルメッシュのシミュレーションをサポートしているため、最終結果を今まで以上に制御することが可能になります。このシステムは、スケルタル アニメーション中にキャラクターの筋肉の変形をシミュレーションすることを主な目的として設計されています。
Chaos Flesh システムでは、高解像度シネマティック品質のジオメトリのオフライン シミュレーションからキャッシュされた結果とともに、低解像度のジオメトリをランタイム時にシミュレートすることで、高パフォーマンスを実現します。
リアルタイムでソフト ボディをシミュレートする
Chaos Flesh システムを使用することで、アーティストは Unreal Engine 内で物理ベースの四面体シミュレーションを使ってさまざまなことを試すことができます。このシステムでは、高解像度シネマティック品質のジオメトリからキャッシュされた結果とともに、低解像度のジオメトリのリアルタイム シミュレーションを作成します。
ユーザーは データフロー アセット作成システムを介して Chaos Flesh を管理して、Chaos シミュレーターのための変形設定を生成できます。ノードベースのデータフロー エディタでは、スタティックメッシュとスケルタルメッシュのクローズド サーフェスから四面体ジオメトリを自動的に生成するための制御機能や、内部のシミュレーション プロパティを定義するためのツールが提供されます。
シミュレーションは、接続された ソルバ アクタ を介して管理されます。このスタンドアローンのアクタでは、スケルタルメッシュのローカル空間内でのシミュレーションが可能になり、その結果はスケルタルメッシュ アクタの変形デフォーマーを通じて視覚化されます。ソルバ アクタでは、次を制御する機能が公開されます。
サブステップの管理。
スレッド化モデル。
シミュレーションのグローバル プロパティ。
技術的な実装
四面体メッシュ化ツール
ソフト ボディのシミュレーションを開始するには、最初にオブジェクトのサーフェス表現 (三角分割されたスタティックメッシュやスケルタルメッシュなど) を、同じオブジェクトのボリュメトリック表現に変換する必要があります。Chaos Flesh システムでは、シミュレーション時にスタティックメッシュまたはスケルタルメッシュがそれと同等の四面体ジオメトリ表現に変換されます。
Chaos Flesh システムには、スケルタルメッシュとスタティックメッシュのクローズド ジオメトリから四面体ジオメトリを生成するための次のメソッドが備わっています。
最初のメソッドでは、ISO サーフェス スタッフィングを使って四面体ボリュームを生成します。
2 番目のメソッドでは、Tetrahedral Meshing in the Wild (TetWild) アルゴリズムを使って四面体ボリュームを生成します。
3 番目のメソッドでは、カスタム仕様のアルゴリズムを使ってラジアル四面体ジオメトリを生成します。
四面体シミュレーション
Chaos Flesh システムでは、生成した四面体ジオメトリを使って物理ベースのシミュレーションをリアルタイムで実行します。
Chaos Flesh システムでは、キネマティック コンストレイントを使って四面体ジオメトリをスケルタルメッシュにバインドして、そのアニメーションと一致させます。加えて、このシステムでは、ウィーク コンストレイントを使って四面体ジオメトリをシミュレーション頂点にバインドします。
このシステムを利用することで、減衰値や質量値など、パーティクル シミュレーションごとのプロパティを設定できます。さらに、このシステムにはローカル空間シミュレーションの限定サポートが含まれており、不変の非圧縮性とレスト ステートの調整設定が提供されます。
ワールド ソルバのインタラクション
Chaos Flesh シミュレーションは、環境とリアルタイムでやり取りすることができます。Chaos Flesh システムでは、光線キャストを使ってその四面体 (複雑な) ジオメトリとの環境的なインタラクションを検知します。
このシステムには、一方向の環境コリジョンに対するアート面の制御を提供するブループリント サポートと、コンストレイントの位置を駆動可能な入力アニメーションが備わっています。
さらに、このシステムでは、ワールド ソルバ内の剛体に対するコンベックス (凸型) コリジョンと分析コリジョンを検知できます。これにより、ソフト ボディとシミュレートされている他の剛体とをリアルタイムで衝突させることができるため、より複雑なシミュレーションが可能になります。
また、ゲーム ティックの順序を調整して、変形可能なシミュレーションをワールド ソルバの前または後に設定することもできます。
レンダリング機能
四面体メッシュはシミュレーションに適しているボリュメトリック構造体ですが、通常、レンダリングの観点からは理想的なサーフェスではありません。最も考慮すべきことはレンダリング サーフェスの見栄えを整えることであるため、システムでは、シミュレーション結果をレンダリング用に最適化されたサーフェスに転送します。
Chaos Flesh システムには、その四面体ジオメトリをデバッグ目的でエディタ内で視覚化する機能も備わっています。さらに、スケルタルメッシュ デフォーマーの視覚化機能も含まれています。
また、Nanite メッシュも、スタティック ジオメトリでの Nanite ディスプレイスメント マップの変形を通じてサポートされています。
シミュレーションをキャッシュする
筋肉シミュレーションをリアルタイムで実行すると、演算処理の負荷が大きくなる可能性があります。このことから、よりスムーズなランタイム再生を可能にするために、Chaos Flesh システムにはシミュレーション結果をキャッシュする機能が備わっています。
シーケンサーを使って、シミュレーションのキャッシュされたジオメトリ結果をスクラブ再生したり、Get Take と ムービー レンダー キュー (MRQ) を介してシミュレーションをレンダリングしたりできます。
Chaos Flesh システムの使用方法については、Epic Developer Community の「Chaos Flesh」のチュートリアルを参照してください。