Skip to content

摩卡追踪使用手册

mojie126 edited this page May 11, 2026 · 6 revisions

摩卡追踪使用手册

适用对象:希望在 Aegisub 内使用摩卡追踪完成文字、裁剪、遮罩跟踪的用户。

页面说明

  • 文中选项名称以界面简体中文为准。
  • “单行输出”对应界面上的“单行插入(\move)”。
  • “逐帧输出”对应界面上的“多行插入(\t)”。
  • “裁剪”默认指 \clip / \iclip

目录

    1. 认识摩卡追踪
    • 1.1 这是什么
    • 1.2 它能做什么
    • 1.3 支持哪些输入数据
    1. 上手流程
    • 2.1 一次完整使用的典型流程
    • 2.2 处理流程到底分几层
    1. 主对话框功能详解
    • 3.1 数据输入区
    • 3.2 位置 (\pos)
    • 3.3 缩放 (\fscx, \fscy)
    • 3.4 旋转 (\frz)
    • 3.5 裁剪 (\clip)
    • 3.6 矩→矢
    • 3.7 独立追踪\clip
    • 3.8 处理模式
    • 3.9 配置
    1. 进阶理解与实战建议
    • 4.1 预处理阶段到底做了什么
    • 4.2 为什么程序也会参考“独立追踪\clip”的设置
    • 4.3 “多行插入(\t)”与“单行插入(\move)”的关系
    • 4.4 实战场景建议
    1. 常见问题与快速结论
    • 5.1 常见误区
    • 5.2 常见问题排查
    • 5.3 给初学者的推荐起步方案
    • 5.4 一份简短结论
    • 5.5 相关页面

阅读建议

  • 第一次使用:先看“4. 一次完整使用的典型流程”和“13. 给初学者的推荐起步方案”。
  • 想按功能逐项理解:重点看“6. 主对话框各功能模块详解”。
  • 想弄明白矩形裁剪为什么要转矢量:直接看“6.6 矩→矢 详细解释”。
  • 想快速解决实际问题:直接跳到“10. 实战场景建议”和“12. 常见问题排查”。

1. 这是什么

摩卡追踪(Mocha Motion)是 Aegisub 内置的运动追踪模块,用来把外部导出的追踪数据应用到 ASS 字幕行上,让字幕、裁剪区域或遮罩跟着画面中的目标一起移动。

你可以把它简单理解成一个把追踪数据套到字幕上的工具。

你可以把它简单理解成:

  • 主追踪数据 负责驱动字幕本体。
  • “Clip追踪数据” 负责单独驱动 \clip / \iclip
  • 程序 会先整理标签,再把每一帧的追踪结果写回字幕。

2. 它能做什么

当前内置版主要支持以下几类事情:

  • 让字幕位置跟随目标移动。
  • 让字幕按追踪数据同步缩放。
  • 让字幕跟随 Z 轴旋转,也就是常见的平面旋转。
  • \clip / \iclip 跟随目标移动、缩放,必要时转成矢量裁剪后参与旋转。
  • 让字幕保留原有 \t\fade\move 等标签语义,同时叠加追踪。
  • 支持将文字和 clip 分开追踪,也就是“文本跟一套数据,裁剪再跟另一套数据”。

需要特别说明的是:

  • 当前界面里主要提供的是平面旋转。
  • 普通使用时不用关心更底层的扩展字段。
  • 也就是说,你日常最常用到的就是平面旋转。
  • \fad / \fade 以及 alpha 类 \t(...),当前逐帧静态化不是简单按“整帧起点”硬采样,而是以“当前生成帧与原字幕实际可见区间的中点”为基础;其中淡入阶段还会额外叠加首帧前移补偿,用来避免首帧直接全透明,同时避免尾帧被过早采到全透明端点。

3. 支持哪些输入数据

它主要支持两类数据。

3.1 TSR:AE Keyframe Data

也就是 Adobe After Effects 导出的关键帧文本。

这是最常见、功能最完整的一类,通常包含:

  • 位置
  • 缩放
  • 旋转

在当前内置版里,真正常用的是:

  • 位置
  • 缩放
  • 旋转

这类数据适合做:

  • 字幕本体移动
  • 跟随缩放
  • 文字或 clip 的平面旋转
  • 用于主追踪,也可用于“独立追踪\clip”

3.2 SRS:Shake Rotoshape

也就是矢量形状数据。

它的本质不是“位置缩放旋转轨迹”,而是“每一帧直接给你一个矢量形状”。

这类数据适合做:

  • 矢量遮罩
  • 跟踪形变 clip
  • 每帧都不同的绘图路径

这类数据不适合做:

  • 普通位置追踪
  • 缩放追踪
  • 旋转追踪

因为它本身不提供那种“位置/旋转参数”,而是直接给出每帧的绘图结果。

3.3 文件路径输入

“追踪数据”输入区和“Clip追踪数据”输入框都支持直接粘贴文件路径。

也就是说,你既可以:

  • 直接粘贴追踪文本

也可以:

  • 直接输入一个文本文件路径,让程序读取文件内容再解析

4. 一次完整使用的典型流程

如果你第一次用,建议按下面的流程理解。

第一步:先选中要处理的字幕行

摩卡追踪是对“选中行集合”工作的,不是对单个标签独立工作的。

程序会先计算这批选中行的:

  • 最早起始帧
  • 最晚结束帧
  • 总共需要多少帧追踪数据

程序会用这个范围去检查追踪数据长度是否匹配。

第二步:打开摩卡追踪对话框

进入命令后会弹出主对话框。

主对话框做三件事:

  • 输入主追踪数据
  • 选择哪些功能要跟踪
  • 选择处理模式和起始帧规则

第三步:粘贴主追踪数据

“追踪数据”输入区支持自动粘贴剪贴板内容。

这里有个细节非常重要:

  • 如果输入框是空的,或者里面是无效数据,对话框重新获得焦点时会尝试自动从剪贴板填充。
  • 如果里面已经是有效数据,就不会随便覆盖,避免你刚从“独立追踪\clip”对话框回来时,主数据被错误替换。

这也是为什么重新切回对话框时,有时会自动尝试读取剪贴板。

第四步:观察状态提示

对话框下方会显示:

  • 追踪数据总帧数
  • 当前选中行需要的帧数
  • 数据源分辨率或 SRS 类型

如果长度不匹配,最终应用时会报错并中止。

也就是说:

状态栏里“数据帧数”和“选中行需要”最好一致。

第五步:选追踪项目

然后你决定:

  • 只跟位置?
  • 位置加缩放?
  • 还要旋转?
  • 还要跟 clip?
  • 还是文字不动,只让 clip 动?

第六步:必要时打开“独立追踪\clip”

如果你想让 \clip 用另一套数据,就点“独立追踪\clip”。

这时会弹出“独立追踪\clip”对话框,单独为裁剪设置数据和开关。

第七步:应用

应用后会发生两种结果之一:

  • 正式模式:原始行会被删除,插入新结果。
  • 便捷预览模式:原始行不会删,而是先注释掉,再把结果插在后面,便于你直接播放预览。

如果你选了多行,组与组之间还会插入一条空白注释行作为视觉分隔。


5. 处理流程到底分几层

从使用角度看,可以分成三层理解。

5.1 数据层

负责:

  • 自动识别 TSR / SRS / 文件路径
  • 解析追踪数据
  • 记录参考帧
  • 在指定帧计算当前状态
  • 按用户开关屏蔽不用的通道

简单理解就是:

它把“原始追踪文本”变成“程序能按帧取值的结构”。

5.2 预处理层

负责:

  • 构建内部行对象
  • 处理 \t
  • 处理 \fad / \fade
  • 去重标签
  • 补缺失标签
  • 处理 \r
  • 处理 \org
  • 处理 clip
  • 决定参考帧

简单理解就是:

它先把字幕整理成“适合追踪”的样子。

5.3 应用层

负责:

  • \pos\org\fscx\blur\frz\clip 等标签逐项应用追踪
  • 按“单行插入(\move)”或“多行插入(\t)”输出结果

简单理解就是:

它才是真正把追踪写回字幕的人。


6. 主对话框各功能模块详解

下面按用户界面顺序逐个讲。

6.1 数据输入区

主输入框的作用很简单:

  • 输入主追踪数据
  • 支持直接粘贴文本
  • 支持输入文件路径

这里最重要的不是“怎么粘贴”,而是数据长度必须和选中行集合匹配

程序会把你当前选中行的总跨度算成一个帧数。

例如:

  • 选中行从第 100 帧开始
  • 到第 180 帧结束

那么它需要的不是 81 帧,而是内部定义的 end - start 这一段范围对应的帧数。

如果你的追踪数据长度不匹配,应用时会直接报错。

使用建议

  • 最稳妥的做法,是先只选一组连续字幕去做。
  • 如果要多行一起追踪,确保这些行就是同一段追踪区间。
  • 不要把时间跨度完全无关的多段行一次性一起做。

6.2 位置 (\pos)

这一组决定字幕位置如何跟随追踪数据变化。

包含四个核心选项:

  • X轴
  • Y轴
  • 原点(\org)
  • 绝对位置

6.2.1 X / Y

这两个选项决定:

  • 是否把主追踪数据的 X 位移应用到字幕
  • 是否把主追踪数据的 Y 位移应用到字幕

默认两者都开。

最常见的场景也是两者都开,因为大多数跟踪都需要完整平移。

什么情况下只开 X 或只开 Y

这种情况不是主流,但有实际用途。

  • 只开 X:目标只做水平运动,你不想让字幕随上下抖动
  • 只开 Y:目标只做垂直运动,或者你故意只保留垂直跟踪

需要注意的地方

这里的 X/Y 并不是“把字幕直接设成某个绝对坐标”,默认是做相对位移

也就是说,程序会看:

  • 参考帧时目标在哪里
  • 当前帧目标相比参考帧移动了多少

然后把这个变化量加到字幕原本位置上。

所以默认效果更像:

“字幕保持原来的版式起点,但跟着目标一起偏移。”

这通常比强行把字幕吸附到追踪数据绝对位置更自然。


6.2.2 原点(\org)

这个选项的意思是:

不仅让字幕位置跟着走,也让旋转原点 \org 跟着一起走。

它适合的场景是:

  • 你的字幕本来就有旋转
  • 或者你准备让它旋转
  • 而且希望旋转围绕的原点也一起跟着目标移动

如果不开它,会发生什么?

  • 字幕位置可能在动
  • 但旋转原点还停留在老地方
  • 结果可能出现“旋转中心不对”“转得像是在绕空气打转”的现象

使用场景

  • 字贴在一个会转动的屏幕、牌子、箱子上
  • 文本本身需要围绕一个固定相对点进行旋转

注意

如果一行实际带有 \org,那么勾选“单行插入(\move)”时也会自动回退到“多行插入(\t)”。

这是因为单行 \move + \t 方案不适合精确表达这种情况。


6.2.3 绝对位置

这个选项非常关键,也最容易误解。

它的意思不是“更准确”,而是:

直接把字幕位置设置成追踪数据当前帧的位置,而不是只应用相对变化量。

默认模式:相对位置

默认不勾选“绝对位置”。

这时字幕会:

  • 保留你原本排好的基础位置
  • 再叠加追踪变化量

适合绝大多数字幕场景。

勾选“绝对位置”后

程序会直接把 \pos 设成追踪数据当前值。

效果上更像:

“让字幕的锚点直接贴在追踪点上。”

适合场景

  • 你就是要把字幕中心严格吸附到 mocha 导出的点
  • 字幕本来没有一个你想保留的初始排版位置
  • 你在做某种“挂件式”贴附,而不是“在原布局上叠加运动”

不适合场景

  • 你已经人工摆好了字幕位置,只想让它跟着动一点
  • 你不想字幕突然跳到追踪坐标本身

一个重要细节

勾选“绝对位置”时,程序仍会记录位置差值,供裁剪同步参考。

也就是说:

  • 文本本体直接被放到绝对位置
  • clip 仍可以参考这个位移,避免和文本脱节

6.3 缩放 (\fscx, \fscy)

这一组控制:

  • \fscx
  • \fscy
  • \bord
  • \shad
  • \blur

核心思想是:

字幕变大变小时,边框、阴影、模糊往往也要跟着同步变化,否则视觉会失衡。

包含这些开关:

  • 缩放
  • 边框(\bord)
  • 阴影(\shad)
  • 模糊(\blur)
  • 系数

6.3.1 缩放

总开关。

如果它关了:

  • 字幕本体不按追踪缩放
  • 边框 / 阴影 / 模糊 这些子项也会被禁用

适合场景:

  • 你只想要移动,不想要尺寸变化
  • 目标本身存在透视和尺度变化,但你希望字幕大小保持稳定

6.3.2 边框(\bord)

控制边框是否随缩放一起变化。

不开时可能出现的问题:

  • 字幕变大了,但边框还是老粗细,显得过细
  • 字幕变小了,但边框还是老粗细,显得过厚

适合大多数情况开启。

6.3.3 阴影(\shad)

控制阴影偏移是否随缩放变化。

不开时在明显缩放场景里,阴影距离会看起来不协调。

6.3.4 模糊(\blur)

控制 \blur 是否随缩放变化。

很多人做贴屏字幕时会给一点 blur,这样在目标缩放时,blur 同步变化通常更自然。

6.3.5 系数

这个是 blur_scale,是模糊缩放的衰减系数。

它的含义不是“blur 的绝对值”,而是:

当追踪缩放变化发生时,blur 跟随这个变化的强度是多少。

比如:

  • 1.0:完全跟随缩放
  • 0.5:只跟一半
  • 0:理论上几乎不随缩放变化

使用场景

  • 目标缩放很明显,但你不希望 blur 变化太夸张 -> 设成 0.3 ~ 0.7
  • 想完全保留真实比例感 -> 设成 1.0

一个经验

如果你觉得:

  • 字幕缩放正常
  • 但边缘糊得过快或过慢

优先调的不是主缩放,而是“系数”。


6.4 旋转 (\frz)

当前界面里主要使用的是“旋转”。

也就是:

平面内的旋转。

它做的事情

它不是把 AE 的绝对旋转值原封不动写进字幕。

而是比较:

  • 参考帧旋转值
  • 当前帧旋转值

然后把差值加到字幕原本的旋转值上。

效果是:

保留你原本设定的基础旋转,再叠加追踪变化。

为什么 AE 旋转方向会被取反

AE 导入的旋转值会自动取反。

原因是:

  • AE 的旋转方向和 ASS 的旋转方向不一致

所以导入阶段已经帮你做了符号修正。

这意味着:

如果你看到“方向正确”,那是程序已经替你做过一次换算了。

适合场景

  • 字贴在一个平面目标上,目标有明显转动
  • 你希望文字和目标一起旋转,而不是只平移

不适合场景

  • 你实际上要的是三维透视变化,而不是简单平面旋转
  • 你拿的是 SRS 数据,因为 SRS 不提供这种旋转参数

关于 SRS 的提醒

如果主数据或 clip 数据是 SRS,而你勾选了旋转,程序会给出警告:

  • SRS 不包含旋转信息
  • 这个选项不会生效

6.5 Clip(裁剪)模块

这是摩卡追踪里最容易被低估的一组功能,也是最值得认真理解的一组。

它包含三个核心选项:

  • 矩形裁剪
  • 矢量裁剪
  • 矩→矢

先讲概念。

6.5.1 矩形裁剪是什么

矩形 clip,一般长这样:

\clip(100,200,300,400)

它本质上是一个轴对齐矩形。

特点是:

  • 写起来简单
  • 直观
  • 适合快速框选

6.5.2 矢量裁剪是什么

矢量 clip,一般长这样:

\clip(m 100 200 l 300 200 300 400 100 400)

它本质上是绘图路径。

特点是:

  • 形状更自由
  • 可以不是矩形
  • 更适合复杂边缘或需要逐点变形的情况

6.5.3 矩形裁剪

打开后,程序会对矩形 clip 应用追踪。

适合:

  • 你字幕行里本来就有矩形 \clip
  • 你只想让这个矩形跟着目标移动/缩放

6.5.4 矢量裁剪

打开后,程序会对矢量 clip 应用追踪。

适合:

  • 你行里本来就是矢量 clip
  • 或者你准备把矩形 clip 转成矢量再追踪
  • 或者你独立 clip 数据用的是 SRS

6.6 矩→矢 详细解释

这一项非常重要,我单独展开讲。

“矩→矢”的意思就是:

矩形裁剪 to 矢量裁剪

也就是:

先把矩形 clip 转成矢量 clip,再继续追踪。

6.6.1 它不是“让矩形也能动”

先纠正一个常见误解。

不开 矩→矢,矩形 clip 也可以动。

矩形裁剪 本身就能让矩形 clip 跟着移动和缩放。

所以 矩→矢 的价值不是“让矩形 clip 能追踪”,而是:

让矩形 clip 进入“矢量 clip 的处理路径”。

6.6.2 它具体做了什么

假设原始标签是:

\clip(0,0,100,100)

启用“矩→矢”后,会先把它改成类似:

\clip(m 0 0 l 100 0 100 100 0 100)

也就是把矩形四个角变成一个四边形路径。

这个转换会在预处理阶段自动完成。

6.6.3 为什么要多此一举

因为矩形 clip 和矢量 clip 后续走的是两条不同回调。

矩形 clip 和矢量 clip 的后续处理方式不同。

这两条路径最大的区别之一是:

矩形 clip 那条路不会把旋转真正当成“图形逐点变形”来处理。

代码里甚至会在矩形 clip 回调里临时把旋转差置零。

也就是说,矩形 clip 更适合:

  • 平移
  • 缩放

而不适合:

  • 真正跟着一起转成一个倾斜后的四边形

6.6.4 矩→矢 的实际效果

如果不开它:

  • 你的字幕本体可能在旋转
  • 但 clip 仍然更像一个普通矩形框
  • 结果就是 clip 和目标边界不够贴

如果开了它:

  • 原来的矩形先被改写成四边形路径
  • 然后四个点都能参与矢量 clip 的逐点变换
  • 旋转时,clip 会像一个真正的面片那样一起转

6.6.5 为什么勾选“矩→矢”会自动启用“矩形裁剪”和“矢量裁剪”

因为它本身就是一个“两步走”的动作。

第一步:

  • 先识别原来这是矩形 clip

第二步:

  • 把它转成矢量 clip
  • 再按矢量 clip 逻辑继续处理

所以它天然依赖:

  • 矩形裁剪 = on
  • 矢量裁剪 = on

否则流程是不完整的。

这就是为什么 UI 上勾选 矩→矢 时,这两个开关会被自动打开并临时禁用。

6.6.6 什么场景非常建议开“矩→矢”

场景 1:目标存在明显旋转

比如:

  • 屏幕在转
  • 牌子在转
  • 平面物体在转

这时如果你只保留矩形 clip,clip 往往跟不出那种“转过去”的感觉。

场景 2:你原本为了方便只写了矩形 clip

很多人一开始习惯写:

\clip(x1,y1,x2,y2)

因为它简单。

后来发现要跟旋转,就不想手工改绘图。

这时直接开 矩→矢 就行。

场景 3:文字和 clip 分开追踪,clip 的运动更复杂

例如:

  • 文字只需要跟着平移
  • 但遮罩区域还要跟着旋转

那你就可以给 clip 单独一套数据,并在 clip 选项里开 矩→矢

6.6.7 什么场景不必开

  • 你的 clip 本来就是矢量 clip
  • 目标没有旋转,只有简单平移/缩放
  • 你就是想保留一个普通矩形框,不在乎它是否“图形化旋转”

6.6.8 一句话总结

矩→矢 的本质不是“开启 clip 追踪”,而是:

把矩形 clip 升级成可以按矢量图形逐点变换的 clip。


6.7 “独立追踪\clip”

这是当前内置版非常实用的增强功能。

它的作用是:

给 clip 单独提供一份追踪数据和一套选项,让 clip 不必和文字本体共用同一套运动。

6.7.1 为什么会需要“独立追踪\clip”

因为实际做效果时,经常出现下面这些情况:

  • 文字的定位点和遮罩边界不是同一个目标
  • 文字你只想让它平移,但 clip 还想跟缩放/旋转
  • 文字是一套 TSR 数据,clip 则想直接用 SRS 遮罩数据

如果不用“独立追踪\clip”,你通常只能:

  • 让文字和 clip 都吃同一套数据

这样很多复杂场景就不自然。

6.7.2 “独立追踪\clip”对话框里能设置什么

“独立追踪\clip”对话框里,主要有这些选项:

  • X轴
  • Y轴
  • 缩放
  • 旋转
  • 矩形裁剪
  • 矢量裁剪
  • 矩→矢
  • 相对帧号
  • 起始帧

也就是说,clip 自己也能决定:

  • 用哪些通道
  • 从哪一帧开始对齐
  • 是按相对帧还是绝对帧解释

6.7.3 它和主对话框有什么区别

“独立追踪\clip”对话框里没有这些东西:

  • 边框
  • 阴影
  • 模糊
  • 多行插入(\t) / 单行插入(\move)
  • 便捷预览 之类主流程控制项

原因很简单:

clip 不是一段“带边框阴影模糊的文字样式”,它只是裁剪路径。

所以 clip 只需要关心:

  • 位置
  • 缩放
  • 旋转
  • clip 类型和帧对齐

6.7.4 它和主追踪的关系是什么

有独立 clip 数据时,程序会优先按 clip 自己的选项决定:

  • 矩形 clip 用谁的数据
  • 矢量 clip 用谁的数据

如果 clip 某一类没指定独立数据,但主选项开着,对主数据仍可回退使用。

这意味着:

“独立追踪\clip”不是“完全隔绝主追踪”,而是“优先使用独立配置,必要时允许主数据补位”。

6.7.5 只提供 clip 数据、不提供主数据可以吗

可以。

当前实现明确支持“只有 clip 数据”的场景。

这时程序会自动:

  • 关闭主位置/缩放/旋转等选项
  • 自动进入“仅裁剪”语义

适合场景:

  • 你只想更新遮罩
  • 不想动文字本体

6.7.6 用 SRS 配合“独立追踪\clip”时的注意事项

如果 clip 数据是 SRS:

  • 旋转不会生效,因为 SRS 不包含旋转参数
  • 矩形裁剪 单开也没有实际意义,因为 SRS 只适合矢量 clip

程序在这些情况下会给出提示框。


6.8 处理模式

这里是理解输出结果的关键。

有三个相关概念:

  • 多行插入(\t)
  • 单行插入(\move)
  • 仅裁剪

6.8.1 多行插入(\t)

这是默认主力模式。

它的本质是:

把原字幕拆成一组逐帧行。

每一帧都会生成一条对应行,然后写入当帧的追踪结果。

它的优点

  • 精度高
  • 对复杂运动更稳
  • 能处理 \org
  • 能处理 clip 追踪
  • 能在每一帧精确展开 \t

它的缺点

  • 行数会变多
  • 结果看起来不如单行干净

最适合的场景

  • 目标运动复杂
  • 有旋转
  • 有 clip
  • 需要精确还原逐帧状态

6.8.2 多行插入(\t)里的\t是怎么处理的

这个名字容易误导,它不是“是否输出多行”的总开关,而更接近:

在逐帧模式下,要不要把 \t 变换真的展开到每一帧。

开启时

程序会:

  • 先把 \t 标记化,避免其他标签处理误伤它
  • 在每一帧按时间计算插值结果
  • \t 内的目标值直接写成当前帧的实际值

效果就是:

每一帧拿到的是“已经算完”的真实标签结果。

关闭时

程序不会把 \t 展开为逐帧值,而是只调整时间偏移后再保留 \t

同一条逐帧后处理链路里,程序也会同步前移这些时间型标签:

  • \k
  • \K
  • \kf
  • \ko
  • \kt
  • VSFilterMod 的 \kk

其中 \kk 按“可见字符”计数:

  • \h 计入
  • \N / \n 不计入

适合场景:

  • 你希望保留原有 \t 结构
  • 你不想把所有变换烘焙成纯静态标签

使用建议

  • 想要最稳定、最可见即所得的结果 -> 开
  • 想保留更多原脚本结构 -> 关

6.8.3 单行插入(\move)

这一项会尽量把结果压缩成一行,用:

  • \move
  • \t

去表达首尾变化。

它的目标是:

尽量少生成行,让结果更整洁。

优点

  • 输出短
  • 看起来清爽
  • 适合简单运动

缺点

  • 只能表达比较线性的变化
  • 不适合复杂逐帧变化
  • 有些场景会自动回退到“多行插入(\t)”

哪些情况会自动回退

目前最典型的回退条件有两类:

  • 行里存在 \org 且你启用了原点(\org)
  • 行里存在 clip 且当前确实有 clip 追踪数据要应用

因为这两类情况用“单行插入(\move)”表达不稳,程序会保守地回退到“多行插入(\t)”。

使用场景

  • 简单平移
  • 轻微缩放
  • 不涉及复杂 clip
  • 想保持最终脚本整洁

不建议使用的场景

  • 复杂旋转
  • “独立追踪\clip”
  • 需要精确逐帧状态

6.8.4 仅裁剪

这个模式的意思非常直接:

只处理 clip,不处理文字本体的位置、缩放、旋转。

开启后,位置、缩放、旋转相关控件会被禁用。

适合场景:

  • 你已经手工摆好了文字,只想让裁剪跟着动
  • 你在做遮罩动画,不想碰字幕本身
  • 你只提供了独立 clip 数据

如果你只有 clip 数据没有主数据,程序实际上也会自动进入这种语义。


6.9 配置

这里主要是:

  • 相对帧号
  • 起始帧
  • 便捷预览
  • 反向追踪
  • 保存配置

6.9.1 相对帧号

这个选项决定 起始帧 是怎么解释的。

相对帧号 = 开

表示:

起始帧 是追踪数据里的第几帧。

例如:

  • 1 = 从追踪数据第一帧开始
  • 2 = 从追踪数据第二帧开始
  • -1 = 从追踪数据最后一帧开始
  • 0 = 自动调整为 1

这是最常见、最直观的模式。

相对帧号 = 关

表示:

起始帧 是视频的绝对帧号。

程序会再结合你当前所选字幕集合的起始帧,把它换算成追踪数据内部的相对索引。

适合场景:

  • 你习惯按视频时间轴帧号工作
  • 你知道追踪数据对应视频哪一帧开始

什么时候用相对,什么时候用绝对

推荐优先用相对

因为:

  • 更稳定
  • 不容易因为选区变化产生误差
  • 更贴近“这是导出数据的第几帧”这个本质

绝对更适合

  • 你明确知道 mocha 数据是从视频第 N 帧开始
  • 你希望跟视频当前光标直接对齐

6.9.2 起始帧

这是参考帧。

它决定程序把追踪数据中的哪一帧视为“起点”。

再强调一次:

摩卡追踪的很多计算不是直接拿当前帧绝对值覆盖,而是:

  • 先选一帧作为参考
  • 再看当前帧相对这帧变化了多少

所以参考帧选得好不好,会直接影响结果。

使用经验

  • 普通正向跟踪:通常从第一帧开始
  • 如果当前视频光标就在目标开始位置附近,可以让程序自动带入这个位置
  • 如果你想从跟踪区间末端往回贴,考虑反向追踪

6.9.3 反向追踪

这个选项最容易被误解成“把数据数组倒过来用”,但当前实现不是这样。

程序明确说明:

Mocha 无论正向还是反向追踪,导出数据本身仍然按时间正序排列。

所以这里的 反向追踪 主要作用是:

自动把参考帧设到选中行集合的最后一帧。

也就是说,它本质是一个:

“参考帧定位辅助开关”

而不是“反转数据数组开关”。

适合场景

  • 你当初在 mocha 里是从后往前跟的
  • 你想让字幕以末帧作为稳定贴合参考点

实际效果

勾上后:

  • 相对模式 -> 起始帧自动设为总帧数末端
  • 绝对模式 -> 起始帧自动设为选区最后一帧的绝对帧号

同时,“独立追踪\clip”的起始帧也会同步调整。


6.9.4 便捷预览

这是当前内置版非常实用的增强项。

它的作用不是“提高追踪精度”,而是:

让你先看效果,再决定是否正式替换原行。

开启后,应用时:

  • 原始行会保留
  • 但会被标记为注释
  • 新生成的追踪结果插在后面

这样你可以直接:

  • 播放当前行
  • 看实际效果
  • 不满意再删掉或重新跑

适合场景

  • 你在试参数
  • 你还没确定是单行还是多行
  • 你在比较不同起始帧或 clip 策略

不开时

原始行会直接删除,变成正式替换。


6.9.5 保存配置

就是保存当前配置。

配置会持久化到用户配置文件里,下次打开会恢复。

这适合:

  • 你有固定工作流
  • 经常重复使用某一套勾选组合

它甚至会记住你是否勾选“保存配置”本身。


7. 预处理阶段到底做了什么

这一段虽然偏内部,但理解后会很有帮助。

在真正应用追踪之前,程序会先做一轮整理。

主要包括:

  • 标记化 \t
  • \fad 统一转成 \fade
  • 去重标签
  • 提取位置和样式信息
  • 如果没有 \pos,自动补 \pos
  • 补充缺失的必要标签
  • 处理 \r 样式重置
  • 识别 \org
  • 处理 clip
  • 如果需要而当前没有 clip,补一个空 \clip()

其中和透明度最相关的一点是:

  • \fad 会先统一进入完整 \fade 语义;
  • 后续逐帧静态化时,程序会按“当前帧实际可见区间的中点”计算当前帧应写回的透明度;
  • 淡入阶段在这个基础上再叠加一段前移补偿,避免首帧直接透明;
  • 淡出阶段继续使用未前移的中点时间基准,避免尾帧被提前采到完全透明。

为什么要先做这些

因为后面的运动应用不是在“自由文本”上乱替换,而是在一个尽量规整的状态下做。

比如:

  • 没有 \pos,程序很难知道当前文字该从哪里开始动
  • 没有必要的默认标签,\t 插值就可能没有正确起始值
  • \clip 如果不先识别出来,后面就无法决定它走矩形还是矢量逻辑

一个你应该知道的细节

如果一行没有显式 \pos / \move,程序会根据:

  • 对齐方式
  • 边距
  • 脚本分辨率

推导一个默认位置,再把 \pos 补进去。

这意味着:

即使你原行没写 \pos,程序也不会放弃,而是尽量推一个合理起点。


8. 为什么程序也会参考“独立追踪\clip”的设置

这点对普通用户其实很好理解:

只要你准备让裁剪单独追踪,程序就必须在前面那一步提前把裁剪相关内容准备好。

因为很常见的一种用法就是:

  • 文字本体只跟主追踪数据
  • 裁剪区域改用另一套追踪数据

如果程序前面只看主追踪设置,就会误以为“这次不用处理裁剪”,后面真正进入“独立追踪\clip”时,很多该提前做好的准备就没做。

结果就可能出现:

  • 裁剪没有被正确识别
  • 该转成矢量裁剪的时候没转
  • 该跟随的裁剪没有跟上

所以现在的行为可以直接理解成:

  • 只要主追踪需要处理裁剪,程序就会准备裁剪
  • 只要“独立追踪\clip”需要处理裁剪,程序也会准备裁剪
  • 只要任意一边需要“矩→矢”,程序也会提前按这个需求处理

这样一来,“文字走一套,裁剪走一套”的用法才会稳定。


9. “多行插入(\t)”与“单行插入(\move)”的关系

这里给一个很重要的实战结论:

想稳

优先用:

  • “多行插入(\t)”
  • 必要时独立 clip

如果 \t 里改的是 alpha 类标签(例如 \alpha\1a-\4a),当前实现还会额外参考该帧与原字幕真实可见区间的中点时间,而不是简单拿整帧起点做采样。这样做是为了让逐帧结果更贴近实际显示:首帧不至于直接全透明,尾帧也不至于被提前采空。 如果原行还带 \k/\K/\kf/\ko/\kt 或 VSFilterMod \kk,逐帧输出时也会同步前移这些时间标签,避免每一帧都从头重新计时。

想短

才考虑:

  • “单行插入(\move)”

遇到这些情况尽量别硬上单行

  • \org
  • 有 clip 追踪
  • 有明显旋转
  • 有复杂 \t

原因很简单:

这些情况本来就是逐帧更自然。

“单行插入(\move)”的强项是“简洁”,不是“万能”。


10. 实战场景建议

下面给几个最常见的配置建议。

场景 1:普通贴牌字幕

目标:

  • 让一行文字跟着牌子移动
  • 有一点缩放
  • 没有明显旋转

推荐:

  • X轴 = 开
  • Y轴 = 开
  • 缩放 = 开
  • 边框 / 阴影 / 模糊 = 视样式决定
  • 旋转 = 关或开
  • 裁剪 = 关
  • 单行插入(\move) = 可以试

这类通常勾选“单行插入(\move)”就够了。


场景 2:贴在会转动的平面上

目标:

  • 文字跟着移动、缩放、旋转

推荐:

  • X轴 / Y轴 = 开
  • 缩放 = 开
  • 旋转 = 开
  • 原点(\org) = 视情况开
  • 优先“多行插入(\t)”

如果还用了矩形 clip,并且 clip 要跟着转:

  • 开“矩形裁剪”
  • 开“矢量裁剪”
  • 开“矩→矢”

场景 3:文字不动,只让遮罩跟

目标:

  • 本体位置保持现有排版
  • 只让 \clip 动起来

推荐:

  • 仅裁剪 = 开
  • 如果有单独的遮罩数据,使用 独立追踪\clip

这是“独立追踪\clip”非常适合的一类场景。


场景 4:主文本一套数据,clip 另一套数据

目标:

  • 文字跟一个点
  • clip 跟一个形状或另一条轨迹

推荐:

  • 主对话框正常设置主追踪
  • 打开 独立追踪\clip
  • 给 clip 单独粘贴追踪数据
  • 根据需要选择 矩→矢

这种场景下,当前内置版比老式“全部共用一套数据”的方案更灵活。


场景 5:SRS 遮罩

目标:

  • 直接把每帧矢量路径贴进 clip

推荐:

  • 独立 clip 数据使用 SRS
  • 重点开 矢量裁剪
  • 不要指望旋转从 SRS 里出来

如果你还勾了旋转,程序通常会提醒你这项没意义。


11. 常见误区

误区 1:数据帧数差一点也没关系

不行。

当前实现会严格检查长度是否匹配,不匹配直接中止。

误区 2:勾选“绝对位置”就一定更准

不一定。

它只是“直接贴坐标”,不代表更适合你的版式。

很多时候相对模式更自然。

误区 3:有矩形 clip 就一定要开 矩→矢

不一定。

如果只是简单平移和缩放,普通矩形 clip 就够了。

矩→矢 主要在涉及旋转或你需要更像“图形变形”时才显得特别重要。

误区 4:反向追踪 会把数据反过来

当前普通工作流不是这样。

它主要是把参考帧自动设到末端。

误区 5:“单行插入(\move)”只是“更省行数的多行插入(\t)”

不是。

它本质是另一种表达策略,能力边界更窄。


12. 常见问题排查

12.1 为什么打开对话框后内容自己变了

可能是自动从剪贴板粘贴了内容。

如果主输入框为空或当前内容无效,对话框重新获得焦点时会自动尝试填充剪贴板。

12.2 为什么应用后没有结果

常见原因有:

  • 主数据和 clip 数据都没提供
  • 数据解析失败
  • 数据长度和选区帧数不匹配
  • 用户在多行处理进度框中取消了操作

12.3 为什么我勾了旋转,但看起来没转

先确认:

  • 你用的是 TSR 还是 SRS
  • 你是不是只跟了 clip,没跟文本本体
  • 你是不是忘了矩形 clip 需要 矩→矢 才更像真正旋转

12.4 为什么我的 \t 看起来被改写了

因为勾选“多行插入(\t)”后,程序会把 \t 逐帧展开。

这不是丢失,而是“烘焙”成每帧实际值。

12.5 为什么 clip 跟文字不同步

重点检查:

  • 是否用了独立 clip 数据
  • 主追踪和 clip 追踪的 起始帧 是否一致
  • clip 是矩形还是矢量
  • 是否该开 矩→矢

13. 给初学者的推荐起步方案

如果你不确定怎么配,先用这套最稳配置:

文字本体跟踪

  • X轴 = 开
  • Y轴 = 开
  • 缩放 = 开
  • 边框 = 开
  • 阴影 = 开
  • 模糊 = 关或开
  • 旋转 = 按需
  • 相对帧号 = 开
  • 起始帧 = 1
  • 多行插入(\t) = 开
  • 单行插入(\move) = 关
  • 便捷预览 = 开

如果还有 clip

  • 矩形裁剪 = 开
  • 矢量裁剪 = 开
  • 如果目标会转 -> 矩→矢 = 开

如果 clip 很复杂

  • 直接使用“独立追踪\clip”

这套配置的优点是:

  • 行为可预测
  • 精度高
  • 出错时容易判断问题出在哪一层

14. 进阶理解:为什么它对复杂标签还算稳

这一点和它的内部设计有关。

14.1 它不会粗暴地对整行正则乱替换

它会先把 \t 标记成占位符,再进行其他处理。

这样可以避免:

  • 外层处理误伤 \t 里的标签

14.2 它会从样式和行内标签共同推导起始状态

也就是说,即使某些标签没在行首明确写出来,只要样式里有默认值,插值和补全仍能尽量正确。

14.3 它会处理 \r 样式重置

所以在有样式切换的行里,它也不会完全失去上下文。

14.4 它会对 clip 先统一规范化

包括:

  • 把绘图 clip 变成浮点坐标表示
  • 在必要时把矩形裁剪转换成矢量裁剪

这使得后续裁剪跟踪逻辑更统一。


15. 一份简短结论

如果只记住五句话,可以记这五句:

  • 想稳,优先用 多行插入(\t)
  • 想省行数,才试 单行插入(\move)
  • 涉及 clip,优先先分清 矩形 clip矢量 clip
  • 涉及旋转的矩形 clip,优先考虑开 矩→矢
  • 文字和裁剪不是同一套运动时,直接用 独立追踪\clip,不要硬共用一套数据。

16. 相关页面

建议与下面这些页面配合阅读:

  • 摩卡追踪参数速查表》:适合快速查参数、查场景、查避坑。
  • 本页中的“10. 实战场景建议”与“12. 常见问题排查”:适合在实际制作时对照使用。

Clone this wiki locally