Photoshop内製ツール紹介『CRPS_指定ファイル保存』

生まれるのが早すぎた武将と言えば山中鹿之助。
クリーク・アンド・リバー社 COYOTE 3DCG STUDIO テクニカルチーム 戦国大好き人間の中林です。

今回はCOYOTEで作成した、PhotoshopCCのツールを紹介しようと思います。

CRPS_指定ファイル保存

こちらのツールは単純で【選択画像の複製保存】ボタンをクリックすると作業中のPSDファイルを内部で以下の処理をするだけです。
複製 ⇒ レイヤを統合 ⇒ 画像サイズに変更 ⇒ フォルダ選択 ⇒ ファイルの種類選択 ⇒ リネーム保存
単純ですけど、手作業でいくつものメニューを開いて実行をすると大変です。でも、このツールなら設定してあればワンクリックで保存できます。
挙げた作業は単純だけど、単純なだけに色々と進化をしてきて、更に進化し続けるツールです。

進化1:エクステンション

PhotshopのスクリプトではUIを作る方法は「ウィンドウ>エクステンション⇒メニュー」と「ファイル>スクリプト⇒スクリプト」の2種類があります。
単純に書くとエクステンションではHTMLを基準にしたUIでHPを作る感じで作れます。僕はChromeをメインに使ってますが、Chromeで見ながらUIの作成ができます。

スクリプトは予めPhotoshop用スクリプトJSXで用意されたUIコマンドで作成します。
僕は絶対にエクステンションでのツール作成をお勧めします。理由はJSXのUIは開いたままだと他の作業できないからです。エクステンションのUIは開いたままで作業できる上に、標準のUIと同じ感じで合体したりタブ化したりできるので、アーティストの自由度が高いです。
エクステンションは最初こそ初期設定で戸惑うことはありますが、ここで得たHTMLやCSS、Javaなどの知見は他でも生かせます。何より自由度が格段に広がります。

エクステンションの導入に関しては僕が参考にしたサイトを紹介します。この2つのサイトのおかげでMelしか書けなかった3年前の僕が稚拙ながらもエクステンションのツールを作れました。
・Photoshopのエクステンションを自作する
 https://www.tam-tam.co.jp/tipsnote/tool/post14513.html
・AdobeCCのExtensionをBracketsで開発しよう
 https://cat.adodtp.com/2016/06/14/?p=114

進化2:ボタン位置の変更

これは使う立場のアーティストからの貴重な意見による変更です。最初に設計した時は【選択画像の複製保存】ボタンは下の方にありました。当時の僕の記憶だと特に深く考えずに設定してから一番最後に実行をするから順番で下だよねくらいの感覚です。
しかし、アーティストは一番上にボタンがあるとUIを小さくしてボタンだけを表示して、ウィンドウを節約できると意見をくれました。
これは常に使うアーティストならではの意見で、ツールを作る時だけに数回しか使わないTAには見落としがちな、今でもツールをつくる上で大事にしてる意見です。

進化3:保存場所の設定追加

【保存場所】の選択肢は「同じフォルダ」『ひとつ上のフォルダ』「任意のフォルダ」の3つがあります。実は最初に作った時は『ひとつ上のフォルダ』の選択肢はありませんでした。
これもCOYOTEでMayaのテクスチャを書く時に多く使われる方法だけど、sourceimagesフォルダの中にPSDフォルダを作って作業中のPSDを入れてます。
同じフォルダでは毎回完成テクスチャを手動で移動する。任意のフォルダではマップやキャラを変えるたびに設定を変更するのは大変でした。
でも『ひとつ上のフォルダ』の選択肢を入れただけで変更する項目が減って格段に使いやすくなりました。これも常に使うアーティストならではの意見でした。

進化4:UVを出力しない

テクスチャを保存するときにUVを表示したまま保存してMayaで確認したらUVの線が表示されているはよくある話です。
だからと言って、作業をする時にはUVを表示してしたい作業もあります。そこを毎回神経質にチェックをしなくても良いように内部処理で「UV」というレイヤがあったら非表示にする機能を追加しました。
これは好評だけど問題があって、アーティストによってレイヤ名が不統一で「uv、UV、line……」など様々な名前がありました。やろうと思えば消したいレイヤ名を登録して消すUIを増やすこともできましたが、主要なアーティストと相談してあえてしませんでした。
理由はこの機能追加をキッカケにレイヤ名の統一を図ろうと機運が高まりました。Aさんが途中までやったテクスチャ作業をBさんが引き継ぐときにレイヤ名がプロジェクト内で統一されてると作業に入りやすいのでUVをはじめ大きなレイヤ名は統一しようとなりました。
あえてツールを複雑にさせない勇気も進化には大切だと思います。

進化5:プロジェクト毎の進化

並べてみると壮観ですが実はこのツールは左上の汎用以外にもプロジェクト毎に特化して進化してます。これはプロジェクト毎に汎用では吸収しきれない仕様とかがあるからです。
テクスチャ仕様で良くあるのは条件によってPSDファイル名の後ろに「_color,_mask,_glow……」などの差分を付ける。また、それに合わせて特定の名前のレイヤを表示非表示にして保存をするなどです。
一部は【進化1】を否定してるような感じで実行ボタンが一番上にないけど、これは実行前にメニューの変更が多いのでアーティストと相談して下に持ってきてます。
他にもこのプロジェクトではtagしか使わないのでその選択肢はいらないけど、色数は変えられるようにして欲しい。Pngだけど「web用に保存」で保存するときにアルファのオンオフを選択したいなどの要望に対応してます。
アーティストの意見でサイズ変更は縦横同サイズしか使わないけど、コンボで選択するのではなくボタンにして欲しいなど様々です。
無理に汎用でまとめてUIが複雑になるなら専用にしてシンプルにするのもありです。

上流工程の進化で下流工程が消滅

これは狙ってやったわけではなく、偶然の産物なので大きいことは言えませんが、このツールのおかげで下流工程のMayaでの作業を無くすことができました。
これはCOYOTE独自の作り方ではないと思いますが、うちではテクスチャは指定サイズの2倍のPSDで書き込みをして、確認と納品の時に指定サイズの縮小してpngやtgaなどにします。
このツール導入以前は、サイズに変更から保存までの作業を簡略化するためにある程度はPSDで保存して、MayaでもテクスチャパスをPSDに変更して確認してました。
その為、Mayaの方でテクスチャパスをPSDに変えた後にpngに戻し忘れるヒューマンエラー。fileノードとpsdFileTexノードの違いを知らずにfileノードのテクスチャパスをPSDに変更してMayaが落ちる不具合。それをフォローするためのノードを簡単に入れ替えるMelツール作成するなど沢山の作業がありました。
※参考までに当時の入替ツール例

しかも、PSDの確認はあくまで仮で実際にレイヤ結合して縮小したデータとは見栄えが変わることもあるので完璧な確認ではありませんでした。
しかし、このツールのおかげでワンクリックで最終形態の画像が簡単に保存できるのだから、PSDで確認する必要が無くなりました。上流工程の改善のおかげで下流工程の作業も改善された良い例になってます。

地味だけど半端ない時間効果

複製 ⇒ レイヤを統合 ⇒ 画像サイズに変更 ⇒ フォルダ選択 ⇒ フォーマット選択 ⇒ リネーム保存
改めてこの工程を手作業ですると平均して1分強かかります。しかし、このツールはワンクリック=1秒未満で終わります。仮に60回保存したら1時間費やすところを1分で終わります。
え、60回も保存しないですか? 実はこのツールができてから保存回数が格段に跳ね上がってます。ざっくり計算でも手作業だと2,3時間に1回だったのが1時間あたりに5,6回に跳ね上がってます。1日(6時間)平均2,3回だった保存は30~36回に増えてます。テクスチャに集中している時期なら2日で軽く60回以上も保存してます。
面倒だった作業が簡単になったことで、少し書いては保存と確認へ作業工程そのものが変わったから爆発的に保存回数が増えました。ちなみに僕は確認する回数が多いほどクオリティも高くなっていくと考えています。

今後の進化予定

実は画面サイズのリサンプル方法の選択は特定のプロジェクト専用にあるけど、汎用にはありません。また、tgaの色数などの画像の細かい設定選択もありません。
他にもプロジェクト特化で進化した情報を改めて汎用に統合してパワーアップをしようとしてます。
また、今後も汎用から新たなプロジェクト特化が生まれるのでスクリプトをモジュール化しつつ整理して、簡単にビットのオンオフで使わない部分のメニューを隠せるようにする予定です。

ツールを進化させるのは使う人の意見

頭の中で考えるツールと実際に使っているアーティストの意見は全く違います。
実はこのツールは最初に僕の中で大きなミスをしました。それは画像を保存する度にダイアログメッセージで保存が終わりましたメッセージを出してOKボタンで閉じないと次の作業ができませんでした。僕は頭の中で確認が必要だと思ってたのですが、確かに60回保存してその度に画面中央のOKボタンを押すのは面倒でした。意見を聞いてすぐに直しましたが、意見を聞くまでに1カ月以上かかってました。
僕の座右の銘は「後で手を抜くために、今を一生懸命やる」です。特にツール作成の面倒は作るときの1度だけですが、ツールを使う方の面倒は改善しない限り何度も付きまといます。
なので、今ではツールを作った後もなるべく使っている人の意見を聞くように心がけてます。その結果、単純なツールでも常に進化を続けています。

Author: 中林 伸和