用TCAX制作分段特效时注意到的一些问题

本文讲述了作者成功解决TCAX Python脚本缩进问题,分享了如何编写分段特效代码,特别强调了OPJP与OPJP2样式区分。通过实例说明了如何生成带分段样式的ASS字幕,以及注意事项,适用于技术爱好者和Aegisub用户。
摘要由CSDN通过智能技术生成

试着用py脚本给TCAX做分段特效,发现TCAX对python代码的缩进要求很严格,错一点点都会出现如下报错(如图1):
Indentation Error:Unident does not match any other Indentation level
Fatal Error:failed to initialize the 1(th) user tcax py script.
在这里插入图片描述
翻译过来就是:
缩进错误:Unindent 不匹配任何其他缩进级别
致命错误:无法初始化一级用户的tcax py脚本。

Aegisub的lua代码缩进要求就没这么严格。

一番折腾之后终于写出能让TCAX正常运行的分段特效代码(如图2)了,而且需要注意的是,分段特效如果不生成TCAS特效的话,这个时候需要把TCAS_BUF = []这个代码删掉,并且最后的return (ASS_BUF, TCAS_BUF) 的TCAS_BUF要换成None,也就是这样写:
return (ASS_BUF, None)
在这里插入图片描述
才能确保分段特效代码的正常运行。

分段代码如下:

from tcaxPy import *

def tcaxPy_Init():
    global _FD                              # frame duration, in millisecond
    global _Blur
    _FD = 1000 / GetVal(val_FXFPS)
    _Blur = GetVal(val_Blur)

def tcaxPy_Fin():
    pass

def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
    ASS_BUF = []        # used for saving ASS FX lines
   
    if _i < 5:
        ass_main(ASS_BUF, SubL(_start+_j*3-20,_start+_elapk,0,'OPJP'), pos(_x,_y)+color1('3767E6')+color3('FFFFFF')+blur(2)+fad(200,0), _txt)                                  #入场特效 - start2syl
        ass_main(ASS_BUF, SubL(_start+_elapk,_start+_elapk+_k,0,'OPJP'), pos(_x,_y)+blur(2)+color1('3767E6')+color3('FFFFFF')+t(color1('FFFFFF')+color3('3767E6')), _txt)      #卡拉OK特效 - syl
        ass_main(ASS_BUF, SubL(_start+_elapk+_k,_end-(_n-_j-1)*3+20,0,'OPJP'), pos(_x,_y)+color1('FFFFFF')+color3('3767E6')+blur(2)+fad(0,200), _txt)                          #退场特效 - syl2end

    if _i >= 5:
        ass_main(ASS_BUF, SubL(_start+_j*3-20,_start+_elapk,0,'OPJP2'), pos(_x,_y)+color1('3767E6')+color3('FFFFFF')+blur(2)+fad(200,0), _txt)                                  #入场特效 - start2syl
        ass_main(ASS_BUF, SubL(_start+_elapk,_start+_elapk+_k,0,'OPJP2'), pos(_x,_y)+blur(2)+color1('3767E6')+color3('FFFFFF')+t(color1('FFFFFF')+color3('3767E6')), _txt)      #卡拉OK特效 - syl
        ass_main(ASS_BUF, SubL(_start+_elapk+_k,_end-(_n-_j-1)*3+20,0,'OPJP2'), pos(_x,_y)+color1('FFFFFF')+color3('3767E6')+blur(2)+fad(0,200), _txt)                          #退场特效 - syl2end

    return (ASS_BUF, None)
复制代码

两段的字幕显示效果一模一样,不同的地方在样式名称上,前者是OPJP,后者是OPJP2,这里主要是想试着写出能生成带有分段样式名称的特效字幕的py脚本。

这样生成字幕之后,再以记事本方式打开ass字幕文件并在V4+ Style那里重复复制粘贴几个TCMS样式出来并改名就能确保生成的字幕文件正常显示特效了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值