#Animation blending and "custom override"

1 messages · Page 1 of 1 (latest)

prime ledge
#

Recently, I've been in a position where we have a custom past after the animation, similar to IK, to add per bone weight pose (Holding a sword for example). The issue that we have is that whenever we are blending from one animation that has the "custom override" and the one that does not have it we have behavior that does not correspond to what we are expecting.

From what I understand, this is due to how the blending is done (Animation A -> Animation B -> "custom override" vs Animation A -> "custom override" -> Animation B). We were able to mitigate some of the issue by having the "custom override" blends and modifying some of the animation, however it is far from ideal. The only concrete solution I see would be to use the Playable API to rewrite the animation process to be something like how Unreal handle it.

Is there anything I am missing there ? It is a significative investment and we are probing to see if there is other alternative.

knotty vault
#

Also, have you tried using animation layers for this? I've used layers for things like finger poses when holding different weapons. In my experience the layers work well if positioned last they should achieve the desired result. Hope that helps!

prime ledge
prime ledge
knotty vault
prime ledge
knotty vault
prime ledge
#

An example of the case we need, is to have the finger 100% blending while the shoulder 30%.

knotty vault
#

So as far as I understand this isn't supported out of the box. I believe the Playables API would, as you suggested, be a good option for implementing your own solution.

Worth noting that we have it accounted for in our next-generation animation system! I wish I could say more about that - the official public release is here: https://forum.unity.com/threads/animation-status-update-q2-2023.1445425/

prime ledge
#

As for the fact the we desire to have the possibility to control the moment of the blend is that also something you are considering for the next iteration of the animation tools ?

knotty vault
#

Another option is to develop a custom constraint in Animation Rigging package, which is built on the Playables API as well.

knotty vault
prime ledge
#

We would love to have the flexibility to add custom pass inside of each node.

#

Something like how unreal does it.

knotty vault
prime ledge
#

Why would it be a bug ?

#

The feature is simply not there

knotty vault
prime ledge
#

No worries

knotty vault
#

At the risk of saying too much about the new system - generally speaking yes, the animation pipeline is very customizable and developers can create phases however they want. I'm not a developer myself, I'm a technical artist. So I'll hesitate to say any more than that. I'm probably already in trouble for saying too much

prime ledge
#

Understood.

knotty vault
#

Just out of curiosity, I'm interested to hear more about what gameplay outcomes you are trying to achieve. Specifically, what actions are the characters doing and what poses do you need to achieve?

prime ledge
#

The idea is blending between doing an attack which as been animated without a pose (The movement already contains the notion of the weapon) and an animation that has been animated with it in mind. (Something like an idle)

knotty vault
#

This is really interesting and I want to understand it, but I'm not quite there yet. Could you elaborate with a more specific example? I don't know what you mean by "animated without a pose" and "the movement already contains the notion of the weapon" - which movement? Sorry!

prime ledge
#

animated without a pose: Would be principally an attack. Animator usually do not want a pose to override their animation whenever the animation being played is an attack. By example, a strike with a sword. I meant by: "the movement already contains the notion of the weapon", that the animation itself contains all the required motion and we do not want to add a pose on top of it.

knotty vault
#

ok - so as a tech animator myself I would attempt to solve this problem differently. I would see if it's possible (and I do believe it would be) to use Animation Rigging package to create a rig for the arm containing constraints such as TwoBoneIK, MultiPosition/Rotation, etc. and then blend the rig on and off using the rig weight value. Each constraint has a weight value too that can be animated or procedurally modified independently.

prime ledge
#

Is the constraint done after the animator or for each state ?

knotty vault
#

Animation Rigging evaluates as a post-process after the Animator is fully complete. This is fine because in my solution I would also add the IK target animation to the attack so it wouldn't need to be inserted as you have drawn in your diagram above. This is a totally different solution I'm proposing that would intentionally avoid the limitation you are running into where intermediate state blends are not possible.

prime ledge
#

I'm not sure how we can add IK on a single animation but not on the other.

knotty vault
#

In my solution the sword rig would blend on for the full duration of the idle and attack animations. It would end up looking the same because in this example I'm talking about adding new channels to the attack animation for the IK target transform where the character-space position of the hand is baked to the IK target. (so it would end up looking exactly the same)

prime ledge
#

Not exactly sure what you mean by new channels. Are you referring to the animation itself where the animation could "animate" the weight of the pose ?

knotty vault
#

This is a way of trying to achieve the same outcome with a different solution that doesn't run into the limitation you described

knotty vault
prime ledge
#

In fact, this is how we somehow been able to make an "acceptable" result. (I find it correct, but the animator are not happy with the results)

knotty vault
#

ok, sounds like a start but that's unfortunate if the animators are not happy yet... I'll also add that you are able to animate the weight values for rigs/constraints within the same animation clip, which is pretty nice for letting animators get the precise control they want.

prime ledge
#

Thanks for the information. I'll report back to our team see if we go for our custom implementation or we wait to see how the new animator is going to be.

knotty vault
#

Cool, thanks for bearing with me. Sorry for my earlier misinterpretations!

#

Animation Rigging package is definitely worth checking out. I have to imagine there are solutions that could be found for your goals here. I did a talk at Unite Copenhagen a few years ago in case you want to hear more about it https://youtu.be/9IBhQMYYYWs?si=mStXmxJVIWzGvb-I

Animators, rigging technical artists and developers can all benefit from the Animation Rigging package. The package provides a library of rig constraints that can be used to procedurally control skeletal animation at runtime. Unity 2019.3 lets you keyframe the rig constraints in Timeline to author new animation clips in the Unity Editor. Learn h...

▶ Play video