Getting Started
Welcome to the Procedural First Person Toolkit. This guide will walk you through the initial setup to integrate the plugin with the Unreal Engine First Person Shooter Template (Arena Shooter variant). By the end of this part, you will have a functional procedural system featuring Sway, Offsets, and a procedural Aim Offset.
It is important to note that this knowledge can be applied to any other projects you may need on the future.
Issues or Questions
If you notice something wrong or have any problem while following these steps, feel free to join our discord and request support.
Prerequisites
Before we begin, ensure you have the following:
Unreal Engine Version: The plugin supports UE 5.6 and 5.7.2+.
Plugin Installed: Ensure the plugin is installed to your Engine version before creating a project.
1. Project Creation & Initial Fixes
Project Setup
Create a new project using the First Person Template.
Select the Blueprint version.
Choose the Arena Shooter variant.

Fixing the Mannequin Mesh
The default Shooter Template uses "Simple" mannequins that lack essential bones (like weapon_r).
Import Original Manny: Import the standard Unreal Engine Mannequin mesh.
If you don't have it, feel free to use this one.
Verify Bones: Ensure the
weapon_rbone is present and active.Set Preview Mesh: In the Skeleton Editor, set the newly imported mesh as the Preview Mesh in the Preview Settings.

2. Plugin Activation & Skeleton Setup
Go to Edit > Plugins, search for Procedural First Person, and enable it.
Restart the Engine.
Setup Skeleton: * Navigate to your Skeleton asset.
Right-click -> Scripted Asset Actions -> Setup Skeleton.
Feel free to leave all marked. I'll be choosing "Setup Hands" and "Setup Single Wield".
This will automatically create the necessary Virtual Bones (VBs) under the Head bone for procedural movement.



3. Animation Blueprint (ABP) Consolidation
To keep things efficient, we will use a single base Animation Blueprint.
Standardize Weapons: Open your weapon Blueprints (Rifle, Pistol, Launcher) and change their Animation Blueprint to
ABP_FP_Copy.Base ABP: Rename
ABP_TP_RifletoABP_Weapon. This will be our core logic hub.Update References: Ensure
Shooter Weapon Baseand individual weapon BPs point toABP_Weaponfor third-person andABP_FP_Copyfor first-person.
ABP Logic Adjustments
Inside ABP_FP_Copy:
Remove
Control Rigkeeping only theCopy Pose From Mesh.
Inside ABP_Weapon:
Rotation Blend: Change the
Layered Blend Per Bone(Spine_01) to Mesh Space instead of Local Space to avoid spinal distortion.Pose Style: Use Single Frame Animation for the first-person pose to ensure stability.
Right-click the Sequence Player and select "Convert to Single Frame Animation".

4. Character Configuration
Open your ShooterCharacter Blueprint:
Mesh: Set the Mesh to the original
SKM_Mannywe imported.Camera: Reset the Camera Component position and rotation to (0, 0, 0).
FOV: Set both the standard FOV and First Person FOV to 90 to prevent perspective issues.
Search for the
Attach Weapon Meshesfunction.Change the attachment socket from
HandGrip_RtoVB Pivot.


5. Integrating Procedural First Person
Before implementing the procedural motion functions, you must stabilize the character's perspective and ensure the weapon is oriented correctly for the plugin to calculate movement accurately.
Head Stabilization
To prevent the camera from tilting unnaturally with the character's animations in first-person, you need to stabilize the head bone.
In the
ABP_WeaponAnim Graph, add a Transform (Modify) Bone node.Select the
headbone.Set the Rotation Mode to Replace Existing.
Change the Y rotation value to 90.
This ensures the head stays level regardless of the body's pose.

Weapon Mesh Orientation
The plugin requires weapons to point toward the Positive X axis for maximum stability. If your mesh is oriented differently, you must correct it within a dedicated Animation Blueprint for the weapon.
Create a new Animation Blueprint for your weapon mesh (e.g.,
ABP_Rifle).Add a Transform (Modify) Bone node targeting the root-most bone.
Set the Rotation Mode to Add to Existing.
Set the Z-axis rotation to -90.
Verify that the weapon is now pointing forward along the X axis.

Establishing the Positional Source
Next, you must link the animation's weapon bone to the virtual bone used by the procedural system.
In your main
ABP_Weapon, add a Copy Bone node.Set the Source Bone to
weapon_r.Set the Target Bone to
VB hand_r_to_ik_hand_hun.In the node settings, uncheck Scale and ensure only Translation and Rotation are enabled.

Variable Setup
In Shooter Weapon Base, create these Instance Editable variables:
Origin Relative Rotation(Rotator)Attach Relative Rotation(Rotator)Attach Relative Location(Vector)

Make sure to enable Instance Editable (eye icon), in order to be able to edit these variables in runtime.
Shooter Character Reference
In your ABP_Weapon Event Graph (Initialization), after the Character reference save, cast it to BP_ShooterCharacter and save as a Variable.
Procedural Bone Rebase
The Procedural Bone Rebase node is essential for correcting the positioning of bones that will perform procedural movements.
In your
ABP_WeaponAnim Graph, after the Copy Bone, add the Procedural Bone Rebase node.Set the Source to
VB hand_r_to_ik_hand_hunand the Target toVB pivot.Note: The Pivot is the bone where your weapon is attached.
Virtual Bone Resets: Add four entries to the node to reset the position of the hand and elbow virtual bones:
hand_r->VB pivot_hand_rhand_l->VB pivot_hand_llowerarm_l->VB pivot_lowerarm_llowerarm_r->VB pivot_lowerarm_r

Aim Offset Integration
To ensure the weapon follows the camera rotation seamlessly, add the Procedural Aim Offset node at the end of your animation flow.
The node automatically calculates camera rotation and applies it to the pre-filled spine chain.
This setup provides a responsive follow-effect without jitter/delay.

Creating the Procedural Motion Input
The Procedural Motion node is the primary driver of the plugin. It moves the pivot, and the arms/elbows follow automatically as they are child virtual bones.
The Input Function
Create a new function named
GetProceduralMotionInput.Set it to Pure, Const, and Thread Safe.
Add an output variable of type Procedural Motion Input named
Return Value.Inside the function, use a Make Procedural Motion Input node.
Source Actors: Create a Make Array and use Property Access to link the
Shooter Character -> Current Weapon. This allows the node to read components directly from the weapon actor.Perspective Check: Connect
Shooter Character -> Is Locally Controlledto the boolean input. This determines if the procedural effects should be active based on the player's perspective.

Add Procedural Motion Anim Node
Create the
Procedural Motionnode.Right-click "Input" -> Select our newly created function.
At "Bone to Modify" -> Select
VB pivot.

Correcting Weapon Offsets
Do not use standard Relative Location or Rotation in your weapon attachment logic. To ensure the plugin functions correctly, all offsets must be handled via a Transform Bone node.
After your positioning Copy Bone, add a Modify Bone node.
Select bone:
VB hand_r_to_ik_hand_gun.Translation & Rotation Mode: Set both to Add to Existing.
Translation & Rotation Space: Set both to Bone Space.
Bind the Translation to
Current Weapon -> Attach Relative Locationand Rotation toCurrent Weapon -> Attach Relative Rotation.We created these variables in here.

Finalizing with Hand IK
To lock the hands to the VB pivot, add the Procedural Hand IK node after the Aim Offset.
Map the standard hand bones to their pivot equivalents (e.g., Hand L to Pivot Hand L, Lower Arm L to Pivot Lower Arm L).

Components and Real-Time Tweaking
You can now add specific motion components to your weapon Blueprints for unique feel.
In the Rifle BP, I found out that using -4.0 is Y for Attach Relative Rotation fixes the wrong placement from the template animations.
Add Components: In your Base Weapon BP, add a Procedural Sway Motion Component and a Procedural Offset Motion Component.
Create Preset Data: Right-click in the Content Browser > Miscellaneous > Data Asset > Procedural Preset Data.
Assign Presets: Select your new Data Asset in the component settings of your weapon.
Live Edit: While the game is running (PIE), open the Preset Data asset. Any changes you make to the Sway, Offset, or Pivot (e.g., moving the weapon closer to the body) will persist and update in real-time.




6. Check Progress

Next Steps
In Part 2, we will cover:
Integrating the Recoil system.
Adding more Procedural Motion Components.
Specific configurations for different weapon types like Pistols.
Last updated