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 TagFirstPersonRenderingTag | 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 TagThirdPersonRenderingTag | 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 MeshesFirstPersonArmsMeshes | 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 MeshesFirstPersonBodyMeshes | 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 MeshesFirstPersonFullMeshes | 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 NameThirdPersonMeshName | 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 RetargeterFirstPersonRetargeter | 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 ModeFirstPersonMode | 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 PresentationTrueFirstPersonWeaponPresentation | 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 LimitFirstPersonArmPitchDownLimit | 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 LimitFirstPersonArmPitchUpLimit | Float | 90 | Overlay modes: degrees of upward view pitch the arms follow before the spine leans back for the rest. |
First Person Camera Follow LeanFirstPersonCameraFollowLean | 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 OffsetFirstPersonEyeOffset | 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 PersonPrimitives_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 PersonPrimitives_ThirdPerson | Array of PrimitiveComponent ref | Primitives of the third-person body or equipment; they become WorldSpaceRepresentation in first person. | |
Third Person MeshThirdPersonMesh | SkeletalMeshComponent ref | Third-person body mesh component found by FindThirdPersonMesh. | |
First Person MeshFirstPersonMesh | SkeletalMeshComponent ref | Lead first-person mesh component; runs ABP_FirstPerson_UEFN and carries the VB Camera the camera attaches to. | |
Generated First Person MeshesGeneratedFirstPersonMeshes | Array of SkeletalMeshComponent ref | All first-person mesh components created by BuildFirstPersonMeshes (lead and followers). | |
First Person Logic MeshFirstPersonLogicMesh | 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 ViewFirstPersonFullBodyView | 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 OverlaybRetargetOverlay | 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 OnlybLogicOnly | 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 MeshFirstPersonLogicMesh | SkeletalMeshComponent ref | UEFN first-person mesh that supplies the overlay pose to retarget from; copied from AC_FirstPersonRendering. | |
First Person RetargeterFirstPersonRetargeter | 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 AnimationUseThreadSafeUpdateAnimation | 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 PawnParentPawn | Pawn ref | Pawn that owns this first-person mesh; found at initialization (retries next tick until valid). | |
Parent Skeletal MeshParentSkeletalMesh | SkeletalMeshComponent ref | Third-person body skeletal mesh component of the parent pawn. | |
Parent Anim InstanceParentAnimInstance | AnimInstance ref | Anim instance of the parent pawn mesh; its Enable_HandIK curves feed the hand IK in TrueFirstPerson. | |
Equipment ComponentEquipmentComponent | AC_EquipmentSystem ref | AC_EquipmentSystem of the parent pawn. | |
Character PropertiesCharacterProperties | S_CharacterPropertiesForAnimation | Animation properties of the parent pawn (input state, aim request), refreshed every update. | |
Disable OverlaybDisableOverlay | 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 HeadCurve_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 ArmsCurve_Enable_CR_FP_Stable_Arms | Float | 0 | Value of curve enable_cr_fp_stable_arms: arm stabilisation weight. |
Curve Enable CR FP ADSCurve_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 LCurve_Enable_HandIK_L | Float | 0 | Value of curve Enable_HandIK_L: left hand IK weight from the overlay animation. |
Curve Enable Hand IK RCurve_Enable_HandIK_R | Float | 0 | Value of curve Enable_HandIK_R: right hand IK weight from the overlay animation. |
Controller PitchControllerPitch | 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 WeightStabilizeWeight | Float | 1 | |
Head PitchHeadPitch | Float | 0 | |
Eye OffsetEyeOffset | Vector | (0, 0, 0) |
CR_FirstPerson_BodyCamera¶
/GASPALS/Systems/FirstPersonSystem/CR_FirstPerson_BodyCamera · parent ControlRig
Settings¶
| Variable | Type | Default | Description |
|---|---|---|---|
Vertical SmoothingVerticalSmoothing | Float | 12 |
CR_FirstPerson_ADS¶
/GASPALS/Systems/FirstPersonSystem/CR_FirstPerson_ADS · parent ControlRig
Settings¶
Config¶
| Variable | Type | Default | Description |
|---|---|---|---|
Is Left HandedbIsLeftHanded | Boolean | false | |
ADS Speed EnterADS_Speed_Enter | Float | 15 | |
ADS Speed ExitADS_Speed_Exit | Float | 5 |
Default¶
| Variable | Type | Default | Description |
|---|---|---|---|
Eye OffsetEyeOffset | Vector | (0, 0, 0) |
Variables¶
| Variable | Type | Default | Description |
|---|---|---|---|
Is ADSbIsADS | Boolean | false | |
ADS WeightADS_Weight | Float | 0 |
CR_FirstPerson_AimOffset¶
/GASPALS/Systems/FirstPersonSystem/CR_FirstPerson_AimOffset · parent ControlRig
Settings¶
Default¶
| Variable | Type | Default | Description |
|---|---|---|---|
Full Body ViewFullBodyView | Float | 0 | |
Arm PitchArmPitch | Float | 0 | |
Spine PitchSpinePitch | Float | 0 | |
Head Before LeanHeadBeforeLean | Vector | (0, 0, 0) | |
Arm Pitch Down LimitArmPitchDownLimit | Float | 45 | |
Arm Pitch Up LimitArmPitchUpLimit | Float | 90 | |
Camera Follow LeanCameraFollowLean | Float | 0.75 | |
Eye OffsetEyeOffset | Vector | (0, 0, 0) |
Variables¶
| Variable | Type | Default | Description |
|---|---|---|---|
Controller PitchControllerPitch | Float | 0 |
EUB_SplitFirstPersonMesh¶
/GASPALS/Systems/FirstPersonSystem/Tools/EUB_SplitFirstPersonMesh · parent EditorUtilityObject
Settings¶
| Variable | Type | Default | Description |
|---|---|---|---|
Source MeshSourceMesh | SkeletalMesh ref | m_med_nrw_top_hoodie_nrm_High | Skeletal mesh to split into an arms mesh and a body mesh. |
Arms TargetArmsTarget | 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 TargetBodyTarget | 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 BonesArmRootBones | 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 BonesHeadRootBones | 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 MeshSrcMesh | DynamicMesh ref | Dynamic mesh copy of SourceMesh used for all queries. | |
Work MeshWorkMesh | DynamicMesh ref | Dynamic mesh copy that WriteSplit edits before writing it to a target. | |
Arm BonesArmBones | Array of Integer | Bone indices of the arm root bones and all their children. | |
Head BonesHeadBones | Array of Integer | Bone indices of the head root bones and all their children. | |
Vertex ClassVertexClass | Array of Integer | Per vertex class from its largest bone weight: 0 body, 1 arm, 2 head. | |
Arms DeleteArmsDelete | Array of Integer | Triangle indices removed to produce the arms mesh. | |
Body DeleteBodyDelete | Array of Integer | Triangle indices removed to produce the body mesh. | |
Extra LODsExtraLODs | 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. |