关于 vrc-worlds
使用 VRChat SDK 和 Unity 构建及优化 VRChat 世界的技能。重点涵盖 Quest 兼容性、性能限制、烘焙照明、出生点设置和设备测试。
主要功能
- 01优先考虑 Quest 的世界设计
- 02性能限制参考
- 03烘焙照明设置
- 04出生点与重生配置
- 05遮挡剔除和 LOD 检查
- 06设备测试清单
适用场景
- 01规划 VRChat 世界场景
- 02针对 Quest 优化世界
- 03设置出生点和重生区域
- 04上传前检查性能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alexanderstephenthompson/ claude-hub --skill vrc-worlds安装后在 Claude Code 中输入/vrc-worlds确认已加载。
附带文件assets/world-upload-checklist.mdreferences/lighting-baking.md
详细介绍
VRChat Worlds 技能
版本: 1.0 技术栈: VRChat SDK、Unity
在你的 PC 上以 30fps 运行的 VRChat 世界,在 Quest 上可能只有 5fps。编辑器中看起来很棒的实时灯光,会拖慢房间内每位玩家的性能。Unity 编辑器会误导你——一切看起来都很流畅,直到你在实际设备上与实际玩家一起测试。VRChat 的性能等级系统还意味着,优化不佳的世界获得的访客会更少,而不仅仅是体验更差。
优先为 Quest 构建,使用烘焙光照、正确设置出生点并进行遮挡剔除,这样你的世界就能在各种设备上流畅运行,还能获得等级系统的推荐。
范围与边界
本技能涵盖:
- 世界设置和场景层级
- VRChat 性能限制
- 光照和烘焙
- 出生点和重生设置
- 世界优化
- SDK 组件
交由其他技能处理:
vrc-udon:脚本和联网unity-csharp:C# 模式和性能优化
适用场景: 构建或优化 VRChat 世界。
核心原则
- 兼容 Quest — 优先为 Quest 构建,再增强 PC 体验。
- 尽可能烘焙一切 — 实时光照会严重影响性能。
- 遵守限制 — 保持在性能等级限制内。
- 在设备上测试 — 编辑器中的性能会误导你。
- 出生点很重要 — 第一印象始于出生点。
性能限制
Quest(目标:Excellent/Good)
| 指标 | Excellent | Good | Medium |
|---|---|---|---|
| 三角形 | 50,000 | 100,000 | 200,000 |
| 批次 | 50 | 100 | 200 |
| 材质 | 25 | 50 | 75 |
| 实时灯光 | 0 | 1 | 2 |
PC(目标:Excellent/Good)
| 指标 | Excellent | Good | Medium |
|---|---|---|---|
| 三角形 | 500,000 | 1,000,000 | 2,000,000 |
| 批次 | 100 | 200 | 400 |
| 材质 | 50 | 100 | 200 |
| 实时灯光 | 2 | 4 | 8 |
模式
场景层级
World
├── Environment
│ ├── Static (mark as static)
│ │ ├── Ground
│ │ ├── Buildings
│ │ └── Props
│ └── Dynamic
│ └── Interactive objects
├── Lighting
│ ├── Directional Light (baked or mixed)
│ ├── Light Probes
│ └── Reflection Probes
├── Audio
│ └── Audio sources
├── VRChat
│ ├── VRCWorld (descriptor)
│ ├── Spawn Points
│ └── Mirrors/Portals
└── Udon
└── Scripts and behaviors
出生区域设置
Spawn Checklist:
- Multiple spawn points (avoid stacking)
- Clear floor (no obstacles)
- Good lighting (players see themselves)
- Mirror nearby (avatar check)
- Safe area (no hazards)
- Interesting view (sets the mood)
光照设置(兼容 Quest)
1. Set all lights to "Baked"
2. Mark static geometry as "Contribute GI" + "Reflection Probe Static"
3. Place Light Probes for dynamic objects
4. Place Reflection Probes for shiny surfaces
5. Bake with GPU Lightmapper
6. Delete realtime lights or set to "Not Important"
遮挡剔除设置
1. Mark large static objects as "Occluder Static"
2. Mark all static objects as "Occludee Static"
3. Window > Rendering > Occlusion Culling
4. Set appropriate cell sizes
5. Bake
6. Test with Occlusion visualization
反模式
| 反模式 | 问题 | 修复方法 |
|---|---|---|
| 在 Quest 上使用实时灯光 | 严重影响性能 | 烘焙所有光照 |
| 没有光照探针 | 动态物体会变黑 | 添加光照探针组 |
| 只有一个出生点 | 玩家加入时会挤在一起 | 设置多个分散的出生点 |
| 反射未烘焙 | 开销大或无法正常工作 | 使用烘焙反射探针 |
| 道具没有 LOD | 远处仍显示完整细节 | 添加 LOD 组 |
| 在 Quest 上使用后期处理 | 不受支持,会被忽略 | 仅用于 PC 或移除 |
检查清单
设置
- 已配置 VRCWorld 描述符
- 已放置多个出生点
- 已适当设置重生高度
- 已配置参考摄像机
性能
- 所有静态物体均已标记为静态
- 光照已完全烘焙(Quest)
- 光照探针覆盖游玩区域
- 已烘焙遮挡剔除
- 重要网格已设置 LOD
- 已在 Quest 硬件上测试
质量
- 出生区域令人感到舒适
- 出生点附近有镜子
- 没有 Z-fighting 或视觉故障
- 音频音量平衡
- 世界名称具有描述性
参考资料
references/lighting-baking.md— VRChat 世界的烘焙光照设置
资源
assets/world-upload-checklist.md— 完整的世界上传检查清单
评论
支持 Markdown