Adding Hair & Outfits (Modular Avatar)
For the basic outfit setup with Modular Avatar (MA) — MA Merge Armature, etc. — refer to the official tutorial.
This page explains the steps to match the 3+1 format, assuming the outfit is already working with MA.
Bundling multiple outfits into one avatar is not recommended. Packing multiple outfits into a single avatar via menu toggles means all outfit textures and meshes are always included, which can push the avatar's download size into the hundreds of MB. Consider uploading each outfit as a separate avatar.
Delete SA_COS_A first.
Before adding a new outfit, delete the SA_COS_A object from the Hierarchy. Leaving SA_COS_A in place while adding another outfit will cause the COS_A toggle to persist in the closet menu, resulting in unintended parameter and visual states.
Adding to the Closet Menu
The 3+1 closet uses a submenu called 3+1 OutfitMenu.asset, into which each outfit inserts toggles. COS_A inserts SA_COS_A OutfitMenu.asset (three toggles: CostumeHead / CostumeBody / CostumeSkirt) into this submenu via MA Menu Installer.
1. Prepare Animation Clips
Outfit ON/OFF is controlled via animation clips. Using COS_A's animation clips as a reference, create clips that toggle GameObject.IsActive on the outfit object.
2. Set Up the Animator Controller
Add the clips to a layer in the Animator Controller and build a state machine that switches ON/OFF using a Bool parameter. Copying and modifying COS_A's setup is the quickest approach.
3. Add MA Menu Item and MA Menu Installer
On the outfit object, use Add Component to add both MA Menu Item and MA Menu Installer.
MA Menu Item settings:
| Field | Value |
|---|---|
| Name | Label name |
| Icon | Any icon image |
| Type | Toggle |
| Parameter | Parameter name in the Animator Controller |
| Value | 1 |
MA Menu Installer settings:
| Field | Value |
|---|---|
| Install Target Menu | 3+1 OutfitMenu.asset |
SA_COS_A OutfitMenu.asset when setting the icon and parameter name makes it easy to keep things consistent.Controlling Outfit-Specific Changes
When an outfit requires changes to shape keys or PhysBone configuration, use MA components for dynamic control rather than animation.
MA Shape Changer
Use this when the outfit needs to modify shape keys on the base mesh when worn. Add Add Component → MA Shape Changer to the outfit object, then set the target shape keys and values. Changes are applied and released automatically in sync with the outfit's ON/OFF state.
COS_A controls the following shape keys via MA Shape Changer. When the outfit is turned OFF, these values return to 0 — this is expected behavior of MA Shape Changer.
| Shape Key | Outfit ON | Outfit OFF |
|---|---|---|
adj_bust_cloth1 | 100 | 0 |
adj_bust_inner_omitting | 100 | 0 |
adj_shrink_hip(s)1 | 100 | 0 |
opt_hekochiku | 10 | 0 |
MA Object Toggle
Use this when specific objects (such as PhysBone colliders) need to be toggled ON/OFF when the outfit is worn. Add Add Component → MA Object Toggle to the outfit object, then set the target objects and desired states.
Matching MA Parameters
To use the same parameter configuration as COS_A, add MA Parameters to the outfit object and configure it as follows.
| Parameter Name | Type | Default Value | Saved |
|---|---|---|---|
CostumeHead | Bool | 0 | OFF |
CostumeBody | Bool | 0 | OFF |
CostumeSkirt | Bool | 0 | OFF |
Matching MA Merge Animator
If the outfit has its own animator, add MA Merge Animator and use the same settings as COS_A.
| Setting | Value |
|---|---|
| Animator to Merge | Outfit Animator Controller |
| Layer Type | FX |
| Delete Attached Animator | ON |
| Path Mode | Relative |
| Match Avatar Write Defaults | ON |
Matching lilToon Settings
The Brightness (Brightness parameter) and Monochrome Lighting (Lighting(mono) parameter) in the preference menu work by having the COS_A animator directly control each material's _LightMinLimit / _MonochromeLighting.
Materials on newly added meshes are outside the scope of this animator, so aligning the default values with the base avatar ensures visual consistency when the radial is not in use.
For details, see Shader Settings.
| Property | Min (Radial 0) | Max (Radial 1) |
|---|---|---|
_LightMinLimit | 0.05 | 1.0 |
_MonochromeLighting | 0.5 | 1.0 |