title: VRM 模型导入 VRChat 指南 created: 2026-05-01 updated: 2026-05-01 type: reference tags: [vrchat, vrm, univrm, conversion, import]
🔄 VRM 模型导入 VRChat 指南
UniVRM 导入、骨骼映射、材质转换、常见问题排查的完整指南。
1. VRM 格式概述
VRM 是基于 glTF 的 VR 虚拟形象格式,广泛用于 VRoid Studio 等 3D 虚拟形象工具。
VRM 包含的内容
- 网格数据: 身体、衣物、配饰的 Mesh
- 骨骼层次: VRM 标准骨骼命名
- 材质: MToon 材质(二次元着色)
- BlendShape: 表情/口型预设
- SpringBone: 物理骨骼(头发、裙子等)
- Meta 信息: 模型作者、许可信息
2. UniVRM 导入流程
导入步骤
- 安装 UniVRM Unity 包(与 SDK 版本兼容)
- 将
.vrm文件拖入 UnityAssets/目录 - UniVRM 自动解析并生成 Prefab
- 将 Prefab 拖入场景
- 添加 VRCSDK 组件(AvatarDescriptor 等)
导入后检查清单
- Rig 设置为 Humanoid
- 骨骼映射正确(无 Unmapped Bones)
- T-Pose 姿势正确(非 A-Pose 偏移)
- 材质未丢失(黑色模型检查)
- 贴图未错位(UV 范围 0-1)
3. 骨骼映射
nmapped Bones) - [ ] T-Pose 姿势正确(非 A-Pose 偏移) - [ ] 材质未丢失(黑色模型检查) - [ ] 贴图未错位(UV 范围 0-1)
3. 骨骼映射### VRM → Unity Humanoid 标准映射
| VRM 骨骼名 | Unity Humanoid 骨骼 |
|---|---|
hips |
Hips |
spine |
Spine |
chest |
Chest |
upperChest |
UpperChest |
neck |
Neck |
head |
Head |
leftEye |
LeftEye |
rightEye |
RightEye |
jaw |
Jaw |
leftShoulder |
LeftShoulder |
leftUpperArm |
LeftUpperArm |
leftLowerArm |
LeftLowerArm |
leftHand |
LeftHand |
leftThumbProximal |
Left Thumb Proximal |
leftThumbIntermediate |
Left Thumb Intermediate |
leftThumbDistal |
Left Thumb Distal |
leftIndexProximal |
Left Index Proximal |
leftIndexIntermediate |
Left Index Intermediate |
leftIndexDistal |
Left Index Distal |
leftMiddleProximal |
Left Middle Proximal |
leftMiddleIntermediate |
Left Middle Intermediate |
leftMiddleDistal |
Left Middle Distal |
leftRingProximal |
Left Ring Proximal |
leftRingIntermediate |
Left Ring Intermediate |
leftRingDistal |
Left Ring Distal |
leftLittleProximal |
Left Little Proximal |
leftLittleIntermediate |
Left Little Intermediate |
leftLittleDistal |
Left Little Distal |
leftUpperLeg |
LeftUpperLeg |
leftLowerLeg |
LeftLowerLeg |
leftFoot |
LeftFoot |
leftToes |
LeftToes |
| (右侧同理) | (Right 前缀) |
| werLeg` | LeftLowerLeg |
leftFoot |
LeftFoot |
leftToes |
LeftToes |
| (右侧同理) | (Right 前缀) |
| 问题 | 原因 |
| :--- | :--- |
| 部分骨骼 Unmapped | VRM 使用了非标准骨骼名 |
| 手指骨骼缺失 | VRM 模型不包含手指骨骼 |
| T-Pose 偏移 | 导入时未正确识别标准姿态 |
| Hips 高度异常 | Root 与 Hips 未分离 |
4. 材质转换
MToon 材质说明
VRM 使用 MToon 着色器,导入后可能出现以下问题:
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 面部过暗/过曝 | Unity GI 与 UniVRM 烘焙逻辑不同 | 调整 Shading Grade Map 或关闭 Receive GI |
| 法线朝内(模型变黑) | DirectX/OpenGL 法线规范差异 | Inspector 勾选 Fix Normals |
| 背面消失 | MToon 依赖 Stencil 渲染背面 | 开启 Cull Off 或分离背面 |
| 轮廓线异常 | VRChat 对 Stencil 支持不稳定 | 改用 Vertex Extrusion 或 Z-Offset |
推荐 Shader 替换
| 原始 Shader | 推荐替换 | 说明 |
|---|---|---|
| MToon(PC 用) | Poiyomi Toon | 功能更丰富,PC 高质量 |
| MToon(Quest 用) | LilToon | 轻量移动端优化 |
| MToon(保持原样) | MToon(最新版) | 最简单,但功能有限 |
5. 物理系统转换
SpringBone → VRCPhysBone
VRM 的 SpringBone 需要转换为 VRChat 的 VRCPhysBone:
| VRM SpringBone | VRCPhysBone | 说明 |
|---|---|---|
m_stiffnessForce |
Stiffness |
刚度 |
m_gravityPower |
Gravity |
重力 |
m_dragForce |
无直接对应 | 通过 Pull + Spring 组合模拟 |
m_springForce |
Spring |
弹力 |
m_hitRadius |
Radius |
碰撞半径 |
m_center |
Root Transform |
中心骨骼 |
| 碰撞球体 | VRCPhysBoneCollider |
转换碰撞体 |
转换要点
- 保留 SpringBone 原始参数作为 PhysBone 的初始参考值
- 必须添加碰撞体(VRM 碰撞球体 → VRCPhysBoneCollider)
- 调整 Integration Type 为 Stable(VRM 默认不使用 Verlet)
- 检查 Limit 角度(VRM 无角度限制,需手动设置)
6. BlendShape 转换
tegration Type 为 Stable(VRM 默认不使用 Verlet) 4. 检查 Limit 角度**(VRM 无角度限制,需手动设置)
6. BlendShape 转换### VRM BlendShape → VRChat 表情
| VRM BlendShape | VRChat 对应 | 转换方式 |
|---|---|---|
joy |
Happy | Animator 参数映射 |
angry |
Angry | Animator 参数映射 |
sorrow |
Sad | Animator 参数映射 |
fun |
Surprised | Animator 参数映射 |
blink |
自定义 Bool | FX Layer Toggle |
blink_l / blink_r |
自定义 Bool | 独立控制左右眼 |
a / i / u / e / o |
Viseme | Lip Sync 参数 |
转换方法
- 在 Animator 中为每个 BlendShape 创建 State
- 使用
BlendShape驱动参数 - 通过 Expression Parameters 和 Menu 控制