龙空技术网

老师!我想用Tilemap做元气骑士款地图!

皮皮关游戏开发教育 82

前言:

如今姐妹们对“如何绘制六边形地图”大约比较关切,朋友们都想要剖析一些“如何绘制六边形地图”的相关内容。那么小编同时在网络上网罗了一些对于“如何绘制六边形地图””的相关内容,希望姐妹们能喜欢,咱们一起来了解一下吧!

作者:Yumir

哈喽~大~家~好~我是Yumir~

马老师最近发布了一系列从零开始做横板游戏的教程,用的都是unity近期的新功能,其中最有意思的就是Tilemap这个功能啦,系列传送门:

【萌新图形学】TileMap瓦片地图简介,以及它的优化原理

现在的Tilemap不仅可以实现正方形的瓦片,还有六边形瓦片,斜45度瓦片,基本涵盖了所有的2D游戏地图类型,目前看来还是逻辑简单的正方形瓦片最受欢迎,但是正方形瓦片要怎么做出层次感呢?

大部分情况下美术会将所有的透视投影关系都画在一个方格子中,于是这些地图都是薄墙,稍一对比就会发现元气骑士的墙是比较特别的——他们看起来全都是正方体。我把这种正方体的正面正交+投影的效果在PS里面模拟了一下:

接下来是我在Unity中实现该效果的过程:

首先需要准备好要用到的瓦片素材,我是用UnityAssetStore的免费资源2D PixelArt - Isometric Blocks自行修改得到的,已上传到网盘:

打开Unity,开始烹制我们的食材(划掉)开始画元气骑士的地图。

1、素材预设:

新建一个2D项目,将素材文件拖拽到项目中。将SpriteMode设置为Multiple,PixelsPerUnit设置为32(表示一个单位为32像素),FilterMode设置为Point。

点击SpriteEditor打开SpriteEditor窗口,点击Slice设置Type为GridByCellSize,设置PixelSize为32*32(素材就是32*32),点击Slice再点击Apply保存,图片设置完毕。

2、制作瓦片调色板:

点击Window>2D>TilePalette打开TilePalette面板,点击CreateNewPalette新建一个调色板,再将上一步切割好的素材文件一并拖拽到Palette面板的空白处,系统会自动生成瓦片(Tile),这些就相当于是我们的颜料啦。

3、绘制地图:

从前文的示意图可以分析出这个地图需要多层叠加,并且上下层错开,这个通过修改上层Tilemap的Transform>Position>y偏移0.5个单位即可。

为了有前后关系需要新建几个SortingLayers,用于设置渲染顺序。

我将地图分为四层(另有一层纯色背景)分别是地板层、墙侧面层、墙阴影层、墙顶面层。我画了一张图来表示各个层之间的位置关系以及SortingLayers设置,当然只要能把层分开怎么设置都行。

首先绘制地板,房间的位置更加清晰明了:

再沿着地板铺上侧边的墙以及柱子:

添加顶面和阴影,可以看到效果有很大的不同:

地图绘制很简单,但是这样绘制出来的地图还缺少一点灵魂,作为一面墙他得可以挡住墙内的角色,所以我在墙侧面层上添加了TilemapCollider2D组件,这时候会出现如下效果。

这密密麻麻的格子,实在是不忍直视,这时候我勾选了UsedByComposite,unity会提示需要一个CompositeCollider2D,通过搜索组件添加即可。

由于这个组件会自动附带Rigidbody2D,看看我们的墙,他怎么能往下掉呢,BodyType应该是Kinematic才对,找一个“player”放到场景里面看一看效果,多好啊,我真是个小机灵鬼~

当然roguelike游戏不可能是手绘地图,而Unity也提供了Tilemap绘制地图的方法,可以通过代码控制地图生成,但是我们想要做一些简单的游戏固定地图的话,本文的内容已经完全够用了,推荐到B站去看该系列的其他视频,毕竟一个游戏可不仅仅只用到地图哦。

欢迎加入游戏开发群欢乐搅基:869551769

对游戏开发感兴趣的童鞋可戳这里进一步了解:

标签: #如何绘制六边形地图