13 个版本 (破坏性更新)
0.11.0 | 2024年7月15日 |
---|---|
0.9.0 | 2023年4月21日 |
0.7.0 | 2023年3月13日 |
#448 in 编码
每月 97 次下载
66KB
853 行
cluttered
用 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