Physics Manager

物理マネージャ

PhysicsManagerはMagica Clothコンポーネントの全体を管理するマネージャです。
シーンに必ず1つ必要となります。

 

シーンに配置する

MagicaClothを動作させるためにはMagicaPhysicsManagerをシーンに配置する必要があります。
すでにプレハブ化されていますので、次のプレハブをシーンに配置してください。
またプレハブは必ずHierarchyのルートに配置するようにしてください(後述)

 

プロパティ

MagicaClothの物理エンジンを更新する頻度などを設定します。
基本的には初期設定のままでほとんど問題ありませんが、プロジェクトに併せて調整した方がパフォーマンスの面で有利な場合もあります。

項目 説明
Enabled コンポーネントのEnabledフラグをOFFにすることでMagicaCloth全体の動作を停止できます。
Update Per Second 1秒間あたりの物理エンジンの更新回数です。
更新回数が多いほど物理エンジンは強固になりますが、パフォーマンスが犠牲になります。
初期設定は90回です。
Update Mode

更新時間の実装方法です。

[Unscaled Time]
更新はUnityのフレームレートに関係なく実行されます。
フレームレートがゲーム中に変動する場合に有利です。
ただし1フレーム間に複数回物理エンジンが実行される場合があり、パフォーマンスに波が生じます。

[Once Per Frame]
更新はUnityの1フレームに1回だけ行われます。
この場合は1回の更新でUpdate Per Secondの時間ステップだけ物理エンジンが進みます。
フレームレートがゲーム中にほぼ一定の場合は、こちらのほうがパフォーマンス的に有利です。
このモードを使用する場合は[Update Per Second]をゲームのフレームレートに合わせる必要があります。

[Delay Unscaled Time]
遅延実行。
更新はUnscaled Timeと同じですが、クロスシミュレーションをレンダリング中にも実行します。
このためパフォーマンスが大幅に向上します。
ただ結果が1フレーム遅れることに注意してください。
この遅れは未来予測により補間されます。

Update Location

シミュレーションの更新位置です。
[After Late Update]
シミュレーションはUnityのLateUpdate()後に更新されます。

[Before Late Update]
シミュレーションはUnityのLateUpdate()の前に更新されます。
これは2D Animation PackageなどLateUpdate()で更新が行われるアセットと併用するときに便利です。

Faster Write

このオプションをONにすることでRenderDeformerはUnityの新しいMeshAPIを利用してメッシュ頂点を更新します。
これによりメッシュの更新速度が大幅に向上します。
ただしこの機能はUnity2021.2以降でないと利用できません。
デフォルトではOFFになっています。

OnPreUpdate

クロスシミュレーション実行前のイベントを登録することが可能です。

OnPostUpdate

クロスシミュレーション実行後のイベントを登録することが可能です。

 

マネージャは破壊されません

PhysicsManagerはシーンが破棄されても削除されない設定になっています。
基本的にはゲームで最初にロードされるシーンに配置しておくことで、そのゲーム中は常に有効になります。

ただこの機能を有効にするためにマネージャを必ずシーンのルート階層に配置するようにしてください。
ルート階層にマネージャが配置されない場合はこの機能が使えません。

 

2つ目のマネージャは破壊されますが、設定はコピーされます

2つ目のマネージャが発見された場合はそのマネージャは破壊されます。
ただし、そのマネージャの設定は現在のマネージャに上書きされます。

 

遅延実行

UpdateModeを[Delay Unscaled Time]に設定することで、クロスシミュレーションがレンダリング中にも実行されるようになります。

これによりパフォーマンスが大幅に向上しますが、結果が1フレーム遅れることに注意してください。
ただ、この遅れは未来予測により補間することが可能です。

項目 説明
Future Prediction Rate 未来予測率。
1.0では1フレーム先まで未来予測を行い結果が補間されます。
0.5では0.5フレーム先までの未来予測を行います。
0.0に設定すると未来予測を行いません。

次は未来予測の比較画像です。

未来予測無し 未来予測有り

1フレーム遅れるため左では足が布を突き抜けてしまいますが、右では未来予測により補間されるため突き抜けません。