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