教程指南阅读约 6 分钟

动画重定向: 给已经绑好骨骼的模型添加动画

给已绑骨的模型添加动画,同时保留它的骨架、蒙皮权重、物理效果和原有动画。

afk.ai/rig
把一个已绑骨的 VRM 拖到 afk.ai/rig 上:选择 Use its skeleton,afk.ai 的动画就会在它自己的骨骼上播放,头发和外套下摆随之摆动。等待过程已加速。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 制作。

动画重定向,就是把为一套骨架制作的动画放到另一套骨架上播放。afk.ai 可以为任何已经绑好骨骼的角色做这件事,无论是人形、动物还是生物。把模型拖到 afk.ai/rig,选择 Use its skeleton(使用它的骨架),我们的动画就会在它自己的骨骼上播放:人形有 594 个,其他每种体型也各有一套专门制作的动画。

怎样给已绑骨的模型添加动画

  1. 连同骨架一起导出模型。使用 VRM、FBX 或 GLB 文件,或者包含纹理的 ZIP。VRM 0 和 VRM 1.0 都支持。
  2. 上传到 afk.ai/rig。afk.ai 会读取骨架,把它的骨骼与我们为这种体型准备的骨骼对应起来,然后问你想怎样绑骨。选择 Use its skeleton。
  3. 等它加载完。这一步没有 AI 参与:你的骨骼和权重都按原样使用。
  4. 预览动画。该体型的每个动画都会在你模型自己的骨骼上播放:如果是人形,就是全部 594 个动画,包括奔跑、舞蹈、剑术连招、施法和表情动作。
  5. 下载 GLB,里面有你勾选的动画,以及模型原有的动画。
afk.ai/rig:This model already has a skeleton.(这个模型已经有骨架了。)按钮:Use its skeleton、Rig it with our AI
当模型自带一套能逐根骨骼匹配的人形骨架时,afk.ai/rig 会这样问你。

哪些东西保持不变

重定向只改变骨骼的运动方式。模型的其余部分原样保留:

  • 骨架:每根让网格变形的骨骼都会保留,包括你的模型特有的骨骼,比如头发、裙子、外套下摆、袖子、眼睛和配饰。这些骨骼保留原来的名字。
  • 蒙皮权重:不会重新绘制、平滑或清理。每个顶点跟随的骨骼和权重都和原来一样。
  • 物理效果:弹簧骨骼及其碰撞体保留模型作者设置的参数。
  • 原有动画:以原来的名字保留在文件中,和新动画放在一起。
  • 网格和材质:顶点和纹理都不变。原本共用一大组顶点的网格部件,只会保留各自用到的顶点,所以文件往往会变小。

我们用 VRoid Studio 的 AvatarSample_C 做了测试。18,347 个顶点和 14 个材质全部保留,模型的 36 根额外骨骼(20 根头发、14 根外套下摆、2 根眼睛)也和 afk.ai 的 66 根身体骨骼一起保留下来。带五个动画时,下载的文件为 7.3 MB,而原始 VRM 是 13.1 MB。

  1. 原始模型:afk.ai/rig 上的 AvatarSample_C

    1原始模型

    已由作者绑骨、刷好权重并设置了弹簧骨骼

  2. 它自己的骨架:afk.ai/rig 上的 AvatarSample_C

    2它自己的骨架

    身体的关节逐根骨骼匹配,位置和作者放的一样

  3. 它自己的蒙皮权重:afk.ai/rig 上的 AvatarSample_C

    3它自己的蒙皮权重

    不会重新绘制:每种颜色代表一根身体骨骼带动的部分;头发和外套仍由它们自己的骨骼控制

  4. 动起来:afk.ai/rig 上的 AvatarSample_C

    4动起来

    afk.ai 的动画在它自己的骨骼上播放,头发随之摆动

同一个模型在 afk.ai/rig 上的四个阶段,全程大约 10 秒。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 制作。

头发和布料物理

VRM 上的头发和衣服靠弹簧骨骼运动:一串串额外的骨骼,带有刚度、阻力、重力,以及防止它们穿过身体的碰撞体。afk.ai 会从文件(VRM 0 或 VRM 1.0)中读取弹簧骨骼,并在每个动画播放时进行模拟,所以头发和外套下摆会随着动作摆动。

GLB 和 FBX 文件无法存储弹簧骨骼,所以下载时会把它们的运动烘焙进每个动画,作为这些骨骼上的关键帧。结果在 Blender、Unity、Unreal Engine 或任何 glTF 查看器中播放效果都一样,不需要设置物理。

Sword Regular Combo 在模型自己的骨架上播放,和在 afk.ai/rig 上看到的一样:它的弹簧骨骼让头发和外套下摆摆动起来。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 制作。

原有动画

如果你的模型已经有动画,它们会被保留。这些动画以原来的名字包含在下载文件中,和新动画使用同一套骨架,所以游戏角色原本的待机和攻击动画都还在。

两组动画使用相同的骨骼、权重和物理效果。下载之前,你可以在 afk.ai/rig 上把它们放在一起预览。

AvatarSample_C.vrm

  • 骨架 · 身体,20 根头发骨骼、14 根外套下摆骨骼、2 根眼睛骨骼
  • 蒙皮权重 · 由作者绘制,覆盖 18,347 个顶点
  • 弹簧骨骼 · 头发和外套上的 13 条骨骼链,22 个碰撞体
  • 动画 · Idle、Greeting

AvatarSample_C.glb

  • 骨架 · afk.ai 的 66 根身体骨骼(与 Unreal 小白人同名),加上它自己的 36 根
  • 蒙皮权重 · 不变,仍是那 18,347 个顶点
  • 弹簧骨骼 · 摆动效果烘焙进每个动画
  • 动画 · Idle、Greeting,以及你勾选的动画:Sword Regular Combo、Vault、Roll、Dance Groove…
示意图:输入了什么、输出了什么。VRoid 的示例模型本身不带动画,所以图中标为作者原有的两个动画只是举例。

支持的绑定

afk.ai 会保留任何已绑骨角色的骨架:人形、四足动物、有蹄动物、鸟类、龙、恐龙以及其他生物。

对于人形,它需要髋部、脊柱、头部、两条带手的手臂和两条带脚的腿。手指、脚趾和上胸部是可选的。VRM 通过它的人形骨骼标签来匹配(VRM 详细介绍)。其他人形绑定按骨骼名称匹配,支持下面任意一种命名规范,有没有 mixamorig: 或 Armature| 这样的前缀都可以。

对于动物或生物,或者骨骼名称不符合以上任何一种命名规范的人形,afk.ai 会根据骨骼的名称、连接方式和所在位置来匹配。然后,它会对照每根骨骼应在的位置检查匹配结果:腿在身体下方,左边的在左边,尾巴在后面。如果匹配不成立,就改由我们的 AI 为模型绑骨。

扭转骨骼、滚动骨骼、IK 骨骼、辅助骨骼和末端骨骼都不会被改动,头发、布料、尾巴或其他不属于身体的骨骼也一样。它们保持原样,权重也不变。

绑定骨骼命名示例
VRM 0 和 1.0VRM 人形标签leftUpperArm
MixamoMixamomixamorig:LeftForeArm
VRoid(导出为 FBX)VRoidJ_Bip_L_LowerArm
Unreal EngineUE 小白人lowerarm_l
Unity 和 Ready Player MeUnity HumanoidLeftLowerArm
3ds MaxBipedBip01 L Forearm
  • Sprint
  • Dance Groove
  • Two-hand Blast
  • Roll
  • Attack Ground Pound
  • Dodge Left
afk.ai 的六个动画在同一个模型自己的骨架上播放,和在 afk.ai/rig 上看到的一样,弹簧骨骼让头发和外套下摆摆动起来。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 制作。

使用下载的文件

  • Blender:选择 File > Import > glTF 2.0。每个动画都会导入为一个 Action,物理效果已经烘焙在内。
  • Unity:下载时选择 FBX,然后把 Rig 标签页设为 Humanoid。也可以用 glTFast 导入 GLB。
  • Unreal Engine:下载 FBX,或者导入 GLB。身体骨骼使用 UE 小白人的名字(pelvis、spine_01、thigh_l),所以 Unreal 的 IK Retargeter 可以自动映射它们。
  • Godot 和 three.js:直接加载 GLB。
  • VRChat 和 VTuber 应用:它们需要在 Unity 中设置好的模型或 VRM。你的头发和布料骨骼保留了原来的名字,所以可以在同样的骨骼上重新加上 PhysBones 或弹簧骨骼。
AvatarSample_C 上的 afk.ai/rig Animations 面板,打开了 Combat 类别,选中了 Sword Regular Combo
已绑骨模型上的 Animations(动画)面板:人形共有 593 个,按类别排列。勾选你想要的动画,它们会放进同一个文件。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 制作。

常见问题

什么是动画重定向?

就是把为一套骨架制作的动画放到另一套骨架上播放。骨骼需要一一匹配,动作也要根据静止姿势和身体比例的差异进行调整。如果你的模型已经绑好骨骼,afk.ai 会把这两件事都处理好。

能给已经有动画的模型再添加动画吗?

能。它原有的动画以原来的名字保留在文件中,你从 afk.ai 的 594 个动画中选择的动画会添加在旁边,使用同一套骨架。

重定向会改变我的蒙皮权重吗?

不会。模型每根骨骼上的权重都完全保持原样,包括头发和衣服的额外骨骼。

会保留头发和布料物理吗?

VRM 会。它的弹簧骨骼会在动画播放时进行模拟,运动会作为关键帧烘焙进下载的文件。FBX 或 GLB 文件不存储物理效果,因为物理是在制作模型的软件里设置的。它的头发和布料骨骼及其权重都会保留,所以你可以在引擎里重新给它们设置物理。

需要 Unity、Blender 或骨骼映射表吗?

不需要。一切都在浏览器中的 afk.ai/rig 上完成:上传模型,选择 Use its skeleton,挑选动画,然后下载。

如果我的模型骨架识别不出来怎么办?

那就不会问你这个问题。afk.ai 的 AI 会像处理任何模型一样,从头给它绑骨,换上一套包含手指的新骨架。

会保留我模型的面部表情吗?

下载的文件里暂时还不行。身体、头发和衣服都会保留。面部形状(混合形状)将随 VRM 导出一起支持。

绑好骨骼的动物或生物也能用吗?

能。上传时选择它的体型,比如四足或有蹄,然后选择 Use its skeleton。绑好骨骼的狗或马会保留自己的骨架和蒙皮权重,尾巴和耳朵也会一起保留。它会获得该体型的动画。

一共有多少个动画?免费吗?

人形有 594 个动画。你每月可以免费给 3 个模型绑骨,并在上面预览所有动画。免费账号每月可以下载 3 个动画,Pro 解锁全部动画。

给你的模型绑骨、做动画

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

给模型绑骨

更多教程