【Aseprite】Layerごとにファイル出力したい

f:id:snoopopo:20190213124515p:plain

▲開発中のゲームだよ^^


今回やりたいのは、Layerごとにファイル出力したいってことよ

今回は、Asepriteで「レイヤーを部品ごとに分けたんでレイヤーごとに出力したいんだけど!」っていう記事です。

例えば、メニュー画面などで、
メニュー画面自体を描画するための背景画像と、
そのうえにのる実際のメニュー画面の要素(ボタン等)は、別々の画像にするかと思います。

うえにのる実際の要素はアニメしたり、表示・非表示が切り替わったりいろいろ変わるので一つの画像では表現できないためです。

というわけで、今回はAsepriteのLayerを部品単位に分けて開発してます。

こんなかんじ↓

f:id:snoopopo:20190213124246p:plain

これを、一度にレイヤーごとに出力する方法を今回書きます。

guiからはひとつずつしか出力できないっぽい

File -> Export File

f:id:snoopopo:20190213130927p:plain

Layers から 対象のレイヤーだけ出力はできます。

が、今回はいっきに全部のレイヤーをバラバラのファイルに出力してほしいのです。

※バージョン v1.2.8

結論:コマンドならできる

というわけでコマンドからは行けます。

$ ./Aseprite.exe -b --split-layers [asepriteファイル名] --save-as [出力ファイル名]

例)

$ ./Aseprite.exe -b --split-layers ~/Desktop/menu.aseprite --save-as ~/Desktop/menu.png

https://www.aseprite.org/docs/cli/#export-all-layers-into-different-png/gif-files

▼実行するとこんな風にレイヤーごとに出力されたよ。

f:id:snoopopo:20190213131712p:plain

ファイル名は自動で決まりました ⇒ 追記:指定できるー!「ファイル名をレイヤー名にする」見て

追記①:不要な透明部分も除去できる

レイヤーごとにファイルを出力した場合、画像の大きさはすべてキャンバスのサイズになっていて、 不要な透明部分含めて出力されてしまう…

f:id:snoopopo:20190214121000p:plain

▲ こんな感じに、透明部分を含んだ大きい画像になってしまう。

そこで、--trim オプションを指定すると!不要な透明部分の除去もできた!素晴らしい!

$ ./Aseprite.exe -b --split-layers [asepriteファイル名] --trim --save-as [出力ファイル名]

例)

$ ./Aseprite.exe -b --split-layers ~/Desktop/menu.aseprite --trim --save-as ~/Desktop/menu.png

https://www.aseprite.org/docs/cli/#trim

f:id:snoopopo:20190214120742p:plain

▲ 透明部分を除去した画像が生成されました!

追記②:ファイル名をレイヤー名にする

それぞれのファイルをレイヤー名で指定することもできた!

上述しているとおり、 ファイル名を指定しない場合は [画像名] ([レイヤー名]).png というフォーマットで出力される。

これを、レイヤー名だけにしたい。って場合は、ファイル名の指定に {layer} とつけるとできました!

例)

$ ./Aseprite.exe -b --split-layers ~/Desktop/menu.aseprite --trim --save-as ~/Desktop/{layer}.png

https://www.aseprite.org/docs/cli/#filename-format

f:id:snoopopo:20190214122610p:plain