故事板负载(SB load)是制作故事板时会见到的一个参数,它指示加载故事板时,图形程序的负荷大小。这个参数用来估量一帧内,需要重新绘制整个 640x480 像素的区域数量。
不使用故事板时,负荷为 1x (640x480 的空间只需要绘制一次)。如果故事板中有单个占用半屏的图像,负荷就是 1.5x;两个完全重合、占用半屏的图像负荷是 2x。
谱面的 SB 负载最好不要超过 5x,这样可以确保大多数玩家在游玩谱面时,显卡压力不会过大。
节选自 Reducing SB Load:
下面是一些重要的,关于减少故事板为玩家电脑带来负担的建议。表面上,这一部分看似有些冗长、太具体,实际上,这一部分的要点并不复杂。要点将会加粗标出。
默认情况下,谱面的背景图片会在整首歌播放期间正常显示,即使谱面含有故事板,也会如此。如果你要做非常简单的故事板,或者谱面的背景图片也作为故事板中的一部分元素显示时,这个特性就很合适。
然而,如果在编写故事板时需要用到别的背景图片,这就成了个问题。看看,尽管谱面背景图片的前面有别的东西,osu! 也会一直绘制它。故事板的图层越多,osu! 要处理的就越多,因此无视这个图层的存在,就是在浪费系统资源。
所以应该怎么办呢?
osu! 有一个消除冗余的功能:当你在故事板中使用这张谱面的背景图片时,游玩时就会自动卸载谱面背景。因此,如果故事板中只有一个“场景”使用了谱面的背景图片,或者谱面背景图片是故事板元素的一部分,只需要像调用其他图像一样,调用这张背景图片即可,其他一切会正常显示。
但如果,你想要在谱面内使用不同的故事板元素,并且只想将一张图片作为选歌界面的背景,以及谱面在网页上的预览图,你就需要将这张照片正常设置为谱面背景,然后在 .osb
文件(如果难度之间的故事板不同,则需要在 .osu
文件下修改)的 “//Storyboard Layer 0 (Background)” 标题下加一行故事板代码。这行代码仅仅调用背景图像,不会做别的事情。
只要将下面一行中 "background.jpg" 用这个谱面背景图片文件名替代即可:
Sprite,Background,TopLeft,"background.jpg",0,0
这就成了!你的背景图片会被纯黑色替代,游戏绘制时几乎不需要处理。相比于直接在背景图片上添加一张全屏的黑色 png 相比,性能有了大幅度的改善!
osu! 会完全绘制故事板内所有图像中的每一个像素,透明像素也不例外。因此,含有大量透明像素的图片会给电脑带来很多不必要的压力。这个问题很容易解决,一般可以这么做:
这种效果在故事板中用的并不是很多,因此提到这一点:看看用脚本编写故事板一文的 "colour" 事件代码。你可以在故事板中,通过在灰阶或亮色精灵图上叠加不同颜色,来做出很酷的效果。如果你想要让背景单独逐渐显示时,就可以通过这种方式改变天空和其他素材的颜色。这一点也可以考虑一下。
希望这些小提示能对一些人有用。很多人不了解禁用背景这一功能,因此请把这个小技巧告诉别人,尤其是看到他人用纯黑色图片掩盖住谱面背景图片时,更应如此。