KDOC 485: asepriteでパッキングする
この文書のステータス
- 作成
- 2025-11-10 貴島
- レビュー
- 2025-11-10 貴島
概要
2Dゲームでは小さな大量の画像を使う。それらを効率的に扱うためにはスプライトの管理が重要である。1ファイルに結合することで、ファイル読み込みを減らして高速化できる。
asepriteはゲーム用のピクセル画像やアニメーションを描くツールであるが、コマンドラインツールとしても使える。ディレクトリ内の画像をまとめて1つの画像にし、それらの対応関係をまとめたJSONを作ってくれるので、コードから読み込みやすくなる。
aseprite \
--batch ./tiles/*.png \
--sheet ./dist/tiles.png \
--data ./dist/tiles.json \
--sheet-type packed \
--format json-array \
--filename-format "{title}"
{
"frames": [
{
"filename": "tree",
"frame": {
"x": 32,
"y": 64,
"w": 32,
"h": 32
},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 32,
"h": 32
},
"sourceSize": {
"w": 32,
"h": 32
},
"duration": 100
},
{
"filename": "doctor",
"frame": {
"x": 32,
"y": 128,
"w": 32,
"h": 32
},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 32,
"h": 32
},
"sourceSize": {
"w": 32,
"h": 32
},
"duration": 100
}
]
}
関連
抽象。
- 多数の小さな素材を1つにまとめ、対応表で引けるようにして読み込みを減らす
関連。
- 補足: KDOC 159: テクスチャとスプライトの違いを見る。スプライトという言葉の背景
- 類推: KDOC 182: ブロックサイズの違いによるパフォーマンスへの影響を調べる。小さな単位で何度も処理すると、回数ぶんの固定コストがかさむ点が共通する