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

 找回密码
 新人加入
查看: 8903|回复: 1
打印 上一主题 下一主题

[完整特效] [Seek] Little Busters! OP(单段版+两段版:中日双语特效) [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2021-7-12 08:56:30 |只看该作者 |倒序浏览
本帖最后由 Seekladoom 于 2021-7-14 17:08 编辑

注:以下两种方法(针对单段版脚本)最终生成的ASS字幕文本内容完全一致,本帖1楼内容的主要目的是给在TCAX视频教程到论坛内比较成熟的完整特效脚本之间的过渡学习上有障碍的初学者准备的。
[Seek] Little Busters! OP(单段版+两段版:中日双语特效).rar (0 Bytes, 下载次数: 2974)


注:套用本帖中的模板前请先将上述压缩包中的脚本解压到TCAX的文件目录下替换原先的tcaxPy.py脚本,因为原先的脚本无法正常生成粗体标签b0和b1。。。_(:з」∠)_

单段版(日文)

方法1:照着TCAX视频教程写出来的代码,具体参考了下面这几部分:
P5 19分50秒:这里有tcaxPy_Main函数各部分内容定义的中文说明
P8 10分36秒:这里开始讲TCAX的字幕生成时间的计算
P9 5分30秒:
这里开始讲TCAX的字幕生成时间的计算
  1. from tcaxPy import *

  2. def tcaxPy_Init():
  3.     global _FD           # frame duration, in millisecond
  4.     global _Blur
  5.     _FD = 1000 / GetVal(val_FXFPS)
  6.     _Blur = GetVal(val_Blur)

  7. def tcaxPy_Fin():
  8.     pass

  9. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
  10.     ASS_BUF  = []        # used for saving ASS FX lines
  11.     TCAS_BUF = []        # used for saving TCAS FX raw data
  12.                                                            
  13.     ts = _start + _j * 3 - 20
  14.     te = _start + _elapk
  15.    
  16.     ts2 = _start + _elapk
  17.     te2 = _start + _elapk + _k
  18.    
  19.     ts3 = _start + _elapk + _k
  20.     te3 = _end - (_n - _j - 1) * 3 + 20

  21.     EFT = pos(_x, _y) + color1('3767E6') + color3('FFFFFF') + blur(2) + fad(200,0)
  22.     EFT2 = pos(_x, _y) + blur(2) + color1('3767E6') + color3('FFFFFF') + t(color1('FFFFFF') + color3('3767E6'))
  23.     EFT3 = pos(_x, _y) + color1('FFFFFF') + color3('3767E6') + blur(2) + fad(0,200)

  24.     if _Blur > 0:
  25.         EFT += blur(_Blur)
  26.     ass_main(ASS_BUF, SubL(ts, te), EFT, _txt)        #入场特效 - start2syl
  27.     ass_main(ASS_BUF, SubL(ts2, te2), EFT2, _txt)     #卡拉OK特效 - syl
  28.     ass_main(ASS_BUF, SubL(ts3, te3), EFT3, _txt)     #退场特效 - syl2end

  29.     return (ASS_BUF, TCAS_BUF)
复制代码

方法2:结合论坛内的
完整特效脚本简化代码后的写法。
这里其实就是把方法1的ts、te、EFT等代码内容直接写进ass_main的SubL里面来了,各位朋友可以自行对比一下。
用过Aegisub的朋友对下面这种写法会比较熟悉,这里TCAX的SubL函数就相当于Aegisub的retime函数
用Aegisub的说法来描述的话,方法1的代码相当于把时间参数单独列出来写在了Aegisub的code行,方法2则相当于把这些参数直接写在了Aegisub的template行中了,后续我可能会在我写的TCAX脚本中加上这样的注释,方便划分各个部分的代码:
-----tcax line-----(相当于Aegisub的ass模板中的-----code line-----,line是行的意思)
-----ass_main line-----(相当于Aegisub的ass模板中的-----template line-----,line是行的意思)
  1. from tcaxPy import *

  2. def tcaxPy_Init():
  3.     global _FD                              # frame duration, in millisecond
  4.     global _Blur
  5.     _FD = 1000 / GetVal(val_FXFPS)
  6.     _Blur = GetVal(val_Blur)

  7. def tcaxPy_Fin():
  8.     pass

  9. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
  10.     ASS_BUF  = []        # used for saving ASS FX lines
  11.     TCAS_BUF = []        # used for saving TCAS FX raw data
  12.    
  13.     ass_main(ASS_BUF, SubL(_start+_j*3-20,_start+_elapk), pos(_x,_y)+color1('3767E6')+color3('FFFFFF')+blur(2)+fad(200,0), _txt)                                  #入场特效 - start2syl
  14.     ass_main(ASS_BUF, SubL(_start+_elapk,_start+_elapk+_k), pos(_x,_y)+blur(2)+color1('3767E6')+color3('FFFFFF')+t(color1('FFFFFF')+color3('3767E6')), _txt)      #卡拉OK特效 - syl
  15.     ass_main(ASS_BUF, SubL(_start+_elapk+_k,_end-(_n-_j-1)*3+20), pos(_x,_y)+color1('FFFFFF')+color3('3767E6')+blur(2)+fad(0,200), _txt)                          #退场特效 - syl2end

  16.     return (ASS_BUF, TCAS_BUF)
复制代码

相关链接:
tcaxPy.pyc 模块函数说明
tcaxPy 脚本模板详解 (英文)







Rank: 4

沙发
发表于 2021-7-14 16:16:39 |只看该作者
本帖最后由 Seekladoom 于 2021-7-14 16:29 编辑

两段版(日文两段+中文单段)

方便起见这里就只贴一个脚本直接生成中日双语特效的脚本代码了,下面这段代码对应的K值ass、py脚本、tcc文件以及方便修改TCAX自动化后的ass字幕文件的V4+ Styles的文件头(如下图)都在1楼的那个压缩包里面了:
合并.png
  1. from tcaxPy import *

  2. def tcaxPy_Init():
  3.     global _FD                              # frame duration, in millisecond
  4.     global _Blur
  5.     _FD = 1000 / GetVal(val_FXFPS)
  6.     _Blur = GetVal(val_Blur)

  7. def tcaxPy_Fin():
  8.     pass

  9. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
  10.     ASS_BUF = []        # used for saving ASS FX lines

  11.     # ----------OPJP:K值换色----------
  12.     if _i < 3:             # (这里表示对K值行的第1~3行执行如下的TCAX自动化模板,因为_i从0开始计数,所以 if _i < 3 计算得到的_i的数值就是0~2,即对应K值行的第1~3行。)
  13.         ass_main(ASS_BUF, SubL(_start+_j*3-20,_start+_elapk,0,'OPJP'), pos(_x,_y)+color1('3767E6')+color2('FFFFFF')+color3('3767E6')+b(1)+blur(2)+fad(200,0), _txt)                 #入场特效 - start2syl
  14.         ass_main(ASS_BUF, SubL(_start+_elapk,_start+_elapk+_k,0,'OPJP'), pos(_x,_y)+color1('FFFFFF')+color2('3767E6')+color3('3767E6')+b(1)+blur(2)+K(_k), _txt)                    #卡拉OK特效 - syl
  15.         ass_main(ASS_BUF, SubL(_start+_elapk+_k,_end-(_n-_j-1)*3+20,0,'OPJP'), pos(_x,_y)+color1('FFFFFF')+color2('3767E6')+color3('3767E6')+b(1)+blur(2)+fad(0,200), _txt)         #退场特效 - syl2end

  16.     # ----------OPJP2:主边换色----------
  17.     if _i > 2 and _i < 9:  # (这里表示对K值行的第4~9行的内容执行如下的TCAX自动化模板,因为_i从0开始计数,所以 if _i > 2 and _i < 9 计算得到的_i的数值就是3~8,即对应K值行的第4~9行。)
  18.         ass_main(ASS_BUF, SubL(_start+_j*3-20,_start+_elapk,0,'OPJP2'), pos(_x,_y)+color1('3767E6')+color3('FFFFFF')+b(1)+blur(2)+fad(200,0), _txt)                                 #入场特效 - start2syl
  19.         ass_main(ASS_BUF, SubL(_start+_elapk,_start+_elapk+_k,0,'OPJP2'), pos(_x,_y)+color1('3767E6')+color3('FFFFFF')+t(color1('FFFFFF')+color3('3767E6'))+b(1)+blur(2), _txt)     #卡拉OK特效 - syl
  20.         ass_main(ASS_BUF, SubL(_start+_elapk+_k,_end-(_n-_j-1)*3+20,0,'OPJP2'), pos(_x,_y)+color1('FFFFFF')+color3('3767E6')+b(1)+blur(2)+fad(0,200), _txt)                         #退场特效 - syl2end

  21.     # ----------OPCN----------
  22.     if _i > 8:             # (这里表示对K值行的第10~18行的内容执行如下的TCAX自动化模板,因为_i从0开始计数,所以 if _i > 8 计算得到的_i的数值就是9-17,即对应K值行的第10~18行。)
  23.         ass_main(ASS_BUF, SubL(_start+_j*3-20,_end-(_n-_j-1)*3+20,0,'OPCN'), pos(_x,_y+993)+color1('FFFFFF')+color3('3767E6')+b(1)+blur(2)+fad(200,200)+fn('Source Han Serif SC'), _txt)  #整体特效 - line

  24.     return (ASS_BUF, None)
复制代码
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-12-22 14:25

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH