跳转至

title: Cazalis FX Controller 原版备份 description: Cazalis zigai 原版 FX.controller 完整参数列表、Layer 结构和改造规则 created: 2026-05-09 updated: 2026-05-09 type: reference tags: [vrchat, cazalis, animator, fx-controller, backup]


Cazalis_FX.controller 原版完整备份

创建日期:2026-05-09 模型:Cazalis zigai 路径:Assets/Cazalis/Animation/Animator/Cazalis_FX.controller 用途:此文件为原版备份,不要直接修改!需要改模时先复制一份到新文件


参数列表(40个)

FX Controller 中的参数类型可能与 VRCExpressionParameters 不同(Bool ↔ Float 自动转换) 一份到新文件**


参数列表(40个)

FX Controller 中的参数类型可能与 VRCExpressionParameters 不同(Bool ↔ Float 自动转换)### FX Controller 参数

FX Controller 参数```

IsLocal | Bool | default=0 Viseme | Int | default=0 Voice | Float | default=0 GestureLeft | Int | default=0 GestureRight | Int | default=0 GestureLeftWeight | Float | default=0 GestureRightWeight| Float | default=0 Seated | Bool | default=0 AFK | Bool | default=0 InStation | Bool | default=0 VRCEmote | Int | default=0 MMD | Bool | default=0 DisableHandsInput | Bool | default=0 GestureExpression_OFF | Bool | default=0 Weight | Float | default=1 Hand_Animation_ON | Bool | default=0 Breasts_Size | Float | default=0 Futomomo_Phys_ON | Float | default=0 Futomomo_Size | Float | default=0 Face_Pattern | Int | default=0 Butterfly_ON | Bool | default=0 Bra_ON | Float | default=0 Brooch_ON | Float | default=0 Dress_ON | Bool | default=0 DressSkirt_ON | Float | default=1 Pumps_ON | Float | default=1 Socks_ON | Float | default=1 HairAccessories_ON| Float | default=0 Ahoge_OFF | Float | default=0 BackHair_Long_ON | Float | default=0 Bangs_Alternate_ON| Float | default=0 Bangs_Long_ON | Float | default=0 Bangs_Left_ON | Float | default=0 HalfUp_OFF | Float | default=0 SideHair_Long_ON | Float | default=0 Face_Loli_ON | Bool | default=0 Face_Adult_ON | Bool | default=0 Face_Deformer_ON | Bool | default=0 Facial_Another_ON | Bool | default=0 BackLight_O | default=0 Face_Deformer_ON | Bool | default=0 Facial_Another_ON | Bool | default=0 BackLight_O | default=0 Face_Deformer_ON | Bool | default=0 Facial_Another_ON | Bool | default=0 BackLight_ON | Float | default=0 Shorts_ON | Float | default=1

 | Bool  | default=0
BackLight_ON      | Float | default=0
Shorts_ON         | Float | default=1
```### AnimatorCondition Mode 对照

| 值 | 含义 |
|----|------|
| 1  | If(参数 == threshold) |
| 2  | IfNot(参数 != threshold) |
| 3  | Greater |
| 4  | Less |
| 6  | Equals(Int) |
| 7  | NotEqual(Int) |

---

## Layer 结构详解

### Layer 0 | Right Hand
- weight=1, blend=Override, defaultState=Idle
- 19个 AnyState 过渡 + 15个姿态状态
- 全部 wd=True, speed=1
- 子状态:Peace_1/2, Point_1/2, Gun_1/2, Open_1/2, Idle, Fist_1/2, Thumbs up_1/2, RockNRoll_1/2
- 对应 Clip: Wink1, Jitome1, Surprise, Dummy, Smile3, Doya, Donbiki, Wink2, Jitome2, Pero, Dummy, Smile1, Kirakira, Utsuro

### Layer 1 | Left Hand
- 结构同 Layer 0,GestureLeft 代替 GestureRight

### Layer 2 | Blink_Control
- defaultState=Blink_ON,状态:Blink_ON(Cazalis_Blink),Blink_OFF(Dummy)

### Layer 3 | Hand_Animation_ON
- 3个状态:Hand_Animation_ON, Hand_Animation_OFF, Dummy(全部 Dummy clip)

### Layer 4 | Face_Pattern
- 9个状态(0-8号表情),AnyState 切换

### Layer 5 | LipSync_Control
- LipSync_OFF(Dummy)↔ LipSync_ON(Cazalis_Lipsync_ON)

### Layer 6 | Morph_Override
- Live → AFK / Emote Die 切换

### Layer 7 | Butterfly_ON
- 4状态循环:OFF → Appearance → ON → Disappearance → OFF

### Layer 8-12 | Butterfly 动画层
- Layer 8: Move, Layer 9: Flapping, Layer 10: Rotation
- Layer 11: **Additive**(唯一非Override层), Layer 12: AFK

---
ve, Layer 9: Flapping, Layer 10: Rotation
- Layer 11: **Additive**(唯一非Override层), Layer 12: AFK

---### Layer 13 | Dress_ON ⚠️ 核心改造目标
- weight=1, blend=Override
- **结构**:两个状态(Dress_ON + Dress_OFF)+ Transition 条件
- **默认状态**:Dress_OFF
- **Dress_ON → Dress_OFF**:`Dress_ON If(1) 0`(Toggle OFF时脱衣)
- **Dress_OFF → Dress_ON**:`Dress_ON IfNot(2) 0`(Toggle ON时穿衣)
- **Dress_ON.anim**:Cloth_Dress.m_IsActive=1, Cloth_DressRibbon.m_IsActive=1
- **Dress_OFF.anim**:Cloth_Dress.m_IsActive=0, Cloth_DressRibbon.m_IsActive=0
- ⚠️ **不要改成 BlendTree 方式**,必须用**状态+Transition**

### Layer 14 | Cloth_Option ⚠️ 核心改造目标
- weight=1, blend=Override, defaultState=Cloth_Option
- **BlendTree**:Direct,主参数=Voice,7个子项全部 dp=Weight

| # | 名称 | threshold | Inner param | 说明 |
|---|------|-----------|-------------|------|
| 0 | Bra_ON | 0.0000000 | Bra_ON | Bra_OFF(Bra_OFF.anim) ↔ Bra_ON(Bra_ON.anim) |
| 1 | Brooch_ON | 0.1666667 | Brooch_ON | |
| 2 | DressSkirt_ON | 0.3333333 | DressSkirt_ON | |
| 3 | Pumps_ON | 0.5000000 | Pumps_ON | |
| 4 | Shorts_ON | 0.6666667 | Shorts_ON | Shorts_OFF(Shorts_OFF.anim) ↔ Shorts_ON(Shorts_ON.anim) |
| 5 | Socks_ON | 0.8333333 | Socks_ON | |
| 6 | HairAccessories_ON | 1.0000000 | HairAccessories_ON | |

每个 Inner BlendTree 是 Simple1D, useAutomaticThresholds=true
Inner children 的 directBlendParameter = "Voice"

### Layer 15 | Face_Option
- 5个状态:Idle, Face_Deformer_ON, Face_Adult_ON, Face_Loli_ON, OFF

### Layer 16 | Hair_Face_Options
- Direct BlendTree, param=Voice, 7 children(Ahoge, BackHair, Bangs×3, HalfUp, SideHair)
Face_Options
- Direct BlendTree, param=Voice, 7 children(Ahoge, BackHair, Bangs×3, HalfUp, SideHair)### Layer 17 | Option
- Direct BlendTree, param=Weight, 4 children(Futomomo_Size, Futomomo_Phys, Breasts_Size, BackLight)

---
rect BlendTree, param=Weight, 4 children(Futomomo_Size, Futomomo_Phys, Breasts_Size, BackLight)

---## VRCExpressionParameters(28个参数)

路径:`Assets/Cazalis/Animation/EXMenu/Cazalis_Parameter.asset`
## VRCExpressionParameters(28个参数)

路径:`Assets/Cazalis/Animation/EXMenu/Cazalis_Parameter.asset````
VRCEmote          | Int   | saved=true  | default=0
VRCFaceBlendH     | Float | saved=true  | default=0
VRCFaceBlendV     | Float | saved=true  | default=0
Breasts_Size      | Float | saved=true  | default=0
Face_Pattern      | Int   | saved=false | default=0
Butterfly_ON      | Bool  | saved=true  | default=0
Bra_ON            | Bool  | saved=true  | default=0
Brooch_ON         | Bool  | saved=true  | default=1
Dress_ON          | Bool  | saved=true  | default=1
DressSkirt_ON     | Bool  | saved=true  | default=1
Pumps_ON          | Bool  | saved=true  | default=1
Socks_ON          | Bool  | saved=true  | default=1
HairAccessories_ON| Bool  | saved=true  | default=1
Hand_Animation_ON | Bool  | saved=true  | default=0
Futomomo_Size     | Float | saved=true  | default=0
Futomomo_Phys_ON  | Bool  | saved=true  | default=0
Ahoge_OFF         | Bool  | saved=true  | default=0
BackHair_Long_ON  | Bool  | saved=true  | default=0
Bangs_Alternate_ON| Bool  | saved=true  | default=0
Bangs_Long_ON     | Bool  | saved=true  | default=0
Bangs_Left_ON     | Bool  | saved=true  | default=0
HalfUp_OFF        | Bool  | saved=true  | default=0
SideHair_Long_ON  | Bool  | saved=true  | default=0
Face_Deformer_ON  | Bool  | saved=true  | default=0
Face_Loli_ON      | Bool  | saved=true  | default=0
Face_Adult_ON     | Bool  | saved=true  | default=0
Facial_Another_ON | Bool  | saved=true  | default=0
BackLight_ON      | Bool  | saved=true  | default=0


er_ON | Bool | saved=true | default=0 BackLight_ON | Bool | saved=true | default=0

---## 所有 AnimationClip 的完整绑定路径

路径:`Assets/Cazalis/Animation/FX/`

### 服装类(m_IsActive 控制)

| Clip | 目标对象 | 属性 | 值 |
|------|---------|------|-----|
| Bra_ON.anim | Cloth_Under_Bra | m_IsActive | 1 |
| Bra_OFF.anim | Cloth_Under_Bra | m_IsActive | 0 |
| Shorts_ON.anim | Cloth_Under_Shorts | m_IsActive | 1 |
| Shorts_OFF.anim | Cloth_Under_Shorts | m_IsActive | 0 |
| Dress_ON.anim | Cloth_Dress, Cloth_DressRibbon | m_IsActive | 1 |
| Dress_OFF.anim | Cloth_Dress, Cloth_DressRibbon | m_IsActive | 0 |
| DressSkirt_ON.anim | Cloth_DressSkirt | m_IsActive | 1 |
| DressSkirt_OFF.anim | Cloth_DressSkirt | m_IsActive | 0 |
| Pumps_ON.anim | Cloth_Pumps | m_IsActive | 1 |
| Pumps_OFF.anim | Cloth_Pumps | m_IsActive | 0 |
| Socks_ON.anim | Cloth_Socks | m_IsActive | 1 |
| Socks_OFF.anim | Cloth_Socks | m_IsActive | 0 |
| Brooch_ON.anim | Cloth_Dress | blendShape.Brooch_x | 0 |
| Brooch_OFF.anim | Cloth_Dress | blendShape.Brooch_x | 100 |

### 内衣联动

| Clip | 控制对象 |
|------|---------|
| BraShorts_Hide.anim | Cloth_Under_Bra.m_IsActive=0, Cloth_Under_Shorts.m_IsActive=0 |
| BraShorts_Restore.anim | Cloth_Under_Bra.m_IsActive=1, Cloth_Under_Shorts.m_IsActive=1 |
ctive=0 |
| BraShorts_Restore.anim | Cloth_Under_Bra.m_IsActive=1, Cloth_Under_Shorts.m_IsActive=1 |### VRCAvatarDescriptor 配置
baseAnimationLayers[0] Base | Cazalis_Base.controller baseAnimationLayers[1] Additive | null baseAnimationLayers[2] Gesture | Cazalis_Gesture.controller baseAnimationLayers[3] Action | Cazalis_Action.controller baseAnimationLayers[4] FX | Cazalis_FX.controller ← 操作目标

specialAnimationLayers[0] Sitting | null specialAnimationLayers[1] TPose | null specialAnimationLayers[2] IKPose | null

customExpressions = True expressionsMenu = Assets/Cazalis/Animation/EXMenu/Cazalis_Menu.asset expressionParameters = Assets/Cazalis/Animation/EXMenu/Cazalis_Parameter.asset customizeAnimationLayers = True ```


改造规则(必读)

  1. 绝不在原版 Cazalis_FX.controller 上直接修改
  2. 每次改造前:先复制 → Cazalis_FX_Modified.controller,在副本上操作
  3. 修改前先读此备份对照,确认原版结构
  4. 新建 Inner BlendTree 时必须用 AssetDatabase.AddObjectToAsset(bt, controller) 序列化
  5. Inner children 的 directBlendParameter = "Voice"
  6. 所有不确认的 C# API 先写小测试验证
  7. 改完后全面验证所有 Layer,不要只验证改的那一层