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

EDUARDO ORIZ / UNITY TECHNOLOGIESSenior Content Marketing Manager
Aug 2, 2019|15 Min
2D Pixel Perfect:如何设置Unity项目以运行复古 16 位游戏
为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

在我们的第一篇复古游戏2D Pixel Perfect指南中,我们向您展示了如何设置2D Pixel Perfect工具以及当年是如何制作 8 位图形的。在这篇文章中,我们将快速跳转到 16 位时代。在 Mega Cat Studios 的帮助下,您将学习如何使用Unity设置、图形结构和调色板为 Sega Genesis(或 Mega Drive)和 Super NES 风格的游戏创建真实的艺术作品。

将您的2D开发经验提升到一个新的水平,探索Unity 的原生2D工具套件

复古游戏


Mega Cat Studios将制作高度还原的复古游戏变成了一种艺术形式。事实上,他们的许多游戏作品还可以以卡带形式购买,并在世嘉Genesis等复古游戏机上玩。

使用2D Pixel Perfect打造复古游戏

在您深入阅读本文之前,我们建议您先熟悉一下我们之前的复古指南,其中我们介绍了2D Pixel Perfect设置以及如何重现 8 位风格的图形。在Unity 2019.2 中, 2D Pixel Perfect现在是2D渲染器的一部分,而 2D 渲染器又包含在轻量级渲染管线 (LWRP) 包中。对于不使用 LWRP 的创作者, 2D Pixel Perfect也作为一个独立的软件包(功能相同)存在。在本指南中,我们将向您展示如何在 LWRP 中设置项目。

在Unity 2019.2 和 LWRP 中创建一个新项目

在Unity Hub中,点击“新建”,选择“2D” ,然后为您的项目命名。

新项目

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

LWRP

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

4.在“项目”窗口的“资源”视图中,右键单击并选择“创建”>“渲染”>“轻量级渲染管线”> “2D渲染器”,创建一个新的2D渲染器。

渲染器资源

5.选择您创建的管道资产。选择“常规” ,然后将渲染器类型从“前向渲染器”更改为“自定义”

6.将您创建的2D渲染器分配给数据字段。

管道资产

7.在图形设置中,将可脚本化渲染管线设置设置为使用您创建的新管线资源。

现在应该已经配置好了2D渲染器,包括2D Pixel Perfect相机。

在Unity 2019.2 中, 2D精灵可以拥有“精灵光照”材质,使其能够对2D光照条件做出反应。如果你的项目中没有使用2D灯光,请确保你的材质不需要2D灯光就能使精灵可见,在这种情况下,你可以将材质更改为“Sprites-Default”。

更改纹理默认值
设置 Pixel Perfect 以适应 16 位图形样式

您需要将 Pixel Perfect Camera 组件添加到您的主摄像头中。我们建议勾选“以编辑模式运行”。

世嘉 Genesis游戏机的分辨率为 320x224 像素(或由 40x28 个 8x8 像素的图块组成的网格)。这是NTSC版本。超级任天堂的NTSC 版本分辨率为 256×224(30x28 个 8x8 像素的图块)。

建议两种图形风格均采用 224 px 的高度分辨率和 8 PPU 的设计素材资源。

使用参考精灵图(图中显示的是世嘉 Genesis 游戏《索尼克》中的全屏 320x224 图像),您可以观察每单位 8 像素 (PPU) 的精灵图如何适应相同分辨率和 PPU 的场景视图。
使用参考精灵图(图中显示的是世嘉 Genesis 游戏《索尼克》中的全屏 320x224 图像),您可以观察每单位 8 像素 (PPU) 的精灵图如何适应相同分辨率和 PPU 的场景视图。

如果您需要回顾一下2D Pixel Perfect相机组件中每个选项的功能,请参阅我们之前的复古游戏博客文章

创作正宗的Genesis风格艺术作品

在本节中,我们将介绍如何创建模仿不同游戏机外观的艺术作品,就像我们在NES 博客文章中所做的那样。与 8 位项目相比,限制较少,色彩方面也更自由,但 Genesis 也有其自身的局限性。我们还认为,解释原始硬件的工作原理也很重要,这样您就可以将这些限制应用到您自己的复古项目中。

调色板和子调色板

从 8 位游戏机过渡到 16 位游戏机,可以让你在更先进的硬件上拥有更多选择。也就是说,创作优秀的NES美术作品的基本原理仍然适用。所有图形仍然以 8x8 图块的形式存储,分层,然后组装成更大的图像,无论是精灵还是背景元素。虽然 16 位在某些方面提供了更大的调色板自由度,但你仍然需要在具有共同透明颜色的有限子调色板内进行操作。你可能会很高兴地听到,16 位游戏机通常不像 8 位游戏机那样有硬编码的调色板,这意味着可用的颜色比 NES 大大扩展了。

其次,Genesis 拥有包含 15 种颜色的子调色板,外加用于精灵透明度和图层透明度的通用颜色。不过,Genesis 美术设计的一大弱点在于子调色板。子调色板可以自由分配给精灵或背景图块,但 Genesis 一次只允许使用四个子调色板。因此,艺术家必须注意子调色板中使用的颜色,以便最大限度地利用它们来制作精灵和背景。Genesis 的子调色板通常包含背景和精灵所使用的颜色,以便使所有内容都能完美地融合在一起。

调色板
上面是 Genesis 场景,下面是使用的子调色板。
上面是 Genesis 场景,下面是使用的子调色板。

要为任何 16 位平台创建图像,您需要使用索引调色板。为此, Gimp可以作为 Photoshop 的开源替代品,它允许进行大量的索引调色板操作。

要在Gimp中创建索引调色板,请转到“图像”>“模式”>“索引…”

索引颜色

“索引颜色转换”窗口随即出现。

索引颜色

将最大颜色数设置为15 。您可以使用自动抖动图案,但手动创建的抖动图案通常效果更好。

抖动

图像的颜色现在已经建立索引。该信息会自动与图像一起保存,以便可以使用颜色索引。如果需要更改索引中颜色的顺序,只需右键单击颜色映射表,然后选择“重新排列颜色映射表...”即可。

颜色映射

此时会弹出一个菜单,允许您将颜色拖放到新的顺序中。

颜色映射

创造更大色彩深度的一个常用技巧是沿着指定的栅格线控制调色板,就像在 NES 上实现视差滚动一样。Genesis 能够沿着指定的栅格线更改艺术作品的子调色板选择。这种技巧常用于制造关卡的一部分位于水下的错觉。“水下”颜色被添加到完全独立的子调色板选择中,并且一旦某个栅格线在屏幕上渲染,子调色板选择就会加载。

基于图块的存储和加载(基于原始硬件)

一般来说,16 位游戏机加载图形图块的方式与 8 位游戏机不同。8 位游戏机将精灵和背景图块分开加载,并以大块数据的形式加载,以避免占用过多处理能力,而 16 位游戏机则拥有更强大的处理能力,因此具有更大的灵活性。它们可以即时加载和替换单个图块,让您可以根据需要加载所需的图形。这样一来,游戏的单个关卡或屏幕中就可以使用更多种类的美术作品。

Genesis/Mega Drive 的另一个独特之处在于,在游戏过程中,加载到主机 VRAM 中的不仅仅是图形图块和调色板数据。这使得为​​游戏主机设计美术变得棘手,因为在给定时间可以加载到内存中的图形图块数量取决于游戏中正在发生的其他事情。一般来说,大多数游戏都会提供足够的空间来加载约 1000 个图块,如果游戏具有动态元素,那么图块可以随时自由地进行替换。

前一场景中加载到内存中的图块。中间的大片空白区域和底部的物品是用于在内存中分配敌人和其他游戏元素的空间。
前一场景中加载到内存中的图块。中间的大片空白区域和底部的物品是用于在内存中分配敌人和其他游戏元素的空间。

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

在这里,艺术家使用干净的 32x32 方块图案来创造背景中大部分可行走的空间。
在这里,艺术家使用干净的 32x32 方块图案来创造背景中大部分可行走的空间。
使用背景图层

Genesis/Mega Drive 允许屏幕上同时激活两个背景图层。这意味着分层元素更容易用于设计背景。也就是说,它仍然只有两层,所以艺术家和开发者可能需要依靠一些栅格线技巧来创造场景的深度。幸运的是,由于所有这些都可以放在第二层,设计师可以自由地将前景对象放置在背景前面,而不会破坏视觉效果。

有了第二层,使用精灵优先级技巧来创建前景对象就变得多余了。现在,您无需反复动态地更改精灵优先级,只需将第二个背景图层设置为显示在玩家前面即可,尽管更高级的图层叠加可能仍然需要快速操作精灵优先级。第二个背景窗格还包含一个子窗格,可用于抬头显示器 (HUD)。子窗格将被锁定在原位,永远不会滚动。

由于游戏采用俯视视角,需要为树创建特殊图块才能操作精灵图层顺序。
由于游戏采用俯视视角,需要为树创建特殊图块才能操作精灵图层顺序。
精灵限制

使用精灵图时,过渡到 16 位图形会有更大的自由度。Genesis/Mega Drive 一次最多可以在屏幕上显示 80 个精灵,在停止渲染任何新精灵之前,最多可以在一条水平线上显示大约 20 个精灵。除此之外,精灵不再被视为单独的 8x8 图块。Genesis能够生成由多个图块组成的单个精灵。这些瓷砖的尺寸可以小到单个瓷砖,大到 4x4 个瓷砖。比这更大的物体仍然需要用多个精灵来制作。

最终 Boss 使用了大量的动画背景元素、图层和许多精灵图。在 8 位平台上,这一切都不可能实现。
最终 Boss 使用了大量的动画背景元素、图层和许多精灵图。在 8 位平台上,这一切都不可能实现。
抖动模式和对比度

16 位时代艺术作品的一个显著特点是使用了抖动技术。当时的电子游戏画面显示在 CRT 显示器上,屏幕上的像素容易互相干扰。艺术家们会利用这一特性,在艺术作品中使用抖动图案,这样,当一个像素以重复的图案渗入另一个像素时,就会产生一种错觉,即颜色比实际可用的颜色更多。尽管显示器技术不断升级,但为了保持准确的视觉效果,像素艺术至今仍然大量使用抖动技术。

抖动技术在 16 位系统中被广泛应用。在 CRT 显示器上,像素图案会混合在一起,创造出其他方式无法实现的新颜色或透明效果。
抖动技术在 16 位系统中被广泛应用。在 CRT 显示器上,像素图案会混合在一起,创造出其他方式无法实现的新颜色或透明效果。

在两款主要的 16 位游戏机中,Genesis/Mega Drive 显示的颜色对比度要高得多。在选择子调色板时,你也需要注意这一点。用较为柔和暗淡的色调制作图像,在硬件上实际渲染时,最终效果可能与预期不符。艺术创作一般应采用高对比度的色彩搭配,这样最终效果才能与艺术家的最初构想保持一致。

创作正宗的SNES风格艺术作品

对于超级任天堂项目,我们仍然使用 8x8 像素大小的图块/网格,因此使用可重复的图块非常有用。一般来说,这些数字都是 8 的倍数。

色彩调色板

Genesis/Mega Drive 和 SNES 的第一个根本区别在于调色板。与 Mega Drive 类似,SNES 没有固定的颜色设置,因此用户可以自行选择颜色。

SNES 的难点在于它使用 5 位/像素 (BPP) 颜色,这在今天并不常见。你可以使用Gimp创建艺术作品来解决这个问题,然后你可以简单地将图像色调减为 32 色RGB,这样即使你没有将图像保存为 5 BPP 颜色,也能得到 5 BPP 颜色。这样可以确保图像颜色在主机上准确显示。

色彩调色板

在Gimp中,您可以在“颜色”>“色调分离…”下找到此选项。此时会弹出一个窗口,您可以在其中将色调分离级别设置为 32,以创建 5 个 BPP 兼容的颜色。

海报化
屏幕分辨率考量

这两个系统之间的下一个主要区别在于屏幕分辨率。由于 SNES 是 NES 的后继产品,因此这两个系统的屏幕分辨率相似。SNES 的内部分辨率为 256x224。这样一来,所有渲染的图像都能显示在大多数 CRT 电视的安全区域内,因此不会出现图像被裁剪的情况。这个分辨率永远不会改变,因此这将是艺术家需要用作参考的图像尺寸。

屏幕分辨率
原硬件的屏幕模式

本节简要介绍各种屏幕模式的功能。

屏幕模式

这两个系统之间最显著的区别在于,SNES 可以在七种不同的屏幕模式下渲染背景图形。在某些屏幕模式下,SNES 能够在单个子调色板中一次渲染屏幕上总共 256 种颜色。以下是一些最受欢迎的屏幕模式:

  • 模式 1:这是SNES最常用的屏幕模式之一。它拥有该游戏机性能的最佳平均表现。模式 1 允许您拥有三个背景图层,其中两个图层有自己的 16 色子调色板,最后一个图层有 4 色子调色板。
  • 模式 3:这种模式通常用于较大的静态图像,例如标题画面和故事画面。它拥有两个背景平面。第一种方法使用完整的 256 色子调色板,第二种方法允许使用 16 色子调色板。
  • 模式 7:这是超级任天堂的主要特点之一。在主机的大部分宣传材料中都展示了模式 7,它是家用游戏机首次能够实时对图像进行变换,允许在背景平面上进行缩放、旋转、拉伸和倾斜。它被用来创建 SNES 上许多赛车和飞行游戏中看到的伪 3D 效果。

模式 7 中的单个背景平面与其他所有屏幕模式的处理方式截然不同,以允许这些功能正常工作。首先,只有一个 256 色的背景平面可供使用,这意味着所有精灵都需要与背景平面的子调色板共享颜色。其次,Mode 7 的背景平面不是使用 SNES 的正常屏幕尺寸,而是 1024x1024 像素。然后根据设计师的意愿,调整其尺寸和大小以适应屏幕。

办公室使用模式 1,带有一个子调色板(另外两个用于用户界面)。“感谢游玩”屏幕使用模式 3,允许艺术家使用 256 色调色板。
办公室使用模式 1,带有一个子调色板(另外两个用于用户界面)。“感谢游玩”屏幕使用模式 3,允许艺术家使用 256 色调色板。
精灵尺寸

与复杂的背景屏幕模式相比,精灵的规则相对简单。SNES 有多种不同的精灵模式,就像 Mega Drive 一样,但它有一个硬性限制,即在整个游戏中只能使用两种不同的精灵模式。

精灵可以是 8x8、16x16、32x32 或 64x64。不仅如此,设计师还必须从预先设定的精灵尺寸组合列表中进行选择。超级任天堂(SNES)上的游戏可以包含以下组合:

  • 8x8,16x16
  • 8x8,32x32
  • 8x8,64x64
  • 16x16,32x32
  • 16x16,64x64
  • 32x32,64x64

这些尺寸一旦选定就“固定不变”,游戏中所有精灵都必须符合这些尺寸。SNES 一次可以在一条水平光栅线上渲染 32 个精灵,但一次在屏幕上显示的精灵数量上限为 128 个。超出此范围的内容将不会显示在屏幕上。

Fork Parker 的 Crunch-Out 游戏中的所有精灵都采用了 32x32 和 16x16 的组合。

精灵可以使用八个 16 色子调色板。与所有复古游戏机一样,任何子调色板的第一个颜色都是用于透明的通用共享颜色。与其他游戏主机相比,本作的子调色板数量众多,让您在为精灵选择颜色时拥有更大的自由度。你只需要记住,颜色数量有硬性限制,最多只能是 256 色。

下一步

希望您喜欢这篇关于如何在最新版本的Unity中使用2D Pixel Perfect创建 8 位和 16 位复古游戏的文章。

2D Pixel Perfect功能尚未完成,该功能将在Unity 2019.3 中进行生产验证,并且还将与Cinemachine 2D更加兼容。

请告诉我们您的2D Pixel Perfect项目进展如何,也别忘了访问2D论坛,与Unity社区和2D开发团队互动。