元記事:Physics - Blender Developer Documentation
新しく実験的なジオメトリノードベースのヘアーとクロス用物理演算システムが追加されました。このリリースで実験的としているのは、先に広くテストしてもらわないと設計がなかなか固まらないためです。そのため、次のリリースで大きく変更するつもりはありませんが、そうならない保証はありません。フィードバックを devtalk にお願いします。
新しい実験的な Cloth Dynamics(クロス力学※)モディファイアーとノードグループは、単に好きなメッシュに追加するだけで、布のような挙動になります。ピン留めや伸縮・曲げのコントロール、引き裂きなどのビルトインの様々な機能に対応しています。
※訳注:5.3で「実験的」が取れたら「クロスダイナミクス」に変更します。アセットもノードグループとして使用可能です。
ヘアーも同じような感じで動作しますが、少しセットアップが必要です。ヘアーを植え付けるサーフェスが必要だからです。Add(追加)メニューの更新された Empty Hair(空のヘアー)使用時、このセットアップは自動的に完了します。
また、これは新しい Capture Rest Geometry(レストジオメトリキャプチャ)モディファイアーもサーフェスメッシュに追加します。これはこのダイナミクスモディファイアーがサーフェスの静止状態から変形状態への変更を知るのに必要です。このデータは新しいジオメトリバンドル内に格納されています。
完全にジオメトリノード内で手続き的にセットアップすることもできます。
エフェクターはシミュレーションに影響を与える物です。ヘアーとクロスダイナミクスグループには多数のビルトインエフェクターがあり、重力や表面の衝突のように、簡単に使用できます。
さらに追加のエフェクターも使用できます。現在、三つのタイプのカスタマイズ可能なエフェクターが利用可能です。
追加のエフェクターをダイナミクスアセットに追加するには、二つの方法があります。
コライダーオブジェクトは、Collider(コライダー)モディファイアーを追加して生成します。これはモディファイアースタック内の位置のジオメトリを衝突用メッシュとして使用します。
完全に手続き的なセットアップでは、コライダーエフェクターバンドルを使用してダイナミクスノードに渡すことができます。複数のエフェクターを渡すには、_Combine Bundle(バンドル合成)_ノードを使用してください。
ヘアーも同じように動作します。
ビルトインの重力は別として、まだこのシステムにはすぐ使用できる力はありません。しかし、カスタムフォースが簡単に構築できます。
このセットアップは、カスタムフォースオブジェクトを作成するよう変更できます。Set Effectorアセットはエフェクターバンドルをジオメトリに取り付け、シミュレーションが後で見つけられるようにします。これはまた、新しく対応したエンプティオブジェクトへのジオメトリノード設定にもぴったりです。
カスタムエフェクターはクロージャを使用し、シミュレーションにカスタムの挙動を注入するのに使用できます。シミュレーションループの指定の段階(「ソルバー後」など)で実行されます。
ジオメトリがシミュレーション空間(特に指定がなければ、通常はワールド空間と合致)にあるため、ジオメトリをワールド空間に変換する方法の情報を含む Simulation to World(シミュレーションのワールド化)ノードが提供されており、必要に応じて好きな空間に変換できるでしょう。
クロスとヘアーダイナミクスアセットは内部的には新しいビルトインの XPBD Solver(XPBD ソルバー)ノードで動いており、様々な制約タイプの解決という重労働を行います。これらのアセットではこのビルトインノード周りでユースケース特有の宣言システムを構築しています。先進的なユーザーのために、深いレベルでシミュレーションをカスタマイズする二つのメインアプローチがあります。
ヘアー・クロスダイナミクスノードグループを対応させる。改造が必要ですが、必要に応じて宣言の形で制約を追加または削除するだけです。これは XPBD シミュレーション(英文)フレームワーク上に構築します。
ビルトインの XPBD ソルバー(英文)ノードの上に、完全に新しいシミュレーションシステムを直接構築する。ソルバーがタイプ付バンドルや属性の形で多数の情報を必要とするため、非常に難しいです。