お世話になっております。
タイトルの件ですが、
Animation Blueprint の StateMachine で、
使用する ControlRig を瞬時に切り替えた場合に、一瞬 ControlRig が評価されないフレームが見えてしまう現象が発生しているので、
お手数をおかけしますが、調査をお願い出来ないでしょうか。
UE5.5 の時点では発生していませんでした。
また、2回 State を切り替えた後、LODが切り替わった瞬間も ControlRig が無効になる現象を確認しました。
現象発生時の動画を添付していますので、ご確認頂ければと思います。
左手を上げたまま、左を向いた状態と右を向いた状態の ControlRig を切り替えています。
ステートマシン内の二つのステートにそれぞれコントロールリグを入れて、一秒ごとにステートを切り替えるようにして確認しましたが評価されないフレームを観測することが出来ませんでした(添付動画をご参照ください)。ステートの切り替え方法やタイミング、ステートマシンの組み方などに影響を受けている可能性があるため再現プロジェクトをご共有いただけると助かります。
大変失礼しました。アタッチされた再現プロジェクトをうまく見つけることが出来ていませんでした。
ご用意いただいた再現プロジェクトによって問題を再現することができたので、
UE-316476 When ControlRig.EnableAnimNodePerformanceOptimizations is enabled, the default pose briefly appears after the Control Rig is reinitialized
としてバグ登録いたしました。
問題はue5.6からデフォルトで有効化された ControlRig.EnableAnimNodePerformanceOptimizations の影響を受けて、ステートマシンの切り替わりに合わせて再初期化されたコントロールリグの中間データ構造が次のtickまで再設定されないために起こります。
対策として ControlRig.EnableAnimNodePerformanceOptimizations を0に設定していただくことで問題を回避することができます。
ご確認いただけますでしょうか。
使い方がよく分かっていないのですが、
質問の投稿時に再現手順などを入力する欄があったので、そちらに添付しているのですが、
そちらは参照できない状態でしょうか。
そちらに添付したプロジェクトをこちらにも添付します。
プロジェクトを起動した際に開くレベル(Lvl_ThirdPerson) を PIE して、
配置されているキャラの近くで Enter を押す事で State が切り替わります。
切り替えのロジックはレベルBPで実装しています。
ご確認のほどよろしくお願いいたします。
ご確認ありがとうございます。
> ControlRig.EnableAnimNodePerformanceOptimizations を0に設定していただくことで問題を回避することができます。
こちらの対応で修正される事を確認しました。
エンジンが修正されるまでは、この対応で回避しようと思います。