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

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

ASS像素纹理 带边框的 [复制链接]

Moderator

youkaze

Rank: 5Rank: 5

跳转到指定楼层
楼主
发表于 2012-12-5 17:01:29 |只看该作者 |倒序浏览

hi 大家好! 我是 四月一日 这个教程是为 tcax 发布的特效教程
欢迎大家使用 短小精干 的ASS特效代码!


今天的代码是ASS像素纹理

1.jpg

见以下代码

  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), 2, 0)  #文字邊框
  18.     PIX_tex = ImagePix(abspath('fire_texture.png'), _Fs, 0)   #文字主體圖片
  19.     PIX_tex2 = ImagePix(abspath('tex2.png'))     #文字邊框圖片
  20.    


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

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

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

  27.     ##### 主要特效编写操作 #####

  28.     dx = _x - int(_a / 2 + 0.5)         # 一个固定操作, 将an5的坐标转换为an7
  29.     dy = _y - int(_Fs / 2 + 0.5)        # ASS特效默认采用an5坐标, TCAS特效则采用an7坐标


  30.     PIX_t = TextPix(Font, _txt)             # 获取文字
  31.    
  32.     dx = _x - int(_a / 2 + 0.5) + PIX_t[0][0]
  33.     dy = _y - int(_Fs / 2 + 0.5) + PIX_t[0][1]
  34.     dur = _KT * 10
  35.     ts1 = _BT
  36.     te1 = _BT + _SK
  37.    
  38.     PIX_t = PixTexture(PIX_t, PIX_tex)      # 增加主體纹理
  39.     PIX_out = TextPix(FontOut, _txt)        # 获取边框
  40.     PIX_out = PixTexture(PIX_out, PIX_tex2)      #增加邊框紋理
  41.     PIX_out = PixColorMul(PIX_out, 1, 1, 1, 1)    # 增加邊框透明度 第四個數字不用邊框紋理的話可以設置為0 這樣能節省ASS體積
  42.     PIX_out = PixBlur(PIX_out, 0)           # 增加邊框模糊
  43.     PIX_ori = CombinePixs(PIX_out, PIX_t)   # 混合文字主体和边框 (边框作底)
  44.     points = PixPoints(PIX_ori)
  45.     pt_num = len(points)

  46.     center = _n / 2 - 0.5      # center index of 5 texts is 2, center index of 6 is 2.5
  47.     x = dx + 50 * (_j - center) / center
  48.     y = dy + 10
  49.    
  50.     for i in range(pt_num):
  51.         w = points[i][0]
  52.         h = points[i][1]
  53.         idx  = 4 * (h * PIX_ori[1][0] + w)                # 脚标
  54.         PixR = PIX_ori[2][idx + 0]                        # 当前像素的红色分量
  55.         PixG = PIX_ori[2][idx + 1]                        # 当前像素的绿色分量
  56.         PixB = PIX_ori[2][idx + 2]                        # 当前像素的蓝色分量
  57.         PixA = PIX_ori[2][idx + 3]                        # 当前像素的透明度
  58.         
  59.         x = dx + points[i][0]
  60.         y = dy + points[i][1]

  61.         EFT1 = an(7)+shad(0)+bord(0)+pos(x,y)+alpha(255-PixA)+color1(FmtRGB(PixR,PixG,PixB))  #這裡的顏色就不要去設置什麽COLOR1 COLOR3了
  62.         ass_main(ASS_BUF, SubL(ts1,te1,3,Pix_Style), EFT1, PixPt())
  63.         

  64.     ##### 将结果返回给tcax进行处理 #####

  65.     return (ASS_BUF, TCAS_BUF)
复制代码
使用方法: 首先你得准备好你一套 套图中的随便两张 格式必须是PNG的 至于图的内容 也可以很工口很baoli然后简单设置下 透明度和blur值就OK了什么地方设置代码里有写。
之后的事就看你自己的想象来编写 ASS_MAIN里面的内容了。

ASS纹理能让图像粒子画这点MOD挂图是不能的 当然 代价就是ASS体积略大影响渲染效率 不过机器好的人也可以无视
要说的就这么多 嗯!

下面是例子 和脚本下载
脚本: asswenli.py (3.12 KB, 下载次数: 3122)
例子:http://www.tcax.org/forum.php?mod=viewthread&tid=568
4

查看全部评分

Rank: 5Rank: 5

沙发
发表于 2012-12-5 17:55:25 |只看该作者

四月用足了吃切糕的力气才把这教程搞出来
怎能不顶

Rank: 5Rank: 5

板凳
发表于 2012-12-5 18:34:22 |只看该作者
游风君加油呢~~  (虽然看不懂...   也来顶一个~~

Rank: 6Rank: 6

地板
发表于 2012-12-5 20:47:42 |只看该作者
不愧是老湿...完爆MOD

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

5#
发表于 2012-12-5 20:57:16 |只看该作者
It's just so cool~~ 四月老湿不是白叫的

Rank: 4

6#
发表于 2012-12-5 22:50:38 |只看该作者
顶啊.......,四月老师给力啊........

Moderator

疯子

Rank: 5Rank: 5

7#
发表于 2012-12-11 07:05:48 |只看该作者
咦,这个做教程了,果断要支持一下啊

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

8#
发表于 2012-12-11 17:25:08 |只看该作者
四月老师的效果就像冬天里的一把火
而且代码写的优美如诗 字里行间 好像在诉说着什么

Rank: 6Rank: 6

9#
发表于 2013-1-27 13:11:04 |只看该作者
本帖最后由 アクマ 于 2013-1-27 13:12 编辑

四月老師 開頭語萌了
求手把手教學

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

10#
发表于 2013-1-27 15:41:03 |只看该作者
アクマ 发表于 2013-1-27 13:11
四月老師 開頭語萌了
求手把手教學


akuma有覺悟了麼,

啊, 不對, 四月有覺悟了麼

Rank: 6Rank: 6

11#
发表于 2013-1-27 17:21:29 |只看该作者
milkyjing 发表于 2013-1-27 15:41
akuma有覺悟了麼,

啊, 不對, 四月有覺悟了麼

哎,這是又被嫌棄了
連milk都嫌棄我了
去潛水了!!

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

12#
发表于 2013-1-27 17:49:18 |只看该作者
アクマ 发表于 2013-1-27 17:21
哎,這是又被嫌棄了
連milk都嫌棄我了
去潛水了!!


  順勢吐槽-0-

膜拜akuma

Rank: 6Rank: 6

13#
发表于 2013-1-27 18:36:19 |只看该作者
milkyjing 发表于 2013-1-27 17:49
順勢吐槽-0-

膜拜akuma

哼 傲嬌了

Rank: 5Rank: 5

14#
发表于 2013-2-3 21:25:12 |只看该作者
嗯,高级货

Rank: 4

15#
发表于 2013-4-20 19:59:49 |只看该作者
膜拜前辈!
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-23 19:57

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH