| 
UID2积分8682帖子2905主题199论坛币13045 威望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)
 | 
 |