TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua

 找回密码
 新人加入
查看: 2872|回复: 0

[其他代码] TCAX 淡入淡出效果的两种写法格式(Main+User) [复制链接]

Rank: 4

发表于 2022-1-28 23:22:26 |显示全部楼层
本帖最后由 Seekladoom 于 2022-1-28 23:46 编辑

相关链接:
自定义特效编写模板tcaxPy_User函数用法例子
[SAI]034_hyoukaOP2

TCAX 淡入淡出效果的两种写法格式(Main+User).rar (0 Bytes, 下载次数: 1033)

注:以下两种写法最终生成的ASS字幕文件完全一致,发出来的主要目的有以下几点:
1.方便对比基础字幕文本写法的差异
2.寻找简化TCAX代码写法的方法

main格式
  1. from tcaxPy import *

  2. def tcaxPy_Init():
  3.     pass

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

  6.     DY = _Y - 13
  7.     ass_main(ASS_BUF, SubL(_BT, _ET, 0),pos(_X,DY)+fad(200,200), _TXT)

  8.     return (ASS_BUF,None)
复制代码

user格式
  1. from tcaxPy import *

  2. def tcaxPy_Init():
  3.     global resX        # horizontal resolution
  4.     global resY        # vertical resolution
  5.     global marginX     # horizontal margin
  6.     global marginY     # vertical margin
  7.     global lineNum     # number of lines
  8.     global textNum     # textNum[i], number of texts in ith line
  9.     global _BT         # _BT[i], start time of a line
  10.     global _ET         # _ET[i], end time of a line
  11.     global _TXT        # _TXT[i][j], as name implies
  12.     global _L          # _L[i], total width of a line
  13.     global _A          # _A[i][j], advance of a text, usually larger than width
  14.     global _AD         # _AD[i][j], distance between the current text to the first text of the line
  15.     resX         = GetVal(val_ResolutionX)
  16.     resY         = GetVal(val_ResolutionY)
  17.     marginX      = GetVal(val_OffsetX)
  18.     marginY      = GetVal(val_OffsetY)
  19.     lineNum      = GetVal(val_nLines)
  20.     textNum      = GetVal(val_nTexts)
  21.     _BT          = GetVal(val_BegTime)
  22.     _ET          = GetVal(val_EndTime)
  23.     _TXT         = GetVal(val_Text)
  24.     _L           = GetVal(val_TextLength)
  25.     _A           = GetVal(val_TextAdvance)
  26.     _AD          = GetVal(val_TextAdvanceDiff)

  27. def tcaxPy_User():
  28.     ASS_BUF  = []
  29.     file_name = GetVal(val_OutFile) + '.ass'
  30.     ass_header = GetVal(val_AssHeader)
  31.     ASS_FILE = CreateAssFile(file_name, ass_header)

  32.     for i in range(lineNum):
  33.         initPosX = marginX + (resX - _L[i]) / 2                 # an 7, 4, 1
  34.         initPosY = marginY                                      # an 7, 8, 9
  35.         for j in range(textNum[i]):
  36.             if _TXT[i][j] == '' or _TXT[i][j] == ' ' or _TXT[i][j] == ' ':
  37.                 continue
  38.             # an 2
  39.             DX = initPosX + _AD[i][j] + _A[i][j] / 2
  40.             DY = initPosY + resY - 39
  41.             ass_main(ASS_BUF, SubL(_BT[i], _ET[i],0),pos(DX,DY)+fad(200,200), _TXT[i][j])  

  42.     WriteAssFile(ASS_FILE, ASS_BUF)     # write the buffer in memory to the file
  43.     Progress(i,j)
  44.     FinAssFile(ASS_FILE)
复制代码
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-3-29 10:01

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH