Skip to content

AssRocket VSFilterMod 使用文档

mojie126 edited this page Jun 2, 2026 · 1 revision

VSFilterMod 字幕标签使用文档

更新日期: 2026-04-19

📖 使用提示:

  • 点击目录可快速跳转到对应章节
  • 点击速查表中的标签可跳转到详细说明
  • 每个章节末尾都有"返回目录"链接
  • 建议先查看速查表快速了解所有标签

目录


颜色和透明度标签

基础颜色标签

\1c&H<bbggrr>& - 主要颜色

设置文字主体颜色(BGR格式)

  • 参数: 十六进制颜色值
  • 示例: \1c&H0000FF& (红色)

\2c&H<bbggrr>& - 次要颜色

设置卡拉OK效果的次要颜色

  • 参数: 十六进制颜色值
  • 示例: \2c&H00FF00& (绿色)

\3c&H<bbggrr>& - 边框颜色

设置文字边框颜色

  • 参数: 十六进制颜色值
  • 示例: \3c&HFFFFFF& (白色)

\4c&H<bbggrr>& - 阴影颜色

设置文字阴影颜色

  • 参数: 十六进制颜色值
  • 示例: \4c&H000000& (黑色)

\c&H<bbggrr>& - 快捷主要颜色

等同于 \1c,设置主要颜色

  • 参数: 十六进制颜色值

基础透明度标签

\1a&H<aa>& - 主要透明度

设置文字主体透明度

  • 参数: 00(不透明) - FF(完全透明)
  • 示例: \1a&H00& (完全不透明)

\2a&H<aa>& - 次要透明度

设置卡拉OK效果的次要透明度

  • 参数: 00(不透明) - FF(完全透明)

\3a&H<aa>& - 边框透明度

设置文字边框透明度

  • 参数: 00(不透明) - FF(完全透明)

\4a&H<aa>& - 阴影透明度

设置文字阴影透明度

  • 参数: 00(不透明) - FF(完全透明)

\alpha&H<aa>& - 全局透明度

同时设置所有4个透明度通道

  • 参数: 00(不透明) - FF(完全透明)
  • 示例: \alpha&H80& (半透明)

⬆ 返回目录


位置和移动标签

位置标签

\pos(<x>,<y>) - 固定位置

设置字幕的固定位置

  • 参数: x, y 坐标
  • 示例: \pos(320,240)
  • VSMod扩展: \pos(<x>,<y>,<z>) 支持Z轴坐标

\an<n> - 对齐方式(小键盘布局)

设置字幕对齐方式(1-9,按小键盘布局)

  • 参数:
    • 1=左下, 2=中下, 3=右下
    • 4=左中, 5=居中, 6=右中
    • 7=左上, 8=中上, 9=右上
  • 示例: \an5 (居中)

\a<n> - 对齐方式(传统)

传统对齐方式(1-11)

  • 参数: 1-11的数字

移动标签

\move(<x1>,<y1>,<x2>,<y2>[,<t1>,<t2>]) - 线性移动

从位置1移动到位置2

  • 参数:
    • x1,y1: 起始坐标
    • x2,y2: 结束坐标
    • t1,t2: 可选的时间范围(毫秒)
  • 示例: \move(0,0,100,100,0,1000)

\org(<x>,<y>) - 旋转中心

设置旋转和缩放的中心点

  • 参数: x, y 坐标
  • 示例: \org(320,240)
  • VSMod扩展: \org(<x1>,<y1>,<x2>,<y2>[,<t1>,<t2>]) 支持移动旋转中心

⬆ 返回目录


字体样式标签

字体基础

\fn<name> - 字体名称

设置字体名称

  • 参数: 字体名称字符串
  • 示例: \fnArial

\fs<size> - 字体大小

设置字体大小

  • 参数: 数字(像素)或 +/- 相对值
  • 示例: \fs48\fs+10

\fscx<percent> - 水平缩放

设置字体水平缩放比例

  • 参数: 百分比(100=正常)
  • 示例: \fscx150 (150%)

\fscy<percent> - 垂直缩放

设置字体垂直缩放比例

  • 参数: 百分比(100=正常)
  • 示例: \fscy150 (150%)

\fsc<percent> - 统一缩放

同时设置水平和垂直缩放

  • 参数: 百分比(100=正常)
  • 示例: \fsc120 (120%)

\fsp<pixels> - 字符间距

设置字符之间的间距

  • 参数: 像素值(可为负)
  • 示例: \fsp5

字体样式

\b<weight> - 粗体

设置字体粗细

  • 参数:
    • 0 = 正常
    • 1 = 粗体
    • 100-900 = 具体粗细值
  • 示例: \b1\b700

\i<0|1> - 斜体

设置斜体

  • 参数: 0=关闭, 1=开启
  • 示例: \i1

\u<0|1> - 下划线

设置下划线

  • 参数: 0=关闭, 1=开启
  • 示例: \u1

\s<0|1> - 删除线

设置删除线

  • 参数: 0=关闭, 1=开启
  • 示例: \s1

字体旋转

\frx<degrees> - X轴旋转

绕X轴旋转(俯仰)

  • 参数: 角度值
  • 示例: \frx30

\fry<degrees> - Y轴旋转

绕Y轴旋转(偏航)

  • 参数: 角度值
  • 示例: \fry45

\frz<degrees>\fr<degrees> - Z轴旋转

绕Z轴旋转(平面旋转)

  • 参数: 角度值
  • 示例: \frz90

字体变形

\fax<factor> - X轴倾斜

设置X轴倾斜(水平剪切)

  • 参数: 倾斜系数
  • 示例: \fax0.5

\fay<factor> - Y轴倾斜

设置Y轴倾斜(垂直剪切)

  • 参数: 倾斜系数
  • 示例: \fay0.3

\fe<charset> - 字符集

设置字符集编码

  • 参数: 字符集编号
  • 示例: \fe134 (简体中文)

⬆ 返回目录


边框和阴影标签

边框标签

\bord<width> - 边框宽度

设置边框宽度(X和Y相同)

  • 参数: 像素值
  • 示例: \bord3

\xbord<width> - X轴边框宽度

单独设置X轴边框宽度

  • 参数: 像素值
  • 示例: \xbord4

\ybord<width> - Y轴边框宽度

单独设置Y轴边框宽度

  • 参数: 像素值
  • 示例: \ybord2

阴影标签

\shad<depth> - 阴影深度

设置阴影深度(X和Y相同)

  • 参数: 像素值
  • 示例: \shad2

\xshad<depth> - X轴阴影深度

单独设置X轴阴影深度

  • 参数: 像素值(可为负)
  • 示例: \xshad3

\yshad<depth> - Y轴阴影深度

单独设置Y轴阴影深度

  • 参数: 像素值(可为负)
  • 示例: \yshad3

⬆ 返回目录


模糊和特效标签

模糊标签

\blur<strength> - 高斯模糊

设置高斯模糊强度(X和Y相同)

  • 参数: 模糊强度值
  • 示例: \blur2

\xblur<strength> - X轴高斯模糊

单独设置X轴高斯模糊

  • 参数: 模糊强度值
  • 示例: \xblur3
  • 注意: 此标签可能不被所有ASS渲染器支持

\yblur<strength> - Y轴高斯模糊

单独设置Y轴高斯模糊

  • 参数: 模糊强度值
  • 示例: \yblur3
  • 注意: 此标签可能不被所有ASS渲染器支持

\be<strength> - 边缘模糊

设置边缘模糊强度

  • 参数: 0-4的整数
  • 示例: \be1

⬆ 返回目录


裁剪标签

矩形裁剪

\clip(<x1>,<y1>,<x2>,<y2>) - 矩形裁剪

定义矩形裁剪区域,只显示区域内的内容

  • 参数: 左上角和右下角坐标
  • 示例: \clip(0,0,640,480)

\iclip(<x1>,<y1>,<x2>,<y2>) - 反向矩形裁剪

定义矩形裁剪区域,只显示区域外的内容

  • 参数: 左上角和右下角坐标
  • 示例: \iclip(100,100,540,380)

矢量裁剪

\clip(<scale>,<drawing>) - 矢量裁剪

使用绘图命令定义裁剪区域

  • 参数:
    • scale: 缩放级别(可选)
    • drawing: 绘图命令
  • 示例: \clip(1,m 0 0 l 100 0 100 100 0 100)

\iclip(<scale>,<drawing>) - 反向矢量裁剪

使用绘图命令定义反向裁剪区域

  • 参数: 同 \clip

⬆ 返回目录


卡拉OK标签

基础卡拉OK

\k<duration> - 标准卡拉OK

标准卡拉OK效果

  • 参数: 持续时间(厘秒,1/100秒)
  • 示例: \k50 (0.5秒)

\K<duration>\kf<duration> - 填充卡拉OK

从左到右填充的卡拉OK效果

  • 参数: 持续时间(厘秒)
  • 示例: \kf100

\ko<duration> - 边框卡拉OK

边框变化的卡拉OK效果

  • 参数: 持续时间(厘秒)
  • 示例: \ko75

\kt<time> - 卡拉OK起始时间

设置卡拉OK效果的起始时间

  • 参数: 时间(厘秒)
  • 示例: \kt0

\kk(<charcount>[,<d1>[,<d2>...]]) - 打字机效果

按字符延时显示后续文本

  • 参数:
    • charcount: 受控字符数
    • d1...: 每个字符的显示间隔(厘秒),空参数默认 100
  • 示例:
    • \kk(5):后续 5 个字符按 1 秒间隔依次显示
    • \kk(5,150,,200):第 1 个字符 150cs,第 2 个字符默认 100cs,第 3 个字符 200cs
  • 说明:
    • \h 会计入 charcount
    • \N / \n 不计入 charcount
    • 超出 charcount 的剩余文本,会在最后一个受控字符显示时一起出现

⬆ 返回目录


动画标签

淡入淡出

\fad(<t1>,<t2>) - 简单淡入淡出

设置淡入和淡出时间

  • 参数:
    • t1: 淡入时间(毫秒)
    • t2: 淡出时间(毫秒)
  • 示例: \fad(300,300)

\fade(<a1>,<a2>,<a3>,<t1>,<t2>,<t3>,<t4>) - 复杂淡入淡出

精确控制淡入淡出过程

  • 参数:
    • a1,a2,a3: 透明度值
    • t1,t2,t3,t4: 时间点(毫秒)
  • 示例: \fade(255,0,255,0,500,2500,3000)

动画变换

\t([<t1>,<t2>,][<accel>,]<tags>) - 动画变换

在指定时间内平滑变换标签值

  • 参数:
    • t1,t2: 可选的时间范围(毫秒)
    • accel: 可选的加速度(默认1)
    • tags: 要变换的标签
  • 示例:
    • \t(\frz360) - 旋转360度
    • \t(0,1000,\fscx150) - 1秒内放大到150%
    • \t(0,1000,2,\fs50) - 加速变化字体大小

⬆ 返回目录


其他标签

绘图模式

\p<n> - 绘图模式

切换到绘图模式

  • 参数:
    • 0 = 文本模式
    • 1 = 标准绘图模式(推荐)
    • 2-n = 缩小绘图模式(数字越大,图形越小)
  • 示例: \p1
  • 详细说明:
    • \p1: 标准大小,缩放系数 = 1 / (2^0) = 1
    • \p2: 缩小一半,缩放系数 = 1 / (2^1) = 0.5
    • \p3: 缩小到1/4,缩放系数 = 1 / (2^2) = 0.25
    • \p4: 缩小到1/8,缩放系数 = 1 / (2^3) = 0.125
    • 以此类推...
  • 注意: 数字越大,绘制的图形越小,而不是精度越高!所有模式的坐标精度都是相同的(6位定点数,即1/64像素)

\pbo<offset> - 绘图基线偏移

设置绘图的基线偏移

  • 参数: 偏移像素值
  • 示例: \pbo10

绘图模式技术细节

\p<n> 参数的真实含义

很多人误以为 \p 后面的数字控制精度,但实际上它控制的是缩放比例

缩放公式

实际缩放系数 = 1 / (2^(n-1))

各级别对比

参数 缩放系数 实际大小 说明
\p0 - - 文本模式
\p1 1 / 2^0 = 1.0 100% 标准大小(推荐)
\p2 1 / 2^1 = 0.5 50% 缩小一半
\p3 1 / 2^2 = 0.25 25% 缩小到1/4
\p4 1 / 2^3 = 0.125 12.5% 缩小到1/8
\p8 1 / 2^7 = 0.0078 0.78% 极小

坐标精度

  • 所有绘图模式的坐标精度都是相同的
  • 内部使用6位定点数表示:坐标值 × 64
  • 理论精度:1/64 像素 ≈ 0.015625 像素
  • \p 的数字参数无关

实际应用

// 绘制相同大小的矩形,需要调整坐标值

// 使用 \p1(标准)
{\p1}m 0 0 l 100 0 100 100 0 100{\p0}

// 使用 \p2(缩小一半),需要坐标×2才能得到相同大小
{\p2}m 0 0 l 200 0 200 200 0 200{\p0}

// 使用 \p3(缩小到1/4),需要坐标×4
{\p3}m 0 0 l 400 0 400 400 0 400{\p0}

为什么存在这个参数?

  • 历史原因:早期用于处理不同分辨率
  • 实际用途:可以用更大的坐标值绘制小图形,避免精度损失
  • 建议:大多数情况下使用 \p1 即可

换行和对齐

\q<n> - 换行样式

设置文本换行方式

  • 参数:
    • 0 = 智能换行(上层优先)
    • 1 = 行尾换行
    • 2 = 不换行
    • 3 = 智能换行(下层优先)
  • 示例: \q2

样式重置

\r[<style>] - 重置样式

重置为指定样式或默认样式

  • 参数: 可选的样式名称
  • 示例:
    • \r - 重置为当前行的初始样式
    • \rDefault - 重置为"Default"样式

⬆ 返回目录


VSMod扩展标签

渐变颜色标签 (patch m004)

\1vc(<c1>,<c2>,<c3>,<c4>) - 主要渐变颜色

设置主要文字的四角渐变颜色

  • 参数: 四个角的颜色值(BGR格式)
  • 示例: \1vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)
  • 说明: 左上、右上、左下、右下
  • ⚠️ 冲突: 与 \c\1c 冲突,不能同时使用

\2vc(<c1>,<c2>,<c3>,<c4>) - 次要渐变颜色

设置次要文字的四角渐变颜色

  • 参数: 四个角的颜色值
  • ⚠️ 冲突: 与 \2c 冲突

\3vc(<c1>,<c2>,<c3>,<c4>) - 边框渐变颜色

设置边框的四角渐变颜色

  • 参数: 四个角的颜色值
  • ⚠️ 冲突: 与 \3c 冲突

\4vc(<c1>,<c2>,<c3>,<c4>) - 阴影渐变颜色

设置阴影的四角渐变颜色

  • 参数: 四个角的颜色值
  • ⚠️ 冲突: 与 \4c 冲突

渐变透明度标签 (patch m004)

\1va(<a1>,<a2>,<a3>,<a4>) - 主要渐变透明度

设置主要文字的四角渐变透明度

  • 参数: 四个角的透明度值(00-FF)
  • 示例: \1va(&H00&,&H80&,&H80&,&HFF&)
  • ⚠️ 冲突: 与 \1a\alpha 冲突,不能同时使用

\2va(<a1>,<a2>,<a3>,<a4>) - 次要渐变透明度

设置次要文字的四角渐变透明度

  • 参数: 四个角的透明度值
  • ⚠️ 冲突: 与 \2a\alpha 冲突

\3va(<a1>,<a2>,<a3>,<a4>) - 边框渐变透明度

设置边框的四角渐变透明度

  • 参数: 四个角的透明度值
  • ⚠️ 冲突: 与 \3a\alpha 冲突

\4va(<a1>,<a2>,<a3>,<a4>) - 阴影渐变透明度

设置阴影的四角渐变透明度

  • 参数: 四个角的透明度值
  • ⚠️ 冲突: 与 \4a\alpha 冲突

PNG背景图像标签 (patch m010)

\1img(<file>[,<xoffset>,<yoffset>]) - 主要文字图像

使用PNG图像作为主要文字纹理

  • 参数:
    • file: PNG文件路径
    • xoffset, yoffset: 可选的偏移量
  • 示例: \1img(texture.png,0,0)

\2img(<file>[,<xoffset>,<yoffset>]) - 次要文字图像

使用PNG图像作为次要文字纹理

  • 参数: 同 \1img

\3img(<file>[,<xoffset>,<yoffset>]) - 边框图像

使用PNG图像作为边框纹理

  • 参数: 同 \1img

\4img(<file>[,<xoffset>,<yoffset>]) - 阴影图像

使用PNG图像作为阴影纹理

  • 参数: 同 \1img

\5img(<file>[,<xoffset>,<yoffset>]) - 特殊图像模式5

拉伸缩放,图像会变形(MODE_5)

  • 参数: 同 \1img
  • 5img

\6img(<file>[,<xoffset>,<yoffset>]) - 特殊图像模式6

等比例缩放,图像不会变形,适合歌词背景展示(MODE_6)

  • 参数: 同 \1img
  • 6img

\7img(<file>[,<xoffset>,<yoffset>]) - 特殊图像模式7

等比例缩放,图像不会变形,适合图像独立展示(MODE_7)

  • 参数: 同 \1img
  • 7img

字体间距标签 (patch m001, vpatch v002)

\fsvp<pixels> - 垂直字符间距

设置垂直方向的字符间距

  • 参数: 像素值
  • 示例: \fsvp10

\fshp<pixels> - 水平字符间距

设置水平方向的字符间距

  • 参数: 像素值
  • 示例: \fshp5

Z轴坐标标签 (patch m002)

\z<depth> - Z轴深度

设置Z轴深度(3D效果)

  • 参数: 深度值
  • 示例: \z10

\ortho<0|1> - 正交投影 (vpatch v001)

启用或禁用正交2D投影

  • 参数: 0=关闭, 1=开启
  • 示例: \ortho1

随机偏移标签 (patch m003)

\rnd<value> - 统一随机偏移

同时设置X、Y、Z轴的随机偏移

  • 参数: 偏移范围值
  • 示例: \rnd5

\rndx<value> - X轴随机偏移

设置X轴随机偏移

  • 参数: 偏移范围值
  • 示例: \rndx10

\rndy<value> - Y轴随机偏移

设置Y轴随机偏移

  • 参数: 偏移范围值
  • 示例: \rndy10

\rndz<value> - Z轴随机偏移

设置Z轴随机偏移

  • 参数: 偏移范围值
  • 示例: \rndz5

\rnds<seed> - 随机种子

设置随机数生成器的种子

  • 参数: 种子值(十六进制)
  • 示例: \rnds&H1234&

扩展移动标签 (patch m005)

\mover(<x1>,<y1>,<x2>,<y2>,<a1>,<a2>,<r1>,<r2>[,<t1>,<t2>]) - 径向移动

径向移动效果

  • 参数:
    • x1,y1: 起始坐标
    • x2,y2: 结束坐标
    • a1,a2: 起始和结束角度
    • r1,r2: 起始和结束半径
    • t1,t2: 可选的时间范围
  • 示例: \mover(320,240,320,240,0,360,0,100)

\moves3(<x1>,<y1>,<x2>,<y2>,<x3>,<y3>[,<t1>,<t2>]) - 二次样条移动

使用二次样条曲线移动

  • 参数: 三个控制点坐标和可选时间
  • 示例: \moves3(0,0,320,100,640,0)

\moves4(<x1>,<y1>,<x2>,<y2>,<x3>,<y3>,<x4>,<y4>[,<t1>,<t2>]) - 三次样条移动

使用三次样条曲线移动

  • 参数: 四个控制点坐标和可选时间
  • 示例: \moves4(0,0,200,100,400,100,640,0)

可移动矢量裁剪 (patch m006)

\movevc(<x1>,<y1>[,<x2>,<y2>][,<t1>,<t2>]) - 移动矢量裁剪

使矢量裁剪区域可以移动

  • 参数:
    • x1,y1: 起始位置
    • x2,y2: 可选的结束位置
    • t1,t2: 可选的时间范围
  • 示例: \movevc(0,0,100,100,0,1000)
  • 说明: 需要配合 \clip\iclip 使用

符号旋转标签 (patch m007)

\frs<angle> - 符号旋转

旋转单个字符(不同于整体旋转)

  • 参数: 旋转角度
  • 示例: \frs45

扭曲变形标签 (patch m008)

\distort(<x1>,<y1>,<x2>,<y2>,<x3>,<y3>) - 扭曲变形

使用三个控制点扭曲文字

  • 参数: 三个控制点的坐标
  • 示例: \distort(0,0,1,0.2,0,1)
  • 说明:
    • P1(x1,y1): 右上角控制点
    • P2(x2,y2): 右下角控制点
    • P3(x3,y3): 左下角控制点
    • 左上角固定为(0,0)

抖动效果标签 (patch m011)

\jitter(<left>,<right>,<up>,<down>,<period>[,<seed>]) - 抖动效果

创建随机抖动效果

  • 参数:
    • left,right: 左右抖动范围
    • up,down: 上下抖动范围
    • period: 抖动周期(毫秒)
    • seed: 可选的随机种子
  • 示例: \jitter(5,5,5,5,50,1234)

Lua动画标签 (patch m012)

\lua(<function>[,<args>...]) - Lua脚本动画

调用Lua函数进行自定义动画

  • 参数:
    • function: Lua函数名
    • args: 传递给函数的参数
  • 示例: \lua(myEffect,param1,param2)
  • 说明: 需要预先加载Lua脚本

混合模式标签 (vpatch v003)

\blend<mode> - 混合模式(已弃用)

设置图层混合模式

  • 参数:
    • 0 或 "normal" = 正常
    • 1 或 "over" = 叠加
    • 2 或 "add" = 相加
    • 3 或 "sub" = 相减
    • 4 或 "mult" = 正片叠底
    • 5 或 "scr" = 滤色
    • 6 或 "diff" = 差值
    • 7 或 "rsub" = 反向相减
    • 8 或 "isub" = 反向减法
  • 示例:
    • \blend2\blendadd
    • \blendmult

⬆ 返回目录


冲突标签说明

⚠️ 重要:渐变标签与普通标签的冲突

VSFilterMod中的渐变标签(\1-4vc\1-4va)与普通颜色/透明度标签存在模式冲突,不能在同一样式中混用。

冲突组1:颜色标签

渐变颜色标签(启用渐变模式):

  • \1vc - 主要文字渐变颜色
  • \2vc - 次要文字渐变颜色
  • \3vc - 边框渐变颜色
  • \4vc - 阴影渐变颜色

普通颜色标签(普通模式):

  • \c / \1c - 主要文字颜色
  • \2c - 次要文字颜色
  • \3c - 边框颜色
  • \4c - 阴影颜色

冲突原因

  • 渐变标签会设置 mod_grad.mode[i] = 1(渐变模式)
  • 普通标签会设置 mod_grad.mode[i] = 0(普通模式)
  • 后使用的标签会覆盖前面的模式设置

冲突组2:透明度标签

渐变透明度标签(启用渐变模式):

  • \1va - 主要文字渐变透明度
  • \2va - 次要文字渐变透明度
  • \3va - 边框渐变透明度
  • \4va - 阴影渐变透明度

普通透明度标签(普通模式):

  • \1a - 主要文字透明度
  • \2a - 次要文字透明度
  • \3a - 边框透明度
  • \4a - 阴影透明度
  • \alpha - 全局透明度

冲突原因:同颜色标签

特殊联动机制

当使用 \1vc\1va\2vc\2va 时,会同时激活主要文字和次要文字的渐变模式:

style.mod_grad.mode[0] = style.mod_grad.mode[1] = 1;

这意味着设置主要文字的渐变会影响次要文字的渲染模式。

正确使用方法

✅ 正确示例1:只使用普通标签

{\c&H0000FF&\1a&H00&}文字

✅ 正确示例2:只使用渐变标签

{\1vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)\1va(&H00&,&H80&,&H80&,&HFF&)}文字

❌ 错误示例1:混用导致冲突

{\1vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)\c&H0000FF&}文字

问题\c 会将模式重置为普通模式,渐变设置失效

❌ 错误示例2:混用导致冲突

{\c&H0000FF&\1vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)}文字

问题\1vc 会覆盖 \c 的设置并切换到渐变模式

在动画中的注意事项

✅ 正确:在 \t 中保持一致

{\1vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)\t(\1vc(&H00FF00&,&H0000FF&,&HFFFF00&,&HFF0000&))}文字

❌ 错误:在 \t 中切换模式

{\1vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)\t(\c&H0000FF&)}文字

解决方案

如果需要在同一字幕中使用不同的颜色模式:

  1. 使用多个字幕层:将需要渐变的文字和普通文字分开到不同的字幕行
  2. 使用样式重置:通过 \r 标签切换到不同的预定义样式
  3. 选择一种模式:在整个项目中统一使用渐变或普通模式

⬆ 返回目录


绘图命令

在绘图模式(\p1 或更高)下可以使用以下绘图命令:

基础绘图命令

  • m <x> <y> - 移动到坐标(开始新路径,自动闭合)
  • n <x> <y> - 移动到坐标(不闭合前一路径)
  • l <x> <y> - 画直线到坐标
  • b <x1> <y1> <x2> <y2> <x3> <y3> - 三次贝塞尔曲线(3个控制点)
  • s <x1> <y1> <x2> <y2> ... <xn> <yn> - B样条曲线(多个控制点)
  • p <x> <y> - 延伸B样条(添加控制点)
  • c - 显式闭合当前路径

坐标系统说明

  • 坐标单位:像素(在 \p1 模式下)
  • 原点:相对于字幕位置
  • 可以使用小数:m 10.5 20.3
  • 内部精度:1/64 像素

绘图示例

矩形(100×100像素)

{\p1}m 0 0 l 100 0 100 100 0 100{\p0}

使用 \p2 绘制相同大小的矩形(坐标需要×2)

{\p2}m 0 0 l 200 0 200 200 0 200{\p0}

圆形(使用贝塞尔曲线近似,半径50)

{\p1}m 50 0 b 78 0 100 22 100 50 b 100 78 78 100 50 100 b 22 100 0 78 0 50 b 0 22 22 0 50 0{\p0}

五角星

{\p1}m 50 0 l 61 35 96 35 68 57 79 91 50 70 21 91 32 57 4 35 39 35{\p0}

三角形(使用 n 命令不闭合)

{\p1}n 0 0 l 50 100 100 0{\p0}

心形(使用贝塞尔曲线)

{\p1}m 50 30 b 50 20 40 10 30 10 b 10 10 0 20 0 40 b 0 60 20 80 50 100 b 80 80 100 60 100 40 b 100 20 90 10 70 10 b 60 10 50 20 50 30{\p0}

⬆ 返回目录


使用技巧和最佳实践

1. 性能优化

  • 避免过度使用模糊效果(\blur\be
  • 大量文字时减少使用复杂的渐变
  • 合理使用裁剪而不是透明度来隐藏内容

2. 动画技巧

  • 使用 \t 的加速度参数创建更自然的动画
  • 组合多个 \t 标签实现复杂的时间轴动画
  • 利用 \fad 快速实现淡入淡出

3. 3D效果

  • 组合 \frx\fry\frz 创建3D旋转
  • 使用 \z 标签增加深度感
  • 配合 \org 设置合适的旋转中心

4. 渐变效果

  • 使用 \1vc\1va 创建丰富的渐变效果
  • 记住不要与普通颜色标签混用
  • 可以在 \t 动画中改变渐变颜色

5. 文字特效

  • 组合 \bord\shad\blur 创建发光效果
  • 使用 \fax\fay 创建倾斜文字
  • 利用 \distort 创建透视效果

6. 卡拉OK效果

  • 使用 \k 系列标签配合 \t 创建动态卡拉OK
  • 组合颜色变化和缩放效果
  • 利用 \clip 创建擦除式卡拉OK

⬆ 返回目录


常见问题

Q1: 为什么我的渐变颜色不显示?

A: 检查是否同时使用了 \c\1c 等普通颜色标签。渐变标签(\1vc等)与普通颜色标签冲突,只能选择一种使用。

Q2: 如何创建彩虹渐变效果?

A: 使用 \1vc 设置四个角的不同颜色:

{\1vc(&H0000FF&,&H00FF00&,&HFF0000&,&HFFFF00&)}彩虹文字

Q3: 动画不流畅怎么办?

A:

  • 减少同时使用的特效数量
  • 降低模糊强度
  • 使用更简单的绘图路径

Q4: 如何让文字沿曲线移动?

A: 使用 \moves3\moves4 标签定义样条曲线路径。

Q5: PNG图像纹理不显示?

A:

  • 确认PNG文件路径正确
  • 检查PNG文件格式是否支持
  • 确保使用了正确的 \1img\7img 标签

Q6: 如何实现文字描边渐变?

A: 使用 \3vc 设置边框的渐变颜色:

{\bord3\3vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)}渐变描边

Q7: Z轴效果不明显?

A:

  • 增大 \z 的值
  • 配合 \frx\fry 旋转查看3D效果
  • 确保没有启用 \ortho1(正交投影)

Q8: \p2\p1 有什么区别?精度更高吗?

A:

  • 不是精度问题\p2 会让图形缩小到原来的50%
  • 所有 \p 模式的坐标精度都相同(1/64像素)
  • \p<n> 的缩放系数 = 1 / 2^(n-1)
  • 大多数情况下使用 \p1 即可
  • 如果需要绘制小图形但想用大坐标值(避免小数),可以用 \p2 或更高

Q9: 为什么我的绘图比预期小很多?

A:

  • 检查是否使用了 \p2 或更高的值
  • \p2 会缩小到50%,\p3 缩小到25%,以此类推
  • 要么改用 \p1,要么将所有坐标值乘以相应倍数

⬆ 返回目录


标签优先级和执行顺序

标签解析顺序

  1. 样式定义(Style行)
  2. 行内标签(按出现顺序)
  3. \t 动画标签(在指定时间执行)
  4. \r 重置标签(立即重置)

冲突解决规则

  • 后出现的标签覆盖前面的标签
  • \r 标签会重置所有之前的标签
  • 渐变模式和普通模式互相覆盖

⬆ 返回目录


版本兼容性

标准ASS标签

所有标准ASS/SSA标签在VSFilterMod中都受支持。

VSMod专有标签

以下标签仅在VSFilterMod中可用:

  • 渐变标签:\1-4vc\1-4va
  • PNG图像:\1-7img
  • 扩展移动:\mover\moves3\moves4\movevc
  • 3D效果:\z\ortho
  • 随机效果:\rnd系列
  • 扭曲变形:\distort
  • 抖动效果:\jitter
  • 符号旋转:\frs
  • 间距控制:\fsvp\fshp
  • 混合模式(已弃用):\blend
  • Lua动画:\lua

兼容性建议

如果需要在其他渲染器中使用字幕,避免使用VSMod专有标签,或准备降级方案。

⬆ 返回目录


参考资源

颜色格式

  • BGR格式:&HBBGGRR&(蓝-绿-红)
  • 示例:&H0000FF& = 红色,&H00FF00& = 绿色,&HFF0000& = 蓝色

透明度格式

  • 十六进制:&HAA&
  • 范围:&H00&(完全不透明)到 &HFF&(完全透明)

时间格式

  • 毫秒:用于 \t\move\fade 等标签
  • 厘秒(1/100秒):用于卡拉OK标签(\k\kf\ko

坐标系统

  • 原点:左上角 (0,0)
  • X轴:向右为正
  • Y轴:向下为正
  • Z轴:向屏幕外为正(VSMod扩展)

⬆ 返回目录


完整示例

示例1:简单淡入文字

{\fad(500,500)\pos(320,240)}Hello World

示例2:旋转渐变文字

{\1vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)\t(0,2000,\frz360)}旋转彩虹

示例3:3D翻转效果

{\org(320,240)\t(0,1000,\fry180)\t(1000,2000,\fry360)}3D翻转

示例4:发光文字

{\bord3\shad0\blur2\3c&HFFFFFF&\1c&HFFFF00&}发光效果

示例5:卡拉OK效果

{\k50\t(0,500,\fscx120\fscy120)\t(500,1000,\fscx100\fscy100)}卡{\k50\t(0,500,\fscx120\fscy120)\t(500,1000,\fscx100\fscy100)}拉{\k50\t(0,500,\fscx120\fscy120)\t(500,1000,\fscx100\fscy100)}OK

示例6:复杂动画组合

{\pos(100,100)\1vc(&HFF0000&,&H00FF00&,&H0000FF&,&HFFFF00&)\t(0,1000,\pos(540,380))\t(0,1000,\frz360)\t(0,1000,\fscx150\fscy150)\fad(300,300)}复杂动画

示例7:矢量裁剪动画

{\clip(1,m 0 0 l 100 0 100 100 0 100)\t(0,2000,\clip(1,m 0 0 l 640 0 640 480 0 480))}擦除效果

示例8:PNG纹理文字

{\1img(texture.png,0,0)\bord0}纹理文字

示例9:抖动效果

{\jitter(2,2,2,2,50)}抖动文字

示例10:扭曲变形

{\distort(0,0,1,0.2,0,1)}扭曲效果

⬆ 返回目录


附录:标签速查表

点击标签可跳转到详细说明。

类别 标签 功能 冲突
颜色 \c, \1c 主要颜色 ⚠️ \1vc
颜色 \2c 次要颜色 ⚠️ \2vc
颜色 \3c 边框颜色 ⚠️ \3vc
颜色 \4c 阴影颜色 ⚠️ \4vc
透明度 \1a 主要透明度 ⚠️ \1va, \alpha
透明度 \2a 次要透明度 ⚠️ \2va, \alpha
透明度 \3a 边框透明度 ⚠️ \3va, \alpha
透明度 \4a 阴影透明度 ⚠️ \4va, \alpha
透明度 \alpha 全局透明度 ⚠️ \1-4va
渐变 \1vc 主要渐变颜色 ⚠️ \c, \1c
渐变 \1va 主要渐变透明度 ⚠️ \1a, \alpha
位置 \pos 固定位置 -
位置 \move 移动 -
位置 \org 旋转中心 -
对齐 \an 对齐方式 -
字体 \fn 字体名称 -
字体 \fs 字体大小 -
字体 \fscx 水平缩放 -
字体 \fscy 垂直缩放 -
字体 \fsp 字符间距 -
字体 \b 粗体 -
字体 \i 斜体 -
字体 \u 下划线 -
字体 \s 删除线 -
旋转 \frx X轴旋转 -
旋转 \fry Y轴旋转 -
旋转 \frz Z轴旋转 -
变形 \fax X轴倾斜 -
变形 \fay Y轴倾斜 -
边框 \bord 边框宽度 -
边框 \xbord X轴边框 -
边框 \ybord Y轴边框 -
阴影 \shad 阴影深度 -
阴影 \xshad X轴阴影 -
阴影 \yshad Y轴阴影 -
模糊 \blur 高斯模糊 -
模糊 \xblur X轴高斯模糊 -
模糊 \yblur Y轴高斯模糊 -
模糊 \be 边缘模糊 -
裁剪 \clip 裁剪 -
裁剪 \iclip 反向裁剪 -
卡拉OK \k 标准卡拉OK -
卡拉OK \kf, \K 填充卡拉OK -
卡拉OK \ko 边框卡拉OK -
卡拉OK \kt 卡拉OK起始时间 -
卡拉OK \kk 逐字延时显示 VSFilterMod扩展
动画 \t 动画变换 -
动画 \fad 淡入淡出 -
动画 \fade 复杂淡入淡出 -
绘图 \p 绘图模式(控制缩放) -
绘图 \pbo 绘图基线偏移 -
字体 \fsc 统一缩放 -
字体 \fe 字符集 -
对齐 \a 对齐方式(传统) -
其他 \r 重置样式 -
其他 \q 换行样式 -

VSMod扩展标签速查

类别 标签 功能 补丁版本
渐变颜色 \1vc 主要渐变颜色 m004
渐变颜色 \2vc 次要渐变颜色 m004
渐变颜色 \3vc 边框渐变颜色 m004
渐变颜色 \4vc 阴影渐变颜色 m004
渐变透明度 \1va 主要渐变透明度 m004
渐变透明度 \2va 次要渐变透明度 m004
渐变透明度 \3va 边框渐变透明度 m004
渐变透明度 \4va 阴影渐变透明度 m004
图像 \1img 主要文字图像 m010
图像 \2img 次要文字图像 m010
图像 \3img 边框图像 m010
图像 \4img 阴影图像 m010
图像 \5img 特殊图像模式5 m010
图像 \6img 特殊图像模式6 m010
图像 \7img 特殊图像模式7 m010
间距 \fsvp 垂直字符间距 m001
间距 \fshp 水平字符间距 v002
3D \z Z轴深度 m002
3D \ortho 正交投影 v001
随机 \rnd 统一随机偏移 m003
随机 \rndx X轴随机偏移 m003
随机 \rndy Y轴随机偏移 m003
随机 \rndz Z轴随机偏移 m003
随机 \rnds 随机种子 m003
移动 \mover 径向移动 m005
移动 \moves3 二次样条移动 m005
移动 \moves4 三次样条移动 m005
裁剪 \movevc 移动矢量裁剪 m006
旋转 \frs 符号旋转 m007
变形 \distort 扭曲变形 m008
特效 \jitter 抖动效果 m011
脚本 \lua Lua动画 m012
混合 \blend 混合模式(已弃用) v003

文档信息

  • 适用于: VSFilterMod (AssRocket专用修改版)
  • 基于: VSFilterMod源码分析
  • 修改作者: sgnB
  • 测试人员: 神赫,KKYY,sh,辉总等...

贡献与反馈

本文档基于VSFilterMod源代码的详细分析编写。如发现错误或需要补充,欢迎反馈。

注意: VSMod扩展标签在标准ASS渲染器中可能不被支持,使用时请注意兼容性。

⬆ 返回目录

Clone this wiki locally