跳转至

title: 溶解穿脱开关系统 created: 2026-05-09 updated: 2026-05-09 type: guide tags: [vrchat, avatar, dissolve, toggle, shader]


溶解穿脱开关系统

用 Dissolve 动画实现内衣/内裤/套装穿脱,核心知识体系

概述

本系统实现以下功能: - 🔘 内衣穿脱开关 — Bool 参数 + Dissolve 材质动画 - 🔘 内裤穿脱开关 — Bool 参数 + Dissolve 材质动画
- 🔘 整套穿透开关 — Int 参数或多个 Bool 合并 - 👕 多套衣服更换 — SubMenu + Int/Bool 参数

技术栈

组件 说明
Shader Poiyomi Toon Shader / liltoon(需支持 Dissolve)
Avatar SDK VRChat Avatars 3.0
参数系统 VRC Expression Parameters + Expression Menu
状态机 Animator Controller (FX Layer)

溶解动画原理

Dissolve 核心算法

// Dissolve 核心原理
alpha = clip(noise_texture - progress * threshold)
// progress: 0.0 → 1.0
// - 0.0 = 完全显示
// - 1.0 = 完全溶解消失

视觉效果

progress = 0.0     progress = 0.3     progress = 0.7     progress = 1.0
████████████       ██████░░░░       ██░░░░░░░░       ░░░░░░░░░░
(完全显示)       (溶解中)         (大部分消失)     (完全消失)

支持的 Shader

Shader Dissolve 支持 Stars
Poiyomi Toon Shader ✅ 内置 1614 ⭐
liltoon ✅ 内置 1435 ⭐
Standard Shader ⚠️ 需手写 -

穿脱开关架构

核心组件

1. VRC Avatar Parameter Driver

将 VRC Int 参数值映射到 Animator Bool:

菜单 Button 按下 → Int 参数变化 → Driver 设 Bool → Dissolve 动画播放

2. Animator Bool 参数

参数名 类型 用途
Bra Bool 内衣开关(true=显示)
Shorts Bool 内裤开关(true=显示)
AllOff Bool 整套穿透
---
Bra Bool 内衣开关(true=显示)
Shorts Bool 内裤开关(true=显示)
AllOff Bool 整套穿透

控制材质属性实现 Dissolve: - _DissolveProgress (Poiyomi/liltoon) - alpha (Standard Shader)

状态机设计

┌─────────────┐  Bra=true   ┌─────────────┐
│   Bra_ON    │ ←─────────→ │  Bra_OFF    │
│ dissolve=0 │             │ dissolve=1  │
└─────────────┘  Bra=false  └─────────────┘

转换设置: - Has Exit Time = false - Conditions: Bool "Bra" = true/false

切换系统类型

参考项目:ImLeXz/2-for-2-Toggle-System-VRC-Avatars-3.0-

Individual Toggle(独立开关)

可以同时开启多个:

Bra = true  ← 内衣显示
Shorts = true  ← 内裤显示
AllOff = false ← 整套显示

Group Toggle(组切换)

同组只有一个可激活:

Outfit = 0  ← 套装A
Outfit = 1  ← 套装B  
Outfit = 2  ← 套装C

On To Off Toggle(默认ON)

默认显示,点击消失:

默认状态:Bra = true (显示)
点击后:Bra = false (消失)

参数设计

方案A:独立 Bool(简单)

Bra (Bool)      // true=显示, false=消失
Shorts (Bool)   // true=显示, false=消失

方案B:Int 节省参数(推荐)

// OutfitMode: 套装模式
// 0 = 全套装(Bra=true, Shorts=true)
// 1 = 仅内衣(Bra=true, Shorts=false)
// 2 = 全裸/穿透(Bra=false, Shorts=false)

Animator Layer 分工

Layer 用途 镜子里运行
Action 同步逻辑、VRC Avatar Parameter Driver
FX Dissolve 动画

同步机制

问题:Animator 参数不网络同步,晚加入的玩家看不到切换状态

解决:定时同步(默认10秒)

同步系统:
1. 定时触发 VRC Avatar Parameter Driver
2. Driver 读取当前 Bool 状态
3. 写入对应 Int 参数到网络
4. 其他客户端收到同步

同步系统: 1. 定时触发 VRC Avatar Parameter Driver 2. Driver 读取当前 Bool 状态 3. 写入对应 Int 参数到网络 4. 其他客户端收到同步 ```## 相关页面