Persona 可接收移动端应用通过局域网传输的 ARKit 面部捕捉数据,并逐帧映射至 Live2D 模型的参数,或 VRM 虚拟形象 的表情与骨骼。面部捕捉由移动端设备实时计算。
移动端设备须满足对应面部捕捉应用的硬件要求,并与运行 Persona 的电脑连接至同一本地网络。
此外,亦可直接使用电脑连接的 摄像头 捕捉面部、手部与身体姿态,或利用 麦克风 驱动口型同步。
Persona 支持同时运行多个捕捉源。每个源均可独立分配给场景中的一个或多个虚拟形象。例如,多位协作者可各持一部手机,在同一台电脑(或通过 VPN 连接)分别驱动各自的虚拟形象。
捕捉源
捕捉位于 控制面板 左栏,与当前选中的图层无关。捕捉源属于应用全局设置,切换场景后依然保留。
面板由上至下依次为:
- 面部捕捉:启用面部捕捉总开关与面部捕捉源列表,默认包含一个 LAPLACE Persona Tracker 源。
- 姿态捕捉 适用于VRM:启用姿态捕捉总开关与姿态源列表,支持 VMC 与 mocopi 源,默认包含一个 VMC Protocol 源。场景中没有 VRM 形象时,此处会显示提示。
- 本机 IP 地址:列出本机局域网地址的卡片,供填入手机端捕捉应用。
- 摄像头追踪:用电脑摄像头捕捉面部、手部与身体,拥有独立开关。详见 摄像头追踪。
- 口型同步:用麦克风音频驱动嘴部动作。详见 口型同步。
- 手柄:游戏手柄映射。详见 手柄。
每个总开关控制对应通道的网络数据接收,开关旁显示该通道的汇总状态。每个源以一张卡片呈现,显示应用图标、名称、实时状态与开关。摄像头卡片没有自己的开关,由所在分区的启用摄像头追踪开关控制。
点击源卡片可展开其配置面板:
| 字段 | 说明 |
|---|---|
| 类型 | 捕捉源使用的协议类型(只读),重命名后仍可通过此字段识别 |
| 名称 | 自定义显示名称;留空时显示协议默认名称 |
| 追踪器 IP | 面部捕捉源专用。指定特定追踪器的 IP 地址;留空时接收任意追踪器的数据 |
| 端口 | iFacialMocap、LAPLACE Persona Tracker、VMC 与 mocopi 源专用。该源接收数据的监听端口,新添加的源会自动选用首个空闲端口。若与已有源冲突将自动还原为原值;仅同类 iFacialMocap 源或同类 LAPLACE Persona Tracker 源之间支持共用端口 |
各源列表末尾的添加面部来源…与添加姿态来源…卡片可为对应通道添加任一支持的协议。配置面板底部的移除来源可删除当前源。
为捕捉源分配虚拟形象
点击源卡片上的分配虚拟形象按钮会打开多选列表。勾选该源需要驱动的形象,或点击全选勾选列表中的全部形象。列表只列出该源所属通道能够驱动的形象,因此姿态源只列出 VRM。
摄像头源卡片则提供面部、身体与手部三个按钮,每个通道一个,详见 摄像头追踪。
在同一通道内,每个虚拟形象只能分配给一个捕捉源。已分配给其他源的形象会标记为「由〈某某〉捕捉」。勾选这样的形象会弹出重新分配捕捉确认对话框,列出所有受影响的形象;确认之前不会做任何转移。
单个源可同时驱动多个虚拟形象,并向每个形象发送完全相同的捕捉数据,适合用一部手机同步控制双形象。
各虚拟形象的详情面板中也有捕捉区块,用于只属于该形象的设置:Live2D 模型整体移动、控制器移动 与麦克风口型同步。麦克风口型同步决定麦克风何时接管该形象的嘴部动作,详见 口型同步。由哪个网络源或摄像头驱动该形象,则只在源卡片中指定。
总开关与源开关
捕捉源卡片的状态受两层控制制约:源自身的开关,以及该通道的总开关(启用面部捕捉或启用姿态捕捉)。任一开关处于关闭状态时,该行状态均显示为 off;仅当两者同时开启时,卡片才会显示源的实时连接状态。
此设计便于用户临时单停某一设备,或在无需逐个调整各源的前提下一键切断整条通道的数据接收。
支持的协议
各协议的具体配置步骤与通信原理详见对应文档:
若需同时使用多个相同协议的源,请在各卡片的追踪器 IP 字段中填入对应手机的局域网 IP 地址。未填写 IP 的源将自动接收尚未分配给其他同类源的发送方数据。如需用两部手机分别驱动两个不同形象,请为每个源明确绑定各自对应的 IP 地址。
各源提供的数据
三种面部捕捉协议均完整传输全部 52 个原始 ARKit blendshape、头部旋转与位置数据,并原生支持 VRM 完美同步 (perfect sync)。输入推导、眨眼锁存与睁眼校准统一由 Persona 负责处理。下表对比了各协议在连接方式、传输开销与数据精度上的差异:
| 维度 | 3rd Party UDP | iFacialMocap / Facemotion3d | LAPLACE Persona Tracker |
|---|---|---|---|
| 连接方式 | Persona 发送广播请求,手机通过 UDP 回传数据 | Persona 发送连接请求,手机应用开始传输数据 | 手机端自动发现响应请求的电脑,支持列表点选 |
| 配置方式 | 在手机应用内开启第三方串流 | 在手机应用内手动填写电脑的局域网 IP | 点击连接选择目标电脑;亦可手动输入 IP 地址 |
| 端口 | 请求发往 21412,数据回传至临时端口 | 49983 | 19700(双向收发共用) |
| 权重精度 | JSON 浮点数 | 量化为 0–100 整数(步进 1%) | Float32 |
| 数据格式 | JSON,每帧约 2.6 KB,按字段名解析 | 纯文本,每帧约 950 字节,逐段解析 | 二进制,每帧 248 字节,52 个权重按固定偏移存储 |
| 乱序处理 | 无帧序号,旧帧可能覆盖较新的捕捉数据 | 无帧序号,旧帧可能覆盖较新的捕捉数据 | 内置帧序号,自动丢弃过期迟到帧 |
| 协议开发方 | VTube Studio | iFacialMocap | LAPLACE(统一开发移动端、桌面端与协议) |
对于增益倍率较大的通道,整数量化的阶梯效应会更加明显。例如,Persona 对嘴角下垂信号默认应用 5 倍增益,1% 的输入跳变在放大后可能引起肉眼可见的表情阶跃。
LAPLACE Persona Tracker 还支持一键校准,校准数据会自动保存。内置省电模式可调暗屏幕,预览界面采用面部线框渲染以避免显示摄像头原始画面。详见 LAPLACE Persona Tracker。
这 52 个原始数值亦以独立的 ARKit* 输入形式暴露在 参数绑定 编辑器中。Live2D 模型既可使用 Persona 经平滑处理的推导输入,也可直接绑定手机原始 blendshape 数值,或将两者结合使用。
摄像头 的面部追踪从视频画面中推导出同等的头部姿态与 blendshape 数据,仅缺少 tongueOut(吐舌)。
模型信息 面板中的完美同步指标仅统计模型自身覆盖的 ARKit 通道数量,与当前接入的捕捉源无关:Live2D 统计其绑定读取了多少个不同的 ARKit 输入,VRM 则统计模型表情或网格形态键覆盖了多少个标准 ARKit 形状。
状态
每张源卡片上的状态标签,以及各总开关旁的汇总状态,实时反映当前的连接与数据状态:
| 状态 | 说明 |
|---|---|
off | 该源自身或所属通道的总开关已关闭 |
waiting… | 已启用,但超过 1.5 秒未收到任何数据 |
tracking | 正在接收有效数据帧且人脸识别正常 |
no face | 持续接收到数据帧,但移动端摄像头未识别到人脸 |
单源状态用于排查对应硬件设备的连通性,总开关旁的汇总状态则反映整条通道是否有数据流入。
摄像头源沿用相同的状态标识,但只要任意已启用的检测任务(面部、手部或身体)命中即显示 tracking,详见 摄像头追踪。面部捕捉与姿态捕捉的汇总状态仅统计网络源。
捕捉数据如何抵达模型
捕捉数据进入 Persona 后,依序经过以下三个处理阶段:
- 接收:接收端将对应协议的网络报文解析为中立的数据帧,包含头部旋转、头部平移位置与 52 项 ARKit blendshape。后续两个阶段将对分配给该源的每个虚拟形象独立执行。
- 推导:数据帧被转换为 VTube Studio 的标准输入词汇,即模型制作者通常使用的参数信号名(如
FaceAngleX、EyeOpenLeft、MouthSmile、Brows等)。与此同时,52 个原始 ARKit 通道以ARKit*为前缀原样并列提供,不经过锁存、校准或增益处理。 - 映射:若虚拟形象设置了逐输入 输入校准,原始输入值会先被重映射至其原生量程。随后,每条 参数绑定 将一个或多个输入加权求和,依次经过输入范围重映射、输出范围限定、响应曲线与逐参数平滑,最终写入目标 Cubism 参数。
头部旋转、侧倾、眨眼与开合、视线凝视、眉毛形态、鼓腮、张嘴幅度、嘴型以及微笑/撇嘴等均可被驱动。模型未包含的参数自动跳过;若当前帧未包含某参数的数据,该参数将平滑释放回默认姿态,而非冻结在上一帧数值。
使用 iPhone(ARKit)面部捕捉时,撇嘴与明显的噘嘴都会降低 MouthSmile,带动嘴型参数 ParamMouthForm 向 −1 变化。
自带映射的模型
适用于Live2D若 Live2D 模型根目录附带 .vtube.json 配置文件,Persona 将直接沿用该模型特有的映射设定(包括参数映射配对、范围限制、增益倍率与平滑系数),而非使用内置默认预设。即便原作者反转了双眼绑定、翻倍了开眼范围或采用了非标准参数名,模型在 Persona 中的动态表现也将与 VTube Studio 完全一致。
未附带 .vtube.json 的模型则采用 Persona 的内置映射表,该映射基于大量真实 ARKit 动作捕捉样本调优设定。
VBridger 参数
适用于Live2DVBridger 是一个表达式引擎:用户自行编写计算公式,每个输出参数由 1 至 3 条基于 52 项 ARKit 形状的表达式构成。社区通用的「标准」是随软件附带的 VBridger_AdvancedARKit_V3.0 预设。该预设新增了 VTube Studio 内置输入列表中没有的参数,例如 MouthPucker、MouthFunnel、MouthShrug、MouthPressLipOpen 以及 6 项 Body* 输入,它们在运行时由 VBridger 插件注入。
因此,Persona 不把这些名称当作独立的输入。从 .vtube.json 导入绑定 时,Persona 会把每个名称展开为 VBridger 预设中定义的加权求和公式:
MouthPucker展开为(mouthDimple_R + mouthDimple_L) × 2 − mouthPucker,噘嘴时为负值。- 6 项
Body*参数与对应的FaceAngle*、FacePosition*采用相同公式。
展开后,它们在绑定编辑器中显示为普通的加权多输入绑定,每个权重都可以调整。
这意味着专为 VBridger 绑定的模型无需安装 VBridger 软件即可在 Persona
中驱动。配置文件中的缩写参数名(如 EyeSquintL、MouthDimpleR)也能被识别。
MouthOpen 与 JawOpen 是两个独立的输入:MouthOpen 表示嘴唇张开的程度,JawOpen 表示下颌下垂的幅度,对应 VBridger 模型中常用的 ParamMouthOpenY 与 ParamJawOpen 组合。JawOpen 的数值与 ARKitJawOpen 完全相同,两个名称在绑定中可以互换使用。
模型位置移动
适用于Live2D身体前倾或后仰会联动驱动整个虚拟形象的舞台位移,而非改变模型内部的绑定参数:模型随头部空间位置的水平与垂直位移进行平移,并随着人物靠近或远离摄像头自动缩放。该表现与 VTube Studio 内置机制一致,包含其默认的移动幅度与平滑滤波,并可通过 .vtube.json 中的 ModelPositionMovement 字段实现逐模型个性化配置。
VRM 虚拟形象
面部捕捉源同样可以直接驱动 VRM 虚拟形象,差异仅在于管线最后一步由表情与骨骼接管,而非写入 Cubism 参数。
制作了全部 52 个 ARKit blendshape 表情的模型(即 perfect sync / 完美同步)会跳过输入推导,直接由手机原始 ARKit 权重 1:1 驱动,保留细腻的面部细节。表情名称匹配不区分大小写,以兼容不同的命名习惯。若部分或全部 ARKit 形状仅存在于网格形态键而未注册为 VRM 表情,只要模型总共集齐全部 52 个形状,Persona 也会在加载时自动补齐缺失的 VRM 表情。
只覆盖一部分不算完美同步:52 个表情中只有 51 个的模型会回退至下文的通用映射。模型信息 中的完美同步一行会显示实际匹配的数量。
对于未实现 perfect sync 的模型,推导信号将映射至模型的预设表情与标准骨骼:
- 嘴部:张嘴、撮口、噘嘴与微笑复合映射至 VRM 元音口型表情(
aa、ih、ou、oh),各形状之间内置互斥约束算法,避免出现不自然的口型重叠。 - 眼部:优先使用独立的分离式左/右眼眨眼表情;若模型未提供分离表情,则回退至全局合并眨眼。
- 头部:偏航 (Yaw)、俯仰 (Pitch) 与翻滚 (Roll) 旋转,部分旋转分量会智能分摊至脊椎与胸部骨骼,呈现自然的躯干跟随转动效果。
- 视线:通过 VRM 标准 look-at 系统驱动眼球朝向,自动兼容骨骼驱动与表情变形驱动两种实现。
与待机动画的切换机制
捕捉功能处于激活状态时,实时捕捉数据优先接管形象控制权,并自动挂起待机动画中的自动眨眼逻辑。关闭捕捉后,形象立即恢复完整的待机表现。
捕捉数据意外中断时形象如何表现,由各形象待机面板中的追踪丢失时选项决定:
- 保持最后姿势(默认):将形象冻结在最后一帧有效捕捉数据上。
- 回到待机:平滑过渡回待机循环动画。
无论选择哪种,眼部控制都会被释放,在捕捉恢复前照常自动眨眼。Live2D 模型还可以指定一段补位动作,详见 追踪丢失时。
无需校准
Persona 的手机面部捕捉管线不提供中性姿态校准,其设计理念与 VTube Studio 的 ARKit 模式一致:系统直接采用移动设备报告的绝对头部姿态四元数。建议将手机置于正对自身、高度大致与视线齐平的位置;若手机摆放位置过低,模型可能会呈现持续抬头的仰角姿态。
上述规则仅针对手机面部捕捉源;若使用电脑 摄像头,则可在 Persona 界面内执行本地姿态校准。此外,也可在参数绑定编辑器中按需对单个输入执行 输入校准,以适配个人的表情或动作幅度。
摄像头追踪
摄像头追踪利用电脑配备的摄像头完成面部、手部与身体姿态捕捉,由独立的启用摄像头追踪总开关管理。每个虚拟形象的面部、身体与手部数据可分别来源于不同的捕捉源,因此摄像头常用于在手机面部捕捉和独立动作捕捉套件的基础上补充手部捕捉。详见 摄像头追踪。
口型同步
口型同步利用麦克风音频输入驱动虚拟形象的嘴部运动,系统支持为每支麦克风独立保存音频校准配置。各虚拟形象详情中的麦克风口型同步可配置为关闭、始终或面部捕捉不可用时。详见 口型同步。
手柄
连接标准游戏手柄(如 Xbox、PlayStation 或 Switch Pro 控制器),可将摇杆与按键映射为 Live2D 参数绑定、舞台移动、快捷键触发、VRM 骨骼与表情控制,支持多套独立配置方案与组合键绑定。详见 手柄。
疑难排查
状态持续显示为「waiting…」
- 确认手机与电脑处于同一局域网内,且路由器未开启 AP 隔离或设备间访问限制(公共 Wi-Fi 与访客网络通常默认阻断局域网通信)。
- 检查操作系统防火墙,确保已放行 Persona 的入站 UDP 流量。
- 断开所有 VPN 代理连接。虚拟网卡常会劫持或丢弃广播数据包。虽然 Persona 会在每张物理网卡上定向发送子网广播,但部分 VPN 路由策略仍会彻底阻断此类流量。
若广播确实无法穿透网络环境,可在启动 Persona 前通过环境变量硬编码指定手机 IP:
| 环境变量 | 说明 |
|---|---|
PERSONA_VTS_PHONE_IP | 在常规子网广播之外,向该特定 IP 额外发送 VTube Studio 发现握手包 |
PERSONA_IFM_PHONE_IP | 针对 iFacialMocap / Facemotion3d,完全跳过网络广播发现,直接与该指定 IP 建立通信 |
弹出「无法使用端口」通知
该端口已被其他应用占用,或被系统保留(Windows 会为 Hyper-V、WSL2 与 Docker 预留部分端口段,可运行 netsh interface ipv4 show excludedportrange protocol=udp 查看)。请在对应源卡片的端口字段中改用不在所列范围内的端口,并在捕捉应用中填入相同的端口。同一类源的失败端口会合并在一条通知中;端口恢复可用或不再被任何已启用的源使用后,通知将自动撤回。
模型产生动作,但响应部位与实际动作不符
检查模型目录下是否包含 .vtube.json 配置文件。Persona 会优先采用其中的映射规则。可尝试在 VTube Studio 中加载该模型,排查对应参数的表现是否一致。
部分参数始终不产生动态
在主界面展开该模型的信息面板,查看识别到的参数总数。使用了非标准命名参数的模型,或沿用旧版 Cubism 2 规范的历史模型,可能会导致系统推导出的标准信号无法找到匹配的目标参数。
模型完全无动态,但状态栏显示为「tracking」
打开对应源卡片上的分配虚拟形象列表,确认已勾选该形象。收到数据帧后,还需将模型分配给该捕捉源才会驱动。每个形象在同一通道内只能归属于一个源,请同时排查该形象是否已被其他源占用。
接入两部手机,但控制的却是同一个虚拟形象
若两个源卡片的追踪器 IP 均处于留空状态,先到达的数据包将被任意空闲源捕获。请为每个源卡片明确填入对应手机的局域网 IP 地址,确保数据流准确分发给目标形象。
面部捕捉与姿态捕捉协议本身不包含身份认证机制。在捕捉功能启用期间,局域网内任何响应发现广播的设备,或直接向 VMC 监听端口发送数据的设备,均可控制你的虚拟形象。
最后更新于 2026年11月3日