You are currently viewing PlayMakerでLateUpdateを利用するには設定が必要な話

PlayMakerでLateUpdateを利用するには設定が必要な話

PlayMakerはUnityでビジュアルスクリプティングが利用できるようになるアセットです。

UnityにはBoltが標準搭載されましたが、なんとなくPlayMakerのほうが肌に合っていて、こちらを使い続けています。
今回、PlayMakerでLateUpdateを利用しようとしたらうまくいかずはまってしまったので解決方法をメモしておきます。

PlayMakerでLateUpdateを利用するには「Fsm.HandleLateUpdate = true;」を設定する

詳しくは以下のリンクを確認してください。
PlayMaker 1.8.5 LateUpdate handling change (hutonggames.com)

PlayMakerでLateUpdateを利用するには以下のコードで設定を有効にする必要があります。

        public override void OnPreprocess()
        {
           Fsm.HandleLateUpdate = true;
        }

パフォーマンスを確保するため、デフォルトではLateUpdateは動かないようになっているようで、上記設定を行うことでLateUpdateが動作するようになります。

フラグをTrueに設定するタイミングは「OnProcess」内で行うのが一番良いとのこと。

ことの発端

今回LateUpdateを利用しようした背景として、以下のようなことを実現したかったためです。
・Animatorが設定されているオブジェクトのボーンを、スクリプトから制御したい

通常、Animatorが設定されているオブジェクトのボーンはスクリプトから制御できません(Animatorコンポーネントによって上書きされるため)
ただ、LateUpdateであれば、アニメーションの処理が終わった後に実行されるため、Animatorが設定されているオブジェクトでもスクリプトからボーンを制御することができます。

今回はVRコンテンツ作成時、指の曲げ伸ばしをアバターにも反映するためにスクリプトで指のボーンの回転をアバターのボーンに反映するということを行いました。

以上

ということで、PlayMakerでLateUpdateを利用するときの注意点でした。
Unityは最近利用料金のポリシーの変更を打ち出し、多くのゲーム開発者からの反発を受けていました。
あまりにも反発が強かったためか、ポリシーの見直しを行うと公式Xにてアナウンスがありましたが、Unityの迷走具合は少し心配になるところがあります。

早く問題が落ち着いて、安心して開発できる状態になってほしいですね。

Meta|メタ Meta Quest 2 128GB [899-00183-02] ライトグレー

コメントを残す