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

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

[完整特效] [jiji]001_DEVIL SURVIVOR 2 _OP [复制链接]

Rank: 4

楼主
发表于 2021-8-17 23:20:05 |显示全部楼层
本帖最后由 Seekladoom 于 2021-8-19 18:01 编辑

看了半天才发现没有def tcaxPy_Init,看来必须要统一代码习惯啊。。。_(:з」∠)_

补上能在TCAX Studio中直接跑的代码:
  1. from tcaxPy import * #请用这个帖子(http://www.tcax.org/forum.php?mod=viewthread&tid=1939)中的tcaxPy.py文件

  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.     ASSDraw = 'm 21 16 b 17 16 17 23 21 23 b 25 23 26 16 21 16 m 24 19 l 43 20 l 24 20 m 18 19 l 0 20 l 18 20 m 20 16 l 21 0 l 22 16 m 20 23 l 21 40 l 22 23'
  7.     dy = _Y - 13
  8.     #文字效果
  9.     ass_main(ASS_BUF,SubL(_BT-20+_j*3,_BT+_SK,1),an(5)+pos(_X,dy)+fs(1)+t(0,250,fs(38)),_TXT)#入场效果
  10.     ass_main(ASS_BUF,SubL(_BT+_SK,_BT+_SK+_KT,1),an(5)+pos(_X,dy)+t(_KT,+_KT*2,rnd(20))+t(_KT*2,_KT*4,rnd(0))+t(_KT*4,_KT*6,rnd(10))+t(_KT*6,_KT*8,rnd(20))+t(_KT*8,_KT*10,rnd(1)),_TXT)#表现方式
  11.     ass_main(ASS_BUF,SubL(_BT+_SK+_KT,_ET-(_n-_j)*1,1),an(5)+pos(_X,dy) ,_TXT)#表现方式至退场效果之间的衔接
  12.     ass_main(ASS_BUF,SubL(_ET-(_n-_j)*1,_ET-(_n-_j)*1+20,1),an(5)+pos(_X,dy)+t(fsc(200, 200)+alpha(255)+bord(0)+blur(20)),_TXT)#退场效果

  13.     #附加效果
  14.     ass_main(ASS_BUF, SubL(_BT+randint(-30,50),_ET+randint(100,150),2),an(5)+fad(300,500)+blur(6)+fsc(randint(5,50),randint(5,50))+moves4(_X+randint(-50,50),dy+randint(-50,50),_X+randint(-60,60),dy+randint(-60,60),_X+randint(-60,60),dy+randint(-60,60),_X+randint(-50,50),dy+randint(-60,60))+p(1),ASSDraw)

  15.     for j in range(0,5):
  16.         ass_main(ASS_BUF,SubL(_ET,_ET+randint(400,800)),an(5)+fad(0,randint(100,700))+blur(6)+fsc(randint(5,50),randint(5,50))+moves4(_X,dy,_X+randint(-70,100),dy+randint(-80,-50),_X+randint(-80,50),dy+randint(-40,80),_X+randint(-70,50),dy+randint(-60,60))+p(1),ASSDraw)

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

补充两点说明:
1.楼主的脚本代码中的绘图代码需要做如下修改
修改前:绘图代码使用的是半角的双引号(" ")确保TCAX能识别,这里可能是TCAX早期版本的字符串逻辑。
  1. "{\\p1}m 21 16 b 17 16 17 23 21 23 b 25 23 26 16 21 16 m 24 19 l 43 20 l 24 20 m 18 19 l 0 20 l 18 20 m 20 16 l 21 0 l 22 16 m 20 23 l 21 40 l 22 23 "
复制代码
修改后:为了能在TCAX Studio以及没有GUI的1.2.0版本的TCAX上跑,需要将双引号修改成半角的单引号(' ')。
  1. 'm 21 16 b 17 16 17 23 21 23 b 25 23 26 16 21 16 m 24 19 l 43 20 l 24 20 m 18 19 l 0 20 l 18 20 m 20 16 l 21 0 l 22 16 m 20 23 l 21 40 l 22 23'
复制代码

2.示例代码中缺少def tcaxPy_Init():个人猜测早期版本的TCAX可能不需要def tcaxPy_Init():也能跑(加粗的这段有误,请看补充说明,但现在为了能在TCAX Studio以及1.2.0版本的TCAX上使用,必须在脚本中写上如下代码才能正常运行:
  1. def tcaxPy_Init():   
  2.     pass
复制代码
补充说明:我自己的第2点内容说明有误,楼主给的tcc文件中的< tcaxpy init >一栏填的是< tcaxpy init = false >,因此py特效脚本中不需要写def tcaxPy_Init()。而我自己所用的tcc文件中的< tcaxpy init  >一栏为< tcaxpy init = true >,因此必须写上如上代码才能正常运行。

另外py脚本在TCAX Studio上使用时,应该使用UTF-8 BOM编码(其实这是微软的锅,TCAX Studio是用C#写的,而C#这门编程语言又是微软开发的,微软在软件开发的编码习惯上喜欢给UTF8添加BOM)。如果直接使用UTF-8编码的话,编译以后会把代码中的中文注释全部变成乱码。。。_(:з」∠)_

补上给TCAX Studio使用的模板文件,分了有无def tcaxPy_Init两种情况:
TCAX Karaoke Effect 004 - light spot(有无def tcaxPy_Init).rar (0 Bytes, 下载次数: 2009)
具体关系如下图所示:
def tcaxPy_Init与tcc文件之间的关系.png

各位朋友可以自行对比py文件和tcc文件中的细节差异并用TCAX Studio去运行测试看看。


Rank: 4

沙发
发表于 2021-8-18 10:06:24 |显示全部楼层
本帖最后由 Seekladoom 于 2021-8-19 14:15 编辑

关于tcaxPy_Init的使用
如果写代码时想尽可能缩短代码行且平时不怎么用init模块,可以先在TCC文件中的init那栏写false,这样py脚本中在不需要tcaxPy_Init时就不用写了。

如果TCC文件中的init那栏写的是true,而py脚本又用不到init时,也必须要写这么两行才能跑:
  1. def tcaxPy_Init:
  2.     pass
复制代码
否则TCAX报错时反馈得到的tcaxPy_Main有问题这点很容易误导你去对tcaxPy_Main做出修改。

Rank: 4

板凳
发表于 2021-8-19 11:50:59 |显示全部楼层
本帖最后由 Seekladoom 于 2021-8-19 20:25 编辑

补充:使用TCAX或TCAX Studio时,如果短时间(15秒内对py、tcc文件进行3次以上修改并用TCAX或TCAX Studio进行自动化操作)内频繁修改py和tcc文件且所有修改的语法都正确的情况下,用TCAX或TCAX Studio自动化生成特效字幕时,依然很容易碰到这样的报错(实际上我自己的代码没有任何语法问题,等待15秒就能继续用就是最好的证明):

操作过快引发的报错.png

这种时候只要把TCAX或TCAX Studio关掉重开或者等待15秒左右就能继续跑了,如果脾气暴躁的朋友碰到这个问题,个人推荐直接关掉重开来得更快些,需要高强度测试TCAX的人强烈建议关掉重开,实在不行可以重启电脑

个人猜测可能是TCAX底层代码中的垃圾回收处理机制不够完善且TCAX释放缓存的速度不够快,缓存释放完之前使用者又继续操作了,TCAX来不及处理而产生了上面这样的报错。

如果想看到完整报错,请使用TCAX的命令行操作:
TCAX 完整报错.png


您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-5-3 14:58

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH