top of page

Adding a Jumping Animation to our Basic Third Person Character in Unreal Engine

Updated: Aug 12

Accessing the Is Falling Movement Component of the Character

  • Head over to your Animation Blueprint and in the Event Graph right click and search for "property access". Last time we utilized this we were checking to see if our player was crouching, this time we are going to be checking to see if our player is falling. So, in our property access lets find our third person character reference then get movement component then get IsFalling. Now we can promote the result of the property access and call that Boolean variable "Is Falling". Then we can highlight and comment by pressing the C key and name it "Check if Falling" and connect from the execution on the Set "Is Crouching" into the set "Is Falling".

ree

Improving the Locomotion State Machine

  • Head to our locomotion state machine and right click and create a state alias, and let's name this "To Falling" a state alias is a state that can be accessed without a direct transition. You can have multiple states transition to it or set it as a global alias. In this case what we want is to have our state alias accessible to the Idle and Locomotion states.


  • From our state alias we can create a new state named "Jump", then again from To Falling create a state named "Fall Loop", lastly create a transition from Jump to Fall Loop.

ree
  • Open our transition rule for Jump from To Falling, and here we want to get our "Is Falling" Boolean variable and set that as our condition. Our transition to Fall Loop from To Falling is going to be identical. Here we can run into an issue since both transitions rules are identical, we need to help the engine choose which state to transition to. To do this we are going to use Priority. When you click on the transition rule on the details panel on the right side of the window set the Priority Order in the transition section to 1 for Jump and 2 For Fall Loop. For our transition from Jump to Fall Loop set the transition as Automatic Rule Based which is also located in the Details Panel.

ree
  • So now that we are telling our state machine when we are jumping and what to do when we are in the air, we now need to tell it how to handle when we land or are no longer falling. To do this we are going to create another state alias just like our "To Falling" and we are going to name it "To Land". This state alias will be accessible through our Fall Loop state. From To Land we are going to create a new state called "Land". From our land state we want to be able to transition to both our idle and our locomotion states.


  • Let's backtrack to our transition from To Land to Land and get our "Is Falling?" Boolean and then from that get a NOT Boolean, then place that as our condition. For our transition to Idle, we want to get our Speed variable and then from that get a Nearly Equal (Float) node. Our tolerance will be 0.1 and our value is going to be 0. This means that if our Speed variable is roughly 0 then we will transition to our Idle state from our Land. The transition from Land to Locomotion will follow the same concept. We will get our Speed variable and if our speed variable is greater than 0.1 then we will transition to our Locomotion state.

ree
  • Now that we have created our states and transitions, we need to tell our states what we want to accomplish when they are active. First, we can head to our Jump state and search in our asset browser for the A_Jump_Idle_Masc animation, then drag and drop the animation into the graph and set it as the output pose. Then for the Fall Loop state we are going to get the A_InAir_FallShort_Masc animation and use that as our output pose. Lastly, for the Land state we are going to use our A_Land_IdleSoft_Masc for our output pose. There aren't the final animations we are going to use, but we are going to set them as a temporary placeholder until we finish. The reason for this is if you were to currently test our animations, they are a bit longer than what we currently have set up, so we need to edit them.


Editing The Jump Animation

  • Let's head over to our content browser and in our Content > Animations > Synty > Masculine > InAir we are going to find our A_Jump_Idle_Masc animation and right click then duplicate. Inside the duplicated animation we can use the red tab along the sequence player to locate specific timeframes within the animation length. For this animation in specific we want to find a point right before the player jumps.

ree
  • From here right click and Remove frame 0 to frame in this case 18. Now scan in the animation to where the actor enters the fall animation and remove from that frame to the end.

ree
  • The remaining of the animation should be a much shorter animation that only has the initial jump then entering the fall loop animation.

Editing The Land Animation

  • Now we are going to do the same thing for the landing animation. Our land animation should also be in the Content > Animations > Synty > Masculine > InAir folder. Here we are looking for A_Land_IdleSoft_Masc, and once we find it we can right click and duplicate it. Once we do that, let's open the animation. What you will see is that the animation is incredibly short already, but we want to remove a small portion off the end. So position the red tab where you want to edit and right click then remove from current frame to the end. In this instance I have from where my feet land, and remove a portion of the planting.

ree

Replacing the Placeholder Animations with the Edited Variants

  • Head back to our Locomotion State Machine and lets open our Land state. Here we can delete our current animation and replace it with our edited land variant that we made, then drag from the animation sequence into the output pose. We are going to repeat this for the jump animation in the Jump state with its respective animation too.


  • Don't forget to compile and save!


If you would like to follow the Step-by-Step Tutorial, Check out the Video Below!

Comments


© 2025 by Crow's Keep Studios Powered and secured by Wix

bottom of page