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 脚本模板详解 (英文)),具体相关代码在这里:
  1. def tcaxPy_Init():
  2.     start        = GetVal(val_BegTime)   #_BT即_BegTime的缩写,这里的Beg全写是Begin,跟start一样是开始的意思
  3.     end          = GetVal(val_EndTime)  #_ET即_EndTime的缩写
  4.     kar          = GetVal(val_KarTime)    #_KT即_KarTime的缩写
  5.     elapKar      = GetVal(val_KarTimeDiff)   #_SK可能是Start2Kar的缩写(类似Aegisub的start2syl),这里的elapKar的实际作用即从当前行的第一个文本到当前文本经过的时间
复制代码


【习惯1:根据TCAX手册原生命名写的转场】
  1. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
  2.     ASS_BUF  = []        # used for saving ASS FX lines
  3.     TCAS_BUF = []        # used for saving TCAS FX raw data

  4.     duration = 10 * _FD                                                               
  5.     ts = _start + _j * 3 - 20
  6.     te = _start + _elapk
  7.    
  8.     ts2 = _start + _elapk
  9.     te2 = _start + _elapk + _k
  10.    
  11.     ts3 = _start + _elapk + _k
  12.     te3 = _end - (_n - _j - 1) * 3 + 20
复制代码

习惯2:根据三位坛友分享的完整特效中的代码写的转场】
  1. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _x, _y, _a, _txt):
  2.     ASS_BUF  = []        # used for saving ASS FX lines
  3.     TCAS_BUF = []        # used for saving TCAS FX raw data

  4.     duration = 10 * _FD                                                               
  5.     ts = _BT + _j * 3 - 20
  6.     te = _BT + _SK
  7.    
  8.     ts2 = _BT + _SK
  9.     te2 = _BT + _SK + _KT
  10.    
  11.     ts3 = _BT + _SK + _KT
  12.     te3 = _ET - (_n - _j - 1) * 3 + 20
复制代码

个人建议初学者先按照手册也就是习惯1的代码去学习,如果代码功底较强,知道自己写的东西是啥的话,推荐习惯2。



另外论坛内实际上真正的完整特效写法比上述代码示例更短,是直接写进SubL函数里面去的,其中控制文字出现时间的代码是这样的:

  1. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):
  2.     ASS_BUF = []                # 用于保存ASS特效

  3.             ########文字效果########
  4.     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)#入场效果
  5.     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)#表现方式
  6.     ass_main(ASS_BUF,SubL(_BT+_SK+_KT,_ET,1),an(5)+pos(_X,_Y)+b(1) ,_TXT)#表现方式至退场效果之间的衔接
  7.     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://tcax.org/) Powered by Discuz! X2