TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua

 找回密码
 新人加入
查看: 8522|回复: 3
打印 上一主题 下一主题

[完整特效] durararaOP1特效py脚本 [复制链接]

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2011-8-5 22:07:09 |显示全部楼层 |倒序浏览
durararaOP1的py脚本 作为tcax 学习参考用
配合新版tcax 代码重新修正过了
效果挺简单 就不写很多注释了 有问题请回复
预览待编辑
  1. from tcaxPy import *

  2. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):
  3.     ASS_BUF = []
  4.     TCS_BUF = []

  5.     global _H
  6.     _H = GetVal(val_FontSize)                 #字体大小
  7.     _7X = _X - int(_A / 2 + 0.5)              # 第i句卡拉OK歌词的j个字符的左上角X轴坐标
  8.     _7Y = _Y - int(_H / 2 + 0.5)             # 第i句卡拉OK歌词的j个字符的左上角Y轴坐标

  9.     POS = pos(_X, _Y)                          
  10.     MOVE = move(_7X - _A, _Y, _X, _Y, 0, 150)
  11.     EFT = be(1)+bord(2)+blur(3)+alpha(200)

  12.     BegTime = _BT + 5 * _j - 45
  13.     for j in range(10):
  14.         EndTime = BegTime + 20 + j
  15.         for i in range (1,10,2):
  16.             CLIP = clip(_7X - 1, _7Y  - 1+((i-1)/10)*_H, _7X + 1 + 200 , _7Y + (i/10)*_H)
  17.             ass_main(ASS_BUF, SubL(BegTime + j, EndTime), MOVE + EFT+CLIP, _TXT)

  18.     ass_main(ASS_BUF, SubL(EndTime, _BT +_SK), POS, _TXT)
  19.    
  20.     for i in range(20):
  21.         MOVE = mov(_X+randint(-3,3),_Y+randint(-3,3),_X,_Y)
  22.         ass_main(ASS_BUF, SubL(_BT +_SK,_BT +_SK+_KT), MOVE + color1("FFFFFF") +alpha(220),_TXT)         

  23.     for k in range(_BT+_SK+_KT,_ET,10):
  24.         BEAT = mov(_X,_Y,_X+randint(-4,4),_Y+randint(-4,4))
  25.         ass_main(ASS_BUF, SubL(k, k+10),color1("FFFFFF")+BEAT, _TXT)

  26.     return (ASS_BUF, TCS_BUF)
复制代码
1

查看全部评分

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

沙发
发表于 2011-8-7 12:34:18 |显示全部楼层
dmcnero 发表于 2011-8-6 22:21
CLIP = clip(_7X - 1, _7Y  - 1+((i-1)/10)*_H, _7X + 1 + 200 , _7Y + (i/10)*_H)
意思大概明白,设置截取 ...


这效果我随便弄的
这边就是将字像百叶窗那样切条
(1/10)*_H 是切片的高度
for i in range (1,10,2): 是按照 1,3,5,7,9 的方式走 2是步距 1,10 是范围
整理来说 就是切10条 一隔一取里面5条 不知道能不能理解了。。。

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

板凳
发表于 2013-5-6 22:01:27 |显示全部楼层
lilight 发表于 2013-5-6 01:17
for语句不是很确定其效果,请教一下:

1 隨意切一下
2 這段代碼貌似沒寫對 無視掉t代碼就好 沒用的

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

地板
发表于 2013-12-14 19:22:44 |显示全部楼层
ccx 发表于 2013-12-14 12:08
有几个问题,7x= _X - int(_A / 2 + 0.5)  A是宽度吧
             _7Y = _Y - int(_H / 2  ...

+0.5 取 int 是爲了4舍5入 int取整是直接去掉小數點后的數字 +0.5 就能讓小數點后大於0.5的向個位進1了 編程里挺常用的一種方法
嘛 python 有round函數  習慣問題
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-5-3 19:29

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH