Aegisub 库和插件编写
本文最后更新于 93 天前。

新开一文,用于记录关于Aegisub插件编写的相关知识。
可以参考手册:https://aegi.vmoe.info/docs/3.2/Automation/Lua/
目前编写的自用Aegisub插件,主要用于双语字幕打轴和检查:

调试输出函数

aegisub.debug.out(level, msg)

此函数可以弹出错误信息框。level参数可以省略。
0:致命 1:错误 2:警告 3:提示 4:调试 5:追踪
其中,0~3会跳出提示框,4~5不会有提示。

Comment: 0,0:00:00.00,0:00:00.00,Default,,0,0,0,code line,_G.aegisub.debug.out(1,"aa")

aegisub.log(msg)

用法与上述的一致。不需要填level

获取程序运行时间

os.clock可以传出CPU时间。
在程序运行前后用两个时间相减,可以获得代码运行的时间。

Comment: 0,0:00:00.00,0:00:00.00,Default,,0,0,0,code line,t_1=_G.os.clock()    sum = 1  for i=1,1000000000 do sum=sum+i+i end t_2=_G.os.clock() t=t_2-t_1
Comment: 0,0:00:00.00,0:00:00.00,Default,,0,0,0,template line noblank notext,!sum!  !t!
Comment: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,karaoke,?
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,fx,1.000000001e+018  2.6610000000001

创建一个自定义的函数库

.lua的库放在C:\Program Files\Aegisub\automation\include下。
库文件中可以有一个表,表的子项为函数。在库文件的最后应当return这个表。例如

kTool={}

function kTool.rec(x,y,w,h)
     ...
end

return kTool

让Aegisub加载自定的库

\AppData\Roaming\Aegisub\automation\include中的Yutils.lua中添加require语句。

image.png

C:\Program Files\Aegisub\automation\autoload下的kara-templater.lua文件中添加此函数库,使代码中不用写_G.

image.png

至此,可以直接在Aegisub的特效行中调用自定义库中的函数,例如
!kTool.rec(1,2,5,2)!

image.png

此外,也可以直接在code行中写_G.require "XXX"来直接在模板中调用函数。

标题:Aegisub 库和插件编写
作者:IKK
除转载和特殊声明外,所有文章采用 CC BY-NC-SA 4.0协议
上一篇
下一篇