欢迎光临散文网 会员登陆 & 注册

【Aegisub相关】AUTO4和Lua使用时的一个区别

2022-05-11 03:33 作者:只有神知道的歌词特效  | 我要投稿

先贴代码


Lua写法


按照Aegisub的AUTO4写法规则将如上代码改写成下面这样:


如上AUTO4代码运行时在Aegisub中会直接报错,运行前是这样的:

运行后:

具体报错内容:

仔细看报错内容可以发现,attempt to call global 'print' (a nil value) 说明Aegisub的AUTO4在这里直接把print当做全局变量来对待了,这点上跟传统横行代码写法的Lua脚本相去甚远,这点要特别注意。另外报错内容中还提到了template expression,这个是可以直接在Aegisub安装目录下的kara-templater.lua当中搜expression找到的。


而在独立版Lua中运行最前面的那段Lua代码没有任何问题:


因此,鄙人建议各位朋友自学Aegisub做ASS特效时,一定要多多关注AUTO4和Lua代码运行时的区别,特别是报错这块。

因为,AUTO4实际上是一个为了满足Aegisub的自动化特效需求,针对Lua语言做了较多精简(即功能没有原生lua语言那么完整)的“Lua语言”,在报错和一些代码判断方式上多少跟原生Lua语言有点区别。这点上给初学者在报错自查时制造了不小的门槛,所以特别把这个问题单独拿出来说明一下,希望后人能在这块少踩坑。


附上独立版Lua程序的下载链接:

【Windows专用】独立版 Lua 5.1-5.4
github:https://github.com/Seekladoom/Lua-compiled
gitee:https://gitee.com/seekladoom/Lua-compiled

【Aegisub相关】AUTO4和Lua使用时的一个区别的评论 (共 条)

分享到微博请遵守国家法律