logo-roadto3dcg
ヘッダー画像

Road to 3DCG

Photoshop | 変数を使ってバリエーション画像を自動生成する

2017-08-04

60分モデリングの画像を数枚まとめてpixivに貼る時は上図のようなキャプションテキストをつけているのだが、1枚ずつ画像を作って保存するのは手間がかかるので、Photoshopの変数を使って複数画像を一括自動生成する。一度テンプレートを作ってしまえば二度目からは楽できる。

作業手順

  1. テンプレートファイルの作成
  2. 差し替え用の素材を用意する
  3. 内容を差し替えたいレイヤーに変数を定義する
  4. 変数に画像や文字を代入して自動で書き出す

テンプレートファイルの作成

Photoshopでベースとなるテンプレートファイルを作る。自動で画像や文字を差し替えるレイヤーの名前はわかりやすいものにしておく。PSD形式で保存。

差し替え用の素材を用意する

素材画像をフォルダにまとめる

差し替え用の画像ファイルを1つのフォルダにまとめておく。

素材画像と同じフォルダにCSVファイルを作成

Windowsのコマンドプロンプトで以下のように入力し、フォルダ内のファイル名リストをCSVファイルとして書き出す。保存先は素材画像と同じフォルダ内にする。

dir /B (画像フォルダのパス) > (画像フォルダのパス)\(ファイル名.csv)

具体的にはこんな感じの記述になると思う。

dir /B C:\Users\hogehoge\Pictures\images > C:\Users\hogehoge\Pictures\images\list.csv

生成されたCSVファイルをGoogleスプレッドシート等で開いて編集し、変数に画像ファイル名とキャプションを対応させた表にする。変数名は、テンプレートファイル上で要素を差し替えるレイヤー名と同じにした。完了したら上書き保存する。

  • 変数名の最初の文字は、通常の文字か「_」「:」のいずれかでなければいけない。
  • 変数名には「.」「-」「_」「:」以外の特殊文字や、スペースを含んではいけない。

内容を差し替えたいレイヤーに変数を定義する

最初に作ったテンプレートPSDファイルを開く。

メニューバーの イメージ>変数>定義 を実行。 「レイヤー」 のプルダウンメニューからレイヤーを選び、割り当てたい変数を指定する。(変数を定義したレイヤー名の右には「*」が表示される)

  • 表示 レイヤーの表示/非表示を切り替え。
  • 画像の置き換え レイヤーの画像を、指定した変数の画像ファイルで置き換え。
  • テキストの置き換え テキストレイヤーを、指定した変数の文字列で置き換え。

レイヤー 「img」 の設定。

テキストレイヤー 「cap」 も設定。

変数に画像や文字を代入して自動で書き出す

CSVファイルの読み込み

左上のプルダウンメニューで 「データセット」 を選択。右側の 「読み込み」 ボタンを押し、作成しておいたCSVファイルを読み込む。

  • 読み込み後のテキストが文字化けするようならエンコーディングを変えてみる。
  • 差し替え用の画像とCSVファイルが同じフォルダに入っていないと正しく動作しない。

「変数」 ダイアログ右側のプレビューにチェックを入れると、変数によってデータが差し替えられた状態を確認できる。問題がなければ 「OK」 ボタンを押して内容を確定する。

(クリックでGIFアニメーションを再生)

画像の書き出し

メニューバーの ファイル>書き出し>データセットからファイル を実行。 「フォルダーを選択」 をクリックしてファイル書き出し先のフォルダを指定し、 「OK」 ボタンを押す。ファイルの命名規則を指定することもできる。

出力先フォルダを確認すると、キャプション入りの画像ファイルが自動生成されている。出来たファイルはPSD形式なので、必要に応じてバッチ処理でPNG等に変換すれば完了。

使用ソフトのバージョン: Photoshop CC (2017)