教程教程阅读约 5 分钟

用 Mixamo 做 VRChat 模型: 绑骨、添加 Mixamo 动画并上传

带手指给你的模型绑骨,在 Unity 中配合 VRChat SDK 设置并上传,再添加 Mixamo 的舞蹈、表情动作和姿势。

  • Standard Skeleton65 根骨骼

    每根手指都有

  • 3 Chain Fingers49 根骨骼

    无名指带动中指和小指

  • 2 Chain Fingers41 根骨骼

    一条骨骼链带动四根手指

  • No Fingers25 根骨骼

    整只手作为一个整体运动

Mixamo 的四个 Skeleton LOD 选项,画出了每个选项给手部的骨骼:每个手指关节一个点,虚线表示这根手指由另一根手指的骨骼链带动。手腕是白色的点。

Mixamo 是给 VRChat 模型绑骨最常用的方法之一。它免费,几分钟就能完成,而且 Unity 能毫不费力地把它的骨架识别为 Humanoid。它做不了的是所有 VRChat 特有的部分:口型同步、眼球运动,以及把动画放进游戏内菜单。这篇教程覆盖完整的流程。

你需要什么

项目说明
一个模型一个人形角色,FBX 或 OBJ 格式,摆成 T-pose,手指张开
Mixamo有 Adobe ID 即可免费使用
Unity2022.3.22f1,也就是 VRChat 使用的版本。不要把项目升级到 Unity 6。
VRChat Creator Companion用来创建项目并添加 Avatars SDK(撰写本文时为 3.10.6)
一个 VRChat 账号信任等级达到 New User 或以上才能上传。Visitor 只能使用 Build & Test。

1. 在 Mixamo 中带手指绑骨

在 mixamo.com 上传模型,放好八个标记点(下巴、手腕、手肘、膝盖、裆部),并在 Skeleton LOD 中选择 Standard Skeleton (65)。只有这个选项的每根手指都有关节。上传的详细步骤见我们的 Mixamo 分步教程。

以 T-pose 下载,格式选 FBX for Unity,并选择 With Skin。

一个摆着 T 姿势的动漫角色,标出了 Mixamo 的八个标记点位置:下巴、手腕、手肘、膝盖和裆部下巴手腕手腕手肘手肘裆部膝盖膝盖
Mixamo 的 Auto-Rigger 要求在 T 姿势上放八个标记点:下巴、两个手腕、两个手肘、两个膝盖和裆部。这里展示在我们的测试模型上,并非 Mixamo 本身的界面。

2. 在 Unity 中设置

  1. 在 Creator Companion 中新建一个 Avatar 项目并打开。
  2. 把 FBX 拖进 Project 窗口。在 Inspector 的 Rig 标签页中,把 Animation Type 设为 Humanoid,Avatar Definition 设为 Create From This Model,然后点击 Apply。
  3. 点击 Configure。每个骨骼槽位都应该是绿色的。VRChat 需要 Neck 和 Chest;Mixamo 的 Spine、Spine1 和 Spine2 通常会成为 Spine、Chest 和 Upper Chest。如果 Unity 提示“Character not in T-Pose”,就使用 Pose、Enforce T-Pose。
  4. 在 Materials 标签页中提取纹理和材质,这样你才能编辑它们。

3. 添加 Avatar Descriptor

把模型拖进场景,添加一个 VRC Avatar Descriptor 组件。

View Position
把它移到两眼之间。
Lip Sync
Mixamo 不会添加嘴型。如果你的模型有 viseme 混合形状,就使用 Viseme Blend Shape。Mixamo 的骨架没有下颌骨骼,所以不能选 Jaw Flap Bone。
Eye Look
需要你的模型本身带有眼睛骨骼或眨眼形状;Mixamo 的 Auto-Rigger 绑出来的通常两者都没有,所以保持关闭。

4. 构建并上传

打开 VRChat SDK、Show Control Panel,登录后进入 Builder。修复验证列表中列出的所有问题,然后点击 Build & Publish。PC 模型想要评为 Good,面数要控制在 70,000 个三角形以内。Quest 和手机需要单独构建,并上传到同一个模型上,要求也严格得多:评为 Good 大约要在 10,000 个三角形以内。

5. 添加 Mixamo 的舞蹈、表情动作和姿势

准备动画

  1. 在 Mixamo 上加载你的模型,挑选一个动画。如果是会到处走动的舞蹈,就勾选 In Place。
  2. 下载 FBX for Unity,选择 Without Skin,每秒 30 帧。
  3. 在 Unity 中选中这个 FBX。Rig 标签页:选择 Humanoid,并把 Avatar Definition 设为 Copy From Other Avatar,指向你的模型。
  4. Animation 标签页:凡是循环的动画都勾选 Loop Time,并对根骨骼的旋转和位置勾选 Bake Into Pose,这样模型就不会漂移。
  5. 选中 FBX 里面的片段,按 Ctrl+D 复制一份。这个副本才是你可以编辑和使用的。

放进 Action 层

表情动作和舞蹈放在 Action 层中,这个层的权重默认为零,直到有东西把它调高。

  1. 从 Packages、com.vrchat.avatars、Samples、AV3 Demo Assets、Animation、Controllers 中复制 vrc_AvatarV3ActionLayer,并把这个副本指定给 Descriptor 的 Action 槽位。
  2. 打开它,把你的片段拖进其中一个表情动作状态,替换掉示例动画。
  3. 这些状态已经会调高该层的权重,并把身体交给动画控制(Playable Layer Control 和 Tracking Control)。如果你自己建状态,要把这两项都加上。
  4. 内置的 VRCEmote 参数(1 到 16)决定播放哪个表情动作。在 Expressions Menu 中添加一个 Button,把 VRCEmote 设为你的表情动作的编号。

自定义姿势和 AFK

姿势其实就是一个只有一帧、持续保持的动画。把姿势做成只有一个关键帧的片段(取自 Mixamo 动画中的某一帧,或者手动摆好),然后像表情动作一样从 Action 层播放。如果要做 AFK 姿势,就用内置的 AFK 参数来驱动一个状态。

如果你不想自己搭建动画层,GoGo Loco(通过 Creator Companion 安装,配合 VRCFury 或 Modular Avatar)一个包就能提供坐、躺、各种姿势、AFK 和身高调节。

问题修复

问题解决办法
游戏里手指不动用 Standard Skeleton 重新绑骨,并把手指分开;在 Configure 中检查双手
“Character not in T-Pose”Configure、Pose、Enforce T-Pose
表情动作一直不播放除非有状态用 Playable Layer Control 调高权重,否则 Action 层一直为零
跳舞时模型滑动或飘起来对根骨骼启用 Bake Into Pose,或在 Mixamo 上勾选 In Place
手臂穿进身体下载前在 Mixamo 上调高 Character Arm-Space
别人在 Quest 上看到的是替代模型按移动端限制做一个 Android 构建,并上传到同一个模型上

常见问题

Mixamo 会为 VRChat 映射手指吗?

会,前提是你选了 Standard Skeleton (65),而且网格中的手指是分开的。这样 Unity 就会映射每只手的全部五根手指。3-chain 和 2-chain 选项会留下一些空的手指槽位,No Fingers 则一根都没有。VRChat 并不强制要求手指骨骼,但没有手指骨骼,你的手势就显示不出来。

怎样把 Mixamo 角色导入 VRChat?

从 Mixamo 下载 FBX for Unity,选择 With Skin。在 Creator Companion 的模型项目中导入 FBX,把 Rig 设为 Humanoid,添加 VRC Avatar Descriptor,设置视点位置,然后在 VRChat SDK 面板中点击 Build & Publish。

怎样给我的 VRChat 模型添加 Mixamo 动画?

用 Without Skin 下载动画,把它的 Rig 设为 Humanoid 并选择 Copy From Other Avatar,复制这个片段,再把它放进 vrc_AvatarV3ActionLayer 副本中的一个表情动作状态。最后添加一个菜单按钮,把 VRCEmote 设为这个表情动作的编号。

怎样把 Mixamo 动画转换成 VRChat 能用的?

没有什么需要转换的。在 Unity 中把动画 FBX 设为 Humanoid,它就能在任何人形模型上播放,包括不是用 Mixamo 绑骨的模型。

怎样用 Mixamo 制作自定义 VRChat 姿势?

从 Mixamo 动画中取出你想要的那一帧,做成一个单帧片段,再像表情动作一样在 Action 层中保持它。GoGo Loco 是现成的替代方案,提供坐、躺和 AFK 姿势。

用 Mixamo 做的 VRChat 模型能上传吗?

能。Mixamo 的绑骨可以作为 Humanoid 模型使用。上传需要一个信任等级达到 New User 或以上的 VRChat 账号;Visitor 可以用 Build & Test 在本地测试。

除了 Mixamo,还有别的方法给 VRChat 模型绑骨吗?

有:Blender 的 Rigify、AccuRIG、Auto-Rig Pro,或者 afk.ai 这样的 AI 绑骨工具,它还能给奇幻生物绑骨。请看不用 Mixamo 怎样给 VRChat 模型绑骨。

给你的模型绑骨、做动画

AI 在你的浏览器中为它绑骨,然后数百个动画就能在它身上播放。下载一个 GLB,任何引擎都能用。

给模型绑骨

更多教程