Make an Action RPG in Godot 3.2 (P6 | Animation in all directions with an AnimationTree)

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 ม.ค. 2025

ความคิดเห็น • 799

  • @uheartbeast
    @uheartbeast  4 ปีที่แล้ว +133

    AnimationTree Nodes! What are they for?
    I'll cover some of the things they can be used for in this video. We'll finish what we started in the previous video and get our player character animations working smoothly for all movement directions.
    Here is the Github repo for this project (under MIT license): github.com/uheartbeast/youtube-tutorials/tree/master/Action%20RPG
    This video was made possible by my wonderful Kickstarter backers. If you are interested in taking a deeper dive into the Godot game engine you can buy my 1-bit Godot Course at this link: www.heartgamedev.com/1-bit-godot-course-youtube

    • @camalienator
      @camalienator 4 ปีที่แล้ว

      i've done as you have (i believe) and at the very end, with the 1.1 at the Y axis, doing all of that, my priority for animation turned up and down. i also had an up/down problem, where moving up would play RunDown animation and vice versa, i fixed that by setting the -y to RunUp and +y to RunDown.
      i take it as a win, i found a problem and a solution for it, i've been appreciating this course soo much, thank you a lot

    • @goge7152
      @goge7152 4 ปีที่แล้ว +1

      Hey I have an problem when i move to the right,up and down it uses the left animation. How do i fix it?

    • @adityapraman6290
      @adityapraman6290 3 ปีที่แล้ว

      @@goge7152 you probably made mistakes while creating the triangles

    • @kba2049
      @kba2049 3 ปีที่แล้ว

      @@adityapraman6290 i have a problem where animation is stuck at idle left when i play it. and inside the animationPlayer all the animation glitches with a idle left sprite expect for run left...please help idk how to fix im a beginner T^T

    • @mathieulafrance5018
      @mathieulafrance5018 3 ปีที่แล้ว

      @@kba2049 me to i had the same issue and it was in the animation player ( i dont know what i done to mess it up) but to fix it i just deleted it and do it again and it work after all

  • @Cronofear
    @Cronofear 2 ปีที่แล้ว +356

    Protip: Instead of typing "parameters/Idle/blend_position" and making sure that doesn't have any typos, just drag the property from the inspector into the script editor.

    • @lina31415
      @lina31415 2 ปีที่แล้ว +9

      Oh wow, much thanks for that ♡

    • @DubstepSon
      @DubstepSon 2 ปีที่แล้ว +10

      Idk why, i copied letter by letter, uppercase and all, but it would only work if i did it the way you mentioned. Even got my wife to proof-read it. that is so weird. TY though, you saved me.

    • @urbalteagamedev2280
      @urbalteagamedev2280 2 ปีที่แล้ว +1

      Thanks!

    • @BlackDragonBE
      @BlackDragonBE 2 ปีที่แล้ว +12

      For the external editor users, you can also right click the property and select "Copy Property Path" or select the propery and use CTRL+Shift+C to copy the path to your clipboard.

    • @Otochiro1
      @Otochiro1 2 ปีที่แล้ว +1

      Thanks

  • @flakmoppen
    @flakmoppen 4 ปีที่แล้ว +340

    Not only do you take your time to calmly explain what you're doing, but you also show things that aren't necessarily going to be used in this tutorial.
    That makes it easier for us who like to experiment on our own, to get new ideas and try new things.
    I'm thoroughly enjoying this series.
    Thank you.

  • @Rorshacked
    @Rorshacked ปีที่แล้ว +21

    For anyone struggling to keep up making sure things are working just like they are for the example in video, I recommend watching the video all the way to the end. I was stuck, would pause and try to troubleshoot things myself for an hour since he's on an older Godot, then play the video and the next thing he said was the exact fix I needed. Don't let yourself get bogged down on anything for too long without watching more of the video.

    • @geneericname7138
      @geneericname7138 ปีที่แล้ว +4

      Would you believe I did an almost identical thing on a different video on creating inventory systems? The creator of the video deliberately inserted an error to demonstrate what _not_ to do and I just happened to pause there to try to integrate what I had learned up to that point. I was troubleshooting for an hour before I gave up and resumed the video and the creator immediately solved it.

    • @kaus05
      @kaus05 9 หลายเดือนก่อน +1

      Thats fine you will search better next time

  • @WalkerRileyMC
    @WalkerRileyMC ปีที่แล้ว +134

    Godot 4 users: Connect the Start node to the Idle node. No more autoplay button in AnimationTree.

    • @LucasPereira-pu6cq
      @LucasPereira-pu6cq 10 หลายเดือนก่อน +4

      Thank you very much

    • @kaus05
      @kaus05 9 หลายเดือนก่อน +6

      and make sure it is NOT connected to end for idle i wasted an hour figuring that

    • @ziphy_6471
      @ziphy_6471 8 หลายเดือนก่อน +5

      Do not connect run to End it took me 2 days to figure it out 😭😭

  • @Balalti
    @Balalti ปีที่แล้ว +112

    Anyone with Godot 4 that finds a jitter or flicker (depends on what you typed on CTRL+F) on the animation tree, try this:
    Click on the path between each animation.
    Mode >> make it enable, instead of Auto on both of the paths.
    It helped me

    • @4ZuLa0
      @4ZuLa0 ปีที่แล้ว +1

      Thanks man, you helped me alot! :D

    • @videogameboy90
      @videogameboy90 ปีที่แล้ว +1

      Thanks B)

    • @Jmooch
      @Jmooch ปีที่แล้ว +1

      Life saver! Thank you.

    • @Vianyte
      @Vianyte ปีที่แล้ว

      I could kiss you!

    • @waltermelo1033
      @waltermelo1033 ปีที่แล้ว

      Thank you very much! it's working thanks to you.

  • @michaelcapone175
    @michaelcapone175 4 ปีที่แล้ว +189

    This series is coming out so terrific, I can see the people begin to riot for an increase in scope... and I'm one of them! :-)

  • @christopherwright6032
    @christopherwright6032 4 ปีที่แล้ว +146

    I've done so many Unity tutorials and followed along but I could never understand exactly what I was doing in it. I decided to grab Godot because it looked really cool and I love open source and your tutorial series is the most beneficial resource I've found for learning. I feel like I actually understand what's going on with the scripting, how it accesses the different parameters and how the vectors and delta work. Thanks a ton, so glad I'm finally feeling comfortable with this!

    • @notanonymous3976
      @notanonymous3976 4 ปีที่แล้ว +2

      i can relate so much to this

    • @micka394
      @micka394 4 ปีที่แล้ว +1

      I GOT THE SAME

    • @Lord_Dredlam5647
      @Lord_Dredlam5647 3 ปีที่แล้ว +4

      Exactly, I started with Unreal, was hardly able to even place a sprite, i moved to Unity which was a little better until i messed up some code I'd worked weeks on so i tried out Godot and well...I feel like after this tutorial i might be able to make a game on my own!

    • @musclechicken9036
      @musclechicken9036 2 ปีที่แล้ว

      SAMEEEE

  • @boombox2112
    @boombox2112 ปีที่แล้ว +16

    For those using Godot 4 make sure in the animation tree you attach the Start to idle, and both the Idle and the RUN, to END but make sure you use the at end arrow, which is in the drop box at the top. took me a good hour or so to figure that out, other than that everything works as should if you follow the vid.

    • @ZackTheGiant
      @ZackTheGiant 7 หลายเดือนก่อน

      Thank you!!! You saved me a lot of frustration!

  • @jotaeagles8749
    @jotaeagles8749 4 ปีที่แล้ว +19

    If someone gets this error "Can't travel to 'Idle' if state machine is not playing." be sure that your "Idle" animation is set to autoplay like in this video.
    It's easy to miss and I spent 1h figuring out what was I doing wrong.
    Thanks for this video and to go so much in detail. Godot is really powerful for animations, even more than Unity I would say.
    The difference is that Godot got it right.

  • @jiku4041
    @jiku4041 4 ปีที่แล้ว +127

    I love how in-depth this tutorial series is
    it goes over everything from start to finish (at least that's the tendency I see at this point of time) and is easy to understand
    great job, keep it up!

  • @TheVoiceOfChaos
    @TheVoiceOfChaos 4 ปีที่แล้ว +383

    me before watching this video: just use more if statements for the up and down animation
    me after watching this video: interstellar music playing

    • @utubeistehsux
      @utubeistehsux 4 ปีที่แล้ว +20

      My brain was coming up with if statements too, lol. I had to take a break to refresh my head.

    • @zacharychristy8928
      @zacharychristy8928 4 ปีที่แล้ว +59

      "This little if statement is gonna cost us 51 years..."

    • @pawanastudio__
      @pawanastudio__ 4 ปีที่แล้ว +15

      after watching the fifth part, I use more if statement already and the animation suck. I believe that Nodes make you code simpler.

    • @Sitskier123
      @Sitskier123 4 ปีที่แล้ว +30

      Zachary Christy I took a class where my classmate was adamant that he could accomplish anything with if/else statements and let me tell you when you look at a script with over 500 if/else statements being used to accomplish something that could have been done with about ten or twenty lines of code it’s a combination of impressive and painful...

    • @Vivi-xn9iz
      @Vivi-xn9iz 4 ปีที่แล้ว +31

      @@Sitskier123 is your friend the creator of yandere simulator?

  • @pancake8133
    @pancake8133 4 ปีที่แล้ว +64

    you can also prioritize which animation gets played on diagonals by creating additional points in your Run blend tree at each of the four corners. This is a little bit more robust since it lets you use either unique animations for diagonals or reuse existing animations without having to fudge the main points.

    • @samprie100
      @samprie100 3 ปีที่แล้ว +6

      Genius, thanks. Didn't really work for me but this solved it. It is indeed a lot more direct and robust.

    • @samu350
      @samu350 2 ปีที่แล้ว +3

      Really neat solution, I had a little problem though.
      When my velocity vector changes from, for example, right to diagonal up right, the RunRight animation resets.
      Is there any way to tell the AnimationTree to leave the already playing animation playing?

    • @sendysetiawan3265
      @sendysetiawan3265 2 ปีที่แล้ว +2

      ​@@samu350 i had a problem like you too, did you already figure it out yet? please reply me if you already know how to fix it, i'm really bothered by that problem. i really appreciate it if you willing to share it with me

    • @samu350
      @samu350 2 ปีที่แล้ว +1

      @@sendysetiawan3265 I used the previous solution instead of the one in this comment.

    • @GameCarpenter
      @GameCarpenter 2 ปีที่แล้ว +2

      @@sendysetiawan3265 I haven't done this in godot, but I've solved similar problems by checking if I am already playing an animation before I start to play it.

  • @omgitsmeee5671
    @omgitsmeee5671 ปีที่แล้ว +39

    for Godot4 users, do this instead in the animation tree: link the start to idle to run to end and you are good also to avoid jittering select the path between each animation example Idle -(this path )-> Run go Advanced > Mode > make it enable, instead of Auto on both of the paths if you find that your animation isn't showing up make the path between the start and Idle auto but if your animation is working without setting it to auto better leave as enabled

    • @alexsturge1181
      @alexsturge1181 ปีที่แล้ว +1

      u are a hero my dude

    • @sniperviper4214
      @sniperviper4214 10 หลายเดือนก่อน +1

      This!
      Your the hero man
      Love the content Benjamin keep it up I love your calm attitude!

  • @markheath14
    @markheath14 11 หลายเดือนก่อน +8

    Alright I am using Godot 4.2.1, if youre like me and your animation was flickering so you stopped and tried troubleshooting. Heres what worked for me.
    Connect Start to Idle (Switch Mode: Immediate, Advance: Auto),
    Connect Idle to Run and Run to Idle (Switch Mode: Immediate, Advance: Enabled)
    Connect Run to End (Switch Mode: At End, Advance: Auto)
    It'll still be flickering at this point if you stopped midway through the video. At 17:00 he removes a line in the script thats setting the animation constantly. He also removes Autoplay on Load from RunRight in Animation.
    also just to repeat a tip in the comments, instead of typing "parameters/Idle/blend_position" just drag the property from the inspector into the script editor.

    • @ziphy_6471
      @ziphy_6471 8 หลายเดือนก่อน +1

      Tried it, didn't work

  • @solstice_enigma
    @solstice_enigma 4 ปีที่แล้ว +21

    Simple things in life, 8-directional movement with pixel-perfect collisions makes me happy :) So far had a blast with the course!

  • @vassssge
    @vassssge 3 หลายเดือนก่อน +1

    This worked like a charm man, you're a real hero! Btw, this method is still 100% possible using an AnimatedSprite2D + AnimationPlayer nodes all the same, in case your animations are a bit more complex and you don't feel like stitching all your frames on a looooooong png file.

  • @msix4755
    @msix4755 4 ปีที่แล้ว +11

    Easily one the absolute best godot tutorials out there. Thanks for making these!

  • @InductionFrog
    @InductionFrog ปีที่แล้ว +2

    You've litarally brought me to tears when the animations were switching directions and cycling between run/idle on their own. Incredible video

  • @quietfox157
    @quietfox157 3 ปีที่แล้ว +12

    I‘m revisiting this series after some time because I want to give gamedev a try again. In the meantime I‘ve learned something regarding the priorization of diagonal animations: Both Link‘s Awakening and A Link To The Past solve this very differently and I actually prefer their approach: They change the direction only if you go straight in one direction (horizontal or vertical), but the direction does not change when you start walking diagonally. This means if you walk to the right and slightly adjust your movement up or down Link does look to the right the entire time. The same is true if you walk straight up and slightly adjust your movement to the left or right: Link always looks upwards. This also makes an important difference when you start attacking while walking. Unexpectedly changing the direction of your attack could really mess with the feel of your game. This is even more important for ranged or projectile attacks, because they most likely depend on the direction you‘re looking at.
    Now, the question is: can you use the BlendSpace to achieve this type of movement? If you need to do this with code you also have to factor in analog sticks (unless you disable them entirely). If you just check for vectors like (1, 0) it would be really difficult to change the direction using an analog stick (or it would be very easy to moonwalk through your game :D)

    • @a1x45h
      @a1x45h 3 ปีที่แล้ว +3

      I think the whole point of using this 2d vector space is so that it can emulate controller sticks. If you move the blend position in the animation tree it will act as a joystick.
      Also, regarding the facing up for slight change in direction, isn't this video doing the exact thing or are you talking about something else?
      Like, in this video, we only have our character facing 4 directions, even after little change in blend position.

  • @sv1338
    @sv1338 4 ปีที่แล้ว +19

    If you have an issue with something showing the wrong animation, check if you put in the right animations in the BlendSpace2D. I had this issue myself, I accidentally put "IdleLeft" in the place where "RunRight" had to be. 7:32

    • @Kikibucher
      @Kikibucher 3 ปีที่แล้ว +1

      dude you are my hero

    • @Biffmin
      @Biffmin 2 ปีที่แล้ว

      Thanks man, I definitely made that mistake.

  • @MrFoxInc
    @MrFoxInc 4 ปีที่แล้ว +22

    Before I ask my question: Using Unity for several years now, I was only a little curious about what Godot can do and I gotta say, this series is really addictive. You go out of your way explaining everything and you even keep mistakes in (before you fix them) which not only makes the whole process feel more "human," it also is educative in its own way. Thank you, this series is super important and I'll keep watching.
    Now for the question... I get how Blend Trees work and you come up with a good solution for the issue of the sprite facing random directions when walking diagonally. However, I think it would be even better to have the player keep facing the same direction that he started with, no matter which one that was, until he lets go of that direction. Will you come back to this and adress it?
    Even if you don't, this *_free_* tutorial series is fantastic and I appreciate you doing all this work for people who are genuinely curious and willing to put in the time!

  • @NoLootStudios
    @NoLootStudios 4 ปีที่แล้ว +41

    "It is very important that you spell this correctly"
    *Me proceeds to spell it incorrectly and using 25minutes of pure brainstorm before I spellcheck it, and realize I've been a fool*

    • @nechiharudori8343
      @nechiharudori8343 3 ปีที่แล้ว +4

      I only figured it out after reading your comment. Thanks for that.

    • @slugmage.
      @slugmage. 3 ปีที่แล้ว +2

      @@nechiharudori8343 SAME

    • @cxda8715
      @cxda8715 3 ปีที่แล้ว +1

      @@slugmage. BRUH SAME

    • @gradybean5747
      @gradybean5747 3 ปีที่แล้ว +2

      I did it to lol 😂

    • @gradybean5747
      @gradybean5747 3 ปีที่แล้ว +1

      @@nechiharudori8343 SAME LOL

  • @neos_games
    @neos_games 4 ปีที่แล้ว +4

    it's cool that in every new series u explain everything from beginning bc a lot of tutorial guys like u don't do this, they just explain one time in about 2 yo video and "that's it".
    i like ur tutorials, keep goin

  • @ReeceGeofroy
    @ReeceGeofroy 4 ปีที่แล้ว +48

    Good work man, I'm using GameMaker and Unity to make my games / devlog videos, but Godot looks like a cool software as well!! :)

    • @uheartbeast
      @uheartbeast  4 ปีที่แล้ว +19

      Yeah I love Godot :)

  • @kenneth0563
    @kenneth0563 4 ปีที่แล้ว +31

    You’re really explaining well. Luv it! Keep it up Benjamin! 👍

  • @felipemalveira3684
    @felipemalveira3684 5 หลายเดือนก่อน

    I don't know if you read the comments to this day, but I need to thank you for these videos, even though I'm not a native English speaker, and I even have difficulty with certain points, the video with translation shows me how didactic and direct your explanation is.

  • @philipbooker8511
    @philipbooker8511 4 ปีที่แล้ว +2

    Bro. I'm loving this series. First of all, your approach doesn't make me feel like an idiot. I love how you explain anything and better yet I like how your tutorial is iterative. it shows how it could be done, and then how it could be done better. Keep up the great work!

  • @rubickmoto1468
    @rubickmoto1468 4 ปีที่แล้ว +9

    I love these tutorials. I"m currently a Computer Science Student and we focused on software development but I'm more interested on making games and how to be good at it and these tutorials are truly lifesaver. I got more motivated and got to practice more my programming skills haha thank you so much Benjamin. Wish to learn more about your Godot Tutorials Keep Up the Goodwork.
    Love the Contents

    • @tejaswithme3713
      @tejaswithme3713 ปีที่แล้ว

      Same as me. I'm currently in my sophomore year.

  • @adamgascoine
    @adamgascoine 4 ปีที่แล้ว +6

    Excellent tutorials Ben.
    A couple of issues and solutions for any viewers that run into the problems I had:
    If you find that your animation continues to flicker between anims even after removing play line in your script, check the Current Animation property on the animation player node. Set that the [stop] if it isn't already.
    If you drag one of your blend space points off the screen and can't figure out how to get it back, increase the scale of the problem axis. That will show the point again, you can move it back, then reset the scale (in Ben's case, he used 1.1 for the Y axis).
    Lastly, it looks like the player script changed since the last tutorial (or I may have just missed something). The else condition now has delta multiplying within the parenthesis. From the last tutorial, my delta multiplication was outside of the parenthesis. I haven't checked back with the previous episode, so apologies if it was actually me who messed that up on my own.
    Keep it going Ben! I wish you had a patreon!

    • @uheartbeast
      @uheartbeast  4 ปีที่แล้ว +1

      Hey thanks for sharing this! We do actually move delta outside in the previous video.
      I also have a patreon but it is more for donations (I don't really have perks) so I don't advertise it much.

    • @adamgascoine
      @adamgascoine 4 ปีที่แล้ว +1

      @@uheartbeast Perks not needed! I'll look you up :)

  • @genericgamer907
    @genericgamer907 3 ปีที่แล้ว +3

    I am a young dev that was in need of help in finding the right engine to program on. You were the person who made me click to Godot!

  • @DarknessTruth24
    @DarknessTruth24 2 ปีที่แล้ว +1

    My first time using Godot and coding to make games, so far following your videos are the only videos on TH-cam that has made understanding Godot easy others do not explain enough of the why (something happens) and they just continue. Credit to you for making these and taking the time to help others. Every single step has been flawless and clear and concise. I will be completing this and using this to eventually build my own game. I do not know if you do towards the end of this series but it would be great to see how to create and import Asperite animations and or and also create them.
    Thanks for making this free, I think ill be buying your course after this.

  • @damascake
    @damascake 4 ปีที่แล้ว +9

    Tip & trick for more clearly code:
    var animationPosition setget setPos, getPos
    func setPos(newPosition):
    if not is_inside_tree(): return
    animationTree.set("bla-bla-bla-1", newPosition)
    animationTree.set("bla-bla-bla-2", newPosition)
    func getPos():
    if not is_inside_tree(): return
    return animationTree.get("bla-bla-bla-2")
    Then use self.animationPosition in _physics_process() so activate setter/getter calling.

  • @ernest4085
    @ernest4085 3 ปีที่แล้ว +6

    You're such a good teacher!
    You've made this whole process of learning Godot a breeze compared to what I would've had if I had been learning alone :,^D

  • @gary78987
    @gary78987 2 ปีที่แล้ว +1

    Easy method solving AnimationTree order of directions (when multi directions are pressed): The order you create points (say 1st left then 2nd right..) that will have priority for multi-direction pressed.. To correct it is easy: If you want left and right 1st, simply delete top and bottom points and create top & bottom points again, then top & bottom will be last in the order again ;-) worked for me. (using same method I easily changed it to up & down having priority & back to left and right simply deleting the 2 directions that should have last priority and re-creating their points).

  • @_gamma.
    @_gamma. 2 ปีที่แล้ว +1

    This is not only a great tutorial (everything is explained so clearly!), but it shows a good use of the debug process. Instead of going to google you did a little testing.
    Really nice video, I’ll have to watch the rest of the series. This would make a really good standalone tutorial for 4.0 too

  • @GeorgesChannel
    @GeorgesChannel ปีที่แล้ว +1

    Yesterday, me and my 14 year old son started to do a 2D-RPG in Visual-Studio and C#. After an hour he lost interest and i can't blame him for that. I said to him, maybe its better to try a game-engine like "Godot" (since its said to be lightweight and easy to learn). We assumed, it will have specialized tools for creating 2d games. I am really thankful, you did this tutorial. I am using Godot 4.x and go through every step you show. Especially the animation part is really, really helpful! Thank you so much!

  • @Pilling11
    @Pilling11 4 ปีที่แล้ว

    24 minutes and 51 seconds for this video, only to spend at least a good part of the day watching the some 24m51s video to work out all the problems I experienced. Only started learning to code a few days ago and you have help me understand so much more than i could have thought. keep up the great work!

  • @shiishani3302
    @shiishani3302 4 ปีที่แล้ว +5

    Thank you again for doing this and a big thanks to your kickstarter backers as well. I love this content.

  • @moritzmuller4222
    @moritzmuller4222 ปีที่แล้ว +3

    For Godot 4 I connected the Start animation state to the idle blend space, with the advance mode for the connection on "Auto". On the two connections between the idle and run blend spaces I set the advance mode to disabled

    • @sm5574
      @sm5574 ปีที่แล้ว +1

      Did this work?

    • @dard1515
      @dard1515 ปีที่แล้ว +1

      Thank you so much. I was very lost on this

  • @Zipcord24
    @Zipcord24 10 หลายเดือนก่อน +1

    When i want to learn something most tutorials suck but once i find THAT tutorial its awesome.
    This is THAT tutorial!!!!

  • @TheRealKaiProton
    @TheRealKaiProton ปีที่แล้ว

    FINALLY! I found a tut on this that actually worked, not only that, have the same twitchy issues on the anims (16:57) and this helped me figure out what I was doing incorrect in G4, to make my little dude, Walk, and stop in the same direction.
    I think I must of gone over about 5 tutors this morning trying to figure out why it worked on screen, and not in my game..

  • @The_Sensational_Skeleton
    @The_Sensational_Skeleton 3 ปีที่แล้ว

    Your videos on this is SO SO HELPFUL! I am currently working with Godot because I wanted to get into making games as a kid and still even to this day. The thought of having people play games that I created just to get my creative ideas out there to people. I'm new to coding and new to Godot, but with the help of your videos I think I'll be able to at least make something! Thanks for making this series on how to make a top down RPG styled game!
    Stay safe and stay awesome homie!

  • @dennisapaer9658
    @dennisapaer9658 4 ปีที่แล้ว +33

    Waiting for it the whole day bloody beginner here, no idea what im doing, good tutorials to get into =))

  • @ecksi
    @ecksi 4 ปีที่แล้ว +4

    21:07 I had just tested and seen that, I was already going crazy, thank you for saving me

  • @mythryl_1906
    @mythryl_1906 4 ปีที่แล้ว

    each video in the playlist just gets better and better!

  • @christruebe
    @christruebe 4 ปีที่แล้ว +2

    I'm so thankful to have found you and this! These are great tutorials and relatively easy to understand. I agree with others in that I can't wait for the newest videos to come out and start going in on it by myself. Thank you for your time and effort on these!

  • @strum007
    @strum007 4 ปีที่แล้ว +1

    I cannot describe how useful this series has been for me. Thank you so much.

  • @Project308
    @Project308 2 ปีที่แล้ว

    I'm learning Godot for the first time and your explanation was so clear that it took me little difficulty to tweak Godot so it could handle my 8 directions idle/walk animation :D
    Godot seemed really intimidating to learn at first but you make it so incredibly clear that Godot like a fun toy to experiment and mess around in.
    So thank you so much for the series!

  • @jenniferkersten9073
    @jenniferkersten9073 3 ปีที่แล้ว +2

    Thank you so much for this series! I've learnt a lot so far, and I'm looking forward to the next episodes.

  • @purify_with_liberties_flame
    @purify_with_liberties_flame 4 ปีที่แล้ว

    I had decided to look at godot intensely after some crap unity is pulling and learn who the one ceo of unity is.... i do have to say my draw to godot is becoming stronger with every video. Your one of my favorite teachers so far. I love the pacing, i love the fact that you screw up and work through the fixes. Too many unity teachers either do things so scriptedly perfect that you don't learn what to do when an error comes up. Screwing up is always an option. Love the tutorials so far, great pacing. By the end of this ill probably be fully converted.

  • @markvador6667
    @markvador6667 4 ปีที่แล้ว +1

    The best course i've seen so far on Godot on a complex topic... Well done ! You have a new subscriber from France ! Keep it up Ben !

  • @antonarson
    @antonarson 4 ปีที่แล้ว +1

    Following along and I am very happy to learn all this. I am a computer engineering student so I have a lot of programming familiarity - but there are a lot of fun quirks here!
    thanks for being you

  • @r5LgxTbQ
    @r5LgxTbQ 3 ปีที่แล้ว +1

    I've been trying to learn Godot with a paid course, it's fine and all but I wasn't driven to continue. Your teaching style makes me eager to push on. Can't stop thinking about game ideas. It's midnight and all I want to do is watch more game dev tutorials. Pretty sure I'm gonna end up purchasing your course.

  • @mbaderoen
    @mbaderoen 4 ปีที่แล้ว

    I've been following along and so far it all felt super simple, but this video in particular was super amazing - thank you so much! I feel like we're really getting into the more sophisticated node types. I've studied game programming and have previously written all this kind of stuff by hand. This is the first time I'm learning an engine with an actual GUI and pre-built stuff and have to say - there's no way I'd be this far if I were writing everything by hand. Looking forward to working through the rest of the series!

    • @mbaderoen
      @mbaderoen 4 ปีที่แล้ว

      I'm also quite liking Godot thanks to your videos. I've come from LibGDX and XNA, and this is much more efficient. I definitely miss having some static types instead of the scripting language though, but I see the benefits as well. I haven't checked your entire channel, but am also interested - does it become valuable to use the bindings to statically typed languages over GDScript as projects become more complex, or is GDScript always sufficient?

  • @flynnlyon2088
    @flynnlyon2088 4 ปีที่แล้ว

    As someone who is mainly doing this as a way to pass the time during quarantine, your vids are helping me out so much. They explain everything so clearly and I cannot thank you enough for this series! Keep it up :)

  • @DaPOPs
    @DaPOPs ปีที่แล้ว +5

    For those whose animation is stuck, you just have to change the blendspace connectors in the part on the left where it says advance>Mode and change it to enabled :)

  • @WesHartgrove
    @WesHartgrove 4 ปีที่แล้ว

    this series has been fantastic so far! you are far and away the best teacher I've watched on this type of stuff.

  • @vadimdidenko1443
    @vadimdidenko1443 5 หลายเดือนก่อน +3

    Okay, my way to set up correct animation with minimum difference from the video:
    Godot 4.2.2
    1. In the Animation tab make sure that looping is disabled for both idle and run animation tracks (animation looping arrows in the right side of the Animation tab must ne white) this is important, otherwise the previous animation will try to play again while new animation is playing, causing jittering
    2. In the Animation Tree tab make following connections:
    2.1 Start - Idle (Switch: Switch Mode -> Intermediate, Advance: Mode -> Enabled)
    2.2 Idle- Run (Switch: Switch Mode -> Intermediate, Advance: Mode -> Enabled)
    2.3 Run- Idle (Switch: Switch Mode -> Intermediate, Advance: Mode -> Enabled)
    2.4 Run- End (Switch: Switch Mode -> At End, Advance: Mode -> Auto) !!!! IMPORTANT !!!!!
    So in the Animation tree all connections must be just gray arrows >
    And the Run - End connection must be green arrow with line >|
    All other settings are default

    • @kafkaphoenix
      @kafkaphoenix 4 หลายเดือนก่อน

      Thanks a lot! I realized that the reason why he enabled loop at the start was to show the animation running when pressing keys but when you are using the animation three you don't need that anymore

    • @jesus2639
      @jesus2639 หลายเดือนก่อน

      THANK YOU SO MUCH!!!!!!!!!!!!

  • @rodrigovazquez420
    @rodrigovazquez420 4 ปีที่แล้ว +4

    OMG thanks! I have never found a good tutorial on animation tree! I finally know how to use it.

  • @BryanAmaro-p4h
    @BryanAmaro-p4h ปีที่แล้ว

    Since Godot 4.0 changed quite a bit with animation. I think I'm pretty lucky that everything turned out well on my end. Thank you for these videos.

  • @KotCR
    @KotCR 4 ปีที่แล้ว +1

    Haha, I noticed that little movement animation inconsistency with down-right just before you mentioned it, and was thinking the same thing. It bothered me too lol. Then you mentioned it and I'm so glad you went on to tell us how to correct it ^_^.

  • @jatakeunade3832
    @jatakeunade3832 3 ปีที่แล้ว

    I'm liking your lessons so far, they're simple and straightforward. As a beginner I still dont know much about code but I can get a different form of understanding. I wanna try developing my own game based on the lessons.

  • @baptistedesfilhes1819
    @baptistedesfilhes1819 3 ปีที่แล้ว

    Hello people ! Great tuto so far i love it ! I have a little tip for not having typos in get() or set() strings :
    When you've got your method written, just click and drag the name of the chosen parameter (in your inspector) inside the method's parenthesis ad it will be perfectly written

  • @HamsterAccent
    @HamsterAccent 2 ปีที่แล้ว

    Thank you for making these tutorials so easy to understand. It makes this whole process a lot more enjoyable and easy to learn when I know what all these coding terms are as well as what they do in the context of the game. I hope that I can keep developing from your series :)

  • @tangitv6758
    @tangitv6758 4 ปีที่แล้ว +1

    And this is why I love Godot over Unity. Everything is just so well organised in this engine ( * w * )
    Godot is amazing, your tutorial is amazing. Damn this is a bliss

  • @pax3152
    @pax3152 ปีที่แล้ว +2

    For those who are using Godot 4.2.1 stable, connect START to IDLE with auto on. After, connect IDLE to RUN with auto on as well. However, RUN to IDLE should be enabled, not auto (Edit, auto is also works as long as animationState.travel("Run") does not exist). For END node, u can use "at end" and connect with RUN. However, it really does not matter if u connect or not, at least for my testing. For the script, erase the animationState.travel("Run") part. The rest should be same as the video.

  • @JamesSully
    @JamesSully 3 ปีที่แล้ว +1

    These tutorials are fantastic! Really well paced. Thanks so much for creating this resource!

  • @javero-dev
    @javero-dev 3 ปีที่แล้ว

    Oh my god, i 've done so much tutorials and you are the best. Thanks for explaining it in such detail, I didn't get lost anywhere, unlike other tutorials.

  • @OnyxIdol
    @OnyxIdol 4 ปีที่แล้ว

    That blend space thing is brilliant.

  • @MoosesValley
    @MoosesValley 4 ปีที่แล้ว

    Great videos Ben. That 0.1 trick at the end is GOLD !

  • @utubeistehsux
    @utubeistehsux 4 ปีที่แล้ว

    You are such a good teacher. Good order of information, not too easy and you repeat the important points.

  • @SharyqSiddiqi
    @SharyqSiddiqi 4 ปีที่แล้ว

    Hey, just wanna say thanks. Im very new to godot and this series is helping me understand it a lot! You cover things pretty well, and i feel like I understand everything explained pretty well.

  • @xornedge8204
    @xornedge8204 3 ปีที่แล้ว

    This is what a tutorial is. Explain things step by step and explain the medium and advanced features of the basic steps.

  • @Remirlis
    @Remirlis 4 ปีที่แล้ว

    Really loving this series, was my first time using an AnimationTree node and WOW! Love it.

  • @jesus2639
    @jesus2639 หลายเดือนก่อน +2

    i wish this series would get updated for godot 4.0. so much changed since this dropped

  • @darrylwainwright5865
    @darrylwainwright5865 4 ปีที่แล้ว +1

    A man after my own heart, great work, really loving this series.

  • @dk-sky3820
    @dk-sky3820 9 หลายเดือนก่อน +1

    8:36
    The reason for that is because in Godot 2D coordinate system has y - at the top and y + at the bottom.
    It's done so, because if you look at the 2DScene, the starting x0, y0 position is at the top left corner of the scene, and incrementing y would move the object "down", away from the top
    But it's only true for 2D, the 3D coordinate system is of course different.
    It's similar to coordinate system used in mobile applications to position UI elements

  • @RaymontP
    @RaymontP 4 ปีที่แล้ว

    Those little mistakes are very educative of how things work!
    Great tut's as usual: I have a hard time getting motivated from video tutorials but yours seems to always get me interested!

  • @taehunyun6660
    @taehunyun6660 4 ปีที่แล้ว +2

    if your character flickering, check 'Play when run(?)' option in animation tab. check video 16:48 (I lost this..)

    • @JurassicPierce
      @JurassicPierce 4 ปีที่แล้ว +3

      THANK YOU. Spent the past fifteen minutes wondering what I was doing wrong. Straight up just CTRL+F for "flicker" and found your solution.

    • @hugagagePersonal
      @hugagagePersonal 4 ปีที่แล้ว +1

      감사합니다.

    • @intevolver
      @intevolver 4 ปีที่แล้ว

      THANK YOU

  • @dachrismflvl666soieldiablo8
    @dachrismflvl666soieldiablo8 4 ปีที่แล้ว

    man this animation tree thing is awesome, thank you for this series has helped me a lot

  • @chispaloca7546
    @chispaloca7546 4 ปีที่แล้ว

    Hello Benjamin, it is the first time that I have seen a state machine tutorial, and the truth is that you explain it very well, it also helped me to see new functions! thank you very much Genius!

  • @Riley_Christian
    @Riley_Christian 4 ปีที่แล้ว +2

    I spent like 2 hours trying to find an issue, and it was the part you specifically said to be careful not to mistype Lol. I even read over all the code like 20 times
    Godot should really implement something to say that you typed a parameter that doesnt exist tho. Would be helpful
    Amazing tutorial Thanks a bunch :)

    • @marc.lepage
      @marc.lepage 4 ปีที่แล้ว +1

      The drawback with how that works is you can mistype and Godot does not know about it. But the benefit, which is never really mentioned, is that you can pull in any parameter that way, without having to prepare for it in the specific nodes. So that makes it a powerful mechanism, but like all powerful things, it requires due caution and respect. :-)

  • @alexabla6123
    @alexabla6123 4 ปีที่แล้ว +1

    I thought what was really interesting was how we were able to manipulate the state of animationTree/animationState via the .set functions. Though I was surprised how manual the process was of defining the parameter via string. Wish there was an auto complete. Maybe that's just me. Another amazing video man!!!

    • @novikovPrinciple
      @novikovPrinciple 4 ปีที่แล้ว +1

      Due to dynamic typing, auto complete functions in the editor are limited. You can do things like casting
      (animationPlayer as AnimationPlayer).someFoo
      or explicit declarations
      var animationPlayer : AnimationPlayer
      onready var animationTree := $AnimationTree

  • @danjustice1751
    @danjustice1751 3 ปีที่แล้ว

    Thank you for the great video series! It's exactly what I've been needing :)
    (And Merry Christmas from Denmark!)

  • @last7665
    @last7665 3 ปีที่แล้ว +5

    if anyone is having a problem with the character doesn't changing the direction, here´s the code:
    animationTree.set("parameters/Idle/blend_position", input_vector)
    animationTree.set("parameters/Run/blend_position", input_vector)
    it was happening to me and I realized I wrote "postion" instead of "position"

    • @whytophat
      @whytophat 3 ปีที่แล้ว +1

      I am so confused, I copy and pasted yours and it worked, so i checked mine next to yours and it was letter to letter, but mine didn't work but yours did. Thank you

    • @ipods36
      @ipods36 2 ปีที่แล้ว

      turns out ive been spelling position as "posistion" and once i realized, literally this and 2 other games ive been trying, the animations FINALLY all work, feel kinda dumb butttttttt its super exciting when you finally finally get it

    • @firewall2134
      @firewall2134 4 หลายเดือนก่อน

      I swear I read that string so many times was still having problems and your comment made me triple check and catch the error ty

  • @joaopedromonteiro7294
    @joaopedromonteiro7294 4 ปีที่แล้ว

    your videos are just amazing period.
    no discussion allowed

  • @suetam96
    @suetam96 2 ปีที่แล้ว +6

    First, thanks for the tutorials, I'm finally motivated to study Godot. Second, I don't know why but the animation to my Player only works to the left (it moves to the correct direction, just the animation is wrong), the behaviour is similar to what happened in 17:06, but our code are the same.
    I check the animation section too and saw nothing weird, but my Player starts with idle_left and even if a change to idle_right in the animation, it just go right->left very quickly.

    • @SectionQ2
      @SectionQ2 2 ปีที่แล้ว +5

      I was having a lot of weird behavior where the animation would try to immediately snap back to IdleLeft, and would often (but not always) start flickering between the most recent direction and IdleLeft.
      I was able to fix my issue by unselecting Autoplay on Load (the little 'A' tag next to the name of the animation in the AnimationPlayer). That got the flickering to stop, and everything worked properly.
      Hope that can help you, or anybody else with the issue!

    • @suetam96
      @suetam96 2 ปีที่แล้ว

      @@SectionQ2 Sounds exactly like the weird behaviour I'm getting. I will try this soon. Thanks

  • @nerdydrow
    @nerdydrow 4 ปีที่แล้ว +1

    fantastic tutorial!
    and down with String comparisons!

  • @marktriestolive1781
    @marktriestolive1781 4 ปีที่แล้ว +1

    i followed along nicely and u are really a good teacher on this. i didnt even got a hard time doing everything so thank you!

  • @abhishek-farswan
    @abhishek-farswan 3 ปีที่แล้ว +1

    watching character running successfully gives goosebumps

  • @zylo202
    @zylo202 4 ปีที่แล้ว +6

    Great video! Sadly I tried the animation trick at the end; and it did not fix the diagonal idles. Not sure if I missed an earlier step or if Godot updated and broke this fix.

  • @RenatoFontes
    @RenatoFontes 3 ปีที่แล้ว

    If you are still getting the nil issue, you have to set it back to parameters/playback.
    They updated parameter/playback to parameters/playback. I guess many people had this issue.
    I didn't get the text when hovering over it but you can drag from the animation tree parameters into anywhere and see the name of the property.

  • @WayneMoesa
    @WayneMoesa 4 ปีที่แล้ว

    i'm so glad i found your channel and this godot series. Thanks a lot
    keep up the great work

  • @ss2cire
    @ss2cire 4 ปีที่แล้ว +2

    Great great video, thanks very much i really wanted to learn AnimationTree and there aren't really any other tuts on this (specifically for 2D). Thank you very much! keep up the good work =)

  • @renangaldino6538
    @renangaldino6538 2 ปีที่แล้ว

    This is the best godot video on youtube bro please keep bring good content

  • @TechWampus
    @TechWampus 2 ปีที่แล้ว +1

    On 14:23, you hover over the property, you can just drag and drop it into the code instead of typing it manually ( Don't do this: 14:39 ). It's a pretty handy trick for saving time!

  • @krish-ut9de
    @krish-ut9de 4 ปีที่แล้ว +1

    Yay another upload

  • @kafkaphoenix
    @kafkaphoenix 4 หลายเดือนก่อน

    Really important in the AnimationTree when editing each BlendSpace2D don't forget changing Blend to Discrete!! If not the animation will try blending idle and run together

  • @saif0316
    @saif0316 4 ปีที่แล้ว

    These were wonderful to watch!