Ideas for new animation system

Thank you for all the insights. Really appreciate it.

Absolutely, That is the goal of this discussion.

Yes, this is also my idea. To have no limit on blending of animations. That is, the 3 nodes that I used can be used in any order and in any number, since they all take in 2 Action inputs and output one Action.

I did not completely get the point here. But, the reason why I wanted to have bone masking is for the cases when you want to blend only certain animation transforms while keeping the rest the same.

For example blending a run animation with gun holding animation. While this can be achieved with simply having only legs animated in one animation and only hands in the other, bone masking is still a nice option to have.

Also, bone masking isn’t that difficult to implement.

That is very cool. But for right now, we could keep the discussion to a bit low level. That is just blending animations and playing them. Switching to other animation trees could come later.

Yes, it allows for switching between two animation trees. For context, it is the simplest form of animation state machine. Just switches animation tree from one to other on input and starts the new animation tree from time t = 0

I too think this is a better approach. This also makes new users understanding nodes a bit easier, rather than to lean a new UI altogether.

I agree that a priority system sounds good, but I don’t think its a substitute for a mask system. Since in a mask system, even if all of the bones are animated, you have to option to choose a particular set of bones for blending.

Whereas, if you only had a priority system, you might have to create a copy of the original animation track and then remove all the unwanted bones.

I believe the image I put up gave some wrong ideas. To make it clear, you can use any number of blend nodes and in any combination. A transition node is optional but can be used any number of times and anywhere in the node tree.

Yes, this is a good idea. The reason I say we need a transition node is to primarily reduce the number of nodes used in each of this animation node trees.

Consider this. We have a walk-run blending on one side. On the other side, we have a walk-crouch blending. And both of these must be then blended with a weapon holding animation, which would be same for both walk-run and walk-crouch.

This can be realized like so:

Looks good enough for me :wink:

Finally, the objective here is we have 3 nodes: Get Action, Blend, and Transition. These nodes can be used in any order and in any number. In the end, we get only one animation to be played.

Say we have a function for each of these nodes like so,

 1. getAction(action: String): Action
 2. blend(Action1: Action, Action2: Action, Factor: Float, mask: Int): Action
 3. transition(Action1: Action, Action2: Action, transitionTime: Float): Action

Is what I just stated realizable? If not, what arguments should we change so that we could realize such a system?

Please share your thoughts.

3 Likes