Skip to content

透视追踪使用手册

mojie126 edited this page Aug 14, 2026 · 4 revisions

透视追踪使用手册

适用对象:希望在 Aegisub 内使用 AE CC Power Pin 透视追踪数据完成文字透视跟踪的用户。

先看效果

HDR 暗黑新娘! 2160p CHDWEB 143200-143343 -00001_ 0-143 _s4

页面说明

  • 文中选项名称以界面简体中文为准。
  • "透视追踪"对应内部模块 perspective_motion,利用 AE CC Power Pin 导出的角点追踪数据驱动 ASS 字幕的 3D 透视变换。
  • "参考帧"是追踪数据中用于计算相对变化的那一帧。
  • "\org"指 ASS 标签 \org,即旋转原点。

目录

    1. 认识透视追踪
    • 1.1 这是什么
    • 1.2 和摩卡追踪有什么区别
    • 1.3 支持哪些输入数据
    1. 上手流程
    • 2.1 一次完整使用的典型流程
    • 2.2 核心概念:参考帧与四边形映射
    1. 主对话框功能详解
    • 3.1 数据输入区
    • 3.2 透视追踪选项
    • 3.3 \org 模式
    • 3.4 配置选项
    1. 进阶理解
    • 4.1 透视变换管线
    • 4.2 参考帧预校正(应用透视)是什么
    • 4.3 \org 模式选哪个
    1. 常见问题与快速结论
    • 5.1 常见误区
    • 5.2 常见问题排查
    • 5.3 推荐起步方案

1. 认识透视追踪

1.1 这是什么

透视追踪(Perspective Motion)是 Aegisub 内的透视跟踪模块,专门处理 Adobe After Effects CC Power Pin 导出的四角追踪数据。它能把每一帧的四边形变形数据应用到 ASS 字幕行上,让字幕呈现和画面一致的三维透视变化。

你可以把它简单理解成:

  • 摩卡追踪处理平面运动(位移、缩放、平面旋转)
  • 透视追踪处理三维透视(四边形扭曲、透视投影)

两者互补,不是替代关系。

1.2 和摩卡追踪有什么区别

维度 摩卡追踪 透视追踪
输入数据 TSR (位置/缩放/旋转) 或 SRS (矢量形状) CC Power Pin(四个角点坐标)
变换类型 仿射变换(平移+缩放+旋转) 透视变换(四边形扭曲)
输出标签 \pos, \fscx, \fscy, \frz \pos, \org, \fscx, \fscy, \frz, \frx, \fry, \fax, \fay, \xbord, \ybord, \xshad, \yshad
典型场景 平面跟踪、屏幕贴字 三维空间中的平面跟踪、角落固定透视

简单来说:如果你要追踪的目标在画面中看起来始终是一个矩形(只是位置、大小、角度在变),用摩卡追踪。如果目标在画面中变成了任意四边形(有透视形变),用透视追踪。

1.3 支持哪些输入数据

目前只支持一种格式:

Adobe After Effects CC Power Pin 导出数据

即 AE 中给图层添加 CC Power Pin 效果后,从"Edit"菜单复制的关键帧文本。

Power Pin 定义四个角点(左上、右上、右下、左下),每帧记录每个角点的 X/Y 坐标。

数据格式大致如下(具体取决于 AE 版本和导出方式):

Effects	CC Power Pin #1	CC Power Pin-0002
	Frame	X pixels	Y pixels
	0	100.00	200.00
	1	102.50	198.00
	...

透视追踪会自动识别四个角点标记(0002=TL, 0003=TR, 0005=BR, 0004=BL),提取每帧的 X/Y 坐标。

数据校验:程序对数据做严格校验,以下情况会判定为无效(对话框状态提示显示"数据格式或文件路径无效",应用时弹窗提示解析失败):

  • 四个角点(0002/0003/0005/0004)的 Frame 列不一致或不是严格递增(例如只重新追踪了部分 Pin 导致帧号错位)
  • 数据块中间出现空行后再接数据行(截断或拼接损坏)
  • 坐标不是有限数值(NaN/Inf)或数值不完整

建议:在 AE 中复制数据前,确认四个 Pin 的关键帧范围一致。

文件路径输入

数据输入框也支持直接粘贴文件路径,程序会读取文件内容再解析。


2. 上手流程

2.1 一次完整使用的典型流程

第一步:在 AE 中准备追踪数据

  1. After EffectsMocha 中给目标图层添加 CC Power Pin 效果
  2. 在目标画面的四个角各放置一个 Pin
  3. 在目标运动的时间范围内给四个 Pin 打关键帧
  4. 选中所有关键帧,复制(Ctrl+C)

第二步:在 Aegisub 中选中字幕行

选中你要应用透视追踪的字幕行(一行或多行)。

程序会计算这些行覆盖的总帧范围,并用这个范围来校验数据长度。

第三步:打开透视追踪对话框

选中行后,右键菜单 → 应用透视追踪

对话框打开后会自动尝试从剪贴板读取追踪数据。

第四步:检查数据状态

粘贴数据后,对话框底部会显示:

  • 数据帧数
  • 选中行需要的帧数
  • 视频分辨率

数据帧数和选中行需要的帧数应一致,不一致时应用会报错中止。

第五步:配置追踪选项

根据需要勾选:

  • 追踪位置与透视(默认开)
  • 追踪剪裁(默认开)
  • 缩放边框与阴影(默认开)
  • 应用透视(默认开)
  • \org 模式:选择原点策略

第六步:设置参考帧与起始帧

对话框中有两个独立的帧号控件位于不同区域:

参考帧(Reference frame):位于"透视追踪选项"区内,决定以追踪数据中的哪一帧作为透视变换基准。始终以数据内 1-based 帧号表示,程序会根据当前视频帧位置自动推荐。

起始帧(Start Frame):位于"配置"区内,配合"相对"模式确定追踪数据对齐到字幕行的起始偏移。

  • 相对:开启时起始帧是追踪数据内部的索引(1=第一帧),关闭时是视频绝对帧号。切换模式时数值自动换算。
  • 反向追踪:勾选后自动将参考帧和起始帧都设到选区的最后一帧。

第七步:应用

点击 应用 执行追踪。

  • 便捷预览模式:原行被注释保留,结果行插在后面,可直接播放预览
  • 正式模式:原行被删除,替换为新结果
  • 从剪贴板粘贴:从剪贴板粘贴数据(相当于 Apply 按钮旁的 Paste 按钮)

2.2 核心概念:参考帧与四边形映射

透视追踪的核心思路不是"每帧绝对匹配",而是以参考帧为基准做相对变换

  1. 取追踪数据中的参考帧四边形(由参考帧号指定)
  2. 对选中的字幕行,计算其在参考帧下的屏幕四边形(通过 \pos\org\frz\fscx 等标签)
  3. 建立一个 UV 映射空间,把参考帧四边形 → 单位方块 → 当前帧四边形 的映射关系算出来
  4. 对每一帧:将字幕的标签值通过 UV 映射重新计算,得到当前帧下的新标签

这个过程确保了:如果字幕在参考帧时看起来是正的,在其他帧时就会跟着追踪数据一起变形。


3. 主对话框功能详解

3.1 数据输入区

数据输入框

  • 支持粘贴 AE CC Power Pin 文本数据
  • 支持输入文件路径(程序自动读取)
  • 对话框获得焦点时,如果当前内容为空或无效,自动从剪贴板尝试填充

状态提示

显示在数据输入框下方:

  • 数据帧数(Data frames: N
  • 选中行需要的帧数(Line needs: N frames
  • 视频分辨率(Video: WxH

数据长度匹配时显示绿色,不匹配时显示红色。

3.2 透视追踪选项

追踪位置与透视

默认开启。

控制是否将透视追踪应用到 \pos 以及所有变换标签(\frz, \frx, \fry, \fscx, \fscy, \fax, \fay)。

开启后,程序会:

  1. 在参考帧计算字幕的屏幕四边形
  2. 通过 UV 映射计算每帧的新位置和透视参数
  3. 把结果写回 \pos, \frz, \frx, \fry, \fscx, \fscy, \fax, \fay

关闭后,仅跟踪位置变化(保持四边形形状),不再应用目标帧的透视变形。

追踪剪裁

默认开启。

控制是否对 \clip / \iclip 应用透视映射。

支持两种 clip 格式:

  • 矩形 clip\clip(x1,y1,x2,y2) → 按四个角点分别映射
  • 矢量 clip\clip(m x y l ...) → 逐坐标点映射

开启后,clip 区域会随着追踪数据一起变形,确保遮罩贴合目标。

缩放边框与阴影

默认开启。

控制 \bord\shad 是否随透视缩放变化。

透视追踪会使字幕的视觉大小改变,如果边框和阴影不跟着调整,视觉效果会失调。开启后,边框和阴影的缩放比例会跟随 \fscx / \fscy 的变化自动调整。

应用透视

默认开启。

这是透视追踪比较特殊的一个选项,值得理解清楚。

假设这样一种情况:

  • 参考帧的追踪四边形是透视变形的(比如画面中的牌子是斜着的)
  • 但你的字幕在参考帧时是平的(没有透视变形)

如果不开应用透视,程序会认为"字幕原本就是平的,在所有帧都保持平贴",结果可能是在透视较强烈的帧里,字幕看起来像是飘在表面而不是真正贴在目标上。

如果开启应用透视,程序会在参考帧先对字幕做一次透视预变形,算出"要让字幕在参考帧看起来像是贴在目标上,需要什么样的透视参数",然后再把这个状态作为基准映射到其他帧。

推荐开启。只有当你确定参考帧的字幕本身已经有了正确的透视参数时,才考虑关闭。

参考帧(Reference frame)

位于"透视追踪选项"区内。

指定追踪数据中作为透视变换基准的帧号,始终以数据内 1-based 帧号表示(1 = 追踪数据第一帧)。

程序会根据当前视频帧位置自动推荐参考帧号。你也可以手动调整。反向追踪开启时,参考帧自动设为追踪数据最后一帧。

fade 与 alpha 处理

行内存在 \fad / \fade 时,程序会逐帧静态化:按每帧与行的可见区间求 fade 透明度,替换为对应的静态 \alpha 标签。

  • 透明度与已有的 \1a-\4a 通道逐通道相乘,不会丢失通道信息
  • fade 标签出现在某个 override 块时,从该位置持续调制到行尾——后面块里显式写的 alpha 标签同样会被 fade 调制
  • \t(...) 内的 alpha 标签会先按当前采样时间静态化,再与 fade 组合

3.3 \org 模式

\org(旋转原点)在透视追踪中非常重要,因为它决定了 3D 旋转的轴心。

三种模式:

保持原值

保留字幕行中已有的 \org 值,不做修改。

适合场景:

  • 你手工设好了 \org
  • 字幕本身有特定的旋转轴需求
  • org_mode = 1(保持原值)

强制中心

推荐模式,默认选中。

\org 设为追踪四边形的中心点。

这是最安全的模式,适合绝大多数场景。因为透视追踪的变换计算以四边形为基准,把原点设在四边形中心可以让旋转和透视效果最自然。

尝试令 \fax = 0

尝试调整 \org,使得反推出来的 \fax 接近零。

\fax(剪切 X)是 ASS 标签中不太直观的一个。这个模式试图通过调整原点来减少不必要的剪切变形。

适合场景:

  • 追踪数据本身透视变形较小
  • 希望输出结果尽可能"干净"、不带 \fax 标签
  • 对数学变换有理解的进阶用户

3.4 配置选项

相对

默认开启。

  • 开启时:起始帧是追踪数据内部的索引。1 = 第一帧。
  • 关闭时:起始帧是视频的绝对帧号。程序会自动换算成追踪数据内的相对索引。

切换时,起始帧的值会自动换算。

推荐始终开启。 相对模式更稳定,不依赖视频的绝对时间轴。

起始帧

配合"相对"模式决定追踪数据对齐到字幕行的起始偏移。

  • 正向追踪:通常填 1(追踪数据第一帧对齐到字幕行起始)
  • 设置大于 1 的值可跳过追踪数据的前几帧
  • 反向追踪开时,起始帧被自动调整(应用阶段由参考帧号重新计算)

便捷预览

默认开启。

开启后,应用时:

  • 原始行被注释(保留)
  • 新结果插在后面
  • 你可以播放预览对比效果

关闭后,原始行被直接删除替换。

推荐始终开启,确认效果后再手动整理。

反向追踪

默认关闭。

开启后自动将参考帧和起始帧都设到选中行集合的最后一帧。

适合:

  • 在 AE 中是从后往前打的 Pin
  • 希望以最后一帧作为贴合参考

保存配置

默认开启。

开启后,当前设置会被保存到 aegisub-motion.jsonpersp 段,下次打开对话框自动恢复。

写入四边形到扩展数据

默认开启。

开启后,每个输出行会把当前帧的追踪四边形写入该行的扩展数据 (extradata 键 _aegi_perspective_ambient_plane,格式 x1;y1|x2;y2|x3;y3|x4;y4)。

Aegisub 的透视视觉工具会读取这个键,把结果贴回原平面继续手动精调。关闭后不写入,输出行更干净,但视觉工具无法直接恢复该平面。


4. 进阶理解

4.1 透视变换管线

理解透视追踪的内部处理步骤,有助于排查问题。

从标签到四边形(正向)的变换顺序:

原始矩形 (0,0)-(w,0)-(w,h)-(0,h)
  ↓ \fax, \fay 剪切
按对齐点 (\an) 平移
  ↓ \fscx, \fscy 缩放
平移到 pos - org
  ↓ 3D 旋转(Z → X → Y 顺序)
RotateZ(-frz) → RotateX(-frx) → RotateY(fry)
  ↓ 透视投影
投影到屏幕(深度 312.5)
  ↓ 
回加 org

从四边形到标签(逆向)的过程则相反:

取四边形
  ↓ 求解平行四边形参数(z1, z3)
确定 \org
  ↓ 相对 org 归一化
反投影到 3D 空间
  ↓ 分解旋转
提取 frx / fry / frz
  ↓ 在水平平行四边形中求解缩放与剪切
提取 fscx / fscy / fax
  ↓ 
计算 pos

这个正向-逆向管线确保了标签值与屏幕四边形之间的精确对应。

4.2 参考帧预校正(应用透视)是什么

这是个需要稍作理解的选项。

考虑一个典型的用例:

  • 你有一行字幕 {\frz0}Hello
  • 参考帧的 CC Power Pin 四边形是透视变形的(牌子的四个角不构成矩形)

如果不预校正:

  1. 程序在参考帧看到:字幕是 \frz0,计算出矩形屏幕四边形
  2. 映射到追踪四边形的 UV 空间
  3. 在其他帧:从 UV 映射回屏幕四边形
  4. 结果:字幕在各帧尽量保持"平的"外观,但位置跟随追踪

如果预校正:

  1. 程序在参考帧看到:字幕是 \frz0,计算出矩形屏幕四边形
  2. 但同时也注意到追踪四边形是扭曲的
  3. 于是调整参考帧的标签值,使字幕的屏幕四边形尽可能贴合追踪四边形
  4. 然后再做 UV 映射
  5. 结果:字幕在参考帧就贴合了目标表面,在各帧的透视变化也更自然

一句话总结:预校正是让字幕在参考帧就贴合目标透视,保证跨帧的透视连续性。

4.3 \org 模式选哪个

场景 推荐模式 原因
首次使用 强制中心 最安全,结果可预测
字幕已有手动 \org 保持原值 保留手工调整
需要最小化 \fax 尝试令 \fax=0 输出标签更"干净"
追踪透视变化剧烈 强制中心 中心点稳定性最好
字幕本身有自旋转 保持原值 保留原有旋转轴

大多数场景直接用 强制中心即可。


5. 常见问题与快速结论

5.1 常见误区

误区 1:透视追踪 = 摩卡追踪

不是。两者处理不同类型的数据和变换。摩卡处理平面运动,透视处理三维形变。

误区 2:数据帧数差几帧也能用

不能。程序严格校验数据帧数是否与选中行的时间范围匹配,不匹配直接中止。

误区 3:参考帧越大越准

没这回事。参考帧只是决定从追踪数据的哪个位置开始计算相对变化。把参考帧设在目标最稳定、遮挡最少的那一帧通常效果最好。

误区 4:\org 选保持原值最安全

不一定。如果原行没有 \org,程序会自动把 \org 设为 \pos 的值,这不一定是最优的透视轴心。强制中心更通用。

误区 5:应用透视应该关掉

建议保持开启。预校正能显著改善透视跟踪的准确性,尤其在追踪四边形变形较大的场景。

5.2 常见问题排查

为什么应用后字幕位置完全不对

常见原因:

  • 参考帧设置不正确 — 检查参考帧号的值
  • 数据长度不匹配 — 检查状态提示的颜色
  • 未勾选追踪位置与透视 — 确认追踪选项

建议:开启"便捷预览"模式,先看效果再决定是否正式替换。

为什么字幕看起来被压扁或拉长了

可能的原因:

  • \org 设置不合适 — 尝试强制中心
  • \fax / \fay 值异常 — 尝试令 \fax=0 模式
  • 追踪四边形本身异常 — 检查 AE 中的 Pin 位置

为什么裁剪没有跟着变形

检查:

  • 追踪剪裁是否开启
  • clip 格式是矩形还是矢量(两者都支持)
  • 是否在同一个 override 块中(透视追踪逐块处理)

为什么输出包含大量 \frx / \fry / \fax

这是正常的。AE CC Power Pin 追踪数据包含了三维透视信息,ASS 需要用这些标签来表达。

如果希望输出更"干净",可以尝试:

  • \org 模式选尝试令 \fax=0
  • 确认应用透视是否开启

为什么提示数据长度不匹配

追踪数据的帧数必须等于选中行覆盖的总帧数。

例如:选中行从第 100 帧到第 150 帧(共 51 帧),追踪数据必须有 51 帧的数据。

解决方案:

  • 调整 AE 中 CC Power Pin 的关键帧范围
  • 或调整 Aegisub 中的选中行范围

为什么提示数据格式无效

对话框状态提示显示"数据格式或文件路径无效"(或应用时弹窗提示"追踪数据解析失败,请检查数据格式或文件路径")时,常见原因:

  • 四个角点的 Frame 列不一致或重复(AE 中重新追踪过部分 Pin)
  • 坐标列是空值或非数字(AE 复制时漏选行)
  • 粘贴的内容其实是文件路径但路径不存在

建议:重新在 AE 中全选四个 Pin 的所有关键帧复制,或检查路径是否正确。

应用时报样式缺失警告

字幕行引用的样式在脚本中不存在时,程序会弹窗提示(该行按默认样式值继续处理,与摩卡追踪行为一致)。

解决方案:检查字幕的 Style 字段是否拼写正确,或先创建对应样式。

脚本没有 PlayRes 时位置不对

脚本缺少 PlayResX/PlayResY 时,程序会按 Aegisub 的标准规则推断一个脚本分辨率(两个都缺失时用 384×288,只缺一个时按常见屏幕比例推算)。无 \pos 字幕的默认位置会按这个推断值计算,可能和你的预期不同。

解决方案:在脚本头补充 PlayResX/PlayResY。

5.3 推荐起步方案

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

  • 追踪位置与透视 = 开
  • 追踪剪裁 = 开
  • 缩放边框与阴影 = 开
  • 应用透视 = 开
  • \org 模式 = 强制中心
  • 相对 = 开
  • 起始帧 = 1
  • 便捷预览 = 开
  • 保存配置 = 开

这套配置的优点是:

  • 结果可预测
  • 透视跟踪效果完整
  • 出错时容易排查

5.4 一份简短结论

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

  • 透视追踪处理三维扭曲,不是平面运动。
  • 应用透视 保持开启,它让参考帧先贴合透视。
  • \org 模式用强制中心,省心又稳定。
  • 数据长度必须匹配,不对齐会直接报错。
  • 便捷预览帮助你先看效果再决定,降低试错成本。

相关页面

Clone this wiki locally