You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Short version: There seems to be no way to manually restart an animation that's part of a BlendSpace2D unless the position in the blend space changes to a different animation first.
In my top-down game my 2D characters might take a drink of whatever they're holding. To do this I command my animState to travel to a BlendSpace2D that contains one-shot animations for drinking for each facing direction.
Once drinking is finished, each animation contains a frame that manually fires the "animation_finished" signal (because they don't automatically fire this signal when in a BlendSpace 🤷♂️ another issue). My Drinking function (which is an async Task in C#) awaits this call and then tells the animState to travel back to the idle state.
This is all fine and dandy, unless the character drinks again.
Unless they change their facing direction before drinking again, traveling back to the Drink blend space doesn't cause the animation to start over. I have tried firing the Stop(true) action after the animation has finished. I have tried using the Seek(0) command. I have even tried Stop followed by animationPlayer.Play(animationPlayer.CurrentAnimation) which then states that there isn't one.
Surely someone must have run into this with a jump or attack animation on a character with different facing directions. How do you get the animation to start over while the character is facing the same direction??
Steps to reproduce
You can reproduce it this way:
Create an animTree
Inside, create two blendspace 2d nodes
Create respective animations for four quadrants of the blendspaces
Command a travel twice from one space to another while not changing the positions in the blend tree
The animation will not start over
Minimal reproduction project
No response
The text was updated successfully, but these errors were encountered:
Godot version
3.3.4
System information
macOS Big Sur 11.6
Issue description
Short version: There seems to be no way to manually restart an animation that's part of a BlendSpace2D unless the position in the blend space changes to a different animation first.
In my top-down game my 2D characters might take a drink of whatever they're holding. To do this I command my animState to travel to a BlendSpace2D that contains one-shot animations for drinking for each facing direction.
Once drinking is finished, each animation contains a frame that manually fires the "animation_finished" signal (because they don't automatically fire this signal when in a BlendSpace 🤷♂️ another issue). My Drinking function (which is an async Task in C#) awaits this call and then tells the animState to travel back to the idle state.
This is all fine and dandy, unless the character drinks again.
Unless they change their facing direction before drinking again, traveling back to the Drink blend space doesn't cause the animation to start over. I have tried firing the Stop(true) action after the animation has finished. I have tried using the Seek(0) command. I have even tried Stop followed by animationPlayer.Play(animationPlayer.CurrentAnimation) which then states that there isn't one.
Surely someone must have run into this with a jump or attack animation on a character with different facing directions. How do you get the animation to start over while the character is facing the same direction??
Steps to reproduce
You can reproduce it this way:
Minimal reproduction project
No response
The text was updated successfully, but these errors were encountered: