一、引言
TileMap在2D创作中是不可或缺的一部分,今天我们就将来详细学习TileMap。Godot的TileMap功能强大,满足了我们绝大部分需求,而与Unity横向对比,我们会发现,Godot将便捷做到了极致。
(原作者教程视频链接:Godot 4 教程《勇者传说》)
二、创建TileMapLayer
1、创建
在新版本中,Godot将TileMap节点移除,取而代之的是TileMapLayer,实际上没有过多的变化,只是TileMap将图层都放在一个节点中,而TileMapLayer则是一个图层,意思是说,我们对于图层的改动,是在TileMapLayer在世界节点下的顺序进行确认,而越往上放,图层就越靠后。
在这里给出官方的定义:TileMapLayer用于基于2D切片的地图的节点。TileMapLayer使用TileSet,其中包含用于创建基于网格的地图的瓦片列表。与已弃用的TileMap节点不同,TileMapLayer只有一个切片层。可以使用多个TileMapLayer来实现与TileMap节点相同的结果。(官方文档:TileMapLayer)
在TileSet中,我们新建一个TileSet,并在下面的工作窗口中选择TileSet,将我们准备的图片拖入。在这时,我们可以选择是否自动切割。
2、物理层
如果我们的瓦片不是装饰品,是需要和角色进行碰撞的碰撞体,像是地面之类的,我们可以选择绘制,再选择物理层0,并将想要的瓦片进行涂抹。
3、特殊瓦片的处理
我们可能会遇到存在1.5格的瓦片,那么,我们现将占据1.5格的瓦片取消选中后,直接将占据1格的瓦片拖动到2格的位置,这时我们发现,原来的纹理原点变了,这时,我们需要在该瓦片的选择栏中,选择纹理原点,进行调试。
三、地形与背景
1、自动补全
什么是自动补全呢?就是我们规定一些瓦片,让它们遵从一定的生成规则,比如说角块就要生成在角上,中心块就要生成在中间。然后我们可以随意的绘画一片区域,这片区域将跟着我们之前的定义,来进行生成。
2、地形创建
在TileSet中,我们选择TerrainSets,并选择添加元素,我们看到一个Mode,这是我们对定义规则的使用,在这里我们选择MatchCorners,这是根据角块来定义,之后我们在新创建的地形设置里添加元素,可以自己命名。
3、补全规则
我们在工作栏中选择TileSet中的绘制,并选择地形,找到我们相对应的地形,我们先选中我们想要创建地形的瓦片,然后我们可以进行规则定义。
我们发现一个方块会有一个中心块,这是我们必须涂抹的,之后我们会发现一个方块的四角都有可以进行选择的区域,在这里我们不过多赘述,只需要理解最关键的一个地方:裸露在外面的地方不进行涂抹,而在内部的地方全部涂抹。
4、绘制与概率
我们可以在TileMap中的地形选项中开始我们的绘制。
这时就会出现一个问题,我们对于一些方块的使用,是不希望它频繁的出现的,我们希望它偶尔出现,起到点睛的作用。这时,我们点击绘制,并选择概率。调整概率,并将它运用到相应的方块,这里提供一个概率的计算:设有10个方块,如果全都是1.0的概率,则它的出现概率为1/10,如果有一个是0.3的概率,那它的出现概率为0.3/10。
5、适用于普通瓦片的概率分布
我们选几个装饰性瓦片,可以看见窗口上有一个散布的东西,我们可以随便给一个值,这个意思是,我们这几个瓦片出现概率一致,如果我们绘制一片区域,那么这片区域瓦片与空格的值的比就为1/6。
四、结语
这些只是Godot对于瓦片工具的一小部分,我们还需继续努力。