- UID
- 2
- 积分
- 8682
- 帖子
- 2905
- 主题
- 199
- 论坛币
- 11737
- 威望
- 16
- EP值
- 2349
- MP值
- 15
- 阅读权限
- 200
- 注册时间
- 2011-8-3
- 在线时间
- 2597 小时
- 最后登录
- 2024-8-28
|
说明
本系列教程旨在更好的引导大家使用TCAX制作一些特效, 有空我会逐渐补上我所了解的一些特效的制作.
为加深大家对教程代码的理解, 附上了可以直接执行的完整工程, 建议下载并实际操作一下.- from tcaxPy import *
- def tcaxPy_Init(): # 主要作用是初始化一个字体
- global _Fs # 字体大小
- global _Font # 我们将要创建的字体
- _Fs = GetVal(val_FontSize) # 获取字体大小
- fontFileName = GetVal(val_FontFileName) # 获取字体文件名
- faceID = GetVal(val_FaceID) # 获取字体Face序号
- spacing = GetVal(val_Spacing) # 获取文字间隔
- spaceScale = GetVal(val_SpaceScale) # 获取空格缩放比率
- color = MakeRGB(255, 255, 255) # 字体颜色
- bord = 0 # 字体边框厚度
- isOutline = False # 只有边框
- _Font = InitFont(fontFileName, faceID, _Fs, spacing, spaceScale, color, bord, isOutline) # 创建字体
- def tcaxPy_Fin():
- FinFont(_Font) # 销毁字体 释放内存
- def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
- ASS_BUF = [] # 保存ASS特效
- TCAS_BUF = [] # 保存TCAS特效
- ##### 主要特效编写操作 #####
- # 像素字特效固定代码框架 开始
- PIX = TextPix(_Font, _txt) # 获取当前文字的PIX结构
- initPosX = _x - int(_a / 2 + 0.5) + PIX[0][0] # 第一个像素的X轴坐标
- initPosY = _y - int(_Fs / 2 + 0.5) + PIX[0][1] # 第一个像素的Y轴坐标
- for h in range(PIX[1][1]): # 开始纵向扫描
- posY = initPosY + h # 当前像素Y轴坐标
- for w in range(PIX[1][0]): # 开始横向扫描
- posX = initPosX + w # 当前像素X轴坐标
- idx = 4 * (h * PIX[1][0] + w) # 脚标
- pixR = PIX[2][idx + 0] # 当前像素的红色分量
- pixG = PIX[2][idx + 1] # 当前像素的绿色分量
- pixB = PIX[2][idx + 2] # 当前像素的蓝色分量
- pixA = PIX[2][idx + 3] # 当前像素的透明度
- if pixA != 0: # 如果当前像素不为透明则进行如下操作
- # 增加你的效果, 注意Style使用Pix_Style
- ass_main(ASS_BUF, SubL(_start, _end, 0, Pix_Style), pos(posX, posY) + color1(FmtRGB(pixR, pixG, pixB)) + alpha1(255 - pixA), PixPt())
- # 像素字特效固定代码框架 结束
- ##### 将结果返回给tcax进行处理 #####
- 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. 如有疑问, 请直接跟帖...
|
|