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

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

[完整特效] [SAI]031_killmebabyED [复制链接]

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2012-1-8 13:31:09 |只看该作者 |倒序浏览
預覽:http://pan.baidu.com/s/1hqqY9CC#dir/path=%2FSaiyakuFX_Preview
  1. from tcaxPy import *
  2. from util.tcAudio import *

  3. def tcaxPy_Init():

  4.     # some common pre-defined global values

  5.     global fontSize    # as name implies
  6.     global resX        # horizontal resolution
  7.     global resY        # vertical resolution
  8.     global marginX     # horizontal margin
  9.     global marginY     # vertical margin
  10.     global spacing     # space between texts
  11.     global frameDur    # milliseconds per frame
  12.     global lineNum     # number of lines
  13.     global textNum     # textNum[i], number of texts in ith line
  14.     global _BT         # _BT[i], start time of a line
  15.     global _ET         # _ET[i], end time of a line
  16.     global _KT         # _KT[i][j], karaoke time of a syllable
  17.     global _SK         # _SK[i][j], elapsed karaoke time before reaching a certain syllable
  18.     global _TXT        # _TXT[i][j], as name implies
  19.     global _L          # _L[i], total width of a line
  20.     global _W          # _W[i][j], width of a text
  21.     global _H          # _H[i][j], height of a text
  22.     global _A          # _A[i][j], advance of a text, usually larger than width
  23.     global _AD         # _AD[i][j], distance between the current text to the first text of the line
  24.     fontSize     = GetVal(val_FontSize)
  25.     resX         = GetVal(val_ResolutionX)
  26.     resY         = GetVal(val_ResolutionY)
  27.     marginX      = GetVal(val_OffsetX)
  28.     marginY      = GetVal(val_OffsetY)
  29.     spacing      = GetVal(val_Spacing)
  30.     frameDur     = 1000 / GetVal(val_FXFPS)
  31.     lineNum      = GetVal(val_nLines)
  32.     textNum      = GetVal(val_nTexts)
  33.     _BT          = GetVal(val_BegTime)
  34.     _ET          = GetVal(val_EndTime)
  35.     _KT          = GetVal(val_KarTime)
  36.     _SK          = GetVal(val_KarTimeDiff)
  37.     _TXT         = GetVal(val_Text)
  38.     _L           = GetVal(val_TextLength)
  39.     _W           = GetVal(val_TextWidth)
  40.     _H           = GetVal(val_TextHeight)
  41.     _A           = GetVal(val_TextAdvance)
  42.     _AD          = GetVal(val_TextAdvanceDiff)

  43. def randi():
  44.     if randint(0,1)==0:
  45.         return -1
  46.     else:
  47.         return 1

  48. def med(fft):
  49.     X = 0
  50.     for i in range(100,200):
  51.         X += fft[i]
  52.     return X/100

  53. def beat(F):
  54.     global BEAT
  55.     BEAT = []
  56.     BEAT.append(255)
  57.     for a in range(len(F)-1):
  58.         if int(abs(F[a+1] - F[a])*100000)> 240:
  59.             BEAT.append(3.5)
  60.         elif int(abs(F[a+1] - F[a])*100000)< 180 :
  61.             BEAT.append(1)
  62.         else:
  63.             BEAT.append(0.5+((255-abs(F[a+1] - F[a])*100000)/255)*5)
  64.     return BEAT

  65. def tcaxPy_User():
  66.     file_name = GetVal(val_OutFile) + '.ass'
  67.     ass_header = GetVal(val_AssHeader)
  68.     ASS_FILE = CreateAssFile(file_name, ass_header)
  69.     tcAudioInit()
  70.     channel = tcAudioOpen('test.mp3')
  71.     freq = tcAudioGetFreq(channel)      # usually 44100 Hz
  72.     duration = tcAudioGetDuration(channel)
  73.     num = int(duration * freq / 2048)
  74.     global F
  75.     F = []
  76.     for k in range(num):
  77.         fft = tcAudioGetFFT(channel, 2048)
  78.         F.append(med(fft))
  79.     B = beat(F)
  80.     CLR1 = color1("FFFFFF")+color3("000000") + alpha1(0)  
  81.     CLR2 = color1("000000")+color3("000000") + alpha1(30)

  82.     for i in range(lineNum):
  83.         initPosX = (resX - _L[i]) / 2 + marginX        # if marginX = 0, then it's just on the middle
  84.         initPosY = marginY
  85.         for j in range(textNum[i]):

  86.             ASS_BUF = []
  87.             if _TXT[i][j] == '' or _TXT[i][j] == ' ' or _TXT[i][j] == ' ':
  88.                 continue
  89.             posX = initPosX + _AD[i][j] + _A[i][j] / 2
  90.             posY = initPosY + 19
  91.             ass_main(ASS_BUF, SubL(_BT[i]+j*5, _BT[i]+_SK[i][j]-10, 10),fad(100,0)+ an(5) + pos(posX, posY) + CLR1+bord(1)+shad(0.5) ,_TXT[i][j] )
  92.             ass_main(ASS_BUF, SubL(_BT[i]+_SK[i][j]-10, _ET[i]+j*5, 30),fad(0,100)+ an(5) + pos(posX, posY) +t(0,30,fsc(150,150)) +t(30,_KT[i][j]*10,fsc(100,100))+ CLR1+bord(1)+shad(0.5) ,_TXT[i][j] )
  93.             for m in range(num):
  94.                 R=[(0,1),(0,-1),(1,0),(-1,0),(0,-1),(0,1),(-1,0),(1,0),(0,-1),(0,1),(randi(),randi()),(randi(),randi()),(0,1),(-1,0),(1,0),(-1,0),(1,0)]

  95.                 start = m * 100 * 2048 / freq
  96.                 end = (m + 1) * 100 * 2048 / freq

  97.                 if start > _BT[i]+j*5 and end <_ET[i]+j*5:

  98.                     ass_main(ASS_BUF, SubL(start-3, end, 20), fad(40,40)+ an(5) + pos(posX+B[m]*R[i][0], posY+B[m]*R[i][1])+blur(1.5) + CLR2, _TXT[i][j])
  99.             WriteAssFile(ASS_FILE, ASS_BUF)     # write the buffer in memory to the file
  100.         Progress(i,j)

  101.     tcAudioFin()
  102.     FinAssFile(ASS_FILE)
复制代码
killmebabyED.zip (2.35 MB, 下载次数: 3406)

1

查看全部评分

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

沙发
发表于 2012-1-8 15:52:59 |只看该作者
补上预览,   http://www.tcax.org/forum.php?mod=viewthread&tid=44

文件名: [SAI]031_killmebabyED.mp4

p.s. 哪天完成了Beat Detection算法再升级吧...

Rank: 4

板凳
发表于 2012-1-9 09:30:33 |只看该作者
感谢分享!

正式会员

爱理人士

Rank: 4

地板
发表于 2012-1-14 00:26:53 |只看该作者
031.jpg

Rank: 5Rank: 5

5#
发表于 2012-1-14 11:01:05 |只看该作者
5231251 发表于 2012-1-14 00:26

你需要先安装tcAudio模块。TCAX1.0.0并未包含此模块。请到下面的帖子中下载。

TCAX音频处理模块tcAudio Beta版发布

Rank: 4

6#
发表于 2012-2-12 20:56:38 |只看该作者
本帖最后由 hlc103 于 2012-2-12 20:57 编辑

用视频可以看到.但是mp3不知如何看到效果.用哪种软件播放mp3啊

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

7#
发表于 2012-2-12 23:57:28 |只看该作者
hlc103 发表于 2012-2-12 20:56
用视频可以看到.但是mp3不知如何看到效果.用哪种软件播放mp3啊

不是使用avs来预览的么?

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

8#
发表于 2012-2-13 17:09:40 |只看该作者
我記得包裡丟了avs了
VSfilter 自己掛一下就好
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-24 07:12

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH