00:00 / 00:00

Persona

VRM 虛擬形象

VRM 是一種 3D 角色格式,由 3D 舞台渲染;Live2D 也走這條管線

3D 舞台跑在 WebGPU 上,在沒有 WebGPU 的機器上自動改用 WebGL,並且執行於背景執行緒中,有助於減少複雜場景對介面反應的影響

VRM 0.x 與 VRM 1.0 模型都能載入,包括兩者各異的 look-at 與表情慣例,依對應版本的慣例處理模型。.vrm.glb 走的是和 Live2D 模型同一套 開啟模型… 流程

內建虛擬形象

應用程式內建兩個 VRM 虛擬形象:

形象規格授權條款
Milky GreenVRM 1.0VRM Public License 1.0
RAYNOS-chanVRM 0.xSony 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 的表情 一樣。臉部追蹤 驅動的是同一批表情,麥克風口型同步 則驅動其中的母音預設 aaihoueeoh

每個已啟用的表情下方都有權重滑桿,範圍為 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 – 10 是邊緣光與材質捕捉都畫成平的,1 是讓它們跟著場景燈光走
材質捕捉0 – 4縮放材質捕捉——那層球面疊加的反射。作者沒做材質捕捉的材質上不會有變化
描邊寬度0 – 2縮放作者設定的描邊
描邊受光比例−1 – 10 是描邊保持自己的顏色,1 是讓燈光替它染色
自發光0 – 4自發光的強度,留出餘量把局部頂過 泛光 閾值
UV 動畫0 – 4縮放 UV 的捲動與旋轉速度;0 會把一張動起來的貼圖凍住

重設材質把每個滑桿都退回中性值——每個倍率回到 1,每個偏移回到 0,模型就完全按作者做的樣子渲染

姿勢追蹤

VRM 帶有人形骨骼,所以它還能透過 VMCmocopi 自己的協定接收全身動作追蹤的驅動——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日

Tech otakus destroy the world