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

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

[完整特效] [SAI]035_kyoukaisenjounohorizonIIED1 [复制链接]

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2012-8-26 00:00:10 |只看该作者 |倒序浏览
預覽:http://pan.baidu.com/s/1hqqY9CC#dir/path=%2FSaiyakuFX_Preview
  1. from tcaxPy import *
  2. from util.tcCurve import *
  3. from extLibs.XXParticleSystem import *

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

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

  16.     ASS_BUF = []
  17.     TCS_BUF = []


  18.     t2 = _BT + _SK
  19.     t3 = _BT + _SK + _KT

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



  24.     dx = _X - int(_A / 2 + 0.5)   
  25.     dy = _Y - int(_Fs / 2 + 0.5)  


  26.     if _i > 5:


  27.         ass_main(ASS_BUF, SubL(t2-5,_BT+_SK+_KT,200), pos(_X , _Y )  + alpha1(255) + alpha3(50) + color3('FFFFFF')+shad(1.5) + bord(2) + blur(2) +t(0,10,fsc(135,135)) +t(120,_KT*10,fsc(100,100)),_TXT)
  28.     else :

  29.         ass_main(ASS_BUF, SubL(t2-5,_BT+_SK+_KT,200), pos(_X , _Y )  + alpha1(255) + alpha3(50) + color4('FFFFFF') + color3('000000')+shad(1.5)+ bord(2) + blur(2) +t(0,10,fsc(135,135)) +t(120,_KT*10,fsc(100,100)),_TXT)


  30.     ass_main(ASS_BUF, SubL(_BT+5*_j, t2-3,180), pos(_X, _Y)+fad(100,20) , _TXT)
  31.     ass_main(ASS_BUF, SubL(_BT+_SK+_KT-3,_ET+5*_j,180), pos(_X, _Y)+fad(20,100) , _TXT)



  32.     if _i <= 3:
  33.         for q in range(3):
  34.             posX = _X+randint(-_A,-_A/2)
  35.             nposX =_X+randint(-_A/2,_A)
  36.             PP  = [(posX, _Y),(posX, _Y),(posX, _Y+0.000001),(_X+randint(-_A*1.5,_A*1.5), _Y+randint(-50,50)), (_X+randint(-_A*1.5,_A*1.5), _Y+randint(-50,50)),(nposX ,_Y),(nposX ,_Y),(nposX ,_Y+0.000001)]

  37.             ucb = UCBSpline(PP)
  38.             L = ucb.length()      

  39.             STEP_N = _KT  

  40.             step_size = 1 / STEP_N

  41.             POS = []

  42.             for u in range(STEP_N):

  43.                 POS.append(ucb(u * step_size))

  44.             if _i == 2 or _i == 3:
  45.                 ptcol = '532BFF'
  46.             elif _i > 5:
  47.                 ptcol = '00A8FF'
  48.             else:
  49.                 ptcol = 'EC3667'

  50.             for w in range(_KT):
  51.                 s = RandPolygon(12/8, 12/8, 4)
  52.                 ass_main(ASS_BUF, SubL(_BT+_SK-20+w*1, _BT+_SK-20+70+(w+1)*1,151), an(5)+bord(0)+t(fry(720))+color3(ptcol)+bord(1.8)+shad(0)+blur(2)+ mov(POS[w][0], POS[w][1],POS[w][0]+randint(-10,10), POS[w][1]+randint(-10,10)) +fad(50,200), s )

  53.     n = 90
  54.     if  _j==_n-1 and _i >3:
  55.         num = len(textpath) - 1
  56.         for i in range(num):
  57.             if textpath[i][1].end < textpath[i + 1][1].start:
  58.                 textpath[i][1].end = textpath[i + 1][1].start
  59.             textpath[num][1].end = _ET
  60.         emitterList = []
  61.         for pair in textpath:
  62.             emitterList.append(XXPoint(start = pair[1].start,
  63.                                        end = pair[1].end,
  64.                                        x = pair[1].x + RandomDouble(-20, 20),
  65.                                        y = pair[1].y + RandomDouble(-20, 20)))
  66.         forceCurve = CompositeCurve(minTime = _BT / 100, maxTime = _ET / 100 + 10)
  67.         lastag = 0
  68.         time = forceCurve.minTime
  69.         maxTime = forceCurve.maxTime
  70.         while time <= maxTime:
  71.             ag = RandomDouble(0, math.pi * 2)
  72.             while abs(ag - lastag) < math.pi * 0.5 or abs(ag - lastag) > math.pi * 1.5:
  73.                 ag = RandomDouble(0, math.pi * 2)
  74.             lastag = ag
  75.             x = 1500 * math.cos(ag)
  76.             y = 800 * math.sin(ag)
  77.             forceCurve.AddCurve(time, time + 0.7, Line(x0 = x, y0 = y, x1 = 0, y1 = 0, acc = 0.7))
  78.             time += 0.7

  79.         emitter = XXEmitter(n, emitterList)
  80.         forceField = XXForceField(forceCurve)
  81.         gravityPosition = XXGravityPosition()
  82.         xxps = XXParticleSystem(emitter = emitter,
  83.                                 forceField = forceField,
  84.                                 startTime = _BT / 100,
  85.                                 endTime = _ET / 100,
  86.                                 interpolationPrecision = 0.03,
  87.                                 resistance = 0.04,
  88.                                 repulsion = -3600,
  89.                                 gravity = 0,
  90.                                 gravityPosition = gravityPosition)
  91.         result = xxps.RenderT()
  92.         for pKey in result:
  93.             s = RandPolygon(12/8, 12/8, 4)
  94.             ptstr = "{\\p1}m 0 0 l 1 0 1 1 0 1"
  95.             if _i == 2 or _i == 3:
  96.                 ptcol = '532BFF'
  97.             elif _i > 5:
  98.                 ptcol = '00A8FF'
  99.             else:
  100.                 ptcol = 'EC3667'

  101.             pValue = result[pKey]
  102.             ass_main(ASS_BUF, SubL(100 * pKey.born, 100 * (pKey.born + pKey.life), 25, Pix_Style), '', \
  103.                             '{' + pos(-100, -100) + pValue[1] + '}' + ptstr + "\\N{\\r" + \
  104.                             pValue[0] + '}' + ptstr + '{\\r' + alpha1(34) + alpha3(119) + blur(2) + bord(1.8) + color1("FFFFFF")+color3(ptcol) + '}' + s)


  105.     return (ASS_BUF, TCS_BUF)   


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

查看全部评分

Moderator

疯子

Rank: 5Rank: 5

沙发
发表于 2012-8-26 00:02:27 |只看该作者
速度真快啊

Rank: 5Rank: 5

板凳
发表于 2012-8-26 00:24:37 |只看该作者
曲线被应用到极致了
SAI大5连发辛苦

Rank: 4

地板
发表于 2012-8-26 10:37:11 |只看该作者
顶起

Rank: 4

5#
发表于 2012-8-26 10:55:41 |只看该作者
顶起 量产了

Rank: 1

6#
发表于 2012-8-27 14:36:42 |只看该作者
不错哦 支持下!

Rank: 4

7#
发表于 2012-8-29 19:38:16 |只看该作者
请问一下这个是怎么回事啊,是不是我缺少什么东西?

未命名.jpg (69.74 KB, 下载次数: 1802)

未命名.jpg

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

8#
发表于 2012-8-29 20:52:20 |只看该作者
指原莉乃 发表于 2012-8-29 19:38
请问一下这个是怎么回事啊,是不是我缺少什么东西?

TCC设置错误吧.. user func那个要用false...

Rank: 4

9#
发表于 2012-8-30 22:10:57 |只看该作者
  1. This is a default TCC file.


  2. # tcc file version

  3. < tcc file version = 1.0 >


  4. # mode configuration

  5. < inherit ass header = false >
  6. < k mode = syl >
  7. < text layout = horizontal >
  8. < tcaxpy init = true >
  9. < tcaxpy user = false >
  10. < tcaxpy fin = true >


  11. # py settings

  12. < py file = 121123.py > < beg line = 1 > < end line = 0 >


  13. # main settings

  14. < k-timed ass file = "test_k.ass" >
  15. < font file = 萝莉体.ttf >        < font face id = 1 >        < font size = 40 >
  16. < fx width = 480 >                < fx height = 720 >        < fx fps = 30 >
  17. < alignment = 2 >
  18. < x offset = 0 >                < y offset = 20 >
  19. < spacing = 0 >                        < space scale = 1.0 >


  20. # style settings

  21. < font face name = "" >
  22. < bord = 1 >                        < shad = 0 >
  23. < primary color = FF0000 >        < secondary color = FF0000 >        < outline color = 0000FF >        < back color = 000000 >
  24. < primary alpha = 0 >                < secondary alpha = 255 >        < outline alpha = 0 >                < back alpha = 255 >


  25. # additional settings

  26. < blur = 0.0 >
复制代码

未命名.jpg (90.93 KB, 下载次数: 1768)

未命名.jpg

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

10#
发表于 2012-8-31 19:48:02 |只看该作者
指原莉乃 发表于 2012-8-30 22:10

具体问题等saiyaku来解决吧

多半和某些特殊k值有关...

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

11#
发表于 2012-8-31 22:08:47 |只看该作者
指原莉乃 发表于 2012-8-30 22:10

估計是字體問題吧 間距非整數
_A,_A/2 什麽的 取一下 int 看看

Rank: 4

12#
发表于 2012-9-1 21:26:21 |只看该作者
saiyaku 发表于 2012-8-31 22:08
估計是字體問題吧 間距非整數
_A,_A/2 什麽的 取一下 int 看看

改了个字体,问题解决了,多谢帮助。
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-22 01:22

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH