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

标题: 这种特效如何编写得到呢? [打印本页]

作者: 爱雪音MiKu    时间: 2012-9-9 20:43:00     标题: 这种特效如何编写得到呢?

本帖最后由 爱雪音MiKu 于 2012-9-12 20:11 编辑

呜咕。。就是那种。。一开始一句字幕。。无颜色的。。然后通过颜色填充就有颜色了。。偶试了改EFT的。。可是填充一个字。。到下一个字之前的填充就没了(T.T)。。可以改什么代码修改这样的缺憾吗。。这种特效很多字幕组用呢。。。


偶会在这里常驻一段时间。。好好学习TCAX。。希望这里的大大帮忙。。
(之前一直都用AE,Vegas做字幕。。可是TCAX的特效真的非常的美。。。偶非常喜欢。。)
偶对编程几乎不懂。。所以学TCAX的时候问题很多。。。希望这里的大大能帮帮偶。。非常感谢。。
作者: milkyjing    时间: 2012-9-9 20:50:24

之前填充的没掉, 是因为时效设定的问题...拼接下时间就行了. 更详细说, 就是, 增加一行代码, 开始时间是K值表现时间的结束, 结束时间等于第一句(无颜色)的结束时间...

给你的一点建议是, 先系统的开过一些教程+代码, 有了全局的理解后, 再去考虑这些具体效果...
作者: 爱雪音MiKu    时间: 2012-9-9 20:53:31

milkyjing 发表于 2012-9-9 20:50
之前填充的没掉, 是因为时效设定的问题...拼接下时间就行了
  1. ################################################################################
  2. ### description:
  3. ### normal karaoke


  4. from tcaxPy import *


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


  10. def tcaxPy_Fin():
  11.     pass


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

  15.     ts = _start + _elapk                                   # start time, in semi-second
  16.     te = _start + _elapk + _k                              # end time, in semi-second
  17.     EFT = pos(_x, _y) + K(_k)                              # ASS events
  18.     if _Blur > 0:
  19.         EFT += blur(_Blur)
  20.     ass_main(ASS_BUF, SubL(ts, te, 10), EFT, _txt)         # store the effect

  21.     return (ASS_BUF, TCAS_BUF)
复制代码
呜咕。。比如eft_001的这个内置特效。。。K(_k)这句就单字的K值。。这个K值特效做完了。。就会回复到原来的字了。。。要怎么设置。。才可以保留填充的颜色呢?
作者: kk123456    时间: 2012-9-9 22:01:23

修改时间,比如将te直接改成结束效果的开始时间,然后不要存在效果了。
或者将存在效果的颜色改为填充色也行
方法很多
作者: 渣渣疯子    时间: 2012-9-10 10:10:45

内置脚本里有类似的效果吧,而且用clip也可以做,eft_001就是这个效果
作者: 爱雪音MiKu    时间: 2012-9-10 12:45:08

kk123456 发表于 2012-9-9 22:01
修改时间,比如将te直接改成结束效果的开始时间,然后不要存在效果了。
或者将存在效果的颜色改为填充色也 ...

呜咕。。可以详细点吗。。如何改te?。。偶试了把那个_k这个去了就和开始的那个一样了。。可是有错误(T.T)
作者: 爱雪音MiKu    时间: 2012-9-10 12:45:32

渣渣疯子 发表于 2012-9-10 10:10
内置脚本里有类似的效果吧,而且用clip也可以做,eft_001就是这个效果

呜咕。。0.0。。clip是什么
作者: 渣渣疯子    时间: 2012-9-10 17:56:32

爱雪音MiKu 发表于 2012-9-10 12:45
呜咕。。0.0。。clip是什么

clip是切割,切割一个形状做遮罩,具体的用法的话...http://www.tcax.org/forum.php?mo ... &extra=page%3D2不介意就看看我这个脚本吧...29~32行的代码就是clip的用法...这个是横向的,你也可以做成纵向的,只要控制好坐标
作者: 爱雪音MiKu    时间: 2012-9-10 20:11:21

渣渣疯子 发表于 2012-9-10 17:56
clip是切割,切割一个形状做遮罩,具体的用法的话...http://www.tcax.org/forum.php?mod=viewthread&ti ...

呜咕。。看不懂(T.T)。。Clip = clip(int(_X-_A / 2), int(_Y-_Fs/2+k), int(_X+_A/2), int(_Y-_Fs/2+k+1))

这句能帮偶讲解一下吗  。。还有那个/2是干什么的呢?(是除号?)
作者: 渣渣疯子    时间: 2012-9-10 20:20:38

爱雪音MiKu 发表于 2012-9-10 20:11
呜咕。。看不懂(T.T)。。Clip = clip(int(_X-_A / 2), int(_Y-_Fs/2+k), int(_X+_A/2), int(_Y-_Fs/2+k ...

未命名1.jpg 配个渣图吧,clip就是做个遮罩,显示范围就是方框内,clip(x1,y1,x2,y2)这些坐标对应方框的范围,/2是除法,这个遮罩的宽度是字体的宽度,高度是1,因为我选择的定位是an(5)所谓范围就这样设置了,如果定位是an(7)的话,就要修改clip里面的数了

图片附件: 未命名1.jpg (2012-9-10 20:14:37, 4.12 KB) / 下载次数 2764
http://tcax.org/forum.php?mod=attachment&aid=OTQ3fDY5Y2Y3ZGJmfDE3MzIyMjY1MDl8MHww


作者: 爱雪音MiKu    时间: 2012-9-10 20:27:31

渣渣疯子 发表于 2012-9-10 20:20
配个渣图吧,clip就是做个遮罩,显示范围就是方框内,clip(x1,y1,x2,y2)这些坐标对应方框的范围,/2是除 ...

呜咕。。V。。明白。。对了TCAX里 符号偶想了解一下。。。“—”是减号?,“*”乘号?,“+”是加特效?
作者: 渣渣疯子    时间: 2012-9-10 21:55:01

爱雪音MiKu 发表于 2012-9-10 20:27
呜咕。。V。。明白。。对了TCAX里 符号偶想了解一下。。。“—”是减号?,“*”乘号?,“+”是加特效? ...

没看过python的基础教程么?_这符号不是减号,- 才是减号...乘号没错,+号可以算连接符,也可以是加法
作者: milkyjing    时间: 2012-9-10 22:10:41

爱雪音MiKu 发表于 2012-9-10 20:27
呜咕。。V。。明白。。对了TCAX里 符号偶想了解一下。。。“—”是减号?,“*”乘号?,“+”是加特效? ...


对于数字, 有四则运算, 加%取摸, //整除, 对于字符串+就是连接两个字符串了...
可以先看一下基本的Python教程, 有助于你更快入门...

呜咕。。比如eft_001的这个内置特效。。。K(_k)这句就单字的K值。。这个K值特效做完了。。就会回复到原来的字了。。。要怎么设置。。才可以保留填充的颜色呢?

这个理解不是很到位, 每句效果都有它自己的存在时间, 坐标位置, 以及层(同一时间, 同一地点, 层数高的会覆盖层数低的). 所以K值效果之后, 并不是"回"到原来的效果(颜色), 本质上是, 原来的颜色还继续存在着(而K值效果消失了). 如何保留K值过后的颜色? 一个很好理解的做法是, 在增加一行特效(ass_main), 这个特效的起始时间是K效果的结束时间(_start + _elapk + _k), 结束时间和第一个效果(就是你说的"原来那颜色")的结束时间相同. 把这个效果加到两个效果之后, 或者把这个效果的Layer值设高一点.


作者: six    时间: 2012-9-11 08:25:33

milkyjing 发表于 2012-9-10 22:10
对于数字, 有四则运算, 加%取摸, //整除, 对于字符串+就是连接两个字符串了...
可以先看一下基本的Pytho ...

他应该先在Aegisub里撸几根普通轴 @@
作者: 爱雪音MiKu    时间: 2012-9-11 13:21:11

milkyjing 发表于 2012-9-10 22:10
对于数字, 有四则运算, 加%取摸, //整除, 对于字符串+就是连接两个字符串了...
可以先看一下基本的Pytho ...
  1. from tcaxPy import *


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


  7. def tcaxPy_Fin():
  8.     pass


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

  12.     ts = _start + _elapk                                   # start time, in semi-second
  13.     te = _start + _elapk + _k                              # end time, in semi-second
  14.     EFT = pos(_x, _y) + K(_k)                              # ASS events
  15.     if _Blur > 0:
  16.         EFT += blur(_Blur)
  17.     ass_main(ASS_BUF, SubL(ts, te, 10), EFT, _txt)
  18.      
  19.     ts = _start + _elapk + _k
  20.     te = _end + _k
  21.     EFT = pos(_x, _y) + K(_k)
  22.     ass_main(ASS_BUF, SubL(ts, te, 10), EFT, _txt)        
  23.     return (ASS_BUF, TCAS_BUF)
复制代码
呜咕。。这样么0.0。效果不是那样填充的(T.T)。。偶理解错了吗
作者: 爱雪音MiKu    时间: 2012-9-11 13:23:34

渣渣疯子 发表于 2012-9-10 21:55
没看过python的基础教程么?_这符号不是减号,- 才是减号...乘号没错,+号可以算连接符, ...

呜咕。。看过0.0。。偶看的就是本论坛的入门教程和进阶教程。。就是-这个号没讲到。。在编程里各种符号的用法不一样。。所以偶不确定这个符号的意思。
作者: 渣渣疯子    时间: 2012-9-11 19:53:11

爱雪音MiKu 发表于 2012-9-11 13:23
呜咕。。看过0.0。。偶看的就是本论坛的入门教程和进阶教程。。就是-这个号没讲到。。在编程里各种符号的 ...

去找些完整脚本看看吧,然后尝试改写,等熟悉了格式,再尝试自己来写自己的东西吧
作者: 爱雪音MiKu    时间: 2012-9-11 20:28:25

渣渣疯子 发表于 2012-9-11 19:53
去找些完整脚本看看吧,然后尝试改写,等熟悉了格式,再尝试自己来写自己的东西吧 ...
  1. x1 = _x - _a / 2
  2.     x2 = _x + _a / 2
  3.     for i in range(_Fs):
  4.         y1 = _y - _Fs / 2 + i
  5.         y2 = y1 + 1
  6.         EFT = pos(_x, _y) + clip(x1, y1, x2, y2) + color1(COLOR[i]) + alpha3(255)
复制代码
呜咕。。V。。先学习内置特效咯。。。上面的这段代码的意思是:
是:X坐标减a(a相当于字的宽度?)除2
      x坐标加a除2
      for i in range(_Fs)这句什么意思?。。偶只知道与字的大小有关0.0
      y坐标减设置的字体大小除2,加i
      Y1再加1
      字幕的位置,切割遮罩,颜色,透明度。。。。。这样理解对吗?
   
可是偶感觉那个遮罩切割了好奇怪(T.T)。。想不出那个遮罩的形状(T.T)
  
作者: 渣渣疯子    时间: 2012-9-11 20:43:00

本帖最后由 渣渣疯子 于 2012-9-11 20:43 编辑
爱雪音MiKu 发表于 2012-9-11 20:28
呜咕。。V。。先学习内置特效咯。。。上面的这段代码的意思是:
是:X坐标减a(a相当于字的宽度?)除2
    ...


for i in range (5)如果这样明白么?你有看到教程的循环部分么?for循环和while循环都去看一下吧,_Fs就是字体高度嘛...把它当成一个数字就好了_a是字体宽度没错,遮罩形状的话,貌似之前有说过,去仔细看看10L的回复吧
作者: 爱雪音MiKu    时间: 2012-9-11 20:55:51

渣渣疯子 发表于 2012-9-11 20:43
for i in range (5)如果这样明白么?你有看到教程的循环部分么?for循环和while循环都去看 ...

呜咕。。V。。遮罩形状知道了。。就为什么要除2呢?。。除2偶总是想不通(T.T)。。
作者: 渣渣疯子    时间: 2012-9-11 21:03:30

爱雪音MiKu 发表于 2012-9-11 20:55
呜咕。。V。。遮罩形状知道了。。就为什么要除2呢?。。除2偶总是想不通(T.T)。。 ...

嘿嘿,这个10L也有解释啊,an(5)的问题,如果是an(7)的话,就是x1=_x x2=_x+_a y1 = _y+i y2 = y1+1了,和字幕的定位有关系的
作者: 爱雪音MiKu    时间: 2012-9-11 21:10:01

渣渣疯子 发表于 2012-9-11 21:03
嘿嘿,这个10L也有解释啊,an(5)的问题,如果是an(7)的话,就是x1=_x x2=_x+_a y1 = _y+i ...

呜咕。。V。。明白了0.0。。这样讲解详细多了【这货比较笨(T.T)。。非常感谢。。
作者: 渣渣疯子    时间: 2012-9-11 21:22:12

爱雪音MiKu 发表于 2012-9-11 21:10
呜咕。。V。。明白了0.0。。这样讲解详细多了【这货比较笨(T.T)。。非常感谢。。 ...

没事,同类人=。=我也是那种需要手把手仔细教才能懂得人
作者: 爱雪音MiKu    时间: 2012-9-11 21:32:29

渣渣疯子 发表于 2012-9-11 21:22
没事,同类人=。=我也是那种需要手把手仔细教才能懂得人

嘎哦。。www
作者: six    时间: 2012-9-12 08:23:45

爱雪音MiKu 发表于 2012-9-11 21:32
嘎哦。。www

你完了,轴神准备手把手教你体位。
作者: 爱雪音MiKu    时间: 2012-9-12 13:12:40

six 发表于 2012-9-12 08:23
你完了,轴神准备手把手教你体位。

呜咕。。轴神0.0。。打时间轴超厉害吗0.0
作者: six    时间: 2012-9-12 15:48:49

爱雪音MiKu 发表于 2012-9-12 13:12
呜咕。。轴神0.0。。打时间轴超厉害吗0.0

轴神最厉害的不在于他打轴厉害,而是他通过不断的打轴领悟了特效制作的精华。
作者: 渣渣疯子    时间: 2012-9-12 16:51:19

six 发表于 2012-9-12 15:48
轴神最厉害的不在于他打轴厉害,而是他通过不断的打轴领悟了特效制作的精华。 ...

⑥神...你够了=。=不要误导别人啊
作者: 爱雪音MiKu    时间: 2012-9-12 19:49:55

six 发表于 2012-9-12 15:48
轴神最厉害的不在于他打轴厉害,而是他通过不断的打轴领悟了特效制作的精华。 ...

啊呜。。好厉害的大大0.0。。也就是说能做很多很多特效了?
作者: milkyjing    时间: 2012-9-12 21:35:40

爱雪音MiKu 发表于 2012-9-12 19:49
啊呜。。好厉害的大大0.0。。也就是说能做很多很多特效了?

是的, 我想你也可以.
作者: 爱雪音MiKu    时间: 2012-9-12 21:58:53

milkyjing 发表于 2012-9-12 21:35
是的, 我想你也可以.

呜咕。。偶还要学习很多很多的东西。。才能那样呢。。。至少偶会为这个目标加油的。。V。。
作者: mzlmcx    时间: 2012-9-12 23:39:27

gj……我也要努力多看看py……
六爷,快来手把手教我学特效……

最近好颓废好颓废啊
作者: six    时间: 2012-9-13 08:18:32

mzlmcx 发表于 2012-9-12 23:39
gj……我也要努力多看看py……
六爷,快来手把手教我学特效……

最近好想念呀好想念,哔哔姐头像一片灰。




欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://tcax.org/) Powered by Discuz! X2