| 
UID2546积分161帖子30主题5论坛币888 威望0 EP值138 MP值0 阅读权限50注册时间2015-5-9在线时间52 小时最后登录2025-10-25
 
 
 | 
| 本帖最后由 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()
 | 
 |