Inactive Clips Altering Animated Properties (Blend Tree)

Hello,

I am working on a 2D top-down RPG and am having a little trouble with blend trees.

I have blend trees added to my animation states and use InputX and InputY variables to determine which directional animation clip to play for that state (i.e., Walk Up, Walk Right, Walk Down, Walk Left, etc).

I have my animation controller attached to an empty Player game object that is the parent of multiple child game objects that need their properties animated in the various clips. The problem is that when I animate a child game object’s properties in more than one clip from the same blend tree, the clips seem to “fight” over setting the property.

For example, if I try to animate the X and Y position floats on a child game object in a single clip, it works exactly as expected. If I animate the same X and Y position floats in a second animation clip that shares a blend tree with the first, then the X and Y get stuck at a value between whatever is set for the first and second clips (even if only one is “active”).

I tried to capture this behavior in this GIF: https://thumbs.gfycat.com/PaleRecklessEel-size_restricted.gif

When I set the X position of child game object “Eyes” to 20 in a single clip, the game object’s actual X value immediately jumps to ~20. When I add the same property to a second clip in the same blend tree and set it to 50, the game object’s actual X gets stuck inbetween the two at 35.

Should I not be using blend trees like this? Why are the inactive clips fighting over these positional values when they don’t fight over other properties, such as sprites?

Any help or direction would be greatly appreciated! Thank you!

Update: I was able to resolve this by replacing my blend tree states with sub-state machines and explicit states for every animation clip