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

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

[已解决] 求教!有可以parse的脚本吗? [复制链接]

Rank: 5Rank: 5

跳转到指定楼层
楼主
发表于 2012-5-28 21:45:01 |只看该作者 |倒序浏览
跪求原味牛奶帮忙写个脚本/教程~
就是tcas字幕时“唰”的一下图片从左到右快速闪过的那个脚本,
想单独分离出一个以便理解- -

希望不要用user,不要用fake,不要用magick,
只是最简单的实现一下那个效果的脚本……

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

沙发
发表于 2012-5-28 22:40:37 |只看该作者
说下大概原理吧,

1) 利用BIG_PIX结构, 构造出一个整句歌词的PIX
2) 将此PIX作为Mask使用, Mask的对象就是随意一张图片构造的PIX
3) 对图片PIX的处理可以是, 将其缩放到同整句PIX一样的尺寸
4) 制作逐帧特效, 每次循环改变图片PIX的内部偏移量(x轴逐渐增加)

不想用tcaxPy_User函数, 可以使用IsLineChanged函数或tcaxPy_Line函数
(参考 http://www.tcax.org/forum.php?mod=viewthread&tid=191, http://www.tcax.org/forum.php?mod=viewthread&tid=397)
其中的关键就是构造整句PIX, 借助BIG_PIX是个好方法.

p.s. 要裁剪过的脚本, 得等了- -


Rank: 5Rank: 5

板凳
发表于 2012-5-29 09:17:08 |只看该作者
milkyjing 发表于 2012-5-28 22:40
说下大概原理吧,

1) 利用BIG_PIX结构, 构造出一个整句歌词的PIX

嗯,等你论文搞定了吧~

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

地板
发表于 2012-6-1 21:07:56 |只看该作者
我被ass误导了 我一直在考虑tcas里面的像素点是怎样表现的 想到绘图那块去了想的我好生纠结

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

5#
发表于 2012-6-1 21:49:05 |只看该作者
six 发表于 2012-5-29 09:17
嗯,等你论文搞定了吧~

后天就要交了, 我得努力了 233

p.s. 写了一天, 冒个泡

Rank: 5Rank: 5

6#
发表于 2012-6-2 01:14:16 |只看该作者
milkyjing 发表于 2012-6-1 21:49
后天就要交了, 我得努力了 233

p.s. 写了一天, 冒个泡

儿童节那天答完辩了,单独把你another的第六句代码抠出来了,但是bigpix的具体实现过程看不大懂~~

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

7#
发表于 2012-6-2 15:42:17 |只看该作者
six 发表于 2012-6-2 01:14
儿童节那天答完辩了,单独把你another的第六句代码抠出来了,但是bigpix的具体实现过程看不大懂~~ ...

big_pix 很可能是在原来的以字为单位的图层上 在加一个图层 那一层是以一行的内容为单位的
哦哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

嗯 我是这么猜的

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

8#
发表于 2012-6-2 15:45:12 |只看该作者
河对岸 发表于 2012-6-2 15:42
big_pix 很可能是在原来的以字为单位的图层上 在加一个图层 那一层是以一行的内容为单位的
哦哈哈哈哈哈 ...

这里有解释 http://www.tcax.org/forum.php?mo ... =1096&fromuid=2

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

9#
发表于 2012-6-2 15:52:57 |只看该作者
milkyjing 发表于 2012-6-2 15:45
这里有解释 http://www.tcax.org/forum.php?mod=redirect&goto=findpost&ptid=220&pid=1096&fromuid=2 ...

话说奶大... 你做特效时用的那些素材 是怎么做出来的 应该是你自己做的吧?

Rank: 5Rank: 5

10#
发表于 2012-6-2 18:28:59 |只看该作者
milkyjing 发表于 2012-6-2 15:45
这里有解释 http://www.tcax.org/forum.php?mod=redirect&goto=findpost&ptid=220&pid=1096&fromuid=2 ...

那个99%都快看滥了- -
就是没看出来怎么搞的整句MASK

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

11#
发表于 2012-6-2 20:00:42 |只看该作者
河对岸 发表于 2012-6-2 15:52
话说奶大... 你做特效时用的那些素材 是怎么做出来的 应该是你自己做的吧? ...

网上找, PS, 简单的可以直接用magick做... 各种手段, 只要能获取就好

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

12#
发表于 2012-6-2 20:02:42 |只看该作者
six 发表于 2012-6-2 18:28
那个99%都快看滥了- -
就是没看出来怎么搞的整句MASK

tcaxPy_Main_Fake是在爽循环中被调用的(即, 每个字执行一遍), 每次调用都往BIG_PIX结构增加一个(当前)文字的PIX.

转换这个BIG_PIX是在i循环中进行的(即, 句子循环, 一句执行一次), 也就是说, 执行到转换BIG_PIX那句代码时, BIG_PIX已经包含了整句文字的每个PIX.

Rank: 5Rank: 5

13#
发表于 2012-6-11 01:04:44 |只看该作者
想搞张合适的图真心难道@@

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

14#
发表于 2012-6-11 13:06:29 |只看该作者
six 发表于 2012-6-11 01:04
想搞张合适的图真心难道@@


Google吧。。。各种素材网。。。

看看是否有用 http://www.tcax.org/forum.php?mod=viewthread&tid=389

Rank: 5Rank: 5

15#
发表于 2012-6-12 00:55:55 |只看该作者
本帖最后由 six 于 2012-6-12 01:00 编辑

不是BIG_PIX了,你那个rotate的部分,
for ii in range(num):
                    IMG = Image(IMG_tex)
                    IMG.rotate(360 * 1.5 * ii / num)
                    PIX = pmgToPix(IMG)
                    PIX = PixPos(PIX, PIX_t[0][0] + (PIX_t[1][0] - PIX[1][0]) / 2, PIX_t[0][1] + (PIX_t[1][1] - PIX[1][1]) / 2)
                    #PIX = PixColorShift(PIX, 200, 100, 50, 0)
                    PIX = PixMask(PIX, PIX_t)
                    PIX = PixStrip(PIX)
                    PIX = CombinePixs(PIX2, PIX)
                    tcas_main(TCAS_BUF, PIX, TK + ii * _FD, TK + (ii + 1) * _FD, dx, dy, 0)
我换了图片,换了字体,其他的地方没有本质的不同,但是最后的效果能目测到位置的偏移,
把PixStrip注释掉之后,问题解决,为什么?

还有最原始的(PIX[0][0], PIX[0][1])是(0,0)么

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

16#
发表于 2012-6-13 20:25:58 |只看该作者
six 发表于 2012-6-12 00:55
不是BIG_PIX了,你那个rotate的部分,
for ii in range(num):
                    IMG = Image(IMG_tex)

PixStrip函数的作用是切除透明的无用边框,比如,一个 50x100的透明背景图片,从图片左上方到图片中物体的最近距离为(从边缘开始,拿横线扫描,每次移动一个像素距离,直到遇到有一个非透明像素。记下偏移量为y,用纵线扫描,记下为x):(5, 10),右下方距离(3, 4),则PixStrip之前,该PIX 为 ((0, 0), (50, 100), ...)

PixStrip之后为 ((5, 10), (50 - 5 - 3, 100 - 10 - 4), ...))

Rank: 5Rank: 5

17#
发表于 2012-6-13 20:59:58 |只看该作者
milkyjing 发表于 2012-6-13 20:25
PixStrip函数的作用是切除透明的无用边框,比如,一个 50x100的透明背景图片,从图片左上方到图片中物体 ...

那个motionBlur的部分,经常会有字挂红>,<

未命名.jpg (3.24 KB, 下载次数: 1686)

未命名.jpg

您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

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

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH