选择二维艺术资产的分辨率

CIRO CONTINISIO / UNITY TECHNOLOGIESContributor
Nov 19, 2018|14 Min
选择二维艺术资产的分辨率
为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

在游戏活动和网络上,经常有人问我这个问题:"我正在用 Unity 制作一款 2D 游戏,同时在 PC 和手机上运行:我的资产分辨率应该是多少?这个问题没有一个简单的答案可以涵盖所有情况。阅读这篇博文,您就能更好地了解项目的最佳方案。近年来,我们一直在开发大量功能,帮助您在 Unity 中创建2D 游戏:精灵图集、二维物理、用于矩形、六边形或等距世界的Tilemap功能、基于样条线的精灵形状二维动画等。

Unity 并不以像素表示对象的大小,这可能会让为 2D 游戏创建资产的美工人员感到困惑。"它们需要多大?"在游戏开发过程中,这个问题的答案通常是 "视情况而定"。

请注意:本博文中的图片使用了资产商店中的精美2D资产,本博文中我们使用了艺术家Mikael Gustafsson 的艺术作品。

M用 Unity 制作 2D 游戏

在编辑器中打开绿色 2D 世界
像素艺术资产

如果你是一位像素艺术家,需要提醒的是:本帖中的大部分提示并不完全适用于你的情况。在像素艺术制图中,你需要把分辨率极低的东西放大到原始分辨率的 2 倍、4 倍、8 倍,甚至更多。这意味着你的原画的一个像素现在在屏幕上是一个 2x2、4x4、8x8 真实像素的正方形。因此,一般来说,在像素艺术中,你不需要太在意屏幕的分辨率,而是从你的艺术作品和你想要表达的感觉(老式、NES 时代16 位 时代、更高分辨率的 "现代 "像素艺术等)出发,然后将其放大几倍。如果您使用内置渲染器,Unity 现在提供了独立软件包形式的 "完美像素"解决方案,通用渲染器和 2D 渲染器中也包含该解决方案。它带有一个简单的组件,可以安装在相机上,为你完成繁重的工作,确保艺术效果保持清晰,并与任何屏幕上真实的小像素网格保持一致。有关 Pixel Perfect 的更多信息,请参阅文档

缩小规模,而不是扩大规模

在考虑选择分辨率之前,值得注意的是,在制作资产时,即使游戏中的美术设计实际上并不需要更高的分辨率,也可以选择更高的分辨率。你总是可以缩小艺术品尺寸,但你无法在不降低质量的前提下放大它。

考虑一下这些情况:您可能需要打印游戏的部分美术设计,或者您想增大屏幕上某个元素的尺寸,或者您想为以后的 4K 显示器创建一个 "高清版本 "的游戏。

因此,在制作美术时,请考虑使用实际所需的两倍或更高分辨率的工作文件,然后在将其导入 Unity 之前将其缩放,或在将其导入引擎时使用导入设置来缩小其大小。

显示编辑器下拉菜单的图片。523 被高亮显示,2048 被选中并带有复选标记。
任何图像资产的导入设置都允许您将最大分辨率强制为 2 的幂次。

导入设置还允许你定义每个平台的最大尺寸和其他压缩设置,因此,举例来说,你可以在个人电脑上以一定的分辨率导入一些资产,而在移动设备上只导入一半,因为移动设备上的磁盘空间至关重要。

小贴士Unity 提供了一种通过 "精灵图集"(Sprite Atlases)将多个精灵合并为一个精灵的方法。除了可以节省纹理空间外,图集还提供了一种统一的方式来控制最大尺寸,而不必为项目中的每个精灵单独设置。

确定平台的分辨率

在定义资产规模时,重要的是要考虑游戏将要发布的平台或设备。人们使用的设备和屏幕多种多样,他们会以不同的分辨率和长宽比观看您的游戏

一般来说,在撰写本篇文章时,如果您在 PC 上发布内容,绝大多数用户都会使用两种分辨率:大部分是 "全高清"(1920x1080 像素,通常称为 1080p),也有相当一部分是 1280x720(通常称为 720p)。还有一小部分人在 Mac 上使用 4K 显示器(3840x2160)或 Retina 显示器(现代 15 英寸 MacBook Pro 的最大分辨率为 3360 x 2100)。这需要覆盖很多像素!

对于手机来说,范围非常大。一些老式设备的垂直像素可能低于 720 像素,但一些现代设备的垂直像素可达 4K。

小贴士Unity 会在您的 Unity ID 的"操作控制面板 "中提供其中一些统计数据。选择一个已启用分析功能的项目,然后就可以进入分析 > 市场洞察,查看汇总统计数据。Steam 也在此页面提供类似服务。

对于 Retina(苹果公司的商标)和其他现代高 DPI 屏幕,虽然实际硬件分辨率非常高(例如 4K),但它们能做的是以模拟的较低分辨率(通常是一半,例如全高清而非 4K)运行,但它们会使用两倍的像素来渲染图像和文本,因此看起来非常清晰。

请注意:DPI(每英寸点数)或 PPI(每英寸点数,或每英寸像素数)是不同制造商交替使用的不同名称,但归根结底,它们的含义是一样的:在屏幕上的线性英寸内挤压了多少像素。传统的屏幕分辨率为 72 DPI。现在的高 DPI 屏幕通常为 144 DPI,但也有高达 400 DPI 或更高的手机,因为它们在相对较小的屏幕上安装了大量像素。这里有一些例子。

对于这些屏幕,您有两种选择。一个目标是提供全面使用 4K 分辨率的体验。缺点是制作兼容 4K 的资产需要大量额外工作。在这种情况下,请确保在营销材料中突出强调这一点!("美丽的 4K 体验 "等)!(美丽的 4K 体验"......)。PS4 Pro 和 Xbox One X 等游戏机兼容 4K,它们的用户一定会喜欢游戏能充分发挥硬件性能的事实。

或者,您也可以 "直接 "将游戏架构为全高清。在第二种情况下,使用高 DPI 显示器的用户不会受益于屏幕分辨率的提高,他们只能看到全高清的游戏画面。这并不理想,但如果您还想控制建筑尺寸的话,也许可以接受。

因此,底线是:你需要选择一个最大分辨率(基于当前的市场份额,见上文),并将其作为整个项目的目标。这样,团队中的每个人都能在了解这一点后做出决定。

统一场景中的测量

正如我们之前提到的,Unity 测量距离和大小的简单单位,而不是像素。一般来说,好的做法是1 Unity 单元对 1 米。例如,在这种情况下,人形模型的平均单位介于 1.7 和 1.8 之间。这并不是强制性的,但它可以确保带有物理特性(3D 和 2D)的游戏表现正确,因为 Unity 中的物理特性调整为以 1 个单位为 1 米。3D 照明也是如此,光照参数要与现实保持一致。

在 2D 中,这个比例尺并不那么重要,但如果您在项目中使用物理原理,尊重这个比例尺仍然是个好做法。如果您使用的是瓷砖贴图,为了简单起见,最好将比例尺设定为 1 个瓷砖 = 1 个单位。

既然我们已经介绍了单元,下面就来谈谈 摄像头。Unity 的 2D 摄像机(正交)有一个名为 "Size "的参数,当该参数加倍时,它将告诉你该摄像机在垂直轴上的取景单位。

编辑器下拉菜单截图。选择正交,尺寸为 5
正投影摄像机 "检查器 "中的 "尺寸 "参数

当大小为 5 时,我们的视口垂直方向的尺寸为 10 个 Unity 单位。由于我们不知道用户屏幕的宽高比,因此横轴只是一个结果。但这很容易计算:在宽高比为 16:9 的普通个人电脑或安卓手机上就可以做到:

10(垂直尺寸)x 16 / 9 =17.7(水平尺寸)

因此我们知道,通过这些设置,我们可以框定一个大约17.7 乘 10个单位的区域。在 Mac(一般为 16:10)上,它将是16 乘 10(因此水平方向上的可见度较低)。在垂直放置的 16:9 手机上(因此变成 9:16),同样的摄像头只能显示5.6 x 10个单位的区域。

请注意:在这篇博文中,我们将不再赘述如何处理宽高比问题,因为如果你的目标是制作一款适用于不同宽高比的游戏,那么你不仅需要考虑画面问题,还需要对游戏玩法进行大量调整,以确保游戏在不同宽高比的设备上不会出现不同的玩法。例如,任何横向滚动的游戏都会受益于细长的水平纵横比,因为玩家可以看到更多即将发生的危险。有时,制作一款在不同宽高比下都能正常运行的游戏是不可能的,人们会使用框架或黑条来填充游戏无法填充的负空间。

输入单位像素

将图形导入 Sprites 时,Unity 会显示一个名为 "单位像素(PPU)"的参数。既然我们已经了解了所有单位,那么这一点就应该非常清楚了。它表示当GameObject 的缩放比例为 1,1,1 时,Unity 场景中的一个单位能容纳多少来自您的 Sprite 的像素。

例如,我有一个像素为 218 x 175 的岩石精灵,我将单位像素设置为 100,一旦我在场景中拖动该精灵,我的游戏对象默认将为 2.18 x 1.75 单位,大约占纵轴上 10 个单位的五分之一。

编辑器中的文件夹图像,背景为绿色 2d 背景
通过这些设置,我们可以在视口的垂直方向上放置超过五块石头

因此,让我们以全高清屏幕作为测试分辨率。纵向是 1080 像素,而岩石不到屏幕的五分之一(你可以看到褪色的岩石在上图中占了 5 倍多),这意味着我们使用 175 像素的源图形来呈现 200 多像素。这意味着,我们将看到一块略微模糊的岩石。

要解决这个问题,我们有几种解决方案:我们可以将岩石的大小缩小到一半左右,将摄像头的帧变大到 10.8(这会产生缩放效果),或者我们可以Sprite 的PPU 值改为 108(这与在屏幕上将 岩石变小的效果相同)。在这三种情况下,如果我们想让石头变得更脆,它就必须变小。

摄像头尺寸和 PPU 值从何而来?简单!至于摄像头的大小,如果我们以 100 PPU 的速度导入图形,那么我们需要一个 10.8 的摄像头,因为 10.8x100 等于 1080。这样我们就可以覆盖整个屏幕的高度。 反过来,如果我们希望用 10 个 Unity 单元垂直覆盖全高清屏幕,那么在摄像头尺寸保持为 5 的情况下,要计算出正确的 PPU,我们需要 1080/10 = 108。这是在不改变摄像头尺寸的情况下,我们应该在一个单元中塞入的像素数。

制定规则,打破常规

请记住,在制作游戏的过程中,将这些工作流程混合使用是非常危险的:您可能会遇到这样的情况:在错误场景中使用的某些图形分辨率过低,而您却没有注意到。最好制定指导方针:项目中的大部分资产使用一个 PPU,以及典型的摄像机尺寸。

你以后就可以打破常规了。也许你可以设置一个镜头拉近和拉远的场景,暂时改变画面的大小。或者,您的背景元素非常多,您无法使用相同的 PPU,因为这样会产生大量纹理。在这种情况下,降低这些元素的 PPU 值并导入较小的精灵就可以了,但这些精灵仍会覆盖屏幕的大部分区域。

预览游戏

在 Unity 中工作时,您可能会想知道通过游戏视图看到的分辨率是多少,以及这是否是目标平台上艺术作品的准确预览。您需要的大多数选项都在顶部的下拉菜单和旁边的滑块中。

带下拉菜单的编辑器屏幕。低分辨率长宽比和自由长宽比均已检查。
请注意,在开启低像素纵横比的情况下,缩放比例默认为 2。这是因为要在高 DPI 屏幕上模拟低 DPI,需要复制像素。

纵横比只是强制在水平和垂直之间设定一个特定的比例,但它们会利用游戏视图视口的当前分辨率,而这又取决于你的屏幕。因此,它们适合在屏幕上设置用户界面和对象,但并不适合测试艺术。在使用宽高比时,如果使用的是高分辨率屏幕,低分辨率宽高比复选框将处于激活状态。如果勾选,它将模拟标准 DPI 屏幕分辨率。另一方面,固定的分辨率会强制 Unity 渲染与之大小相同的窗口。这时,您可能需要扩大游戏视图或最大化它,以便直观地看到整个预览。在这种情况下,"比例 "滑块可以使高分辨率适合你的游戏视图窗口,但如果你的比例低于 1x,那么实际上你看到的并不是该分辨率,而是它的重采样。 别忘了,你还可以在下拉菜单中添加自己的固定分辨率和宽高比:

添加标签 "超宽 "宽高比的 Gif

小贴士别忘了,你的判断不应只基于编辑。每隔一段时间,就制作一个游戏(或者只是美术!),然后在目标设备或屏幕上看一看。

最后几点说明

正如您所看到的,艺术作品的分辨率、摄像头尺寸和您想要的屏幕都是相关联的,没有一种像素尺寸或 PPU 适合所有情况。研究目标平台,决定解决方案,并通过制定指导方针告知整个团队。那就制作更高分辨率的作品吧,也许以后会有用!最后,将其调整到所需的分辨率,并导入 Unity。最后还有一个建议。即使我之前在使用 "略微模糊 "这个词时,把它当成了世界末日和我们绝对必须解决的问题,但这并不是一条硬性规定。可能是在您的游戏中,某些对象的分辨率有时不够高。特别是如果画面上有很多微小的细节,可能是透明胶片重叠在一起,再加上一些雾、雨或后期处理。以正常速度玩游戏。你真的注意到它们被重新采样了吗?如果你真的看不出区别,那么也许渲染更高分辨率的精灵所需的额外工作、磁盘空间和处理并不值得。记住:好的游戏需要做出很大的妥协!

其他资源

我们的博客上有一份二维技巧和方法的阅读清单,千万不要错过。如果您也想了解 Unity 的 2D 功能,可以从这里开始

在本博客中探索 Unity 2D 演示《龙之坠落》(Dragon Crashers

#Unity2DChallenge (结束)

您是否正在创作一些令人惊叹的 2D 艺术作品?您是否对我们的新 2D 工具感到好奇?使用我们的全新 2D 动画工具、Tilemaps、SpriteShape、Pixel Perfect 软件包或 SVG 导入器制作精彩作品,并参加Unity 2D 挑战赛!我是评委之一,迫不及待地想看到你们的精彩创意。