BlendStackを使ってアニメーションを再生したときに、1フレームにあるアニメーション通知が実行されません。
最初のフレームではWeightが0で再生されるようで、アニメーション通知のデフォルト閾値を下回り実行されないことがわかりました。他の方法で再生する場合(Blend Pose By Boolなど)はこのような挙動がありませんでした。
BlendStackの仕様なのか?バグなのか教えてください。またバグの場合、修正の予定はありますか?
<br/>
暫定対応として”Trigger Weight Threshold”を0にして、しばらく運用しようと考えていますが他にいい回避策があれば教えてください。
再現手順
・再現環境
GameAnimationSampleプロジェクトをUE5.6で作成します。
https://www.fab.com/ja/listings/880e319a\-a59e\-4ed2\-b268\-b32dac7fa016
・再現手順
- アニメーション通知を継承したBPクラスを作成する。ここでは、AN_WeightTestという名前にする。
- AN_WeightTestのReceived Notify関数をオーバーライドする。LogStringなど適当な関数を呼ぶ実装にして、ブレークポイントを設定する。 [Image Removed]
- CHT_AnimationsForStateMachineを開き、M_Neutral_Run_Start_F_Lfootが出力結果になっている行を選択する。UseMMをfalseにする
- M_Neutral_Run_Start_F_Lfootの1フレーム目にAN_WeightTestを配置する
- GameAnimationWidgetを起動し、StateMachine Setupを有効化する
- PIE起動する
- Wキーを押下し、M_Neutral_Run_Start_F_Lfootが再生されるようにする
- AN_WeightTestのブレークポイントで止まって欲しいが止まらない
- M_Neutral_Run_Start_F_Lfootに配置したAN_WeightTestを選択し、”Trigger Weight Threshold”を0にする
- PIE起動する
- Wキーを押下し、M_Neutral_Run_Start_F_Lfootが再生されるようにする
- AN_WeightTestのブレークポイントで止まる
お世話になっております。
Blend Stackは、他のBlend Pose系の再生手段と異なり、モーションマッチングの品質最優先で、先行するアニメーションと次に来るアニメーションをつなぐことに特化しており、後者のアニメーションをWeight 0からブレンドインするよう意図的に実装されています。この挙動で Anim Notify が通知されないなどの問題がある場合、すでにお試しいただいているように Trigger Weight Threshold を 0 に変更して運用していただくのが解決策となります。
参考までに以下に関連するスレッドをご紹介します。
[Content removed]
以上、よろしくお願いいたします。
回答ありがとうございました。
モーションマッチング向けに実装されているノードだからということで承知しました。必要な場合にTrigger Weight Threshold を0にして運用するのを検討してみます。
ご確認ありがとうございました。
それでは本スレッドは回答済みとしてCloseさせていただきます。
また何か疑問点などございましたら、お気軽にEPSでお問い合わせください。
以上、よろしくお願いいたします。