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

 找回密码
 新人加入
查看: 4303|回复: 8

[完整特效] [K] Durarara_2_Ten_ED_JP [复制链接]

Moderator

Effect Researcher.

Rank: 5Rank: 5

发表于 2016-5-19 19:49:28 |显示全部楼层
本帖最后由 面麻 于 2016-5-19 19:50 编辑

重写特效之一。
完整工程以及相关文件均在百度网盘。
链接: http://pan.baidu.com/s/1nvNCyGp 密码: vky3
字体是黑体,就不上传了。
效果预览可以看 preview.mp4。
  1. from tcaxPy import *
  2. from util.tcAudio import *


  3. def tcaxPy_Init():     # TCC 文件 < tcaxpy init = true >
  4.     global framedur    # 每一帧的时间长度,毫秒
  5.     global fontsize
  6.     framedur = 1000 / GetVal(val_FXFPS)
  7.     fontsize = GetVal(val_FontSize)
  8.     # tcAudio
  9.     global channel
  10.     global freq
  11.     tcAudioInit()    # 初始化 tcAudio
  12.     channel = tcAudioOpen("04 EXIT (TV size ver.).wav")
  13.     freq    = tcAudioGetFreq(channel)

  14. def Spectrum(fft):      # convert fft data to graph
  15.     SPECWIDTH = 368
  16.     SPECHEIGHT = 127
  17.     BANDS = 20    # 将频谱平均分为20段
  18.     bars = []
  19.     b0 = 0
  20.     for x in range(BANDS):
  21.         peak = 0        # peak of a certain bar
  22.         b1 = pow(2, x * 10.0 / (BANDS - 1))
  23.         if b1 > 1023:
  24.             b1 = 1023
  25.         if b1 <= b0:
  26.             b1 = b0 + 1    # make sure it uses at least 1 FFT bin
  27.         while b0 < b1:
  28.             if peak < fft[1 + b0]:
  29.                 peak = fft[1 + b0]
  30.             b0 += 1
  31.         y = sqrt(peak) * 5 * SPECHEIGHT
  32.         bars.append(y)
  33.     return bars

  34. def tcaxPy_Fin():   # TCC 文件 < tcaxpy fin = true >
  35.     tcAudioFin()    # 结束 tcAudio

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

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

  38.     linedur = _end - _start      # 一句的时间长度,单位 10 毫秒

  39.     t0 = _start - 50 + _j * 7    # 逐字
  40.     if _i == 0:
  41.         t0 = _start + _j * 10    # 第一句的时间需要另外处理,否则 t0 会是负数
  42.     t1 = t0 + 50
  43.     t2 = _start + _elapk
  44.     t3 = _start + _elapk + _k
  45.     t4 = _end - 60 + _j * 7
  46.     t5 = t4 + 50

  47.     if _i < 2:
  48.         EFT1 = pos(_x, _y) + fad(0, 900) + alpha3(HexToDec('77')) + blur(5) + bord(5) + color1('FFFFFF') + t(bord(0))
  49.         ass_main(ASS_BUF, SubL(t2, t2 + 100, 1), EFT1, _txt)    # K 效果:bord 渐变
  50.         EFT2 = pos(_x, _y) + fad(500, 500) + bord(0) + color1('FFFFFF') + blur(1)
  51.         ass_main(ASS_BUF, SubL(t0, t5, 0), EFT2, _txt)          # 文字主体

  52.     else:
  53.         num = int(10 * linedur / framedur + 0.5)    # 一句的帧数
  54.         for i in range(num):
  55.             tcAudioSetPos(channel, tcAudioSec2Bytes(channel, (10 * _start + i * framedur) / 1000))    # 逐帧定位音频
  56.             fft = tcAudioGetFFT(channel, 2048)
  57.             bar = Spectrum(fft)[1]    # BEAT Detective,检测打击声;鼓声在音频的低频段;这需要尝试,直到达到最佳效果;这里选择 list 的第二个元素
  58.             EFT = pos(_x, _y) + blur(sqrt(bar / 100) * 2.5) + bord(sqrt(bar / 100) * 2.5)             # 将音频图形化的一种方式,bord 和 blur 强度随着鼓声幅值而改变
  59.             if _txt == '(' or _txt == ')':
  60.                 EFT += fn("@SimHei") + frz(-90)     # 歌词中的日文括号,为了美观,需要旋转一下
  61.             ts = _start + i * framedur / 10
  62.             te = _start + (i + 1) * framedur / 10
  63.             ass_main(ASS_BUF, SubL(ts, te, 1), EFT, _txt)

  64.         radiusx = int(_a / 2)
  65.         radiusy = int(fontsize / 2)
  66.         radius1 = min(radiusx, radiusy) + randint(10, 20)
  67.         radius2 = max(radiusx, radiusy) + randint(20, 35)
  68.         for j in range(0, 7, 2):                                   # K 效果,每个字绘制 4 次粒子
  69.             for i in range(40):                                    # 每次绘制 40 个粒子
  70.                 desx, desy = RandCir2(_x, _y, radius1, radius2)    # 随机圆环分布,返回的是元组,直接赋值即可,radius1 必须不大于 radius2;源代码见 tcaxPy.py
  71.                 ts = t2 + _k * j / 10
  72.                 te = ts + _k * 4 / 10
  73.                 EFT = move(_x, _y, desx, desy) + color1('FFFFFF') + alpha1(0) + alpha3(0) + t(alpha1(255) + alpha3(255)) + bord(1) + blur(2)
  74.                 ass_main(ASS_BUF, SubL(ts, te, 0, Pix_Style), EFT, DrawPoint())   # 注意粒子在下层,文字在上层

  75.     return (ASS_BUF, None)
复制代码

Rank: 4

发表于 2016-5-29 22:25:07 |显示全部楼层
本帖最后由 squall 于 2016-5-29 22:26 编辑

换了WAV和对应的K
结果执行时显示LINE65这条有错 想询问下问题出在哪

Moderator

Effect Researcher.

Rank: 5Rank: 5

发表于 2016-5-31 12:54:11 |显示全部楼层
应该是音频文件的问题;
下次最好能贴出错误信息的截图。

Rank: 4

发表于 2016-6-4 20:21:11 |显示全部楼层
本帖最后由 squall 于 2016-6-4 20:21 编辑
面麻 发表于 2016-5-31 12:54
应该是音频文件的问题;
下次最好能贴出错误信息的截图。


http://www.dumpt.com/img/viewer.php?file=aik9qeegnxhjy7oo6asb.jpg
截图在这里

Moderator

Effect Researcher.

Rank: 5Rank: 5

发表于 2016-6-4 21:14:14 |显示全部楼层
本帖最后由 面麻 于 2016-6-4 21:19 编辑
squall 发表于 2016-6-4 20:21
http://www.dumpt.com/img/viewer.php?file=aik9qeegnxhjy7oo6asb.jpg
截图在这里


直接贴图即可,不用放链接,主要是你放的链接,不太好访问。
Service Unavailable
Connection reset by peer

Reference #54.ddb2c81e.ddb2c831.1465045936

从截图来看,可以确定是音频文件有问题。
一般 Raw 的音频放在 tcAudio 内处理,效果都不太好。
尤其是,时间跨度很长的音频,你只处理其中的一段,这种情况下失败的可能性很大。
以上只是使用经验。

Rank: 4

发表于 2016-6-8 22:38:53 |显示全部楼层
面麻 发表于 2016-6-4 21:14
直接贴图即可,不用放链接,主要是你放的链接,不太好访问。
Service Unavailable
Connection reset by p ...

非常感谢回复 我是用的Hi-res的FLAC再转换成WAV   放进了 tcAudio里
歌曲也是选择了对应OP的(TV size)长度  看到报错=有提示 runtimeError tcAudioSetPos error faild to set the position  这个没有解决的方法吗?是不是hi-res音频码率过高的问题?或者我用EAC的WAV试试?

Moderator

Effect Researcher.

Rank: 5Rank: 5

发表于 2016-6-8 23:50:33 |显示全部楼层
本帖最后由 面麻 于 2016-6-8 23:51 编辑
squall 发表于 2016-6-8 22:38
非常感谢回复 我是用的Hi-res的FLAC再转换成WAV   放进了 tcAudio里
歌曲也是选择了对应OP的(TV size)长 ...


如果你的 K 文件是按照此 FLAC 来打的,就排除了 K 文件的时间与音频不对应的问题。
这种情况下,很可能就是你说的 Hi-Res 音频的问题。
另外,不要用 tcAudio 处理 FLAC ,效率很低,而且效果很不好,
像你这样将 FLAC 转换为 WAV 是比较好的方法。
是不是 Hi-Res 的问题我不能确定,但是 EAC 肯定是可以的,
因为我用的就是 EAC 的 TV Size 打的K,然后写的脚本,没有处理过音频。

Rank: 4

发表于 2016-6-9 12:18:35 |显示全部楼层
面麻 发表于 2016-6-8 23:50
如果你的 K 文件是按照此 FLAC 来打的,就排除了 K 文件的时间与音频不对应的问题。
这种情况下,很可能 ...

非常感谢 原来如此  我是用整集动画里的OP音频打的K轴 那果然和WAV的TV size OP对不上吧  我估计问题在这了

Rank: 4

发表于 2016-9-11 20:08:04 |显示全部楼层
辛苦了
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-6-22 17:14

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH