TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua
标题:
NyuFX和PyonFX的区别之一(20220501)
[打印本页]
作者:
Seekladoom
时间:
2022-5-1 03:10:54
标题:
NyuFX和PyonFX的区别之一(20220501)
本帖最后由 Seekladoom 于 2022-5-1 03:15 编辑
NyuFX的syl.xxx如果没有事先赋值给别的变量(比如写成 _send = syl.end_time 这样)的话,就必须时刻跟一个for si, syl这样的for循环代码写在一起,否则无法使用。示例代码如下:
io.load_ass( "templates\\单句测试文本\\CN_K.ass")
function CN(line, l)
--下面的syl.xxx如不事先赋值给别的变量(比如写成 _send = syl.end_time 这样)的话,就必须跟左边这行for si, syl循环写在一起,否则会立马报错。
for si, syl in ipairs(line.syls) do
if syl.text ~= "" then
l.layer = 0
l.start_time = line.start_time + syl.end_time - syl.duration
l.end_time = line.end_time + syl.i * 30 + 200
l.text = string.format("{\\an5\\pos(%.f,%.f)\\blur2\\shad0\\fad(200,200)}%s", syl.center, syl.middle, syl.text)
io.write_line(l)
end
end
end
for li, line in ipairs(lines) do
if line.styleref.alignment == 2 then
CN(line, table.copy(line))
end
io.progressbar(li / #lines)
end
复制代码
而PyonFX的syl.xxx不像NyuFX那样必须跟着for si, syl在几行内捆绑出现,示例代码如下:
from pyonfx import *
io = Ass("CN_K.ass", "CN_FX.ass")
meta, styles, lines = io.get_data()
def CN(line, l):
l.layer = 0
l.start_time = line.start_time + syl.end_time - syl.duration
l.end_time = line.end_time + syl.i * 30 + 200
l.text = "{\\an5\\pos(%.f,%.f)\\blur2\\shad0\\fad(200,200)}%s" % ( syl.center, syl.middle, syl.text )
io.write_line(l)
for line in lines:
for syl in line.syls: # PyonFX的syl.xxx不像NyuFX那样必须跟着for si, syl在几行内捆绑出现
if line.styleref.alignment == 2:
CN(line, line.copy())
io.save()
io.open_aegisub()
复制代码
欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://tcax.org/)
Powered by Discuz! X2