使用 Image Atlas

使用 Image Atlas 将多张工程图像排列到一个图集中,并生成记录每张图像位置和尺寸的 JSON 文件。

您可以过滤并选择 PNG、JPG 和 EXR 图像,设置图集尺寸,并在保存之前预览排列效果。保存图集后,您可以将其导入当前工程。

对于骨骼动画 EXR 纹理,该工具还可以将匹配的动画材质与生成的图集关联,并更新图像区域偏移和图集尺寸。

打开该工具

../../_images/Image-Atlas.png

要打开 Image Atlas,在 Kanzi Studio 主菜单中选择 Tools > Image Atlas。

左侧列出当前工程中可用的图像。右侧显示打包预览。图集尺寸和输出设置位于底部。

../../_images/Image-Atlas-tool.png

用户界面

控件或区域

描述 (Description)

Image Classification

按格式过滤图像。包括 All Images,以及存在匹配资源时的 PNG、JPG 和 EXR 类别。类别名称后的数字为图像数量。

图像列表

显示缩略图和名称。点击图像可切换选择状态。绿色边框表示已选定。

图像数量

显示当前列表中的图像数量及相关的选择信息。

Clear Selection(n)

取消选择所有已选定的图像。括号中的数字为已选定图像的数量。

选择信息

显示已选定图像的数量及各格式的分布。

预览区域

显示自动排列的图集。选择图像或更改尺寸会重新生成预览。

预览尺寸

显示预览位图的宽度和高度,这可能与所选的打包尺寸不同。

消息区域

显示格式转换警告、处理状态以及空间不足的消息。

Atlas Size

设置打包画布的尺寸,例如 4096x4096。

File Name

设置输出文件的基本名称。默认值为 atlas。不要包含扩展名。

Output Directory

设置输出目录。

Browse

浏览输出目录。

Save

保存图集图像及其 JSON 文件。

备注

格式筛选只更改显示的列表,不会取消选择被隐藏的图像。切换类别时,之前选择的图像仍包含在内。使用 Clear Selection 开始新的选择。

该工具从当前工程加载图像。您不能在此窗口中直接添加外部文件。

支持的源文件扩展名为 .png、.jpg、.jpeg、.jfif 和 .exr。单个源图像的任一维度都不能超过 8192 像素。

创建图集

选择图像

../../_images/Image-Atlas-tool-selected.png

要选择您要包含在图集中的图像:

  1. 在 Image Classification 中选择一个类别。

  2. 单击您要包含在图集中的图像。

    每个已选择的图像都带有绿色边框。

  3. 查看右侧的选择信息。

  4. 再次单击图像可将其从选择中移除。要取消选择所有图像,请单击 Clear Selection。

选择多个图像时无需按住 Ctrl。每次单击都会切换图像的选择状态。

设置图集尺寸

在 Atlas Size 中,选择能够容纳已选择图像的维度。

该工具会自动排列图像,并在打包区域中保留源图像的维度和方向。空间不足时,该工具不会旋转或缩小源图像,也不会将结果拆分为多个图集。

要解决空间不足消息:

  1. 按照消息提示,选择更大的尺寸或减少选择的图像。

  2. 等待预览重新生成。

  3. 确认不再显示打包失败消息。

设置输出

要设置输出文件名和目录:

  1. 在 File Name 中输入基本名称,例如 ui_atlas。

  2. 检查 Output Directory,或单击 Browse 更改输出目录。

默认输出目录为:

<project directory>\Bake\Atlas

如果文件名为空,该工具使用 atlas。已选择图像的格式会自动决定输出扩展名。

保存和导入

要保存图集并选择是否导入:

  1. 等待当前选择和尺寸的预览生成完毕。

  2. 单击 Save。

  3. 如果已存在同名的图像或 JSON 文件,请选择是否覆盖。

  4. 保存后,在出现提示时选择是否将图集导入到当前工程。

../../_images/Image-Atlas-tool-import.png

如果选择导入图集,该工具会将图集纹理添加到工程中。如果选择不导入,您可以稍后使用已保存的文件。保存后,该工具会清除选择并重新加载工程图像列表。

输出格式

已选择的图像决定图集格式:

已选择的图像

输出图像

仅 PNG

PNG

仅 JPG、JPEG 或 JFIF

JPG

PNG 与 JPG 混合

PNG

仅 EXR

EXR

EXR 与 PNG 或 JPG 混合

PNG;界面会显示转换警告

备注

骨骼动画纹理中的像素表示矩阵数据。合并这些纹理时,请仅选择 EXR 图像,以使输出保持 EXR 格式。

生成的文件

例如,将 File Name 设置为 ui_atlas,并将输出目录设置为 Tool_project\Bake\Atlas,会生成:

ui_atlas.png
ui_atlas.json

仅包含 EXR 的图集会生成基本名称相同的 .exr 和 .json 文件。

文件 (File)

用途

图集图像

存储排列后的图像内容。

JSON

存储图集文件名、打包尺寸以及每个源图像的区域位置。

该工具会将生成的 JSON 内容写入 Log,您可以在其中查看所需信息。

JSON 配置参考

../../_images/Image-Atlas-tool-import-log.png

例如,EXR 图集的 JSON 可以包含以下条目。这些值仅作示意:

{
  "texture": "animation_atlas.exr",
  "SkeletonAnimationTextureWidth": 1024,
  "SkeletonAnimationTextureHeight": 1024,
  "coordinate_system": "bottom-left",
  "entries": {
    "character_baked_animation.exr": {
      "SkeletonAnimationTextureSpritePosX": 0,
      "SkeletonAnimationTextureSpritePosY": 0,
      "Width": 312,
      "Height": 300
    }
  }
}

字段

描述 (Description)

texture

输出图集文件名。

SkeletonAnimationTextureWidth

图集打包宽度。

SkeletonAnimationTextureHeight

图集打包高度。

coordinate_system

坐标约定。目前为 bottom-left,原点位于左下角。

entries

以源文件名为键的图像区域。

SkeletonAnimationTextureSpritePosX

图像区域左下角的水平位置。

SkeletonAnimationTextureSpritePosY

图像区域左下角的垂直位置。

Width

源图像区域宽度。

Height

源图像区域高度。

所有长度值均以像素为单位。

普通图像的图集使用相同的字段名称。图集 JSON 描述图像区域,它不会替换由 Animation Bake 生成的动作名称、帧数、片段起始行或其他配置。

合并骨骼动画纹理

要合并来自 Animation Bake 的多个 EXR 纹理:

  1. 确保已导入源 EXR 图像,并且其动画材质引用了源纹理。

  2. 打开 Image Atlas 并选择 EXR 类别。

  3. 选择要合并的 EXR 图像。确保没有同时选择 PNG 或 JPG 图像。

  4. 设置图集大小并等待预览。

  5. 设置名称和目录,然后点击 Save。

  6. 在保存后出现的提示中,选择将图集导入工程。

  7. 检查相应材质的纹理引用和区域属性,并验证动画播放。

导入仅包含 EXR 的图集时,该工具会尝试为每个源图像查找匹配的骨骼动画材质,并更新以下属性:

属性 (Property)

更新

SkeletonAnimationSkinningBoneTexture

引用生成的图集纹理。

SkeletonAnimationTextureSpritePosX

源图像在图集中的水平起始位置。

SkeletonAnimationTextureSpritePosY

源图像在图集中的垂直起始位置。

SkeletonAnimationTextureWidth

图集的完整宽度。

SkeletonAnimationTextureHeight

图集的完整高度。

此过程不会更改片段起始行、帧数或播放进度。它们仍然描述源动画数据区域内的动作。

备注

保存并导入普通的 PNG/JPG 图集不会自动更新所有 UI 图像引用或 UV 区域。

另请参阅

使用 Animation Bake

图像 (Images)