Update Mode

時間更新設定


UpdateModeを変更することでクロスコンポーネントごとにシミュレーション時間の進行方法を変更することができます。
これは特にキャラクターをFixedUpdate()で移動させる場合に重要です。

Unityでは描画システムの更新ループと物理システムの更新ループの2つの異なる時間管理システムが同居しています。
そのためキャラクターが利用する更新ループに合わせてMagicaClothの更新タイミングを合わせないと正しくシミュレーションが動作しません。
この設定を間違うとシミュレーションに不可解な振動が発生します。

Normal

Unityの基本的なUpdate()のタイミングで時間を進行させます。
このモードはキャラクターの移動をUpdate()もしくはLateUpdate()で行い、アニメーションをNormalで更新することを前提としています。

Unity Physics

Unityの物理システムの更新タイミングで時間を進行させます。
このモードはキャラクターの移動をFixedUpdate()で行い、アニメーションをAnimate Physicsで更新することを前提としています。

Unscaled

Normalと同じくUpdate()のタイミングで時間を進行させます。
ただしNormalと異なりUnityのタイムスケール(Time.timeScale)に影響されません。
これはtimeScale=0によりゲームを停止させたままインベントリなどでキャラクターにクロスシミュレーションを適用する場合に便利です。
この場合はアニメーションもUnscaled Timeに設定することが必要です。

Animator Linkage

キャラクターのAnimatorのUpdateModeに連動して適切な更新モードを自動的に設定します。
Animatorが存在しない場合はNormal更新となります。

Animator.UpateMode MagicaCloth.UpdateMode
Normal Normal
Animate Physics (Fixed) Unity Physics
Unscaled Time Unscaled