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

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

[完整特效] [SAI]024_nurarihyonmako2ED [复制链接]

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2011-10-22 18:48:30 |只看该作者 |倒序浏览
預覽:http://pan.baidu.com/s/1hqqY9CC#dir/path=%2FSaiyakuFX_Preview
  1. from tcaxPy import *



  2. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):

  3.     ASS_BUF = []
  4.     TCS_BUF = []

  5.     C = ["2509FF","B86700","BE43B7","6DB031","9F67EA","00697C","0095F4"]
  6.     BLUR = blur(1.8)
  7.     xt = 15
  8.     if _j == 0:
  9.         global COLOR
  10.         global FX
  11.         global TXT
  12.         global KT
  13.         COLOR =[]
  14.         FX = []
  15.         TXT =[]
  16.         KT =[]

  17.         for i in range(_n):
  18.             COLOR.append(C[randint(0,6)])
  19.             FX.append(randint(0,7))
  20.             TXT.append(GetData()[val_Text][_i][i])

  21.         for j in range(1,_n):
  22.             if TXT[j][0] == " ":
  23.                 COLOR[j] = COLOR[j-1]
  24.             elif COLOR[j]==COLOR[j-1]:
  25.                 temp1 = ["2509FF","B86700","BE43B7","6DB031","9F67EA","00697C","0095F4"]
  26.                 temp1.remove(COLOR[j])
  27.                 COLOR[j]=temp1[randint(0,5)]
  28.             if TXT[j][0] == " ":
  29.                 FX[j]=FX[j-1]
  30.             elif FX[j]==FX[j-1]:
  31.                 temp2 = [0,1,2,3,4,5,6,7]
  32.                 temp2.remove(FX[j])
  33.                 FX[j]=temp2[randint(0,6)]

  34.     KT.append(_KT)
  35.     if _i == 0:
  36.         global POS
  37.     if _i == 0 and _TXT[0]=="W":
  38.         FX[_j] = 9
  39.     if _i == 0 and _TXT[0]=="K":
  40.         FX[_j] = 9
  41.     if _i == 1 and _TXT[0]=="T":
  42.         FX[_j] = 9
  43.     if _i == 1 and _TXT[0]=="U":
  44.         FX[_j] = 9
  45.     if _i == 2 and _TXT[0]=="W":
  46.         FX[_j] = 9
  47.     if _i == 4 and _TXT[0]=="Y":
  48.         FX[_j] = 9
  49.     if _i == 4 and _TXT[0]=="S":
  50.         FX[_j] = 9
  51.     if _i == 5 and _TXT[0]=="L":
  52.         FX[_j] = 9
  53.     if _i == 5 and _TXT[0]=="U":
  54.         FX[_j] = 9
  55.     if _i == 6 and _TXT[0]=="S":
  56.         FX[_j] = 9
  57.     if _i == 6 and _TXT[0]=="T":
  58.         FX[_j] = 9

  59.     if _i ==0 and _TXT[0] == "い" :
  60.         FX[_j] = 8

  61.     if _i ==1 and _TXT[0] == "瞳":
  62.         FX[_j] = 10

  63.     if _i ==3 and _TXT[0] == "D":
  64.         FX[_j] = 8

  65.     if _i ==4 and _TXT[0] == "た":
  66.         FX[_j] = 8

  67.     if _i ==5 and _TXT[0] == "は" :
  68.         FX[_j] = 8

  69.     if _i == 0 or _i == 1 or _i == 3 or _i == 4 or _i == 5:
  70.         T = KT[-1]
  71.     else:
  72.         T = -_n*3

  73.     if _i ==0 and _j == 0 :

  74.         POS = [_X,_Y]
  75.     if _i ==1 and _j == 0 :
  76.         POS = [_X,_Y]
  77.     if _i ==3 and _j == 0 :
  78.         POS = [_X,_Y]
  79.     if _i ==4 and _j == 0 :
  80.         POS = [_X,_Y]
  81.     if _i ==5 and _j == 0 :
  82.         POS = [_X,_Y]

  83.     if _i<4:
  84.         COLOR[_j] = "2509FF"
  85.     elif _i>3 and _i<8:
  86.         COLOR[_j] = "BE43B7"
  87.     elif _i>7 and _i<11:
  88.         COLOR[_j] = "6DB031"
  89.     elif _i == 17:
  90.         if _TXT[0]=="O":
  91.             COLOR[_j] = "0095F4"
  92.         elif _TXT[0]=="S":
  93.             COLOR[_j] = "9F67EA"

  94.     if FX[_j] == 0:
  95.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+15,100), fad(50,0)+ mov(_X-10,_Y-10,_X, _Y) + BLUR + bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)



  96.     elif FX[_j] == 1:   
  97.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+15,100), fad(50,0)+ mov(_X+10,_Y+10,_X, _Y) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)


  98.     elif FX[_j] == 2:
  99.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+15,100), fad(50,0)+ mov(_X-10,_Y+10,_X, _Y) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)

  100.     elif FX[_j] == 3:
  101.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+15,100), fad(50,0)+ mov(_X+10,_Y-10,_X, _Y) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)
  102.     elif FX[_j] == 4:
  103.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+15,100), fad(50,0)+pos(_X,_Y)+frx(90)+ t(frx(0)) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)
  104.     elif FX[_j] == 5:
  105.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+15,100), fad(50,0)+pos(_X,_Y)+fry(90)+ t(fry(0)) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)
  106.     elif FX[_j] == 6:
  107.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+15,100), fad(50,0)+pos(_X,_Y)+fsc(0,0)+ t(fsc(100,100)) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)

  108.     elif FX[_j] == 7:
  109.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+15,100), fad(250,0)+pos(_X,_Y) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)
  110.    
  111.     elif FX[_j] == 8:
  112.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK-8,100), fad(100,0)+pos(_X,_Y) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)
  113.         for  i in range(0,40,2):
  114.             ass_main(ASS_BUF, SubL(_BT+_SK-8+i, _BT+_SK+_KT+i,100-i), fad(0,300)+alpha(i*3)+ mov(_X,_Y,POS[0], POS[1]) +blur(1)+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)

  115.     elif FX[_j] == 9:
  116.         xt = 25
  117.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+40,1),pos(_X-randint(8,20),_Y-randint(8,20))+an(7)+bord(5)+alpha1(255)+color3(C[randint(0,6)])+fscx(11)+fscy(11)+t1(0,700,bord(2)+fscx(350)+fscy(350)+fad(0,200)), '{\p1}m 10 10 s 10 -10 -10 -10 -10 10 c{\p0}')
  118.         ass_main(ASS_BUF, SubL(_BT+_SK-15+randint(0,5),_BT+_SK+40,1),pos(_X+randint(-10,10),_Y+randint(-10,10))+an(7)+bord(5)+alpha1(255)+color3(C[randint(0,6)])+fscx(11)+fscy(11)+t1(0,700,bord(2)+fscx(350)+fscy(350)+fad(0,300)), '{\p1}m 10 10 s 10 -10 -10 -10 -10 10 c{\p0}')
  119.         ass_main(ASS_BUF, SubL(_BT+_SK-15+randint(3,5),_BT+_SK+40,1),pos(_X+randint(8,20),_Y+randint(8,20))+an(7)+bord(5)+alpha1(255)+color3(C[randint(0,6)])+fscx(11)+fscy(11)+t1(0,700,bord(2)+fscx(350)+fscy(350)+fad(0,200)), '{\p1}m 10 10 s 10 -10 -10 -10 -10 10 c{\p0}')
  120.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+xt,100), fad(50,0)+pos(_X,_Y)+fsc(0,0)+ t1(0,150,fsc(130,130))+t1(250,500,fsc(100,100)) +blur(1)+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)

  121.     elif FX[_j] == 10:
  122.         ass_main(ASS_BUF, SubL(_BT+_SK-15, _BT+_SK+50,100), fad(50,0)+pos(_X,_Y)+fry(90)+ t1(0,300,fry(0)) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)
  123.         for  i in range(0,40,2):
  124.             ass_main(ASS_BUF, SubL(_BT+_SK+50+i, _BT+_SK+_KT+i,100-i), fad(0,300)+alpha(i*3)+ mov(_X,_Y,POS[0], POS[1]) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)
  125.             

  126.     ass_main(ASS_BUF, SubL(_BT+_SK+xt,_ET-_j*(T)/_n ,20), fad(0,100)+ pos(_X, _Y) +BLUR+ bord(1.5)+color1("FFFFFF") +color3(COLOR[_j]), _TXT)
  127.     if _i>10:
  128.         for i in range(int(_BT+_SK-30),int(_ET-_j*(T)/_n),30):
  129.             for j in range (int(_A/30)):
  130.                 X = [_X+randint(int(-_A/2),int(_A/2)),_Y+randint(-20,20)]
  131.                 R = RandCir2(_X, _Y, 25, 27)
  132.                 D = sqrt((X[0]-R[0])**2+(X[1]-R[1])**2)
  133.                 CO = C[randint(0,6)]
  134.                 F =randint(60,110)
  135.                 FS = fsc(F,F)
  136.                 angel =randint(-360,360)
  137.                 for k in range(0,130,50):
  138.                     ass_main(ASS_BUF, SubL( i+k, i+k + 50,1),fad(120,120)+ mov(X[0]+(X[0]-R[0])/130*k,X[1]+(X[1]-R[1])/130*k,X[0]+(X[0]-R[0])/130*(k+50),X[1]+(X[1]-R[1])/130*(k+50))+color1('FFFFFF')+color3(CO)+alpha(20)+bord(1.2)+blur(2.3)+frz(angel)+FS, '{\\p3}m 20 0  b  20 10  30 20  40 20  b  30 20  20 30  20 40  b  20 30  10 20  0 20  b  10 20  20 10  20 0')   


  139.     return (ASS_BUF, TCS_BUF)
复制代码
1

查看全部评分

Rank: 5Rank: 5

沙发
发表于 2012-3-4 14:00:18 |只看该作者


这是怎么回事??

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

板凳
发表于 2012-3-4 16:33:44 |只看该作者
忘却の小伊 发表于 2012-3-4 14:00
这是怎么回事??

裏面單獨判斷的東西比較多 不是原K 估計跑不起來

Rank: 4

地板
发表于 2022-1-13 00:35:36 |只看该作者
本帖最后由 Seekladoom 于 2022-1-13 00:43 编辑

看了半天终于看明白怎么回事了,怪不得写了这么多行。。。

目前的TCAX本身只支持syl、word、normal三种文本模式。当TCAX碰到歌词中有英文单词且需要将每个单词拆成一个个单独的字母并添加绘图代码或者其它效果,且同时还要确保每个字母的时间都跟其所在的单词对应的K值时间一样。


这个时候TCAX本身的syl模式的问题(syl只能做到根据K值均分时间给英文单词的每个字母,并不能把整个单词的K值赋给组成这个单词的每个字母)就暴露出来了。。。_(:з」∠)_
为了解决这个问题,才有了sai大写的这段代码:
  1.     KT.append(_KT)
  2.     if _i == 0:
  3.         global POS
  4.     if _i == 0 and _TXT[0]=="W":
  5.         FX[_j] = 9
  6.     if _i == 0 and _TXT[0]=="K":
  7.         FX[_j] = 9
  8.     if _i == 1 and _TXT[0]=="T":
  9.         FX[_j] = 9
  10.     if _i == 1 and _TXT[0]=="U":
  11.         FX[_j] = 9
  12.     if _i == 2 and _TXT[0]=="W":
  13.         FX[_j] = 9
  14.     if _i == 4 and _TXT[0]=="Y":
  15.         FX[_j] = 9
  16.     if _i == 4 and _TXT[0]=="S":
  17.         FX[_j] = 9
  18.     if _i == 5 and _TXT[0]=="L":
  19.         FX[_j] = 9
  20.     if _i == 5 and _TXT[0]=="U":
  21.         FX[_j] = 9
  22.     if _i == 6 and _TXT[0]=="S":
  23.         FX[_j] = 9
  24.     if _i == 6 and _TXT[0]=="T":
  25.         FX[_j] = 9
复制代码

而在Aegisub上的解决方案是,通过char修饰语实现这个效果,TCAX刚好缺乏这块的相应功能模块。。。_(:з」∠)_

Rank: 4

5#
发表于 2022-1-13 00:48:36 |只看该作者
本帖最后由 Seekladoom 于 2022-1-13 00:54 编辑

在线预览:
[SAI]024_滑头鬼之孙2ED

【第1段】
彩色涟漪+随机移动+文字旋转+向左移动的文字残影

【第2段(Some Time这局开始)】
彩色涟漪+随机移动+文字旋转

【第3段】
随机移动+文字旋转

【第4段】
随机移动+文字旋转+彩色星星

Rank: 4

6#
发表于 2022-1-13 23:11:51 |只看该作者
滑头鬼之孙 第2季 ED特效 部分简化拆分.rar (16.11 KB, 下载次数: 1350)
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-4-26 11:18

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH