Quick tip for when setting up the BlendSpace2D at 2:37 ... You can set the diagonal node positions to 0.707107, 0.707107 (aka Vector2.RIGHT.rotated(PI / 4).normalized()) and then normalize the input values. That way the diagonals are more accurate. I have it using the velocity of the character normalized. I find that putting the diagonal nodes in a normalized spot leads to better blending results.
For anybody trying to make this in Godot 4, when using set() on a transition node, it's not $AnimationTree.set("parameters/aim_transition/current", 0), but rather $AnimationTree.set("parameters/aim_transition/transition_request", "aiming")
This is one of the best tutorial series ive come across. You explain everything and it makes a beginner like me easily understand how this godot system works
This series is especially great for people who know other game engines and basics of godot to translate their skills to godot. Very concise explanations, doesn't waste anytime and gives you the information you need. Thanks for the great videos!
Cannot thank you enough for this video! It really helped me understand how to use BlendSpace2D. I was trying to do crazy stuff with IK to get the legs turning correctly and was getting nowhere, this makes a lot more sense 😅
hey johnny these videos are pure gold, godot can only go from strength to strength as more people learn to do code game mechanics like this! Also am i the only one who loves the in-editor XYZ gizmo that looks exactly like blender :)
in case anyone is looking for solution why it's not working for GODOT 4 here you can implement // if Input.is_action_pressed("Aim"): Anim_tree.set("parameters/Aim_Anim/transition_request", "Aiming") else : Anim_tree.set("parameters/Aim_Anim/transition_request", "Not_Aiming") //
Amazing tutorial series, only issue is at 1:31 where you say "save all the individual animations". Not quite sure how you did that. Been googling around for the right way to do that, I'll figure it out eventually. EDIT: aha! For anyone else, here's how to save the animation: double click your model's .glb file, click "open anyway", click the AnimationPlayer, select the animation. Click on the button labeled "Animation" next to the drop down that selects the animation and click "Save As".
A very helpful tutorial with lots of good information. I am stuck on the blend 3 for idle walk run , idle to walk blends fine but for some reason walk to run and run to walk cause my player to dance. I make all my own assets but find myself stumped on making the animations work well in the blendtree. would be nice to see you do a video talking briefly on making the walk run cycles.
Hi, this video is exactly what I was looking for! I have a question. Currently I have my animations attached to my model from blender, and want it to be separated in an animation folder like you have in your video, because I directly experienced the turmoil of having to reimport after a change. How do I separate my animations from the model?
I think I figured it out. Clicking "Animation -> Manage Animations" and saving each animation saved in my character as .tres files. How say would I add a new animation I made in blender to this folder as well?
You can try blender's ESCN exporter to only export animations, although I haven't tried it. But it looks like it should work. Here's the doc: docs.godotengine.org/en/stable/tutorials/assets_pipeline/escn_exporter/animation.html
For those who are looking for a solution on this in the future, I found a pretty fast way of doing it. Import the model into Godot again with your new animations on it. Click "Reimport -> Actions... -> Set Animation Save Paths". From here select the destination folder of the animations, and on the next screen, checkmark each animation you want to save! I then just delete the model. There might be faster way of doing this, but this is what I found as a day 3 noob 😂
I began to follow this tutorial until the part of Blend3 node, I used a character without aiming animation and when I put the script for choose animation their not changing, the player no has aiming animation, any idea about happens?
for some reason this Input.is_action_just_pressed isnt working, anyone know why? if Input.is_action_just_pressed("Aim"): if aiming != true: aiming = true else: aiming = false edit: I put "paremeters", not "parameters"
Sorry to bother again, but I have another question 😭. I want to implement startup and stop animations, like: idle - [w pressed] > walk_startup -> walk-loop - [w released] > walk-stop -> idle. that diagram is pretty bad in comment form but hopefully makes sense. Is there any point of doing this when you have blendspaces? I was just thinking having a handmade smoother transition from idle to a movement startup and then the loop would look better. I intend on using blend2's for transition between walking and running, and potentially a blend of some sort to make the idle -> start walk -> walk sequence look more fluid.
no worries 😄 I think for this a state machine would be better choice. You can have walk_startup automatically transition to walk-loop, and walk-stop auto transition to idle. and for manual transition, w pressed goes to walk start, w release goes to walk stop. Although this is difficult saying without my hands getting on the engine, but it should work.
Great tutorial series. Animations work fine, but my character's torso is stuck in the T-pose. I was thinking "Edit filters would help, but that option is only in the "OneShot" node. Any advice?
My roll animation keeps looping for some reason. I have unchecked looping in the AnimationPlayer and ticked 1shot on the timer. Any ideas? I am using the "sprinting forward roll" from mixamo
Hi, I am following this tutorial in godot 4. for some reason I can not get the aiming or sprinting to work. No errors, but is there a newer way to get,(parameters...) == 1 and /or set. parameters in this version?
Project -> Project Settings -> Input Map -> [+] (add event to the action you want to control with the controller) -> (click the button you want to assign or scroll and find it in the list )-> [OK]
Hey i actually wanted to put some rotating animations where the camera would look(when idle, strafing) in place of that straight forward rotate can u just give me some tips thank you
If you're talking about 9:20 you can expand the y range of the blendspace for strafe animation and add points for your "rotate_right" and "rotate_left" animations far away from the strafe right/left animations. for example, rotate_right in (0, 2) and rotate_left in (0, -2). and in the code add 1 to the direction vector when rotating. You can use IK if you want the head to look towards camera direction. IK is very simple to implement, I covered an implementation here ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE--JMKR2sjlkY.html