[整理] ASS 标签(VSFitlerMod)

说在前面

[转载存档] 本文的内容整理自大头P群里上传的《VSFilterMod 中文说明文档》,会配上一些自己的理解你都没用 Windows 能有什么理解。总的来说是以快速查询为目的整理的,因此会跳过一些不必要的内容。

本文仅整理 VSFilterMod 的标签,如果想要使用标准的 ASS 标签请查阅前篇

本文默认读者已经读过《[整理] ASS 标签(标准)》一文。文中跳过了原文档的例子,并建议读者亲自实践过后将本文作为简单的手册查询。

补充:$ 标号

在下文的描述中,如果有用到 $ 符号的,一律以下标的含义理解标签:

数字含义
1主要颜色
2次要颜色
3边框
4阴影

特效标签:整行

这一类特效标签会对整行字幕生效。

mover(极坐标移动)

格式

mover(x1: number, y1: number, x2: number, y2: number, angle1: number, angle2: number, radius1: number, radius2: number, t1?: number, t2?: number)

说明

当不指定 angle 和 radius 时,和 move 效果一致。

当指定 angle 和 radius 后,就按照设定的角度和半径进行运动。

moves3moves4(三次贝塞尔曲线移动)

格式

moves3(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, t1?: number, t2?: number)
moves4(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, t1?: number, t2?: number)

说明

使用 p1p2 和 p3(以及 p4)为基点,产生三(四)次贝塞尔曲线后以该曲线作为轨迹移动。

特效标签:标签后

fsc(字体缩放)

格式

fsc(scale: number)

说明

设置字体的缩放,效果与同时使用 fscx 和 fscy 相同。

注意

这里存在 VSFilterMod 和 libass 的差异。libass 虽然也有 fsc 标签,但它的 fsc 标签并不解析之后的参数。具体的代码是这样的:

        } else if (tag("fsc")) {
            render_priv->state.scale_x = render_priv->state.style->ScaleX;
            render_priv->state.scale_y = render_priv->state.style->ScaleY;
        }

对比上面的 fscx

        } else if (tag("fscx")) {
            double val;
            if (nargs) {
                val = argtod(*args) / 100;
                val = render_priv->state.scale_x * (1 - pwr) + val * pwr;
                val = (val < 0) ? 0 : val;
            } else
                val = render_priv->state.style->ScaleX;
            render_priv->state.scale_x = val;
        }

可以很明显地看出差异。libass 中的 fsc 只能用户将字体大小恢复为样式默认值。

fsvp(纵向偏移)

格式

fsvp(leading: number)

说明

改变文字的纵向偏移(vertical padding)。数字的正负代表其在 Y 轴上的偏移量。

frs(基线倾斜)

格式

frs(angle: number)

说明

将文字的基线倾斜,即文字仍以原点开始渲染,但渲染的方向根据 angle 变化。

补充

个人感觉可以用 an7pos 加上 fr(z) 模拟这个效果。

zZ 坐标)

格式

z(depth: number)

说明

设置 Z 坐标,表示文字到屏幕之间的距离。

补充

感觉视角有点奇怪,具体还得研究源码。

distort(扭曲)

格式

distort(u1: number, v2: number, u2: number, v2: number, u3: number, v3: number)

说明

通过移动 (u, v) 点的坐标,以自定义三个点配合原点的形式实现文本的扭曲。四个点从原点开始顺时针方向分别为:P0(0, 0)P1(u1, v1)P2(u2, v2)P3(u3, v3)

默认的状态为 \distort(1, 0, 1, 1, 0, 1)

rndrndxrndyrndz(边界变形)

格式

rnd(arg: number)
rndx(arg: number)
rndy(arg: number)
rndz(arg: number)

说明

在选定的坐标轴上,字体的边界会产生某种可以认为是随机的变形。变形的范围是 (-arg, arg)

rndz 可能比较难以观察,使用 fscx45 观察相对较为清楚。

使用 rnd 相当于同时使用 rndxrndy 和 rndz

$vc(颜色渐变)

格式

$vc(left_top: Color, right_top: Color, left_bottom: Color, right_bottom: Color)

说明

线性插值渲染颜色渐变。

$va(透明度渐变)

格式

$va(left_top: Alpha, right_top: Alpha, left_bottom: Alpha, right_bottom: Alpha)

说明

线性插值渲染透明度渐变。

$img(图片替代颜色填充)

格式

$img(path: string, x_offset?: number, y_offset?: number)

说明

将图片以重复(repeated)的形式作为颜色填充,配合绘图指令可以达到嵌入图片的效果。

图片路径以 / 符号作为目录分隔符,可以是相对或绝对路径。

图片只支持 24 位或 32 位不带透明通道的 TrueColor PNG 文件。

注意

\be 和 \blur 不能模糊图片,只能模糊图片填充的边框。

jitter(抖动)

格式

jitter(left: number, right: number, up: number, down: number, period: number, seed?: number)

说明

根据 leftrightupdown 限定抖动的区域,根据 period 设置抖动的周期,并以 seed 为随机数种子抖动。

特效标签:特殊

这里出现了一种特殊的标签,难以归到上述的两类之中,因此独立出来单列一类。

movevc(移动矢量绘图遮罩)

格式

movevc(x1: number, y1: number, x2: number, y2: number, t1?: number, t2?: number)

说明

移动原本无法移动的矢量绘图遮罩。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值