Unity 2D│PSDデータを階層保持でPrefab+PNGに一括出力する方法

PSDデータで作成したイラスト等を階層を維持した状態でPrefab化、

レイヤー事にそれぞれPNG画像出力する方法を紹介します。

環境:Unity 6.1

目次

Unity 2DでPSDデータを階層保持でPrefab+PNGに一括出力する方法

基本的にUnity側でPSDを変換する仕組みは用意されていますので、そこまで難しいことはしていないです。

PSDを用意

sample.psdを用意しました。

構成はシンプルですが、グループを挟んだり、日本語名を入れてみたりしています。

シェイプやスマートオブジェクトなどは事前にラスタライズしておきましょう。

Unityを構築

プロジェクトは2Dで作成。

環境:Unity 6.1

以下のフォルダを作成

備考
AssetsEditorC#のスクリプトを格納
PrefabsここにPrefabとPng画像が生成されます。
PSDPSDデータを格納

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画像が出力されます。

PSDと同じサイズ、同じ位置にPrefabが生成されています。

以上が一連の流れです。

それでは、以下の2つのコードを紹介します(ここから有料コンテンツです)

  • PsdOverridePostprocessor.cs(自動でPSDデータのImporterをPSDImporterに切り替え)
  • PsdToPrefabExporter.cs(PSDデータを階層保持でPrefab+PNGに一括出力する)

いろいろ応用が効くので、便利な変換ツールが作れると思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次