あたいみたいな天才目指して、がんばっていってね!
刚好最近在研究storyboard,又有很多人来问sb相关的问题,又应14岁萝莉ex boy的要求,我就来写一个sb的教程吧.
其实呢,清风哥萌萌微风已经写过两篇关于sb的post(1,2),介绍得比较清晰,不过有一些新mapper表示看不太懂,于是我在此篇post中将会讲得更加浅显易懂一些.顺便说一句有点flash基础将会很有用.
以下是正文.
①.各种提示和建议
一些对新人和做过sb的人可能都有点益处的建议,就放在前面吧.
1.需要透明或不为矩形的图片应保存为.png,其他的存为jpg以减小文件大小(edit:纯色的图片PNG的要比JPG小,所以纯色图片建议用PNG保存 [感谢Breeze的经验])
2.使用ps等工具制作sb图片的时候应记得保存psd等工程文件,以便以后修改
3.时常备份.osb文件,因为一些代码时常会莫名其妙失踪
4.建立个txt记下图层顺序,因为(修改代码后?)图层顺序时常会混乱(但background和foreground之间不会搞混,所以要把背景和前景放到相应的位置)
5.同时也要记录好哪些动画是只循环一次(LoopOnce)的,因为时常会自动变成无限循环(LoopForever)
6.不要做过于闪的sb,否则rating会很低,因为别人是在打图而不是在瞎眼.
7.即使不想用代码来做sb,也要能看懂一些,至少调整坐标能更加方便
8.较长的sb可以分开为几段来做,最后合起来就好(背景和背景放在一起,前景和前景放在一起)
9.使无用的代码尽可能减少
10.测好bpm和offset之后再做sb,这样与歌曲的合拍度会更好
11.sb的文件名不能是中文,否则osz将不能打开
12.-sin-提供sb mod. 当然你也可以pm我(如果我有时间的话).
13.SB图片640x480像素为最佳,这样加入到SBE中刚好是全屏而无需任何调整[感谢Breeze]
14.SB完成后应通过搜索并替换(搜索0.99和0.00)的方式确保_F代码中的完全透明为整数0,不透明为整数1[抱歉表达能力不太好,详情见17L,感谢Breeze]
待续....
②.sb的分类
根据用途,粗略的将sb分为这么几类
1.提示:bpm*2之类的提示,作用是让玩家有心理准备.
2.歌词:就是歌词> <.
3.效果:闪光或烟花等等效果,增强游戏性.像jump jump那样的就十分赏心悦目,而像ass up那样的就有些晃眼了.
4.动画:这类更像一个影片,真正能发挥故事版讲故事的作用.例如neko miko reimu,和我刚做的miracle hinacle
③.sb的制作
既然单纯的描述难以理解,就从实战开始吧
(有时间将会加入图片说明)
1.提示sb
提示sb一般需要的效果是移动(Move)和淡入淡出(Fade).
以下以bpm*2为例子
(1)首先我们要准备一个清晰明了的bpm*2的图片,然后放到歌曲文件夹下
(2)到edit歌曲的design模式下,点击右下角的sprite library,找到你的图片,点击,此时,你的图片便出现在舞台上.
(3)移动. 首先在左边的Transformation栏中点击Move,然后在需要移动的起始时间点击 上方Keyframe control 中的蓝色加号以添加移动的初始关键帧,并用鼠标将图片移到移动起始位置.之后在移动终止的时间处添加关键帧(点加号),然后将图片拖到最终位置. 这样,你的图片就有了一个移动的动作.这个移动是匀速的,如果你希望其移动先快后慢,点击左边easing的out,反之则点in(同样适用于淡入淡出,旋转和缩放).
move的代码:(4)淡入淡出. 和移动类似的做法.例如我们需要将这个*2先从透明变为不透明,之后再变为透明.首先点击左边的fade,在开始渐变处点击加号,用鼠标向下拖拽,使透明度变为0.同样地,在不透明处和再次透明处创建关键帧,将透明度分别调整为1和0.就得到了淡入淡出效果.
Sprite,Background,Centre,"sbbpmX2.png",320,240
_M,0,34536,37302,309,332,310,383
M代表移动,0是说明没有使用easing out(代码为1)或in(2),34536是起始时间,37302是终止时间,309,332是起始坐标,310,383则是终止时的坐标
fade的代码这样,就得到了移动并淡入淡出的提示sb.
_F,0,34536,37302,0,1
前面的和移动的一样,后面0为透明,1为不透明,若想半透明可以用小数表示
_______
2.歌词sb
与提示sb并无很大区别.
move和fade见提示sb处.
来讲一下字符的缩放.
同样是点击左边scale,并的创建两个关键帧,用鼠标改变关键帧处歌词图片的大小.
怎么样,是不是很简单,和move/fade一模一样?
哈,这样雨点就偷一下懒,就不讲旋转了,留作作业让你们做好了~
_S,0,34536,37302,1,2
1代表大小是原来的一倍,2是两倍.
________
3.效果
效果实例有闪光和烟花等.
闪光实际上就是白色背景的在短时间内由透明到不透明再到透明
与提示sb中fade的例子并没有什么区别,注意把握好起始点和终止点就好
烟花的做法就是一张烟花的png,然后透明度从20%渐变到90%,由0缩放变大,并用上easing out,多加调整就能做出好的效果.
嗯....这个就留为作业吧.
顺便一提,如果你会编程的话可以做出不错的效果sb:
例如Jump Jump,这个是用osq2osb制作的,更类似于一种程序语言,循环和自定义函数等等方面会更加简单,strager的博客中有说明.http://strager.net/blag/
______
4.动画
这个比较复杂. 除了移动,缩放,旋转,淡入等等以外
还需要的就是逐帧动画.
最简单的方法是用gif为基础制作.
但是osu并不支持gif,我们就需要用png序列实现.
首先找到一张动画gif,例如这个有34帧的hina.gif
然后通过一些软件导出每一帧为hina-0.png一直到hina-33.png,请注意第一帧必须为xxxx0.png
这时你在sprite library中就能看到一个动态的hina-png
将其放置到舞台上,然后根据你习得的经验,尽情S(cale)M(ove)吧..(雨点学坏了...> <)
但是,这动画并不能按照要求播放,该怎么办?
用记事本打开osb文件,找到Animation一行,来分析一下.
Animation,Foreground,Centre,"sbhina-.png",320,240,34,33.333,LoopOnce将代码改为合适的数值,就可以让hina动起来了~
34代表一共有34帧,33.333代表33.333ms切换到下一帧,即每秒播放30帧,这个单位换算要自己算...
LoopOnce代表循环一次并停在最后一帧,若想改成无限循环则改为LoopForever
__________
另外就是编辑osb文件保存顺序的问题:
所以用记事本会比较麻烦,雨点推荐用带有reload功能的文本编辑器.Breeze wrote:
记事本另存一份osb文件的code很方便
不过就是记得复制code进osb文件的顺序是:
先要离开编辑界面,在复制code进osb文件再保存
因为离开编辑界面的时候osb是会自动保存一次的
有一种例外就是选择了Diff. Specific 的SB元件
如果改动了这类元件而又没有保存的情况下离开编辑器的时候会提示你是否保存的
总之离开编辑器后再复制code进osb是没错的
edit:
____________Pokie wrote:
用記事本在osb或osu裡更改代碼兼在記事本裡保存後,
回到osu! Editor裡按 File> Full Reload (Sprites etc.) 就能重新讀取一遍已修改過的osb/osu文件,
這樣就不用退出又重進, 或是怕剛剛改好的代碼掉了
今天的雨点课堂就到这里,以后还有什么能想到的,还会写进来
也欢迎提意见,问问题的哦. > <