「レイヤーをファイルに書き出し」をまとめておきます。

PNGファイルで「レイヤーをファイルに書き出し」する

PhotoshopのスクリプトExport Layers To Files.jsxを使います。全レイヤーエクスポートしてくれるようです。近年のバージョンには、元から入っている奴です。

「ファイル」>「スクリプト」>「レイヤーをファイルに書き出し」

ゲームの場合、png24で書き出す場合が多いでしょう(png8だと綺麗に抜けません。)。使うオプションは「背景透過」と「レイヤーをトリミング」あたりですかね。「レイヤーをトリミング」は空白の部分を含め、すべて同じサイズで書き出す場合はチェックを外します。テクスチャサイズを小さくしたいため、バラバラのサイズで書き出す場合はチェックを入れてトリミングします。両方できるのは、便利そうですね。

スポンサーリンク

「レイヤーをファイルに書き出し」のPNGオプションにあるインターレースとはなんぞや!?

ちなみに、オプションにあるインターレースとは何のことかわからない人もいるかもしれませんが、
難しい走査線のことはさておき、インターレースにすると画像がモザイク状から徐々に鮮明になっていきます。
しかし容量が大きくなります。試したことあるのですが、700kbの画像がインタレースのオプションを入れると、950kbになっていました。モザイク状から画像が読み込まれるゲームなんて基本的にないし、容量も増えるため、ゲームの場合は外しておいてよさそうです。

結論をいうとスルーでoKってことです。

スポンサーリンク

「レイヤーをファイルに書き出し」のファイル名の変更

画像を書き出すと、ひとつ問題点があり、ファイル名が気に入らないヾ(。・ω・)

デフォルトのまま書き出すと、「指定の文字列+連番4桁+レイヤー名」、というくどい名前になります。まあ、いろいろやり方はありますが、photoshopで順番がわかるようにするため、レイヤー名に番号などを入れて、元からある連番を消します。Photoshop上から名前の変更ができればいいのですが、ダメなようなので、photoshopscriptsのExport Layers To Files.jsx をいじります。

スクリプトがある場所は、PhotoshopのプログラムファイルのPresets\Scripts\Export Layers To Files.jsx

といっても、1行コメントアウトするだけです。cs4だと1023行目。

// fileNameBody += “_” + zeroSuppress(i, 4);

ちなみに、このカスタマイズをした場合、同じレイヤー名があると、上書きされてしまうので、注意が必要です。同じレイヤーがあった場合、下方のレイヤーが出力データとして残ります。

flexible renamerの連番ファイル作成という方法もある

適当な名前で書き出して、Windowsのflexible renamerを使う方法もあります。
レイヤー名に名前を入れるのも面倒かもですし。画像が更新されるたびにいれなおすのもちょっと…という人は少なくないでしょう。

flexible renamerはかなり昔からあるソフトですが、「高度なリネーム」の「正規表現」がつかいやすいです。
置換後に拡張子がつかないので、リネームする際に文字列に加えておきましょう。

次に、いろいろなデバイスに対応するために、いろいろな画像サイズが必要になります。アクションのバッチ処理やスクリプト処理をかまします!バッチは50%に縮小するアクションを作ってバッチ処理で書き出せばいいだけです。

あと、効率化のために、スプライトシートにしてしまうことも多そうですね。スプライトシートについては今回は説明しません。
texture packerなどの記事をみてください。

TexturePackerまとめ