Starbound mod制作教程(五) 来画画啦

那么我们来搞一个acidBomb炸出来的动画,大概就是个硫酸飞溅的样子吧,这个动画,和其他explosion一样,都属于projectile。虽然我们之前已经看过projectile的结构了,不过我们还是先去看看其他explosion都啥样。

打开projectiles/explosions/acidexplosion/,可以看到这个爆炸由projectile文件,png图片和frames文件组成,其中图片由五帧图片在一排组成,屎大棒通过frames文件来划分单帧大小,确定动画图片的划分。文件长这样

1
2
3
4
5
6
7
8
9
{
"frameGrid" : {
"size" : [32, 32],
"dimensions" : [5, 1],

"names" : [
[ "0", "1", "2", "3", "4" ]
]
}

挺好理解的,也可以参阅wiki

制作这个动画的话,也没啥好参照的,我们直接在XSWL/projectiles/explosion下创建一个文件夹叫acidBombExplosion,然后打开ps开始画画!

注意,我也不会用ps,为了画画临时在b站上找了找像素画教程,关于ps像素画的设置,详情参照网上的教程吧,并不麻烦,但我在这里不会细说。

创建大小为256x64,也就是64x64大小一帧,一共4帧。分辨率72,背景透明,名字就叫acidBombExplosion

像素绘图使用大小为1的铅笔工具,图像插值(即编辑——首选项——常规——图像插值)设置为邻近保留硬边缘。用放大镜工具右击图片按屏幕大小缩放。为了看清格子可以视图——显示——网格,并将编辑——首选项——参考线网格和切片中设置网格线间隔和子网格都为2。
我使用图层复制来在前一帧背景的基础上绘制新帧,然后擦除前一帧部分,总之因为是爆炸,不需要太细,保证每一帧的位置正确就行。

画完了。长这样。是不是特别有灵性啊?

接下来我们复制一个frame文件过去修改一下即可。

1
2
3
4
5
6
7
8
9
10
{
"frameGrid" : {
"size" : [64, 64],
"dimensions" : [4, 1],

"names" : [
[ "0", "1", "2", "3" ]
]
}
}

然后复制一个projectile过去,修改下即可。
值得注意的有damagePoly,这个是碰撞体顶点组,我们这个动画大小是64x64,我选取半径为50的圆,取8个点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"projectileName" : "acidBombExplosion",
"image" : "acidBombExplosion.png",
"animationCycle" : 0.3,
"frameNumber" : 4,
"speed" : 0,
"damagePoly" : [ [-50, 0], [-35, -35], [0, -50], [35, -35], [50, 0], [35, 35], [0, 50], [-35, 35] ],
"animationLoops" : false,
"piercing" : true,
"flippable" : true,
"damageTeam" : { "type" : "indiscriminate" },
"damageKind" : "acid",
"statusEffects" : [
"acid"
]
}

现在我们回到acidBomb.projectile,将actionOnReap里的type换成刚做好的acidBombExplosion,保存。

等下。。。

差点忘了,还有个acid状态的icon没搞定,你要是也忘了,可以回上一个教程看下状态文件里的icon设置。这些图片在interface/statuses/里,于是我们在XSWL下创建相应文件夹,然后用absorb.png作为基础调整下颜色,改名为acid.png即可,这样它就是一个黄色的液滴了。

于是现在除了炸弹本身没画,应该都搞定了,炸弹我也懒得画了,总之接下来就可以打开游戏测试了。