教學教學閱讀約 5 分鐘

VRM 轉 FBX、GLB 轉 FBX 及反向轉換: 保留動畫的 3D 轉檔工具

在瀏覽器中把任何 3D 模型轉換為 GLB、FBX、USDZ、OBJ 或 STL,保留它的骨架、蒙皮權重、每個關鍵影格和臉部形狀。

afk.ai/rig/convert
把 VRM 拖到 afk.ai/rig/convert 上:它的預覽、選擇 FBX、FBX 會保留什麼,以及轉換後的檔案。等待過程已加速。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 製作。

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

  1. 開啟 afk.ai/rig/convert 並登入。
  2. 拖入你的 VRM。它會像在 VRM 軟體中那樣在預覽裡播放:頭髮擺動,表情可以一個個試。
  3. 選擇 FBX。頁面會針對這個模型列出 FBX 會保留什麼、改變什麼、捨棄什麼。
  4. 轉換為 FBX。檔案在我們的伺服器上產生,並自動下載。一個 VRoid 模型只要幾秒;數百個動畫則要幾分鐘。
  5. 匯入 Unity。把 FBX 拖進 Assets。在它的 Rig 分頁中,把 Animation Type 設為 Humanoid,然後按下 Apply。
afk.ai/rig/convert,選擇了 FBX:VRM 轉 FBX,以及它會保留、改變和捨棄的內容

VRM 轉 FBX

afk.ai/rig/convert,選擇了 FBX:帶動畫的 GLB 轉 FBX,以及它會保留、改變和捨棄的內容

帶動畫的 GLB 轉 FBX

afk.ai/rig/convert 會針對你拖入的模型,列出 FBX 會保留、改變和捨棄什麼:這裡分別是 VRM 格式的 AvatarSample_C,以及帶五個動畫的 GLB。

VRM 會有什麼變化

VRM 是一個帶有附加內容的 glTF,這些附加內容只有 VRM 軟體才能讀取。轉檔工具會保留其他軟體能用的一切,並把其餘部分變成它們能用的東西。

  • 表情:變成以表情命名的臉部形狀(blend shape),比如 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 個臉部形狀放在一起。

  • AvatarSample_C 的 Neutral 表情Neutral
  • AvatarSample_C 的 Joy 表情Joy
  • AvatarSample_C 的 Angry 表情Angry
  • AvatarSample_C 的 Surprised 表情Surprised
轉換工具預覽中的 JoyVRM,在 afk.ai 上
同一張臉,作為轉換後 FBX 的形狀鍵顯示在 Blender 中FBX,在 Blender 中
VRM 的四個表情在轉換工具預覽中的樣子,以及其中一個在轉換後的 FBX 中、用 Blender 開啟的樣子:一個以它命名的形狀鍵。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 製作。

每個關鍵影格,一格不差

轉檔工具常常會對動畫重新取樣、簡化曲線,或者讓動畫晚一格開始。這個工具不會。每個動畫的每個關鍵影格都落在原本的位置,每個動畫都保留自己的臉部動作,而且都從時間 0 開始,和原始檔案一樣。

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
轉換後 FBX 的三個 take,在 Blender 中渲染:動畫保持原樣,頭髮和外套的擺動已烘焙在內。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 製作。

在 Blender、Unity、Unreal 和 Godot 中使用

  • Blender:依序選擇 File、Import、FBX。每個 take 都會匯入為一個 Action,臉部形狀則匯入為形狀鍵。
  • Unity:把 Rig 分頁設為 Humanoid。每個 take 都是一個動畫片段,臉部形狀則是 Skinned Mesh Renderer 上的 blend shape。
  • Unreal Engine:以 Skeletal Mesh 匯入,並開啟 Import Morph Targets 和 Import Animations。
  • Godot 和 three.js:GLB 可以直接載入。
  • Apple 裝置:USDZ 可以在 Quick Look 和 Reality Composer 中開啟。
  • 3D 列印:STL(以實際尺寸、公釐為單位),或者 OBJ。
Blender 的 Shape Key Editor 列出 Neutral、A、I、U、E、O、Blink、Blink_L、Blink_R、Angry、Fun、Joy、Sorrow 和 Surprised,臉上顯示的是 Joy

VRM 轉出的 FBX:14 個表情變成形狀鍵,Joy 設為 1

Blender 中開啟的帶動畫 FBX:骨架正跳到一半,Outliner 中有五個動作,Action Editor 中每個影格都有關鍵影格

帶動畫的 GLB 轉出的 FBX:五個 take,每個影格都有關鍵影格,120 fps

在 Blender 5.2 中開啟的兩個 FBX 檔案。 模型:VRoid Studio 的 AvatarSample_C,由 pixiv 製作。

你的模型,任何格式

你在 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 中能用嗎?

可以,以 blend shape 的形式使用。每個表情都會變成一個以它命名的臉部形狀(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,任何引擎都能用。

幫模型綁骨

更多教學