お世話になっております。
<br/>
レベルシーケンスを再生中、UMovieSceneSequencePlayer::SetPlaybackPosition()でシーケンサーの再生位置を進めた時に、アニメーショントラックで再生しているアニメーションのみ再生位置を維持しようと試しています。
<br/>
UMovieSceneSkeletalAnimationSystemについて理解不足で恐縮ですが、FGatherSkeletalAnimations::ForEachAllocation()のAnimParams.MapTimeToAnimation()で、再生位置を進めた分だけオフセットするように改造してみたのですが、アニメーションがうまくつながらずカクついてしまいました。
<br/>
この場合、どのようにすればアニメーションの再生位置を維持できますか?
改造すること自体避けるべきとは思うのですが、理解を深めるためご教示いただけますと幸いです。
<br/>
以上、よろしくお願いいたします。
お世話になっております。
AnimationTrack はレベルシーケンス(セクション)の再生位置とアニメーションの再生位置とを対応させるような実装になっておりますので、
レベルシーケンスを Seek、Pause 等した際にもアニメーションを連続的に再生させ続けたい場合には不向きかと思います。
プロジェクトの事情に応じて別の手段をご検討頂くことをおすすめします。
例として以下のような方法が考えられます。
初期コストの低いと思われる順に記載しています。
■EventTrack
シーケンス上のタイミングで任意の処理を行える汎用的な機能ですので、アニメーションを切り替えることも可能です。
該当箇所が少ない場合は最も手間がかからずに済むかと思います。
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/fire-blueprint-events-during-cinematics-in-unreal-engine
■CustomizableSequencerTracks(Beta)
Blueprint で比較的手軽にトラックを定義できるプラグインです。
Beta 版である点にはご注意下さい。
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/customizable-sequencer-track-in-unreal-engine
■トラックの自作
実装コストが高いですが、自由度も高いです。
エンジンに組み込まれた各種トラックの実装を参考に組み上げて頂くことになります。
https://tech.spark-creative.co.jp/entry/2021/11/11/194537
よろしくお願いいたします。
ご回答ありがとうございます。
ご教示いただいた内容を参考にさせていただきます。
別の方法で対応することになりましたので、こちらクローズで問題ございません。
ご対応ありがとうございました。