Equipment Manager

EquipmentManager is the runtime system that equips wearable content on a character and maps equipment rigs to the active character rig.
In this context, equipment can be anything the character wears:
hair
face attachments
helmets and armor
clothing
shoes and gloves
accessories
Core Idea
The manager is designed to work across different model sources. You can often equip an item made for one character onto another character, even when bone naming conventions are different.
Smart Bone Matching Algorithm
In SmartMapping mode, matching runs in ordered passes per equipment bone:
exact bone name lookup in
playerBoneTransformshumanoid avatar name lookup (
HumanBodyBonestransform names)runtime cross-convention matching:
case-insensitive match
normalized name + side-aware (
Left/Right) matchingsynonym matching (for common DAZ/CC3/Mixamo/UE naming differences)
constrained Levenshtein fuzzy matching
mismatch fallback strategy (
BoneMismatchHandling)
Important behavior:
Mapping preserves bone index parity with the equipment bindposes.
If a bone cannot be matched, a fallback bone is used (Humanoid hips, then
playerRootBone, then manager transform).
Bone Mismatch Handling
Per equipment entry, you can choose:
Ignore(maps unmatched bones to fallback)MapToParentMapToClosestAncestorAutoMapCreateFakeBone(only when Animation Rigging is present)
Custom Bone Mapping
Use CustomMapped when you want explicit control.
Mapping order in this mode:
custom mapping override (
equipmentBoneName -> playerBoneName)name match fallback
runtime cross-convention matching fallback
mismatch strategy fallback
Notes:
Setting a target to empty/
None/(None)/null/-marks it as intentionally unmapped.In the inspector drawer,
Auto-Populate Mappingscan generate an initial mapping set.
ParentToBone Mode
ParentToBone is a simple attach mode intended mainly for Hair:
attaches the equipment root to
Headwhen Humanoidfalls back to
playerRootBone, then manager transformapplies per-item local position/rotation/scale offsets
Registering Equipment
Equipment is considered registered when it exists in EquipmentManager.equipmentPrefabs as an EquipmentPrefab entry.
Each entry contains:
slotprefabuniqueID(used by save/restore ID workflows)boneMappingModeboneMismatchHandlingoptional
customBoneMappingsoptional thumbnail fields
Registration workflows:
Setup Wizard: adds entries from dropped prefabs and sets defaults.
Manual: add entries directly in the
EquipmentManagerinspector.
Recommended:
keep
uniqueIDstable after release (changing IDs can break saved equipment state restore).
How Slots Work
Available slots:
HeadChestArmsLegsFeetHandsAccessoriesHairFace
At runtime, EquipmentManager tracks equipped items per slot using a list, so multiple items in one slot are supported.
Slot Auto-Recognition
Slot recognition is mostly automatic during authoring:
CharacterCreatorSetupWizardauto-detects slot by prefab name keyword scoring.EquipmentPrefabDraweralso auto-detects slot when prefab reference changes.
If no keyword match is found, slot is left for manual assignment. Always verify slot assignment in the inspector for final content.
Runtime API (Common)
Use:
EquipItem(prefab, slot)ToggleEquipItem(prefab, slot)DetachItem(equippedObject, slot)DetachAllItems(slot)GetEquippedItems(slot)GetEquippedEquipmentIDs()/SetEquippedEquipmentIDs(ids)
Setup Checklist
Assign
playerAnimator.Populate
playerBoneTransforms(use editorAuto-Populate Boneswhen possible).Ensure each equipment prefab is registered in
equipmentPrefabs.Use
SmartMappingfirst, then switch toCustomMappedonly where needed.Verify final slot assignments and unique IDs.
Related Files
Assets/Arawn/CharacterCreator/Runtime/EquipmentManager.csAssets/Arawn/CharacterCreator/Editor/EquipmentManagerEditor.csAssets/Arawn/CharacterCreator/Editor/EquipmentPrefabDrawer.csAssets/Arawn/CharacterCreator/Editor/CharacterCreatorSetupWizard.cs
Last updated