agentleFS
edhahnedhahn/agent-skills/ue5-character/SKILL.md

ue5-character

Skill2 starsChanged 8 months agoMITView on GitHub

Unreal Engine 5 character design, modeling, rigging, and animation. Use when tasks involve creating or modifying character meshes, setting up Skeletal Meshes, building animation Blueprints (AnimBP), configuring IK/FK rigs, retargeting animations, importing characters from DCC tools, working with Control Rig, or managing animation assets. Covers the full pipeline from mesh import through gameplay-ready animated character.

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 13 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈13

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When importing character FBX files:

    line 38
  2. Distinctive:

    Use IK Retargeter for cross-skeleton animation sharing (UE5 preferred)

    line 128
  3. Distinctive:

    Every Skeletal Mesh needs a Physics Asset for ragdoll, hit detection, and cloth:

    line 135
  4. Distinctive:

    Add capsule/sphere bodies to major bones (pelvis, spine, limbs, head)

    line 138
  5. Very specific:

    Test with Simulate in Physics Asset editor

    line 140
  6. Distinctive:

    Create IK Rig for source skeleton (e.g., UE5 Mannequin)

    line 177
  7. Distinctive:

    Create IK Rig for target skeleton (your custom character)

    line 178
  8. Distinctive:

    Create IK Retargeter: source IK Rig -> target IK Rig

    line 179
  9. Distinctive:

    Place animation samples at grid points

    line 220
  10. Distinctive:

    Create Montage from Animation Sequence (right-click > Create Montage)

    line 269
  11. Distinctive:

    Add Notify events (hit frame, sound, VFX trigger)

    line 271
  12. Distinctive:

    Import morph targets with the FBX (enable "Import Morph Targets")

    line 286
  13. Distinctive:

    Use MetaHuman or Live Link Face for facial capture workflows

    line 289
  14. Distinctive:

    Create Cloth Asset from Section

    line 295

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

UE5 Character Design, Modeling, Rigging & Animation

Full pipeline from mesh creation through gameplay-ready animated characters in Unreal Engine 5.

Infrastructure

<!-- Configure your UE5 workstation and network paths based on your studio's setup. --><!-- Asset source files and processed exports should be organized on your file server or version control. -->

Character pipeline overview

DCC (Blender/Maya)          UE5 Editor
+------------------+        +---------------------------+
| Model + Rig      |  FBX   | Skeletal Mesh             |
| Animations       | -----> | Skeleton                  |
| Morph targets    |        | Physics Asset             |
+------------------+        | Animation Blueprint       |
                            | Control Rig               |
                            | IK Rig / IK Retargeter    |
                            +---------------------------+

Skeletal Mesh import

FBX import settings

When importing character FBX files:

SettingValueNotes
SkeletonSelect existing or create newReuse skeleton for animation sharing
Import MeshYes
Import AnimationsYes (or separate)Can split mesh and anim imports
Import Morph TargetsYesFor facial animation
Normal Import MethodImport Normals and TangentsPreserve DCC normals
Material ImportCreate new or assign existing
Convert Scene UnitYesEnsures correct scale

Via automation API

# Configure your asset bridge/automation server URL and export paths
# based on your studio's infrastructure.

POST http://<YOUR_BRIDGE_HOST>:<PORT>/ue5/import
{
  "source_path": "<YOUR_EXPORT_PATH>/characters/hero.fbx",
  "destination_path": "/Game/Characters/Hero",
  "asset_name": "SK_Hero"
}

Via Python

import unreal

# Import FBX with specific settings
task = unreal.AssetImportTask()
# Set filename to your source FBX path (local, network share, or mapped drive)
task.set_editor_property("filename", "/path/to/exports/characters/hero.fbx")
task.set_editor_property("destination_path", "/Game/Characters/Hero")
task.set_editor_property("destination_name", "SK_Hero")
task.set_editor_property("replace_existing", True)
task.set_editor_property("automated", True)
task.set_editor_property("save", True)

# FBX-specific options
options = unreal.FbxImportUI()
options.set_editor_property("import_mesh", True)
options.set_editor_property("import_animations", False)
options.set_editor_property("import_as_skeletal", True)
options.set_editor_property("skeleton", None)  # Create new, or pass existing
options.skeletal_mesh_import_data.set_editor_property("import_morph_targets", True)
options.skeletal_mesh_import_data.set_editor_property("normal_import_method",
    unreal.FBXNormalImportMethod.FBXNIM_IMPORT_NORMALS_AND_TANGENTS)
task.set_editor_property("options", options)

unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks([task])

Skeleton setup

UE5 standard skeleton hierarchy

Epic's Mannequin skeleton (UE5 default):

root
  pelvis
    spine_01
      spine_02
        spine_03
          spine_04
            spine_05
              neck_01
                neck_02
                  head
              clavicle_l
                upperarm_l
                  lowerarm_l
                    hand_l
                      (finger chains)
              clavicle_r
                (mirror of left)
    thigh_l
      calf_l
        foot_l
          ball_l
    thigh_r
      (mirror of left)

Skeleton compatibility

  • Characters sharing animations must use the same Skeleton asset or be retargeted
  • Use IK Retargeter for cross-skeleton animation sharing (UE5 preferred)
  • Aim for bone naming consistency across characters in the same project

Rigging

Physics Asset

Every Skeletal Mesh needs a Physics Asset for ragdoll, hit detection, and cloth:

  1. Right-click Skeletal Mesh > Create > Physics Asset
  2. Add capsule/sphere bodies to major bones (pelvis, spine, limbs, head)
  3. Configure constraints between bodies (angular limits, stiffness)
  4. Test with Simulate in Physics Asset editor

Control Rig (UE5 native rigging)

Control Rig replaces traditional FK/IK setups with a node-based visual rig:

  • Forward Solve: Drives bones from controls (animation playback)
  • Backward Solve: Used for authoring (interactive posing)
  • Construction Event: Initial rig setup (create controls, set hierarchy)

Key nodes:

  • Set Transform / Set Translation / Set Rotation -- drive bone transforms
  • Two Bone IK -- standard IK chain (arm, leg)
  • Full Body IK -- whole-body IK (FBIK) for natural multi-chain solving
  • Aim -- orient bone toward target
  • Spring Interpolate -- springy secondary motion

IK Rig

Define IK goals and chains for retargeting:

import unreal

# Create IK Rig asset via Python
# IK Rigs are typically created in-editor via right-click > Animation > IK Rig
# Then configured manually with:
# - Set Preview Mesh
# - Add IK Goals (ik_foot_l, ik_foot_r, ik_hand_l, ik_hand_r)
# - Define Chains (Spine, LeftArm, RightArm, LeftLeg, RightLeg, Head)
# - Set Root bone

IK Retargeter

Map animations between different skeletons:

  1. Create IK Rig for source skeleton (e.g., UE5 Mannequin)
  2. Create IK Rig for target skeleton (your custom character)
  3. Create IK Retargeter: source IK Rig -> target IK Rig
  4. Auto-map chains by name, manually adjust mismatches
  5. Preview and adjust chain mapping / pose offsets

Animation Blueprint (AnimBP)

The AnimBP is the character's animation state machine.

Core components

AnimBP
  EventGraph          -- Game logic (velocity, direction, state flags)
  AnimGraph           -- Animation evaluation
    StateMachine      -- State-based animation flow
      Idle            -- Standing still
      Walk/Run        -- Locomotion blend space
      Jump            -- Jump montage / blend
      Fall            -- Falling loop
    Slots             -- Montage playback layers
    Layered Blend     -- Upper/lower body compositing
    IK / Post-Process -- Foot IK, look-at, etc.

State machine setup

[Idle] ---(Speed > 10)---> [Locomotion]
[Locomotion] ---(Speed < 10)---> [Idle]
[Any State] ---(bIsJumping)---> [Jump]
[Jump] ---(bIsFalling)---> [Fall]
[Fall] ---(bIsOnGround)---> [Land]
[Land] ---(Finished)---> [Idle]

Blend Spaces

  • 1D Blend Space: Single axis (e.g., speed: idle -> walk -> run)
  • 2D Blend Space: Two axes (e.g., speed + direction for omnidirectional locomotion)
  • Horizontal axis: Direction (-180 to 180)
  • Vertical axis: Speed (0 to max)
  • Place animation samples at grid points

Via Python -- create and configure AnimBP

import unreal

# Create Animation Blueprint
factory = unreal.AnimBlueprintFactory()
factory.set_editor_property("target_skeleton",
    unreal.load_asset("/Game/Characters/Hero/SK_Hero_Skeleton"))

asset_tools = unreal.AssetToolsHelpers.get_asset_tools()
anim_bp = asset_tools.create_asset(
    "ABP_Hero", "/Game/Characters/Hero", None, factory
)

Animation import

Animation-only FBX import

import unreal

task = unreal.AssetImportTask()
# Set filename to your source animation FBX path
task.set_editor_property("filename", "/path/to/exports/animations/hero_run.fbx")
task.set_editor_property("destination_path", "/Game/Characters/Hero/Animations")
task.set_editor_property("destination_name", "AM_Hero_Run")
task.set_editor_property("automated", True)
task.set_editor_property("save", True)

options = unreal.FbxImportUI()
options.set_editor_property("import_mesh", False)
options.set_editor_property("import_animations", True)
options.set_editor_property("skeleton",
    unreal.load_asset("/Game/Characters/Hero/SK_Hero_Skeleton"))
options.anim_sequence_import_data.set_editor_property("import_bone_tracks", True)
options.anim_sequence_import_data.set_editor_property("import_custom_attribute", True)
task.set_editor_property("options", options)

unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks([task])

Animation Montages

Montages layer on top of state machine animations (attacks, emotes, interactions):

  • Create Montage from Animation Sequence (right-click > Create Montage)
  • Define Sections (startup, loop, recovery)
  • Add Notify events (hit frame, sound, VFX trigger)
  • Play via UAnimInstance::Montage_Play() in C++ or AnimBP

Notify events

Notify typePurpose
AnimNotifyFire-and-forget event (sound, particle)
AnimNotifyStateDuration-based (trail effect, weapon collision window)
Custom AnimNotify classComplex logic (damage application, state changes)

Morph targets / Blend Shapes

Used for facial animation and corrective shapes:

  • Import morph targets with the FBX (enable "Import Morph Targets")
  • Drive via Curve assets in animations
  • Control at runtime: SkeletalMeshComponent->SetMorphTarget("Smile", 1.0)
  • Use MetaHuman or Live Link Face for facial capture workflows

Cloth simulation

  1. Open Skeletal Mesh in editor
  2. Section Selection > select cloth geometry
  3. Create Cloth Asset from Section
  4. Paint cloth weights (fixed vs. simulated vertices)
  5. Configure: wind, gravity, stiffness, damping, collision

Character Blueprint setup

A gameplay-ready character needs:

BP_Character (inherits ACharacter)
  CapsuleComponent (root, collision)
  SkeletalMeshComponent (visual mesh + AnimBP)
  SpringArmComponent (camera boom)
  CameraComponent (follow camera)
  CharacterMovementComponent (built-in locomotion)

Key CharacterMovement settings:

  • MaxWalkSpeed: 600 (default)
  • JumpZVelocity: 420 (default)
  • AirControl: 0.2 (default, 0-1)
  • GravityScale: 1.0
  • bOrientRotationToMovement: true (character faces movement direction)

Asset conventions

/Game/Characters/{CharacterName}/
  SK_{Name}.uasset              -- Skeletal Mesh
  SK_{Name}_Skeleton.uasset     -- Skeleton
  SK_{Name}_PhysicsAsset.uasset -- Physics Asset
  ABP_{Name}.uasset             -- Animation Blueprint
  CR_{Name}.uasset              -- Control Rig
  IK_{Name}.uasset              -- IK Rig
  Animations/
    AM_{Name}_{Action}.uasset   -- Animation Montages
    AS_{Name}_{Action}.uasset   -- Animation Sequences
    BS_{Name}_{Type}.uasset     -- Blend Spaces
  Materials/
    MI_{Name}_Body.uasset       -- Material Instances
    MI_{Name}_Hair.uasset
  Textures/
    T_{Name}_BaseColor.uasset
    T_{Name}_Normal.uasset
    T_{Name}_ORM.uasset         -- Occlusion/Roughness/Metallic

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.