|
|
|
 |
Reply From: |
DaddyMonster |
Yup. The best way to handle animations is to make an AnimationTree. You can then go ahead and make a node setup. Personally I do the node setup like this:
animation -> TimeScale -> Seek -> Output
If you have more than one animation then you can add a Blend2 and flick between them. I recommend adding a script to the AnimationTree with methods calling these nodes so it’s all nicely self contained. To send the animation backwards you just need to set the TimeScale to -1 and it will run backwards. The seek is there for convenience to handily reset the animation to the start by entering 0 and otherwise defaults to -1/false not interfering.
See the docs for a full explanation on how to call the nodes. It’s very straightforward.
Hope that helps.
EDIT: Oh, hold on you said you don’t want to call a reverse method… I don’t get the “why” of this at all but ok. Then, what can I say? Make an animation in reverse. But you still need a method to call that… Honestly, I’m baffled why calling a reverse method isn’t good for you. How can you run an animation without calling a method? I’m confused. Anyway there’s no way to flip an animation that I know of other than duplicating it and swapping the keys.
this was helpful, thank you:)
ababen | 2021-06-11 19:20
How can I make TimeScale -1 in AnimationTree? It seems to be not allowed…
VanDeiMin | 2021-12-21 18:37
Yeah, it’s a limitation in the editor which I hope they address. You can set it to -1 in code.
DaddyMonster | 2021-12-21 19:08
Thank You for reply.
I know i’m not programming eagle and almost for sure i’m making mistake.
For now it seems that if I put code: "anim_tree.set(“parameters/BlendTree/TimeScale/scale”, -1.0) "
only what it can do is to set TimeScale to 0.0.
i even tried do something like that:
tool
extends AnimationTree
func _process(delta: float) → void:
set(“parameters/BlendTree/TimeScale/scale”, -1.0)
same result. printing “get(“parameters/BlendTree/TimeScale/scale”)” shows ‘-1’, but
BlendTree node on AnimationTree shows 0 and behaves accordingly.
I begin to think AnimationTree is too advanced to do so trivial thing like play one animation backwards and at the end play second backwards .
VanDeiMin | 2021-12-22 02:56
Sorry to take so long to reply, xmas needs a surprising amount of tidying! 
Ok, you were soooooo close! What’s that old quote? “Computers are like old testament gods, all rules and no mercy!” You don’t put “BlendTree” is all. I can see why you would think that.
Here’s some code I know is working cut straight out of my main project to get you on the right lines:
func _on_AirshipDoorsOpenTimer_timeout():
is_airship_door_open = not is_airship_door_open
reset_blends()
set("parameters/AmphAirshipBlend/blend_amount", 1)
set("parameters/AirshipLaunchTimeScale/scale", -1)
I like to put the animation code in AnimationTree but that’s not essential obviously. Hope it helps.
Good luck and merry xmas!
DaddyMonster | 2021-12-22 20:59
Thank You Sir.
Merry Christmas and Good Luck for You too!
VanDeiMin | 2021-12-23 01:34