- UID
- 238
- 积分
- 730
- 帖子
- 117
- 主题
- 4
- 论坛币
- 2705
- 威望
- 2
- EP值
- 556
- MP值
- 50
- 阅读权限
- 50
- 注册时间
- 2011-10-28
- 在线时间
- 102 小时
- 最后登录
- 2018-12-12
|
本帖最后由 愛萌就要控丶 于 2013-2-15 18:35 编辑
大家好~~
今天俺终于独立完成了自己的第一部作品。(其实是第一部稍微敢拿出手的货= =以前实在太渣,泪奔~~ )
历时三天= =
主要学会了TCAS的入门,对于PIX有了初步的了解。
利用TCAS做出了OP中彩带的效果,结合了ASS DRAW完成了高潮部分的图形放大效果。
由于没有什么经验,思想也不丰富,本来想找B神请教,但B神似乎不是拿TCAX做特效的,所以没py脚本。于是只要自己动手,字体覆盖部分山寨了一下B神的效果(其实也没怎么山寨好,渣啊= =),还请见谅。
另外,由于是第一次写脚本,毕竟会存在很多笨拙的地方,还请大神们见谅,当然对于我不足之处希望各位大神能提出意见和建议,感激不尽!- from tcaxPy import *
- from pixLibs.ImageStone import *
- def tcaxPy_Init():
- global _FD
- global _Fs
- global _Spacing
- global Font
- global PIX_tex1
- global COLOR
- _FD = 1000 / GetVal(val_FXFPS)
- _Fs = GetVal(val_FontSize)
- _Spacing = GetVal(val_Spacing)
- fontFileName = GetVal(val_FontFileName)
- faceID = GetVal(val_FaceID)
- COLOR = DivClr("FF0000", "00FFFF", _Fs)
- Font = InitFont(fontFileName, faceID, _Fs, _Spacing, GetVal(val_SpaceScale), MakeRGB(221, 36, 184), 1, False)
- PIX_tex1 = ImagePix(abspath('tex.png'), _Fs-10, 0)
- def tcaxPy_Fin():
- FinFont(Font)
- def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
- ASS_BUF = []
- TCAS_BUF = []
- dx = _x - int((_a + _Spacing) / 2 + 0.5) # 一个固定操作, 将an5的坐标转换为an7
- dy = _y - int(_Fs / 2 + 0.5) # ASS特效默认采用an5坐标, TCAS特效则采用an7坐标
- ts_0 = 10 * _start - _FD * 5 # 提前显示歌词, 提前量为10帧长度, "10 * _start"只是一个单位转换, ASS特效使用了两种时间单位, 10毫秒及1毫秒
- # TCAS特效则统一使用1毫秒为单位
- ts = 10 * _start
- te = 10 * _end
- te_0 = 10 * _end + _FD * 5
- t1 = _start
- t2 = _start + _elapk
- t3 = _start + _elapk + _k
- t4 = _end
- # 入场效果
- for i in range(100):
- x = dx * i / 99
- y = dy
- tcas_main(TCAS_BUF, PIX_tex1, ts_0 + _FD * i / 19.8, ts, x, y, 0)
- # 出场效果
- for i in range(100):
- x0 = dx + dx * i / 50
- y0 = dy
- tcas_main(TCAS_BUF, PIX_tex1, te + _FD * 5 * i / 99, te_0, x0, y0, 0)
- #第9句开始进入高潮部分
- if _i < 8:
- # 存在方式
- EFT = pos(_x, _y) + alpha1(255) + bord(2) + shad(1)
- ass_main(ASS_BUF, SubL(t1, t4, 1), EFT, _txt)
- x1 = _x - _a / 2
- x2 = _x + _a / 2
- for i in range(_Fs):
- y1 = _y - _Fs / 2 + i
- y2 = y1 + 1
- EFT = pos(_x, _y) + clip(x1, y1, x2, y2) + alpha3(255) + color1(COLOR[i]) + bord(0) + shad(0)
- ass_main(ASS_BUF, SubL(t1, t4, 5), EFT, _txt)
- # 表现方式,覆盖
- EFT = pos(_x, _y) + fs(_Fs * 1.3) + bord(3) + shad(3) + animation(t(0, _k * 10, 1.0, fs(_Fs)))
- ass_main(ASS_BUF, SubL(t2, t4, 8), EFT, _txt)
- else:
- # 存在效果一,震动前
- EFT = pos(_x, _y) + bord(3) + shad(3)
- ass_main(ASS_BUF, SubL(t1, t2, 1), EFT, _txt)
-
- # 存在效果二,震动后
- EFT = pos(_x, _y) + alpha1(255) + bord(2) + shad(0)
- ass_main(ASS_BUF, SubL(t2 + 10, t4, 5), EFT, _txt)
- x1 = _x - _a / 2
- x2 = _x + _a / 2
- for i in range(_Fs):
- y1 = _y - _Fs / 2 + i
- y2 = y1 + 1
- EFT = pos(_x, _y) + clip(x1, y1, x2, y2) + alpha3(255) + color1(COLOR[i])
- ass_main(ASS_BUF, SubL(t2 + 10, t4, 1), EFT, _txt)
- # 附加效果,OP中出现的图形的放大效果
- img = ["m 14 0 b 24 0 28 8 28 14 b 28 20 24 28 14 28 b 4 28 0 20 0 14 b 0 8 4 0 14 0 m 14 2 b 4 2 2 11 2 14 b 2 17 4 26 14 26 b 24 26 26 17 26 14 b 26 11 24 2 14 2 m 14 7 b 20 7 21 12 21 14 b 21 16 20 21 14 21 b 8 21 7 16 7 14 b 7 12 8 7 14 7 m 13 9 b 10 9 9 13 9 14 b 9 15 10 19 14 19 b 18 19 19 15 19 14 b 19 13 18 9 15 9 l 15 12 b 15 14 13 14 13 12 l 13 9 "]
- ts1 = _start + _elapk
- te1 = ts1 + 50
- EFT = an(5) + pos (_x, _y) + fsc(1,1) + color1("FFFFFF") + animation(t(0, 100, 1.2, fsc(300,300)))
- ass_main(ASS_BUF, SubL(ts1, te1, 6), EFT + fad(10, 500), "{\p1}" + img[0] + "{\p0}")
- for i in range(8):
- if _k > 125:
- ts1 = ts1 + 75
- te1 = te1 + 75
- ass_main(ASS_BUF, SubL(ts1, te1, 6), EFT + fad(10, 500), "{\p1}" + img[0] + "{\p0}")
- _k = _k - 75
- return (ASS_BUF, TCAS_BUF)
复制代码 里面用到的tex.png纹理图(就是那个彩带)下载:
OP完成品视频下载:http://pan.baidu.com/share/link?shareid=273927&uk=925586366
|
-
2
查看全部评分
-
|