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

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

[已解决] 呜咕。。求教自编特效的时间写法(T.T)。。无力了 [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2013-2-3 16:01:01 |只看该作者 |正序浏览
  1. rom tcaxPy import *


  2. def tcaxPy_Init():
  3.    global _FD
  4.    global _Fs
  5.    global _Blur
  6.    global _BT

  7.    _Blur = GetVal(val_Blur)
  8.    _FD = 1000 / GetVal(val_FXFPS)
  9.    _Fs = GetVal(val_FontSize)
  10.    _BT = GetVal(val_BegTime)


  11. def tcaxPy_Fin():
  12.    pass


  13. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):

  14.     ASS_BUF  = []        # used for saving ASS FX lines
  15.     TCAS_BUF = []        # used for saving TCAS FX raw data

  16.    
  17.     ass_main(ASS_BUF, SubL(_BT + _j * _FD / 10 + 20, _BT + _j * _FD / 10), move(_x+25,_y,_x,_y),

  18. _txt)
  19.    
  20.     _1X = _x - int(_a / 2 + 0.5)
  21.     _1y = _y - int(_Fs / 2 + 0.5)


  22.     for i in range(0,_a,3):
  23.         for j in range(0,Fs,3):
  24.             COLOR = ["2C6FE4", "D5F64D", "FA5CE1", "5DFDB6", "635AF9", "FFFFFF"]
  25.             COLOR1 = color2(COLOR[randint(0,5)])
  26.             R = randint(-10,10)
  27.             ix = randint(-20,25)
  28.             iy = randint(20,40)
  29.             iMOVE = move(_x,_y,_x+ix,_y+iy,7,10 * _k)
  30.             iCLIP = clip(_1X+i,_1Y+j,_1X+i+7,_1Y+j+7)+t(7,10 * _k,clip

  31. (_1X+i+ix,_1Y+j+iy,_1X+i+7+ix,_1X+j+7+iy))
  32.             EFT = iMOVE+iCLIP+fad(100,0)+COLOR1+blur(_Blur)
  33.             ass_main(ASS_BUF,SubL(_BT + _j * _FD / 10 + R, _ET),EFT,_txt)
  34.             
  35.             
  36.     EFT1 = alpha1(HexToDec('AA')) + alpha3(HexToDec('AA')) + color1('FFFFFF') + \
  37.             bord(5) + blur(5) + t(0, 100, bord(3) + blur(3)) + fad(0, 200)
  38.     EFT2 = alpha1(HexToDec('AA')) + alpha3(HexToDec('00')) + color1('FFFFFF') + color3('FFFFFF') + \
  39.             bord(3) + blur(3) + t(0, 100, bord(1) + blur(1) + alpha3(HexToDec('44'))) + fad(0, 200)
  40.     for k in range(2):
  41.          num = 80    # 曲线上点的个数
  42.          xs = _x - 40    # 开始点
  43.          ys = _y - 40
  44.          xc1 = _x   # 控制点1
  45.          yc1 = _y
  46.          zc1 = _z + 30
  47.          xc2 = _x + 40   # 控制点2
  48.          yc2 = _y + 40
  49.          zc2 = _z
  50.          xe = _x     # 结束点
  51.          ye = _y
  52.          num = 80
  53.          ixs = _x + 40    # 开始点
  54.          iys = _y - 40
  55.          ixc1 = _x   # 控制点1
  56.          iyc1 = _y
  57.          izc1 = _z - 30
  58.          ixc2 = _x - 40  # 控制点2
  59.          iyc2 = _y + 40
  60.          izc2 = _z + 30
  61.          ixe = _x     # 结束点
  62.          iye = _y
  63.          points1 = Bezier3(num,xs,ys,xe,ye,xc1,yc1,zc1,xc2,yc2,zc2)
  64.          points2 = Bezier3(num,ixs,iys,ixe,iye,ixc1,iyc1,izc1,ixc2,iyc2,izc2)
  65.          for i in range(num):
  66.               POS1 = pos(points1[i][0], points1[i][1])
  67.               POS2 = pos(points2[i][0], points2[i][1])
  68.               EFT = POS1 + EFT1 + color3('5DFDB6')
  69.               ass_main(ASS_BUF, SubL(_BT + elapk - 20 + i, _BT + _j * _FD / 10 + R, 15, pix_Style), EFT,

  70. pixPt())
  71.               EFT = POS2 + EFT2
  72.               ass_main(ASS_BUF, SubL(_BT + elapk - 20 + i, _BT + _j * _FD / 10 + R, 15, pix_Style), EFT,

  73. pixPt())
  74.     #############################

  75.     return (ASS_BUF, TCAS_BUF)
复制代码
啊呜。。。下午想了4个小时都不会弄(T.T)。。。不会链接时间。。偶就这么笨么。

嘎哦。。。这就是偶下午写的。。主要是在想时间。。。偶想要的特效是。。曲线生成的时间是K值开始的时间呢。。0, 7 * _k的时间是曲线的存在时间。。。8, 10 * _k是字幕变成粒子然后下落的时间。。。。。可是偶总是弄不明白时间的问题(T.T)。。。还有曲线不可以在Z轴上移动吗。。偶想让曲线在字幕的上方在字幕后面绕过来。。然后到底下。。。。。


特效:曲线把字幕碰碎成粒子

Rank: 4

13#
发表于 2013-2-3 21:24:07 |只看该作者
渣渣疯子 发表于 2013-2-3 21:08
http://www.tcax.org/forum.php?mod=viewthread&tid=558&extra=page%3D1这个好像是你想要的曲线效果, ...

啊呜。。V。。偶明白啦。。谢谢的说。。刚刚还在看一个脚本那里for循环的是什么。。。现在知道了。。。而且。

嘎哦。。这个特效已经可以生成了。。。无错误了。。但是还是时间的问题。。。偶继续研究一下有关时间的代码吧
1

查看全部评分

Moderator

疯子

Rank: 5Rank: 5

12#
发表于 2013-2-3 21:08:08 |只看该作者
爱雪音MiKu 发表于 2013-2-3 19:34
呜咕。。0.0_j和字幕层的关系偶没学过的说0.0。。。可以列举一个代码吗(T.T)。。啊呜。。偶是这样想: ...

http://www.tcax.org/forum.php?mo ... &extra=page%3D1这个好像是你想要的曲线效果,你说的曲线效果和游风做过的一个类似,层这个东西...可以按照书面理解。。。层数高的盖住层数低的,你可以看看好多脚本时间控制的后面会多一个数字,就是层的控制关于时间的话,我若是说的再具体了,你也就失去探索的乐趣了吧...怎么运用你可以自己试验,上面那个提示不就已经告诉你单个粒子点的时间了么,怎么结合粒子点使用,你自己试验下。for循环的用法很多,这个东西你要看编程的教程,for常用的话,归根结底也就两种,要么给它一个自然数,让它执行多少次,要么给它一个时间段,让它在时间段里循环,你可以看看编程教材里关于for循环和while循环的讲解
1

查看全部评分

Moderator

疯子

Rank: 5Rank: 5

11#
发表于 2013-2-3 20:59:15 |只看该作者
爱雪音MiKu 发表于 2013-2-3 20:14
啊呜。。现在卡在这了。。想不通了(T.T)

这个错误是你碰了def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):这个吧...报错说是这里的错误,你可能给里面多加了个什么东西

Rank: 4

10#
发表于 2013-2-3 20:46:35 |只看该作者
milkyjing 发表于 2013-2-3 20:40
http://www.tcax.org/forum.php?mod=viewthread&tid=39
http://www.tcax.org/forum.php?mod=viewthre ...

啊呜。。谢谢。。M大大。。立即研究

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

9#
发表于 2013-2-3 20:40:41 |只看该作者
爱雪音MiKu 发表于 2013-2-3 20:27
啊呜。。。简单特效0.0。。。可是在谈论里找的几个貌似都很难(T.T)


http://www.tcax.org/forum.php?mod=viewthread&tid=39
http://www.tcax.org/forum.php?mod=viewthread&tid=286
http://www.tcax.org/forum.php?mod=viewthread&tid=263
http://www.tcax.org/forum.php?mod=viewthread&tid=371

可以去代碼區找找短一點的腳本, 內置特效腳本也是不錯的參考

Rank: 4

8#
发表于 2013-2-3 20:40:10 |只看该作者
呜咕。。TCAX中。。for循环主要用于哪方面呀0.0?。。。目测基本只要编特效都要用到

Rank: 4

7#
发表于 2013-2-3 20:27:59 |只看该作者
milkyjing 发表于 2013-2-3 20:24
雖然我很想幫助LZ達到一個飛躍, 但是學習總的循序漸進, 學完走路再學跑步是有意義的...

我的意思是, LZ可 ...

啊呜。。。简单特效0.0。。。可是在谈论里找的几个貌似都很难(T.T)

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

6#
发表于 2013-2-3 20:24:01 |只看该作者
雖然我很想幫助LZ達到一個飛躍, 但是學習總的循序漸進, 學完走路再學跑步是有意義的...

我的意思是, LZ可以從一些簡單特效入手. 等熟練掌握了一些代碼/行數的使用再來搞這些複雜效果也不遲, 不然碰壁是肯定的...

嘛, 忠言逆耳

Rank: 4

5#
发表于 2013-2-3 20:14:28 |只看该作者
MY5T{)K8E}L(%GQTIOWEQ8G.jpg 啊呜。。现在卡在这了。。想不通了(T.T)

Rank: 4

地板
发表于 2013-2-3 19:34:57 |只看该作者
渣渣疯子 发表于 2013-2-3 19:09
时间的利用这个东西是个人的经验,需要反复利用熟悉。。。一条一条来说,绕Z轴这种事做不到 ...

呜咕。。0.0_j和字幕层的关系偶没学过的说0.0。。。可以列举一个代码吗(T.T)。。啊呜。。偶是这样想:特效字幕的进入时间是时间轴上的时间-N。。结束时间就是时间轴开始的时间。。然后是曲线。。曲线是时间轴开始的时间【就K值的时间吧】。。。结束是K值的7/10的时间吧。。。然后的时间就是字幕粒子化的时间【一直到结束。。。。。还是有拖尾吧

Moderator

疯子

Rank: 5Rank: 5

板凳
发表于 2013-2-3 19:09:54 |只看该作者
时间的利用这个东西是个人的经验,需要反复利用熟悉。。。一条一条来说,绕Z轴这种事做不到,但是可以通过判定_j和利用字幕层之间的关系做到,比如单数时曲线粒子层数高于字体层数,双数时低于,视觉上看就是环绕效果,至于时间,我不知道你的曲线是想做成有拖尾的还是无拖尾的,但是给你个大概思路吧,(_KT*0.7)/num

Rank: 4

沙发
发表于 2013-2-3 16:07:57 |只看该作者
呜咕。。雪音这货。。看教程什么的用处不大。。。偶看教程一般很难记住。。。偶只有不断的做。。然后找出问题。。偶才会(T.T)。。
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-25 12:10

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH