Answered

Pasting keyframes on Additive Layer has weird result

Anonymous 8 months ago updated by Peter - Soxware Developer 8 months ago 3

Hi there, I'm having a weird result when I try to paste keyframes onto an additive layer.  I'll try and explain what I'm doing as best and as clearly as I can.   For the purposes of this example I have two animations: Idle and Talking.  Both are animations that have been downloaded from the Mixamo website using the same rig for both - so the bones should all match etc.  

I wish to change the animation of the left arm on the Idle animation and replace it with that of the Talking animation, but on an additive layer, so I can reduce the blend weight of the animation.  

On the base layer of the Idle animation I've deleted the original keyframes involving the left arm - and the result is the image below: 


Now, if I take the keyframes for the left arm in the Talking animation and cut and paste them into the base layer of the Idle animation we get the result below.

This looks great, all is perfect, however, rather than this operation, I need to post these keyframes onto an additive layer so that the blend weight can be reduced.   Yet, when I go ahead and do this, the result is this:  

Any idea why this is happening or how I can fix it easily?   I feel I'm probably missing something really obvious, but just can't see the wood for the trees. 

Many thanks in advance. 

UMotion Version:
1.20p03
Unity Version:
2018.4.2f1

Answer

Answer
Answered

Hi,
thank you very much for your support request.

An additive layer stores keys as a relative offset to the current pose of the underlying base layer (e.g. "add 10° rotation on top of the current base layer pose"). A base layer stores the absolute local position/rotation of your bone. Copying keys from the base layer (of the other animation) to the additive layer thus would treat the keys that store an absolute local position/rotation as if they would store a relative offset (which in your case won't produce the desired result).

You want to use an override layer instead of an additive layer. The override layer simply overrides the absolute key values of the base layer. Copy & pasting between the base layer and an override layer works fine.

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

Best regards,

Peter

Answer
Answered

Hi,
thank you very much for your support request.

An additive layer stores keys as a relative offset to the current pose of the underlying base layer (e.g. "add 10° rotation on top of the current base layer pose"). A base layer stores the absolute local position/rotation of your bone. Copying keys from the base layer (of the other animation) to the additive layer thus would treat the keys that store an absolute local position/rotation as if they would store a relative offset (which in your case won't produce the desired result).

You want to use an override layer instead of an additive layer. The override layer simply overrides the absolute key values of the base layer. Copy & pasting between the base layer and an override layer works fine.

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

Best regards,

Peter

Thanks Peter.  Such a simple solution, it never even clicked that the override layer also had a blend weight slider, even though it was staring me right in the face!   Congratulations on UMotion, it really is such a helpful and inspired product!   

I'm glad I could help. Thanks for the nice words, really appreciate it.