Character Wizard
This page documents the Character Creator Setup Wizard.
It explains:
What the wizard does.
How each step works.
What components and values it writes.
How equipment slot detection works.
How Crystal Save integration is configured.
Open Wizard
Menu path:
Tools/Character Creator/Character Creator Setup Wizard
Source:
Assets/Arawn/CharacterCreator/Editor/CharacterCreatorSetupWizard.cs
Purpose
The wizard configures a character root with Character Creator runtime components in a guided 3-step flow:
Character setup.
Equipment prefab setup.
Apply + completion.
It is intended for fast initial setup, then manual fine-tuning in Inspector.
Requirements
Use a scene instance for
Character Root(not a prefab asset).Assign a valid
Source Body Mesh(SkinnedMeshRenderer).Character should have an
Animator(Humanoid recommended for body-part auto bone setup).
Wizard Steps
Step 1: Character Setup
Fields:
Character RootSource Body MeshOptional integration toggle:
Add RememberCharacterPreset
Auto-detection behavior:
Finds
Animatoron root or children.If Humanoid, detects
Hipsbone.If
Source Body Meshis empty, auto-picks theSkinnedMeshRendererwith the highest blendshape count.
Validation:
Warns if
Character Rootis a prefab asset instead of a scene object.Warns when animator is not Humanoid (body part auto-assignment will be limited).
Step 2: Equipment Setup
You can drag prefab assets into the drop area.
For each added equipment prefab, the wizard later creates one EquipmentPrefab entry and sets:
prefabreferenceuniqueID(new GUID)slot(auto-detected by keyword scoring)boneMismatchHandling = IgnoreboneMappingMode:ParentToBoneforHairslotSmartMappingfor all other slots
ParentToBone defaults:
attachLocalPosition = (0,0,0)attachLocalEuler = (0,0,0)attachLocalScale = (1,1,1)
Step 3: Complete
After apply, the page shows completion info and allows selecting the configured character in hierarchy.
What Apply Setup Actually Does
When you click Apply Setup, the wizard:
Ensures
EquipmentManageron character root.Writes
playerAnimator.Builds
playerBoneTransformsfrom detected hips subtree.Appends equipment entries from Step 2.
Ensures
BlendshapeSynchronizerand setssourceRenderer = Source Body Mesh.Ensures
BodyPartLengthAdjuster(by reflection) and auto-assigns part chains for Humanoid avatars:Arms
Legs
Neck
Torso
Ensures
CharacterPresetManagerand sets:equipmentManagerbodyRendererblendshapeSynchronizerbodyPartAdjuster(if present)
Calls:
AutoConfigureExplicitColorSlots(resetExisting: true)AutoConfigureMaterialTracking(resetExisting: true)
Optional Crystal Save Integration
If Add RememberCharacterPreset is enabled, the wizard now uses RememberComposite flow:
Ensures
RememberCompositeonCharacter Root.Adds
RememberCharacterPresettype intoRememberComposite._rememberTypes.Calls
RememberComposite.RefreshComponents()so the inner remember component is created/managed correctly.If found, sets
RememberCharacterPreset.savedPresetNameto:"Last Session Appearance"(only when empty).
This avoids directly attaching remember modules incorrectly and aligns with Crystal Save composite/ID behavior.
Equipment Slot Auto-Detection
The wizard uses keyword matching on prefab name (lowercase + normalized separators) and scores each EquipmentSlot.
Supported keyword groups include:
HairFaceHeadChestArmsLegsFeetHandsAccessories
If no keyword match is found, slot detection returns none (-1) and you can assign slot manually later in EquipmentManager.
Notes
Existing components are reused (not duplicated).
Undo group is used for the operation.
The wizard is for setup acceleration; final production tuning should still be reviewed in Inspector.
Troubleshooting
Next button disabled on Step 1
Missing Character Root, Source Body Mesh, or Animator
Assign all required fields and use a scene instance
Body part chains not auto-filled well
Animator is not Humanoid
Switch avatar to Humanoid or assign body-part bones manually
Crystal Save option not shown
RememberComposite or RememberCharacterPreset type missing
Ensure Crystal Save remember modules are installed and compiled
Equipment slots feel wrong
Name-based heuristic mismatch
Adjust slot manually in EquipmentManager after setup
Last updated