00:00 / 00:00

Persona

参数绑定

参数编辑器用于设置捕捉输入、权重、输入输出范围和响应曲线,决定捕捉数据如何驱动 Cubism 参数

Persona 首先照着模型自己的 .vtube.json 走,所以一个在 VTube Studio 里调好的模型加载进来就是它原本的样子。这个编辑器是在那之上改,改动写进模型旁边的附属文件,.vtube.json 本身不会被动

打开编辑器

选中一个 Live2D 图层,在它的详情里展开参数。这是模型详情里最靠下的区块,默认收起

本页介绍 Live2D 的捕捉参数绑定。VRM 虚拟形象 的面部捕捉直接驱动预设表情与人形骨骼;控制器则使用虚拟绑定目标

区块够宽时左右分栏:左边是输入清单,右边是选中那条绑定的设置。窄了就上下堆叠

输入清单

左边列出每一个可用的输入,而不只是已经绑上的——可直接为尚未绑定的输入添加参数。它们按类别分组:头部眼睛眉毛嘴巴手部鼠标,接着是完美同步,也就是 52 个原始 ARKit 通道,最后是每份手柄配置各自的分组

手部来自摄像头的手部追踪,见 摄像头追踪嘴巴里还有麦克风给出的 Voice* 输入,见 口型同步

鼠标是系统光标的位置,光标 X光标 YMousePositionXMousePositionY,沿用 VTube Studio 的名字)。取值是光标所在那块屏幕上的 −1..1,向右为正、向上为正。它和面部捕捉无关,也不受捕捉总开关影响,所以摄像头关着照样能驱动眼睛、头部或者桌宠的爪子。只有位置——按键和按键组合需要一个 Electron 拿不到的全局输入钩子

顶部的搜索输入同时匹配输入的标签、它的 id、绑定自己的名字和它驱动的参数

每一行是标签在上、原始 id 在下。标签是给人读的,而 .vtube.json.cdi3.json插件 API 使用的都是 id——点一下 id 就能复制。名字下面那条电平跟着这个输入的实时数值走

一个输入下面挂着它驱动的参数,行上可能带这些标记:

标记含义
曲线这条绑定带一条响应曲线
物理物理演算也会写这个参数
+N这条绑定还汇总了另外 N 个输入
替换 ⋯选中它会把某条已有绑定移过来,而不是新建

添加参数打开参数选择器。参数名和它们的分组来自模型的 .cdi3.json;模型没有这个文件时列表是空的,因为 Persona 无从知道参数该叫什么。选择器里的行还会标出驱动物理物理两种状态

正在被别的绑定驱动的参数不会被禁用。行上写着现在的驱动者,选它是把那条绑定移过来,而不是再建一条——避免两条规则同时写入同一参数时互相覆盖。参数原有的映射(输出范围、平滑、曲线、作者起的名字)都留着,换掉的只有输入和输入范围

绑定详情

右边是选中那条绑定的全部设置

顶部一行是这条绑定的走向:输入 → 参数。参数那一半可以点开,也就是更改参数——换一个目标参数,而这条绑定调好的东西全都留着:输入、输入范围、平滑、曲线和名字。只有输出范围跟着换,因为它的单位属于原来那个参数。选到一个已经被别的绑定驱动的参数,同样是把那条绑定移过来

参数 id 在这个模型上不存在时,行上标着缺失,下面也会红字写明这条绑定不会产生任何效果——换了模型之后常会遇到

输入与权重

组合输入列出汇总进这条绑定的每一个输入,各带一个 × 权重。它们相加之后才进入后面的映射,所以一条绑定可以组合多路信号。权重在输入框失去焦点时提交——提交后会保存到磁盘

某个输入在这一帧缺席时按 0 算;只有一个输入都没有时,这条绑定才会被跳过。这正是 blink × −0.8 + wide × 0.8 这类写法成立的原因,公式里的常数由输入范围吸收掉

第一个输入决定这条绑定挂在清单的哪一行下面。删掉第一个会把它挪到下一个输入名下,而最后一个删不掉

范围

输入起点/输入终点是这条绑定关心的那一段输入,输出起点/输出终点指定参数的输出范围

调整输入范围可以改变表情的灵敏度。例如,将 MouthSmile0.2–0.8 映射到 −1..1,输入达到 0.8 时输出即达到上限。对调输出上下限可反转映射

新建的绑定从这个输入自己的量程开始,而不是一律 0..1——头部角度的单位是,ARKit 通道是 0..1,其余无量纲

平滑

0100,数值直接显示在滑块上,也可以输进去。它是一条 One Euro 滤波器的系数,不是简单的插值:动得快时跟得紧,静止时抖得少

响应曲线

默认的映射是一条直线。添加响应曲线在输入与输出之间插进一条可以自己画的曲线,移除曲线把它去掉

画布两个轴都归一化到 0..1,左边和下面标着这条绑定的两个范围,所以你看到的形状就是「输入这一段如何映到输出这一段」。曲线上还有一个点,标出当前输入落在哪里

单击添加节点,拖动移动,右键删除。两端的节点只能上下动。选中一个节点后,上面的 X/Y 数字框用轴自己的单位直接输入——一段平台该停在哪个值,输进去比拖着试准

段的类型

选中的节点决定从它向右的那一段怎么走:

类型走法
线性直线
阶梯保持在这个节点的值,直到下一个节点才跳过去
反向阶梯立刻跳到下一个节点的值,然后保持
贝塞尔三次贝塞尔。拖动区段两端的方形控制柄调整形状

最后一个节点右边没有段,所以它的类型按钮是禁用的

预设

预设里是几种常见形状,作为拖动的起点:线性缓入缓出S 曲线阈值阶梯

物理演算

模型的 .physics3.json 会告诉编辑器哪些参数是物理演算的输入、哪些是它的输出:

  • 驱动物理——物理拿这个参数当输入。绑定它是正常的,很多模型的头部旋转本来就是这么经过物理的
  • 物理——物理演算自己会写这个参数。再绑一条捕捉进去,两者会互相冲突,详情里也会红字提醒

实时数值与手动调整

捕捉开着时,每个输入行上的电平和曲线上的那个点都跟着实时数值走

电平下面还有一条参数值,读的是这个参数此刻在模型上的实际取值——已经算完动作、表情和物理演算之后的那个值,画在输出范围上。它和曲线上那个点对不上,就说明还有别的东西也在写这个参数

拖动电平可以把这个输入按在某个值上,摄像头关着也能把模型摆出姿势来调曲线。松手就交还给捕捉;一直按住不动也会在几秒后自动过期,所以关掉窗口、重新加载或者一次没有收尾的拖动都不会把模型卡在那儿

撤销与重做

撤销是 Cmd/Ctrl+Z,重做在它上面再加一个 Shift

一次拖动算一步。曲线、范围、权重、输入的增删和绑定本身的增删都在同一条历史里。这条历史属于参数区块——焦点在别处时,同样的快捷键回到场景的撤销

保存在哪里

改动写进模型旁边的 <model>.persona.json,和 记住表情 用的是同一个附属文件。绑定永远不会写回 .vtube.json——该格式没有用于保存响应曲线或输入权重的字段

读取的优先级是 .persona.json.vtube.json → 内置默认值。一旦附属文件里有了绑定,会优先使用其中的绑定,不会和 .vtube.json 合并;此后你在 VTube Studio 里的改动不再影响这个模型,区块顶部也会这么写着

从 .vtube.json 导入

第一次读取时,模型 .vtube.json 里的 ParameterSettings 会被整条搬进来,包括作者给每条绑定起的名字。名字可以改,改完存进附属文件;清空它就退回参数自己的名字

输入名按三步解析:先是 VTube Studio 自己的词汇表,然后是原始 ARKit 形状名,最后是 VBridger 把 Left/Right 缩成 L/R 的那套写法。照 VBridger 绑的模型因此不会掉行——EyeSquintLMouthDimpleRMouthUpperUpL 这些都认得出来

VBridger 自己那几个合成参数不是输入,而是在导入时展开成 VBridger 自己的加权和,公式取自它的预设,所以符号和配比都和在 VBridger 里一致

最后更新于 2026年9月20日

Tech otakus destroy the world