Answered

Huge difficulty trying to do simple animation transitioning, what is the proper way? Mecanim does it perfectly...

ytGameDevDave 4 months ago updated by Peter - Soxware Developer 4 months ago 2

Something that the Unity mecanim Transition system takes care of very well... And I have been using that instead... Though this doesn't mean UMotion should be absent of the same quality... And maybe it doesn't (I don't know). 


Maybe there's a feature missing, like a weight parameter that slowly increments/decrements to blend the animation in an Additive or Override Layer.

I know UMotion's architecture won't allow foundational changes for this specific feature without breaking the rest of the program but maybe you could find a way to build upon it instead. 


I've got an animation called "RunStop". The character runs and then stops to a standstill in a rest pose... I want to replace and "blend" an aiming pose into the rest pose using an Override animation layer... To create a second "RunStop" animation, but in this one he ends in an aiming stance instead of a rest stance. Unfortunately the animation snaps to the next pose. I cannot find a way to smoothly "Transition" the animation. 

Copying the pose from the Aim stance on an additive layer on the "RunStop" clip glitches up the character to the point that you don't wanna deal with it. I was hoping with the additive layer the blending would work at least. Maybe this is a bug, I don't know. 

All-in-all, the basic yet somewhat childish statement I am making is: Unity mecanim is doing it perfectly for me, why can't UMotion..? 

I hope to find some guidance on doing proper animation transitions & blending. 


Thank you so much for the last update and for all of your help. Let me know if there's anything you need from me.


Best,


David

UMotion Version:
Latest
Unity Version:
2020 LTS

Answer

Answer
Answered

Hi David,

thank you very much for your support request and thanks for providing your feedback. That is very valuable for me.

Unfortunately there is currently no simple way to smoothly blend several animation clips together in UMotion to produce one final clip. At a minimum this would require to animate the weight parameter of the animation layers blend property (which is not possible at the time of writing). But thinking this further, that would still have some limitations because the current UMotion layers UI was primarily designed for adding precise modifications on top of an existing animation clip. In order to mix/transition ready made animation clips, a UI similar to Unity Timeline (where each animation clip is just a box + different animation tracks) would probably be easier and more effective to use as it allows you to easily offset and blending (multiple) animation clips with each other. As soon as you have more than 2 clips you want to blend (and want to correctly offset them to each other), the current layer system of UMotion might be cumbersome to use.

So doing this correctly would require a new tool or at least a new perspective within UMotion that has a UI primarily designed for "Animation Mixing". While I agree that this would be very useful, I can't promise anything as of now.

PS: Of course Mecanim is a perfect way of doing the animation mixing (at runtime). Animation blending is what Mecanim was made for. Doing simple transitions in UMotion would only have an advantage if you wnat to save a bit of CPU performance as the transition is pre-baked (but at the cost of additional memory usage as that would most probably mean that you have to pre-bake each and every transition combination which can be a lot).

Let me know if there is anything else I can help you with.

Best regards,
Peter

GOOD, I'M SATISFIED

Hey Peter,

I somewhat understand the complication of implementing this into the internal structure and reflecting it in the UI in an intuitive way. But of course I might be completely mistaken so please bear with me and excuse any misunderstanding.

There is one program that sets a proper example:

https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2018/ENU/Maya-Animation/files/GUID-59E7CD71-66EC-4200-8467-7B785B85A7A6-htm.html

But of course (and thankfuly) UMotion is very different from Maya. Nonetheless, Maya's approach on this feature is very effective and intuitive.

The way I imagine the implementation of an Animation Mixing feature in UMotion would be as follows:

  • The creation of an animation layer would also add an extra channel with the Layer's name.
    (Similar to how setting up IK creates new IK channels)

  • Keying this channel would be done in the "Channels" panel under the "Pose Editor" Tab with a slider and also a value option.
    (Similar to the "FK/IK Blend" slider & value attribute in the "Channels" panel)



  • The Animation Layer Weight channel would only be viewable/selectable/editable in the Dopesheet and Curves editor with the corresponding layer selected.

  • The blue slide bar of each layer in the animation layer's window would shift during playback & scrubbing the timeline according to the Animation Layer Weight channel's curve & keys. This is a way to see all of the layer animation during playback and receive visual feedback on how all layers influence each other.

  • The blue slide bar turns red when edited as it is now a keyable attribute.

I would see this as a very effective, efficient and elegant implementation and ultimately as a "Get's the job done" feature. The list of channels would get a little more cluttered but I saw that there is already a request for a "See All Selected Channels" and "See all Channels with Keys" toggle feature.

I don't think developing a seperate timeline for animation mixing is worth it ... as it would just create more work for you and it would unnecessarily complicate the workflow of the user/animator adding another timeline to the process for only a feature that is moreso an "addition" than a standalone system. Secondly this feature down to its element already has a place that the userbase has gotten used to (the animation layer panel). I know compartmentalization is key, and seeing multiple animation clips as blocks on top of each other is a very cool feature to show off, but it is unnecessary and more applicable/suitable for a cinematics/camerawork-based animation system.

I hope this helps and if it really is inadvisable then I'm sorry, I have obviously no idea what UMotion truly looks like under the hood.

Again as always, thank you so much for creating this wonderful system. I feel devoted to seeing UMotion reach its full potential.

Have a good day!

Best,


David

Satisfaction mark by ytGameDevDave 4 months ago
Answer
Answered

Hi David,

thank you very much for your support request and thanks for providing your feedback. That is very valuable for me.

Unfortunately there is currently no simple way to smoothly blend several animation clips together in UMotion to produce one final clip. At a minimum this would require to animate the weight parameter of the animation layers blend property (which is not possible at the time of writing). But thinking this further, that would still have some limitations because the current UMotion layers UI was primarily designed for adding precise modifications on top of an existing animation clip. In order to mix/transition ready made animation clips, a UI similar to Unity Timeline (where each animation clip is just a box + different animation tracks) would probably be easier and more effective to use as it allows you to easily offset and blending (multiple) animation clips with each other. As soon as you have more than 2 clips you want to blend (and want to correctly offset them to each other), the current layer system of UMotion might be cumbersome to use.

So doing this correctly would require a new tool or at least a new perspective within UMotion that has a UI primarily designed for "Animation Mixing". While I agree that this would be very useful, I can't promise anything as of now.

PS: Of course Mecanim is a perfect way of doing the animation mixing (at runtime). Animation blending is what Mecanim was made for. Doing simple transitions in UMotion would only have an advantage if you wnat to save a bit of CPU performance as the transition is pre-baked (but at the cost of additional memory usage as that would most probably mean that you have to pre-bake each and every transition combination which can be a lot).

Let me know if there is anything else I can help you with.

Best regards,
Peter

Hi David,

thanks for sharing your detailed thoughts about this feature with me. This helps me getting a better understanding of what customers would expect from this.

Best regards,
Peter