I would like to thank you for making a tutorial that teaches EXACTLY what the video title says and keeping it very brief! If I ever start doing tutorials again I'm taking note :)
When my game got to the point where I had to think about animations panic started growing inside me. You killed that feeling in five minutes. Subscribed, thanks!
@@999dunkins okie, sounds ok, frustration comes in the way of many when making a game. I Like godot because it's very user-friendly and it's a pretty natural progression from someone who used Roblox Studio and Scratch before.
Little old but thank god. I was looking for a smarter way than just "raw" transitions/blends. In my short searching you came up as a better learning. Thanks for this!! Idk if you are still in tutorial space (this is 3 years old after all), but 4.0 will be here soon ~ish(?). I'm gonna have to see how that works or stay in old version. Depends the feature set of Godot 4.0.
This is still cool to look at even for an older version. In 4.2.1, they now have State Machine animation handlers, which I haven't figured out how to utilize yet. They look a bit more sleek now of course but they basically act as nestings for these charts still so learning these is still somewhat applicable.
I'm having a bit of trouble understanding how to adapt the AnimationTree to my first person controller. Because currently: 1- I'm reverting to idle position by playing animations backwards (this is all camera animations, btw, and there's no character body model). You press the *crouch* key, the animation plays, taking the camera down; you release the crouch key and the animation plays backwards, taking the camera up. Same for *lean_left/_right/_forward.* The exception is *view_bobbing,* which is a loop. 2- Most animations should be able run at the same time. Crouch, lean left *or* right, lean forward, view bobbing, all of these can be triggered and run at same time. You could be crouching and walking while leaning left and forward. My current naive implementation uses four AnimationPlayers, one for each animation: CrouchAnimationPlayer ViewBobbingAnimationPlayer LeaningAnimationPlayer (both left and right animations here) FrontLeaningAnimationPlayer This works pretty well so far, but I'm worried it may not scale well. I'm not sure that playing animations backwards works with the AnimationTree, or how to setup parallel animations while still keeping some mutually exclusive...
I dont know how you get all those codes xD but heck yeah! I COULD USE THE NEW ANIME BLENDER.. THANK YOUUU SOOO MUCH.. All I can do is play this video till ads shows up.. hope that helps.. Edited 3rd time, no ads popped up.. maybe in the other video..
Would really love to see an updated tutorial for this, especially using the BlendSpace2D node. Its a real pain in the ass trying to figure out how to adjust this in the script... setting up the parameters is easy enough but how to control them in relation to the character's movement?
Great tutorial, thank you very much :) What's your take on triggering player behaviour from animation frames? e.g. switching from roll state to idle state on the last frame of a roll animation.
Here I was thinking " wow this guy gives an amazing tutorial so far, not a single second of bullshit." then I checked the channel name and of course it was Miz xD
IS there any chance you could show/explain how you did this for you AI movement? I am very much stuck with how to use the path finding directions and applying them to the blendspace2D parameters. Thank you,
Thanks for the detailed tutorial. Have you tried adding collision to your character?? Because, whenever I import the model as Kinematic Body (instead of Spatial), its animation is not working.
make the root node of your player controller a kinematic body, but then add the model as a child node of it, rather than make the model a kinematic body, and that should work :)
do you create your animations in blender or in godot? Blenders animation UI is so irritating to me I'm wondering if it would be better to learn to do it in godot.
Where did you make the animations for the model. Did you make them in godot or blender or other program . And how did you export all the animation in one file .
that's what Im saying bruh! 0:33 in this part it shows every animation you can add for model, but for me, it shows absolutely nothing and I don't know how to, and this dude speak nothing about how I can shows the animation It show no animation on my screen
Anyone knows if there is a specific way to use Blendtrees but also control specific frames? I have a running animation and (like in Megaman Zero) I have an animation for attacking while running. Which is just the entire run 2extra times but one time before and one time after the attack. And how it works is you can run but at any point during running, if you press attack, it will pickup on the next frame for the pre strike run and the frame after that on the after strike run. And then return back all while playing the slash anim, which is easy enough to do on it's own. It's the getting a frame, playing the next frame of another animation which is bothering me because the tree disables the animation player
I still have a doubt, how will you interpolate the animations? For example, if I am making a TPS, and I have to blend upper body looking up and upperbody looking down, and I want it to happen as I move the mouse up and and down, the blend amount has to change with respect to mouse motion. how would I do that? thanks
For some reason my looped animations refuse to loop.i tried unticking and re ticking the loop sign but the same problem,..do you know how to fix this 😔😔
I also ran into this recently. You need to add "-loop" as a suffix to the animation clip name. You can rename in godot but better to do it in Blender. So your action name will be "walk-loop" for instance.
I have difficulty using Mixamo animations and the animation tree blend mode. where do you get your animations? also, mixamo don't have a reload pistol animation at all
In Godot 4 the "active" parameter on OneShot is read-only, you can request like this though: set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)