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

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

[ASS特效教程入门系列] 一. 像素字特效的制作 [复制链接]

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2011-11-1 16:47:26 |显示全部楼层 |倒序浏览
说明

本系列教程旨在更好的引导大家使用TCAX制作一些特效, 有空我会逐渐补上我所了解的一些特效的制作.
为加深大家对教程代码的理解, 附上了可以直接执行的完整工程, 建议下载并实际操作一下.
  1. from tcaxPy import *

  2. def tcaxPy_Init():              # 主要作用是初始化一个字体
  3.     global _Fs                  # 字体大小
  4.     global _Font                # 我们将要创建的字体
  5.     _Fs = GetVal(val_FontSize)  # 获取字体大小
  6.     fontFileName = GetVal(val_FontFileName)     # 获取字体文件名
  7.     faceID = GetVal(val_FaceID)                 # 获取字体Face序号
  8.     spacing = GetVal(val_Spacing)               # 获取文字间隔
  9.     spaceScale = GetVal(val_SpaceScale)         # 获取空格缩放比率
  10.     color = MakeRGB(255, 255, 255)              # 字体颜色
  11.     bord = 0                    # 字体边框厚度
  12.     isOutline = False           # 只有边框
  13.     _Font = InitFont(fontFileName, faceID, _Fs, spacing, spaceScale, color, bord, isOutline)        # 创建字体

  14. def tcaxPy_Fin():
  15.     FinFont(_Font)   # 销毁字体 释放内存

  16. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):

  17.     ASS_BUF  = []        # 保存ASS特效
  18.     TCAS_BUF = []        # 保存TCAS特效

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

  20.     # 像素字特效固定代码框架 开始
  21.     PIX = TextPix(_Font, _txt)      # 获取当前文字的PIX结构
  22.     initPosX = _x - int(_a / 2 + 0.5) + PIX[0][0]        # 第一个像素的X轴坐标
  23.     initPosY = _y - int(_Fs / 2 + 0.5) + PIX[0][1]       # 第一个像素的Y轴坐标
  24.     for h in range(PIX[1][1]):                           # 开始纵向扫描
  25.         posY = initPosY + h                               # 当前像素Y轴坐标
  26.         for w in range(PIX[1][0]):                       # 开始横向扫描
  27.             posX = initPosX + w                           # 当前像素X轴坐标
  28.             idx  = 4 * (h * PIX[1][0] + w)                # 脚标
  29.             pixR = PIX[2][idx + 0]                        # 当前像素的红色分量
  30.             pixG = PIX[2][idx + 1]                        # 当前像素的绿色分量
  31.             pixB = PIX[2][idx + 2]                        # 当前像素的蓝色分量
  32.             pixA = PIX[2][idx + 3]                        # 当前像素的透明度
  33.             if pixA != 0:                                # 如果当前像素不为透明则进行如下操作
  34.                 # 增加你的效果, 注意Style使用Pix_Style
  35.                 ass_main(ASS_BUF, SubL(_start, _end, 0, Pix_Style), pos(posX, posY) + color1(FmtRGB(pixR, pixG, pixB)) + alpha1(255 - pixA), PixPt())
  36.     # 像素字特效固定代码框架 结束

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

  38.     return (ASS_BUF, TCAS_BUF)
复制代码
后记

在理解了上述代码的基础上, 可以进一步学习具体的使用方法.
saiyaku写了不少具体效果, 可以对着预览视频, 找到相应的脚本.

视频 http://www.tcax.org/forum.php?mod=viewthread&tid=44
代码 http://www.tcax.org/forum.php?mo ... typeid&typeid=3


p.s. 如有疑问, 请直接跟帖...


test_pixelate_text.zip

3.63 KB, 下载次数: 2858

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

沙发
发表于 2013-2-18 19:26:00 |显示全部楼层
爱雪音MiKu 发表于 2013-2-18 09:11
呜咕。。问一下制作像素字和字体有关吗。。。偶换了一个微软雅黑的字体(比较大众化的字体)就什么效果也没 ...

那個就是預期效果了, 這段代碼的含義就是用一個個獨立的像素"堆"出一個文字.

你可以修改修改下_k.ass文件, 只保留一個文字. 然後生成一下, 記事本打開生成的ASS文件. 找不到任何歌詞的...

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

板凳
发表于 2013-2-18 19:28:09 |显示全部楼层
爱雪音MiKu 发表于 2013-2-18 17:58
呜咕。。像素字是什么意思呀0.0?。。。能帮偶介绍一下呀


"後記" 中的鏈接為什麼不點開看一下呢?

另外, 這個也可以作為參考.
http://www.tcax.org/forum.php?mod=viewthread&tid=382

p.s. 代碼共享區有不少, 多發掘, 少伸手.

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

地板
发表于 2014-12-16 21:18:41 |显示全部楼层
stacer 发表于 2014-12-16 20:41
为什么我预览AVS显示失败?

可以把错误信息发上来
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-5-3 18:22

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH