Using SoftBody¶
Soft Body(またはSoft Bodyダイナミクス )は、変形可能なオブジェクトの動き、形状の変化、その他の物理的特性をシミュレートします。 これは、たとえば、布をシミュレートしたり、よりリアルなキャラクターを作成するために使用できます。
基本的なセットアップ¶
SoftBody ノードは、ソフトボディのシミュレーションに使用されます。
弾力のある立方体を作成して、ソフトボディのセットアップを示します。
ルートとして Spatial ノードを持つ新しいシーンを作成します。 次に、Softbody ノードを作成します。 インスペクタのノードの mesh プロパティに CubeMesh を追加し、シミュレーションのためにメッシュの細分割を増やします。
パラメーターを設定して、目的のソフトボディのタイプを取得します。Simulation Precision を5以上に維持してください。そうしないと、ソフトボディが破たんする可能性があります。
注釈
一部の値は奇妙な結果につながる可能性があるため、一部のパラメーターは注意して処理してください。 たとえば、シェイプが完全に閉じられておらず、pressureを0より大きい値に設定すると、ソフトボディは強風の下でビニール袋のように飛び回ります。
シーンを再生してシミュレーションを表示します。
ちなみに
シミュレーションの結果を改善するために、Simulation Precision を上げると、パフォーマンスを犠牲にして大幅に改善されます。
マントのシミュレーション¶
Platformer3Dのデモでマントを作りましょう。
注釈
You can download the Platformer3D demo on GitHub or the Asset Library.
Player シーンを開き、SoftBody ノードを追加して PlaneMesh を割り当てます。
PlaneMesh プロパティを開き、size(x: 0.5 y: 1)を設定し、Subdivide Width と``Subdivide Depth`` を5に設定します。SoftBody の位置を調整します。次のようなことが起きてしまいます:
ちなみに
サブディビジョンでは、より優れたシミュレーションのために、よりテッセレーションされたメッシュが生成されます。
スケルトンノードの下に BoneAttachment ノードを追加し、Neckボーンを選択してマントをキャラクタースケルトンにアタッチします。
注釈
BoneAttachment ノードは、オブジェクトをアーマチュアのボーンにアタッチします。 アタッチされたオブジェクトはボーンの動きに追従します。キャラクターの武器はこの方法でアタッチできます。
ピンジョイントを作成するには、SoftBody ノードの上の頂点を選択します:
The pinned joints can be found in SoftBody's Attachments property, choose the BoneAttachment as the SpatialAttachment for each pinned joints, the pinned joints are now attached to the neck.
最後のステップは、SoftBody の Parent Collision Ignore にキネマティックボディ Player を追加して、クリッピングを回避することです。
シーンを再生すると、マントは正しくシミュレートされます。
これは、ソフトボディの基本設定をカバーし、ゲームを作成するときに目標とする効果を達成するためのパラメーターを実験できます。