摄像头源用连接在运行 Persona 的电脑上的摄像头捕捉你的面部、手部和身体。它在这台电脑上运行 Google 的 MediaPipe,不需要手机或动捕应用,还能和网络源组合使用——面部来自手机、身体来自 mocopi、手指来自摄像头。一个摄像头可以同时驱动多个 Live2D 和 VRM 形象
配置
- 在捕捉的摄像头追踪区块里打开启用摄像头追踪。第一次打开时会创建摄像头源,也就是一张名为 MediaPipe 网络摄像头的卡片
- 点开卡片进入设置,选好相机,再决定要运行哪些任务
- 用卡片上的面部、身体和手部按钮分配形象
- 面向前方、保持自然表情并站直,然后点卡片下方的校准
在 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
- 面部走和手机相同的 映射:
FaceAngleX、MouthOpen等推导出的输入,以及ARKit*输入,经由模型的参数绑定生效 - 手部提供 28 个 手部输入,同样经由模型的绑定到达参数
- 身体在 Live2D 上没有可驱动的对象:Live2D 没有人形骨骼,Persona 也不会凭空生成躯干或四肢参数
VRM
- 面部像手机一样驱动表情、视线和头部,perfect sync 也照常生效
- 手部选手臂和手指时驱动肩部、手臂、手腕和手指:你的手腕在画面中的位置成为手臂的目标点,再按这个形象自己的手臂长度求解。仅手指只驱动手指骨骼
- 身体驱动躯干和腿部,并按估算移动形象。左右和上下跟随你在画面中的位置;前后根据躯干在画面中显得多大来判断,限制在 ±0.5 m 以内。这不属于绝对位置追踪,也不会把脚固定在地面上
身体追踪不会移动手臂,手臂动作来自手部追踪。面部源正在驱动形象时,头部和颈部仍归它
与 VMC 或 mocopi 一起使用
VMC 或 mocopi 驱动形象的身体时,肩部和手肘仍归这个源,摄像头的手部只在其上叠加手腕和手指的旋转。选仅手指时,手腕也留给身体源
手部输入
手部追踪为 Live2D 的 参数绑定 提供下列输入,在编辑器里归在手部一组。名称沿用 VTube Studio 的手部追踪,并加入 HandLeftAngleY 与 HandRightAngleY;每个 HandLeft… 输入都有对应的 HandRight…:
| 输入 | 范围 | 含义 |
|---|---|---|
HandLeftFound | 0 – 1 | 检测到这只手时为 1 |
HandLeftPositionX、HandLeftPositionY、HandLeftPositionZ | −10 – 10 | 手腕位置:X 向外、Y 向上、Z 朝向摄像头,Z 由手掌大小估算 |
HandLeftAngleX、HandLeftAngleZ | −180° – 180° | 手腕旋转 |
HandLeftAngleY | −90° – 90° | 手腕旋转 |
HandLeftOpen | 0 – 1 | 五根手指的平均值 |
HandLeftFinger_1_Thumb … HandLeftFinger_5_Pinky | 0 – 1 | 每根手指,伸直时为 1 |
BothHandsFound | 0 – 1 | 两只手都检测到时为 1 |
HandDistance | 0 – 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日