- UID
- 2546
- 积分
- 159
- 帖子
- 30
- 主题
- 5
- 论坛币
- 868
- 威望
- 0
- EP值
- 134
- MP值
- 0
- 阅读权限
- 50
- 注册时间
- 2015-5-9
- 在线时间
- 52 小时
- 最后登录
- 2024-10-20
|
本帖最后由 Seekladoom 于 2021-8-19 18:01 编辑
看了半天才发现没有def tcaxPy_Init,看来必须要统一代码习惯啊。。。_(:з」∠)_
补上能在TCAX Studio中直接跑的代码:- from tcaxPy import * #请用这个帖子(http://www.tcax.org/forum.php?mod=viewthread&tid=1939)中的tcaxPy.py文件
- def tcaxPy_Init():
- pass
- def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):
- ASS_BUF = [] # 用于保存ASS特效
- 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'
- dy = _Y - 13
- #文字效果
- 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)#入场效果
- 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)#表现方式
- ass_main(ASS_BUF,SubL(_BT+_SK+_KT,_ET-(_n-_j)*1,1),an(5)+pos(_X,dy) ,_TXT)#表现方式至退场效果之间的衔接
- 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)#退场效果
- #附加效果
- 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)
- for j in range(0,5):
- 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)
- return (ASS_BUF, None)
复制代码
补充两点说明:
1.楼主的脚本代码中的绘图代码需要做如下修改
修改前:绘图代码使用的是半角的双引号(" ")确保TCAX能识别,这里可能是TCAX早期版本的字符串逻辑。- "{\\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上跑,需要将双引号修改成半角的单引号(' ')。- '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上使用,必须在脚本中写上如下代码才能正常运行:补充说明:我自己的第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, 下载次数: 3116)
具体关系如下图所示:
各位朋友可以自行对比py文件和tcc文件中的细节差异并用TCAX Studio去运行测试看看。
|
|