欢迎光临散文网 会员登陆 & 注册

横板跳跃的巅峰之作,尝试用Unity还原蔚蓝(Celeste)——素材、场景篇

2020-08-07 01:14 作者:皮皮关做游戏  | 我要投稿

作者:QXYO

大家好。

作为能在2018年与大表哥、新战神同台竞技,并且荣获了TGA最佳独立游戏、最具影响力游戏的蔚蓝(Celeste),相信不需要由我来为大家进行过多的介绍。即使时隔两年,仍能常常看到对于该作的赞赏。由于本人贫乏的语言表达能力,就用一张图来表现我对蔚蓝的喜爱吧。

进入主题,现在网络上模仿蔚蓝的移动大多都只是实现了最简单的跳跃、爬墙冲刺之类,手感之类完全没有还原,更不要说在蔚蓝中的各种高端的操作了。所以本次目标就是以实现大部分技巧和还原手感为目标,尽我所能的还原蔚蓝的移动。

一般来说跳跃游戏为了更好的手感,是全程用代码模拟移动,包括重力、惯性等,为了更精准的操作,只能通过射线检测等方式获取到周围碰撞盒的信息,然后进行处理和优化手感。从网络中查询资料得知,开发团队的 Matt Thorson 放出了游戏的角色操作部分的源代码,听到这个消息后我满心欢喜的去查看,结果...

看到5000多行的代码使我陷入了沉默,不过作为一个程序员,代码不应该成为问题,但是当我获取到从游戏中提取出来的素材时...

这要是一张张把需要的素材剪裁下来怕是需要一个月,同时眼睛度数+100°。幸好在B站视频中找到了整理后的素材,在此特别感谢该up主“我超勇的超会喝的”分享的素材:

还买不起正版游戏?那就继续自己做


毕竟是从游戏中提取出的素材,放到Unity中只能勉强的用一下,效果肯定没有原版的好,而且如果大家仔细看了上一张动图的话可能会发现,素材中的女主角Madeline是没有头发的,这是因为开发者对Madeline的头发做了特殊处理,使其表现得更加真实。

头发会受到角色运动和风等因素的影响

由于主要目标是还原操作手感,所以在本系列文章中是见不到Madeline那飘逸的秀发了。

说了这么多是时候打开Unity了,将素材导入Unity,可以发现大部分环境素材是符合TIleMap规则的瓦片,所以这里我们使用2DTileMap插件来制作地图。当然使用前还需要对素材进行设置,用SpriteEditor中Grid By Cell Size的方法将图集分割成32 * 32像素大小的图片,同时修改图集参数Pixels Per Unit为32。

以32 * 32 像素大小分割图集

之后就是用2DTileMap插件来绘制地图,具体操作我这里就不详细说明了,同时为了一比一复刻场景地图,可以打开 蔚蓝的debug模式,可以清楚的看到格子的数量(碰撞盒),方便数格子绘制。

蔚蓝的debug mode

之后不要忘了添加TileMap Collider 2D,勾上Used By Composite,添加Composite Collider2D把碰撞盒合并。通过蔚蓝的debug mode可以看到,刺周围的红色边框,也就是碰撞盒是小于其他的边框,所以为了还原,项目中刺的碰撞盒需要单独处理。

然后是制作角色动画,可以通过Animation制作帧动画。 因为是提取的素材,所以即使是整理后的素材,角色精灵图都是无序的,好在蔚蓝这游戏比较”糊“。所以即使缺少几帧或是前一帧和后一帧的动画反了也看不出太多问题。如果像是空洞骑士那样的作品可能就只能一帧一帧对着视频制作了。

用Animation制作帧动画
临时的动画状态机

最后就是将场景和角色组合起来,再加点特效本次的目标就完成了。下面放上完成图,看看是不是觉得还挺像的呢。

第一篇只能说是开胃菜,下一篇才是主餐,角色的移动、跳跃、冲刺还有各种对手感提升的优化。希望不会咕太久吧。

工程链接:https://pan.baidu.com/share/init?surl=v-p21OQ0wSTFed11Q2yqjg

提取码:a39o


对游戏开发学习感兴趣的盆友,欢迎访问:levelpp.com/

同时,也欢迎加入游戏开发群搅基:1082025059


横板跳跃的巅峰之作,尝试用Unity还原蔚蓝(Celeste)——素材、场景篇的评论 (共 条)

分享到微博请遵守国家法律