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

 找回密码
 新人加入
查看: 9550|回复: 3

[已解决] 如何让TCAX根据py脚本文件中设置的样式名称去输出样式? [复制链接]

Rank: 4

发表于 2020-8-4 17:06:50 |显示全部楼层
本帖最后由 Seekladoom 于 2021-7-12 16:07 编辑

因为TCAX每次操作完py脚本文件以后,输出的特效字幕文件的样式全都会被TCAX中的tcaxPy.py这个脚本自动替换为TCMS,我自己设置的OPJP、OPCN、EDJP、EDCN、INJP、INCN这些样式啥的全都会清一色被替换为TCMS

【操作前】
操作前.png


【操作后】
操作后.png


有没有什么办法给TCAX中的tcax.py修改点啥代码让TCAX自动读取K值字幕文件里面的样式名称然后再输出特效字幕文件?
TCMS.png


虽然不是啥直接影响特效制作的大问题,但写代码久了难免会有强迫症,想自己生成自定义程度更高的字幕文件,样式为TCMS的话还要自己手动修改一次才能作为字幕组的字幕文件复制粘贴整合进去,这样做其实无形中降低了工作效率。。。_(:з」∠)_

Rank: 4

发表于 2021-7-12 10:25:57 |显示全部楼层
本帖最后由 Seekladoom 于 2021-7-12 15:28 编辑

解决方法如下:
  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,0,'OPJP'), 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,0,'OPJP'), 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,0,'OPJP'), pos(_x,_y)+color1('FFFFFF')+color3('3767E6')+blur(2)+fad(0,200), _txt)                          #退场特效 - syl2end

  16.     return (ASS_BUF, TCAS_BUF)
复制代码
关键部分:SubL(_start+_j*3-20,_start+_elapk,0,'OPJP')

这里的SubL有四个参数,依次是开始时间、结束时间、文本层数、样式名称,论坛内绝大部分脚本都没写第3和第4个参数,因此字幕文件默认生成名称为TCMS的样式。
把第3和第4个参数补上,第4个参数写成这样的形式——'样式名称'即可生成这样的字幕文件:
生成1.png


不过V4+ Style部分仍需要自行手动修改,如果要确保这里也按照py脚本里面设置的样式名称自动生成的话,需要对tcaxPy.py进行相应修改才行。

目前发现tcaxPy.py中的这段内容跟V4+ Style可能有较大联系:
  1. val_AssHeader        = 0        # Ass文件头部信息 用于tcaxPy_User函数
复制代码
时间关系这里就暂时不深入了,有余力的可以去翻翻奶大留下的源码:
https://github.com/milkyjing/TCAX

Rank: 4

发表于 2021-7-12 17:36:30 |显示全部楼层
本帖最后由 Seekladoom 于 2021-7-14 03:45 编辑

补充:
1.虽然暂时做不到修改tcaxPy.py再用TCAX直接在ass字幕文件的V4+ Style那里生成三个不同的样式,且一个tcc文件只能对应一个样式,但可以靠py脚本在不同段落生成不同的样式名称(包括对齐和颜色信息那些东西等等),最后在ass字幕文件的V4+ Style那里重复复制粘贴几个样式出来并改名就行了。

这样也可以把TCAX制作中日双语特效的工作效率提高不少了!

2.TCC文件中的alignment无论设置为多少,生成的ass字幕文件中的V4+ Styles的Alignment那栏永远都是5,但字幕的pos坐标还是会根据tcc文件中的的alignment发生变化,因此可以通过分别设置中文和日文的pos坐标来做到一个py脚本生成中日双语特效。

Rank: 4

发表于 2021-8-19 10:38:45 |显示全部楼层
关于TCAX生成的ASS文件的全局Style的设置
http://www.tcax.org/forum.php?mod=viewthread&tid=54
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-4-19 03:44

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH