原画PSDファイルから書き出し
Photoshop形式の原画上がり=各セルの連番をまとめたレイヤーフォルダやレイアウトやフレーム指示のレイヤーなどを、あたかもタイムシートに挟んだ原画上がり一式として別ファイル出力するPhotoshopのスクリプトを今日必要に迫られて作りました。前々から作っておくべき!‥‥と考えていたのですが、ようやく重い腰を上げて作った次第です。
今回作ったのはコレ。
書き出すファイル形式は、当座の都合でTargaにしていますが、レイヤーなしのTIFFでもPSDでも可能です。絵が荒れるのでJPEGは使う予定はないですが、JPEGでもGIFでもPNGでも可能です。アルファチャンネルはファイル形式と状況によって適宜。
そして、(いつ作るかはニーズに応じて未定ですが)コレも用意しておくと、特定のプラットフォームやソフトウェアに縛られず、ファイルとレイヤーの行き来が可能になりましょう。
もはや、PSDファイルのレイヤー構造は、AdobeのPhotoshopでの使用に限定したものではなく、「レイヤー付き画像フォーマットといえばPSD」というくらい各所で普及していますから(ProcreateでもPhotoshopのレイヤー構造を保ったまま読み書き可能)、この2つのスクリプトは便利に使えると思います。
スクリプト自体には何の難しいところもないです。レイヤーの表示(=visible)を出力の基準にして、レイヤーの種別(ArtLayerやLayerSet)に応じて、当該のファイルフォーマットで複製保存するだけです。まあ、「常時表示するレイヤー」とかをちゃんと見分ける仕込みは必要ですが、基本的には難しいことはないです。
難しいのは、そのPhotoshopの「レイヤー構造の成り立ち」のほうです。
階層の深さの規定は、絶対に必要です。また、レイヤー名に基づいて出力するので、レイヤー名とその親フォルダの命名規則は極めて重要です。
でも、そういう部分が一番ルーズになるものです。人間が介在する部分が、一番「揺れ」ます。
なので、当座はスクリプト処理の都合も含めて、以下のように定めました。
- スクリプトが掘る階層は、レイヤーフォルダの第1階層まで。
- 静止画としてのレイヤーフォルダと連番格納のレイヤーフォルダは名前で判別する。
- 連番レイヤーは、親フォルダ名とレイヤー名を連結してセルのファイル名とする。
- 常時表示のレイヤーはレイヤー名先頭に判別文字を付与する。
とはいうものの、私のメインはあくまでCO/KFアニメーションなので、「従来作画のタブレット化・データ化への関与」はやんわりと距離を置くべきと考えており、上記程度の決め事で様子見です。
「デジタル作画」のここらへんの決まりって、誰か決める人、いないのかな‥‥。「デジタル作画」を自分のメインにしていこうと思っている人たちが、自分たちで決めていくのが良いと思います。私がフガフガ鼻息荒くして言う立場じゃないです。
一方、CO/KFアニメーションでの線画作業については、徐々にガイドラインを構築しつつあります。レイヤー名の命名規則も、
object.line
object.shadow.region
object.shadow.line
‥‥など、何度かの紆余曲折を経て、固まりつつあります。コンピュータで用いる規則ですから、プログラム・スクリプトでも処理しやすいように考えています。
Photoshopのスクリプトは久々に書きましたが、After Effectsとは似ているようでちょいちょい異なるので、多少混乱しました。
「layers」って、リファレンスには「The collection of layer objects」って書いてありますが、After Effectsでは「collection」は「コレクションオブジェクト」といいまして、
インデックス番号1から始まり()で呼び出す集合
‥‥なのに、Photoshopでは、
インデックス番号0から始まり [ ] で呼び出す配列
‥‥なのは、当初混乱しました。
また、Targaを書き出す際に用いる「TargaSaveOptions」のプロパティに、
resolution :The number of bits per pixel
‥‥があって、「タルガって解像度があったんか!」と一瞬驚きましたが、よく読むと、
1ピクセルあたりのビット数
‥‥で、初期値は「TargaBitsPerPixels.TWENTYFOUR」=24bitとありますから、いわゆるピクセルの色深度(各チャンネルの深度)のことですネ。1ピクセルあたりに使えるビット数という定義なのか、depthとは言わんのネ。
スクリプトの内容は、普通なら手作業でレイヤーのオンオフを切り替えて別名保存するのを、自動処理するものなので、何の特別な技も必要ないです。ただ、段取りが面倒なだけ‥‥です。
スクリプト動作中は、Photoshopが固まったようになるので、スクリプトが動いているんだかエラー停止しているのかイマイチ判別ができませんが、Finder上でフォルダが自動で作成されて、その中にファイルがどんどん増えていくのを見ながら、動作を確認しました。
なんとなく手作業のまま処理して、結構な時間を消費していた作業が自動化できました。今回はTarga書き出し版ですが、TIFF書き出し版(dpi〜解像度をもつ)も一部変更するだけで作れます。
必要なマニュアルは、以下のPDFにて。
Photoshop CC JavaScript Reference
フォルダなどファイルシステム管轄の操作は「JAVASCRIPT TOOLS GUIDE」(ESTKのSDKフォルダの中にあります)で「Folderオブジェクト」の項を読めば解ります。
- 2019.02.08 Friday
- プログラム・スクリプト
- 23:41
- -
- -
- -
- by 江面 久