Fixed

Broken - Constant Tangent Curves / Stepped Tangents

flareStack 5 years ago updated by Peter - Soxware Developer 5 years ago 5

Is it possible to create and export animation curves with "Broken - Constant" tangents for use on a Mechanim Humaniod character that can make use of the Animator component?

UMotion Version:
1.19p02
Unity Version:
2019.2
Working on fix

Hi flareStack,
thank you very much for your support request.

So basically you can select a key in the UMotion curves view, then right-click and select "Broken Tangents". Next right click again and select "Left Tangent --> Constant".

I tried that before writing this answer and found 2 bugs related to this topic:

  1. When you click on "Left Tangent --> Constant" while the "broken tangents" is disabled it will also set the right tangent to constant. The desired behavior would be that only the left tangent is sent to constant, broken tangents is enabled and the right tangent is set to "free". I'm going to patch this in the next release.
  2. When you export the animation, there is still a little bit of interpolation happening (for exactly one frame). I've added this to my issue tracker for further investigations. I'll keep you updated.

Best regards,
Peter

Hi Peter,


Thank you for getting back to me and thank you for looking into this.

Best,

Sky

Hi flareStack,

may I ask you if you could provide some further information about your use case of constant/stepped curves for humanoid?

Thank you very much.

Best regards,
Peter

Hi Peter,

I want to use constant/stepped curves for humaniod in order achieve a similar effect on 3D characters that can be seen in older sprite based games where only a few of frames composed an entire walk cycle. Essentially this is a stylistic decision. Upon importing stepped tangents from third party applications, (maya) the stepped tangents do not come though stepped. Editing the tangents in the unity animation widow did not work either. I have read that unity will always interpolate rotation data on import. I was curious as to whether creating the animation in unity using uMotion, rather than exporting from a third party app, would get around this issue.

Let me know if you that answers your question or whether you would like more information.

Best,

Sky

Fixed

"Editing the tangents in the unity animation widow did not work either."

That should work (I just tried it). Make sure that your animation is not readonly (if so, expand the *.fbx in the project view and select the *.anim file then click CTRL + D to create an editable duplication of the animation). If you want to make all frames of your animation stepped, use CTRL + A to select all keys, then right click and change the tangents to constant.

UMotion currently has the same issue as when you import an animation from Maya: It has to re-sample the animation when saving it as humanoid. That re-sampling process would need to treat constant/stepped keys in a special way (which it currently doesn't). Thus for one frame there is some linear interpolation happening. Due to the complexity of this implementation vs the fact that constant/stepped curves usually don't make sense (except in special cases like yours) when working with humanoid animations, I decided to postpone the implementation of this feature. Please use Unity's Animation Window to change the tangent mode to constant. Thanks for your understanding.


When you configure your character as generic, UMotion fully supports stepped/constant curves.

The issue "number 1" (see my first post) is fixed in V1.19p03.


Best regards,
Peter