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

标题: 呜咕。。关于main特效的问题。。等 [打印本页]

作者: 爱雪音MiKu    时间: 2013-2-14 18:14:31     标题: 呜咕。。关于main特效的问题。。等

呜咕。。特效是这样的:
SHUFFLE第一季04(流畅)_自定义转码_320x240_201321418331.JPG
SHUFFLE第一季04(流畅)_自定义转码_320x240_201321418345.JPG

呜咕。。。就是字在填充颜色中。。没有填充完。。整行字幕的颜色又变了。。。是不是5中方式中的main效果呢0.0?。。可是举一个简单的例子吗?

啊呜。。如果偶要字幕在做到第5个字K值特效时。。整行字幕的颜色变换是这样判断的吗 if 4 - 1 < _j and _j <= 5 - 1    判断j吗0.0?


呜咕。。新年就来麻烦大大们。。对不起的说。。。新的一年请大大们“多多指教”。。新年快乐

图片附件: SHUFFLE第一季04(流畅)_自定义转码_320x240_201321418331.JPG (2013-2-14 18:04:51, 9.18 KB) / 下载次数 3185
http://tcax.org/forum.php?mod=attachment&aid=MTIwOXw0YWY0OGFiM3wxNzMyMjUyNDc1fDB8MA%3D%3D



图片附件: SHUFFLE第一季04(流畅)_自定义转码_320x240_201321418345.JPG (2013-2-14 18:04:50, 6.26 KB) / 下载次数 3246
http://tcax.org/forum.php?mod=attachment&aid=MTIwOHwyMWJkNDY0MXwxNzMyMjUyNDc1fDB8MA%3D%3D


作者: milkyjing    时间: 2013-2-15 11:38:12

你的思路可以算是正確的 (代碼可以簡化一下 if 4 == _j).

但要轉化為具體效果, 可能還需要動點腦子.

給個提示:

首先明確: 製作這個特效, 你應該是使用"逐字"效果的吧 (即直接使用tcaxPy_Main而未使用tcaxPy_User, tcaxPy_Line等方式).

必備技能: 變換顏色的ASS代碼你是否已經掌握了, 是否能夠改變單個字的顏色.

然後考慮: 如何使一句話的所有文字都在"同一時刻"改變顏色.

你可以循序漸進的來實現. 把問題簡化: 使一句話的所有文字都改變顏色.

在你實現這一步以後, 再討論後續問題.

作者: 爱雪音MiKu    时间: 2013-2-15 13:36:55

milkyjing 发表于 2013-2-15 11:38
你的思路可以算是正確的 (代碼可以簡化一下 if 4 == _j).

但要轉化為具體效果, 可能還需要動點腦子.

呜咕。。使一句话同时改变颜色是这样0.0?
  1. ass_main(ASS_BUF, SubL(_BT,_ET),blur(2.5)+pos(_X,_Y)+color3("BB76FA")+color1("FFFFFF")+t

  2. (color1("BB76FA")),_TXT)
复制代码
啊呜。。。偶只会在整个时间内慢慢变化。。。不会细微的控制。。。
作者: 爱雪音MiKu    时间: 2013-2-15 13:45:51

milkyjing 发表于 2013-2-15 11:38
你的思路可以算是正確的 (代碼可以簡化一下 if 4 == _j).

但要轉化為具體效果, 可能還需要動點腦子.

嘎哦。。试了一下。。字幕到第5个字的时候。。就消失了。。。到了第5 个字应该是开始特效。。而不是结束掉字幕。。。如果可以把颜色变换的时间可以放在这里控制会不会可以呢0.0?
作者: 渣渣疯子    时间: 2013-2-15 19:03:14

http://www.tcax.org/forum.php?mo ... &extra=page%3D1想控制几个字的时间可以参考下这个新版本的库文件,具体用起来也很方便http://www.tcax.org/forum.php?mo ... &extra=page%3D1例子也有现成的...我刚用过。你可以参考下里面的用法...
作者: 爱雪音MiKu    时间: 2013-2-15 19:37:23

渣渣疯子 发表于 2013-2-15 19:03
http://www.tcax.org/forum.php?mod=viewthread&tid=582&extra=page%3D1想控制几个字的时间可以参考下这 ...
  1. if _i == 0:

  2.         if _j < 6:

  3.             ass_main(ASS_BUF,SubL(_BT+_SK-30,_BT+_SK,2),an(5)+pos(_X,_Y)+color1("E9A99C")+blur

  4. (1)+bord(1)+color3("E9A99C")+fad(300,0),_TXT)

  5.             ass_main(ASS_BUF,SubL(_BT+_SK-30,_BT+_SK,1),an(5)+pos(_X+4,_Y+4)+color1("9E947C")

  6. +blur(1)+bord(1)+color3("9E947C")+alpha1(130)+alpha3(130)+fad(300,0),_TXT)

  7.             ass_main(ASS_BUF,SubL(_ET,_ET+30,2),an(5)+pos(_X,_Y)+color1("E9A99C")+blur(1)+bord(1)

  8. +color3("E9A99C")+fad(0,300),_TXT)

  9.             ass_main(ASS_BUF,SubL(_ET,_ET+30,1),an(5)+pos(_X+4,_Y+4)+color1("9E947C")+blur(1)

  10. +bord(1)+color3("9E947C")+alpha1(130)+alpha3(130)+fad(0,300),_TXT)

  11.             for i in range(int(_Fs)):

  12.                 Clip = clip(int(_X-_A / 2), int(_Y-_Fs/2+i), int(_X+_A/2), int(_Y-_Fs/2+i+1))

  13.                 for j in range(_BT+_SK,_ET,step):

  14.                     t = j

  15.                     t1 = t + step

  16.                     RAN1 = randint(-2,2)

  17.                     ass_main(ASS_BUF,SubL(t,t1,2),an(5)+pos(_X+RAN1,_Y)+color1("E9A99C")+blur(1)+bord

  18. (1)+color3("E9A99C")+Clip,_TXT)

  19.                     ass_main(ASS_BUF,SubL(t,t1,1),an(5)+pos(_X+RAN1+4,_Y+4)+color1("9E947C")+blur(1)

  20. +bord(1)+color3("9E947C")+alpha1(130)+alpha3(130)+Clip,_TXT)
复制代码
嘎哦。。用乃的也是呢。。字幕只显示到第5个字然后就没了0.0
作者: 爱雪音MiKu    时间: 2013-2-15 19:39:37

渣渣疯子 发表于 2013-2-15 19:03
http://www.tcax.org/forum.php?mod=viewthread&tid=582&extra=page%3D1想控制几个字的时间可以参考下这 ...

呜咕。。。偶就是想不明白。。。如何让整行字幕在第5 个字的K值时变颜色呢。。。想了几个写法。。可是都是到第5个字就没了0.0
作者: 渣渣疯子    时间: 2013-2-15 22:10:10

你这么写判定只有前面6个字,你要再加个else或者其他的判定,把后面部分的写出来
作者: 爱雪音MiKu    时间: 2013-2-16 07:56:40

渣渣疯子 发表于 2013-2-15 22:10
你这么写判定只有前面6个字,你要再加个else或者其他的判定,把后面部分的写出来 ...

呜咕。。。0.0。。PY语音和C#语音相似吗。。。偶记得else是if判断一个东西正确就不执行else。。错误才执行0.0?。。。。难道偶想错了?
作者: 爱雪音MiKu    时间: 2013-2-16 11:10:07

渣渣疯子 发表于 2013-2-15 22:10
你这么写判定只有前面6个字,你要再加个else或者其他的判定,把后面部分的写出来 ...

嘎哦。。不对。。是elif。。。那else是什么意思呀0.0?。。有看了一下PY语音教程。。。现在有一点混乱0.0
作者: showjim    时间: 2013-2-16 11:36:30

爱雪音MiKu 发表于 2013-2-16 13:10
嘎哦。。不对。。是elif。。。那else是什么意思呀0.0?。。有看了一下PY语音教程。。。现在有一点混乱0.0 ...

http://docspy3zh.readthedocs.org ... compound_stmts.html
这个
作者: 爱雪音MiKu    时间: 2013-2-16 11:45:49

showjim 发表于 2013-2-16 11:36
http://docspy3zh.readthedocs.org/en/latest/reference/compound_stmts.html
这个

呜咕。。那么在这里判断后加一个else。。同时执行else?。。。。

啊呜。。如果判断是真的不是就不执行else了吗?
作者: 渣渣疯子    时间: 2013-2-16 12:48:09

本帖最后由 渣渣疯子 于 2013-2-16 12:49 编辑

英文意思来理解就可以吧...if是判定,else是其他部分...就是if判定剩下的部分
作者: 爱雪音MiKu    时间: 2013-2-16 13:31:26

渣渣疯子 发表于 2013-2-16 12:48
英文意思来理解就可以吧...if是判定,else是其他部分...就是if判定剩下的部分 ...

呜咕。。感谢。。这个明白了。。现在的是问题是到第5 个字的时候用else的特效了。。。但是原始的字幕应该到第5 个字会变颜色。。。有办法让if j<5当作一个触发判定。。到第5个字所有的颜色(包括以填充和为填充颜色)的字同时变颜色呢0.0?
作者: milkyjing    时间: 2013-2-16 18:53:35

  1. from tcaxPy import *

  2. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _a, _TXT):
  3.     ASS_BUF  = []        # used for saving ASS FX lines
  4.    
  5.     #ass_main(ASS_BUF, SubL(_BT, _ET), pos(_X,_Y) + K(_SK) + K(_KT), _TXT)    # 普通的卡拉OK效果
  6.    
  7.     ass_main(ASS_BUF, SubL(_BT, _ET), pos(_X,_Y) + t(1000, 1000, color2('FFFFFF')) + K(_SK) + K(_KT), _TXT)    # 在某個固定時刻整行文字主體顏色發生改變
  8.    
  9.     return (ASS_BUF, None)
复制代码
舉一反三...
作者: 渣渣疯子    时间: 2013-2-16 19:03:41

爱雪音MiKu 发表于 2013-2-16 13:31
呜咕。。感谢。。这个明白了。。现在的是问题是到第5 个字的时候用else的特效了。。。但是原始的字幕应该 ...

获取第五个字的SK时间,然后让所有的字在这个时间变色就完事了
作者: 爱雪音MiKu    时间: 2013-2-16 19:03:55

milkyjing 发表于 2013-2-16 18:53
舉一反三...

呜咕。。V。。就是这个特效。。K(_SK) + K(_KT)。。这个时间定的是什么意思呀0.0?。。。。偶没见过
作者: milkyjing    时间: 2013-2-16 19:06:46

爱雪音MiKu 发表于 2013-2-16 19:03
呜咕。。V。。就是这个特效。。K(_SK) + K(_KT)。。这个时间定的是什么意思呀0.0?。。。。偶没见过 ...

最基本的ASS代碼啊... {\K50\K30} 前面的K時間都是等待時間, 最後一個K時間是變化時間... (意思是等50單位時間, 然後開始填充, 時長為30單位時間)....

恩, 這是基本, 無誤.
作者: 爱雪音MiKu    时间: 2013-2-16 19:07:59

渣渣疯子 发表于 2013-2-16 19:03
获取第五个字的SK时间,然后让所有的字在这个时间变色就完事了

呜咕。。0.0。。获取第5个字的时间?。。那个。。偶不会获取   
作者: 爱雪音MiKu    时间: 2013-2-16 19:11:05

milkyjing 发表于 2013-2-16 19:06
最基本的ASS代碼啊... {\K50\K30} 前面的K時間都是等待時間, 最後一個K時間是變化時間... (意思是等50單 ...

呜咕。。。知道了。。0.0。。
作者: milkyjing    时间: 2013-2-16 19:16:30

爱雪音MiKu 发表于 2013-2-16 19:07
呜咕。。0.0。。获取第5个字的时间?。。那个。。偶不会获取     ...


利用全局變量...

隨便哪裡寫

GetHelp()
Pause()

可以獲取幫助.


GetVal(val_KarTime)[_i][4]
作者: 爱雪音MiKu    时间: 2013-2-16 19:36:40

milkyjing 发表于 2013-2-16 19:16
利用全局變量...

隨便哪裡寫

呜咕。。没看懂(T.T)。。获取后直接代人?。。还是定义一个函数然后扔进去?。。
  1. if _j < 5 :
  2.         ass_main(ASS_BUF, SubL(_BT, _ET), pos(_X,_Y) + K(_SK) + K(_KT)+color1("FFFFFF"), _TXT)
  3.     else :  
  4.         ass_main(ASS_BUF, SubL(_BT, _ET), pos(_X,_Y) + K(_SK) + K(_KT)+color1("FFFFFF"), _TXT)
  5.         ass_main(ASS_BUF, SubL(_BT, _ET), pos(_X,_Y) + t(1000, 1000, color2('FFFFFF')) + K(_SK) + K

  6. (_KT), _TXT)
复制代码
嘎哦。。。偶只会改下成这样了。。。写不下去了。。。因为想不明白了(T.T)
作者: 渣渣疯子    时间: 2013-2-16 19:58:13

爱雪音MiKu 发表于 2013-2-16 19:07
呜咕。。0.0。。获取第5个字的时间?。。那个。。偶不会获取     ...

直接用哪个get函数就完事了获取时间后,写一行开始时间到第五个字的效果,再写一行第五个字到结束的效果,就完事了
作者: 爱雪音MiKu    时间: 2013-2-16 20:04:45

渣渣疯子 发表于 2013-2-16 19:58
直接用哪个get函数就完事了获取时间后,写一行开始时间到第五个字的效果,再写一行第五个字到结束的效果 ...

呜咕。。M大大写的GetVal(val_KarTime)[_i][4]这个?。。。
S=GetVal(val_KarTime)[_i][4]
ass_main(ASS_BUF, SubL(_BT, S), pos(_X,_Y) + K(_SK) + K(_KT)+color1("FFFFFF"), _TXT)
ass_main(ASS_BUF, SubL(S, _ET), pos(_X,_Y) + K(_SK) + K(_KT)+color1("BB76FA"), _TXT)

这样写吗?
作者: 渣渣疯子    时间: 2013-2-17 00:04:36

爱雪音MiKu 发表于 2013-2-16 20:04
呜咕。。M大大写的GetVal(val_KarTime)[_i][4]这个?。。。
S=GetVal(val_KarTime)[_i][4]
ass_main(ASS_ ...

http://www.tcax.org/forum.php?mo ... &extra=page%3D1直接用这个不是方便点么...大概就是这个意思,这样弄不行么?
作者: 爱雪音MiKu    时间: 2013-2-17 07:52:35

渣渣疯子 发表于 2013-2-17 00:04
http://www.tcax.org/forum.php?mod=viewthread&tid=582&extra=page%3D1直接用这个不是方便点么...大概 ...

getKT[_i][4]
呜咕。。这样0.0?。。。

啊呜。。写一个简单的例子给偶看看吧(T.T)。。偶比较笨
作者: 渣渣疯子    时间: 2013-2-17 14:41:23

爱雪音MiKu 发表于 2013-2-17 07:52
getKT[_i][4]
呜咕。。这样0.0?。。。

t1 = getSK(0,4)
t2 = getKT(0,4)
第一行第五个字开始时间:
ts = _BT+t1
第一行第五个字结束时间:
te = _BT+t1+t2
作者: 爱雪音MiKu    时间: 2013-2-17 15:03:57

渣渣疯子 发表于 2013-2-17 14:41
t1 = getSK(0,4)
t2 = getKT(0,4)
第一行第五个字开始时间:

呜咕。。这样就明白了。。谢谢。。然后继续解决问题0.0
  1. from tcaxPy import *




  2.    


  3. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):



  4.     ASS_BUF  = []        # used for saving ASS FX lines




  5.     ass_main(ASS_BUF, SubL(_BT+_SK, _ET), pos(_X,_Y) +color1("BB76FA"), _TXT)


  6.     t1 = getSK(0,5)
  7.     t2 = getKT(0,5)
  8.     ts = _BT+t1
  9.     te = _BT+t1+t2
  10.     ass_main(ASS_BUF, SubL(_BT, ts+10), pos(_X,_Y) +  color1('68DDF1') , _TXT)
  11.     ass_main(ASS_BUF, SubL(ts+10, _ET), pos(_X,_Y) +  color1('FFFFFF') , _TXT)


  12.    
  13.    
  14.         
  15.     #############################

  16.     return (ASS_BUF, None)
复制代码
呜咕。。颜色的统一变换是做到了。。现在第一个main特效的颜色不填充了0.0?。。。低下定的时间影响到上面了吗?
作者: 渣渣疯子    时间: 2013-2-17 17:50:05

爱雪音MiKu 发表于 2013-2-17 15:03
呜咕。。这样就明白了。。谢谢。。然后继续解决问题0.0呜咕。。颜色的统一变换是做到了。。现在第一个mai ...

填充?你贴出来的代码里没有填充的效果啊,你是不是忘了加K(_KT)这个?
作者: 爱雪音MiKu    时间: 2013-2-17 18:01:51

渣渣疯子 发表于 2013-2-17 17:50
填充?你贴出来的代码里没有填充的效果啊,你是不是忘了加K(_KT)这个? ...

ass_main(ASS_BUF, SubL(_BT+_SK, _ET), pos(_X,_Y) +color1("BB76FA"), _TXT)

呜咕。。至少这行代码一个字一个字在K值内变颜色吧0.0?。。不是这样写吗?
作者: 渣渣疯子    时间: 2013-2-17 18:16:15

爱雪音MiKu 发表于 2013-2-17 18:01
ass_main(ASS_BUF, SubL(_BT+_SK, _ET), pos(_X,_Y) +color1("BB76FA"), _TXT)

呜咕。。至少这行代码一 ...

这行要在K值内变色的话是ass_main(ASS_BUF, SubL(_BT+_SK, _ET), pos(_X,_Y) +color1("BB76FA")+K(_KT), _TXT)你最好再加个color2
作者: 爱雪音MiKu    时间: 2013-2-17 18:19:54

渣渣疯子 发表于 2013-2-17 18:16
这行要在K值内变色的话是ass_main(ASS_BUF, SubL(_BT+_SK, _ET), pos(_X,_Y) +color1("BB76FA")+K(_KT),  ...

呜咕。。V。。明白了。。

ass_main(ASS_BUF,SubL(_BT+_SK-15,_BT+_SK+_KT/2),blur(5)+move(_X,_Y,_X,_Y+5)+color3("CCCCCC") ,_TXT)

这段代码是你写的。。这里不加K(_KT)也变颜色了呢0.0?。。


作者: 渣渣疯子    时间: 2013-2-17 18:51:32

爱雪音MiKu 发表于 2013-2-17 18:19
呜咕。。V。。明白了。。

ass_main(ASS_BUF,SubL(_BT+_SK-15,_BT+_SK+_KT/2),blur(5)+move(_X,_Y,_X,_Y+ ...

这是那里面的?或许是下一句话变得颜色吧...这世间定义不是才执行到K时间的一半么?
作者: 爱雪音MiKu    时间: 2013-2-17 18:54:27

渣渣疯子 发表于 2013-2-17 18:51
这是那里面的?或许是下一句话变得颜色吧...这世间定义不是才执行到K时间的一半么? ...

呜咕。。这个http://www.tcax.org/forum.php?mod=viewthread&tid=286

啊呜。。文字效果里的吧。。偶稍微的改了一点
作者: 渣渣疯子    时间: 2013-2-17 22:00:48

爱雪音MiKu 发表于 2013-2-17 18:54
呜咕。。这个http://www.tcax.org/forum.php?mod=viewthread&tid=286

啊呜。。文字效果里的吧。。偶稍 ...

变色是用了底下哪一行的啊,底下那一行颜色定义不是变了么
作者: 爱雪音MiKu    时间: 2013-2-18 06:59:21

渣渣疯子 发表于 2013-2-17 22:00
变色是用了底下哪一行的啊,底下那一行颜色定义不是变了么

嘎哦。。明白了。。。继续研究特效去了




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