- UID
- 1541
- 积分
- 437
- 帖子
- 78
- 主题
- 5
- 论坛币
- 843
- 威望
- 1
- EP值
- 290
- MP值
- 0
- 阅读权限
- 50
- 注册时间
- 2013-10-18
- 在线时间
- 100 小时
- 最后登录
- 2015-6-17
|
Nekogami_OP_cn.py
##### 基本函数库, 必须包含 #####
from tcaxPy import *
##### 初始化函数, 用于设定一些全局变量 #####
def tcaxPy_Init():
##### 声明全局变量 #####
global _Fs # 字体大小
global _TextAdvDiff # 文字的坐标定位偏移量
global _TextLength # 一句歌词的文字长度
global _ResolutionY # 垂直分辨率
global _OffsetY # 垂直边距
##### 获取预定义的值 #####
_Fs = GetVal(val_FontSize)
_TextAdvDiff = GetVal(val_TextAdvanceDiff)
_TextLength = GetVal(val_TextLength)
_ResolutionY = GetVal(val_ResolutionY)
_OffsetY = GetVal(val_OffsetY)
##### 脚本主函数, 会对每个文字执行一次 #####
# _i 第_i句, 即当前操作的文字所在的句子序号
# _j 第_i句中的第_j个文字, 即当前操作文字的序号
# _n 第_i句中有_n个文字, 即当前句子所包含的文字数
# _start 句子的开始时间
# _end 句子的结束时间
# _elapk 到第_j个字经过的时间, _start + _elapk 到 _start + _elapk + _k 即为当前文字的存在时间
# _k 第_j个文字的卡拉OK时间
# _x 第_j个文字的水平坐标
# _y 第_j个文字的垂直坐标
# _a 第_j个文字的水平跨距, 可以看作文字的宽度, 同样_Fs也可近似看成文字的高度
# _txt 第_j个文字的内容
def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
ASS_BUF = [] # 保存ASS特效
TCAS_BUF = [] # 保存TCAS特效
##### 主要特效编写操作 #####
if _i % 2 == 1:
_y = _ResolutionY - _TextLength[_i] - _OffsetY + _TextAdvDiff[_i][_j]
else:
_x = _x + _Fs
# 出现和消失效果
if _i % 2 == 0:
t0 = _start + 10 * _j - 90
t1 = t0 + 50
t2 = _end + 10 * (_n - _j - 1) + 40
t3 = t2 + 50
MOVE = move(_x - _Fs, _y + _TextLength[_i] / 2, _x, _y, 0, 500)
EFT = fs(_Fs * 1.5) + alpha(200) + animation2(0, 500, 1.2, fs(_Fs) + alpha(0))
ass_main(ASS_BUF, SubL(t0, t1), MOVE + EFT, _txt)
MOVE = move(_x, _y, _x - _Fs, _y + _TextLength[_i] / 2, 0, 500)
EFT = alpha(0) + animation2(0, 500, 0.8, fs(_Fs / 3) + alpha(200))
ass_main(ASS_BUF, SubL(t2, t3), MOVE + EFT, _txt)
else:
t0 = _start - 10 * _j - 90
t1 = t0 + 50
t2 = _end - 10 * (_n - _j - 1) + 40
t3 = t2 + 50
MOVE = move(_x + _Fs, _y - _TextLength[_i] / 2, _x, _y, 0, 500)
EFT = fs(_Fs / 3) + alpha(200) + animation2(0, 500, 1.2, fs(_Fs) + alpha(0))
ass_main(ASS_BUF, SubL(t0, t1), MOVE + EFT, _txt)
MOVE = move(_x, _y, _x + _Fs, _y - _TextLength[_i] / 2, 0, 500)
EFT = alpha(0) + animation2(0, 500, 0.8, fs(_Fs * 1.5) + alpha(200))
ass_main(ASS_BUF, SubL(t2, t3), MOVE + EFT, _txt)
# 存在效果
ass_main(ASS_BUF, SubL(t1, t2), pos(_x, _y) + blur(3), _txt)
##### 将结果返回给tcax进行处理 #####
return (ASS_BUF, TCAS_BUF)
|
|