在我们的
第一个复古游戏
教程中 ,我们展示了如何自定义2D Pixel Perfect工具以及如何在8位游戏时代创建图形。 在这篇文章中,我们将被带到16位时代。 借助Mega Cat Studios,我们将学习如何使用Unity选项,图形结构和调色板为Sega Genesis(Mega Drive)和Super NES风格的游戏创建真实的图形。
创建真实的创世纪风格图形
在本节中,我们将考虑创建模拟不同控制台图像的图形的工作流程。 与8位项目相比,限制更少,使用颜色时具有更大的自由度,但是Genesis仍然有局限性。 我们认为,解释控制台硬件的工作方式也很有用,这样您就可以在自己的复古项目中应用这些限制。
调色板和子调色板
由于设备的复杂性,从8位控制台过渡到16位控制台为开发人员提供了更多机会。 但是,创建高质量NES图形的原理仍然有效。 所有图形仍存储在图块中,例如大小为8×8,并从它们收集为大图像-精灵和背景元素。 艺术家仍然仅限于具有通用透明颜色的子调色板,但是16位为使用调色板提供了更大的灵活性。 您很可能会对16位控制台没有明确定义的调色板感到满意,也就是说,与NES相比,可用颜色的数量大大增加了。
此外,Genesis还拥有包含15种颜色的子调色板,以及用于精灵和图层透明度的整体颜色。 但是,为Genesis创建图形的缺点之一是使用子调色板。 可以将子面板自由分配给Sprite或背景图块,但是Genesis允许您一次使用不超过四个子面板。 因此,艺术家需要考虑在子调色板中应使用什么颜色,以使它们用于子画面和背景的数量最大。 创世纪子调色板通常包含用于背景和精灵的颜色。
上面显示了《创世纪》游戏的场景,下面是使用的子选项板。为任何16位平台创建图形时,您需要使用索引调色板。 为此,您可以使用Gimp编辑器,它是Photoshop的免费替代品,它允许您处理索引的调色板。
要在Gimp中创建索引调色板,请转到
图像>模式>索引 ...
“索引颜色转换”窗口打开。
对于最大颜色数,将值设置为
15 。 您可以使用自动抖动模式,但是如果您手动创建它们,通常看起来会更好。
图像颜色现已建立索引。 该信息将自动与图像一起保存,以便可以使用颜色索引。 如果需要更改索引中颜色的顺序,只需右键单击颜色图,然后选择“
重新排列颜色图
...”。将打开一个窗口,允许您拖放颜色,更改其顺序。
增加色彩深度的一种流行技巧是控制特定扫描线中的调色板,这与在NES上实现视差滚动的方式类似。 Genesis控制台能够在指定的扫描行中更改图形子选项板的选择。 通常使用此技巧来创建这样的错觉:部分关卡在水下。 水下颜色被添加到单独的子调色板中,并且当指定的扫描线在屏幕上呈现时,将加载该子调色板。
存储在图块中并在此控制台中加载
通常,16位控制台加载的图形切片与8位控制台不同。 8位控制台向Sprite和背景图块加载了大量数据,以节省处理能力,而16位控制台的资源则提供了更大的灵活性。 他们可以动态加载和替换单独的图块,从而可以仅加载所需的图形。 因此,在单个屏幕或级别上,您可以使用更多种类的图形。
Genesis / Mega Drive的另一个独特方面是,图形和调色板数据并不是游戏期间加载到VRAM控制台中的唯一数据。 这使得很难为游戏机创建图形设计,因为在特定时间点可以加载到内存中的图形块的数量取决于游戏中正在发生的其他事情。 在一般情况下,大多数游戏都有足够的空间来加载大约1000个图块,并且通过动态元素,图块可以始终免费下载并加载到内存中。
在上面显示的场景中将图块加载到内存中。 中间有一个大的空白空间,下面是工件,这是在内存中分配给敌人和游戏其他元素的空间。尽管在VRAM中可以同时加载更多种类的图块,但大多数情况下,此额外空间仍保留给sprite。 这提供了更复杂的动画,并允许在屏幕上同时显示更多的精灵。 也就是说,在16位图形中仍积极使用具有重复图块段的基本设计理念,因此背景不会占用太多可用空间。 NES,Genesis和SNES的权限几乎相同,因此16×16段通常是此类设计的起点。
在这里,艺术家使用32×32的方块图案来制作地板的主体部分,即背景。处理背景图层
Genesis / Mega Drive允许您在屏幕上同时显示两层背景。 这意味着覆盖元素更易于创建设计背景。 但是,只有两层,因此,为了使场景更深,艺术家和开发人员可以对扫描线使用技巧。 幸运的是,由于所有这些都可以转移到第二层,因此设计人员可以自由地将前景对象放置在背景前面,而不会破坏幻觉。
此外,由于第二层的存在,开发人员不再需要使用具有Sprite优先级的技巧。 现在,无需不断动态更改Sprite的优先级,现在可以设置播放器前面显示的背景的第二层。 但是,对于更复杂的覆盖,仍然可能需要快速操纵子画面优先级。 第二背景层还具有可用于界面的区域。 该区域被锁定在适当的位置,永远不会滚动。
由于树的自顶向下视图,因此有必要创建特殊的图块来操纵子画面层的顺序。精灵限制
当切换到16位时,使用Sprite的自由度大大增加。 Genesis / Mega Drive可让您在屏幕上同时显示多达80个精灵和一条水平线上多达20个精灵; 所有后续的精灵都不会渲染。 此外,不再将子画面视为单独的8×8磁贴。 创世纪能够生成由多个图块组成的单个子画面。 它们可以是一个图块到4x4的图块。 较大的图像将必须由几个子画面组成。
最终老板的图形使用了大量的动画背景元素,图层和许多精灵。 在8位平台上,所有这些都是不可能的。抖动模式和对比度
16位时代图形的特征之一是抖动的使用。 那时,游戏是在CRT电视上进行的,通常屏幕像素会相互融合。 美术师通过在图形中应用抖动模式来利用此功能:当一个像素与另一个像素以重复模式合并时,就会产生比控制台所允许的更多颜色的幻觉。 为了传达原始图像的美感,尽管显示效果更好,但抖动仍在像素艺术中得到积极应用。
抖动通常在16位控制台上使用。 在CRT屏幕上,像素图案混合在一起,在不可能的情况下创建新的颜色或透明效果。与SNES相比,Genesis / Mega Drive以更高的对比度显示颜色。 选择子调色板时也需要考虑这一点。 如果您创建具有柔和和暗淡颜色的游戏,则在原始硬件上进行渲染的过程中,调色板可能会有所不同。 通常,应以高对比度的调色板创建图形,以使最终结果与艺术家的原始视觉相匹配。
创建真实的SNES样式的图形
Super NES游戏仍然可以使用8×8像素的网格/图块,因此使用重复图块非常有用。 通常,它们的大小应为八的倍数。
色彩调色板
Genesis / Mega Drive与SNES之间的第一个基本区别与调色板有关。 与Mega Drive一样,SNES控制台也没有用硬件缝合的调色板,因此您可以选择自己的颜色。
SNES的复杂性在于它使用的颜色深度为每像素5位(每像素位,BPP),这在当今很少见。 您可以使用Gimp来实现它们,然后简单地以32种RGB色调对图像进行后期处理,这将对应于5 BPP的颜色。 这将在控制台上准确显示图像的颜色。
Gimp中的此选项位于菜单项“
颜色>海报化...”中。将出现
一个弹出窗口,您可以在其中设置海报化级别为32以创建与5 BPP兼容的颜色。
屏幕分辨率
两种系统之间的另一个主要区别与屏幕分辨率有关。 由于SNES是NES的后代,因此两个控制台的屏幕分辨率都差不多。 SNES的内部分辨率为256×224。 它使您可以在大多数CRT电视的安全区域中渲染图像,而无需修剪图像的一部分。 该分辨率永远不会改变,因此它将是图像的大小,艺术家应该使用它。
该图像占据了大多数屏幕模式下使用的全屏SNES分辨率。控制台屏幕模式
在本节中,我们将简要讨论不同的屏幕模式。
控制台之间的最大区别是SNES可以在七个不同的屏幕模式下渲染背景图形。 在某些屏幕模式下,SNES可以同时从屏幕上的一个子调色板渲染256色。 以下是最受欢迎的屏幕模式:
- 模式1: SNES的最常见屏幕模式之一。 这是演示控制台功能的最普通的模式。 模式1允许您使用三个背景层,其中两个具有自己的16色子调色板,最后一层具有4色子调色板。
- 模式3:此模式通常用于大型静止图像,例如初始屏幕或场景。 它有两个背景层。 第一个使用完整的256色子调色板,第二个使用16色的子调色板。
- 模式7:这是SNES的主要功能之一。 控制台的大多数广告材料中都显示了此模式。 借助模式7,家用控制台首次能够实时执行图像转换:在背景平面中缩放,旋转,拉伸和倾斜。 它用于创建伪3D效果,可以在许多SNES的赛车游戏和飞行模拟器中看到。
为确保这些功能正常工作,模式7中唯一的背景平面与其他屏幕模式的处理方式截然不同。 首先,只有一个256色颜色平面,也就是说,所有精灵必须具有来自此背景平面子调色板的颜色。 其次,模式7的背景平面不是通常的SNES屏幕大小,而是1024×1024像素。 它可以根据设计人员的需要进行缩放和调整。
该办公室使用模式1和一个子选板(另两个子选板用于UI)。 感谢播放屏幕使用模式3,该模式允许艺术家应用256色调色板。
精灵大小
与背景屏幕模式的复杂性相比,使用精灵的规则相对简单。 SNES具有几种不同的Sprite模式,几乎类似于Mega Drive,但有严格的限制:控制台只能在游戏中使用两种不同的Sprite模式
子画面的大小可以为8×8、16×16、32×32或64×64。 但这还不是全部-设计师必须从现成的Sprite大小列表中选择组合。 以下组合可用于SNES游戏:
- 8×8、16×16
- 8×8、32×32
- 8×8、64×64
- 16×16、32×32
- 16×16,64×64
- 32×32、64×64
这些大小是“一劳永逸”的选择,游戏中所有的精灵都必须与它们匹配。 SNES能够在一条水平扫描线上渲染32个精灵,一次只能在屏幕上渲染128个精灵。 所有其他将不会渲染。
Fork Parker的Crunch-Out将32×32和16×16的组合用于游戏中的所有精灵。Sprite可以使用八个16色子调色板。 与所有复古控制台一样,任何子调色板的第一个颜色是用于透明度的整体颜色。 与其他调音台相比,大量的子调色板为我们提供了更多选择精灵颜色的自由。 您只需要记住,严格限制为256色。
使用2D Pixel Perfect制作复古游戏
在上
一个复古教程中,我们介绍了2D Pixel Perfect选项并重新创建8位样式的图形。
从Unity 2019.2开始,2D Pixel Perfect软件包是2D Renderer的一部分,而2D Renderer又是Lightweight Render Pipeline(LWRP)软件包的一部分。 如果您不使用LWRP,则2D Pixel Perfect也可以用作单独的包装。 在本教程中,我们将展示如何在LWRP中设置项目。
在Unity 2019.2和LWRP中准备一个新项目
- 启动Unity Hub,单击“新建”,选择2D并指定项目名称。
- 要导入2D Pixel Perfect软件包,请单击工具栏中的“窗口”菜单,然后选择“ 软件包管理器” 。 在出现的窗口中,选择Lightweight RP软件包并确保其版本为6.9.0或更高。
- 然后,您需要在编辑器中配置2D渲染器并创建新的管道资产。 在“项目”窗口中,右键单击“资源”窗口,然后选择“ 创建”>“渲染”>“轻量级渲染管道”>“管道资产” 。
- 在“项目”窗口的“资源”窗口中,右键单击并选择“ 创建”>“渲染”>“轻量级渲染管道”>“ 2D渲染器” ,以创建一个新的2D渲染器 。
- 选择创建的管道资产。 选择“ 常规” ,然后将“渲染器类型”从“ 正向渲染器”切换为“ 自定义” 。
- 将生成的2D渲染器分配为数据字段的值。
- 在“图形”选项中,将“可脚本编写的渲染管道设置”更改为使用您创建的新管道资源。
这样就完成了2D渲染器以及2D Pixel Perfect Camera的设置。
在Unity 2019.2中,二维精灵可以具有Sprite-Lit材料,以使它们能够响应2D光照条件。 如果您的项目没有2D照明,请使用不需要2D照明的材质,以便显示精灵,即“ Sprites-Default”。
适用于16位图形样式的Pixel Perfect cture剂
您必须将Pixel Perfect Camera组件添加到主摄像机。 我们建议您选择在编辑模式下运行复选框。
Sega Genesis控制台的分辨率为320×224像素(或40×28瓦片大小为8×8像素的网格)。 这适用于NTSC版本。
同样在NTSC版本中的
Super NES控制台的分辨率为256×224(30×28瓦片,尺寸为8×8像素)。
要创建两种图形样式,我们建议使用224像素的高度分辨率和8 PPU。
使用帮助精灵(上图显示了Sega Genesis的《刺猬索尼克》的320×224全屏图像),您可以了解如何将具有8个像素(单位像素,PPU)的精灵以相同的分辨率和PPU放置在``场景''窗口中。
如果您需要提醒2D Pixel Perfect Camera组件中每个选项的功能,请阅读
以前的复古游戏教程 。
进一步发展
我希望您喜欢在最新版本的Unity中使用2D Pixel Perfect创建8位和16位复古游戏的系列文章。
我们尚未完成2D Pixel Perfect的开发,因为此软件包已准备好在Unity 2019.3中投入生产,并且还将获得与Cinemachine 2D的更多兼容性。
使用2D Pixel Perfect使我们随时了解您的项目,并且不要忘记访问
2D论坛与Unity用户和2D函数开发人员进行交谈。