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

标题: [SAI]029_kyoukaisenjounohorizonED [打印本页]

作者: saiyaku    时间: 2011-10-15 23:57:53     标题: [SAI]029_kyoukaisenjounohorizonED

預覽:http://pan.baidu.com/s/1hqqY9CC#dir/path=%2FSaiyakuFX_Preview
腳本東拼西湊 又亂又無恥 隨便看看吧
  1. from tcaxPy import *
  2. from extLibs.XXParticleSystem import *


  3. def tcaxPy_Init():
  4.     global _FontFileName
  5.     global _FaceID
  6.     global _Fs
  7.     global _Height
  8.     global Font
  9.     _FontFileName = GetVal(val_FontFileName)
  10.     _FaceID       = GetVal(val_FaceID)
  11.     _Fs           = GetVal(val_FontSize)
  12.     _Height       = GetVal(val_TextHeight)
  13.     Font = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0)

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

  15.     ASS_BUF = []
  16.     TCS_BUF = []

  17.     t2 = _BT + _SK-5
  18.     t3 = _BT + _SK + _KT


  19.     if IsLineChanged(_i):
  20.         global textpath
  21.         textpath = []
  22.     textpath.append([t2, XXPoint(x = _X, y = _Y, start = t2 / 100, end = t3 / 100)])

  23.     if _i >3:
  24.   

  25.         ass_main(ASS_BUF, SubL(_BT+_SK-5, _BT+_SK+_KT,63), pos(_X, _Y)+color3("0080FF")+fsc(135,135)+t(100,_KT*10,fsc(100,100))+blur(7)+bord(1.5)+alpha4(255)+alpha3(50)+fad(0,50) , _TXT)

  26.         ass_main(ASS_BUF, SubL(_BT+_SK-5, _BT+_SK+_KT,61), pos(_X, _Y)+color3("FFFFFF")+fsc(135,135)+t(100,_KT*10,fsc(100,100))+blur(5)+bord(1.5)+alpha4(255)+alpha3(100)+fad(0,50) , _TXT)

  27.         ass_main(ASS_BUF, SubL(_BT+_SK-5, _BT+_SK+_KT,60), pos(_X, _Y)+color3("FFFFFF")+fsc(135,135)+t(100,_KT*10,fsc(100,100))+blur(5)+bord(0)+alpha4(255)+alpha3(200)+fad(0,50) , _TXT)

  28.         ass_main(ASS_BUF, SubL(_BT, _BT+_SK,30), pos(_X, _Y)+fad(100,50) , _TXT)

  29.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT-5, _ET,30), pos(_X, _Y)+fad(50,100) , _TXT)



  30.         POS = Bezier3( 130,_X+randint(-250,250),_Y +randint(-100,100) ,_X, _Y,_X+randint(-200,100), _Y+randint(-150,150),_X+randint(-100,200), _Y+randint(-150,150))

  31.         for i in range(130):

  32.             ass_main(ASS_BUF, SubL(_BT+_SK-135+i*1, _BT+_SK-135+25+(i+1)*1,150-i), fad(50,300)+an(5)+blur(1.5)+bord(0)+shad(0)+color1("80FFFF") +t(color1("0909FF")+fsc(0,0))+ pos(POS[i][0], POS[i][1])+fs(10), "●")


  33.     else:
  34.    
  35.         ass_main(ASS_BUF, SubL(_BT+_SK-5, _BT+_SK+_KT,63), pos(_X, _Y)+color3("FF3E33")+fsc(135,135)+t(100,_KT*10,fsc(100,100))+blur(7)+bord(1.5)+alpha4(255)+alpha3(50)+fad(0,50) , _TXT)

  36.         ass_main(ASS_BUF, SubL(_BT+_SK-5, _BT+_SK+_KT,61), pos(_X, _Y)+color3("FFFFFF")+fsc(135,135)+t(100,_KT*10,fsc(100,100))+blur(5)+bord(1.5)+alpha4(255)+alpha3(100)+fad(0,50) , _TXT)

  37.         ass_main(ASS_BUF, SubL(_BT+_SK-5, _BT+_SK+_KT,60), pos(_X, _Y)+color3("FFFFFF")+fsc(135,135)+t(100,_KT*10,fsc(100,100))+blur(5)+bord(0)+alpha4(255)+alpha3(200)+fad(0,50) , _TXT)

  38.         ass_main(ASS_BUF, SubL(_BT, _BT+_SK,30), pos(_X, _Y)+fad(100,50) , _TXT)

  39.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT-5, _ET,30), pos(_X, _Y)+fad(50,100) , _TXT)   

  40.     n = 15
  41.     if  _j==_n-1 and _i < 4:
  42.         num = len(textpath) - 1
  43.         for i in range(num):
  44.             if textpath[i][1].end < textpath[i + 1][1].start:
  45.                 textpath[i][1].end = textpath[i + 1][1].start
  46.             textpath[num][1].end = _ET
  47.         emitterList = []
  48.         for pair in textpath:
  49.             emitterList.append(XXPoint(start = pair[1].start,
  50.                                        end = pair[1].end,
  51.                                        x = pair[1].x + RandomDouble(-20, 20),
  52.                                        y = pair[1].y + RandomDouble(-20, 20)))
  53.         forceCurve = CompositeCurve(minTime = _BT / 100, maxTime = _ET / 100 + 10)
  54.         lastag = 0
  55.         time = forceCurve.minTime
  56.         maxTime = forceCurve.maxTime
  57.         while time <= maxTime:
  58.             ag = RandomDouble(0, math.pi * 2)
  59.             while abs(ag - lastag) < math.pi * 0.5 or abs(ag - lastag) > math.pi * 1.5:
  60.                 ag = RandomDouble(0, math.pi * 2)
  61.             lastag = ag
  62.             x = 1500 * math.cos(ag)
  63.             y = 800 * math.sin(ag)
  64.             forceCurve.AddCurve(time, time + 0.7, Line(x0 = x, y0 = y, x1 = 0, y1 = 0, acc = 0.7))
  65.             time += 0.7

  66.         emitter = XXEmitter(n, emitterList)
  67.         forceField = XXForceField(forceCurve)
  68.         gravityPosition = XXGravityPosition()
  69.         xxps = XXParticleSystem(emitter = emitter,
  70.                                 forceField = forceField,
  71.                                 startTime = _BT / 100,
  72.                                 endTime = _ET / 100,
  73.                                 interpolationPrecision = 0.01,
  74.                                 resistance = 0.04,
  75.                                 repulsion = -3600,
  76.                                 gravity = 0,
  77.                                 gravityPosition = gravityPosition)
  78.         result = xxps.RenderT()
  79.         for pKey in result:
  80.             s = RandPolygon(12/8, 12/8, 4)
  81.             ptstr = "{\\p1}m 0 0 l 1 0 1 1 0 1"
  82.             ptcol = 'FF3E33'
  83.             pValue = result[pKey]
  84.             ass_main(ASS_BUF, SubL(100 * pKey.born, 100 * (pKey.born + pKey.life), 25, Pix_Style), '', \
  85.                             '{' + pos(-100, -100) + pValue[1] + '}' + ptstr + "\\N{\\r" + \
  86.                             pValue[0] + '}' + ptstr + '{\\r' + alpha1(34) + alpha3(119) + blur(2) + bord(1.5) + color1("FFFFFF")+color3(ptcol) + '}' + s)


  87.     if _i == 7 and _TXT[0]=="を":
  88.         sb1=""
  89.         for i in range (0,30):
  90.             a = -0.15+0.01*i
  91.             l = (pow((abs(a)/0.15),0.3)+0.5)*120*8
  92.             sb1= sb1 + "m 0 0 l"+" "+str(int(l*cos(a)))+" "+str(int(l*sin(a)))+" 0 1 c "
  93.         sb2 = ""
  94.         for j in range (0,30):
  95.             a = -0.15+0.01*j
  96.             l = (pow((abs(a)/0.15),0.3)+0.5)*60*8
  97.             sb2 = sb2 +"m 0 0 l"+" "+str(int(l*cos(a)))+" "+str(int(l*sin(a)))+" 0 1 c "

  98.         tStep = 2
  99.         for ptt0 in range(_BT+_SK - 10,_BT+_SK+_KT,tStep):

  100.             startag = randint(0, 359)
  101.             endag = startag + randint(0,9)/10 * randint(50, 100)
  102.             ass_main(ASS_BUF, SubL(ptt0,ptt0 + 100,19), pos(_X, _Y)+ an(7)+fad(300, 300)+fsc(70,70)+alpha1(0)+be(1)+shad(0)+bord(0)+color1("ACFFFF")+ frz(startag) + t1(0,1000,frz(endag)),"{\p4}"+sb1)
  103.             ass_main(ASS_BUF, SubL(ptt0,ptt0 + 100,20), pos(_X, _Y)+ an(7)+fad(300, 300)+fsc(70,70)+alpha1(17)+be(1)+shad(0)+bord(0)+color1("FFFFFF")+ frz(startag) + t1(0,1000,frz(endag)),"{\p4}"+sb2)


  104.     return (ASS_BUF, TCS_BUF)   

  105. def tcaxPy_Fin():
  106.     FinFont(Font)
复制代码

作者: milkyjing    时间: 2011-10-16 08:56:04

补上预览: http://www.tcax.org/forum.php?mod=viewthread&tid=44

文件名: [SAI]029_kyoukaisenjounohorizonED.mp4

p.s. [SAI]028_nekogamiIM.mp4  与  [SAI]027_nekogamiED.mp4   也是最近才更新的




欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://tcax.org/) Powered by Discuz! X2