- UID
 - 2
 - 积分
 - 8682
 - 帖子
 - 2905
 - 主题
 - 199
 - 论坛币
 - 13064 
 - 威望
 - 16 
 - EP值
 - 2349 
 - MP值
 - 15 
 - 阅读权限
 - 200
 - 注册时间
 - 2011-8-3
 - 在线时间
 - 2597 小时
 - 最后登录
 - 2024-8-28
  
 
 
 
    
 | 
说明: 以下脚本需要用到small_code中的tu2lis函数(作用是将图形转换成点). 
关于small_code模块, 我已经获得了small大的授权, 以后将以拓展模块的形式发布TCAX兼容(二次修改)版. 
 
关于此脚本我就不做太多解释了, 如有问题, 请直接在此跟帖.- from tcaxPy import *
 
 - from extLibs.small_code import *
 
  
- def tcaxPy_Init():
 
 -     global _FD          # 一帧的时间
 
 -     global _Fs                # 字体大小
 
 -     global FontBord        # 首要字体
 
 -     _FD = 1000 / GetVal(val_FXFPS)
 
 -     _Fs = GetVal(val_FontSize)
 
 -     FontBord = InitFont(GetVal(val_FontFileName), GetVal(val_FaceID), _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), MakeRGB(0, 0, 0), 2, 0)
 
  
- def tcaxPy_Fin():
 
 -     FinFont(FontBord)
 
  
- def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
 
  
-     ASS_BUF  = []        # 保存ASS特效
 
 -     TCAS_BUF = []        # 保存TCAS特效
 
  
-     ##### 主要特效编写操作 #####
 
  
-     dx = _x - int(_a / 2 + 0.5)                # 一个固定操作, 将an5的坐标转换为an7
 
 -     dy = _y - int(_Fs / 2 + 0.5)        # ASS特效默认采用an5坐标, TCAS特效则采用an7坐标
 
  
-     ts_0 = _start - 40 + 2 * _FD / 10 * _j
 
 -     ts = ts_0 + 40
 
 -     te = _end - 2 * _FD / 10 * (_n - _j - 1)
 
 -     te_0 = te + 40
 
  
-     # 入场效果
 
  
-     ass_main(ASS_BUF, SubL(Start = ts_0, End = ts_0 + 40, Layer = 1), mov(_x + 50, _y - 20, _x, _y) + fad(300, 0) + bord(3) + blur(2), _txt)
 
 -     ass_main(ASS_BUF, SubL(Start = ts_0, End = ts_0 + 40, Layer = 2), mov(_x + 50, _y - 20, _x, _y) + fad(300, 0) + bord(1) + color3('000000'), _txt)
 
 -     ass_main(ASS_BUF, SubL(Start = ts_0, End = ts_0 + 40, Layer = 3), mov(_x + 50, _y - 20, _x, _y) + fad(300, 0) + bord(0), _txt)
 
  
 
-     # 存在效果 + 随机噪声效果
 
  
-     PIX = TextPix(FontBord, _txt)    # get the pixel info
 
 -     PIX_t = PIX
 
 -     duration = te - ts
 
 -     count = int(duration * 10 / _FD)      # 闪光次数
 
  
-     if _j == 0:
 
 -         global rp
 
 -         rp = []
 
 -         num = int((_end + 50 - _start) * 10 / _FD)
 
 -         for i in range(num):
 
 -             rp.append((randint(0, 1), randint(0, 1)))
 
  
-     offset = 2 * _j
 
 -     for i in range(count):
 
 -         PIX_color = list(PIX_t[2])
 
 -         width = PIX_t[1][0]
 
 -         height = PIX_t[1][1]
 
 -         for j in range(randint(6, 10)):    # 闪光点个数
 
 -             xr = randint(5, _a - 5)
 
 -             yr = randint(0, _Fs - 5)
 
 -             R_IMG = RandImg(randint(1, 3), randint(1, 4), randint(1, 4))
 
 -             points = tu2lis(R_IMG)                # function borrowed from small_code library
 
 -             num = len(points)
 
 -             for m in range(num):
 
 -                 w = int(points[m][0]) + xr
 
 -                 if w >= width:
 
 -                     continue
 
 -                 h = int(points[m][1]) + yr
 
 -                 if h >= height:
 
 -                     continue
 
 -                 index = (h * width + w) * 4
 
 -                 if PIX_color[index + 3] != 0:
 
 -                     PIX_color[index + 3] = -1
 
 -         num = height * width * 4
 
 -         for j in range(0, num, 4):
 
 -             if PIX_color[j + 3] != -1:
 
 -                 PIX_color[j + 3] = 0
 
 -             else:
 
 -                 PIX_color[j + 0] = 255
 
 -                 PIX_color[j + 1] = 255
 
 -                 PIX_color[j + 2] = 255
 
 -                 PIX_color[j + 3] = PIX_t[2][j + 3]
 
 -         PIX = (PIX_t[0], PIX_t[1], tuple(PIX_color))
 
 -         if (10 * ts + i * _FD >= 10 * (_start + _elapk + _k + 5)) or (10 * ts + (i + 1) * _FD < 10 * (_start + _elapk - 5)):
 
 -             tcas_main(TCAS_BUF, PIX, 10 * ts + i * _FD, 10 * ts + (i + 1) * _FD, dx + rp[i + offset][0], dy + rp[i + offset][1], 0)
 
 -         ass_main(ASS_BUF, SubL(Start = ts + i * _FD / 10, End = ts + (i + 1) * _FD / 10, Layer = 1), pos(_x + rp[i + offset][0], _y + rp[i + offset][1]) + bord(3) + blur(2), _txt)
 
 -         ass_main(ASS_BUF, SubL(Start = ts + i * _FD / 10, End = ts + (i + 1) * _FD / 10, Layer = 2), pos(_x + rp[i + offset][0], _y + rp[i + offset][1]) + bord(1) + color3('000000'), _txt)
 
 -         ass_main(ASS_BUF, SubL(Start = ts + i * _FD / 10, End = ts + (i + 1) * _FD / 10, Layer = 3), pos(_x + rp[i + offset][0], _y + rp[i + offset][1]) + bord(0), _txt)
 
  
 
-     # 特效表现效果
 
  
-     C3 = '0000FF'
 
  
-     EFT1 = animation2(0, 4 * _k + 50, 1.3, fs(55) + blur(6) + bord(6) + color3(C3))
 
 -     EFT2 = animation1(0, 2 * _k + 50, color1('FFFFFF')) + alpha1(0) + be(1)
 
 -     ass_main(ASS_BUF, SubL(Start = _start + _elapk - 5, End = _start + _elapk + _k / 2, Layer = 6), pos(_x, _y) + EFT1 + EFT2, _txt)
 
 -     EFT1 = fs(55) + blur(6) + bord(6) + color3(C3) + animation2(_k + 50, 5 * _k + 50, 0.8, fs(_Fs) + blur(0) + bord(0) + color3('FF8A15'))
 
 -     EFT2 = color1('FFFFFF') + animation1(0, 3 * _k, color1(C3)) + animation1(3 * _k, 5 * _k + 50, color1('FF8A15')) + alpha1(0) + be(1)
 
 -     ass_main(ASS_BUF, SubL(Start = _start + _elapk + _k / 2, End = _start + _elapk + _k + 5, Layer = 6), pos(_x, _y) + EFT1 + EFT2, _txt)
 
 -     EFT = color1('FFFFFF') + alpha3(255) + be(1) + animation2(0, 4 * _k + 50, 1.3, fs(53))
 
 -     ass_main(ASS_BUF, SubL(Start = _start + _elapk - 5, End = _start + _elapk + _k * 6 / 10 + 5, Layer = 6), pos(_x, _y) + EFT, _txt)
 
 -     EFT = color1('FFFFFF') + alpha3(255) + be(1) + fs(53) + animation2(0, 4 * _k, 0.8, fs(_Fs))
 
 -     ass_main(ASS_BUF, SubL(Start = _start + _elapk + _k * 6 / 10 + 5, End = _start + _elapk + _k + 5, Layer = 6), pos(_x, _y) + EFT, _txt)
 
  
-     EFT1 = animation2(0, 4 * _k + 50, 1.3, fs(50) + blur(6) + bord(6) + color3(C3))
 
 -     EFT2 = animation1(0, 2 * _k + 50, color1('FFFFFF')) + be(1) + alpha1(0)
 
 -     ass_main(ASS_BUF, SubL(Start = _start + _elapk - 5, End = _start + _elapk + _k / 2, Layer = 7), pos(_x, _y) + EFT1 + EFT2, _txt)
 
 -     EFT1 = fs(50) + blur(6) + bord(6) + color3(C3) + animation2(_k + 50, 5 * _k + 50, 0.8, fs(_Fs) + blur(0) + bord(0) + color3('FF8A15'))
 
 -     EFT2 = color1('FFFFFF') + animation1(0, 3 * _k, color1(C3)) + animation1(3 * _k, 5 * _k + 50, color1('FF8A15')) + be(1) + alpha1(0)
 
 -     ass_main(ASS_BUF, SubL(Start = _start + _elapk + _k / 2, End = _start + _elapk + _k + 5, Layer = 7), pos(_x, _y) + EFT1 + EFT2, _txt)
 
 -     EFT = color1('FFFFFF') + alpha3(255) + be(1) + animation2(0, 4 * _k + 50, 1.3, fs(48))
 
 -     ass_main(ASS_BUF, SubL(Start = _start + _elapk - 5, End = _start + _elapk + _k * 6 / 10 + 5, Layer = 7), pos(_x, _y) + EFT, _txt)
 
 -     EFT = color1('FFFFFF') + alpha3(255) + be(1) + fs(48) + animation2(6 * _k + 100, 10 * _k + 100, 0.8, fs(_Fs))
 
 -     ass_main(ASS_BUF, SubL(Start = _start + _elapk + _k * 6 / 10 + 5, End = _start + _elapk + _k + 5, Layer = 7), pos(_x, _y) + EFT, _txt)
 
  
 
-     # 出场效果
 
  
-     offset += count
 
 -     num = int(400 / _FD)
 
 -     te = ts + count * _FD / 10
 
 -     for i in range(num):
 
 -         ass_main(ASS_BUF, SubL(Start = te + i * _FD / 10, End = te + (i + 1) * _FD / 10, Layer = 1), pos(_x + rp[i + offset][0], _y + rp[i + offset][1]) + alpha(255 * i / num) + bord(3) + blur(2), _txt)
 
 -         ass_main(ASS_BUF, SubL(Start = te + i * _FD / 10, End = te + (i + 1) * _FD / 10, Layer = 2), pos(_x + rp[i + offset][0], _y + rp[i + offset][1]) + alpha(255 * i / num) + bord(1) + color3('000000'), _txt)
 
 -         ass_main(ASS_BUF, SubL(Start = te + i * _FD / 10, End = te + (i + 1) * _FD / 10, Layer = 3), pos(_x + rp[i + offset][0], _y + rp[i + offset][1]) + alpha(255 * i / num) + bord(0), _txt)
 
  
 
-     ##### 将结果返回给tcax进行处理 #####
 
  
-     return (ASS_BUF, TCAS_BUF)
 
  复制代码 预览请见此帖: http://www.tcax.org/forum.php?mod=viewthread&tid=43 
 
文件名为: [J]028_Nurarihyon_OP.mkv 
 
 
 
 |   
 
- 
2
查看全部评分 
 
- 
 
 
  
 |