-
-
Notifications
You must be signed in to change notification settings - Fork 21.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot blend the output of two animation state machines outputting the same animation using filter tracks #51408
Comments
Should also clarify that this problem appears to exist in the 3.x branch too, so I don't believe it is a recent regression. |
Actually, it may not specifically be the whole state, but rather, track blends. |
Further info: From AnimationNode::_blend_node: From AnimationNode::blend_animation As you can see here, when setting up in the AnimationState List, only the track blends and the animation itself is derived retrived as static data from the node. I think the fix is to make a these mutable lists, but it needs to be done in a way which doesn't introduce overhead. It is a bug, but I guess quite an obscure one. Any suggestions on what might be the best way to go about fixing it? |
#51448 |
@SaracenOne Can you test #75759 whether it fix this issue or not? |
Tested, this bug was not fixed by #75759 and I have confirmed that the bug still exists. |
Godot version
e010e05
System information
Windows 10, Vulkan, Intel® Core™ i7-8700K, Nvidia GTX 1080 (471.11)
Issue description
This is a somewhat specific instance, but I encountered it actually became a pretty significant blocker for me. If you have a blend tree with multiple state machines outputting the same animation, but using a filter track to one apply that animation to specific bones, one of the animations will not play. This will however work if you're only blending multiple animations directly, it only fails when using state machines. Thought it may have been related to this issue since I investigated it and determined that it seems like it may be related to state machines somehow ending up with the same playback object (#45635), but I checked in my specific example and they do appear to have different playback objects.
![godot windows tools 64_9bZrT9fBsy](https://user-images.githubusercontent.com/12756047/128644480-cfae5119-708f-4b37-a9cf-95c9c7208c56.png)
Here's a screenshot to demonstrate the type of setup I'm talking about
Steps to reproduce
Import a model with multiple animations, add to a scene, create an animation tree with a blendtree as the root. Create two state machines containing the same animations and make sure they are outputting the same animation, connect the output of those nodes to a blend2 node using a filter mode to ensure it only affects a specific set of bones. When you do this, only one of the animations will play. This will only fail if they output the same animation, if one of the state machines is outputting a different animation, it should work without issue.
If you use examine the MRP, the expected behaviour is that both cubes should be oscilating up and down, but due to this bug, they are not.
Minimal reproduction project
animation_tree_parallel_state_machine_animation.zip
The text was updated successfully, but these errors were encountered: