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

 找回密码
 新人加入
楼主: 爱雪音MiKu
打印 上一主题 下一主题

[已解决] 求助这两个特效如何组合0.0 [复制链接]

Rank: 4

楼主
发表于 2012-9-13 13:35:12 |显示全部楼层
本帖最后由 kk123456 于 2012-9-13 13:50 编辑
  1. from tcaxPy import *


  2. def tcaxPy_Init():
  3.     global _FD                         # frame duration, in millisecond
  4.     global _Blur
  5.     global _Fs
  6.     _Fs = GetVal(val_FontSize)
  7.     _FD = 1000 / GetVal(val_FXFPS)
  8.     _Blur = GetVal(val_Blur)


  9. def tcaxPy_Fin():
  10.     pass


  11. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
  12.     ASS_BUF  = []        # used for saving ASS FX lines
  13.     TCAS_BUF = []        # used for saving TCAS FX raw data

  14.     _7X = _x - int(_a / 2 + 0.5)
  15.     _7Y = _y - int(_Fs / 2 + 0.5)

  16.     ts = _start + _elapk
  17.     te0 =_start + _elapk +_k                              
  18.     te = _end - (_n - _j - 1)  * _FD / 10  * _FD / 10  
  19.     for i in range(0,_a,3):
  20.         for j in range(0,_Fs,3):
  21.             COLOR=[ "696AFF", "FF9C69","69EBFF","A5BDED","C9F2DC" ]
  22.             COLOR1=color1(COLOR[randint(0,4)])
  23.             R = randint(-10,10)
  24.             Xx1 = 50
  25.             MOVE1 = move(_x,_y,_x,_y)
  26.             CLIP1 = clip(_7X+i+Xx1,_7Y+j,_7X+i+1+Xx1,_7Y+j+1)+t(clip(_7X+i,_7Y+j,_7X+i+3,_7Y+j+3))
  27.            
  28.             EFT = MOVE1+CLIP1+COLOR1+blur(_Blur)
  29.             ass_main(ASS_BUF,SubL(ts + j*_k/_Fs + R, te0, 10), EFT, _txt)
  30.     ass_main(ASS_BUF,SubL(te0, te, 11), pos(_x,_y), _txt)
  31.     return (ASS_BUF, TCAS_BUF)
复制代码
改成这样试试

Rank: 4

沙发
发表于 2012-9-13 13:49:26 |显示全部楼层
本帖最后由 kk123456 于 2012-9-13 14:09 编辑
爱雪音MiKu 发表于 2012-9-13 13:38
呜咕。。这样改字幕就变成一个点了0.0


遮罩写错了

Rank: 4

板凳
发表于 2012-9-13 13:53:57 |显示全部楼层
如果想在遮罩有移动效果的话参考这个
http://www.tcax.org/forum.php?mo ... &extra=page%3D1

Rank: 4

地板
发表于 2012-9-13 13:56:49 |显示全部楼层
爱雪音MiKu 发表于 2012-9-13 13:04
呜咕。。那个特效偶试了该一下。。遮罩偶做出来。。可是字幕从右边移动到指定的位置了。可是K值效果结束 ...

你这个的结束时间并不是_k的结束时间,如果这样写的话唱完了那个字可eft效果还在继续.

Rank: 4

5#
发表于 2012-9-13 14:07:52 |显示全部楼层
本帖最后由 kk123456 于 2012-9-13 14:12 编辑
爱雪音MiKu 发表于 2012-9-13 13:38
呜咕。。这样改字幕就变成一个点了0.0
  1. from tcaxPy import *


  2. def tcaxPy_Init():
  3.     global _FD                         # frame duration, in millisecond
  4.     global _Blur
  5.     global _Fs
  6.     _Fs = GetVal(val_FontSize)
  7.     _FD = 1000 / GetVal(val_FXFPS)
  8.     _Blur = GetVal(val_Blur)


  9. def tcaxPy_Fin():
  10.     pass


  11. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
  12.     ASS_BUF  = []        # used for saving ASS FX lines
  13.     TCAS_BUF = []        # used for saving TCAS FX raw data

  14.     _7X = _x - int(_a / 2 + 0.5)
  15.     _7Y = _y - int(_Fs / 2 + 0.5)

  16.     ts = _start + _elapk
  17.     te0 =_start + _elapk +_k                              
  18.     te = _end - (_n - _j - 1)  * _FD / 10  * _FD / 10  
  19.     for i in range(0,_a,3):
  20.         for j in range(0,_Fs,3):
  21.             COLOR=[ "696AFF", "FF9C69","69EBFF","A5BDED","C9F2DC" ]
  22.             COLOR1=color1(COLOR[randint(0,4)])
  23.             R = randint(-10,10)
  24.             Xx1 = 50
  25.             MOVE1 = move(_x+Xx1,_y,_x,_y)
  26.             CLIP1 = clip(_7X+i+Xx1,_7Y+j,_7X+i+3+Xx1,_7Y+j+3)+t(clip(_7X+i,_7Y+j,_7X+i+3,_7Y+j+3))
  27.            
  28.             EFT = MOVE1+CLIP1+COLOR1+blur(_Blur)
  29.             ass_main(ASS_BUF,SubL(ts + i*_k/_Fs + R, te0, 10), EFT, _txt)
  30.     ass_main(ASS_BUF,SubL(te0, te, 11), pos(_x,_y), _txt)
  31.     return (ASS_BUF, TCAS_BUF)
复制代码
试试这个吧,应该是你想要的效果了。我要去上课了

Rank: 4

6#
发表于 2012-9-13 21:54:57 |显示全部楼层
爱雪音MiKu 发表于 2012-9-13 19:03
呜咕。。刚刚放学到家。。这个代码遮罩还是不行呢。。。K值效果结束字也就没了0.0 ...

怎么可能,这个代码明明是在k值时间结束时遮罩和移动效果完成,在退场效果开始前字体消失,你可以加个退场效果看看。如果是想在句子结束时间是字体全消失,可以将改成te=_end.

Rank: 4

7#
发表于 2012-9-14 13:34:48 |显示全部楼层
爱雪音MiKu 发表于 2012-9-14 13:20
呜咕。。V。。问一下。。那个。。就这两个特效偶想把它们链接起来。。。就是第一个特效结束后,用第二个 ...

把第一个效果的te改成te= _end - (_n - _j ) * time_fac * _FD / 10 + time_gap * _FD / 10
然后在tcc中一起使用

Rank: 4

8#
发表于 2012-9-14 13:47:37 |显示全部楼层
本帖最后由 kk123456 于 2012-9-14 13:54 编辑
  1. from tcaxPy import *


  2. def tcaxPy_Init():
  3.     global _FD                              # frame duration, in millisecond
  4.     global _Fs
  5.     global _Blur
  6.    
  7.     _Blur = GetVal(val_Blur)
  8.     _FD = 1000 / GetVal(val_FXFPS)
  9.     _Fs = GetVal(val_FontSize)

  10. def tcaxPy_Fin():
  11.     pass

  12. time_gap = 1    # you can change this value to 0, or 2 or any other number
  13. time_fac = 1    # you can change this value to 0, or 2 or any other number



  14. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
  15.     ASS_BUF  = []        # used for saving ASS FX lines
  16.     TCAS_BUF = []        # used for saving TCAS FX raw data
  17.    
  18.     duration = 10 * _FD

  19.     _7X = _x - int(_a / 2 + 0.5)              # 第i句卡拉OK歌词的j个字符的左上角X轴坐标
  20.     _7Y = _y - int(_Fs / 2 + 0.5)  

  21.     ts = _start + _elapk                                   # start time, in semi-second
  22.     te = te= _end - (_n - _j ) * time_fac * _FD / 10 + time_gap * _FD / 10

  23.     for i in range(0,_a,3):
  24.         for j in range(0,_Fs,3):
  25.             COLOR=[ "696AFF", "FF9C69","69EBFF","A5BDED","C9F2DC" ]
  26.             COLOR1=color1(COLOR[randint(0,4)])

  27.             R = randint(-10,10)
  28.             Xx1 = randint(-50,50)
  29.             Yy1 = randint(-30,30)
  30.             MOVE1 = move(_x+Xx1,_y+Yy1,_x,_y,0, 10 * _k)
  31.             CLIP1 = clip(_7X+i+Xx1,_7Y+j+Yy1,_7X+i+3+Xx1,_7Y+j+3+Yy1)+t(0, 10 * _k,clip(_7X+i,_7Y+j,_7X+i+3,_7Y+j+3))
  32.             
  33.             EFT = MOVE1+CLIP1+fad(100,0)+COLOR1+blur(_Blur)               
  34.    

  35.             ass_main(ASS_BUF, SubL(ts+R, te), EFT, _txt)         # store the effect

  36.     return (ASS_BUF, TCAS_BUF)
复制代码
把第一个效果改成这样,错误原因是第一个效果没有定义一些变量。我也去上课咯。

Rank: 4

9#
发表于 2012-9-14 20:19:37 |显示全部楼层
爱雪音MiKu 发表于 2012-9-14 20:01
嘎哦。。V。。谢谢。。有用了呢。。。那个duration = 10 * _FD这个代码是什么意思呀?。。
...

字面上的意思,10个帧长,计算时间用的

Rank: 4

10#
发表于 2012-9-14 20:26:40 |显示全部楼层
爱雪音MiKu 发表于 2012-9-14 20:23
呜咕。。duration。。这个意思呢?。。好像内置特效的in_001逐字淡出用到的0.0 ...

英语,持续时间的意思,是个自定义变量罢了,换成别的名字也行

Rank: 4

11#
发表于 2012-9-14 20:31:30 |显示全部楼层
爱雪音MiKu 发表于 2012-9-14 20:28
呜咕。。V。。那么这句duration = 10 * _FD。。代码一般链接特效时间都用到吗0.0 ...

内置的都有用到,自己写的话随便了(看你想要什么样的效果),反正我就没用过

Rank: 4

12#
发表于 2012-9-14 20:35:12 |显示全部楼层
爱雪音MiKu 发表于 2012-9-14 20:34
呜咕。。如果自己编写一个EFT的特效。。配一个内置的结束特效。。也要用到吗? ...

要用内置的话就要用到

Rank: 4

13#
发表于 2012-9-15 20:03:35 |显示全部楼层
爱雪音MiKu 发表于 2012-9-15 19:42
呜咕。。mask是什么0.0

遮罩啊
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-5-5 20:42

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH