00:00 / 00:00

Persona

摄像头追踪

摄像头源用连接在运行 Persona 的电脑上的摄像头捕捉你的面部、手部和身体。它在这台电脑上运行 Google 的 MediaPipe,不需要手机或动捕应用,还能和网络源组合使用——面部来自手机、身体来自 mocopi、手指来自摄像头。一个摄像头可以同时驱动多个 Live2D 和 VRM 形象

配置

  1. 捕捉摄像头追踪区块里打开启用摄像头追踪。第一次打开时会创建摄像头源,也就是一张名为 MediaPipe 网络摄像头的卡片
  2. 点开卡片进入设置,选好相机,再决定要运行哪些任务
  3. 用卡片上的面部身体手部按钮分配形象
  4. 面向前方、保持自然表情并站直,然后点卡片下方的校准

在 macOS 上,摄像头第一次启动时系统会请求摄像头权限;如果被拒绝了,见 疑难排查

来源设置

摄像头源只有一个,启用摄像头追踪就是它的开关——卡片上没有单独的开关。这个开关独立于启用面部捕捉启用姿态捕捉,后两者只控制网络源。关闭它会保留任务选择和形象分配,重新打开后照原样恢复,不会改动其他源的分配

设置作用
相机使用哪个摄像头。默认摄像头跟随系统默认设备;已经断开的摄像头显示为不可用的摄像头
面部捕捉表情和头部动作。默认开启
手部追踪Live2D 的手部输入,以及 VRM 形象的手臂和手指。默认开启
身体追踪VRM 形象的躯干和腿部。默认关闭
镜像追踪默认开启:形象像镜子里的你一样动,你的右手驱动它的左手。关闭后左右不再对调
处理方式CPU(默认)或 GPU。GPU 可以提高追踪帧率,但会和形象渲染共用显卡
〈某某〉的手部动作手部由摄像头捕捉的每个 VRM 形象各一行:手臂和手指(默认)或仅手指,见 VRM

只有开启的任务会被加载和运行。更换相机、开关任务或更改处理方式都会让摄像头重新启动

Web 控制台插件 API 编辑的是同一个源、同样的任务和分配。摄像头列表、校准和预览只在桌面端

分配形象

网络源的卡片上只有一个分配虚拟形象按钮,摄像头的卡片上则有三个:面部身体手部。它们打开的是同样的多选框,其中身体只列出 VRM 形象。每个形象的这三项各自只归一个源,摄像头和设备捕捉正是这样组合起来的——区块底部的提示说的也是这件事

所以同一个形象可以面部来自 LAPLACE Persona Tracker、身体来自 mocopi、手指来自摄像头。勾选一个已由其他源在同一通道捕捉的形象时,会和其他源一样弹出重新分配捕捉对话框。关闭某项任务后,分配给它的形象在这一通道上不再被捕捉;Persona 不会自动改用其他源

和其他源一样,一个摄像头可以同时驱动多个形象,它们收到的是同一份捕捉数据

校准

校准在卡片下方的状态行上,已有校准后显示为重新校准。只有摄像头看到面部、手或身体时它才可用。预览下方的提示给出了姿势:保持自然表情,面向前方站直,然后校准

  • 面部——这一刻的头部姿态和表情成为中性:头部角度和前后倾都以它为基准,表情则从你放松时的脸算起。校准之前,摄像头看到的第一张脸会被当作中性
  • 手部——在 VRM 上,校准后下一个只有一只手入镜的时刻,会记下你的手离摄像头多远、放在多高,并据此缩放手臂的伸展范围
  • 身体——你面朝的方向和站的位置成为转身和移动的原点。弯着的腿不会被当成静止姿势

重新启动摄像头或更改镜像追踪会丢弃校准

预览与帧率

卡片下方的摄像头追踪预览把 MediaPipe 找到的特征点画成线条——面部的眼睛、嘴和轮廓,还有手和身体——开启镜像追踪时按镜像显示。它从不显示摄像头画面,两次结果之间保持最新的特征点,不会在两次更新之间插值。上方的状态行显示源的状态,捕捉期间还会显示追踪帧率,例如 tracking · 30 FPS

追踪帧率统计的是每秒完成的更新次数,和显示 FPS 计数器显示的舞台帧率是两回事。Persona 向摄像头请求最高 60 fps;实际能达到多少,取决于摄像头真正给出的帧率、开启了几项任务——每一帧上它们依次运行——以及处理方式。再快的 GPU 也不能让画面比摄像头给得更快,每多开一项任务都可能降低帧率

状态

卡片以及启用摄像头追踪旁边的状态,使用和其他源相同的 状态,只是以摄像头检测到的内容为准:

状态含义
off启用摄像头追踪已关闭,或者所有任务都关着
waiting…摄像头正在启动,或者在面部捕捉关闭时没有检测到手或身体
tracking某项开启的任务检测到了面部、手或身体——所以画面里没有脸也可能显示 tracking
no face面部捕捉已开启但看不到脸,也没有检测到手或身体

预览上方的状态行还会在摄像头和追踪器加载时显示 starting…,失败时显示 unavailable,并附上说明和重试按钮。面部捕捉姿态捕捉区块的状态只统计网络源

各项任务驱动什么

Live2D

  • 面部走和手机相同的 映射FaceAngleXMouthOpen 等推导出的输入,以及 ARKit* 输入,经由模型的参数绑定生效
  • 手部提供 28 个 手部输入,同样经由模型的绑定到达参数
  • 身体在 Live2D 上没有可驱动的对象:Live2D 没有人形骨骼,Persona 也不会凭空生成躯干或四肢参数

VRM

  • 面部像手机一样驱动表情、视线和头部,perfect sync 也照常生效
  • 手部手臂和手指时驱动肩部、手臂、手腕和手指:你的手腕在画面中的位置成为手臂的目标点,再按这个形象自己的手臂长度求解。仅手指只驱动手指骨骼
  • 身体驱动躯干和腿部,并按估算移动形象。左右和上下跟随你在画面中的位置;前后根据躯干在画面中显得多大来判断,限制在 ±0.5 m 以内。这不属于绝对位置追踪,也不会把脚固定在地面上

身体追踪不会移动手臂,手臂动作来自手部追踪。面部源正在驱动形象时,头部和颈部仍归它

与 VMC 或 mocopi 一起使用

VMCmocopi 驱动形象的身体时,肩部和手肘仍归这个源,摄像头的手部只在其上叠加手腕和手指的旋转。选仅手指时,手腕也留给身体源

手部输入

手部追踪为 Live2D 的 参数绑定 提供下列输入,在编辑器里归在手部一组。名称沿用 VTube Studio 的手部追踪,并加入 HandLeftAngleYHandRightAngleY;每个 HandLeft… 输入都有对应的 HandRight…

输入范围含义
HandLeftFound0 – 1检测到这只手时为 1
HandLeftPositionXHandLeftPositionYHandLeftPositionZ−10 – 10手腕位置:X 向外、Y 向上、Z 朝向摄像头,Z 由手掌大小估算
HandLeftAngleXHandLeftAngleZ−180° – 180°手腕旋转
HandLeftAngleY−90° – 90°手腕旋转
HandLeftOpen0 – 1五根手指的平均值
HandLeftFinger_1_ThumbHandLeftFinger_5_Pinky0 – 1每根手指,伸直时为 1
BothHandsFound0 – 1两只手都检测到时为 1
HandDistance0 – 10两个手腕之间的距离

没有自带绑定的模型会自动绑定与手部输入同名的 Cubism 参数,并使用参数自己的范围,所以按 ±1 制作的参数不会被当作 ±10 来驱动

局限

  • MediaPipe 的面部 blendshape 沿用 ARKit 的名称,但没有舌头,tongueOut 永远不会动——摄像头画面并不等同于 iPhone 的原深感摄像头
  • 一切都从单个画面估算:手的远近看手掌大小,身体的前后看躯干大小。它们是估计值,不是测得的位置
  • 被遮挡、与另一只手重叠或离开画面的手会被舍弃,而不是去猜。身体追踪需要双肩和双髋都在画面内
  • 在 VRM 上,暂时丢失的手或身体会保持 200 毫秒,然后在约 0.4 秒内融回底下的姿势。在 Live2D 上,丢失的手 Found 输入归零,其他输入保持最后的值,好让模型自带的淡出播完

隐私

追踪完全在这台电脑上运行,MediaPipe 的模型随应用一起打包,启动时不会下载任何东西。摄像头画面不会离开 Persona——连控制窗口里的预览收到的也只有特征点。MediaPipe 库本来会向 Google 上报使用统计,Persona 拦截了这个请求。存了什么、谁能读取,见 隐私与安全

疑难排查

「摄像头访问被拒绝」

在系统设置中允许 Persona 使用摄像头,然后重启 Persona。macOS 上的位置是系统设置 → 隐私与安全性 → 摄像头,更改后的权限要等 Persona 重启后才生效

「摄像头不可用」

摄像头已断开,或者正被其他应用占用。换一个相机,或点重试

「无法启动摄像头追踪」

追踪器没能加载。点重试重新加载

最后更新于 2026年9月19日

Tech otakus destroy the world