Adaptive Starts and Stops


Add start and stop animations to your game with this unique blueprint and animation set. Focuses on keeping high quality animation while maintaining full responsiveness. Its 100% blueprint driven, no code or plugins required.

• works without root motion to keep your character as responsive and controlled as possible
• easy to extend to add additional animations or replace with your own
• comes with 9 high quality sample animations: (5 turns, 1 idle, 2 jogs, 1 stop)
• includes forward to forward start animations that work for all angles (+/- 180 degrees)
• simple to understand, easy to integrate into your project, very tuneable

Integration Instructions

In order to use the assets in your own project you can follow these steps

  1. Copy the yawaccumulator and yawcomponent uassets from StartStop\Content\StartStop\Blueprints into your own projects blueprint folder
  2. Import the fbx animations you want to use from the StartStop\Raw\Anims folder. Make sure the “import custom attributes” setting is enabled
  3. Open the YawComponent in the blueprints editor
    • add the “Yaw Accumulator” interface to the list of implemented interfaces. For some reason Unreal doesn’t seem to properly import this setting. You can do this by clicking on the “Class Settings” button and then the “add interfaces” button on the right.yawcomponent_addinterface
    • You may get an error compiling the blueprint after doing this “Error Found more than one function with the same name Accumulate Yaw”. To fix, delete the accumulate yaw event and readd (right click on blueprint and search for ‘accumulate yaw event’)
      • yawcomponent_error
    • You’ll notice if its done properly the “interface” icon shows up in the top right corner of the event. Make sure the all the connections look like the screen shot below.yawcomponent_addevent2.PNG
  4. Open your character blueprint (ThirdPersonCharacter)
    • Add the YawComponent
    • thirdperson_addyawcomponent
    • Ensure that ‘Pawn/Use Controller Rotation Y’ is false in the ThirdPersonCharacter component
    • In the CharacterMovement Component
      • ensure ‘orient rotation to movement’ is false
      • (Optional) set movement values to something more natural for a human. We found these values work well
        • Max Accel: 1200
        • Rotation Rate: 450
        • Walk Speed: 400
        • Braking Decel: 100
        • Ground Friction: 3
  5. Open your Animation Blueprint (ThirdPersonAnimBlueprint)
    1. Create a bool variable ‘Desires Stop’ (should we play  a stop animation?)
    2. Create a float variable ‘Desired Relative Move Angle’ (used to trigger the correct turn animation)
    3. Create a float variable ‘Turn Total Rotation’ (used to keep track of how much the turn animation will rotate the character)animbp_variables2
    4. Add the event graph nodes for these variablesanim_variables
    5. Add “ToStop” State
      • Enter Conditions: speed > 100 and “desires stop”
      • animbp_stopcondenter
      • Exit Conditions: time left ration < 0.1 or !”desires stop” or “is in air”
      • animbp_stopcondexit
      • Add stop animation to node, make sure “looping” is disabled
    6. Add Entered State Event to idlerun node
      • animbp_idlerunevent
    7. Add “Turn<angle>” State for each turn animation you want to add.
      • Enter Conditions: speed < 100 and !”is in air” and !”desires stop” and angle range check “desired relative move angle” (< -135 for 180 left example shown)
      • animbp_startcondenter
      • Exit Conditions: appropriate time value or “desires stop” or “is in air”
      • animbp_startcondexit
      • Add appropriate onEnter event
      • animbp_startenterevent
    8. In the AnimBlueprint Event Graph add nodes to respond to enter state events.
      1. Set turn total rotation to 0 on EnterIdleRun Event
      2. Set turn total rotation to appropriate value on EnterTurn eventsanimbp_evententer
    9. Add ‘Blueprint Pose Evaluate Animation’ event to send information to the Yaw Accumulator interface.
      • animbp_accumulateyaw
      • Target is the Yaw Component from the owning actor
      • Current Rotation is the ‘facing’ value from the animation curve
      • Total Rotation is the ‘turn total rotation’ variable
    10. Last Step: In order to prevent a slightly deflected stick from making the character move very slowly we will force the minimum speed to be a percentage of the walk speed. Add the following nodes to the “movement input” graph on your ThirdPersonCharacter blueprint
      • thirdperson_movementinput

One thought on “Adaptive Starts and Stops

  1. I just bought this asset, thinking everything would be simple. Do you have a tutorial that does a quick example, I really don’t want to read that much, or at least I thought I would be paying to avoid all of that. Thanks

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s