Skip to content

Step 4: Installation ‐ Player AnimBP

BavGames edited this page Jan 24, 2026 · 21 revisions

Installation – Player AnimBP (Animation Blueprint Setup)

In this section, we add the Possessable System to the player’s Animation Blueprint. We will only prepare the required references and nodes so they can be used inside the AnimBP.


1) Open the Character Animation Blueprint

  1. In the Content Browser, locate the Player Animation Blueprint (e.g. ABP_Manny).
  2. Double-click it to open.

2) Get the CharacterSeatHandler Component on Begin Play and Store It

We will fetch the CharacterSeatHandler from the character when the AnimBP starts and store it in a variable.

  1. Right-click in the AnimBP Event Graph panel.
  2. Search for Blueprint Begin Play and add the event.
  3. Get the character reference and call Get Seat Link (Message).
  4. From the Seat Link output pin, right-click and select Promote to Variable.
  5. The setup should look like the image below.
image

The Seat Handler is now accessible inside the Animation Blueprint.


3) Available Nodes on the Seat Handler Side

You can now use the following nodes inside the AnimBP:

  • Seat Fully Entered Checks whether the character is fully seated on a mount.

  • Current Use Two Hand IK Determines whether the character’s arms should be attached to any part of the mounted actor.

  • Two Hand IK Index The index of the seat used for arm attachment.


4) Recommended Basic Usage

First, we need to store whether the character is seated inside the AnimBP.

  1. In the Event Blueprint Update Animation event, call SeatFullyEntered from the Seat Handler.
  2. Save the result to a boolean variable.

The setup should look like this:

image

The Animation Blueprint now knows whether the character is seated on an actor.


5) AnimBP Bone Settings (Optional)

If the character’s arms will be attached to parts of the mounted actor, we need to define related variables in the AnimBP.

  1. Create a function named BoneSettings.
  2. Inside this function, define and set the variables as shown below.
image
  1. Call this function when SeatFullyEntered is set, as shown below.
image

6) Animation Layer

Now, let’s add an Animation Layer to control the character’s arms.

  1. Create a new Animation Layer (the name is optional, we used IK_Possesable_Layer).
  2. Open the IK_Possesable_Layer function.
  3. From the Details panel, add a new input.
image
  1. Cache the input so it can be reused later.
image

To avoid unnecessary processing, we disable this logic when it’s not needed:

  1. Add Blend Poses by Bool to the output.
  2. Control it using UseTwoHandIK from the Seat Handler.
image
  1. Connect the previously added BoneConnector node to the False input.
image

The purpose here is to avoid unnecessary calculations when the character is not seated or when the current seat does not use arm attachment. Sending an empty pose reduces processing cost.


True Branch Setup

  1. Add Two Bone IK and Transform (Modify) Bone nodes.
  2. Connect them to the True input of Blend Poses by Bool.
image
  1. Configure Two Bone IK and Transform (Modify) Bone settings from the Details panel as shown below.
Frame 75

This setup is for the right hand.

  1. Duplicate the Two Bone IK and Transform (Modify) Bone nodes and apply the same logic for the left hand.

Final result:

image
  1. Finally, feed the transforms configured in the BoneSettings function into these nodes.
image

7) Animation Linking

We’ve reached the final stage of the Animation Blueprint setup.

  1. Open the AnimGraph panel.
  2. Right-click on an empty area and search for ABP_Anim_Graph_Mount.
  3. Select the ABP_Anim_Graph_Mount function.
image
  1. Select the added function and, from the Details panel, enable Expose As Pin for SeatLink.
image
  1. Connect ABP_Anim_Graph_Mount and IK_Possesable_Layer, then cache the result.

Final layout:

image
  1. Connect a Blend Poses by Bool node to the Output Pose.

Since animation montages will be used later, make sure to connect the montage slot (e.g. DefaultSlot) after the Blend Poses by Bool node. You can use any slot name that fits your setup.

image

Final Result

Below is an example of the final setup with all nodes connected:

image

Note: All of these setups are included in the sample project. You can either copy the code directly or review the project to understand how everything is implemented.