I’m basically trying to recreate the power loader from Aliens where my player gets inside the frame, and then when they walk the loader walks. Trouble is my Loader is using a different skeleton than the player, so I have no idea how to sync the animations.
You may have better luck swapping an empty Loader SKM for a Second SKM with the character already inside, Possessing the Loader Pawn/Character, and hiding the player character. If the pose matches exactly, the swap will look seamless.
IIRC, this is how Barney dropping the Crowbar in HL2 was done. At the time, they apparently didn’t have the means to attach/detach an overlap pickup object/actor from the hand, so one model of Barney with a Crowbar in his hand was swapped for one without, and the acquirable Crowbar actor placed at the exact transform of the previous model before enabling physics simulation.
You may also have luck with Master/Leader pose and Animation Scaled Skeleton Retargeting, but I believe that this would still require the Loader Blueprint’s SKM to have a child SKM for the Operator, or vice-versa; more or less bringing you full circle back to the first suggestion.
Smoke and mirrors; the only thing that matters is that it looks correct.
It seems you already have 90% done. You might want to check if play rate, speed and stride need to be adjusted for both Anim BP. For that, you might find the stride warping node helpful. A good start is to put both walk cycles side by side and check for feet planted.
Yes, my character is simply a mesh inside the Loader Character, and I do hide/unhide on the mesh and my actual character pawn when interacting with the loader because I knew it would be easier. Sadly, you can’t use LeaderPoseComponent if the skeletons are different.
Clearly I didn’t search well enough before I posted though, because I found a similar post on the forums and they mentioned how they got it working.
For anyone else who comes across this and wants a basic guide:
I added a curve to my Loader’s walk cycle (Click the down arrow on the Curves layer) and then set it to 0 at frame 0 and 1 at the last frame, then added a “Blendspace Evaluator” to my character’s AnimBP and promoted the Normalized Time to a variable.
Then inside my Loader BP on Event Tick, I get a reference to my AnimInstance for the loader, and then use a “GetCurveValue” node to grab the value of the Curve instead the Loader Walk animation, and separately get a reference to my player and its AnimInstance and set the value of NormalizedTime to be the value of the Curve.