注:这5种写法都能生成准确无误的ASS特效字幕。
TCAX的几种ASS特效标签写法.rar
第1种:an(5)+pos(_X,_Y)+blur(3)+fad(200,200)
ass_main(ASS_BUF,SubL(_BT,_ET,1),an(5)+pos(_X,_Y)+blur(3)+fad(200,200),_TXT)
第2种(混搭写法):
‘\\an5\\blur3\\fad(200,200)’+pos(_X,_Y)
ass_main(ASS_BUF,SubL(_BT,_ET,1),'\\an5\\blur3\\fad(200,200)'+pos(_X,_Y),_TXT)
第3种(混搭写法):r’\an5\blur3\fad(200,200)’+pos(_X,_Y)
ass_main(ASS_BUF,SubL(_BT,_ET,1),r'\an5\blur3\fad(200,200)'+pos(_X,_Y),_TXT)
第4种:’\\an5\\blur3\\fad(200,200)\\pos({0},{1})’.format(_X,_Y),_TXT)
ass_main(ASS_BUF,SubL(_BT,_ET,1),'\\an5\\blur3\\fad(200,200)\\pos({0},{1})'.format(_X,_Y),_TXT)
第5种:r’\an5\blur3\fad(200,200)\pos({0},{1})’.format(_X,_Y),_TXT)
ass_main(ASS_BUF,SubL(_BT,_ET,1),r'\an5\blur3\fad(200,200)\pos({0},{1})'.format(_X,_Y),_TXT)
第6种(此法需要修改TCAX源码才能实现,留作后续开发用):\an5\pos(_X,_Y)\blur3\fad(200,200)
ass_main(ASS_BUF,SubL(_BT,_ET,1),\an5\pos(_X,_Y)\blur3\fad(200,200),_TXT)
另外,第2种写法中 \an5\blur3\fad(200,200) 两边的符号’,是将这段ASS特效标签代码变成TCAX可以识别的字符串用的,因此不能省略。也不能换成{},否则会无法生成特效字幕。第3种写法的 r’\an5\blur3\fad(200,200)’ 跟第2种一样,也是方便TCAX识别字符串用的。
第2-3种写法之所以会出现在TCAX的各种python特效脚本中,是因为TCAX的自动化特效模块——tcaxPy.py脚本有很长一段时间都没有补上常规ASS特效标签b(即粗体标签)和各种mod标签所需的字符串代码造成的,在没人完善tcaxPy.py脚本的情况下,很多人就只能用’\an5’、r’\an5’这样的方法去掩盖tcaxPy.py脚本存在的缺陷。
第4-5种写法是在第2-3种写法的基础之上,在完全不使用tcaxPy.py脚本中的字符串逻辑的情况下,尽可能只用 \ 、单引号和 r 的ASS特效标签编写方式,亲测可以正常跑并计算出相应的结果,但在代码长度上还是比第1种要长一些,有变量的ASS特效标签越多,同一行内的代码越长(这种写法)。。。(:з」∠)
这些因在tcaxPy.py脚本中未定义相应的字符串逻辑而被迫用第2-3种写法的ASS特效标签如果碰到需要填写变量(比如Python的randint函数,TCAX的_X、_Y等)时,写在’\ ‘或r’\ ‘内的变量(比如’\pos(_X,_Y)‘和r’\pos(_X,_Y)’)在TCAX自动化编译生成ASS特效字幕时,就会出现无法计算这些变量的情况。考虑到长期代码维护的便利性,请使用上述提到的第1种写法。
目前tcaxPy.py脚本已经开始逐渐补上此前缺失的字符串逻辑了,请看如下帖子2楼:
【tcaxPy脚本】tcaxPy Version 0.8.0.2
tcaxPy.py脚本的最新版会在这里持续更新:
【tcaxPy脚本】tcaxPy Version 0.8.0.3(更新中)