Skip to content

First Person reference

The first-person rendering component, the first-person Anim Blueprint and its Control Rigs.

How to read these tables

Settings are the values you tune: select the component in your pawn Blueprint (or open the asset) and look in the Details panel under the category shown. Runtime state is written by the system while it runs; read it, do not set it. Functions marked pure have no execution pins. The descriptions are the same as the Details panel tooltips. Default is the class default; where a sample pawn sets a different value on its component, the description says so ().

AC_FirstPersonRendering

/GASPALS/Systems/FirstPersonSystem/AC_FirstPersonRendering · parent ActorComponent

Settings

Variable Type Default Description
First Person Rendering Tag
FirstPersonRenderingTag
Name FirstPersonRendering Component tag that marks a primitive as part of the first-person view; tagged components are collected into Primitives_FirstPerson. Optional, generated meshes need no tag.
Third Person Rendering Tag
ThirdPersonRenderingTag
Name ThirdPersonRendering Component tag that marks a primitive as part of the third-person view; tagged components are collected into Primitives_ThirdPerson. Optional on pawns and equipment.
First Person Arms Meshes
FirstPersonArmsMeshes
Array of SkeletalMesh ref Split mode: skeletal meshes for the first-person arms. The first one leads, the others follow its pose.
Sample pawns: Mover SKM_UEFN_Mannequin_FP_Arms, Mover Ragdoll SKM_UEFN_Mannequin_FP_Arms, CMC SKM_UEFN_Mannequin_FP_Arms.
First Person Body Meshes
FirstPersonBodyMeshes
Array of SkeletalMesh ref Split mode: skeletal meshes for the first-person body (without arms and head), following the arms lead.
Sample pawns: Mover SKM_UEFN_Mannequin_FP_NoArms, Mover Ragdoll SKM_UEFN_Mannequin_FP_NoArms, CMC SKM_UEFN_Mannequin_FP_NoArms.
First Person Full Meshes
FirstPersonFullMeshes
Array of SkeletalMesh ref Overlay and TrueFirstPerson modes: full-body first-person meshes; the first leads, the rest follow. Empty reuses the third-person mesh with the head hidden.
Sample pawns: Mover SKM_UEFN_Mannequin_FP, Mover Ragdoll SKM_UEFN_Mannequin_FP, CMC SKM_UEFN_Mannequin_FP.
Third Person Mesh Name
ThirdPersonMeshName
Name Name of the body skeletal mesh component to copy from; falls back to the first skeletal mesh that is not a generated first-person mesh.
Sample pawns: Mover SkeletalMesh, Mover Ragdoll SkeletalMesh, CMC CharacterMesh0.
First Person Retargeter
FirstPersonRetargeter
IKRetargeter ref IK Retargeter from the UEFN mannequin to this character skeleton. Needed by the overlay modes on non-UEFN skeletons; leave empty on UEFN.
First Person Mode
FirstPersonMode
E_FirstPersonMode FirstPersonOverlay How this character builds its first-person view. TrueFirstPerson: third-person animation plus ADS. FirstPersonOverlay (default): first-person poses on the full-body mesh. FirstPersonOverlaySplit: arms and body meshes sharing one pose, arms use first-person scale (needs Arms and Body meshes).
True First Person Weapon Presentation
TrueFirstPersonWeaponPresentation
Float 0.3 TrueFirstPerson only: how far the weapon is pulled toward the sight line when not aiming (0 = pure third-person pose, 1 = always aimed). Ramps to 1 when looking up past 45 degrees.
First Person Arm Pitch Down Limit
FirstPersonArmPitchDownLimit
Float 45 Overlay modes: degrees of downward view pitch the arms follow (rotating around the eyes) before the spine leans for the rest. Lower values lean more.
First Person Arm Pitch Up Limit
FirstPersonArmPitchUpLimit
Float 90 Overlay modes: degrees of upward view pitch the arms follow before the spine leans back for the rest.
First Person Camera Follow Lean
FirstPersonCameraFollowLean
Float 0.75 Overlay modes: how much the camera follows the spine lean when looking down (0 = camera stays and the upper body shifts back, 1 = head and camera move with the lean).
First Person Eye Offset
FirstPersonEyeOffset
Vector (0, 0, 0) Camera position relative to the head bone, in mesh space at the reference pose (X right, Y forward, Z up, cm). Use it when the skeleton head bone is not at the eyes (UE5 Manny/Quinn, MetaHumans); the camera, the ADS hand targets and the arm pivot all move with it. UEFN mannequin: 0.Camera position relative to the head bone, in mesh space at the reference pose (X right, Y forward, Z up, cm). Use it when the skeleton head bone is not at the eyes (UE5 Manny/Quinn, MetaHumans); the camera, the ADS hand targets and the arm pivot all move with it. UEFN mannequin: 0.Camera position relative to the head bone, in mesh space at the reference pose (X right, Y forward, Z up, cm). Use it when the skeleton head bone is not at the eyes (UE5 Manny/Quinn, MetaHumans); the camera, the ADS hand targets and the arm pivot all move with it. UEFN mannequin: 0.
Runtime state (6 variables)
Variable Type Default Description
Primitives First Person
Primitives_FirstPerson
Array of PrimitiveComponent ref Primitives shown to the owner only in first person (tagged components, generated first-person meshes and copies); hidden from the owner in third person.
Primitives Third Person
Primitives_ThirdPerson
Array of PrimitiveComponent ref Primitives of the third-person body or equipment; they become WorldSpaceRepresentation in first person.
Third Person Mesh
ThirdPersonMesh
SkeletalMeshComponent ref Third-person body mesh component found by FindThirdPersonMesh.
First Person Mesh
FirstPersonMesh
SkeletalMeshComponent ref Lead first-person mesh component; runs ABP_FirstPerson_UEFN and carries the VB Camera the camera attaches to.
Generated First Person Meshes
GeneratedFirstPersonMeshes
Array of SkeletalMeshComponent ref All first-person mesh components created by BuildFirstPersonMeshes (lead and followers).
First Person Logic Mesh
FirstPersonLogicMesh
SkeletalMeshComponent ref UEFN first-person mesh on the pawn that supplies the overlay pose to retarget from; set by ConnectLogicMesh.

Functions

Function Inputs Outputs Description
BuildFirstPersonMeshes     Creates the first-person meshes from the mesh lists, once: finds the third-person mesh, builds the lead and followers for the mode, then validates the setup and initializes the primitives.
ConnectLogicMesh LogicMesh (SkeletalMeshComponent ref)   Stores the UEFN logic mesh and keeps its pose ticking: always when a retargeter is set, only when rendered otherwise.
CreateFirstPersonCopy Source (PrimitiveComponent ref) Copy (PrimitiveComponent ref) Equipment (non-pawn owners): add a first-person copy of an untagged static or skeletal mesh component (same mesh, anim class and materials) so actors need no hand-made _FP components or rendering tags. Returns None for other primitive types.
CreateFirstPersonMesh Mesh (SkeletalMesh ref), bRunsFirstPersonPipeline (Boolean), bFirstPersonPrimitive (Boolean), LeaderMesh (SkeletalMeshComponent ref) NewMesh (SkeletalMeshComponent ref) Creates a first-person skeletal mesh attached to the third-person mesh: owner only, no shadow, materials copied. The lead runs the first-person pipeline, followers copy its pose.
FindThirdPersonMesh   Mesh (SkeletalMeshComponent ref) Finds the body skeletal mesh component by ThirdPersonMeshName, else the first one that is not a generated first-person mesh.
GetRetargetSetup   Retargeter (IKRetargeter ref), LogicMesh (SkeletalMeshComponent ref) Returns FirstPersonRetargeter and FirstPersonLogicMesh for the first-person ABP.
GetVisualMeshes   ThirdPerson (SkeletalMeshComponent ref), FirstPerson (SkeletalMeshComponent ref) Returns the third-person and the lead first-person mesh.
InitializePrimitives     Fills the first-person and third-person primitive lists from tagged components, generated copies (equipment on non-pawn owners) and the generated first-person meshes.
IsGeneratedFirstPersonMesh (pure) Component (PrimitiveComponent ref) bIsGenerated (Boolean) True when Component is one of the first-person meshes this component generated (GeneratedFirstPersonMeshes). InitializePrimitives uses it so generated meshes are never copied again for first person.
OnCameraPerspectiveChanged NewCameraPerspective (E_CameraPerspective)   Camera system callback: in first person the first-person primitives show to the owner and the third-person ones turn WorldSpaceRepresentation; in third person it is the reverse.
SetupFirstPersonCopy Source (PrimitiveComponent ref), Copy (PrimitiveComponent ref)   Turn Copy into the first-person copy of Source: attached to Source, same materials, visible to the owner only (hidden until first person) and a FirstPerson primitive.
UsesFirstPersonScale   bUsesScale (Boolean) True only in FirstPersonOverlaySplit, the one mode that stacks the first-person scale camera rig.
ValidateSetup     Prints orange on-screen warnings for the local pawn when the setup is incomplete: no body or first-person mesh, no VB Camera or head bone, or a missing retargeter.

ABP_FirstPerson_UEFN

/GASPALS/Systems/FirstPersonSystem/ABP_FirstPerson_UEFN · parent AnimInstance · implements ALI_OverlayFirstPerson_C

Settings

FirstPerson > AimOffset

Variable Type Default Description
First Person Full Body View
FirstPersonFullBodyView
Float 1 How weapon overlays follow the look pitch in first person. 1 (default) = the arms rotate rigidly with the camera around the head, so the weapon stays on the crosshair and the camera stays at eye height; use with the separate first-person arms and body meshes. 0 = the old behavior: the spine bends with the pitch and the camera rides the head. Drives CR_FirstPerson_AimOffset FullBodyView.

FirstPerson > Retarget

Variable Type Default Description
Retarget Overlay
bRetargetOverlay
Boolean false True when a retargeter and logic mesh are set: the overlay pose is retargeted from the UEFN logic mesh (non-UEFN skeletons).
Logic Only
bLogicOnly
Boolean false True when this mesh is invisible (owner only see and owner no see): it only supplies the pose and skips the procedural layer.
First Person Logic Mesh
FirstPersonLogicMesh
SkeletalMeshComponent ref UEFN first-person mesh that supplies the overlay pose to retarget from; copied from AC_FirstPersonRendering.
First Person Retargeter
FirstPersonRetargeter
IKRetargeter ref IK Retargeter from the UEFN mannequin to this skeleton; copied from AC_FirstPersonRendering. None on UEFN skeletons.

FirstPerson > Setup

Variable Type Default Description
Use Thread Safe Update Animation
UseThreadSafeUpdateAnimation
Boolean true On: Update_Values runs in the thread-safe update. Off: it runs on the game thread in the event graph.
Runtime state (12 variables)
Variable Type Default Description
Parent Pawn
ParentPawn
Pawn ref Pawn that owns this first-person mesh; found at initialization (retries next tick until valid).
Parent Skeletal Mesh
ParentSkeletalMesh
SkeletalMeshComponent ref Third-person body skeletal mesh component of the parent pawn.
Parent Anim Instance
ParentAnimInstance
AnimInstance ref Anim instance of the parent pawn mesh; its Enable_HandIK curves feed the hand IK in TrueFirstPerson.
Equipment Component
EquipmentComponent
AC_EquipmentSystem ref AC_EquipmentSystem of the parent pawn.
Character Properties
CharacterProperties
S_CharacterPropertiesForAnimation Animation properties of the parent pawn (input state, aim request), refreshed every update.
Disable Overlay
bDisableOverlay
Boolean false True when no first-person overlay pose is blended in and the main mesh pose is used; set by Update_Values.
Curve Enable CR FP Stable Head
Curve_Enable_CR_FP_Stable_Head
Float 0 Value of curve enable_cr_fp_stable_head: head stabilisation weight for CR_FirstPerson_Camera.
Curve Enable CR FP Stable Arms
Curve_Enable_CR_FP_Stable_Arms
Float 0 Value of curve enable_cr_fp_stable_arms: arm stabilisation weight.
Curve Enable CR FP ADS
Curve_Enable_CR_FP_ADS
Float 0 Value of curve enable_cr_fp_ads: ADS rig weight set by the overlay animation.
Curve Enable Hand IK L
Curve_Enable_HandIK_L
Float 0 Value of curve Enable_HandIK_L: left hand IK weight from the overlay animation.
Curve Enable Hand IK R
Curve_Enable_HandIK_R
Float 0 Value of curve Enable_HandIK_R: right hand IK weight from the overlay animation.
Controller Pitch
ControllerPitch
Float 0 Control pitch in degrees, wrapped to -180..180; the base for the aim offset and head pitch values.

Functions

Function Inputs Outputs Description
Update_FirstPersonMode     Game thread: copies the AC_FirstPersonRendering mode settings, sets bTrueFirstPerson and bFirstPersonRunADS and computes the ADS and hand IK weights.
Update_PropertiesFromCharacter     Game thread: reads the pawn animation properties and the retarget setup (retargeter, logic mesh, bRetargetOverlay, bLogicOnly).
Update_Values     Thread-safe: sets bDisableOverlay, the enable_cr_fp_* and hand IK curve values, ControllerPitch and the aim offset and head pitch inputs.

CR_FirstPerson_Camera

/GASPALS/Systems/FirstPersonSystem/CR_FirstPerson_Camera · parent ControlRig

Settings

Variable Type Default Description
Stabilize Weight
StabilizeWeight
Float 1  
Head Pitch
HeadPitch
Float 0  
Eye Offset
EyeOffset
Vector (0, 0, 0)  

CR_FirstPerson_BodyCamera

/GASPALS/Systems/FirstPersonSystem/CR_FirstPerson_BodyCamera · parent ControlRig

Settings

Variable Type Default Description
Vertical Smoothing
VerticalSmoothing
Float 12  

CR_FirstPerson_ADS

/GASPALS/Systems/FirstPersonSystem/CR_FirstPerson_ADS · parent ControlRig

Settings

Config

Variable Type Default Description
Is Left Handed
bIsLeftHanded
Boolean false  
ADS Speed Enter
ADS_Speed_Enter
Float 15  
ADS Speed Exit
ADS_Speed_Exit
Float 5  

Default

Variable Type Default Description
Eye Offset
EyeOffset
Vector (0, 0, 0)  

Variables

Variable Type Default Description
Is ADS
bIsADS
Boolean false  
ADS Weight
ADS_Weight
Float 0  

CR_FirstPerson_AimOffset

/GASPALS/Systems/FirstPersonSystem/CR_FirstPerson_AimOffset · parent ControlRig

Settings

Default

Variable Type Default Description
Full Body View
FullBodyView
Float 0  
Arm Pitch
ArmPitch
Float 0  
Spine Pitch
SpinePitch
Float 0  
Head Before Lean
HeadBeforeLean
Vector (0, 0, 0)  
Arm Pitch Down Limit
ArmPitchDownLimit
Float 45  
Arm Pitch Up Limit
ArmPitchUpLimit
Float 90  
Camera Follow Lean
CameraFollowLean
Float 0.75  
Eye Offset
EyeOffset
Vector (0, 0, 0)  

Variables

Variable Type Default Description
Controller Pitch
ControllerPitch
Float 0  

EUB_SplitFirstPersonMesh

/GASPALS/Systems/FirstPersonSystem/Tools/EUB_SplitFirstPersonMesh · parent EditorUtilityObject

Settings

Variable Type Default Description
Source Mesh
SourceMesh
SkeletalMesh ref m_med_nrw_top_hoodie_nrm_High Skeletal mesh to split into an arms mesh and a body mesh.
Arms Target
ArmsTarget
SkeletalMesh ref m_med_nrw_top_hoodie_nrm_High_FP_Arms Skeletal mesh asset that receives the arms only. Leave empty to skip it.
Body Target
BodyTarget
SkeletalMesh ref m_med_nrw_top_hoodie_nrm_High_FP_NoArms Skeletal mesh asset that receives the body without arms and head. Leave empty to skip it.
Arm Root Bones
ArmRootBones
Array of Name clavicle_l, clavicle_r Root bones of the arm hierarchies (for example the clavicles); these bones and all their children count as arm.
Head Root Bones
HeadRootBones
Array of Name neck_01 Root bones of the head hierarchy (for example neck_01); these bones and all their children count as head and are removed from the body mesh.
Runtime state (8 variables)
Variable Type Default Description
Src Mesh
SrcMesh
DynamicMesh ref Dynamic mesh copy of SourceMesh used for all queries.
Work Mesh
WorkMesh
DynamicMesh ref Dynamic mesh copy that WriteSplit edits before writing it to a target.
Arm Bones
ArmBones
Array of Integer Bone indices of the arm root bones and all their children.
Head Bones
HeadBones
Array of Integer Bone indices of the head root bones and all their children.
Vertex Class
VertexClass
Array of Integer Per vertex class from its largest bone weight: 0 body, 1 arm, 2 head.
Arms Delete
ArmsDelete
Array of Integer Triangle indices removed to produce the arms mesh.
Body Delete
BodyDelete
Array of Integer Triangle indices removed to produce the body mesh.
Extra LODs
ExtraLODs
Array of Integer LOD indices above 0 removed from a target after writing, so it keeps LOD 0 only.

Functions

Function Inputs Outputs Description
WriteSplit Target (SkeletalMesh ref), DeleteTriangles (Array of Integer)   Copies SrcMesh, deletes the given triangles and writes the result into Target, then removes its extra LODs. Does nothing when Target is empty.