本站 RSS地址已更新,麻烦读者朋友们重新订阅一次喔!
等距游戏起源于 20 世纪 70 年代末和 80 年代初。从那时起,它们被用于各种类型的游戏,如策略游戏、模拟游戏、角色扮演游戏和益智游戏。如今,等距游戏仍然被独立开发者和 AAA 工作室开发。等距游戏提供独特的视觉风格和游戏玩法可能性。
在本文中,我将简要介绍等距投影和等距游戏,然后我们将深入探讨如何使用 Godot 的瓦片地图节点创建令人惊叹的等距游戏。让我们开始吧!
什么是等距投影?
等距投影是一种将 3D 世界投影到 2D 空间的方法,就像一张纸或电脑显示器。它属于正交投影类别的相机投影。在等距投影中,物体可能会失去一些深度,看起来比自然看到的 3D 世界更平坦。这是因为等距物体没有消失点;相反,物体的每个轴与世界轴平行。
在等距环境中,物体看起来大小相同,无论它们与查看者或相机的距离有多远。相比之下,透视投影会使远处的物体看起来更小,而近处的物体看起来更大。
如需等距投影的更详细解释,请查看《等距游戏的最佳示例及其工作原理》一文。
相机投影类型
具有等距投影的游戏示例
有许多等距游戏示例来自各种类型,如策略游戏、城市建设者和 RPG。一些著名的经典等距游戏包括《红色警戒 2》、《魔兽争霸 2》、《星际争霸 1》、《帝国时代》系列、《模拟城市》系列、《特洛伊》系列、《博德之门 1》、《博德之门 2》等。
如果你重温这些游戏中的任何一个(或观看游戏玩法视频),你会注意到相机始终保持相同的角度,无论远近的物体看起来大小相同。
视频游戏中使用的其他类型相机投影
年来,视频游戏开发者使用了各种投影类型。所有这些投影都提供了将 3D 世界投影到 2D 屏幕的不同方式。以下是其中一些最受欢迎的类型:
- 透视投影:这种相机投影模仿人眼的视觉,提供 3D 视图,通常用于第一人称射击游戏、第三人称射击游戏、角色扮演游戏、冒险游戏以及体育和赛车游戏中。
- 俯视投影:也称为鸟瞰视图,这种投影将相机直接置于世界正上方并朝下。像原版《侠盗猎车手》这样的经典游戏使用了这种技术。
- 双等距 / 三等距投影:正交投影组包括几种由相机角度区分的投影类型。相机角度定义了物体宽度和高度的比例。
如何在 Godot 中开发等距游戏
Godot 为开发等距游戏提供了出色的框架。Godot 中的瓦片地图节点允许你将一个精灵表切割成精灵图像,并使用你选择的相机投影将它们投影到屏幕上。在处理瓦片地图节点的等距投影时,有多种选项可用。在本文中,重点将放在最常用的等距投影类型上。
使用等距视图创建瓦片地图节点相对简单。为此,请按照以下步骤操作:
- 准备一个包含所需瓦片的精灵表作为单个图像文件(通常是带有 alpha 通道的 png 文件),并将其导入你的 Godot 项目中。
- 在场景中创建一个新的瓦片地图节点并选择它。
- 在检查器面板中,生成一个新的瓦片集资源。
- 在“瓦片形状”属性中选择“等距”投影,并将“瓦片布局”和“瓦片偏移轴”属性保留为默认值。
- 转到屏幕底部的瓦片集选项卡,并附加导入的精灵表图像。
- 配置瓦片集,使所有瓦片都准备好。如果你有需要将多个瓦片拼接在一起的复杂对象,请继续阅读。我在后面解决了这个问题。
瓦片集属性
在 Godot 中配置瓦片地图节点的等距相机投影
除了指定瓦片地图的相机投影外,你还需要调整几个参数以确保瓦片的正确绘制和行为。第一步是启用 Y 排序,第二步是定义瓦片集的瓦片大小以及瓦片地图节点的瓦片大小。
什么是 Y 排序以及如何正确排序瓦片
Y 排序是排列屏幕上可见对象绘制顺序的过程。在等距瓦片地图的情况下,每个瓦片按其指定顺序绘制。Y 排序错误可能导致视觉问题。通常,瓦片地图上较低的瓦片先于上方的瓦片绘制。按此顺序绘制可以创建 3D 相机的错觉,而实际上是在 2D 空间中操作。
一旦你在 Godot 中创建了一个瓦片地图节点并将其配置为具有等距投影,你会在瓦片地图节点旁边看到一个警告,指出瓦片地图节点和所有内部层都应该启用 Y 排序。忽略此警告可能会导致瓦片的绘制顺序不正确,并导致视觉不一致。
为了解决这些问题,请按照以下步骤操作:
- 启用瓦片地图节点的“启用 Y 排序”属性(检查器 -> CanvasItem -> 排序)。
- 启用瓦片地图节点中每个层的“启用 Y 排序”属性(检查器 -> 瓦片地图 -> 层)。
瓦片地图排序属性
瓦片集中的瓦片大小与瓦片地图中的瓦片大小的区别
Godot 区分在瓦片集和瓦片地图中定义的瓦片大小。理解这些区别至关重要,因为随着你的瓦片地图的发展,这可以为你节省大量头疼的时间。
- 瓦片集中的瓦片大小:指定精灵表中瓦片图像的大小。它包括将绘制在屏幕上的实际图像像素。
- 瓦片地图中的瓦片大小:指定瓦片的表面大小。每个瓦片有一个 Z 组件,定义瓦片中对象的高度。由于瓦片部分重叠绘制,瓦片地图中定义的瓦片大小仅包括表面部分,不考虑对象的深度。此信息有助于瓦片地图节点了解瓦片中每个对象的精确遮挡情况。
瓦片大小图示
Godot 中瓦片地图节点的高级功能
在大多数情况下,你需要利用瓦片地图的更高级功能,例如多瓦片对象或使用层将瓦片堆叠在彼此之上。这些功能使你能够在游戏中生成多样性和复杂性的瓦片地图。让我们逐一探讨这些功能。
创建多瓦片对象并将其对齐到等距网格
多瓦片对象是瓦片集中定义的多个瓦片的组合。例如,瓦片集中的瓦片大小可能设置为 64×32 的矩形,但一个跨越 3 个瓦片的高对象可能需要一个 64×96 的瓦片。Godot 允许你组合瓦片并创建复杂对象。
如何在 Godot 中的瓦片集中定义多瓦片对象
在 Godot 中定义多瓦片对象相对容易。打开瓦片集编辑器选项卡并按照以下步骤操作:
- 点击“设置”按钮以启用图集设置模式。
- 按住键盘上的 Shift 键。
- 在瓦片区域中,按住鼠标左键并拖动选择所有要组合的瓦片。
- 松开鼠标键和键盘键以创建复杂对象。
一旦创建了对象,你将看到一个包含所有选定瓦片的较大瓦片。现在,你可以通过瓦片地图编辑器选项卡将该大瓦片放置在地图上。
多瓦片对象
使用“纹理原点”属性将多瓦片对象对齐到等距网格
如果你按照上述步骤创建了多瓦片对象并尝试将其放置在地图上,你可能注意到瓦片并没有正好放置在鼠标光标所在的位置。这是因为复杂瓦片的原点仍在其中心。如果这对你有效 - 很好!如果不是 - 你可能需要更改对象的原点点。对我来说,瓦片的原点最直观的位置是在瓦片的左下角。
要更改瓦片的原点点,请打开瓦片集编辑器选项卡并按照以下步骤操作:
- 点击“选择”按钮以启用瓦片选择模式。
- 选择要修改的大瓦片。
- 在左侧出现的“基础瓦片”菜单中,打开“渲染”部分。
- 更改“纹理原点”向量以偏移瓦片的实际原点点。
当你更改原点值时,你会注意到瓦片上会出现一个菱形标记新的原点点位置。请注意,如果位置超出瓦片的范围,将显示带有新输入偏移量的文本。
纹理原点设置
使用瓦片地图层将瓦片堆叠在彼此之上
瓦片地图层允许你将瓦片放置在彼此之上,而不会覆盖地图上已有的瓦片。
例如,城堡的地板可以是瓦片地图的最底层,墙壁、椅子、桌子、门和其他装饰品可以放置在第二层,吊灯可以放置在第三层。
层堆叠确保无论游戏中发生什么,绘制顺序始终相同,这意味着桌子、椅子和装饰品将始终绘制在地板之上,吊灯将始终绘制在装饰品之上。毕竟,桌子和椅子在地板之下是不合逻辑的,对吧?
瓦片地图层列表
如何使用瓦片地图层将多个瓦片堆叠在彼此之上
要创建多个瓦片地图层,请打开瓦片地图节点的检查器面板并按照以下步骤操作:
- 点击瓦片地图层列表中的“添加元素”按钮(检查器 -> 瓦片地图 -> 层)。
- 给新层一个适当的名称并启用“启用 Y 排序”复选框。
- 更新“Z 索引”字段以表示新层。较低的值在后面渲染,而较高的值在前面(更靠近相机)渲染。
- 转到瓦片地图编辑器选项卡并选择当前目标层(选项卡的右上角)。
- 选择一个瓦片并开始将其放置在地图上。
你会注意到,当你切换层时,除了选定层外的所有其他层都会变暗,以便你可以清楚地看到当前层。如果你希望了解更多关于瓦片地图层的信息,请查看《Godot 4 瓦片地图层:你需要知道的一切》一文。
重新排列瓦片地图层以正确绘制瓦片
瓦片地图层列表中的层顺序并不决定绘制顺序;相反,“Z 索引”字段决定。虽然当所有层具有相同的 Z 索引时,层列表中的顺序会改变瓦片的绘制顺序,但来自不同层的瓦片仍然可能混合并产生视觉问题。确定瓦片地图中层绘制顺序的最有效方法是为每个层定义 Z 索引。层从低 Z 索引到高 Z 索引绘制。
我对 Godot 中等距瓦片地图的看法
Godot 为等距游戏提供了大量的功能。用户界面并不总是直观的,但一旦你理解了概念,事情就会变得相对顺利。如需更深入地了解瓦片地图节点及其功能,你可以继续阅读官方 Godot 瓦片地图文档:https://docs.godotengine.org/en/stable/tutorials/2d/using_tilemaps.html。
如果你希望了解更多关于 Godot 和游戏开发的信息,请探索 Night Quest Games 博客。你会找到许多可以帮助你踏上游戏开发之旅的文章。祝你好运!
如果这篇文章对你有帮助,请考虑通过捐款支持这个博客。你的贡献非常受欢迎,并允许我继续维护和开发这个博客。谢谢!
引用地址
原文链接:https://www.nightquestgames.com/introducing-isometric-tilemaps-in-godot/
💡 感谢您的观看!欢迎分享文章,或是来信与我交流。