お世話になっております。
ご質問ありがとうございます。
> マスターシーケンスとサブシーケンスで同じアクターに対してトラックを設定する場合、どちらが優先度が高いのか
この優先度は「階層バイアス」という仕組みで解決され、デフォルトではサブシーケンスが優先され、マスターシーケンスのトラックは無視されます。詳細は公式ドキュメント『サブシーケンス トラック』の「階層バイアス」のセクションをご覧ください。」
https://dev.epicgames.com/documentation/unreal\-engine/cinematic\-subscequences\-track\-in\-unreal\-engine?lang\=ja
非常に気になる点として、ご提供いただいた下記の手順を試してみましたが、
> 1.ACharacterに動的バインド
> 2.ACharacterのルートモーション付きアニメーションを「ルートボーンアクタを交換」で再生
> 3.ACharacterの座標がアニメーションのルート位置になってしまい、半分地面に潜ってしまうのでACharacterにトランスフォームトラックをAbsolute、KeepStateで追加し、ACharacterのカプセルのハーフハイト分上げる
>
> 上記の手順をマスターシーケンスのみで行った場合はシーケンサー終了時の位置がインゲームのACharacterの位置に反映されました。
実は当方ではこちらの再現ができておりません。
つまり、このセットアップでは、マスターシーケンス一本でもシーケンサー終了時にキャラクターの位置はSwap Root Motion Actorで移動した移動後の位置を引き継げず、「3」で設定したトランスフォームトラックの位置に引き戻されました。ただし、この挙動(ルートモーションの位置を素直に引き継げない、不便な挙動)が、本来のエンジンの挙動であるはずです。
たいへん恥ずかしながら、どのようにしてお手元でルートモーション位置の引き継ぎを実現されているのか、当方では見当がついていないというのが正直なところです。お手数ですが、Thirdpersonテンプレートを使用し、MM_Walk_FwdなどのアニメーションをRoot Motionに変更したもので再現プロジェクトを作成し、ご提供いただけますと助かります。
> 組み合わせを想定していないトラックはあるのか
基本的にはどのようなトラックも組み合わせてご利用いただけます。
ただし、すでにお試していただいておりますように、TransformトラックとAnimationトラックは、「トラックとしては別物」ながら、同じアクタの座標に影響を与えてしまうため、挙動をよく理解したうえで組み合わせていただく必要があります。これはマスターシーケンスとサブシーケンスで組み合わせる場合に限らず、同一シーケンス上で組み合わせる場合も注意が必要な点です。
特徴的なのは、AnimationトラックのSwap Root Bone Actorはポストプロセスでアクタの位置を変更する仕組みとなっており、Transformトラックが座標を変更するコードパスとは異なっているという点です。そのため、仕様上は、
・AnimationトラックをKeep Stateに設定しても、ルートモーションで動かしたアクタ位置は温存されない(Animationトラックは座標を管理するトラックではないため)
・TransformトラックをKeep Stateに設定しても、Animation トラックのSwap Root Bone Actorで動かしたアクタ位置は温存されない
(Transformトラックが行う方法とは異なる方法で座標が変更されているため)
という挙動になります。
> 目的:
> シーケンサーでインゲーム中のACharacterに動的バインドして、シーケンサー内でルートモーションで移動した結果をそのままインゲームのACharacterの位置にしたい
お手元では「ルートモーションで移動した結果をそのままインゲームのACharacterの位置にする」方法があるようですが、本来のエンジンの挙動では上記要件は非常に実現が難しいとされています。これを補うため、Animation Mixer プラグインが現在実験的に開発されておりますが、標準機能でインゲームキャラクターとSwap Root Bone Actorを組み合わせる際に社内でノウハウとされておりますのは、
・Swap Root Bone Actorを適用した際にキャラクターが地面に埋まってしまう症状は Transform ではなく、AnimationトラックのProperty > Root Motions > Start Location Offset でZ値を入れることで行う。ただし、この方法ではルートモーション後の位置をKeep Stateでインゲームに引き継げない。
・インゲーム引継ぎを行う場合はTransformトラックを追加し、アクタの最終位置をTransformトラックにConstraint補間で打つ。このとき Start Location Offset と制御が干渉するため、Start Location Offsetはリセットする。
(つまり、厳密にはルートモーションの位置を引き継げておらず、ルートモーションの結果をTransformトラックにベイクするような形です)
といったものとなります。
ご質問に必ずしも回答できておらず誠に恐縮ですが、一旦お返事申し上げます。
以上、よろしくお願いいたします。
[Attachment Removed]