UE4/UE5 Tutorial: First Person Game Feel - Part 2: Procedural Animation

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ก.ย. 2024
  • How's it going everyone! In this episode, we'll be expanding on the work we started by adding essential features like smooth crouching and coyote time, as well as establishing a system for procedurally animating our first-person mesh.
    Over the course of the series, we'll be covering topics such as weapon sway, first-person camera animation, third person meshes, reactive HUD elements, and more! If you're interested in learning more about the topics mentioned above or FPS game feel-related mechanics in general, consider subscribing! Thanks for watching :)

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

  • @Tapazau
    @Tapazau 7 หลายเดือนก่อน +5

    Thank you so much for creating and sharing these videos. This is the only series I've found that actually focuses on making a fun to use and satisfying core experience - I really hope you continue these videos! I've come into this as a complete beginner following these tutorials while trying to implement this in UE5 (so not the target audience), but I'm learning heaps and having a lot of fun diving in and solving issues as I make mistakes. In case anyone's in a similar boat to me, here are some issues I ran into and how I solved them:
    Incorrect axis for walking sway and weapon direction movement (weapon goes up/down on left/right and walking sway is front/back like the character is limping):
    At 8:09 the nodes show 'Left Right Alpha' connected to the X component of the set "Walk Anim Pos' variable. Player forward is +X (forward/backward), so this should instead be set to 'Walk Anim Pos Y' (side to side). Similarly, 'Roll Alpha' is connected to 'Walk Anim Rot Y (pitch)'. This is tilting front and back. For side to side movement this should instead be connected to 'Walk Anim Rot X (Roll)'. Roll is tilting side to side. At 8:51 Inside the 'Get Velocity Vars' function, the 'Make Vector' node axis similarly need to be changed. The top divisor (driven by the dot product of 'Velocity' and 'Get Actor Forward Vector') should be connected to the X input of the 'Make Vector' node (remember, +X is forward). The second divisor (directly below it - powered by the dot product of 'Get Velocity' and 'Get Actor Right Vector') should be connected to the Y output of the 'Make Vector' node (Y is left to right).
    Character crouches but can't uncrouch:
    Double check the connections at 1:14 in the video. When promoting the 'Set Timer by Function name' return value to the "Un Crouch Timer" variable, I accidentally connected both the output (blue circle/line) and exec (white triangle/line) to the 'Clear and Invalidate Timer by Handle' node, ie: both the input action pressed and released paths were directly hooked up the the 'Clear and Invalidate Timer by Handle' node. As far as I can tell this resulted in the 'Clear and Invalidate Timer by Handle' node trying to do both actions at once. TL;DR: The 'Clear and Invalidate Timer by Handle' node should only have two connections, blue from the "Un Crouch Timer" promoted variable, and white (exec) from the Input action pressed node.
    One again, thanks for all your hard work, these videos are amazing! I understand that you want to keep these videos concise and information dense, but I would love if you could spend a bit of extra time explaining why you chose some of the more important values for the clamps, floats and operators you chose (eg in the 'Get Velocity Vars' the base walk speed is multiplied by -1 and fed into the forward vector operation so that the weapon sways in the opposite direction to character forward/backwards movement). Can't wait work through the next 4 videos!

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

    Thank you so much man. I want to make animating much easier for my art and animation team, and I told them there had to be a way to do this. While I'll probably adjust a lot of the core pieces of the code you presented, its an amazing starting point for me to base most of my concepting around for later iterations. I learned tremendously from these, so please continue to share them! I hope you have an awesome day! Thank you so much for your time!

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

    I agree this opened my mind following the series to how fps is actually done correctly this is one way to do that. Great job!

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

    These tutorials are brilliant. Thank you for putting in the work to share such great knowledge!

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

    Thank you, I will try to incoporate this with my own animations skills, this tutorial worked and I learned a lot, still a beginner but I understood more from this tutorial :)

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

    Hi there, I just created a system very similar to this and put it on the marketplace, it has more options and depth but at its core, its pretty much what you are doing for this video. I got this recommended to me because I have videos about it with the name "procedural animation" (I think).
    Just want to say thanks for putting this out here for free, youtube is in big part where I learned my craft when I didnt have the possibility to buy systems to use or learn from, so this is going to be gold for many people. I also used to make free tutorials and I miss those times, unfortunately now I have a family to provide to and I no longer can afford to work for free.
    Again, big thanks for this and good luck to you and your community.

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

      Hey, thanks for the comment! TH-cam's also where I learned a majority of what I know about game development, and with the lack of content around these sorts of topics I felt obligated to sort of fill that void the best I could. Your system certainly looks comprehensive! Anyone looking for something a bit meatier than the method I'm outlining in this video should definitely check it out 😄

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

      ​@@octagamedev hi the walking procedural anim doesn't work for me everything else works

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

      @@muerrtee Hey there, just saw you joined the Discord! I'll reach out to you there and see if we can get this resolved.

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

    Dude I love the speed of your videos. They are geared towards more intermediate learners and it rocks!!

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

    The best course on that theme... Amazing job! I worked on a similar system but it took me weeks to combine all my knowledge and get it done.

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

    Been waiting for this one, great tutorial!

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

      Thanks for waiting! Glad you found it useful 😄

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

    this tutorials are more than welcome!

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

    dude this is fantastic, thanks!

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

      Glad it was useful! Thanks for watching

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

    Very very nice. Love the way it all looks and works.

  • @Italveloper
    @Italveloper 6 หลายเดือนก่อน +1

    Hey can anyone solve me this problem? : when I crouch my player won’t walk as crouched , but he will stay still in position. How can I solve that ?

  • @JoesephJoestar-g4l
    @JoesephJoestar-g4l ปีที่แล้ว +6

    Hello, I didn't notice the appearance of the LocationLagPos variable. What is its purpose and how should I create it?

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

      Have you fixed that / found a solution ?

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

      it's jus ta vector variable that he made off screen@@IsaacCode95

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

    cant wait for the next episode!

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

    This is a super informative tutorial!! Thanks for taking the time to make this, it’s going to be really useful!

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

    Pleasw finish the series this year, lol 😆 😂 i love it but wanna see it at the final stage

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

    Thank you so much for this amazing tutorial!!!!! very helpful :) so sad you stopped the serie :(

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

    awesome, shame no more upload but with a few tweaks this system looks way better than even traditional animation

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

    Absolutely brilliant sir thanks.

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

    Hey Octahedron. After carefully watching and implementing your code, the walking animation works however the location lag does not. It appears to snap to a lower position when changing direction rather than smoothly move back and forth. Do you know what might be going on here? will update if fixed. Cheers!

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

      did you fix that ? i have the same problem

    • @DulajLakshan-zu2fp
      @DulajLakshan-zu2fp 4 หลายเดือนก่อน

      Me too

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

    It worked so well thank you so much

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

    I'm trying to replicate this on ue5 and almost everything seems to be working, however, when I walk, i don't have the step affect for my character, my gun just slides forward or back without any of the bounce that it would have from a step

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

    hey quick question what plugs into the walking timeline i must have missed it lol

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

      I was wondering too, but realised that he selected 'AutoPlay' in the timeline settings

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

    Very nice. Thank you.

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

    An issue I've found here is that, while underneath a surface that blocks crouching, if the crouch input is released and then pressed (and held) again the sphere trace stops checking and the player can crouch jump into the surface above (as well as stand up into it when the crouch input is then released mid-air).

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

      Also just happens when the crouch input is held in general.

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

      Hey there, I just checked and I wasn't able to reproduce this issue on my end. Feel free to reach out on Discord so I can help you troubleshoot!

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

      @@octagamedev Oh that sounds great, thanks! I'll see tomorrow if I can record an example as well. I'll go through all the tutorials one more time to make sure I didn't miss something big though.

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

    Does procedural animations can be replicated? 🤔 Especially for AI's

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

    Updating the root position makes it so when I jump the mesh stays in the air. If I remove this code it seems to work fine

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

      Same for me. Though I don't know if I had set up the root properly.

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

    Anyone not bouncing on the landing?

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

    Hey I’m making an fps , if I can make it and put in on steam I will put your name in the credits , because my man , you gave me the informations that I needed . And also because I don’t have this type of knowledge 😂. Can you also tell me where do you learn these things ?

  • @IbrahimSyah-kw3mi
    @IbrahimSyah-kw3mi 8 หลายเดือนก่อน

    Bro thought he could just drop AAA destiny animation tutorial and thought we wouldn't notice.

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

    Hi there, awesome video can't wait fot the next one!
    I have a question, how can you handle the reload animations and other animations that you have parts of the weapon moving?

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

      Hey there, sorry for the late reply! Check out my latest video, I briefly go over how I go about playing one-shot animations (like reloads) along with any corresponding weapon mesh animations.

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

    there is a way to do procedural animation for first person legs?

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

    Does the walking animation works for you guys ? because for me, it's very slow and doesn't make the same effect :/

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

      Actually I changed some of the values, swapped some axis and it's working now!

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

    How can I make the camera / weapon not go inside walls and such when you're close to them or will this be covered in the next video? :)

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

      Hey there! I will be covering this topic in a future video, the episode coming out this evening won’t contain the solution though I’m afraid.

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

      @@octagamedevSweet! Can't wait, thank you for these tutorials absolutely beautiful stuff :)

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

    I seem to have run into an issue where I can get my character to crouch but not uncrouch utilizing your method. Any thoughts on what may be causing the bug?

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

      Feel free to reach out on Discord or via email and I'll do my best to help you through it!

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

      I had this issue and the way I fixed it was renaming the "can stand" function, even though both of the instances were named the same they wouldn't work for some reason

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

      Hey there, did anyone manage to solve this issue? I encountered the same thing and tried the rename method of CheckCanStand but that didn't work either

    • @Tapazau
      @Tapazau 7 หลายเดือนก่อน +1

      @@dayumitsskai I'm still very much a beginner, so apologies if I've messed up some of the terminology here. Double check your connections at 1:14 in the video. When you promote the 'Set Timer by Function name' return value to the "Un Crouch Timer" variable, I accidentally connected both the output (blue circle/line) and exec (white triangle/line) to the 'Clear and Invalidate Timer by Handle' node, ie: both the input action pressed and released paths were directly hooked up the the 'Clear and Invalidate Timer by Handle' node. As far as I can tell this resulted in the 'Clear and Invalidate Timer by Handle' node trying to do both actions at once. TL;DR: The 'Clear and Invalidate Timer by Handle' node should only have two connections, blue from the "Un Crouch Timer" promoted variable, and white (exec) from the Input action pressed node. Give that a try - hopefully it solves your issue too.

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

    What does interp speed do?

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

    7:25

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

    Okay so get ready for the first comment that won't be kissing your ass. The first video in the series was okay, but by this point, it might as well be a Non-Torial, you're just showing us your code without explaining why you made ANY of these choices, yeah I was able to follow along and copy things and was left with your same result, having learned absolutely nothing from it. If your intent is really to teach people, then take your time to actually explain what the nodes do, why you chose to use those nodes, why you chose the specific hard coded values you've put in there, and explain the method behind this. Copying what you're doing will get me a result, but this isn't a lesson. This is just a more roundabout way of buying an asset pack with pre-built code, it'll give you something you can use but won't teach you how to make it yourself. This also seems to not avail of UE5's Control Rig which should be able to replace and take on all of the procedural animations. You're clearly a very skilled programmer, but as far as actually teaching something goes, you need to really take your time and actually teach.

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

      Hey Michael, I appreciate you taking the time to leave a detailed critique, and I do agree that these videos are really fast paced for the breadth of content I'm trying to squeeze in. I've seen a common complaint amongst folks who already have some familiarity with UE that TH-cam tutorials tend to drag on unnecessarily long, and it can often cause them to lose interest in the video entirely. I don't want to waste anyone's time explaining every individual step I'm taking towards the end result, and if they do need additional info on the minutiae I'd always recommend checking out Mathew Wadstein's channel. This series starts with the assumption the viewer already has a grasp of what the individual nodes I'm placing down do; the lesson being taught is how to arrange those fundamentals into a functional system. Going forward, I'll make a better effort to explain what's going on in each section of the episode. It's all about striking a balance between keeping it short and sweet and including as much information as possible.

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

      Congratulations, you made him quit youtube.

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

      Haha I’m still here, no worries. I’ve been much more active on Discord but I do plan on a proper return to the series this upcoming summer!

    • @80VAIN08
      @80VAIN08 4 หลายเดือนก่อน +1

      Even though the comment is super old, I want to weigh in by saying that for me this type of presentation is perfect. I guess it's not very beginner friendly, but this way there is a ton of information compressed to less than 15 minutes, and if I need a refresher on something specific, I can go to the video and quickly get an overview of what I was looking for.

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

    што токое кек