Closed renmu123 closed 2 months ago
在 ASS(Advanced SubStation Alpha)
格式的文件中,是通过绘图指令实现在一段时间内显示图形的。下面就是一条 SC 需要显示的内容:
Dialogue: 0,0:14:41.00,0:14:46.00,message_box,,0000,0000,0000,,{\pos(0,1558)\c&HD8D8FF\p1\bord0\shad0}m 0 21 b 0 10 10 0 21 0 l 379 0 b 390 0 400 10 400 21 l 400 85 l 0 85
Dialogue: 0,0:14:41.00,0:14:46.00,message_box,,0000,0000,0000,,{\pos(0,1643)\p1\c&H321AAB\bord0\shad0}m 0 0 l 400 0 l 400 31 b 400 42 390 52 379 52 l 21 52b 10 52 0 42 0 31
Dialogue: 1,0:14:41.00,0:14:46.00,message_box,,0000,0000,0000,,{\pos(10,1565)\c&H1B0E5E\b1\bord0\shad0}动作玩家lil
Dialogue: 1,0:14:41.00,0:14:46.00,message_box,,0000,0000,0000,,{\pos(10,1607)\c&H313131\fs33\bord0\shad0}SuperChat CNY 30000
Dialogue: 1,0:14:41.00,0:14:46.00,message_box,,0000,0000,0000,,{\pos(10,1643)\c&HFFFFFF\bord0\shad0}快点打爆丝
在这五行脚本中,前两行画出了 SC 的背景,后三行分别显示昵称、金额和 SC 内容,它们共同组成了一条 SC。在 \pos(x,y)
的坐标位置上于 0:14:41.00
时刻出现,并持续显示至 0:14:46.00
时刻消失。
由于还会有礼物或其它 SC 在底部出现或消失,导致这条 SC 的位置不会是固定在 \pos(x,y)
处,而是会在某些时刻向上或向下移动,此时便需要重新绘制它的移动动画或是显示图形。这就导致了同一条 SC 的内容会在 ASS
文件中重复出现多次(但每次的持续时间或是显示的位置并不会相同),这是正常情况,不是 BUG。
时间排序出问题可能是桶排序算法有误,这是 BUG。
源文件只有一条该sc,但是在转换后的ass中到处都是,而且时间各不一样
还有一些时间排序出问题
经过我的debug,发现好像是这个函数有问题,但是我没找到产生bug的具体代码
转换参数用得是这个
--resolution 1920x1080 --scrolltime 13 --fixtime 5 --density 0 --fontname "Microsoft YaHei" --fontsize 40 --opacity 255 --outline 0.5 --shadow 0 --displayarea 0.5 --scrollarea 1 --bold true --showusernames false --showmsgbox true --msgboxsize 265x480 --msgboxpos 0x90 --msgboxfontsize 26 --msgboxduration 10 --giftminprice 200 --giftmergetolerance 0 --blockmode null
参考文件:blive_弹幕xml.zip