#config-file #packer #atlas #sprite #file-format #graphics #binary-format

app cluttered

用 Rust 编写的 CLI 纹理打包器

13 个版本 (破坏性更新)

0.11.0 2024年7月15日
0.9.0 2023年4月21日
0.7.0 2023年3月13日

#448 in 编码

Download history 222/week @ 2024-06-27 21/week @ 2024-07-04 100/week @ 2024-07-11 18/week @ 2024-07-18 66/week @ 2024-07-25 10/week @ 2024-08-01

每月 97 次下载

MIT 许可证

66KB
853

cluttered

crates.io github

用 Rust 编写的 CLI 纹理打包器,可以根据 crunch-rs 优化地打包多张图像。支持多种格式,包括 json、二进制和 ron

可用于需要优化内存使用的 Godot、Monogame 或其他游戏。

用法

此 CLI 纹理打包器基于配置文件,您需要创建配置文件来打包图像。以下为 toml 格式的配置文件示例内容

name = "gem_collections"
output_path = "samples/out"
output_type = "Json"
template_path = "samples/xml-template.xml"
folders = [
    "samples/images/common",
    "samples/images/rare",
    "samples/images/legendary",
    "samples/images/rect"
]

[image_options]
output_extension = "Png"
max_size = 4096
show_extension = false

[features]
nine_patch = true

然后,在 CLI 使用中

cluttered config--输入<INPUT>

示例

cluttered config --input packer-config.toml

或者,我们可以使用手动方式,即使用名为 pack 的参数

cluttered pack--输入<[INPUT]> --输出<OUTPUT>

示例

cluttered pack--输入图像/传说级图像/稀有--输出到 out--类型 json

打包参数

名称 描述
--type 指定输出类型。
--name 指定输出名称。
--templatepath 指定自定义模板输出路径。

二进制格式

[String] - Name
[UInt32] - Count (Use it in for loops below)
  L [String] - Name
    [UInt32] - X
    [UInt32] - Y
    [UInt32] - Width
    [UInt32] - Height
    [Bool] - HasNinePatch (if nine_patch is enabled)
    [UInt32] - X (if nine_patch is enabled and has a file)
    [UInt32] - Y (if nine_patch is enabled and has a file)
    [UInt32] - W (if nine_patch is enabled and has a file)
    [UInt32] - H (if nine_patch is enabled and has a file)

模板

我们还支持使用 handlebars 的自定义模板,您可以编写自己的自定义模板以支持您最喜欢的格式或创建新的格式。

xml 格式示例用法

<TextureAtlas imagePath="{{atlas.sheet_path}}">
  {{#each atlas.frames as frame}}
  <Texture
      name="{{@key}}"
      x="{{this.x}}" y="{{this.y}}"
      width="{{this.width}}" height="{{this.height}}"
      {{#if this.nine_patch}}
      nx="{{this.nine_patch.x}}" ny="{{this.nine_patch.y}}"
      nw="{{this.nine_patch.w}}" nh="{{this.nine_patch.h}}"
      {{/if}}
    />
  {{/each}}
</TextureAtlas>

全局变量

名称 类型
config 配置
atlas PackerAtlas

配置

名称 类型
名称 字符串
output_path 字符串
output_type OutputType
folders 字符串数组
allow_normal_output 布尔值
template_path 字符串或字符串数组?
选项 ImageOptions
features Features

OutputType (Json 上的字符串)

名称
Json
二进制
Ron
模板

ImageOptions

名称 类型
max_size 整数
output_extension OutputExtensionType
show_extension 布尔值

OutputExtensionType (Json 上的字符串)

名称
Png
Qoi
Jpg

Features

名称 类型
nine_patch 布尔值
aseprite 布尔值
ase_sheet 布尔值

PackerAtlas

名称 类型
sheet_path 字符串
frames HashMap<String, TextureData>

纹理数据

名称 类型
x 整数
y 整数
宽度 整数
高度 整数
nine_patch 矩形?

矩形

名称 类型
x 整数
y 整数
w 整数
h 整数

依赖项

~11MB
~183K SLoC