-
-
Notifications
You must be signed in to change notification settings - Fork 21.5k
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
Make AnimationNodeAdd actually additive 3.x #53893
base: 3.x
Are you sure you want to change the base?
Conversation
Using AnimationNodeStateMachine and AnimationNodeBlendSpaceXd as inputs to an AnimationNodeAdd2 needs more testing. I used very simple state machines and blend spaces and it worked, but need to check for more complex systems |
0ce1060
to
bf8aec7
Compare
bf8aec7
to
a163d7e
Compare
71cb8d3
to
c58391c
Compare
noticed this didn't make it into 3.5 - is it still going to be relevant for a 3.x milestone? |
Yes, as a 3.6 version is planned. |
@TokageItLab expressed some concerns over the solution in #42302 here: #37661 (comment) |
A suggestion, My only issue with the solution in #42302 is that if we want to add a subtraction mode down the road (which is commonly used with additive animation to create a delta animation) we would need to add another flag to blend_input. Adding the add_directly flag is good enough to ask process_graph to do something other than blending but ultimately the add_directly flag should become a enum for a blending mode (regular blending by default to preserve functionality). I understand adding a new node to the animation tree will be its own PR but the change I suggest would make adding any new nodes easier in future. An image showing the sort of workflow you might use Add2 in; with a new Sub2 node. Snippet from my solution with existing behavior preserved and add direct and subtract modes implemented. Reference information on additive and delta animations I used. Explains why a subtract node later will be necessary: I admit my solution is not perfect and I have an issue with how I am passing the enum down the animation tree. Without the hacky code any child blend nodes will override the mix mode enum I added and break the solution. I guess it is just kind of messy passing a variable down recursive function calls. I hope this suggestion is relevant and helpful. |
I took #42302 and did the following:
add_directly
default totrue
Animation::TYPE_TRANSFORM already implemented in original PR. Nothing done for Animation::TYPE_METHOD, Animation::TYPE_AUDIO and Animation::TYPE_ANIMATION tracks
Edit: Could fix #37661