2D Pixel Perfect:如何为复古 16 位游戏设置 Unity 项目

在我们的第一份复古游戏 2D Pixel Perfect 指南中,我们向你展示了如何设置 2D Pixel Perfect 工具,以及当年 8 位图形是如何制作的。在这篇文章中,我们将快进到 16 位时代。在 Mega Cat Studios 的帮助下,您将学习如何使用 Unity 设置、图形结构和调色板为世嘉 Genesis(或 Mega Drive)和超级 NES 风格的游戏创作 Authentication 美术作品。
让您的 2D 开发体验更上一层楼,探索Unity 的原生 2D 工具套件。

Mega Cat Studios将高精度复古游戏的制作变成了一种艺术形式。事实上,他们的一些作品还可以以盒式磁带的形式在世嘉 Genesis 等复古游戏机上播放。
在您进入本篇文章之前,我们建议您先熟悉一下我们之前的复古指南,在那里我们介绍了 2D Pixel Perfect 设置以及如何重现 8 位风格的图形。在 Unity 2019.2 中,2D Pixel Perfect 现在是轻量级渲染管道 (LWRP) 包中的 2D 渲染器的一部分。对于不使用 LWRP 的创作者来说,2D Pixel Perfect 也是一个独立的软件包(具有相同的功能)。在本指南中,我们将向您介绍如何在 LWRP 中设置项目。
在 Unity Hub 中单击 "新建",选择 "2D",然后为项目命名。

2.要导入 2D Pixel Perfect 软件包,请单击工具栏上的窗口菜单,然后选择软件包管理器。在弹出的窗口中,选择轻量级 RP软件包,确保获得 6.9.0 或更高版本。

3.接下来,您将在编辑器中配置 2D 渲染器,并创建一个新的管道资产。在 "项目 "窗口中,右键单击 "资产 "视图,然后选择 "创建">"渲染">"轻量级渲染管道">"管道资产"。
4.在 "项目 "窗口的 "资产 "视图中,右键单击并选择 "创建">"渲染">"轻量级渲染管道">"2D渲染器",创建一个新的 2D渲染器。

5.选择您创建的管道资产。选择常规,然后将渲染器类型从 "前向渲染器 "更改为 " 自定义"。
6.将创建的 2D 渲染器分配给数据字段。

7.在 "图形 "设置中,将 "可脚本渲染管道设置 "设置为使用您创建的新管道资产。
现在应该已经配置好 2D 渲染器,包括 2D Pixel Perfect 摄像头。
在 Unity 2019.2 中,2D Sprites 可以拥有 "Sprite-Lit "材质,这样它们就可以对 2D 光照条件做出反应。如果您的项目中没有使用 2D 灯光,请确保您的材质不需要使用 2D 灯光来使 Sprites 可见,在这种情况下,您可以将材质更改为 "Sprites-Default"。

您需要将 Pixel Perfect Camera 组件添加到主相机中。建议选中 "在编辑模式下运行"。
世嘉 Genesis游戏机的分辨率为 320x224 px(或 8x8 像素的 40x28 网格)。这是 NTSC 版本。超级 NES 的NTSC 版分辨率也是 256×224(30×28 块 8×8 像素)。
对于这两种图形样式,建议使用 224 px 的高度分辨率和 8 PPU 设计资产。

如果您需要了解 2D Pixel Perfect Camera 组件中每个选项的作用,请参阅我们之前的复古游戏博文。
在本节中,我们将介绍制作模仿不同游戏机外观的艺术品的工作流程,就像我们在NES 博文中所做的那样。与 8 位项目相比,"创世纪 "的限制更少,色彩的自由度更高,但它也有自己的局限性。我们还认为,解释原始硬件的工作原理非常重要,这样您就可以将这些限制应用到自己的复古项目中。
从 8 位控制台跳转到 16 位控制台,可以让你在更先进的硬件上有更多选择。尽管如此,制作出色的 NES 美术作品的基本原理依然适用。例如,所有图形仍以 8x8 瓦片存储,然后组装成更大的图像,无论是精灵还是背景元素。虽然 16 位在某些方面为调色板提供了更大的自由度,但您仍然需要在有限的子调色板中使用通用的透明色。16 位游戏机一般不像 8 位游戏机那样有硬编码的调色板,这意味着可用颜色比 NES 大幅增加,您听到这个消息可能会松一口气。
接下来,Genesis 拥有包含 15 种颜色的子调色板,以及用于精灵透明度和图层透明度的常用颜色。不过,为《创世纪》设计美术的弱点之一来自子调色板。子调色板可以自由分配给精灵或背景瓷砖,但 Genesis 一次只允许使用四个子调色板。因此,美工人员必须注意在子调色板中使用哪些颜色,以便最大限度地将它们用于雪碧和背景。创世纪的子调色板通常包含背景和精灵都要使用的颜色,以便将所有颜色整齐地排列在一起。


要为任何 16 位平台创建,都需要使用索引调色板。为此,Gimp 可以作为 Photoshop 的开源替代品,允许进行大量的索引调色板操作。
要在 Gimp 中创建索引调色板,请转到 图像 > 模式 > 索引...

出现 "索引色彩转换 "窗口。

将颜色的最大数量设置为15。您可以使用自动抖动模式,但如果是手动创建,效果会更好。

现在已对图像的颜色进行索引。该信息会自动与图像一起保存,以便使用色彩指数。如果需要更改索引中颜色的顺序,只需右键单击颜色图,然后选择重新排列颜色图...

这时会出现一个弹出式菜单,您可以将颜色拖放到新的顺序中。

创造更大色彩深度的一个常用技巧是沿着指定的光栅线控制调色板,就像在 NES 上实现视差滚动一样。Genesis 能够沿指定的光栅线更改图样的子调色板选择。这种技巧经常被用来制造关卡的一部分在水下的假象。水下 "颜色被添加到一个完全独立的子调色板选项中,一旦某个光栅线被渲染到屏幕上,子调色板选项就会被加载。
一般来说,16 位游戏机加载图形文件的方式与 8 位游戏机不同。8 位游戏机将分别加载雪碧和背景瓷砖,并以大块数据的形式加载,以避免使用大量的处理能力,而 16 位游戏机则拥有更灵活的处理能力。它们可以即时加载和交换单个图块,让您只在需要时加载所需的图形。这样就可以在游戏的单个关卡或屏幕中使用更多的艺术品。
Genesis/Mega Drive 的另一个独特之处在于,在游戏过程中,加载到游戏机 VRAM 中的不仅仅是图形磁贴和调色板数据。这就使得为控制台设计美术变得非常棘手,因为在特定时间内可加载到内存中的图块数量会因游戏中其他内容的不同而变化。一般来说,大多数游戏都会留出足够的空间来加载约 1000 块瓷砖,而且如果有动态元素,瓷砖总是可以自由交换。

虽然可以将更多可用的瓷砖同时加载到 VRAM 中,但大多数时候,这些额外的自由度都留给了精灵,以便同时在屏幕上显示更多不同的动画和更多类型的精灵。这意味着,在 16 位艺术作品中,使用重复的瓷砖片段这一基本设计理念仍会被大量使用,这样背景就不会占用过多的可用空间。NES、Genesis 和 SNES 的分辨率都非常接近,因此 16x16 段往往是这类设计的起点。

Genesis/Mega Drive 允许在屏幕上同时激活两个背景层。这意味着分层元素更容易用于设计背景。尽管如此,它仍然只有两个图层,因此艺术家和开发人员可能不得不依靠一些光栅线技巧来增加场景的深度。幸运的是,由于所有这些都可以放到第二层,设计师可以自由地将前景物体放在背景前面,而不会破坏错觉。
有了第二层,也就不再需要使用雪碧优先技巧来创建前景对象了。现在,您只需将第二个背景层设置为显示在播放器前面即可,而无需在运行过程中反复更改 "雪碧 "的优先级,尽管更高级的分层可能仍需要快速操作 "雪碧 "的优先级。第二个背景窗格还有一个子窗格,可用于平视显示器(HUD)。子窗格将被锁定在原处,永远不会滚动。

当你使用精灵时,跳转到 16 位会有更大的自由度。Genesis/Mega Drive 可以同时在屏幕上显示 80 个精灵,在一条水平线上显示约 20 个精灵,然后就会停止渲染任何新的精灵。除此之外,"精灵 "不再作为独立的 8x8 瓦片计算。Genesis 能够生成由多个瓷砖组成的单个精灵。这些瓦片小到一块,大到 4x4 块。如果比这更大,还需要用多个精灵来制作。

16 位时代艺术品的一个显著特点是使用抖动。当时的游戏是在 CRT 显示器上显示的,屏幕上的像素容易相互渗透。艺术家们会利用这一事实,在作品中使用抖动模式,这样,当一个像素以重复的模式渗入另一个像素时,就会产生色彩比实际多的错觉。时至今日,尽管我们的显示器已经升级,但在像素艺术中仍大量使用抖动技术,以保持精确的美感。

在两大 16 位游戏机中,Genesis/Mega Drive 显示的色彩对比度更高。这也是您在选择副餐盘时需要注意的。在硬件上实际渲染图像时,用更柔和、更暗淡的色调制作的图像最终看起来并不像预期的那样。艺术创作一般应使用高对比度的色调,这样最终效果才能与艺术家最初的构想保持一致。
对于超级 NES 项目,我们仍然使用 8x8 像素大小的瓷砖/网格,因此使用可重复瓷砖非常有用。一般来说,这些数字是 8 的倍数。
Genesis/Mega Drive 和 SNES 之间的第一个根本区别在于色调。与 Mega Drive 一样,SNES 没有硬编码调色板,因此您可以选择它们的颜色。
SNES 的棘手之处在于它使用每像素 5 位 (BPP) 颜色,而这种颜色在今天并不常见。要解决这个问题,您可以使用 Gimp 创建艺术品,然后您可以简单地将图像海报化为 32 种 RGB 色调,这样即使您没有将图像保存为这样的颜色,也可以计算出 5 种 BPP 颜色。这样就能在控制台上准确显示图像颜色。

您可以在 Gimp 中的 "颜色 > Posterize..." 下找到此选项,弹出一个窗口,您可以将 Posterize 级别设置为 32,以创建 5 种 BPP 兼容的颜色。

这两种系统的另一大区别在于屏幕分辨率。由于 SNES 是 NES 的继承者,因此这两个系统的屏幕分辨率相似。SNES 的内部分辨率为 256x224。这样,任何正在渲染的图像都能在大多数显像管电视的安全区域内显示,因此没有任何图像会被截断。这种分辨率永远不会改变,因此这将是艺术家需要用作参考的图像尺寸。

本节提供了各种屏幕模式的快速参考。

系统之间最大的区别在于,SNES 可以在七种不同的屏幕模式下呈现背景图形。在某些屏幕模式下,SNES 能够在单个子调色板中同时在屏幕上呈现 256 种颜色。下面是一些最常用的屏幕模式:
- 模式 1:这是 SNES 最常用的屏幕模式之一。它是游戏机平均性能的最佳体现。模式 1 允许你有三个背景层,其中两个层有自己的 16 色子调色板,最后一个层有 4 色子调色板。
- 模式 3:这种模式一般用于较大的静态图像,如标题屏幕和故事屏幕。它拥有两个背景平面。前者使用完整的 256 色子调色板,后者允许使用 16 色子调色板。
- 模式 7:这是 SNES 的主要功能之一。它在游戏机的大部分宣传材料中都有展示,模式 7 是家用游戏机首次能够对图像进行实时变换,允许在背景平面上进行缩放、旋转、拉伸和倾斜。它被用来制作 SNES 上许多赛车和飞行游戏中的伪 3D 效果。
模式 7 中单一背景平面的处理方式与所有其他屏幕模式大不相同,因此可以使用这些功能。首先,只有一个 256 色的背景平面,这意味着所有的精灵都需要与背景平面的子调色板共享颜色。接下来,模式 7 背景平面的尺寸不再是 SNES 的正常屏幕尺寸,而是 1024x1024 像素。然后,设计者可以根据需要调整屏幕的尺寸和大小。

在复杂的背景画面模式之后,"精灵 "的规则就相对简单了。SNES 有多种不同的 "雪碧 "模式,就像 Mega Drive 一样,但有一个硬性限制,即整个游戏只能使用两种不同的 "雪碧 "模式。
精灵的大小可以是 8x8、16x16、32x32 或 64x64。不仅如此,设计师还必须从预先确定的雪碧尺寸组合列表中进行选择。SNES 上的游戏可包括以下组合:
- 8x8, 16x16
- 8x8, 32x32
- 8x8, 64x64
- 16x16, 32x32
- 16x16, 64x64
- 32x32, 64x64
一旦选择了这些尺寸,它们就 "一成不变 "了,游戏中的所有精灵都必须符合这些尺寸。SNES 能够在一条水平光栅线上同时渲染 32 个精灵,但在屏幕上同时显示 128 个精灵的上限却很高。除此之外的任何内容都不会在屏幕上呈现。

精灵有 8 个 16 色子调色板可供选择。与所有复古游戏机一样,任何子调色板的第一种颜色都是用于透明度的通用共享色。与其他游戏机相比,该软件提供了大量的子调色板,让您在为精灵选择颜色时拥有更大的自由度。你只需记住,256 色是硬性限制。
我们希望您喜欢这篇关于如何在最新版 Unity 中使用 2D Pixel Perfect 制作 8 位和 16 位复古游戏的文章。
我们还没有完成 2D Pixel Perfect 的制作,因为该功能将在 Unity 2019.3 中进行制作验证,也将与 Cinemachine 2D 更加兼容。
让我们知道你自己的 2D Pixel Perfect 项目进展如何,别忘了访问2D 论坛,与 Unity 社区和 2D 开发团队交流。