本帖最后由 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函数有相似之处。
|