「レイヤーをファイルに書き出し」をまとめておきます。
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
上書き禁止されているため、バックアップをとって書き換えてPhtoshop内に放り込んで上書きしています。
といっても、コメントアウトするだけです。cs4だと1023行目。cs6は1030行目
//fileNameBody += "_" + zeroSuppress(i, 4); //fileNameBody += "_" + layerName; fileNameBody += layerName;
1行目を消すと連番が消えます、2行目を消すと、行頭の_も消えます、レイヤー名だけにしたい場合は、2行ともコメントアウトし、レイヤー名だけ残しましょう。
ちなみに、このカスタマイズをした場合、同じレイヤー名があると、上書きされてしまうので、注意が必要です。同じレイヤーがあった場合、下方のレイヤーが出力データとして残ります。フォルダが階層構造になっている場合は、s0001という名前なので別途対応が必要です。
flexible renamerの連番ファイル作成という方法もある
適当な名前で書き出して、Windowsのflexible renamerを使う方法もあります。
レイヤー名に名前を入れるのも面倒かもですし。画像が更新されるたびにいれなおすのもちょっと…という人は少なくないでしょう。
flexible renamerはかなり昔からあるソフトですが、「高度なリネーム」の「正規表現」がつかいやすいです。
置換後に拡張子がつかないので、リネームする際に文字列に加えておきましょう。
次に、いろいろなデバイスに対応するために、いろいろな画像サイズが必要になります。アクションのバッチ処理やスクリプト処理をかまします!バッチは50%に縮小するアクションを作ってバッチ処理で書き出せばいいだけです。
あと、効率化のために、スプライトシートにしてしまうことも多そうですね。スプライトシートについては今回は説明しません。
texture packerなどの記事をみてください。
コメント