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

标题: 呜咕。。求问大大们一个问题。。 [打印本页]

作者: 爱雪音MiKu    时间: 2013-3-23 21:13:05     标题: 呜咕。。求问大大们一个问题。。

本帖最后由 爱雪音MiKu 于 2013-3-24 08:43 编辑

翅膀.jpg

呜咕。。。偶想如果:让这些翅膀都变成白色。。但期中一个颜色不同偶要如何写if判断呀。。想了几种可都是无法做出来。。判断字?。。可是这些翅膀是循环生成的判断字无效的吧?

啊呜。。偶想到一个办法。。但是是最笨的方法吧【就是都循环一个颜色,然后另外生成一个颜色不同的翅膀。。获取第X字的坐标。。然后覆盖】。。可是偶想如何通过if判断来做出。。。请大大们指导一下。。非常感谢

图片附件: 翅膀.jpg (2013-3-23 21:08:01, 35.13 KB) / 下载次数 726
http://www.tcax.org/forum.php?mod=attachment&aid=MTI3NXwxMjliNjMzNnwxNzE1MDU1MTQzfDB8MA%3D%3D


作者: 我们的夏天    时间: 2013-3-23 22:24:09

本帖最后由 我们的夏天 于 2013-3-23 22:31 编辑

你是想在程序循环计算翅膀颜色时,使它只作用于某个固定字后吗?不知道这个理解对不对哦^ω^
如果是的话,可以把计算出来的彩色翅膀颜色存进变量,然后通过if判断,如果是正常的字则不调用该颜色改用白色,而碰到了特定的字则调用该颜色
  1. pic = 'm 0'#翅膀的绘图代码
  2. COL = #此处按原来的思路"循环生成"正常颜色,并将得到的颜色字符串赋值给COL
  3. ass_main(ASS_BUF, SubL(ts, te, 200, Pix_Style), pos(_x, _y) + color1('FFFFFF' if _j != 5 else COL), '{\\p1}'+ pic +'{\\p0}')
复制代码

作者: 爱雪音MiKu    时间: 2013-3-24 07:22:46

我们的夏天 发表于 2013-3-23 22:24
你是想在程序循环计算翅膀颜色时,使它只作用于某个固定字后吗?不知道这个理解对不对哦^ω^
如果是的话, ...

呜咕。。V。。感谢大大。。明白了的说
作者: 月城兔子    时间: 2013-3-27 13:49:24

本帖最后由 月城兔子 于 2013-3-27 13:57 编辑


其实我也想了一个比较坑的方法  
我不知道你蝴蝶是怎样出现的 如果单一循环的话

    pic = 'm 0'#翅膀的绘图代码
    TTB = _BT  #这个不解释
    Counter = int((_ET-_BT + 34)/35) 一句话内一直保持相隔35秒的循环(时间可以自己改)
    EFTTest =  ""          #表现效果

    if _j == 0 :
        for i in range(5) : 数值 1出现1次 数值2 出现2次 以此类推  如果使用Counter的话 一句时间内一直保持下面的循环
            ass_main(ASS_BUF, SubL(TTB + i*35 - 30, TTB + i*35), EFTTest, pic)  #每35秒循环一次 循环中间间隔5秒 这个数值可以自己改

简单来说就是…因为设定了TTB = _BT这个开始时间 也就是说…如果你想让一共8只蝴蝶…前5只是一个颜色的话 这里打(5)
然后第6只另外1个颜色
然后再把上面的复制一下

    TTB1 = _BT + “时间” #算出配合第6只出现的时间 “时间”里就是数字 你可以+100 200 300 一直到你想要的时间 或者如果你知道想到的时间 那么随便给个时间导出来后 直接用想要的时间和你导出的这个时间相减
    EFTTest =  ""          #表现效果

    if _j == 0 :
        for i in range(1) #只有第6只产生变化
            ass_main(ASS_BUF, SubL(TTB1 + i*35 - 30, TTB1+ i*35), EFTTest, pic)  

然后第7只到最后在复制一次…在T那里算出6-7只的时间....做出7以后的那几只

这个方法比较坑点就是 需要自己手动算时间…………如果每只蝴蝶都变化的话 并且相隔时间也不同的话 需要大量计算时间和复制粘贴


作者: 爱雪音MiKu    时间: 2013-3-29 20:02:46

月城兔子 发表于 2013-3-27 13:49
其实我也想了一个比较坑的方法  
我不知道你蝴蝶是怎样出现的 如果单一循环的话

呜咕。。偶有一个问题 Counter = int((_ET-_BT + 34)/35)  这句偶不是太明白。。为什么意思是相隔35秒循环呢?


呜咕。。前天键盘坏了。。今天换了一个。。所以现在才回复。。真是对不起
作者: milkyjing    时间: 2013-3-29 21:15:23

爱雪音MiKu 发表于 2013-3-29 20:02
呜咕。。偶有一个问题 Counter = int((_ET-_BT + 34)/35)  这句偶不是太明白。。为什么意思是相隔35秒循 ...

时间/ (时间/帧) = 帧数

35是指 35ms/帧.

可以用 40, 或者  _FD

作者: 爱雪音MiKu    时间: 2013-3-29 21:39:52

milkyjing 发表于 2013-3-29 21:15
时间/ (时间/帧) = 帧数

35是指 35ms/帧.

呜咕。。偶不知道偶理解的对不对。。这句是;在歌词+34的时间内。。以35秒为一帧进行循环
作者: milkyjing    时间: 2013-3-29 21:42:40

爱雪音MiKu 发表于 2013-3-29 21:39
呜咕。。偶不知道偶理解的对不对。。这句是;在歌词+34的时间内。。以35秒为一帧进行循环 ...

具体在哪里开始循环不是由Counter决定的, Counter只是决定循环多少次... (实际用多少次都可以通过for等, 另外控制)

作者: 爱雪音MiKu    时间: 2013-3-29 21:48:46

milkyjing 发表于 2013-3-29 21:42
具体在哪里开始循环不是由Counter决定的, Counter只是决定循环多少次... (实际用多少次都可以通过for等,  ...

呜咕。。V。。如果用for循环就是  for i in rangre(_BT,_ET+34,_FD)   类似这样的么0.0?
作者: milkyjing    时间: 2013-3-29 21:57:30

爱雪音MiKu 发表于 2013-3-29 21:48
呜咕。。V。。如果用for循环就是  for i in rangre(_BT,_ET+34,_FD)   类似这样的么0.0? ...


可以这么用... 但你的描述很奇怪...

你刚才描述的主体是 Counter = int((_ET-_BT + 34)/35) , 而你却用一个for语句来替代. 风马牛不相及...

Counter = int((_ET-_BT + 34)/35)  只是一个表达式而已

for i in range(Counter), 才是循环. 所以你给出的for语句是替换这两句代码用的...

而我在上一个回复所说的for循环, 指的是利用了Counter的for循环, 你给出的for循环里哪里都没有Counter的踪影嘛...

如果你理解了我上一个帖的意思, 那么给出的回复, 至少应该是 for i in range(Counter - 1), 什么的吧.. Orz


作者: 爱雪音MiKu    时间: 2013-3-29 22:07:15

milkyjing 发表于 2013-3-29 21:57
可以这么用... 但你的描述很奇怪...

你刚才描述的主体是 Counter = int((_ET-_BT + 34)/35) , 而你却用 ...

呜咕。。通过Counter表达式计算出来的次数来决定循环的次数?。。偶不知道这样理解对不对(T.T)
作者: milkyjing    时间: 2013-3-29 22:10:05

爱雪音MiKu 发表于 2013-3-29 22:07
呜咕。。通过Counter表达式计算出来的次数来决定循环的次数?。。偶不知道这样理解对不对(T.T) ...

这种情况, 可以通过实践来证明自己的理解是否正确... 印象更深... 只是提问, 然后获取一个答案, 也许很快就忘了, 这样没什么意义
作者: 爱雪音MiKu    时间: 2013-3-29 22:16:00

milkyjing 发表于 2013-3-29 22:10
这种情况, 可以通过实践来证明自己的理解是否正确... 印象更深... 只是提问, 然后获取一个答案, 也许很快 ...

呜咕。。V。。。明白了。。对了。。如果偶要在_BT+_SK,_ET   时间内循环。。可以通过步长来决定循环之间的间隔吗




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