-
Notifications
You must be signed in to change notification settings - Fork 0
中文使用文档
该行的特效以template
为头部,@
后跟随n(n>=1)个class值,#
后跟m(m>=0)个mode值
多个值之间用;
分隔
例如
teplate@abc;class123;temp456#
teplate@class#findtext
teplate@class#cuttag;append
该行的特效以beretag
为头部,@
后跟随n(n>=1)个class值
多个值之间用;
分隔
例如
beretag@class1
beretag@one;two;three
该行的特效以template#ppcode
为头部
文本中的表达式将被执行,且表达式的返回值不会产生任何作用
该类型行的执行优先级高于模板替换声明行,所以可以像图中进行对其他Lua脚本的引用和预处理
该行的特效以template#code
为头部
文本中的表达式将被执行,且表达式的返回值不会产生任何作用
该类型行的执行优先级与模板替换声明行相同
template行只有在被注释状态下才会被脚本读取并执行,执行时遍历所有beretag行,对含有任意相同class的beretag行执行替换操作
mode的所有字符值详见Wiki首页
beretag行执行后会被注释,执行初始化后会被还原
template的文本以{...}{...}
为头部,会在beretag中寻找与第一个{}
中内容相符的内容(支持Lua正则表达式),把找到的部分替换为第二个{}
中的内容,最后在}
后追加第二个{}
后面的文本
如图所示,新增的关键帧行将从模板内容声明行的开始时间开始,每行一帧
模板内容声明行必须具有\pos()
标签表示起始位置
模板内容声明行可以有\fscx
\fscy
\frz
标签表示起始值,若没有,默认起始值为\fscx100\fscy100\frz0
若$forcefps ~= nil
,则使用$forcefps
的值作为插入每帧的时间的参考,否则将使用关键帧文件内的fps值
用户可自行在表达式中将任意个行插入$subcache
在遇到存在recache的mode的行时,缓存行会被释放,若非append模式,则被插入到该temp行后
切勿在模板替换执行声明行中进行table.insert($subcache,...)
,否则会导致不确定的插入次数
全局变量和预留关键词可以用$
作为头部进行扩展
所有全局变量存储在user_var
这个table变量内,该变量可在表达式中调用
在被执行行中使用!!
括起来的部分会作为表达式被扩展(本质上是Lua的匿名函数)
切勿在表达式内声明全局变量,例如!var=123!
!_G.var=123!
表达式中return
后衔接的内容将会被扩展到文本内,例如!local a=123 return a*3!
相当于扩展了369
sub
Aegisub的subtitles接口的引用
$kdur={0,0}
\k标签后跟随的值
$begin=find_event(sub)
[Events]类型行的第一行
$temp_line
当前所读取的template行的键
$bere_line
当前所读取的beretag行的键
这几个变量是为了方便用户使用相对数据,例如读取当前template的文本内容可以使用sub[$temp_line].text
$keyfile=""
用于存储关键帧文件的路径
$keytext=""
用于存储关键帧文件的内容,当$keytext~=""
时,$keyfile
会无效,将读取$keytext
中的内容作为keyframe模式的输入
本质上是将
$keytext
写入一个缓存文件,$keyfile
的值会被修改为该文件的路径名
使用$keytext
时,直接粘贴整个关键帧文件即可,\N
会被替换为换行符
$forcefps=nil
强制插入关键帧行时的fps值,否则将使用关键帧文件中的fps值
$subcache={}
用于存储字幕缓存行,在遇到recache mode时,会被释放
$deepCopy(input_table)
输入一个table,返回一个深拷贝的table
$
start
mid
end
kdur
$
后衔接的如果不是其他预留关键字,则会被扩展为user_var.
这几个关键字的功能与卡拉OK模版执行器内联变量功能类似,但只在替换\k
标签时起效
向table类型变量user_var
中写入键值对,可以达到在ASS中模拟全局变量的效果
例如!user_var.new_var=123!
!$new_var=345!
当需要使用局部变量临时存放数据时,使用local关键词进行修饰,本质上就是Lua中的local关键词
例如!local line=sub[$bere_line] karaskel.preproc_line(sub, $meta, $styles, line) return line.top!
因为Lua变量的特性,变量可以直接作为匿名函数的引用,所以全局变量可以直接作为函数使用
例如
!$fun1 = function() return "ABC" end! -- 函数的声明
!return $fun1()! -- 使用函数,将该表达式扩展为"ABC"