title: 多套衣服更换架构 description: V3版 — 基于 taozhuang 参数的多套衣服更换方案 created: 2026-05-09 updated: 2026-05-14 type: guide tags: [vrchat, avatar, outfit, switching, blendtree, v3, taozhuang]
多套衣服更换架构
[!NOTE] 本文档为 V3 版本,示例参数已更新为
taozhuang(原Outfit已废弃)。 V3 实现参考Cazalis_FX_Modified_V3.controller(Layer 18-21)。
方案对比
| 方案 | 参数使用 | 灵活性 | 复杂度 |
|---|---|---|---|
| 独立 Bool | 多 Bool | 中 | 低 |
| Int 分组 | 1 Int | 高 | 中 |
| BlendTree | 1 Float/Int | 中 | 高 |
方案A:Int 参数分组(推荐)
参数定义
V3 方案使用
taozhuang作为统一参数,替代旧版的Outfit。
优点
- 1个 Int 可以表示 255 种状态
- Group Toggle 逻辑简单
- 参数节省
菜单结构
服装选择 (SubMenu)
├── 原皮 (Button) → taozhuang = 0
├── 露肩短裙 (Button) → taozhuang = 1
├── 休闲服 (Button) → taozhuang = 2
└── 开衫毛衣 (Button) → taozhuang = 3
┌──────────────────────────────────────────────┐
│ Outfit States │
│ │
│ yuanpi ─── taozhuang=0 ───→ 待机_yuanpi │
│ ↑ ↓ │
│ │ taozhuang=0 │
│ │ 待机_yuanpi│
│ │ ↓ │
│ │ taozhuang=1 │
│ │ ←──────────────────┐ 待机_mox │
│ │ │ ↓ │
│ │ taozhuang=2│ 待机_xiuxian │
│ └─── taozhuang=2 ────────┘ ↑ │
│ │ │
│ taozhuang=1 ←────────┘
└──────────────────────────────────────────────┘
切换逻辑
用户点击 "休闲服"
↓
Expression Menu 发送 taozhuang = 2
↓
Animator 检测到 taozhuang == 2
↓
Transition 从当前状态 → xiuxian 状态
↓
播放 xiuxian 动画(换装动画 + Dissolve)
方案B:独立 Bool(适合配件)
参数定义
适用场景
- 各套装相互独立
- 可以同时穿多套
- 适合:饰品、发型、配件
菜单结构
方案C:BlendTree(动画混合)
适用场景
- 需要平滑过渡的换装
- 例如:胸部大小、胖瘦调整
参数定义
(动画混合)适用场景
- 需要平滑过渡的换装
- 例如:胸部大小、胖瘦调整
参数定义
BlendTree: BodyShape ├── child 0: Skinny (weight=0.0) ├── child 1: Normal (weight=0.5) └── child 2: Chubby (weight=1.0)## 穿透模式设计
### 方案1:独立 Bool
```csharp
Bra (Bool) // 内衣开关
Shorts (Bool) // 内裤开关
// 穿透 = Bra=false + Shorts=false
方案2:整合 Int(节省参数)
方案3:分组 Int
TopMode (Int) // 上装
// 0 = 外衣 + 内衣
// 1 = 仅内衣
// 2 = 穿透
BottomMode (Int) // 下装
// 0 = 外裤 + 内裤
// 1 = 仅内裤
// 2 = 穿透
换装动画要点
Dissolve 过渡
每套服装切换都应有 Dissolve 动画:
动画时长
- Dissolve 动画:0.3 ~ 0.5 秒
- 太短显得突兀
- 太长影响体验
V3 实现参考
[!NOTE] V3 实现参考
Cazalis_FX_Modified_V3.controller,Layer 18-21 对应 4 套衣服,参数统一为taozhuang。 具体溶解动画配置请参考 [[dissolve-transition-system-cazalis]]。
资产组织
目录结构
Assets/
└── MyAvatar/
├── Prefabs/
│ └── MyAvatar.prefab
├── Models/
│ ├── Outfit_A/
│ │ ├── mesh.fbx
│ │ └── materials/
│ ├── Outfit_B/
│ └── Outfit_C/
├── Animations/
│ ├── Outfit_A_Change.anim
│ ├── Outfit_B_Change.anim
│ └── Dissolve.controller
└── Scripts/
Modular Avatar 合并
使用 Modular Avatar 合并多套服装:
A (Modular Avatar Merge) ├── Outfit_B (Modular Avatar Merge) └── Outfit_C (Modular Avatar Merge) ```## 相关资源