PSDデータで作成したイラスト等を階層を維持した状態でPrefab化、
レイヤー事にそれぞれPNG画像出力する方法を紹介します。
目次
Unity 2DでPSDデータを階層保持でPrefab+PNGに一括出力する方法
基本的にUnity側でPSDを変換する仕組みは用意されていますので、そこまで難しいことはしていないです。
PSDを用意
sample.psdを用意しました。
構成はシンプルですが、グループを挟んだり、日本語名を入れてみたりしています。
シェイプやスマートオブジェクトなどは事前にラスタライズしておきましょう。

Unityを構築
プロジェクトは2Dで作成。
以下のフォルダを作成
親 | 子 | 備考 |
---|---|---|
Assets | Editor | C#のスクリプトを格納 |
Prefabs | ここにPrefabとPng画像が生成されます。 | |
PSD | PSDデータを格納 |
PSDのフォルダにSmple.psdファイルを格納します。
PSDのファイルの設定を変更
psdを選択してインスペクターから
UnityEditor.TextureImporter (Default)
からUnityEditor.U2D.PSD.PSDImporter
に変更します。

以下の設定もチェックをいれておきます。

Layer Import
- Include Hidden Layers 非表示のレイヤーも含む
- Use Layer Group グループも含む
ちなみにプリセットを保存(PSDImporter.preset)してPreset Mangerに登録しておくと、PSDデータをいれるだけで、自動で設定されるようになります。

Prefab+PNGに一括出力
Projectウインドウからsample.psdを選択
右クリックから自作したコードを実行します。

PrefabフォルダにPSD名のフォルダが生成され、なかにPrefabとレイヤー毎にPNG画像が出力されます。

以上が一連の流れです。
それでは、以下の2つのコードを紹介します(ここから有料コンテンツです)
- PsdOverridePostprocessor.cs(自動でPSDデータのImporterをPSDImporterに切り替え)
- PsdToPrefabExporter.cs(PSDデータを階層保持でPrefab+PNGに一括出力する)
コメント