第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作

上个章节介绍了Tiled包含的地图类型,分别为:正常、45度、等角(交错)、六角(交错)。在RPG游戏中,如星露谷物语、塞尔达等,采用的基本都是正常方向类型地图。本教程面向独立游戏开发者,鉴于独立游戏界面美术能力是短板,因此本教程专注于使用Tiled编辑正常方向地图。

本章节逐步介绍从零新建工程,在工程中新建地图并绘制地图。

3.1 项目

3.1.1 操作指引:新建项目

打开Tiled,选择文件 - 新建 - 新建项目

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目

在文件系统中选择一个项目的存放文件夹,本教程为D:\tiledprojects,将项目文件名命名为study.tiled-project:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图块层_02

点击保存,将会在该文件夹中存放一个名字为study.tiled-project的文件,Tiled软件界面变成如下图:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_tileset_03

从左上角的标题看,现在已经处于在study这个项目的工作状态中。

3.1.2 项目相关概念解释

Tiled 1.4 及以后版本引入了项目文件的概念,用于定义项目资产文件夹、兼容性版本、扩展目录、自动匹配规则文件等,并且支持项目会话文件来记录用户的工作状态。 项目文件主要包含以下内容:

3.1.2.1 资产文件夹列表

定义了属于该项目的资产所在的文件夹。来看一个案例说明:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图块层_04

这个文件夹下面包含了三类文件,再来看这个项目的文件夹目录:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_05

可以看到比软件的项目目录多了几个文件,分别是:rules.txt、study.tiled-project、study.tiled-session,其中study.tiled-project是项目文件,我们来看其他几个文件:

这些文件(资产)通常包括以下类型:

瓷砖集(tileset)文件

定义了一组图块,可以在地图中重复使用。对应上图中的tileset1.tsx文件。

地图文件

由图块和其他元素组成的地图层次结构。对应上图中的map1.tmx文件。

对象模板

可以在多个地图中重用的对象集合。对应上图中的对象模板.tx文件。

自动匹配规则文件

指定项目加载时使用的自动匹配规则文件或单个规则地图,对于项目中的所有地图都有效,除非地图旁边保存了自己的 rules.txt 文件。对应上图中的rules.txt,这个是项目级别的。下图是一个rules的样例:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_06


插件扩展

通过扩展目录指定项目将加载什么扩展,这个扩展目录用于存放 Tiled 扩展(也叫插件或脚本),默认为 extensions,可以自动检测。扩展是指用于扩展 Tiled 功能的插件或脚本。

兼容性版本

用于指定目标 Tiled 版本,以保持与旧版本的兼容性或与不支持某些反向不兼容更改的库和框架兼容。

关于规则文件、插件扩展、兼容性版本

看下图:

选择 项目 - 项目属性

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_tileset_07

打开项目属性面板:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图层_08

红色代表没有找到这个目录,这个时候手动在项目文件夹(本教程是指D:\tiledprojects)中新建extensions文件夹即可。


会话文件

该会话文件存储了用户的最后打开的文件、编辑器状态、对话框中最后使用的参数等信息。这使得用户可以轻松地在不同的项目之间切换,并在项目加载时自动恢复之前的工作状态。会话文件可以用文本编辑器打开,下面是一个样例(study.tiled-session):

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_09

这个study.tiled-session文件可以不用管具体内容,知道是保存当前项目开发状态的就可以。

项目文件

在 Tiled 项目文件中,主要通过定义包含这些资产的文件夹列表来管理这些资产。项目文件确保了所有相关资产都能够被 Tiled 正确识别和加载。本教程此次新建的study.tiled-session采用文本编辑器打开内容如下:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_10

简单分析一下,指定了该项目的自动映射规则文件,版本号,扩展目录,随着项目内容逐步扩展,该文件的内容也会变得更加丰富。


项目的另一个优势是可以快速打开项目文件夹中的任何已识别的文件。通过 "File -> Open File in Project"(Ctrl+P)菜单项,可以快速访问项目中的文件。

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_tileset_11


3.2 地图

3.2.1 操作指引:新建地图

在新建完成项目之后,通过 文件 - 新建 - 创建新地图 进行地图创建,如下图:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_12

打开 新地图 面板:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_13

面板内各个选项概念在上一章节已经详细描述,这里不再赘述。我们选择如图所示属性,点击OK完成地图创建。创建成功空白地图后将看到如下界面:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图层_14

3.2.2 地图面板功能介绍

如下图,点击红色箭头指向的界面元素,可以切换到图层面板:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图层_15

在 Tiled 中,图层面板是用户管理和操作地图图层的中心界面。图层是地图编辑的基本概念,它允许你将地图分割成不同的层次,每个层次可以包含不同的瓷砖、对象或者是图层的组合。这样做可以让你更容易地组织和编辑地图的不同部分。

3.2.2.1 图层面板的功能:
  1. 图层列表: 图层面板显示了当前地图中所有图层的列表。你可以在这里看到每个图层的名称、类型以及它们的可见性状态。下图是举例说明:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_tileset_16


  1. 图层操作: 你可以通过图层面板来添加、删除、重命名和复制图层。此外,你还可以调整图层的堆叠顺序,通过拖拽来改变图层在列表中的位置,这会影响它们在地图上的显示顺序。

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图层_17

  1. 图层属性: 对于每个图层,你可以设置一些属性,比如图层的名称、类型(瓷砖层、对象层或图层组)、可见性、锁定状态以及是否进行编辑。每个图层都可以单独设置为可见或隐藏,这有助于你专注于编辑特定的图层。同时,图层可以被锁定,以防止意外修改。
  2. 图层组: 图层组允许你将多个图层组合在一起,这有助于组织相关的图层。图层组可以折叠 / 展开,以便更有效地管理空间。
  3. 图层编辑: 通过图层面板,你可以选择一个图层进行编辑。当一个图层被选中时,你可以在主编辑区域对其进行绘制、移动、删除等操作。


3.2.3 图块层(Tile Layer)

新建一个图块层比较简单,操作如下图:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_18

  1. 图块层(Tile Layer): 瓷砖层是由瓷砖组成的图层,你可以在其上绘制和编辑瓷砖。这些瓷砖通常来自于瓷砖集(Tileset),并且可以用来创建地图的基础结构和视觉效果。

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_19

 上面是个图块层的属性面板,包括:

名称:图块层的名称,用于在 Tiled 中唯一标识该图层。一个好的图层名称可以帮助你在编辑地图时更容易地识别和管理不同的图层。

类:指定图层的类型,对于图块层,这通常是预设的,并且不需要用户更改。

可见:一个复选框,用于控制图块层是否可见。取消勾选可以隐藏图块层,这在你想要专注于其他图层编辑时非常有用。

锁定:这是一个布尔值属性,用于控制图块层的可编辑状态。当图块层被锁定时,它在地图编辑器中变得不可编辑,这意味着你不能在该层上绘制、移动或修改图块。锁定图块层可以防止意外修改,特别是当你想要在其他层上工作而不影响当前层时非常有用。如果图块层未锁定,你可以自由地对其进行编辑。

在 Tiled 的用户界面中,通常会有一个小锁头图标来表示图块层的锁定状态。点击这个图标可以快速切换图块层的锁定状态。锁定和解锁图块层是一个常见的操作,可以帮助用户更好地管理和组织地图的不同部分。

有两种操作锁定的方式,分别是在属性面板中点击复选框:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图层_20

和在图层列表中点击小锁的图标:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_tileset_21

不透明度:图块层的不透明度,范围从完全透明(0)到完全不透明(1)。

染色颜色(Tint Color) - 这个属性允许你为图块层选择一个颜色,该颜色会被用来乘以图块层上每个图块的颜色值。这种染色效果可以用来创建特定的视觉效果,如夜晚模式、阴影效果或者其他需要统一色调的场景。通常,染色颜色会与图块层的原始颜色相乘,从而产生一个混合色彩。如果染色颜色设置为白色(RGB 值为 255,255,255),则图块层不会发生变化,因为白色与任何颜色相乘都会保持原来的颜色。设置为黑色(RGB 值为 0,0,0)则会使图块层完全变黑。其他颜色会根据它们的 RGB 值影响图块层的显示效果。

在 Tiled 的图形用户界面中,通常会有一个颜色选择器供你选择染色颜色。选择颜色后,你可以实时看到它对图块层的影响。这个属性提供了一种简单而强大的方式来改变图块层的视觉外观,而不需要修改每个单独的图块。

染色之前:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图层_22

选择染色:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_tileset_23

营造出晚上的效果:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_24


水平偏移&垂直偏移:图块层的偏移量,用于调整图块层在地图上的显示位置,不影响图块层的实际坐标。

以下是偏移量都是0,则图块层左上角处于原点位置:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_25

以下是偏移量 32、32 则图块层左上角向右下方偏移了32个像素:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图块层_26


视差因子x & 视差因子y (Parallax Factor X & Parallax Factor Y) : 图块层的视差因子,用于在游戏中创建视差滚动效果,模拟不同距离的背景移动速度。

通过案例解释一下:

新建两个图块层,命名为:建筑、河流,建筑在上层,河流在下层:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_27

建筑图块层如下:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图层_28

河流图块层如下:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_29

将建筑图块层属性视差因子设置为 X=2,Y=1:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图块层_30

效果如下:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图层_31

一般用来制作类似远景、近景交错的环境下,角色移动背景的变化。


3.2.4 对象层(Object Layer)

对象层允许你在地图上放置和管理对象。这些对象可以是简单的矩形或多边形形状,也可以是更复杂的定制图像。对象层通常用于放置游戏中的实体、事件触发区域或装饰性元素。

新建一个对象层操作如下图:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_32

对象层(Object Layer)在 Tiled 地图编辑器中用于组织和管理地图上的非图块元素,它们通常代表地图上的实体或者特定的游戏对象。以下是对象层的几个主要作用:

实体表示 - 对象层可以包含各种形状的对象,如矩形、椭圆、多边形、点和线,这些对象可以代表游戏中的实体,如敌人、NPC、物品、门等。

游戏逻辑链接 - 在游戏开发中,对象层中的对象通常会被赋予特定的属性和类型,这些信息可以被游戏引擎解析,以实现特定的游戏逻辑,比如碰撞检测、事件触发器、AI 路径 finding 等。

自定义数据存储 - 对象层中的每个对象都可以存储自定义的键值对数据,这些数据可以用来为对象添加额外的属性,如健康值、伤害力、移动速度等。

可视化辅助 - 对象层可以用来在地图编辑器中可视化地图上的关键区域或者特定的地标,这对于设计和理解地图布局非常有帮助。

多层次组织 - 在复杂的地图中,可以使用多个对象层来组织不同类型的对象,例如一个层用于碰撞体积,另一个层用于 NPCs,还有一个层用于背景装饰等。

动态元素管理 - 对象层可以包含动态变化的元素,这些元素在游戏运行时可以被移动、更改属性或者根据游戏事件被添加或删除。

脚本和事件触发 - 对象层中的对象可以与游戏的脚本或事件系统相连,用于触发特定的动作或者剧情序列。

图层混合和效果 - 对象层可以设置不同的图层混合模式,以及透明度和渲染顺序,从而实现各种视觉效果。

总之,对象层在 Tiled 中是一个非常强大的工具,它允许开发者和地图设计者在地图中添加和管理游戏对象,这些对象不仅可以是静态的,也可以是与游戏逻辑紧密相连的动态元素。通过对象层,可以大大丰富地图的功能和游戏的互动性。

Tiled 的对象层可以与 Godot 和 Unity 兼容,但是兼容性的程度取决于所使用的工具和插件的功能。


3.2.5 图像层(Image Layer)

图像层包含一个单一的大图像,这个图像可以覆盖整个地图,也可以是地图的一部分。这种图层通常用于背景元素,比如地图的底图或者环境遮罩。

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_项目_33

3.2.4 图层组(Layer Group)

图层组是一种特殊的图层,它可以包含其他图层和图层组。这使得你可以将相关的图层组织在一起,方便地进行管理和操作,比如一起调整可见性或锁定状态。

添加一个图层组操作如下图:

第三章 游戏开发Tiled篇-3.Tiled正常方向(Orthogonal)地图编辑基本操作_图块层_34

通过使用图层,你可以创建复杂的地图,其中包含多个独立的视觉和逻辑元素,这些元素可以在游戏开发中以不同的方式进行交互和呈现。图层面板是管理这些元素的关键工具,它提供了对地图结构的直观控制。

3.3 小结

本章节介绍了如何在 Tiled 中使用正常方向(Orthogonal)进行地图编辑。以下是本章节的主要内容总结:

项目创建与管理:

通过 Tiled 的文件菜单新建项目,并选择项目文件夹和项目文件名。

项目文件(如 study.tiled-project)包含了项目资产的配置信息,如资产文件夹列表、兼容性版本、扩展目录和自动匹配规则文件等。

项目会话文件(如 study.tiled-session)记录了用户的工作状态,包括最后打开的文件、编辑器状态等。

地图编辑基本操作:

在新建的项目中创建新地图,并了解新地图面板中的各个选项。

地图面板用于管理和操作地图图层,包括图块层、对象层、图像层和图层组。

图块层(Tile Layer):

图块层由瓷砖组成,用于构建地图的基础结构。

图块层的属性包括名称、可见性、锁定状态、不透明度、染色颜色、偏移量和视差因子等。

对象层(Object Layer):

对象层用于放置和管理地图上的非图块元素,如游戏实体、事件触发区域等。

对象层的作用包括实体表示、游戏逻辑链接、自定义数据存储、可视化辅助、多层次组织、动态元素管理和脚本事件触发等。

图像层(Image Layer):

图像层包含单一的大图像,通常用于背景元素,如地图底图。

图层组(Layer Group):

图层组允许将相关的图层组织在一起,便于管理和操作。

通过这些基本操作,开发者可以在 Tiled 中创建和编辑复杂的地图,为游戏开发提供强大的视觉基础。Tiled 的灵活性和功能性使得它成为游戏开发者常用的地图编辑工具。

下个章节我们进入图块层地图编辑环节。