纹理组管理器 可从 IDE 的 工具 菜单中获得。在这里,你可以添加、删除和重命名 纹理组(Texture Groups)。 GameMaker Studio 2 允许你将每个图形资源(精灵、图块集和字体)分配给不同的纹理组,以尝试优化硬件在游戏中任何给定时间执行的纹理交换次数。要使其工作,你需要从此窗口定义必要的纹理组,然后浏览每个相应的资源类型,并从下拉菜单中选择你希望它所属的组。
重要! 纹理组 不 适用于产品的试用许可证。
默认情况下,游戏中的所有图像都将添加到 “默认” 纹理组中,该组始终存在。但是,你可以单击 新增 按钮以创建新的纹理组,如果选择组的名称,则可以将其更改为适当的名称。新创建的组的每个部分(精灵,拼贴和字体)都将显示 “该组为空”,因此你需要浏览资源并添加它们。你可以使用底部的 添加资源 按钮添加资源,也可以从资源编辑器中为图像、图块集或字体选择纹理组。除 “默认” 之外的纹理组也可以随时删除,这会将其内容移动到 “默认” 组(请注意,如果你错误地删除了一组,则可以使用 / + Z 来撤消操作)。
一旦定义了纹理组并为其指定了精灵,你将看到它们列在主纹理组编辑器窗口的左侧,单击此列表中的任何精灵将在右侧的图像预览窗口中显示它们。在处理大型项目时,这尤其有用,你需要能够查看哪些精灵已分配给哪个组。请注意,如果分配给该组的精灵具有多个子图像(即:它们是动画),则在预览窗口中仅显示第一个子图像。你还可以右键单击 资源以打开一个小菜单,为你提供将其移动到另一个纹理组或打开该资产的编辑器的选项。
值得注意的是,即使资源在列表中显示为独立的,所有精灵、图块集和字体也将添加到相同的纹理页(或页面),而不是为每种资源类型获取单独的页面。
组设置
组设置用于确定如何使用以下可用选项创建给定组的纹理页面:
- 允许缩放 - 取消标记此操作将强制 GameMaker Studio 2 在任何情况下都不缩放纹理组。这可能很有用,尤其是在处理通用应用程序时,因为它允许你在特定设备上运行应用程序时将特定资源(如字体)放入其自己的组中。例如,字体在视网膜显示器上看起来很棒,但是当它们按比例缩小以在正常显示器上绘制时,它们看起来很糟糕,因此你可以将它们分配给特殊的非缩放组 - 如果为 iPhone 6 开发,则可以希望对此进行检查,因为应用程序将因为图像纹理缩放导致的模糊而被拒绝。默认情况下,此标记为已启用。
- 自动裁剪 - 当你将图像添加到 GameMaker Studio 2 时,如果它们周围有任何 “空白区域”(即 100% 透明度),则在将其添加到纹理页并标记 “自动裁剪” 时会自动裁剪。但是,例如,如果你将图像用作基元或类似物的非重复纹理,则意味着纹理映射的 UV 坐标将无法正确表示。在这些情况下,你可以取消标记此选项,并且精灵将 “按原样” 添加到纹理页面,保留其边缘可能具有的任何透明度。默认情况下,此标记为已启用。
- 生成多级渐进纹理(mipmap) - 标记此选项(默认情况下处于关闭状态)将告诉 GameMaker Studio 2 原始纹理页将被缩放并在纹理文件中过滤为多个分辨率。这通常是关闭的,但是如果你使用视图放大或缩小游戏房间的大部分区域,或者你正在编写 3D 游戏,那么你可能想要启用此功能,然后使用 多级渐进纹理函数 来调整游戏处理不同的多级渐进纹理级别。标记此复选框时,“边框大小” 值将设置为 8(如果设置为最初小于 8)。这是因为,当使用多级渐进纹理时,纹理页面上的图像之间需要更大的边框,否则它们会在更高的 mip(拉丁文 multum in parvo)级别开始散开(?)。默认值 8 将允许图像在子图像开始散开之前减少到其原始大小的八分之一,但你可以将其更改为满足你需要的任何值。请注意,如果你使用精灵的 独立的纹理页 选项,则不需要在此处检查每个纹理并将其标记为生成多级渐进纹理,而是可以转到 常规游戏选项 并勾选 为单独的纹理页生成多级渐进纹理(mipmap)。
- 边框大小 - 边框大小将更改为纹理组生成的页面上所有资源边缘周围的重叠(或 “像素倍增”)量,以便在缩放图像时,它们之间没有可见的间隙(或接缝)。默认值为 2 像素,但在极端情况下,你要放大或缩小视图,则可能需要增加此值。请注意,图块集编辑器 有一个选项可以设置图块的输出边框,这与此处的边框设置是分开的 - 基本上,为临时纹理上的每个图块生成具有输出边框的图块,然后将其添加到围绕外边缘给出边框的纹理页。另请注意,启用多级渐进纹理会自动将纹理页的默认边框大小设置为 8,以帮助防止在较高 mip 级别的纹理之间 “散开”,但这可以更改。
- 父纹理组 - 你可以在此处选择任何现有组作为当前所选组的 “父” 组。 “子” 组将继承对父纹理组所做的任何更改,主要用于处理跨平台游戏时的资源管理。具有父级的纹理组本身仍然是纹理组,并且将生成与任何其他组相同的纹理页,但是将它们指定为父级允许你为不同平台排除大量数据。例如,你可以将一整套 Android 玩家精灵添加到 “玩家” 组,并将 Android 敌人精灵添加到 “敌人” 组,然后让他们都使用 “android” 父组。如果你从 Windows 或其他平台构建中排除 “android” 父组,则子组也将被排除。
除了这些设置之外,你还可以选择将任何给定纹理组导出(或不导出)到任何给定平台,只需从窗口的 将该组用于…… 部分选中或取消选中相应的框即可。请注意,<Default>(默认)纹理组始终会导出到 每个 平台,并且你无法勾选 / 取消勾选那其中任何一个(只有自定义纹理组允许这样做)。
配置
纹理组也链接到 配置 设置。这意味着你可以为游戏的每个单独配置定义纹理组,然后将精灵、图块集或字体资源分配设置为这些不同的组,当你更改为其他配置时,它将被 “记住”。你在 “纹理组” 窗口中选择的任何导出选项都会发生相同的情况,因此你可以将纹理组设置为基于每个配置导出到特定平台。
例如,一个用途就是你可以制作一个 iPad 配置,然后创建 2048 x 2048 像素纹理页面(通过 游戏选项 进行设置)。然后,你将所有图形资源分配给相应的纹理组,完成后,你将更改为其他配置(例如,对于 HTML5),并从 “纹理组” 窗口创建 512 x 512 像素的新纹理组,给这些新组分配资产。页面底部还有一个按钮,允许你将纹理组设置从一个配置复制到另一个配置。