Answered

Applying reference pose to multiple/all keyframes

Anonymous 3 years ago updated by Peter - Soxware Developer 3 years ago 5

As far as I know you can only apply reference pose to one keyframe at a time, is there a better way to do this then applying one by one? I was hoping for their to be drag and select what you want and simply apply reference pose to all of them but it doesn't seem that simple

UMotion Version:
Unity Version:

Answer

Answer
Answered

I'm not sure if I understood your initial request correctly. In your initial post you've been talking about the "apply reference pose" button, right?

If you instead meant that you want to copy and paste a pose from one animation to the other, just select all the keys you want to copy (they can be from multiple bones/transform and/or multiple frames at the same time). Then press CTRL + C to copy the keys, go to the destination animation, place the frame cursor at the appropriate position and then press CTRL + V.

If you need to then correct the position, select the position property, switch into the curves view and adjust the curve accordingly. Another way to apply a global offset is via an additive animation layer (please refer to the manual at "Clip Editor / Layers").

Let me know in case you have any follow-up questions.

Best regards,
Peter

Under review

Hi,
thank you very much for your support request.

Just apply the reference pose to the first and last frame (where you want the character to have the reference pose), then delete all keys in between.

Please let me know in case you have any follow-up questions.

Best regards,
Peter

Thank you peter

Unfortunately, I'm making a run animation, I can't just copy and paste the start and the beginning. I need all the frames pasted from one animation and the other.

Is it not possible to copy and paste the global position from the move tool for more then one keyframe? When I simply try to copy and paste the keyframes themselves the animation is WAY off axis, but when I use the move tool global position the position is correct but I can't paste more then one. 


This seems extremely counterintuitive in the future if I have to do it this way, I just want to know if theres a workaround or another way to do this.

Answer
Answered

I'm not sure if I understood your initial request correctly. In your initial post you've been talking about the "apply reference pose" button, right?

If you instead meant that you want to copy and paste a pose from one animation to the other, just select all the keys you want to copy (they can be from multiple bones/transform and/or multiple frames at the same time). Then press CTRL + C to copy the keys, go to the destination animation, place the frame cursor at the appropriate position and then press CTRL + V.

If you need to then correct the position, select the position property, switch into the curves view and adjust the curve accordingly. Another way to apply a global offset is via an additive animation layer (please refer to the manual at "Clip Editor / Layers").

Let me know in case you have any follow-up questions.

Best regards,
Peter

So the part about additive animation is actually how i normally do it for transferring animations to a different gameobject, which is what I did here, I appreciate the answers though you are very helpful

But on the topic of what my usual problem is when i simply try to copy and paste something like, 100 position/rotation keyframes onto a say - literally the same exact gameobject but duplicated (which is what i did here just to test things)

and the position and rotation - despite being a literal copy of itself - are different

now I realize that this probably has something to do with Local/Global pivot and whatnot and i've spent the last 3 days trying to figure out how it all works but it's pretty complex. I'll reset all global transforms including rotations - THEN copy and paste and it'll still be wrong so I don't know what I would do to make a copy paste animation give the duplicated object the same position and rotation.

What you said is correct, copy & pasting rotations/positions requires that all transforms/bones in the source and destination model have the exact same local pivots (local coordinate system). You can't simply copy an animation from character A to character B, because unless the guy who modeled the characters used an exact copy of the skeleton on both characters, the bones of the characters have completely different local pivots and proportions. That's why an animation re-targeting system like Unity's "humanoid" system is used, it uses some math/algorithms to try to match an animation from one characters skeleton to the other. Here is how they do this: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

Also, make sure not to copy key frames from an additive animation layer to a base layer (or an override layer). Keys in an additive layer are "offsets" to the underlying position/rotation. Meaning you would only copy the offset, not the current global position/orientation.

Best regards,

Peter