跳转至

title: Unity 核心知识在 VRChat 中的应用 description: 模型基础、骨骼权重、SkinnedMeshRenderer 与物理碰撞体原理


Unity 核心知识在 VRChat 中的应用

VRChat 模型并不是一个单纯的 3D 网格,而是一个高度特化的 Unity 场景对象。理解 Unity 的核心组件,是进行任何模型修改、优化和交互开发的前提。

1. SkinnedMeshRenderer (蒙皮网格渲染器)

这是所有模型(身体、头发、衣服)必须挂载的组件。它负责将 3D 网格 (Mesh) 根据骨骼的运动进行实时变形,并显示出来。

核心参数 作用说明 VRChat 开发意义
Materials 网格表面的贴图与着色器 决定了模型的渲染性能 (Draw Call)。材质球过多会导致帧率暴跌。
Root Bone 骨骼层级的根节点 (通常是 Hips) 决定了模型的整体位置。如果设置错误,模型可能会飘在空中或掉入地底。
Bounds 网格的可见边界框 控制摄像机的裁剪。如果边界太小,模型转动时身体会突然“消失”。

⚠️ 风险点:VRChat 的 Avatar 优化器会严格扫描此组件。如果 Bounds 设置过小,会导致“隐形 BUG”。

2. 骨骼 (Bones) 与 权重 (Weights)

骨骼 (Transform Hierarchy)

骨骼是模型的“关节”。一个标准的 VRChat 人形模型必须包含 Hips, Spine, Chest, Neck, Head, Shoulders, Arms, Hands, Legs 等节点。 - Unity 概念:每个骨骼就是一个普通的空物体 (Transform)。 - VRChat 意义:动画、物理骨骼 (PhysBone) 都是挂载在这些节点上的。

权重绘制 (Weight Painting)

这是模型制作中最核心的“不可见”知识。 - 概念:一个顶点 (Vertex) 可以受多个骨骼的影响。比如肩膀的顶点,既受 Chest 影响,也受 Shoulder 影响。 - 权重值:总和必须为 1 (或 100%)。 - Chest: 0.8 + Shoulder: 0.2 = 肩膀弯曲时,顶点会跟随胸部移动 80%,跟随肩部移动 20%,从而实现自然的“挤压”效果。 - 常见 BUG: - 穿模:裙子的权重没有画好,导致走路时裙子直接穿透大腿。 - 扭曲:关节弯曲时,网格出现奇怪的尖刺或断裂(通常是权重分布不均)。 的“挤压”效果。 - 常见 BUG: - 穿模:裙子的权重没有画好,导致走路时裙子直接穿透大腿。 - 扭曲:关节弯曲时,网格出现奇怪的尖刺或断裂(通常是权重分布不均)。## 3. 碰撞体 (Colliders) 与 物理系统

你看到的“绿色球体”就是碰撞体。

类型 可视化外观 用途
Sphere Collider 绿色球体 简单的圆形阻挡区域。常用于胸部、胯部防穿模。
Capsule Collider 绿色胶囊体 长条形的阻挡。常用于大腿、手臂。
Box Collider 绿色方块 方形阻挡区域。较少用于角色,多用于场景。

物理交互原理: PhysBone (物理骨骼) 会检测自己范围内的顶点是否与 Collider 发生重叠。一旦重叠,物理引擎会施加一个排斥力,把顶点“推”出去,从而防止穿模。

4. Gizmos (辅助图形)

你在 Unity 场景中看到的绿色球体、彩色坐标轴、连线等,都是 Gizmos。 - 特性:仅在 Unity 编辑器中显示,打包后绝对不可见,不占用任何运行时性能。 - 作用:辅助开发者调试碰撞体范围、骨骼位置、光照方向等。

📖 学习建议:不要害怕场景里的绿球。它们是保护你裙子不穿模的“隐形保镖”。