本文发布于 1245 天前。
新开一文,用于记录关于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
语句。
在C:\Program Files\Aegisub\automation\autoload
下的kara-templater.lua
文件中添加此函数库,使代码中不用写_G.
至此,可以直接在Aegisub的特效行中调用自定义库中的函数,例如
!kTool.rec(1,2,5,2)!
此外,也可以直接在code行中写_G.require "XXX"
来直接在模板中调用函数。