- UID
 - 2546
 - 积分
 - 161
 - 帖子
 - 30
 - 主题
 - 5
 - 论坛币
 - 888 
 - 威望
 - 0 
 - EP值
 - 138 
 - MP值
 - 0 
 - 阅读权限
 - 50
 - 注册时间
 - 2015-5-9
 - 在线时间
 - 52 小时
 - 最后登录
 - 2025-10-25
  
 
 
 
  
 | 
 本帖最后由 Seekladoom 于 2022-1-28 23:46 编辑  
 
相关链接: 
自定义特效编写模板tcaxPy_User函数用法例子 
[SAI]034_hyoukaOP2 
 
 
TCAX 淡入淡出效果的两种写法格式(Main+User).rar
(0 Bytes, 下载次数: 6084)
 
注:以下两种写法最终生成的ASS字幕文件完全一致,发出来的主要目的有以下几点: 
1.方便对比基础字幕文本写法的差异 
2.寻找简化TCAX代码写法的方法 
 
main格式- from tcaxPy import *
 
  
- def tcaxPy_Init():
 
 -     pass
 
  
- def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):
 
 -     ASS_BUF  = []                # 保存ASS特效
 
  
-     DY = _Y - 13
 
 -     ass_main(ASS_BUF, SubL(_BT, _ET, 0),pos(_X,DY)+fad(200,200), _TXT) 
 
 -  
 
 -     return (ASS_BUF,None)
 
  复制代码 
user格式 
- from tcaxPy import *
 
  
- def tcaxPy_Init():
 
 -     global resX        # horizontal resolution
 
 -     global resY        # vertical resolution
 
 -     global marginX     # horizontal margin
 
 -     global marginY     # vertical margin
 
 -     global lineNum     # number of lines
 
 -     global textNum     # textNum[i], number of texts in ith line
 
 -     global _BT         # _BT[i], start time of a line
 
 -     global _ET         # _ET[i], end time of a line
 
 -     global _TXT        # _TXT[i][j], as name implies
 
 -     global _L          # _L[i], total width of a line
 
 -     global _A          # _A[i][j], advance of a text, usually larger than width
 
 -     global _AD         # _AD[i][j], distance between the current text to the first text of the line
 
 -     resX         = GetVal(val_ResolutionX)
 
 -     resY         = GetVal(val_ResolutionY)
 
 -     marginX      = GetVal(val_OffsetX)
 
 -     marginY      = GetVal(val_OffsetY)
 
 -     lineNum      = GetVal(val_nLines)
 
 -     textNum      = GetVal(val_nTexts)
 
 -     _BT          = GetVal(val_BegTime)
 
 -     _ET          = GetVal(val_EndTime)
 
 -     _TXT         = GetVal(val_Text)
 
 -     _L           = GetVal(val_TextLength)
 
 -     _A           = GetVal(val_TextAdvance)
 
 -     _AD          = GetVal(val_TextAdvanceDiff)
 
  
- def tcaxPy_User():
 
 -     ASS_BUF  = []
 
 -     file_name = GetVal(val_OutFile) + '.ass'
 
 -     ass_header = GetVal(val_AssHeader)
 
 -     ASS_FILE = CreateAssFile(file_name, ass_header)
 
  
-     for i in range(lineNum):
 
 -         initPosX = marginX + (resX - _L[i]) / 2                 # an 7, 4, 1
 
 -         initPosY = marginY                                      # an 7, 8, 9
 
 -         for j in range(textNum[i]):
 
 -             if _TXT[i][j] == '' or _TXT[i][j] == ' ' or _TXT[i][j] == ' ':
 
 -                 continue
 
 -             # an 2
 
 -             DX = initPosX + _AD[i][j] + _A[i][j] / 2
 
 -             DY = initPosY + resY - 39
 
 -             ass_main(ASS_BUF, SubL(_BT[i], _ET[i],0),pos(DX,DY)+fad(200,200), _TXT[i][j])  
 
  
-     WriteAssFile(ASS_FILE, ASS_BUF)     # write the buffer in memory to the file
 
 -     Progress(i,j)
 
 -     FinAssFile(ASS_FILE)
 
  复制代码 |   
 
  
 |