TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua
标题: 关于论坛内tcaxPy_Main存在的两种参数命名习惯 [打印本页]
作者: Seekladoom    时间: 2021-7-11 23:09:30     标题: 关于论坛内tcaxPy_Main存在的两种参数命名习惯
 本帖最后由 Seekladoom 于 2021-7-12 15:10 编辑 
参考链接:
习惯1:def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):的来源:
tcaxPy 脚本模板详解 (英文)
习惯2:def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _x, _y, _a, _txt):写法的三位坛友:
[完整特效] [kk]05_Sword_Art_Online_OP1
[完整特效] [jiji]002_Uchouten_Kazoku_OP
[完整特效][youkaze]008_Accel·world_OP1
_BT, _ET, _SK, _KT的写法来源(tcaxPy 脚本模板详解 (英文)),具体相关代码在这里:- def tcaxPy_Init():
 
-     start        = GetVal(val_BegTime)   #_BT即_BegTime的缩写,这里的Beg全写是Begin,跟start一样是开始的意思
 
-     end          = GetVal(val_EndTime)  #_ET即_EndTime的缩写
 
-     kar          = GetVal(val_KarTime)    #_KT即_KarTime的缩写
 
-     elapKar      = GetVal(val_KarTimeDiff)   #_SK可能是Start2Kar的缩写(类似Aegisub的start2syl),这里的elapKar的实际作用即从当前行的第一个文本到当前文本经过的时间
【习惯1:根据TCAX手册原生命名写的转场】
- def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
 
-     ASS_BUF  = []        # used for saving ASS FX lines
 
-     TCAS_BUF = []        # used for saving TCAS FX raw data
 
 
-     duration = 10 * _FD                                                               
 
-     ts = _start + _j * 3 - 20
 
-     te = _start + _elapk
 
-    
 
-     ts2 = _start + _elapk
 
-     te2 = _start + _elapk + _k
 
-    
 
-     ts3 = _start + _elapk + _k
 
-     te3 = _end - (_n - _j - 1) * 3 + 20
【习惯2:根据三位坛友分享的完整特效中的代码写的转场】
- def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _x, _y, _a, _txt):
 
-     ASS_BUF  = []        # used for saving ASS FX lines
 
-     TCAS_BUF = []        # used for saving TCAS FX raw data
 
 
-     duration = 10 * _FD                                                               
 
-     ts = _BT + _j * 3 - 20
 
-     te = _BT + _SK
 
-    
 
-     ts2 = _BT + _SK
 
-     te2 = _BT + _SK + _KT
 
-    
 
-     ts3 = _BT + _SK + _KT
 
-     te3 = _ET - (_n - _j - 1) * 3 + 20
个人建议初学者先按照手册也就是习惯1的代码去学习,如果代码功底较强,知道自己写的东西是啥的话,推荐习惯2。
另外论坛内实际上真正的完整特效写法比上述代码示例更短,是直接写进SubL函数里面去的,其中控制文字出现时间的代码是这样的:
- def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):
 
-     ASS_BUF = []                # 用于保存ASS特效
 
 
-             ########文字效果########
 
-     ass_main(ASS_BUF,SubL(_BT-30+_j*3,_BT+_SK,1),an(5)+move(_X+500,_Y,_X,_Y,0,400)+org(_X,_Y)+t(frx(3600))+b(1) ,_TXT)#入场效果
 
-     ass_main(ASS_BUF,SubL(_BT+_SK,_BT+_SK+_KT,1),an(5)+pos(_X,_Y)+jitter(6,2,6,2,6,2)+blur(6)+b(1) ,_TXT)#表现方式
 
-     ass_main(ASS_BUF,SubL(_BT+_SK+_KT,_ET,1),an(5)+pos(_X,_Y)+b(1) ,_TXT)#表现方式至退场效果之间的衔接
 
-     ass_main(ASS_BUF,SubL(_ET,_ET+80-_j*3,1),an(5)+move(_X,_Y,_X-1000,_Y)+org(_X,_Y)+t(frx(360))+b(1) ,_TXT)#退场效果
上述这段代码来源于:[完整特效] [jiji]002_Uchouten_Kazoku_OP
可以看出SubL的写法跟Aegisub的retime函数有相似之处。
| 欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://www.tcax.org/) | Powered by Discuz! X2 |