跳转至

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 只是个 空壳按钮,点击不会改变任何参数值。

教训

  1. 创建 Toggle 时第一时间绑定参数名,不能后补
  2. 整个链路必须逐个验证
菜单 Toggle → parameter.name
VRCExpressionParameters → 参数定义(name 一致)
FX Controller → Animator 参数(name 一致)
Transition 条件 / BlendTree 引用
AnimationClip → 属性动画
  1. 通过 MCP 远程操作时,manage_asset.modify 对 ScriptableObject 的支持有限,更可靠的方式是:
  2. 在 Unity 中手动编辑
  3. 或写 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.name
  • Cazalis_Parameter_Modified.asset — 参数文件副本(含 Bra_ON, Shorts_ON)
  • Cazalis_FX_Modified_V3.controller — FX 控制器 V3 版本(含 Shorts_ON BlendTree)
  • Cazalis_Menu_Modified.asset — 根菜单副本