Aegisub字幕自动化及函数篇(图文教程附有gif动图展示)(二)

目录

template行

template pre-line

template line

template syl

template syl noblank

template char

template notext

template pre-line notext

template syl noblank notext

template keeptags

​编辑

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就不能隔开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值