title: Toggle 参数绑定教训 description: VRCExpressionsMenu Toggle 控件必须绑定 parameter.name 的根本原因与排查方法 created: 2026-05-09 updated: 2026-05-14 type: troubleshooting tags: [vrchat, expression-menu, toggle, parameters, troubleshooting]
Toggle 参数绑定教训
2026-05-09 下午,Cazalis zigai 模型改模过程中发现的根本性问题。
问题描述
通过 MCP 工具创建了 UnderWear_Option.asset(VRCExpressionsMenu),里面包含 Bra 和 Shorts 两个 Toggle 控件,但 没有给 Toggle 设置 parameter.name,导致:
- 菜单里能看到 Bra / Shorts 开关 ✅
- 点击开关有视觉反馈 ✅
- 但 VRCExpressionParameters 不变化 ❌
- FX Controller 条件不触发 ❌
- 动画不执行 ❌
根本原因
每个 VRCExpressionsMenu.Control(类型为 Toggle)必须设置:
control.type = (VRCExpressionsMenu.Control.ControlType)102; // Toggle
control.parameter = new VRCExpressionsMenu.Control.Parameter();
control.parameter.name = "Bra_ON"; // ← 必须对应 VRCExpressionParameters 中的参数名
如果漏了 parameter.name,Toggle 只是个 空壳按钮,点击不会改变任何参数值。
教训
- 创建 Toggle 时第一时间绑定参数名,不能后补
- 整个链路必须逐个验证:
菜单 Toggle → parameter.name
↓
VRCExpressionParameters → 参数定义(name 一致)
↓
FX Controller → Animator 参数(name 一致)
↓
Transition 条件 / BlendTree 引用
↓
AnimationClip → 属性动画
- 通过 MCP 远程操作时,
manage_asset.modify对 ScriptableObject 的支持有限,更可靠的方式是: - 在 Unity 中手动编辑
- 或写 C# 脚本用
AssetDatabase修改
V3 Controller 路径
[!NOTE] V3 版本 Controller 已更新为
Cazalis_FX_Modified_V3.controller(22层,索引 0-21)。 Layer 18-21 为 4 套衣服溶解系统,参数统一为taozhuang。 已更新为Cazalis_FX_Modified_V3.controller(22层,索引 0-21)。 Layer 18-21 为 4 套衣服溶解系统,参数统一为taozhuang。## 相关资产
UnderWear_Option.asset— 用户手动补上了两个 Toggle 的 parameter.nameCazalis_Parameter_Modified.asset— 参数文件副本(含 Bra_ON, Shorts_ON)Cazalis_FX_Modified_V3.controller— FX 控制器 V3 版本(含 Shorts_ON BlendTree)Cazalis_Menu_Modified.asset— 根菜单副本