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

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

函数 IsLineChanged() 的用法 [复制链接]

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2011-10-15 19:02:42 |只看该作者 |倒序浏览
因为tcaxPy_Main函数会对每个字符都执行一遍, 所以如果想要对整体一句歌词制作一个特效, 或者是一个效果生存期是整句歌词时间跨度, 那么操作起来就要绕点弯子.
早先是使用判断

if _j == 0:
    do something

在do something中执行整句歌词特效的编写, 因为对于一句歌词_j为0的次数只有一次.
但由于某些特殊情况下_j不一定从0开始, (如果第一个字符是空字符, 或者是空格等, tcaxPy_Main函数就会跳过), 所以从Beta3开始, 引入了一个新函数IsLineChanged来专门应对这个需求, 但要注意IsLineChanged函数只能被调用一次. 所以最好使用一个变量来保存它的返回值, 以便之后继续使用.

bLineChanged = IsLineChanged(_i)
if bLineChanged:
    do something




Rank: 5Rank: 5

沙发
发表于 2013-1-29 20:48:24 |只看该作者
还是if _j == 0 比较容易理解。。
那个bLineChanged = IsLineChanged(_i)刚才试了下貌似还行,不过窝还是用_j == 0 好了。。。

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

板凳
发表于 2013-1-29 21:57:38 |只看该作者
oloroso 发表于 2013-1-29 20:48
还是if _j == 0 比较容易理解。。
那个bLineChanged = IsLineChanged(_i)刚才试了下貌似还行,不过窝还是用 ...

一般情況下, 用if _j == 0 就足夠了...

p.s. 整行特效的操作, 用tcaxPy_User會更順手一點. 畢竟 tcaxPy_Main函數的設計就是針對"逐字"效果的..

參考: http://www.tcax.org/forum.php?mod=viewthread&tid=278
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-22 01:19

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH