How to Add a Non‑MetaHuman Player Skin

In this guide you will add a new non‑MetaHuman player skin (UE4/UE5-style character) fully integrated with the wardrobe, save system, and runtime character customization. This guide does not cover detailed Mutable setup; that will be described in a separate how‑to.


Prerequisites

Before you start, make sure that:

  • Your character meshes are imported into the project:
    • Body skeletal mesh (UE4/UE5 skeleton or compatible custom skeleton).
    • Optional head skeletal mesh if you want a separate head actor.
  • The project’s character customization system is configured:
    • BP_CharacterSkinComponent is present on the player character.
    • DA_CharacterSkinsContainer exists and is referenced by the wardrobe UI.
  • The CharacterAssistant Editor Utility Widget is available and working:
    • You can open it from the editor (for example, via the Tools or Window menu, depending on your setup).

Step 1 – Prepare Meshes and Icon

  1. Import or verify skeletal meshes
    • Ensure the body skeletal mesh is correctly skinned to the UE4/UE5 skeleton (or to a skeleton you intend to retarget to the project skeleton).
    • If you want a separate head, ensure the head skeletal mesh is imported and compatible with the body in terms of proportions and origin.
  2. Create or select an icon texture
    • Prepare a square Texture2D to be used as the wardrobe icon for the new skin.
    • If the texture uses transparency (alpha), make sure the alpha channel is correctly authored (for example, character silhouette on a transparent background).
  3. Select assets in the Content Browser
    • In the Content Browser, select:
      • The body skeletal mesh.
      • The head skeletal mesh (if needed).
      • The icon texture.

You will assign these selections in CharacterAssistant via the “Use Selected Asset” picker buttons.


Step 2 – Open CharacterAssistant and Select Non‑MetaHuman Mode

  1. Open CharacterAssistant
    • Open the CharacterAssistant Editor Utility Widget from the editor menu.
    • Dock it where convenient for repeated use.
  2. Switch to non‑MetaHuman mode
    • Turn off the Metahumans switch to enter non‑MetaHuman mode.
    • Confirm that non‑MetaHuman-specific fields are visible: Generated for AI, UseMutablePlugin, HeadActor, Skeleton, Head, Body.
  3. Set Generated for AI
    • For a player skin, disable Generated for AI so the skin is added to the player skin container (DA_CharacterSkinsContainer), not the AI container.
  4. Choose skeleton type
    • In the Skeleton dropdown, select the appropriate skeleton type:
      • UE4 if your meshes are bound to the UE4 mannequin skeleton.
      • UE5 if your meshes are bound to the UE5 mannequin skeleton.
      • MetaHuman only if you explicitly need to retarget to the MetaHuman skeleton (rare for non‑MetaHuman skins).

This parameter controls how CharacterAssistant will replace the skeleton on your meshes so they use the project’s standard sockets and animation setup.


Step 3 – Choose Single Mesh vs Separate Head

  1. Decide on the head setup
    • Use a single-mesh skin if your character uses one skeletal mesh that contains both body and head.
    • Use a separate head skin if you want:
      • To reuse head assets across multiple bodies, or
      • To drive face animations through a dedicated BP_FaceComponent or BP_Face_Mutable actor.
  2. Configure HeadActor
    • For a single‑mesh skin:
      • Set HeadActor = false.
      • You will assign only the body mesh (which includes both body and head).
    • For a separate head skin:
      • Set HeadActor = true.
      • You will assign both Head and Body meshes, and CharacterAssistant will create a head actor asset.
  3. Assign body and head meshes
    • With HeadActor = false (single mesh):
      • Select your combined body+head mesh in the Content Browser.
      • Click the picker button next to Body to assign the selected mesh.
    • With HeadActor = true (separate head):
      • Select the head skeletal mesh in the Content Browser and use the picker next to Head.
      • Select the body skeletal mesh and use the picker next to Body.

CharacterAssistant will later retarget these meshes to the project’s character skeleton so all standard sockets are available.


Step 4 – Fill Shared Skin Metadata

  1. Name
    • Enter a descriptive Name for the skin (for example, Desert Soldier).
    • This name will be used as a basis for asset names and as the display name in UI.
  2. ShortName
    • Provide a shorter version for compact UI (for example, DesertSoldier or D-Soldier).
  3. Abbreviation
    • Enter a very short code (for example, DSOL) to be used in debug views or as part of naming conventions.
  4. Description
    • Write a brief description that explains the skin (for example, Light desert camo suit with tactical vest).
  5. Icon
    • Select the icon texture in the Content Browser.
    • Click the picker button next to the Icon field to assign it.
  6. UseSimpleTexture
    • If your icon is a simple opaque texture, keep UseSimpleTexture = true.
    • If your icon uses transparency (alpha), you can:
      • Leave UseSimpleTexture = true if the standard pipeline renders it correctly, or
      • Set UseSimpleTexture = false to use a special material that treats the alpha channel as an opacity mask.

Step 5 – Optionally Enable Mutable Support

If you want this skin to use the Mutable plugin for runtime customization, you can enable it now. Detailed Mutable asset configuration will be covered in a dedicated how‑to.

  1. Enable or skip UseMutablePlugin
    • To prepare a Mutable‑ready skin:
      • Set UseMutablePlugin = true.
      • CharacterAssistant will create a new UCustomizableObject asset by duplicating CO_Example, in addition to the standard skin assets.
    • If you do not plan to configure Mutable yet:
      • Leave UseMutablePlugin = false.
      • You can still add Mutable integration later by configuring a UCustomizableObject manually.
  2. Important note about Mutable
    • CharacterAssistant does not configure parameters inside the UCustomizableObject.
    • Full Mutable configuration (binding meshes, parameters, and materials) will be described in:
      • docs/how-to/characters/how-to-configure-mutable-skin-asset.md (planned).

Step 6 – Generate the Skin Assets

  1. Verify all fields
    • Non‑MetaHuman mode is active (Metahumans off).
    • Generated for AI is disabled (player skin).
    • HeadActor, Skeleton, Body (and Head for separate head) are correctly set.
    • Shared metadata fields (Name, ShortName, Abbreviation, Description, Icon) are filled.
    • UseMutablePlugin is set according to your needs.
  2. Click Generate
    • Press the main Generate button in CharacterAssistant.
  3. What happens on Generate
    • A BP_ItemData asset for the skin is created or updated.
    • An inventory entry corresponding to this item is created in the item data (if it did not exist yet).
    • A skin DataAsset of the appropriate class is created:
      • Single-mesh player skin → BP_PlayerSingleMeshSkin.
      • Separate-head player skin → BP_PlayerSeparatedMeshSkin.
    • If HeadActor = true, a new head actor asset (based on BP_FaceComponent / BP_Face_Mutable) is created for the head.
    • If UseMutablePlugin = true, a new UCustomizableObject is created from CO_Example (without detailed configuration).
    • The skin’s BP_ItemData is added to DA_CharacterSkinsContainer.Skins so the wardrobe can discover it.
    • The body (and head) meshes are retargeted to the selected project skeleton so they use the standard sockets.

The widget does not provide validation or error reporting, so it is important to inspect the generated assets afterward.


Step 7 – Configure Materials for Stealth and Opacity (Manual)

For non‑MetaHuman skins, material optimization and support for stealth/opacity are not configured automatically. If you want the skin to participate in opacity-based effects (for example, stealth mode), you must adjust materials manually.

  1. Open the master material used by the new skin
    • Find the master material used by the body (and head) meshes for this skin.
    • Open it in the Material Editor.
  2. Connect MF_Mannequin_OpacityMask
    • Add the function MF_Mannequin_OpacityMask to the material graph.
    • Connect its output to the material’s OpacityMask input.
  3. Set Blend Mode to Masked
    • If the OpacityMask pin is not available (for example, current blend mode is Opaque), change the material’s Blend Mode to Masked.
    • Apply and save the material.
  4. Verify the skin in-game
    • In-game, trigger an effect that uses opacity (for example, a stealth mode where the player becomes semi-transparent).
    • Confirm that the character’s body and head respect the opacity mask and fade as expected.

Repeat this process for all master materials used by the new skin.


Step 8 – Test the Skin In-Game

  1. Start a test session
    • Launch the game in PIE or Standalone mode.
  2. Open the wardrobe / customization UI
    • Go to a wardrobe station (for example, interact with BP_EquipmentPoint) or open the pre‑game wardrobe menu.
  3. Verify the skin appears
    • The new skin should appear in the list of available skins, with the Name and Icon you configured.
    • If the skin does not appear:
      • Check DA_CharacterSkinsContainer to confirm it contains a reference to your BP_ItemData.
      • Make sure Generated for AI was disabled when you generated the skin.
  4. Equip the skin
    • Select the skin and press Apply.
    • Verify that:
      • The correct body (and head) meshes are used.
      • Animations work correctly (no missing bones).
      • Weapons and equipment attach correctly to sockets.
  5. Test save/load
    • Save the game, then reload.
    • Confirm that the selected skin (and any future Mutable customization) is restored correctly.

Summary Checklist

Use this checklist to quickly verify that your non‑MetaHuman player skin is fully integrated:


  • docs/systems/character-customization-and-skins.md – runtime character customization and skins system.
  • docs/systems/character-skins/character-assistant.md – CharacterAssistant editor tool and asset generation.
  • docs/how-to/characters/how-to-add-player-skin-metahuman.md – adding a MetaHuman-based player skin.
  • docs/how-to/characters/how-to-configure-mutable-skin-asset.md – configuring a Mutable skin asset created by CharacterAssistant (planned).
  • docs/reference/data-assets-reference.md – skin-related DataAssets (when available).