- UID
- 2
- 积分
- 8682
- 帖子
- 2905
- 主题
- 199
- 论坛币
- 11697
- 威望
- 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特效
- ##### 主要特效编写操作 #####
- # ASS Mask特效固定代码框架 开始
- dx = _x - int(_a / 2 + 0.5)
- dy = _y - int(_Fs / 2 + 0.5)
- outline = TextOutlineDraw(_Font, _txt, dx, dy) # 获取该文字的ASS Draw绘图命令字符串
- ass_main(ASS_BUF, SubL(_start, _end), move(_x - 50, _y, _x, _y, 0, 5 * (_end - _start)) + clip(7, outline), _txt) # clip(7, outline) 即为ASS Mask
- # ASS Mask特效固定代码框架 结束
- ##### 将结果返回给tcax进行处理 #####
- return (ASS_BUF, TCAS_BUF)
复制代码 后记
在理解了上述代码的基础上, 可以进一步学习具体的使用方法.
X大用Mask做的特效还是比较多的, 下面这个就是其中之一, 我移植到TCAX上来的...
一个具体例子 http://www.tcax.org/forum.php?mod=viewthread&tid=100
p.s. 如有疑问, 请直接跟帖...
------------------ 2012-01-19 14:31 ---------------------
如果TCC文件的spacing设置不是0, 则, 关于dx的计算需要进行如下修改- dx = _x - int((_a + GetVal(val_Spacing)) / 2 + 0.5)
复制代码 |
|