-
Notifications
You must be signed in to change notification settings - Fork 3
摩卡追踪使用手册
适用对象:希望在 Aegisub 内使用摩卡追踪完成文字、裁剪、遮罩跟踪的用户。
- 文中选项名称以界面简体中文为准。
- “单行输出”对应界面上的“单行插入(\move)”。
- “逐帧输出”对应界面上的“多行插入(\t)”。
- “裁剪”默认指
\clip/\iclip。
-
- 认识摩卡追踪
- 1.1 这是什么
- 1.2 它能做什么
- 1.3 支持哪些输入数据
-
- 上手流程
- 2.1 一次完整使用的典型流程
- 2.2 处理流程到底分几层
-
- 主对话框功能详解
- 3.1 数据输入区
- 3.2 位置 (\pos)
- 3.3 缩放 (\fscx, \fscy)
- 3.4 旋转 (\frz)
- 3.5 裁剪 (\clip)
- 3.6 矩→矢
- 3.7 独立追踪\clip
- 3.8 处理模式
- 3.9 配置
-
- 进阶理解与实战建议
- 4.1 预处理阶段到底做了什么
- 4.2 为什么程序也会参考“独立追踪\clip”的设置
- 4.3 “多行插入(\t)”与“单行插入(\move)”的关系
- 4.4 实战场景建议
-
- 常见问题与快速结论
- 5.1 常见误区
- 5.2 常见问题排查
- 5.3 给初学者的推荐起步方案
- 5.4 一份简短结论
- 5.5 相关页面
- 第一次使用:先看“4. 一次完整使用的典型流程”和“13. 给初学者的推荐起步方案”。
- 想按功能逐项理解:重点看“6. 主对话框各功能模块详解”。
- 想弄明白矩形裁剪为什么要转矢量:直接看“6.6 矩→矢 详细解释”。
- 想快速解决实际问题:直接跳到“10. 实战场景建议”和“12. 常见问题排查”。
摩卡追踪(Mocha Motion)是 Aegisub 内置的运动追踪模块,用来把外部导出的追踪数据应用到 ASS 字幕行上,让字幕、裁剪区域或遮罩跟着画面中的目标一起移动。
你可以把它简单理解成一个把追踪数据套到字幕上的工具。
你可以把它简单理解成:
- 主追踪数据 负责驱动字幕本体。
-
“Clip追踪数据” 负责单独驱动
\clip/\iclip。 - 程序 会先整理标签,再把每一帧的追踪结果写回字幕。
当前内置版主要支持以下几类事情:
- 让字幕位置跟随目标移动。
- 让字幕按追踪数据同步缩放。
- 让字幕跟随 Z 轴旋转,也就是常见的平面旋转。
- 让
\clip/\iclip跟随目标移动、缩放,必要时转成矢量裁剪后参与旋转。 - 让字幕保留原有
\t、\fade、\move等标签语义,同时叠加追踪。 - 支持将文字和 clip 分开追踪,也就是“文本跟一套数据,裁剪再跟另一套数据”。
需要特别说明的是:
- 当前界面里主要提供的是平面旋转。
- 普通使用时不用关心更底层的扩展字段。
- 也就是说,你日常最常用到的就是平面旋转。
- 对
\fad/\fade以及 alpha 类\t(...),当前逐帧静态化不是简单按“整帧起点”硬采样,而是以“当前生成帧与原字幕实际可见区间的中点”为基础;其中淡入阶段还会额外叠加首帧前移补偿,用来避免首帧直接全透明,同时避免尾帧被过早采到全透明端点。
它主要支持两类数据。
也就是 Adobe After Effects 导出的关键帧文本。
这是最常见、功能最完整的一类,通常包含:
- 位置
- 缩放
- 旋转
在当前内置版里,真正常用的是:
- 位置
- 缩放
- 旋转
这类数据适合做:
- 字幕本体移动
- 跟随缩放
- 文字或 clip 的平面旋转
- 用于主追踪,也可用于“独立追踪\clip”
也就是矢量形状数据。
它的本质不是“位置缩放旋转轨迹”,而是“每一帧直接给你一个矢量形状”。
这类数据适合做:
- 矢量遮罩
- 跟踪形变 clip
- 每帧都不同的绘图路径
这类数据不适合做:
- 普通位置追踪
- 缩放追踪
- 旋转追踪
因为它本身不提供那种“位置/旋转参数”,而是直接给出每帧的绘图结果。
“追踪数据”输入区和“Clip追踪数据”输入框都支持直接粘贴文件路径。
也就是说,你既可以:
- 直接粘贴追踪文本
也可以:
- 直接输入一个文本文件路径,让程序读取文件内容再解析
如果你第一次用,建议按下面的流程理解。
摩卡追踪是对“选中行集合”工作的,不是对单个标签独立工作的。
程序会先计算这批选中行的:
- 最早起始帧
- 最晚结束帧
- 总共需要多少帧追踪数据
程序会用这个范围去检查追踪数据长度是否匹配。
进入命令后会弹出主对话框。
主对话框做三件事:
- 输入主追踪数据
- 选择哪些功能要跟踪
- 选择处理模式和起始帧规则
“追踪数据”输入区支持自动粘贴剪贴板内容。
这里有个细节非常重要:
- 如果输入框是空的,或者里面是无效数据,对话框重新获得焦点时会尝试自动从剪贴板填充。
- 如果里面已经是有效数据,就不会随便覆盖,避免你刚从“独立追踪\clip”对话框回来时,主数据被错误替换。
这也是为什么重新切回对话框时,有时会自动尝试读取剪贴板。
对话框下方会显示:
- 追踪数据总帧数
- 当前选中行需要的帧数
- 数据源分辨率或 SRS 类型
如果长度不匹配,最终应用时会报错并中止。
也就是说:
状态栏里“数据帧数”和“选中行需要”最好一致。
然后你决定:
- 只跟位置?
- 位置加缩放?
- 还要旋转?
- 还要跟 clip?
- 还是文字不动,只让 clip 动?
如果你想让 \clip 用另一套数据,就点“独立追踪\clip”。
这时会弹出“独立追踪\clip”对话框,单独为裁剪设置数据和开关。
应用后会发生两种结果之一:
- 正式模式:原始行会被删除,插入新结果。
- 便捷预览模式:原始行不会删,而是先注释掉,再把结果插在后面,便于你直接播放预览。
如果你选了多行,组与组之间还会插入一条空白注释行作为视觉分隔。
从使用角度看,可以分成三层理解。
负责:
- 自动识别 TSR / SRS / 文件路径
- 解析追踪数据
- 记录参考帧
- 在指定帧计算当前状态
- 按用户开关屏蔽不用的通道
简单理解就是:
它把“原始追踪文本”变成“程序能按帧取值的结构”。
负责:
- 构建内部行对象
- 处理
\t - 处理
\fad/\fade - 去重标签
- 补缺失标签
- 处理
\r - 处理
\org - 处理 clip
- 决定参考帧
简单理解就是:
它先把字幕整理成“适合追踪”的样子。
负责:
- 给
\pos、\org、\fscx、\blur、\frz、\clip等标签逐项应用追踪 - 按“单行插入(\move)”或“多行插入(\t)”输出结果
简单理解就是:
它才是真正把追踪写回字幕的人。
下面按用户界面顺序逐个讲。
主输入框的作用很简单:
- 输入主追踪数据
- 支持直接粘贴文本
- 支持输入文件路径
这里最重要的不是“怎么粘贴”,而是数据长度必须和选中行集合匹配。
程序会把你当前选中行的总跨度算成一个帧数。
例如:
- 选中行从第 100 帧开始
- 到第 180 帧结束
那么它需要的不是 81 帧,而是内部定义的 end - start 这一段范围对应的帧数。
如果你的追踪数据长度不匹配,应用时会直接报错。
- 最稳妥的做法,是先只选一组连续字幕去做。
- 如果要多行一起追踪,确保这些行就是同一段追踪区间。
- 不要把时间跨度完全无关的多段行一次性一起做。
这一组决定字幕位置如何跟随追踪数据变化。
包含四个核心选项:
- X轴
- Y轴
- 原点(\org)
- 绝对位置
这两个选项决定:
- 是否把主追踪数据的 X 位移应用到字幕
- 是否把主追踪数据的 Y 位移应用到字幕
默认两者都开。
最常见的场景也是两者都开,因为大多数跟踪都需要完整平移。
这种情况不是主流,但有实际用途。
- 只开 X:目标只做水平运动,你不想让字幕随上下抖动
- 只开 Y:目标只做垂直运动,或者你故意只保留垂直跟踪
这里的 X/Y 并不是“把字幕直接设成某个绝对坐标”,默认是做相对位移。
也就是说,程序会看:
- 参考帧时目标在哪里
- 当前帧目标相比参考帧移动了多少
然后把这个变化量加到字幕原本位置上。
所以默认效果更像:
“字幕保持原来的版式起点,但跟着目标一起偏移。”
这通常比强行把字幕吸附到追踪数据绝对位置更自然。
这个选项的意思是:
不仅让字幕位置跟着走,也让旋转原点 \org 跟着一起走。
它适合的场景是:
- 你的字幕本来就有旋转
- 或者你准备让它旋转
- 而且希望旋转围绕的原点也一起跟着目标移动
如果不开它,会发生什么?
- 字幕位置可能在动
- 但旋转原点还停留在老地方
- 结果可能出现“旋转中心不对”“转得像是在绕空气打转”的现象
- 字贴在一个会转动的屏幕、牌子、箱子上
- 文本本身需要围绕一个固定相对点进行旋转
如果一行实际带有 \org,那么勾选“单行插入(\move)”时也会自动回退到“多行插入(\t)”。
这是因为单行 \move + \t 方案不适合精确表达这种情况。
这个选项非常关键,也最容易误解。
它的意思不是“更准确”,而是:
直接把字幕位置设置成追踪数据当前帧的位置,而不是只应用相对变化量。
默认不勾选“绝对位置”。
这时字幕会:
- 保留你原本排好的基础位置
- 再叠加追踪变化量
适合绝大多数字幕场景。
程序会直接把 \pos 设成追踪数据当前值。
效果上更像:
“让字幕的锚点直接贴在追踪点上。”
- 你就是要把字幕中心严格吸附到 mocha 导出的点
- 字幕本来没有一个你想保留的初始排版位置
- 你在做某种“挂件式”贴附,而不是“在原布局上叠加运动”
- 你已经人工摆好了字幕位置,只想让它跟着动一点
- 你不想字幕突然跳到追踪坐标本身
勾选“绝对位置”时,程序仍会记录位置差值,供裁剪同步参考。
也就是说:
- 文本本体直接被放到绝对位置
- clip 仍可以参考这个位移,避免和文本脱节
这一组控制:
\fscx\fscy\bord\shad\blur
核心思想是:
字幕变大变小时,边框、阴影、模糊往往也要跟着同步变化,否则视觉会失衡。
包含这些开关:
- 缩放
- 边框(\bord)
- 阴影(\shad)
- 模糊(\blur)
- 系数
总开关。
如果它关了:
- 字幕本体不按追踪缩放
- 边框 / 阴影 / 模糊 这些子项也会被禁用
适合场景:
- 你只想要移动,不想要尺寸变化
- 目标本身存在透视和尺度变化,但你希望字幕大小保持稳定
控制边框是否随缩放一起变化。
不开时可能出现的问题:
- 字幕变大了,但边框还是老粗细,显得过细
- 字幕变小了,但边框还是老粗细,显得过厚
适合大多数情况开启。
控制阴影偏移是否随缩放变化。
不开时在明显缩放场景里,阴影距离会看起来不协调。
控制 \blur 是否随缩放变化。
很多人做贴屏字幕时会给一点 blur,这样在目标缩放时,blur 同步变化通常更自然。
这个是 blur_scale,是模糊缩放的衰减系数。
它的含义不是“blur 的绝对值”,而是:
当追踪缩放变化发生时,blur 跟随这个变化的强度是多少。
比如:
-
1.0:完全跟随缩放 -
0.5:只跟一半 -
0:理论上几乎不随缩放变化
- 目标缩放很明显,但你不希望 blur 变化太夸张 -> 设成
0.3 ~ 0.7 - 想完全保留真实比例感 -> 设成
1.0
如果你觉得:
- 字幕缩放正常
- 但边缘糊得过快或过慢
优先调的不是主缩放,而是“系数”。
当前界面里主要使用的是“旋转”。
也就是:
平面内的旋转。
它不是把 AE 的绝对旋转值原封不动写进字幕。
而是比较:
- 参考帧旋转值
- 当前帧旋转值
然后把差值加到字幕原本的旋转值上。
效果是:
保留你原本设定的基础旋转,再叠加追踪变化。
AE 导入的旋转值会自动取反。
原因是:
- AE 的旋转方向和 ASS 的旋转方向不一致
所以导入阶段已经帮你做了符号修正。
这意味着:
如果你看到“方向正确”,那是程序已经替你做过一次换算了。
- 字贴在一个平面目标上,目标有明显转动
- 你希望文字和目标一起旋转,而不是只平移
- 你实际上要的是三维透视变化,而不是简单平面旋转
- 你拿的是 SRS 数据,因为 SRS 不提供这种旋转参数
如果主数据或 clip 数据是 SRS,而你勾选了旋转,程序会给出警告:
- SRS 不包含旋转信息
- 这个选项不会生效
这是摩卡追踪里最容易被低估的一组功能,也是最值得认真理解的一组。
它包含三个核心选项:
矩形裁剪矢量裁剪矩→矢
先讲概念。
矩形 clip,一般长这样:
\clip(100,200,300,400)
它本质上是一个轴对齐矩形。
特点是:
- 写起来简单
- 直观
- 适合快速框选
矢量 clip,一般长这样:
\clip(m 100 200 l 300 200 300 400 100 400)
它本质上是绘图路径。
特点是:
- 形状更自由
- 可以不是矩形
- 更适合复杂边缘或需要逐点变形的情况
打开后,程序会对矩形 clip 应用追踪。
适合:
- 你字幕行里本来就有矩形
\clip - 你只想让这个矩形跟着目标移动/缩放
打开后,程序会对矢量 clip 应用追踪。
适合:
- 你行里本来就是矢量 clip
- 或者你准备把矩形 clip 转成矢量再追踪
- 或者你独立 clip 数据用的是 SRS
这一项非常重要,我单独展开讲。
“矩→矢”的意思就是:
矩形裁剪 to 矢量裁剪
也就是:
先把矩形 clip 转成矢量 clip,再继续追踪。
先纠正一个常见误解。
不开 矩→矢,矩形 clip 也可以动。
矩形裁剪 本身就能让矩形 clip 跟着移动和缩放。
所以 矩→矢 的价值不是“让矩形 clip 能追踪”,而是:
让矩形 clip 进入“矢量 clip 的处理路径”。
假设原始标签是:
\clip(0,0,100,100)
启用“矩→矢”后,会先把它改成类似:
\clip(m 0 0 l 100 0 100 100 0 100)
也就是把矩形四个角变成一个四边形路径。
这个转换会在预处理阶段自动完成。
因为矩形 clip 和矢量 clip 后续走的是两条不同回调。
矩形 clip 和矢量 clip 的后续处理方式不同。
这两条路径最大的区别之一是:
矩形 clip 那条路不会把旋转真正当成“图形逐点变形”来处理。
代码里甚至会在矩形 clip 回调里临时把旋转差置零。
也就是说,矩形 clip 更适合:
- 平移
- 缩放
而不适合:
- 真正跟着一起转成一个倾斜后的四边形
如果不开它:
- 你的字幕本体可能在旋转
- 但 clip 仍然更像一个普通矩形框
- 结果就是 clip 和目标边界不够贴
如果开了它:
- 原来的矩形先被改写成四边形路径
- 然后四个点都能参与矢量 clip 的逐点变换
- 旋转时,clip 会像一个真正的面片那样一起转
因为它本身就是一个“两步走”的动作。
第一步:
- 先识别原来这是矩形 clip
第二步:
- 把它转成矢量 clip
- 再按矢量 clip 逻辑继续处理
所以它天然依赖:
矩形裁剪 = on矢量裁剪 = on
否则流程是不完整的。
这就是为什么 UI 上勾选 矩→矢 时,这两个开关会被自动打开并临时禁用。
比如:
- 屏幕在转
- 牌子在转
- 平面物体在转
这时如果你只保留矩形 clip,clip 往往跟不出那种“转过去”的感觉。
很多人一开始习惯写:
\clip(x1,y1,x2,y2)
因为它简单。
后来发现要跟旋转,就不想手工改绘图。
这时直接开 矩→矢 就行。
例如:
- 文字只需要跟着平移
- 但遮罩区域还要跟着旋转
那你就可以给 clip 单独一套数据,并在 clip 选项里开 矩→矢。
- 你的 clip 本来就是矢量 clip
- 目标没有旋转,只有简单平移/缩放
- 你就是想保留一个普通矩形框,不在乎它是否“图形化旋转”
矩→矢 的本质不是“开启 clip 追踪”,而是:
把矩形 clip 升级成可以按矢量图形逐点变换的 clip。
这是当前内置版非常实用的增强功能。
它的作用是:
给 clip 单独提供一份追踪数据和一套选项,让 clip 不必和文字本体共用同一套运动。
因为实际做效果时,经常出现下面这些情况:
- 文字的定位点和遮罩边界不是同一个目标
- 文字你只想让它平移,但 clip 还想跟缩放/旋转
- 文字是一套 TSR 数据,clip 则想直接用 SRS 遮罩数据
如果不用“独立追踪\clip”,你通常只能:
- 让文字和 clip 都吃同一套数据
这样很多复杂场景就不自然。
“独立追踪\clip”对话框里,主要有这些选项:
- X轴
- Y轴
- 缩放
- 旋转
- 矩形裁剪
- 矢量裁剪
- 矩→矢
- 相对帧号
- 起始帧
也就是说,clip 自己也能决定:
- 用哪些通道
- 从哪一帧开始对齐
- 是按相对帧还是绝对帧解释
“独立追踪\clip”对话框里没有这些东西:
- 边框
- 阴影
- 模糊
- 多行插入(\t) / 单行插入(\move)
- 便捷预览 之类主流程控制项
原因很简单:
clip 不是一段“带边框阴影模糊的文字样式”,它只是裁剪路径。
所以 clip 只需要关心:
- 位置
- 缩放
- 旋转
- clip 类型和帧对齐
有独立 clip 数据时,程序会优先按 clip 自己的选项决定:
- 矩形 clip 用谁的数据
- 矢量 clip 用谁的数据
如果 clip 某一类没指定独立数据,但主选项开着,对主数据仍可回退使用。
这意味着:
“独立追踪\clip”不是“完全隔绝主追踪”,而是“优先使用独立配置,必要时允许主数据补位”。
可以。
当前实现明确支持“只有 clip 数据”的场景。
这时程序会自动:
- 关闭主位置/缩放/旋转等选项
- 自动进入“仅裁剪”语义
适合场景:
- 你只想更新遮罩
- 不想动文字本体
如果 clip 数据是 SRS:
- 旋转不会生效,因为 SRS 不包含旋转参数
-
矩形裁剪单开也没有实际意义,因为 SRS 只适合矢量 clip
程序在这些情况下会给出提示框。
这里是理解输出结果的关键。
有三个相关概念:
多行插入(\t)单行插入(\move)仅裁剪
这是默认主力模式。
它的本质是:
把原字幕拆成一组逐帧行。
每一帧都会生成一条对应行,然后写入当帧的追踪结果。
- 精度高
- 对复杂运动更稳
- 能处理
\org - 能处理 clip 追踪
- 能在每一帧精确展开
\t
- 行数会变多
- 结果看起来不如单行干净
- 目标运动复杂
- 有旋转
- 有 clip
- 需要精确还原逐帧状态
这个名字容易误导,它不是“是否输出多行”的总开关,而更接近:
在逐帧模式下,要不要把 \t 变换真的展开到每一帧。
程序会:
- 先把
\t标记化,避免其他标签处理误伤它 - 在每一帧按时间计算插值结果
- 把
\t内的目标值直接写成当前帧的实际值
效果就是:
每一帧拿到的是“已经算完”的真实标签结果。
程序不会把 \t 展开为逐帧值,而是只调整时间偏移后再保留 \t。
同一条逐帧后处理链路里,程序也会同步前移这些时间型标签:
\k\K\kf\ko\kt- VSFilterMod 的
\kk
其中 \kk 按“可见字符”计数:
-
\h计入 -
\N/\n不计入
适合场景:
- 你希望保留原有
\t结构 - 你不想把所有变换烘焙成纯静态标签
- 想要最稳定、最可见即所得的结果 -> 开
- 想保留更多原脚本结构 -> 关
这一项会尽量把结果压缩成一行,用:
\move\t
去表达首尾变化。
它的目标是:
尽量少生成行,让结果更整洁。
- 输出短
- 看起来清爽
- 适合简单运动
- 只能表达比较线性的变化
- 不适合复杂逐帧变化
- 有些场景会自动回退到“多行插入(\t)”
目前最典型的回退条件有两类:
- 行里存在
\org且你启用了原点(\org) - 行里存在 clip 且当前确实有 clip 追踪数据要应用
因为这两类情况用“单行插入(\move)”表达不稳,程序会保守地回退到“多行插入(\t)”。
- 简单平移
- 轻微缩放
- 不涉及复杂 clip
- 想保持最终脚本整洁
- 复杂旋转
- “独立追踪\clip”
- 需要精确逐帧状态
这个模式的意思非常直接:
只处理 clip,不处理文字本体的位置、缩放、旋转。
开启后,位置、缩放、旋转相关控件会被禁用。
适合场景:
- 你已经手工摆好了文字,只想让裁剪跟着动
- 你在做遮罩动画,不想碰字幕本身
- 你只提供了独立 clip 数据
如果你只有 clip 数据没有主数据,程序实际上也会自动进入这种语义。
这里主要是:
相对帧号起始帧便捷预览反向追踪保存配置
这个选项决定 起始帧 是怎么解释的。
表示:
起始帧 是追踪数据里的第几帧。
例如:
-
1= 从追踪数据第一帧开始 -
2= 从追踪数据第二帧开始 -
-1= 从追踪数据最后一帧开始 -
0= 自动调整为1
这是最常见、最直观的模式。
表示:
起始帧 是视频的绝对帧号。
程序会再结合你当前所选字幕集合的起始帧,把它换算成追踪数据内部的相对索引。
适合场景:
- 你习惯按视频时间轴帧号工作
- 你知道追踪数据对应视频哪一帧开始
因为:
- 更稳定
- 不容易因为选区变化产生误差
- 更贴近“这是导出数据的第几帧”这个本质
- 你明确知道 mocha 数据是从视频第 N 帧开始
- 你希望跟视频当前光标直接对齐
这是参考帧。
它决定程序把追踪数据中的哪一帧视为“起点”。
再强调一次:
摩卡追踪的很多计算不是直接拿当前帧绝对值覆盖,而是:
- 先选一帧作为参考
- 再看当前帧相对这帧变化了多少
所以参考帧选得好不好,会直接影响结果。
- 普通正向跟踪:通常从第一帧开始
- 如果当前视频光标就在目标开始位置附近,可以让程序自动带入这个位置
- 如果你想从跟踪区间末端往回贴,考虑反向追踪
这个选项最容易被误解成“把数据数组倒过来用”,但当前实现不是这样。
程序明确说明:
Mocha 无论正向还是反向追踪,导出数据本身仍然按时间正序排列。
所以这里的 反向追踪 主要作用是:
自动把参考帧设到选中行集合的最后一帧。
也就是说,它本质是一个:
“参考帧定位辅助开关”
而不是“反转数据数组开关”。
- 你当初在 mocha 里是从后往前跟的
- 你想让字幕以末帧作为稳定贴合参考点
勾上后:
- 相对模式 -> 起始帧自动设为总帧数末端
- 绝对模式 -> 起始帧自动设为选区最后一帧的绝对帧号
同时,“独立追踪\clip”的起始帧也会同步调整。
这是当前内置版非常实用的增强项。
它的作用不是“提高追踪精度”,而是:
让你先看效果,再决定是否正式替换原行。
开启后,应用时:
- 原始行会保留
- 但会被标记为注释
- 新生成的追踪结果插在后面
这样你可以直接:
- 播放当前行
- 看实际效果
- 不满意再删掉或重新跑
- 你在试参数
- 你还没确定是单行还是多行
- 你在比较不同起始帧或 clip 策略
原始行会直接删除,变成正式替换。
就是保存当前配置。
配置会持久化到用户配置文件里,下次打开会恢复。
这适合:
- 你有固定工作流
- 经常重复使用某一套勾选组合
它甚至会记住你是否勾选“保存配置”本身。
这一段虽然偏内部,但理解后会很有帮助。
在真正应用追踪之前,程序会先做一轮整理。
主要包括:
- 标记化
\t - 把
\fad统一转成\fade - 去重标签
- 提取位置和样式信息
- 如果没有
\pos,自动补\pos - 补充缺失的必要标签
- 处理
\r样式重置 - 识别
\org - 处理 clip
- 如果需要而当前没有 clip,补一个空
\clip()
其中和透明度最相关的一点是:
-
\fad会先统一进入完整\fade语义; - 后续逐帧静态化时,程序会按“当前帧实际可见区间的中点”计算当前帧应写回的透明度;
- 淡入阶段在这个基础上再叠加一段前移补偿,避免首帧直接透明;
- 淡出阶段继续使用未前移的中点时间基准,避免尾帧被提前采到完全透明。
因为后面的运动应用不是在“自由文本”上乱替换,而是在一个尽量规整的状态下做。
比如:
- 没有
\pos,程序很难知道当前文字该从哪里开始动 - 没有必要的默认标签,
\t插值就可能没有正确起始值 -
\clip如果不先识别出来,后面就无法决定它走矩形还是矢量逻辑
如果一行没有显式 \pos / \move,程序会根据:
- 对齐方式
- 边距
- 脚本分辨率
推导一个默认位置,再把 \pos 补进去。
这意味着:
即使你原行没写 \pos,程序也不会放弃,而是尽量推一个合理起点。
这点对普通用户其实很好理解:
只要你准备让裁剪单独追踪,程序就必须在前面那一步提前把裁剪相关内容准备好。
因为很常见的一种用法就是:
- 文字本体只跟主追踪数据
- 裁剪区域改用另一套追踪数据
如果程序前面只看主追踪设置,就会误以为“这次不用处理裁剪”,后面真正进入“独立追踪\clip”时,很多该提前做好的准备就没做。
结果就可能出现:
- 裁剪没有被正确识别
- 该转成矢量裁剪的时候没转
- 该跟随的裁剪没有跟上
所以现在的行为可以直接理解成:
- 只要主追踪需要处理裁剪,程序就会准备裁剪
- 只要“独立追踪\clip”需要处理裁剪,程序也会准备裁剪
- 只要任意一边需要“矩→矢”,程序也会提前按这个需求处理
这样一来,“文字走一套,裁剪走一套”的用法才会稳定。
这里给一个很重要的实战结论:
优先用:
- “多行插入(\t)”
- 必要时独立 clip
如果 \t 里改的是 alpha 类标签(例如 \alpha、\1a-\4a),当前实现还会额外参考该帧与原字幕真实可见区间的中点时间,而不是简单拿整帧起点做采样。这样做是为了让逐帧结果更贴近实际显示:首帧不至于直接全透明,尾帧也不至于被提前采空。
如果原行还带 \k/\K/\kf/\ko/\kt 或 VSFilterMod \kk,逐帧输出时也会同步前移这些时间标签,避免每一帧都从头重新计时。
才考虑:
- “单行插入(\move)”
- 有
\org - 有 clip 追踪
- 有明显旋转
- 有复杂
\t
原因很简单:
这些情况本来就是逐帧更自然。
“单行插入(\move)”的强项是“简洁”,不是“万能”。
下面给几个最常见的配置建议。
目标:
- 让一行文字跟着牌子移动
- 有一点缩放
- 没有明显旋转
推荐:
- X轴 = 开
- Y轴 = 开
- 缩放 = 开
- 边框 / 阴影 / 模糊 = 视样式决定
- 旋转 = 关或开
- 裁剪 = 关
- 单行插入(\move) = 可以试
这类通常勾选“单行插入(\move)”就够了。
目标:
- 文字跟着移动、缩放、旋转
推荐:
- X轴 / Y轴 = 开
- 缩放 = 开
- 旋转 = 开
- 原点(\org) = 视情况开
- 优先“多行插入(\t)”
如果还用了矩形 clip,并且 clip 要跟着转:
- 开“矩形裁剪”
- 开“矢量裁剪”
- 开“矩→矢”
目标:
- 本体位置保持现有排版
- 只让
\clip动起来
推荐:
-
仅裁剪= 开 - 如果有单独的遮罩数据,使用
独立追踪\clip
这是“独立追踪\clip”非常适合的一类场景。
目标:
- 文字跟一个点
- clip 跟一个形状或另一条轨迹
推荐:
- 主对话框正常设置主追踪
- 打开
独立追踪\clip - 给 clip 单独粘贴追踪数据
- 根据需要选择
矩→矢
这种场景下,当前内置版比老式“全部共用一套数据”的方案更灵活。
目标:
- 直接把每帧矢量路径贴进 clip
推荐:
- 独立 clip 数据使用 SRS
- 重点开
矢量裁剪 - 不要指望旋转从 SRS 里出来
如果你还勾了旋转,程序通常会提醒你这项没意义。
不行。
当前实现会严格检查长度是否匹配,不匹配直接中止。
不一定。
它只是“直接贴坐标”,不代表更适合你的版式。
很多时候相对模式更自然。
不一定。
如果只是简单平移和缩放,普通矩形 clip 就够了。
矩→矢 主要在涉及旋转或你需要更像“图形变形”时才显得特别重要。
当前普通工作流不是这样。
它主要是把参考帧自动设到末端。
不是。
它本质是另一种表达策略,能力边界更窄。
可能是自动从剪贴板粘贴了内容。
如果主输入框为空或当前内容无效,对话框重新获得焦点时会自动尝试填充剪贴板。
常见原因有:
- 主数据和 clip 数据都没提供
- 数据解析失败
- 数据长度和选区帧数不匹配
- 用户在多行处理进度框中取消了操作
先确认:
- 你用的是 TSR 还是 SRS
- 你是不是只跟了 clip,没跟文本本体
- 你是不是忘了矩形 clip 需要
矩→矢才更像真正旋转
因为勾选“多行插入(\t)”后,程序会把 \t 逐帧展开。
这不是丢失,而是“烘焙”成每帧实际值。
重点检查:
- 是否用了独立 clip 数据
- 主追踪和 clip 追踪的
起始帧是否一致 - clip 是矩形还是矢量
- 是否该开
矩→矢
如果你不确定怎么配,先用这套最稳配置:
- X轴 = 开
- Y轴 = 开
- 缩放 = 开
- 边框 = 开
- 阴影 = 开
- 模糊 = 关或开
- 旋转 = 按需
- 相对帧号 = 开
- 起始帧 = 1
- 多行插入(\t) = 开
- 单行插入(\move) = 关
- 便捷预览 = 开
- 矩形裁剪 = 开
- 矢量裁剪 = 开
- 如果目标会转 -> 矩→矢 = 开
- 直接使用“独立追踪\clip”
这套配置的优点是:
- 行为可预测
- 精度高
- 出错时容易判断问题出在哪一层
这一点和它的内部设计有关。
它会先把 \t 标记成占位符,再进行其他处理。
这样可以避免:
- 外层处理误伤
\t里的标签
也就是说,即使某些标签没在行首明确写出来,只要样式里有默认值,插值和补全仍能尽量正确。
所以在有样式切换的行里,它也不会完全失去上下文。
包括:
- 把绘图 clip 变成浮点坐标表示
- 在必要时把矩形裁剪转换成矢量裁剪
这使得后续裁剪跟踪逻辑更统一。
如果只记住五句话,可以记这五句:
- 想稳,优先用 多行插入(\t)。
- 想省行数,才试 单行插入(\move)。
- 涉及 clip,优先先分清 矩形 clip 和 矢量 clip。
- 涉及旋转的矩形 clip,优先考虑开
矩→矢。 - 文字和裁剪不是同一套运动时,直接用 独立追踪\clip,不要硬共用一套数据。
建议与下面这些页面配合阅读:
- 《摩卡追踪参数速查表》:适合快速查参数、查场景、查避坑。
- 本页中的“10. 实战场景建议”与“12. 常见问题排查”:适合在实际制作时对照使用。