VRM 是一種 3D 角色格式,由 3D 舞台渲染;Live2D 也走這條管線
3D 舞台跑在 WebGPU 上,在沒有 WebGPU 的機器上自動改用 WebGL,並且執行於背景執行緒中,有助於減少複雜場景對介面反應的影響
VRM 0.x 與 VRM 1.0 模型都能載入,包括兩者各異的 look-at 與表情慣例,依對應版本的慣例處理模型。.vrm 或 .glb 走的是和 Live2D 模型同一套 開啟模型… 流程
內建虛擬形象
應用程式內建兩個 VRM 虛擬形象:
| 形象 | 規格 | 授權條款 |
|---|---|---|
| Milky Green | VRM 1.0 | VRM Public License 1.0 |
| RAYNOS-chan | VRM 0.x | Sony Character EULA |
Milky Green 要求必須署名——LAPLACE Live! and Milky Green aka. 明前奶绿——Persona 會把它連同其他第三方聲明一起顯示在 關於對話方塊 裡。模型自己的授權條款出現在資訊區塊的授權條款一列,作者要求署名時會被標示出來
相機
Live2D 模型是一塊可以拖曳和縮放的平面畫布,而 VRM 坐落在一個帶軌道相機的 3D 場景裡:
| 手勢 | 作用 |
|---|---|
| 拖曳 | 環繞虛擬形象旋轉 |
| 右鍵拖曳 | 平移相機目標點,選取了項目時也一樣 |
| Alt / ⌥ + 拖曳 | 平移相機目標點 |
| 滾輪 | 推近或拉遠 |
移動帶緩動,慣性手感和 Live2D 舞台一致;仰角在抵達兩極前就停住,相機因此永遠不會翻過去。重設相機回到預設取景,這個取景由虛擬形象自己的包圍盒推算而來,視角則把鏡頭設在 10° 到 90° 之間。相機的位置也可以在舞台詳細資訊裡輸入或拖曳調整——見 相機
相機屬於 場景 而不屬於模型,所以一個場景裡的每個 VRM 共用同一台相機
擺放
虛擬形象本身的擺放獨立於相機,以世界空間的公尺為單位,並帶有移動、旋轉與縮放的舞台控制點。它的位置區塊裡,X · Y · Z 欄位旁是一個 3D 位置控制項,旋轉欄位旁是一個旋轉球——見 視覺化控制項
縮放範圍是 0.05× 到 10×。彈簧骨骼物理會隨模型一起縮放,所以縮小或放大過的虛擬形象,頭髮依然動得正確
待機行為
Persona 會為載入後的 VRM 套用待機動作,避免模型一直保持 T-pose:
- 待機動畫——循環播放的身體動畫,逐模型選擇
- 眨眼——每 2–6 秒隨機一次
- 呼吸——胸腔與脊椎的緩慢起伏
- 彈簧骨骼——頭髮與衣物的物理,直接來自模型自己的彈簧骨骼設定
待機動畫位於選取模型的待機區塊,旁邊是選擇動畫…。它會開啟 素材庫 並收窄到動畫,那裡放著九段專門製作的待機循環:
站立 · 背手 · 叉腰 · 抱臂 · 倚靠 · 說話 · 坐姿 · 舞蹈 · 等待
那七段 動作片段 同樣可以當待機用,你自己加入的任何片段也可以,包括 你自己錄的。這九段專用待機循環可無縫銜接;其他片段的首尾可能不連續
因為這個設定是逐模型而不是逐場景的,同一個場景裡的兩個虛擬形象可以各擺各的姿勢
追蹤遺失時
待機區塊裡還有追蹤遺失時,決定臉部追蹤斷掉的這段時間裡,被追蹤驅動的那些參數怎麼辦:保持最後姿勢凍在最後收到的那一幀上直到追蹤恢復,這是預設;回到待機用約 0.3 秒過渡到待機動畫寫的值,追蹤回來時再過渡回去
Live2D 模型 在這兩項之外還能指定一個頂替用的動作,VRM 沒有這一項
動作片段
Persona 內建了七段來自 pixiv VRoid Project 的 VRM Animation(.vrma)片段,在任何已載入的 VRM 上都能播——和 Live2D 動作不同,它們不綁定到某個模型:
展示全身 · 打招呼 · 比耶 · 射擊 · 轉圈 · 模特姿勢 · 深蹲
每段片段都是一次性的:它在待機之上淡入,短暫保持最後一個影格,然後緩和地回到待機,而不是硬切回去。眨眼會在正在播放的片段之上繼續運作。片段出現在動作區塊,正是 Live2D 動作組所在的位置
正在播放的那個按鈕同時就是停止:再點一下讓它按待機的淡入時間提前回到待機,而不必等它播完。自動化 停止時也走這條路,而不是硬切
它們同時也是 素材庫 裡動畫下的列,和你自己加入的任何片段並列,點擊其中一列就會在已載入的 VRM 上播放它作為預覽
這個區塊的頂部還有錄製動作,把虛擬形象此刻的動作錄成一段新的 .vrma——見 錄製動作
匯入動畫片段
動畫類別支援以下格式:.vrma、Mixamo 的 .fbx,以及 MMD 的 .vmd。Mixamo 與 MMD 片段在載入時重定向到 VRM 的人形骨架上,此後和一段 .vrma 沒有區別——當待機用,當一次性動作用,或者在素材庫裡點一下預覽
整具骨架裡只有髖部會位移,而且位移量會按目標模型自己的比例換算,所以一段會走動的片段換到別的體型上,步幅依然合身。不含 Mixamo 骨架的 .fbx 無法作為動畫匯入素材庫
MMD 舞蹈會保留腿部 IK:Persona 依 VRM 自己的身體比例重新計算腳部與腳尖的 IK,讓雙腿跟上舞蹈的步伐。它終究是重定向到人形骨架上,而不是 PMX 模型本身,所以 MMD 的物理不會帶過來——頭髮與衣物仍由 VRM 自己的彈簧骨骼驅動
表情
表情區塊列出模型的表情詞彙——它的 1.0 預設名稱與自訂名稱,0.x 的預設名稱會被換算成 1.0 的對應名稱。按一下套用,再按一下移除,和 Live2D 的表情 一樣。臉部追蹤 驅動的是同一批表情,麥克風口型同步 則驅動其中的母音預設 aa、ih、ou、ee 與 oh
每個已啟用的表情下方都有權重滑桿,範圍為 1% 到 100%,用於調整表情強度。只有已啟用的表情會顯示滑桿;要關閉表情,請再次點擊對應按鈕
把全部 52 個 ARKit blendshape 都做成表情的模型具備 perfect sync 能力,它由手機的原始 ARKit 數值一比一驅動,而不經過 Persona 推導出的訊號。資訊區塊的完美同步一列會報出模型在這 52 個裡佔了幾個
區塊頂部的記住表情狀態預設開啟:你套用的表情連同它們的權重會隨手儲存,切回該模型或重新啟動應用程式時恢復。VRM 沒有 .vtube.json,所以寫入的是模型檔案旁的 <model>.persona.json 附屬檔案
服裝
帶有 LAPLACE_outfit 擴充的模型會在表情下方顯示服裝群組。VRM 標準表情支援變形目標、材質顏色與貼圖變換,但不支援網格顯隱。此擴充為服裝部件提供名稱與顯隱控制,適用於從 VRChat 等平台轉換的模型。Persona 將各項視為表情處理,因此可使用按鈕、權重滑桿、附屬檔案儲存與 外掛 API
臉部表情與服裝分組顯示,方便區分表情調整與換裝操作
MToon 材質
多數 VRM 虛擬形象使用 MToon,也就是這套規範自帶的卡通著色器。MToon 區塊在作者烘焙好的基礎之上做微調,逐模型實例生效:
| 控制項 | 範圍 | 作用 |
|---|---|---|
| 陰影 | 0 – 1 | 陰影色顯現得有多強 |
| 陰影偏移 | −1 – 1 | 移動亮部與暗部的分界 |
| 陰影硬度 | −1 – 1 | 這條分界有多硬 |
| GI 均衡 | −1 – 1 | 環境光把明暗壓平到什麼程度 |
| 法線強度 | 0 – 2 | 縮放法線貼圖;0 會把表面細節完全抹平 |
| 邊緣光 | 0 – 2 | 邊緣光的強度 |
| 邊緣光偏移 | −1 – 1 | 這道邊緣從輪廓往內裹多深 |
| 邊緣光菲涅耳強度 | 0 – 4 | 越高,這道邊緣越貼著輪廓收緊 |
| 邊緣光受光比例 | −1 – 1 | 0 是邊緣光與材質捕捉都畫成平的,1 是讓它們跟著場景燈光走 |
| 材質捕捉 | 0 – 4 | 縮放材質捕捉——那層球面疊加的反射。作者沒做材質捕捉的材質上不會有變化 |
| 描邊寬度 | 0 – 2 | 縮放作者設定的描邊 |
| 描邊受光比例 | −1 – 1 | 0 是描邊保持自己的顏色,1 是讓燈光替它染色 |
| 自發光 | 0 – 4 | 自發光的強度,留出餘量把局部頂過 泛光 閾值 |
| UV 動畫 | 0 – 4 | 縮放 UV 的捲動與旋轉速度;0 會把一張動起來的貼圖凍住 |
重設材質把每個滑桿都退回中性值——每個倍率回到 1,每個偏移回到 0,模型就完全按作者做的樣子渲染
姿勢追蹤
VRM 帶有人形骨骼,所以它還能透過 VMC 或 mocopi 自己的協定接收全身動作追蹤的驅動——VSeeFace、Virtual Motion Capture、mocopi 以及其他傳送端。Live2D 模型沒有這樣的骨架,因此這個區塊只對 VRM 出現
攝影機 也能充當姿勢來源,無需額外硬體:它的身體追蹤帶動軀幹與雙腿,手部追蹤帶動手臂與手指
VRM 上的快速鍵
針對表情與動作的 虛擬形象快速鍵 動作對 VRM 一樣有效:表情按名稱綁定,動作片段按它自己的檔案綁定。替換模型則不挑格式——一個快速鍵可以把某個圖層從 Live2D 模型換成 VRM,也能換回來
自動化 也能對它指定的 VRM 圖層執行同類操作——切換表情、播放動作、清除所有表情與替換模型——另外還有模型位置,可把虛擬形象移到儲存好的擺放
頭部、身體、視線與表情還可以直接綁給控制器,見 VRM 上的控制器目標
模型資訊
展開資訊即可看到載入進來的到底是什麼,用的是 VRM 的詞彙:
| 列 | 含義 |
|---|---|
| 來源 | 模型是內建的,還是你自己開啟的 |
| 檔案 | 載入的那個 .vrm,旁邊帶在資料夾中顯示的按鈕 |
| 規格 | VRM 0.x,或 1.0 規範的確切版本 |
| 骨骼 | 人形骨骼數量 |
| 彈簧骨骼 | 彈簧骨骼組數量——為零表示沒有頭髮或衣物物理 |
| 表情 | 表情數量 |
| 完美同步 | 模型帶有 52 個 ARKit blendshape 中的幾個 |
| 作者 | 模型內嵌中繼資料裡寫明的作者 |
| 授權條款 | 授權條款的 URL,要求署名時會加上標記 |
| 載入耗時 | 舞台載入這個模型所花的實際時間 |
切換
VRM 是淡入淡出,而不是硬切,除非場景的 顯示與隱藏 選了彈出或直接切換。這個淡變是螢幕空間的抖動——模型留在不透明渲染佇列裡,保持自己的深度排序;改用透明度淡變則會打亂這個排序,讓你透過臉看進頭的內部
在虛擬形象擺好姿勢、面朝相機之前什麼都不會渲染,所以舞台永遠不會露出一個初始化到一半的模型
最後更新於 2026年9月20日