关于 vrc-avatars
使用 Unity 和 VRChat SDK 构建与优化 VRChat 虚拟形象的技能,涵盖形象设置、表情、动画和性能限制,并说明 Quest 的单独适配要求。
主要功能
- 01Avatar 3.0 设置
- 02表情菜单与参数
- 03性能优化
- 04PhysBones 与触碰器
- 05Animator 控制器指导
适用场景
- 01按性能目标规划虚拟形象
- 02设置表情菜单和同步参数
- 03准备单独的 Quest 形象构建
- 04检查动画与 PhysBones 行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alexanderstephenthompson/ claude-hub --skill vrc-avatars安装后在 Claude Code 中输入/vrc-avatars确认已加载。
附带文件references/avatar3-setup.mdassets/avatar-performance-limits.md
详细介绍
VRChat Avatars 技能
版本: 1.0 技术栈: VRChat SDK、Unity
VRChat 的性能评级系统意味着,大多数玩家的安全设置会自动隐藏评级为“Poor”或“Very Poor”的 Avatar——你精心制作的 Avatar 会变成看不见的机器人轮廓。材质过多会破坏批处理。骨骼过多会消耗 CPU。混用 Write Defaults 会导致动画行为难以预测。而 Quest 的限制严格得多,需要单独构建,不能只用同一个 Avatar 减少多边形数量。
从一开始就将 Avatar 控制在 Good 评级限制内,其他玩家才能真正看到它。参数预算和 PhysBone 限制并非随意设定——它们决定了 Avatar 是可见还是不可见。
范围与边界
本技能涵盖:
- Avatar 3.0 设置
- 表情菜单和参数
- 性能优化
- PhysBones 和接触
- Animator 控制器
交由其他技能处理:
unity-csharp:C# 模式和性能优化
适用场景: 构建或优化 VRChat Avatar。
核心原则
- 性能评级很重要 — Poor Avatar 会被屏蔽。
- 兼容 Quest — 需要单独构建,限制也更严格。
- 参数预算 — 同步参数最多 256 位。
- PhysBone 限制 — 骨骼越多,开销越大。
- 在设备上测试 — 镜像和性能表现会有所不同。
性能限制
Quest(目标:Good)
| 指标 | Good | Medium | Poor |
|---|---|---|---|
| 三角形 | 10,000 | 15,000 | 20,000 |
| 材质 | 1 | 2 | 4 |
| 骨骼 | 90 | 150 | 256 |
| PhysBones | 0 | 6 | 8 |
PC(目标:Good)
| 指标 | Good | Medium | Poor |
|---|---|---|---|
| 三角形 | 32,000 | 70,000 | - |
| 材质 | 4 | 8 | 16 |
| 骨骼 | 150 | 256 | 400 |
| PhysBones | 16 | 32 | 64 |
| PhysBone 碰撞体 | 8 | 16 | 32 |
模式
层级结构
Avatar Root
├── Armature
│ └── Hips
│ ├── Spine → Chest → Neck → Head
│ │ ├── Eye_L, Eye_R
│ │ └── Hair bones
│ ├── Leg_L → Knee → Foot → Toe
│ ├── Leg_R → ...
│ └── (Shoulder → Arm → Elbow → Hand → Fingers)
├── Body (SkinnedMeshRenderer)
├── Clothes (optional separate mesh)
└── Accessories
参数预算(256 位)
Type Bits Common Uses
─────────────────────────────────
Bool 1 Toggles
Int 8 Outfit index, state machines
Float 8 Blend shapes, radial controls
Example Budget:
- VRCEmote (int) 8 bits
- VRCFaceBlendH (float) 8 bits
- VRCFaceBlendV (float) 8 bits
- Custom toggles ×10 10 bits
- Outfit selector 8 bits
- Remaining 214 bits
表情菜单结构
Main Menu
├── Expressions
│ ├── Happy
│ ├── Sad
│ └── Surprised
├── Toggles
│ ├── Hat On/Off
│ ├── Glasses On/Off
│ └── Jacket On/Off
├── Outfits (Radial)
│ └── Select 1-4
└── Settings
├── PhysBone Intensity
└── Fallback Toggle
Write Defaults 模式
Choose ONE approach project-wide:
Write Defaults ON:
- Simpler setup
- Properties return to default when state exits
- Can cause conflicts between layers
Write Defaults OFF (Recommended):
- More control
- Must explicitly set all animated properties
- Each state fully defines its output
反模式
| 反模式 | 问题 | 修复方法 |
|---|---|---|
| 材质过多 | 破坏批处理,影响评级 | 合并纹理,使用图集 |
| 混用 Write Defaults | 行为未定义 | 选定一种并保持一致 |
| PhysBones 未优化 | 性能开销 | 减少数量,简化骨骼链 |
| 没有备用 Avatar | 被屏蔽的用户会看到机器人 | 设置一个性能良好的备用 Avatar |
| 本地专用参数设为同步 | 浪费同步预算 | 正确标记本地专用参数 |
| Quest 上使用完整身体网格 | 三角形数量过多 | 使用单独的 Quest 网格 |
检查清单
设置
- 骨架遵循 humanoid 结构
- 已配置 Avatar descriptor
- 已配置眼动追踪(如适用)
- 已配置 Viseme
- 已正确设置视点位置
性能
- 三角形数量符合目标评级
- 材质数量已降至最低(使用图集)
- 骨骼数量符合限制
- PhysBones 已优化
- 已上传 Quest 版本(如适用)
表情
- 表情菜单结构清晰
- 参数符合 256 位预算
- Write Defaults 设置一致
- 已配置手势层
- 已测试开关
质量
- 默认姿势下没有穿模
- PhysBones 表现自然
- 表情效果正确
- 已在 VRChat 中测试(而不只是 Unity)
参考资料
references/avatar3-setup.md— Avatar 3.0 配置指南
资源
assets/avatar-performance-limits.md— Quest 和 PC 性能限制
评论
支持 Markdown