惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
P
Proofpoint News Feed
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
AWS News Blog
AWS News Blog
S
Securelist
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
IT之家
IT之家
腾讯CDC
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
C
Check Point Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Engineering at Meta
Engineering at Meta
Latest news
Latest news
A
About on SuperTechFans
The Register - Security
The Register - Security
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
T
Tailwind CSS Blog
Simon Willison's Weblog
Simon Willison's Weblog
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
T
Tor Project blog
L
Lohrmann on Cybersecurity
G
GRAHAM CLULEY
B
Blog RSS Feed
Scott Helme
Scott Helme
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
NISL@THU
NISL@THU
P
Privacy International News Feed
Security Latest
Security Latest
Recorded Future
Recorded Future
L
LangChain Blog
Cyberwarzone
Cyberwarzone
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
O
OpenAI News
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale

Yesterday17's Blog

2026 新年解密红包 / Melody Flag | Yesterday17's Blog 谈谈 Iori 的设计思路(二):如何实现一个 Showroom 录制工具? | Yesterday17's Blog 谈谈 Iori 的设计思路(一):从 Nico Timeshift 说起 | Yesterday17's Blog Iori Minyami 0.1.0 发布 | Yesterday17's Blog 2025 新年解密红包 / Melody Flag | Yesterday17's Blog 使用 Cloudflare Warp 解决罗森票务的海外登录问题 | Yesterday17's Blog How To Blog 04: The Astro v5 Era | Yesterday17's Blog 谈谈 tokio::select! 的公平性 | Yesterday17's Blog Learning Pingora 05 - Connect with TLS | Yesterday17's Blog Leaving Bytedance | Yesterday17's Blog 大橋彩香 AsiaTour「Reflection」上海公演 个人向记录 & Repo | Yesterday17's Blog Recoving from burnout - What happened? | Yesterday17 Yubikey 重建手册 | Yesterday17's Blog How To Blog 03: Heimus | Yesterday17's Blog 🪧 Blog Migration Accouncement | Yesterday17's Blog Learn Your IDE - VSCode 是如何仅重启插件的? | Yesterday17's Blog How To Blog 02: Astro❤️Password | Yesterday17's Blog How To Blog 01: Why, How, and the Future | Yesterday17's Blog Learning Pingora 04 - Establish L4 Connection | Yesterday17's Blog Learning Pingora 03 - Upstreams and Peers | Yesterday17's Blog Learning Pingora 02 - A Simple HTTP Server | Yesterday17's Blog Learning Pingora 01 - Getting Started | Yesterday17's Blog 2024 新年解密红包 / Melody Flag | Yesterday17's Blog 向新的一年飞驰——记录 2023 | Yesterday17's Blog 「サクラノ刻」对话选摘(2) | Yesterday17's Blog PGP Key Revocation 注销声明 | Yesterday17's Blog 「サクラノ刻」对话选摘(1) | Yesterday17's Blog 2023 新年解密红包 / Melody Flag | Yesterday17's Blog 『蒼の彼方のフォーリズム』通关感想 | Yesterday17's Blog 单显卡直通教程 | Yesterday17's Blog 对博客与笔记的思考 | Yesterday17's Blog Project Anni 之旅(3)自动化 Flutter 应用 CI/CD 上架流程 | Yesterday17's Blog AsobiStage 直接播放链接 | Yesterday17 如何在后分P时代进行投稿——sswa使用详解 | Yesterday17's Blog JSON RPC 与 LSP 协议基础 | Yesterday17's Blog Grajapa Shueisha / BookEnd 加密方式调查 | Yesterday17's Blog 【2022篇+WriteUp】如何再收一个新年红包? | Yesterday17's Blog 如何将良心云的良心功能清理干净 | Yesterday17's Blog 【油猴脚本】bilibili 投稿页面返回旧版+旧版页面强制允许分P上传 | Yesterday17's Blog Cloudr1v1 授权方式分析 | Yesterday17 Typora 1.0.2 逆向实录 | Yesterday17's Blog Project Anni 之旅(2)ValueAfterTable——toml-rs的实现与限制 | Yesterday17's Blog IPv4透明代理+IPv6 Passthrough——树莓派单臂软路由折腾记 | Yesterday17's Blog Chaos; Child 汉化补丁 神秘编码探索 | Yesterday17's Blog 镣铐与舞蹈——个性与共性之迷思 | Yesterday17's Blog Go 学习笔记 02 - 找准 io 之道 | Yesterday17's Blog NAT Slipstreaming v1 原理浅析 | Yesterday17's Blog 绕过「9-nine-」的 CDKEY 验证——KrkrPlugin 正(?)向实录 | Yesterday17's Blog 静流的青春纪念册——「サクラノ刻 -櫻の森の下を歩む-」体验版感言 | Yesterday17's Blog Project Anni 之旅 01 - 从 clap-builder 到 derive | Yesterday17's Blog [Google CTF 2021] CPP WriteUp | Yesterday17's Blog 获取 アソビステージ 的实际播放链接 | Yesterday17's Blog 90 行 Rust 代码实现 AsyncTeeReader | Yesterday17's Blog 或许还算有价值一读的文章列表 | Yesterday17's Blog 从零开始的 Seedbox 之旅 | Yesterday17's Blog [随笔]技术型博客行文迷思(1) | Yesterday17's Blog 浅谈 git fetch 的工作方式 | Yesterday17's Blog 『ソーサレス*アライヴ! ~the World's End Fallen Star~』通关感想" | Yesterday17's Blog Rust std::fmt 格式语法简述 | Yesterday17's Blog 日亚修改居住国的解决方案 | Yesterday17's Blog [Windows/Linux] GC553 的 Switch 完美采集之路 | Yesterday17's Blog 【翻译】Subtyping and Variance / 子类型与变型 | Yesterday17's Blog Berd's Red Envelope 2021 WriteUp | Yesterday17's Blog 【中英对照】ALSA 音频 API 使用教程/A Tutorial on Using the ALSA Audio API | Yesterday17's Blog 从 cue_scanner.l 看 CUE Sheet 的词法单元 | Yesterday17's Blog Postman 历史记录导出的解决方案 | Yesterday17's Blog 《恋爱绮谭 不存在的夏天》通关感想 | Yesterday17's Blog [微机实验/TD-PITE] 微机接口综合实验 | Yesterday17's Blog [微机实验/TD-PITE] 键盘扫描及数码管显示实验 | Yesterday17's Blog [微机实验/TD-PITE] 数码管显示实验 | Yesterday17's Blog Airsonic Advanced+Google Drive+Caddy 部署纪实 | Yesterday17's Blog X-NUCA 2020 - hellowasm 题解 | Yesterday17's Blog [微机实验/TD-PITE] 8251 串行接口实验 | Yesterday17's Blog Node.js child_process.fork 与 env 污染 RCE | Yesterday17's Blog EP.01 「夜の向日葵」 | Yesterday17's Blog [微机实验/TD-PITE] 8254 定时/计数器实验+选做实验 | Yesterday17's Blog [JLU CTF/2020] babywasm WriteUp | Yesterday17's Blog PHP 反序列化与经典利用 | Yesterday17's Blog WebAssembly 逆向简述 | Yesterday17's Blog 『彼女、お借りします』一期完结点评 | Yesterday17's Blog [微机实验/TD-PITE] D/A 转换实验+选做实验 | Yesterday17's Blog [微机实验/TD-PITE] A/D 转换实验+选做实验 | Yesterday17's Blog 开源项目申请 JetBrains Open Source License 简单流程 | Yesterday17's Blog 微软拼音与 JetBrains 搜索快捷键冲突的解决方案 | Yesterday17's Blog [微机实验/TD-PITE] 8259 中断优先级实验+选做实验 | Yesterday17's Blog IFTTT 测试(续) | Yesterday17 IFTTT 测试 | Yesterday17's Blog [微机实验/TD-PITE] 存储器扩展实验+选做实验 | Yesterday17's Blog 新版 GCC 针对 -fdump-translation-unit 的替代方案 | Yesterday17's Blog 一次 HSTS 策略配置的排错之旅 | Yesterday17's Blog YukiNative 踩坑记——Windows 的消息队列 | Yesterday17's Blog 我是我自己——论获取 HTTPS 证书时的验证步骤 | Yesterday17's Blog 【设计文档】对 PUG 的大规模设计修订(1.1) | Yesterday17's Blog GS65 折腾记(2)加装固态,分区,Grub2 引导 Manjaro LiveCD | Yesterday17's Blog 「さくら、もゆ。」的空白字体列表——一次逆向问题定位过程实录 | Yesterday17's Blog GSuite 探索篇(1)使用 Service Account 向 Google Drive 传输文件 | Yesterday17's Blog 『サクラノ詩 -櫻の森の上を舞う-』通关感想 | Yesterday17's Blog 《ATRI -My Dear Moments-》通关感想 | Yesterday17's Blog [工具][VSCode 扩展] AegiKit——方便 Aegisub 使用的工具箱 | Yesterday17's Blog 贝塞尔曲线、字体矢量化与曲线运算 | Yesterday17's Blog
ASS 标签 (标准) | Yesterday17's Blog
Yesterday17 · 2020-04-08 · via Yesterday17's Blog

ToC

  • 说在前面
  • 简介
  • 特殊符号
  • 特效标签:格式
  • 特效标签:整行
    • pos (设置位置)
      • 格式
      • 说明
    • move (移动位置)
      • 格式
      • 说明
      • 局限性
    • org (设置旋转中心)
      • 格式
      • 说明
    • fad (简单淡入淡出)
      • 格式
      • 说明
    • fade (复杂淡入淡出)
      • 格式
      • 说明
    • clip, iclip (遮罩)
      • 方形
        • 格式
        • 说明
      • 矢量绘图
        • 格式
        • 说明
  • 特效标签:标签后
    • i (斜体)
      • 格式
      • 说明
    • b (粗体)
      • 格式
      • 说明
    • u (下划线)
      • 格式
      • 说明
    • s (删除线)
      • 格式
      • 说明
    • bord (边框)
      • 格式
      • 说明
      • xbord, ybord
    • shad (阴影)
      • 格式
      • 说明
      • xshad, yshad
    • be (边框模糊)
      • 格式
      • 说明
    • blur (边缘模糊[高斯函数])
      • 格式
      • 说明
    • fn (字体名称)
      • 格式
      • 说明
    • fs (字体大小)
      • 格式
      • 说明
    • fscx, fscy (字体缩放)
      • 格式
      • 说明
    • fsp (字符间距)
      • 格式
      • 说明
    • frx, fry, frz, fr (旋转文本)
      • 格式
      • 说明
    • fax, fay (剪切变换)
      • 格式
      • 说明
    • fe (字符集)
      • 格式
      • 说明
    • c, 1c, 2c, 3c, 4c (文本颜色)
      • 格式
      • 说明
    • alpha, 1a, 2a, 3a, 4a (透明度)
      • 格式
      • 说明
    • an (行对齐)
      • 格式
      • 说明
    • k, K, kf, ko (卡拉 OK 效果)
      • 格式
      • 说明
    • q (换行风格)
      • 格式
      • 说明
    • r (重置样式)
      • 格式
      • 说明
    • t (渐变)
      • 格式
      • 说明
  • 绘画标签
    • p (绘制模式/分辨率倍数)
      • 格式
      • 说明
    • pbo (基线偏移)
      • 格式
      • 说明
  • 绘画指令
    • m (闭合移动光标)
      • 格式
      • 说明
    • n (非闭合移动光标)
      • 格式
      • 说明
    • Line (直线)
      • 格式
      • 说明
    • b (三阶贝塞尔曲线)
      • 格式
      • 说明
    • s (三次 B 线条)
      • 格式
      • 说明
    • p (扩展 B 线条)
      • 格式
      • 说明
    • c (闭合 B 线条)
      • 格式
      • 说明

说在前面

之前总结了一份 ASS 标签的文章,但因为解析的问题,原来的域名现在都 301 到这里了,所以相当于名存实亡,干脆直接在这里重新整理一份好了。

这里总结的都是标准的 ASS 标签,暂不包括 VSFilterMod 的标签,并且也没有计划在本文中包括其他标签。VSF 如果有空的话我会单独摸一篇(

由于是从 Markdown 直接(间接?)转换过来的,因此可能会出现一些问题,欢迎在评论区指出(

简介

本文精简自 ASS标签 页面,删去了所有的例子和原英文文本,并进行了格式化表示,旨在方便查阅。

阅读之前你需要了解类似 TypeScript 的类型标记方式。

特殊符号

名称内容说明
软换行/软空格\n插入一个强制换行符,只在换行方式 2 下生效。
硬换行\N插入一个强制换行符,在所有换行方式下都生效。
硬空格\h插入一个不换行的空格。句子将不会在硬空格处自动换行。

并且当硬空格出现在一行的开头或者结束的地方,也不会被忽略。
(Aegisub 排版引擎一般会忽略换行处的空格)。 |

特效标签:格式

特效标签需要包裹在 {} 内,以 \ 开头。

此处对下文描述的一些数据类型作简单说明:

ID数据类型简介
01int整数
02number实数
03boolean布尔,实际书写时须使用 0 / 1
04string字符串
05Time时间,表示形式为整数,单位毫秒
06Color颜色,实际书写时的表示格式:&HBBGGRR&
07Alpha透明度,实际书写表示为:&HAA
00 代表不透明
08Position位置,实际书写时用整数 1-9
对应小键盘上的位置
09DrawingCommands绘画指令

特效标签:整行

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

pos (设置位置)

格式

说明

设置一行字幕的位置,与行对齐有关。

move (移动位置)

格式

move(x1: int, y1: int, x2: int, y2: int, t1?: Time = 0, t2?: Time = 0)

说明

让一行字幕移动。当 t1t2 未定义时,移动时间即为字幕时间。它也会设置字幕的位置。 t1t2 相对字幕开始时间计算。

局限性

  • 只能匀速移动:一行中只能够存在一个 movepos

如果你需要这两种效果。那么你得把字幕分成几行,然后分别设定移动效果,让它们衔接起来。这就不是本文要涉及的内容了。

org (设置旋转中心)

格式

说明

设定一行字幕的旋转中心

旋转中心默认为位置设定的参考点,其会随着动画移动;但如果设置了 [org](#org),则旋转中心固定。

如果你将旋转中心放在 3D 场景中的消失点处,字幕行的 3D 旋转会有正确的和场景相匹配的透视效果。

把旋转中心放在画面外面是完全可行(有些时候也很有用)的。如果旋转中心足够的远,那么就可以计算出合适的小转动角,让文本看起来是沿直线(或者近似直线)在屏幕上移动。这有些难以掌控,但是可以用来绕过 move 的格式限制,比如无法加速移动,无法在每条线上进行几个移动。

每行字幕只有第一个 org 生效。

fad (简单淡入淡出)

格式

fad(fadein: Time, fadeout: Time)

说明

设定一行字幕的简单淡入淡出效果。将某一参数设置为 0 时不产生参数对应效果。

fade (复杂淡入淡出)

格式

fade(a1: Alpha, a2: Alpha, a3: Alpha, t1: Time, t2: Time, t3: Time, t4: Time)

说明

设定一行字幕的复杂淡入淡出效果。效果如下所示:

透明度 a1 a1->a2 a2 a2->a3 a3

时间轴 |------|----------|----------------|----------|------> 时间(t)

时间点 0 _t1 _t2 _t3 _t4

注:对于 libassfadfade 是一样的。也就是说,二者的区别由参数数量决定,而非名称。你也可以用 fad 使用七个参数来实现复杂的淡入淡出效果。

clip, iclip (遮罩)

设置一个遮罩。遮罩中坐标按脚本分辨率计算,以视频左上角为原点。遮罩有如下两种类型:

方形

格式

clip(x1: int, y1: int, x2: int, y2: int)

iclip(x1: int, y1: int, x2: int, y2: int)

说明

clip 确定一个方形区域,只有区域内的字幕是可见的。

iclip相反,只有区域外的字幕是可见的。

矢量绘图

格式

clip(scale?: number = 1, commands: DrawingCommands)

iclip(scale?: number = 1, commands: DrawingCommands)

说明

用矢量绘图画一个遮罩区域来选择显示(clip)或不显示(iclip)字幕的一部份。

DrawingCommands 是和 p 一起使用的[绘画指令](#绘画指令);scale 作用和 [p](#p) 中相同。

不同于方形的遮罩,矢量绘图遮罩无法被 t 动画化。如果你想要这种效果,你需要把一行字幕切成许多行,然后设定每一行在这个动画过程中的遮罩区域。

特效标签:标签后

i (斜体)

格式

说明

应用/取消斜体

b (粗体)

格式

b(enable: boolean)

b(weight: int > 1)

说明

应用/取消粗体; 设置粗体的字重(大部分字体不支持字重)。

u (下划线)

格式

说明

应用/取消下划线。

s (删除线)

格式

说明

应用/取消删除线。

bord (边框)

格式

说明

改变字符边框的宽度。

如果“比例缩放边框和阴影”是选中的,边框宽度值将取决于脚本的分辨率,否则会由视频的分辨率决定(也就是说边框的宽度会自适应使用该字幕的视频)。

xbord, ybord

改变单坐标轴上的边框宽度。

shad (阴影)

格式

shad(depth : number >= 0)

说明

设置字符与阴影间的距离。设置深度为 0 使阴影完全消失。其他方面和边框宽度 bord 的设置相似。

xshad, yshad

改变单坐标轴方向上阴影与字符的距离。此处 depth 可小于 0,以显示在反方向。

be (边框模糊)

格式

be(enable: boolean)

be(strength: int)

说明

应用/取消边框模糊; 设置边框模糊循环叠加效果的次数。

效果通常在字符比较小的情况下更明显,有些时候会让字符看起来更舒服。

当文本有边框时,只会模糊边框;反之会模糊文本主体。

对于高强度模糊,blur 通常结果更有用。

blur (边缘模糊[高斯函数])

格式

blur(strength: number >= 0)

说明

设置边缘模糊 (高斯函数)

strength 设置的太高的话,渲染时会占用大量 CPU 时间。

fn (字体名称)

格式

说明

设置字体名称

fs (字体大小)

格式

说明

设置字体大小

fscx, fscy (字体缩放)

格式

fscx(scale: number > 0)

fscy(scale: number > 0)

说明

设置字体在各坐标轴上的缩放。100 为原大小。这两个标签也会影响矢量绘图。

字体变形可以用来修正错误的渲染,也可以比 [fs](#fs) 更准确的指定字体大小。

fsp (字符间距)

格式

说明

设置字符间距spacing 会按脚本分辨率计算。

frx, fry, frz, fr (旋转文本)

格式

frx(amount: number)

fry(amount: number)

frz(amount: number)

fr(amount: number)

说明

按坐标轴旋转文本

y

|

|

|

x —— —— —— ·

/

/

/

z

amount > 0 时,文本旋转的方向为:大拇指指向坐标轴方向时四指旋转的方向。

文本的锚点为当前字幕行的原点,由 [org](#org) 规定

fax, fay (剪切变换)

格式

fax(factor: number)

fay(factor: number)

说明

对文本应用一个剪切变换factor0 即意味着不做变换。

通常 factor ∈ [-2, 2],否则效果一般都不是很好。

剪切是在旋转之后应用的,以旋转后的坐标系为基准。这个剪切用的坐标系不受旋转中心的影响。

fe (字符集)

格式

说明

设置字体字符集

ID类型说明
0ANSIWindows CP-1252,西欧语言
1默认视用户操作系统的配置而定,但也允许字体子系统视情况选择一个不同的字符映射表
2符号码位的取值范围是 [0, 255],显示效果视具体字体而定,像 Wingdings 这样的装饰字体应该用这个 ID
128Shift-JIS日语
129Hangeul韩语的一个字符集
130Johab韩语的一个字符集
134GB2312简体中文
136BIG5繁体中文
162土耳其语
163越南语
177希伯来语
178阿拉伯语

c, 1c, 2c, 3c, 4c (文本颜色)

格式

c(color: Color)

1c(color: Color)

2c(color: Color)

3c(color: Color)

4c(color: Color)

说明

设置文本颜色

  • 1c 设置主要填充颜色。
  • 2c 设置次要填充颜色。这个仅会在标准卡拉 OK 的预填充时使用。
  • 3c 设置边框颜色。
  • 4c 设置阴影颜色。
  • c 设置以上四种。

alpha, 1a, 2a, 3a, 4a (透明度)

格式

alpha(alpha: Alpha)

1a(alpha: Alpha)

2a(alpha: Alpha)

3a(alpha: Alpha)

4a(alpha: Alpha)

说明

设置文本透明度

  • 1a 设置主要填充透明度。
  • 2a 设置次要填充透明度。这个仅会在标准卡拉 OK 的预填充时使用。
  • 3a 设置边框透明度。
  • 4a 设置阴影透明度。
  • alpha 设置以上四种。

an (行对齐)

格式

说明

设置文本的行对齐方式Position 的位置与小键盘对应。

k, K, kf, ko (卡拉 OK 效果)

格式

k(duration: int > 0)

kf(duration: int > 0)

ko(duration: int > 0)

K(duration: int > 0)

说明

卡拉 OK 效果。该标签通常不手动创建。

  • k: 在这个音节开始之前,使用次要填充颜色和透明度。当这个音节开始时,立即变为使用主要填充颜色和透明度。
  • kf: 在音节开始之前,使用次要填充颜色和透明度。当音节开始时,文本从左到右由次要填充颜色和透明度变为主要填充颜色和透明度,这个过程在音节结束时刚好结束。
  • ko: 和 kf 类似,但是在音节开始之前,字符的边框会被移除。当音节开始时会立即出现。

q (换行风格)

格式

说明

设置换行风格

换行风格说明
0智能断行,尽可能让所有的行等长,不可能等长时选择让顶端的行宽一些。只有遇到 \N 会强制换行。
1行尾换行,尽可能填满一行,然后换行。只有遇到 \N 会强制换行。
2不换行,多余的字符会超过屏幕边缘。遇到 \n\N 都会强制换行。
3智能换行,与智能断行相似,但是会选择让靠近底部的行更宽。

r (重置样式)

格式

说明

重置其后文本的样式,会让一切样式标签失效,包括动画效果。

style 为重置后新的样式名称。

t (渐变)

格式

t(t1?: Time, t2?: Time, accel?: Accel, style_modifiers: string)

说明

从一个样式动画渐变到另外一个。可以使用 t 动画化的特效标签如下表所示:

字符形状其他效果
fsfscxbord
fspfscyxbord
cfrxybord
1cfryshad
2cfrzxshad
3cfryshad
4cfaxclip
alphafayiclip
1abe
2ablur
3a
4a

对于 clipiclip 标签来说,只有方形的形式能够动画化。矢量绘图的形式无法动画化。

t 标签中混合使用 clipiclip 标签很难得到好看的效果。

Accel 可以指定动画的速度,1 为匀速,<1 为减速,>1 为加速。具体函数:y = x with x ∈ [0;1] = (t - t1)/(t2 - t1)

指定时间后的变化过程如下所示:

样式名 old old->new new

时间轴 |-------|----------------|-------> 时间(t)

时间点 0 _t1 _t2

绘画标签

p (绘制模式/分辨率倍数)

格式

p(enable: boolean)

p(scale: int > 1)

说明

进入/退出绘制模式;设置分辨率倍数。放大倍数会被设置成 2 ^ (scale - 1)

(此处相当于放大画布,到预览时缩小。)

pbo (基线偏移)

格式

说明

决定绘制时的基线偏移,偏移发生在 Y 方向。

注意原点是左上角,因此正值会使绘制位置偏下。

绘画指令

绘画指令需要出现在 clip 标签中,或夹在 pp0 之间的特效标签区外部。
绘图指令使用主要填充颜色来填充图形,用边框颜色来填充边框。绘制出的图形也有阴影
绘图指令之间用空格分割,因此下文的格式说明也没有括号。
绘图的思路是这样的:想象在视频画面上有一个光标。当它移动时,它就沿途绘制了曲线;当闭合一个形状时,这个闭合图形就会被着色

m (闭合移动光标)

格式

说明

移动光标到 (x, y)。会自动闭合图形,因为程序认为你这是要去从头开始画一个新的独立的图形。所有的绘图指令都要从这个命令开始。

n (非闭合移动光标)

格式

说明

移动光标到 (x, y),但是不闭合当前的图形。

Line (直线)

格式

说明

从当前光标位置到 (x, y) 画一条直线,同时把光标也移动过去。

b (三阶贝塞尔曲线)

格式

b x1:int y1:int x2:int y2:int x3:int y3:int

说明

画一个三阶贝塞尔曲线,起点是当前光标位置,终点是 (x3, y3),控制点是 (x1, y1)(x2, y2)

s (三次 B 线条)

格式

s x1:int y1:int x2:int y2:int x3:int y3:int ... xN:int yN:int

说明

画一个到 N 点的三次B线条。它最少要包含三个坐标点(这种情况下和 b 相同)。这基本上是把几个贝塞尔曲线连接到一起。

p (扩展 B 线条)

格式

说明

把B线条扩展到 (x, y),这本质上相当于给 s 追加一个坐标点。

c (闭合 B 线条)

格式

说明

闭合 B 线条。