| 
UID1188积分1115帖子116主题12论坛币2163 威望0 EP值413 MP值0 阅读权限50注册时间2013-4-30在线时间767 小时最后登录2017-10-23
 
 
 | 
| 本帖最后由 yyxxlc 于 2013-5-21 00:07 编辑 
 在刚刚学ass的时候在网上看到一个大人很早前发的一个教大家做基础字幕的视频。以前不知道TCAX的时候一直觉得他做的特效好特别,所以一直想模仿做一个出来,但是直接用ass一个一个的写实在是太难了.....(当然可能是我レベル太低了)  最近开始慢慢学tcax脚本之后 今天试着做了一个 虽然生成出来了但是感觉没有原版的这么行云流水的,总觉得哪里怪怪的....希望大大们给我指点一下....
 
 这是那位大人做的原视频地址:http://v.youku.com/v_show/id_XMTk1NjUxMDMy.html   (从07:25 开始的前两句效果)
 
 我写的(.py文件)
 (感觉至少有两个问题:1、我觉得我设置的字幕第一下翻上来的速度已经够快了,但是总觉得那位大神做的那个刷的一下更快更流畅更漂亮些,几乎看不出有翻过来的感觉,这是为什么 2、字体翻上来之后从扩大150%回到100%,我觉得理论上应该当缩小会100%就回到正常的(_x,_y)的位置上,但是生成的ass的效果,在缩回100%之后,明显有一下停顿,然后好像有往后移了一点,是我时间哪里设的不正确吗,但是我检查了都是前一个效果结束后一个开始这样的啊....)复制代码################################################################################
### description:
### rotation fry(90) to fry(0), with fade in
from tcaxPy import *
def tcaxPy_Init():
    global _FD                              # frame duration, in millisecond
    global _Blur
    global _Fs
    _FD = 1000 / GetVal(val_FXFPS)
    _Blur = GetVal(val_Blur)
    _Fs = GetVal(val_FontSize)
def tcaxPy_Fin():
    pass
time_gap = 1    # you can change this value to 0, or 2 or any other number
time_fac = 1    # you can change this value to 0, or 2 or any other number
def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
    ASS_BUF  = []        # used for saving ASS FX lines
    TCAS_BUF = []        # used for saving TCAS FX raw data
    duration = 10 * _FD  
    ts = _start + _elapk + _k                 # start time, in semi-second
    te = _end - (_n - _j - 1) * time_fac * _FD / 10 + time_gap * _FD / 10       # end time, in semi-second
    EFT = pos(_x, _y)                                                            # ASS events
    if _Blur > 0:
        EFT += blur(_Blur)
    ass_main(ASS_BUF, SubL(ts, te, 5), EFT, _txt)                               # store the effect
    ts = _start + _elapk
    te = _start + _elapk + _k
    MOVE = move(_x ,_y + _Fs + 6, _x , _y , 0 ,duration)
    eft1 = frx(-180) +t(0, duration / 3,1.2,frx(0)) 
    eft2 = fsc(150,150) + t( duration / 3,_start + _elapk + _k, 0.6, fsc(100,100))
  
    EFT = MOVE + eft1 + eft2
    if _Blur > 0:
        EFT += blur(_Blur)
    ass_main(ASS_BUF, SubL(ts, te), EFT, _txt)
    return (ASS_BUF, TCAS_BUF)
 3、还有一个:为什么第一句完全没效果,从第二句才开始的...
 
 当然也有可能是我哪里压根想错了...也希望大大们可以狠狠的指出来,我一定会重新研究的!
 | 
 |