目录
template行
template pre-line
template line
template syl
template syl noblank
template char
template notext
template pre-line notext
template syl noblank notext
编辑
template loop number
内联变量
编辑 remeber函数
retime函数
line模式
maxloop函数
code自定义函数行
编辑 \r
与自动化相关的行有几种: code行,template行,作用行(即原来的字幕行) fx行(生成行,是执行完自动化以后生成的行)
template行
template 后面跟不同的修饰,渲染出的效果也不一样
template pre-line
不管字幕中有没有k值,直接在所有字幕行前面加上模板行中的内容
渲染查看效果
渲染效果:
可以看到无论是否有k值,渲染后的字幕行前面都加上了模板行的内容
template line
一行字幕行就只对应生成一行fx行,但是不同的是,当字幕行有k值时,生成行每一个k标签都会被替换为模板内容
没有k值的作用行,就是在最前面加上模板中的内容标签了
查看效果:
template syl
如果template后面什么都不写.则默认template的修饰语为syl,即template 等于 template syl
syl修饰语是每个音节单独生成一行(有k值才有音节) 并且在每个作用行前面还会生成一行
查看效果:
没有k值的单独生成一行有模板标签的fx行,然后再对没有k值的这一行作用行前面加上模板中的内容标签
可以看到每个生成行的最前面有一行 单独的 haha 然后才是这一作用行的每个音节单独生成一行,并在最前面加上模板的特效标签内容
注意: 如果给一个空格划了k值 那么这个空格也会当做一个音节,并生成一行
给空格打k值后观察渲染效果
template syl noblank
如果想要不让前面尝试的空格生成一行 可以用 noblank 加上noblank后 一行最前面就不会像刚刚那样生成一行,而且空格也不会生成一行 syl书写时可以省略
加上noblank后,不管有没有对空格加上k值,空格都不会生成一行
注意: noblank只会对打了k值的作用行生效,如果字幕行没有k值则不会进行渲染该行
查看效果:
template char
char是英文character简写
char修饰语不受k值的影响 直接以"字符"为单位作用 即不管有没有k值 每个字,每个字母,每个符号 每个空格都会直接单独生成一行
查看效果
很明显.现在没有划k值的作用行也是一个个字符,空格也是单独生成一行,且每行前面加上模板中的特效标签内容
注意 template char后面不能加noblank
template notext
notext修饰语表示在作用的同时 忽略字幕行原本的内容 直接输出template内容标签的结果
查看效果
可以看到 原本字幕行的内容全部没了,渲染后的结果只是模板行的内容标签
另外 notext修饰语可以加在 line\syl\char的后面 这三种后面都可以加
template pre-line notext
template pre-line notext和template pre-line是同样效果
template syl noblank notext
noblank通常只会加在syl后面 可以和notext一起用
查看效果
现在生成行既没有空格生成的行,也灭有原来字幕行的文本了
这个效果一般用来加图形的特效
注意:这个效果用时字幕行必须要划k值 没有k值的行直接不会渲染显示
template keeptags
表示可以保留原有字幕行的特效标签
为单一行添加一个特效标签
查看效果
原有行的特效标签保留下来了,如果不加keeptags的话,原有的字幕行的特效标签就会失效
keeptags可以加在 pre-line\line\syl后面
template loop number
loop number后面的number只能些正整数 loop意为循环
这个修饰语表示 模板会执行几次
查看效果:
可以看到每行原有字幕都被模板生成了5次,并且每个字幕行的前面也单独生成了5次
再来看变量取值
j表示每次循环的 取值,从1开始取值,第一行 j=1,第二行j=2.....
maxj表示循环的最大值,是个定值,比如循环定义的是5次,maxj一直都是5
注意: 变量j好像只能是固定写死的,博主换其他变量名比如i和p等都没效果
查看效果:
在模板中输入的纯文本会直接加在生成行 而模板中的变量就会在得出值以后加在生成行里面
比如j是个变量,循环的次数不同,得出的j的值就不痛 在template的运算,计算时前后都要加上!符号
loop和循环函数maxloop效果一样,区别是maxloop()里面可以填任何大于0的实数,maxloop可以自己取整,但是loop number的number只能为正整数
内联变量
remeber函数
remeber函数在同一代码特效行内,可以进行变量值存储,在同行内可以在使用recall.变量名 进行取值,但是不可以隔行取值
查看生成后的fx行结果
可以看到blur后面跟的数字和bord数字一致
当然也可以进行加减运算
可以看到blur后面跟的数字就是bord后的数字减法运算后的结果
retime函数
line模式
可以控制每行字幕的开始结束时间的偏移
字幕开始时间为行的开始时间加上调整时间t1,结束时间为行的结束时间加上调整时间t2
!retime("line",t1,t2)!
偏移量以毫秒为单位,1s=1000ms
查看效果
可以看到生成的fx行字幕的开始时间和结束时间和原先相比都向后偏移了1s
maxloop函数
循环用的函数,可以循环执行模板
定义最大循环次数为3,索引从1开始
查看效果
可以看到每行字幕生成了三行,
code自定义函数行
code行是用来自定义函数的,然后可以在template模板中使用在code行里自定义的函数,但是只有code行是没有意义的,还要有template行,code的意义就是给template提供自定义函数
查看生成的fx效果
再看下多个变量
查看效果
\r
\r代码可以隔开一些标签,使得一行里面可以使用多组标签
如代码\t原本就只能在一个大括号里面用,如果一行里面加了好多组大括号,并且里面都有\t那此时第一组的\t会影响后面的变化
先来看下不加\r的效果
可以看到后面的 夜色正好,先是和前面的 整晚胡思乱想 边框变为一样后才又变了自己的宽度,被前面定义的bord20所影响了
下面看下加了\r后的效果
可以看到两者各自执行了各自的效果,后面的没有被前面的所影响
注意 \r也有不能隔开的标签,比如可以控制位置移动的\move就不能隔开