教程教程阅读约 5 分钟
VRM 转 FBX、GLB 转 FBX 及反向转换: 保留动画的 3D 格式转换工具
在浏览器中把任何 3D 模型转换为 GLB、FBX、USDZ、OBJ 或 STL,保留它的骨架、蒙皮权重、每个关键帧和面部形状。
afk.ai/rig/convert 能把 3D 模型转换成另一种文件格式,同时不丢失让它动起来的东西。拖入一个 VRM,就能得到一个 Unity 能识别为已绑骨角色、并带有面部形状的 FBX。拖入一个带动画的 FBX,就能得到一个用于网页的 GLB。骨架、蒙皮权重和每个动画的每个关键帧都原样保留。
它能转换什么
它能读取 VRM 0 和 1.0、GLB、glTF(连同它的文件,或者打包在 ZIP 中)、FBX、OBJ、STL、PLY、USD 和 USDZ,最大 150 MB。它能写出五种格式,每种格式能保存的模型内容各不相同。转换之前,页面会告诉你是哪些。
| 格式 | 保留 | 舍弃 |
|---|---|---|
| GLB | 骨架、权重、每个动画、面部形状、材质和纹理 | 只有 VRM 独有的附加内容 |
| FBX | 同上,每个动画各是一个独立的 take | 只有 VRM 独有的附加内容 |
| USDZ | 骨架、权重、面部形状和一个动画 | 其他动画:USDZ 只能保存一条时间轴 |
| OBJ | 网格、材质和纹理,打包在 ZIP 中 | 骨架、动画和面部形状 |
| STL | 形状,按实际尺寸以毫米为单位 | 其他一切,包括颜色和纹理 |
怎样把 VRM 转换为用于 Unity 的 FBX
- 打开 afk.ai/rig/convert 并登录。
- 拖入你的 VRM。它会像在 VRM 应用中那样在预览里播放:头发摆动,表情可以逐个试。
- 选择 FBX。页面会针对这个模型列出 FBX 会保留什么、改变什么、舍弃什么。
- 转换为 FBX。文件在我们的服务器上生成,并自动下载。一个 VRoid 模型只要几秒;数百个动画则要几分钟。
- 导入 Unity。把 FBX 拖进 Assets。在它的 Rig 标签页中,把 Animation Type 设为 Humanoid,然后点击 Apply。

VRM 转 FBX

带动画的 GLB 转 FBX
VRM 会发生什么变化
VRM 是一个带有附加内容的 glTF,这些附加内容只有 VRM 应用才能读取。转换工具会保留其他软件能用的一切,并把其余部分变成它们能用的东西。
- 表情:变成以表情命名的面部形状(混合形状),比如 Joy、Angry 和 Blink。Unity、Unreal、Blender 和 three.js 都能驱动它们。
- 弹簧骨骼:头发和衣服的摆动会以关键帧的形式烘焙进模型的动画,效果和 VRM 应用中播放的一样。VRM 本身没有动画,所以先在 afk.ai 上给它加一些。
- 卡通着色:变成使用相同纹理的普通受光材质。如果是 GLB,你也可以要求改成平涂的无光照材质。
- 朝向:VRM 0 在大多数软件中是背对着的,所以会把它转过来面朝前方。
- 舍弃:只有 VRM 应用才读取的内容,比如它的骨骼标签、视线跟随、第一人称设置和作者信息。
我们转换了 VRoid Studio 的 AvatarSample_C。13.1 MB 的 VRM 变成了一个 10.5 MB 的 FBX,101 根骨骼、18,347 个顶点、14 个材质及其纹理全部保留,并且面朝前方。它的 14 个表情变成了名为 Neutral、Joy、Angry、Sorrow、Fun、Surprised、Blink 以及嘴型 A、I、U、E 和 O 的形态键,和 VRoid 生成的 54 个面部形状放在一起。
Neutral
Joy
Angry
Surprised
VRM,在 afk.ai 上
FBX,在 Blender 中每个关键帧,逐帧不差
转换工具常常会对动画重新采样、简化曲线,或者让动画晚一帧开始。这个工具不会。每个动画的每个关键帧都落在原来的位置,每个动画都保留自己的面部动作,而且都从零时刻开始,和原文件一样。
FBX 中的每个动画各是一个独立的 take,每根骨骼的每一帧都会写出来,没有任何简化。我们以每秒 240 次的频率对每根骨骼采样来测量。一个 GLB 转成 FBX,再把这个 FBX 转回 GLB,每一步都与转换前的文件相差不超过 0.002 mm 和 0.05 度。
我们在同一个模型上用 afk.ai 的五个动画试过:一个 7.2 MB 的 GLB 在几秒内变成了 29.3 MB 的 FBX。每个动画都是一个独立的 take,每秒 120 帧,每一帧都有关键帧,每个动画里都有头发和外套下摆的摆动。
代价就是 FBX 文件很大。把 afk.ai 全部 193 个免费动画放到一个角色上,生成的 FBX 约 230 MB,需要几分钟。
- Dance Groove
- Jumping Jacks
- Run Anime
在 Blender、Unity、Unreal 和 Godot 中使用
- Blender:依次选择 File、Import、FBX。每个 take 都会导入为一个 Action,面部形状则导入为形态键。
- Unity:把 Rig 标签页设为 Humanoid。每个 take 都是一个动画片段,面部形状是 Skinned Mesh Renderer 上的混合形状。
- Unreal Engine:作为 Skeletal Mesh 导入,并开启 Import Morph Targets 和 Import Animations。
- Godot 和 three.js:GLB 可以直接加载。
- Apple 设备:USDZ 可以在 Quick Look 和 Reality Composer 中打开。
- 3D 打印:STL,按实际尺寸以毫米为单位,或者 OBJ。

VRM 转出的 FBX:14 个表情变成形态键,Joy 设为 1

带动画的 GLB 转出的 FBX:五个 take,每帧都有关键帧,120 fps
你的模型,任何格式
你在 afk.ai/rig 上绑骨的模型也能以这五种格式下载:带你勾选的动画的 GLB 或 FBX,带一个动画的 USDZ,以及静止的 OBJ 或 STL。你转换过的模型会保存在这个浏览器的 Your Models(我的模型)中,以后可以再用另一种格式下载。你也可以用那里的 + 按钮添加你自己的任何模型,并以任何格式下载。
常见问题
怎样把 VRM 转换为 FBX?
把 VRM 拖到 afk.ai/rig/convert,选择 FBX,然后点击 Convert to FBX。它的骨架、蒙皮权重和纹理都会保留,表情会变成面部形状。
转换会保留我的动画吗?
会。在 GLB 和 FBX 中,每个动画的每个关键帧都会保留。USDZ 只能保存一个动画,所以只保留第一个。OBJ 和 STL 保存的是静止的模型。
我 VRM 的表情在 Unity 中能用吗?
能,作为混合形状使用。每个表情都会变成一个以它命名的面部形状(Joy、Blink、Angry),放在 Skinned Mesh Renderer 上,可以直接用脚本或动画来驱动。
会保留头发物理吗?
会把它烘焙进去。FBX、GLB 和 USDZ 文件无法携带弹簧骨骼,所以摆动会以关键帧的形式写进每个动画,效果和 VRM 应用中播放的一样。在你的引擎中,它无需设置物理就能播放。
能把 FBX 转换为 GLB,或者把 GLB 转换为 FBX 吗?
能,两个方向都可以,也能从 OBJ、STL、PLY 和 USDZ 转换。不支持 Collada(.dae)。
能转换为 VRM 吗?
暂时还不能。VRM 导出(带面部追踪和物理效果)即将推出。
为什么我的 FBX 这么大?
这里生成的 FBX 会保留每根骨骼的每一帧,所以动作是精确的。数百个动画就会有数百 MB。少选一些动画,或者使用小得多的 GLB。
免费吗?
免费,用免费账号即可:每天 10 次转换。文件最大 150 MB。
给你的模型绑骨、做动画
AI 在你的浏览器中为它绑骨,然后数百个动画就能在它身上播放。下载一个 GLB,任何引擎都能用。