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

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

[完整特效] [youkaze]013_Accel·world_OP2 [复制链接]

Moderator

youkaze

Rank: 5Rank: 5

跳转到指定楼层
楼主
发表于 2012-12-5 17:01:06 |只看该作者 |倒序浏览
  1. from tcaxPy import *
  2. from pixLibs.ImageStone.pixStone import *


  3. def tcaxPy_Init():
  4.     global _FD
  5.     global _Fs
  6.     global _TextLength
  7.     global Font
  8.     global FontOut
  9.     global PIX_tex
  10.     global PIX_tex2
  11.     _FD = 1000 / GetVal(val_FXFPS)
  12.     _Fs = GetVal(val_FontSize)
  13.     _TextLength = GetVal(val_TextLength)
  14.     _FontFileName = GetVal(val_FontFileName)
  15.     _FaceID       = GetVal(val_FaceID)
  16.     Font    = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), MakeRGB(0, 0, 0), 0, 0)
  17.     FontOut = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), MakeRGB(0, 0, 0), 3, 1)
  18.     PIX_tex = ImagePix(abspath('ime06.png'), _Fs, 0)
  19.     PIX_tex2 = ImagePix(abspath('out01.png'))


  20. def tcaxPy_Fin():
  21.     FinFont(Font)
  22.     FinFont(FontOut)



  23. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _x, _y, _a, _txt):

  24.     ASS_BUF  = []        # 保存ASS特效
  25.     TCAS_BUF = []        # 保存TCAS特效

  26.     ##### 主要特效编写操作 #####
  27.    
  28.         
  29.     PIX_t = TextPix(Font, _txt)             # 获取文字
  30.    
  31.     dx = _x - int(_a / 2 + 0.5) + PIX_t[0][0]
  32.     dy = _y - int(_Fs / 2 + 0.5) + PIX_t[0][1]
  33.     dur = _KT * 10

  34.     PIX_t = PixTexture(PIX_t, PIX_tex)      # 增加纹理
  35.     PIX_out = TextPix(FontOut, _txt)        # 获取边框
  36.     PIX_out = PixTexture(PIX_out, PIX_tex2)
  37.     PIX_out = PixColorMul(PIX_out, 1, 1, 1, 1)    # 增加透明度
  38.     PIX_out = PixBlur(PIX_out, 3)           # 增加模糊
  39.     PIX_ori = CombinePixs(PIX_out, PIX_t)   # 混合文字主体和边框 (边框作底)
  40.     points = PixPoints(PIX_ori)
  41.     pt_num = len(points)
  42.    
  43.     for i in range(pt_num):
  44.         w = points[i][0]
  45.         h = points[i][1]
  46.         idx  = 4 * (h * PIX_ori[1][0] + w)                # 脚标
  47.         PixR = PIX_ori[2][idx + 0]                        # 当前像素的红色分量
  48.         PixG = PIX_ori[2][idx + 1]                        # 当前像素的绿色分量
  49.         PixB = PIX_ori[2][idx + 2]                        # 当前像素的蓝色分量
  50.         PixA = PIX_ori[2][idx + 3]                        # 当前像素的透明度
  51.         
  52.         x = dx + points[i][0]
  53.         y = dy + points[i][1]
  54.         
  55.         C = randint(-20, 20)

  56.         EFT1 = shad(0)+bord(0)+pos(x,y)+alpha(255-PixA)+color1(FmtRGB(PixR,PixG,PixB))
  57.         ass_main(ASS_BUF, SubL(_BT+C,_ET+C,1,Pix_Style), EFT1, PixPt())
  58.    
  59.    
  60.     if _i > -1 and _i < 4:
  61.         for i in range(_BT+_SK-20,_BT+_SK+_KT,30):
  62.             for k in range(3):
  63.                 ass_main(ASS_BUF, SubL(i, i+150,1), blur(0.5)+color1('FFFFFF')+color3('FFFFFF')+bord(0.5)+fad(30,300)+t(frx(180+randint(0,360))+fry(150+randint(0,560)))+mov(_x+randint(30,60),_y-randint(20,50),_x-randint(30,60),_y+randint(20,50)), "{\p3}m -1 16 l 2 20 l 2 13 l 11 3 l 16 -2 b 26 -12 32 -8 23 21 l 18 18 l 21 23 b 17 28 11 35 5 39 l 0 36 l 3 40 b 0 44 -4 48 -8 50 l -13 44 l -11 50 l -14 53 l -17 50 l -17 53 l -20 50 l -24 53 l -24 51 b -30 54 -35 56 -41 56 l -41 52 b -36 52 -29 49 -25 46 l -27 43 l -23 43 l -24 39 l -21 42 l -21 34 l -17 30 l -16 37 l -15 28 ")
  64.    
  65.     dx = _x - int(_a / 2 + 0.5)
  66.     dy = _y - int(_Fs / 2 + 0.5)
  67.     if _i > 3:
  68.         tshu = int(_KT/20)
  69.         for i in range(tshu):
  70.             ts = _BT + _SK + i*20
  71.             te = ts
  72.             for h in range(70):
  73.                 MOV = mov(dx+5+randint(0,_a),dy+5+randint(0,_Fs),_x+randint(-100,100),_y+randint(-100,100))
  74.                 EFT1 = alpha3(150)+bord(2)+blur(2)+frx(0)+fry(0)+t(fscx(1)+fscy(1)+frx(360)+fry(360))+fad(0, 200)
  75.                 EFT = MOV + EFT1
  76.                 ass_main(ASS_BUF, SubL(ts+h,te+h+80, 1), EFT, "{\p4}m -5 -15 l -15 0 l -6 7 l 9 12 l 5 4 l 13 -13 ")
  77.                
  78.     for b in range (_BT+_SK,_BT+_SK+_KT,15):
  79.         ass_main(ASS_BUF, SubL(b,b+10,3), bord(0)+blur(6)+alpha1(0)+pos(_x+5,_y+4)+fs(40)+color1('FFFFFF'), _txt)
  80.         ass_main(ASS_BUF, SubL(b,b+10,3), bord(0)+blur(4)+alpha1(0)+pos(_x+5,_y+4)+fs(35)+color1('FFFFFF'), _txt)
  81.     return (ASS_BUF, TCAS_BUF)
复制代码
纹理的例子
1

查看全部评分

Moderator

疯子

Rank: 5Rank: 5

沙发
发表于 2012-12-5 18:23:00 |只看该作者
我还以为你有内置要丢呢

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

板凳
发表于 2012-12-5 20:56:38 |只看该作者
发的顺序很奇怪啊

Rank: 4

地板
发表于 2022-2-14 00:21:10 |只看该作者
本帖最后由 Seekladoom 于 2022-2-14 00:21 编辑

教程贴:
ASS像素纹理 带边框的
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-25 13:37

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH