- UID
- 3
- 积分
- 8169
- 帖子
- 259
- 主题
- 68
- 论坛币
- 5016
- 威望
- 54
- EP值
- 2533
- MP值
- 20
- 阅读权限
- 200
- 注册时间
- 2011-8-3
- 在线时间
- 1097 小时
- 最后登录
- 2022-10-8
|
使用tcax 1.1.8或更新版本,如果是舊版本,運行此腳本之前 請先升級一次 覆蓋即可
tcaxLib.zip
(314.96 KB, 下载次数: 3469)
完整工程包
test.7z
(0 Bytes, 下载次数: 3795)
預覽時請加載tcasfilter.dll 在tcax主目錄里有
腳本如下- from tcaxPy import *
- ##### 额外的一些库 #####
- from collections import deque
- ##### 初始化函数, 用于设定一些全局变量 #####
- def tcaxPy_Init():
- ##### 声明全局变量 #####
- global _FontFileName # 字体文件名
- global _FaceID # 字体Face序号
- global _Fs # 字体大小
- global _TextWidth # 文字宽度
- global _TextHeight # 文字高度
- global _TextLength
- global _TextAdvDiff
- global _ResolutionX
- global _ResolutionY
- global _OffsetX
- global _OffsetY
- global _FD # 一帧的持续时间, 40毫秒
- global Font # 首要字体
- global FontOut # 字体边框
- ##### 获取预定义的值 #####
- _FontFileName = GetVal(val_FontFileName)
- _FaceID = GetVal(val_FaceID)
- _Fs = GetVal(val_FontSize)
- _TextHeight = GetVal(val_TextHeight)
- _TextWidth = GetVal(val_TextWidth)
- _TextLength = GetVal(val_TextLength)
- _TextAdvDiff = GetVal(val_TextAdvanceDiff)
- _ResolutionX = GetVal(val_ResolutionX)
- _ResolutionY = GetVal(val_ResolutionY)
- _OffsetX = GetVal(val_OffsetX)
- _OffsetY = GetVal(val_OffsetY)
- _FD = 1000 / GetVal(val_FXFPS)
- ##### 设置自定义变量的值 #####
- Font = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0) # 0xFFFFFF为16进制表示的白色
- FontOut = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 4, 1) # 最后一个参数置为1表示只提取边框
- ##### 结束函数, 用于一些收尾工作 #####
- def tcaxPy_Fin():
- ##### 清理一些全局变量 #####
- FinFont(Font)
- FinFont(FontOut)
- def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT,):
- TCAS_BUF = []
- texture = ImagePix(abspath('x.png'))
- dx = _X - int(_A / 2 + 0.5) # 一个固定操作, 将an5的坐标转换为an7
- dy = _Y - int(_Fs / 2 + 0.5) # ASS特效默认采用an5坐标, TCAS特效则采用an7坐标
- PIX = TextPix(Font, _TXT)
- PIX2 = TextPix(Font, "●")
- PIX2 = PixTexture(PIX2,texture)
- PIX2 = PixBlur(PIX2, 8)
- width = 2 #原大小
- height =2
- inc_w = _A*3 #目標大小
- inc_h = _Fs*3
- num = int(10 * (_KT) /_FD)
- for i in range(num):
- x = PIX2[0][0] +randint(-int(_A / 2),int(_A / 2))
- y = PIX2[0][1] +randint(-int(_A / 2),int(_A / 2))
- PIX3 = ((x,y),PIX2[1],PIX2[2])
- f_w = width + inc_w * i / num
- f_h = height + inc_h * i / num
- i_w = int(f_w)
- i_h = int(f_h)
- PIX1 = PixResize(PIX3, i_w, i_h)
- PIX1 = PixMask(PIX1, PIX)
- t1 = 10 * (_BT+_SK) + _FD * i
- t2 = t1 + _FD
- tcas_main(TCAS_BUF, PIX1, t1, t2, dx, dy, 0)
- num2 = int(10 * (_ET-_BT-_SK-_KT) / _FD)
- for j in range(num2):
- x = PIX2[0][0] +randint(-int(_A / 2),int(_A / 2))
- y = PIX2[0][1] +randint(-int(_A / 2),int(_A / 2))
- PIX4 = ((x,y),PIX2[1],PIX2[2])
- PIX4 = PixResize(PIX4,_A*3, _Fs*3)
- PIX4 = PixMask(PIX4, PIX)
- t3 = 10 * (_BT+_SK+_KT) + _FD * j
- t4 = t3 + _FD
- tcas_main(TCAS_BUF, PIX4, t3, t4, dx, dy, 0)
- return (None, TCAS_BUF)
复制代码 |
|