Live2D

【Live2D】レイヤーの一番上にまとめてかけてある効果レイヤーをそれぞれのパーツ分けしたレイヤーに適用させるスクリプト

/*******************/
(2018.09.02)
スクリプトを一部修正しました。
68行目:レイヤークリッピング
/*******************/

タイトルの通りのスクリプト作りました。コードは長いので記事のお尻に書いてあります。

元イラストがこんな感じ

これにpsdの一番上に効果レイヤー(画像は調整レイヤー:カラーバランス)をかけた状態がこんな感じ

それをこんな感じにすべてのレイヤーへクリッピングして結合をします(効果レイヤーが非表示でも印象が同じですね)。

これを自動でやってくれるスクリプトです。手作業でやるとミスがあったり、パーツ多いと大変なので作りました。
※頬の部分が適用前より少し色が弱くなっていますが、たぶん調整レイヤーの仕様です。

 

【使い方】
①psdファイルを開き、効果レイヤーをすべてレイヤーの一番上へ配置します。
②結合させたい効果レイヤーをすべて選択します。
③スクリプトを実行します。(画像ではスクリプト名をConbineLayerとしました)。Photoshopへ直接D&DしてもOKです。

 

④少し待つと画像のようなウインドウが出ます。結合させるレイヤーと確認のための画面です。問題なければ「はい」を押します。「いいえ」を押すとスクリプトを終了します。

⑤するともりもりと処理が走ります。

⑥結合処理が完了すると、完了しましたメッセージが出ます。選択していた効果レイヤーは自動で非表示状態になります。

⑦おわり!

 

こんな感じに複数レイヤーを選択して結合もできます。

 

 

【ちゅうい!】
すべてのレイヤーは表示状態にしてください。結合処理が非表示レイヤーに対してできないので、非表示状態のレイヤーがある状態でスクリプトを実行すると、こんなエラーが出るようになってます。

レイヤーを一つも選択していない状態でスクリプトを実行するとエラーが起きます。このエラーの回避方法はちょっとわからなかったので仕様ってことでゆるしてくだち。

 

 

【スクリプトのしくみ】
たぶん大体のイラストの描き方のレイヤー構造は
———————–
「効果レイヤー」
「線画」
「色」
———————–
みたいな感じになってると思います。

Live2D用にパーツ分けをしたpsdにすると
———————–
「効果レイヤー」
「パーツ分けレイヤー構造」
———————–
みたいな感じになりますよね。
この一番上の効果レイヤーを下のすべてのレイヤーに結合するって動作をするスクリプトって感じです。

なので効果レイヤー以外はLive2Dへインポートする準備ができてるくらいの状態のpsdがこのスクリプトにとって望ましい状態です。
※例えばLive2D_Preprocessスクリプトを使用したあとの状態

逆に特定のレイヤーのみに結合したり、一番上にない効果レイヤーを結合させるといった限定的な使い方はできません。
というかそういう用途にむけて作ってないです。

 

ということで以下がコードです。

See the Pen
PoqJwVz
by TaniNatsumi (@taninatsumi)
on CodePen.

個人で利用するためなので毎度のごとくデバッグはイイ感じでしかしてません。ご利用は自己責任でぇ。
Photoshop Ver:CC 2017.1.1です。他のバージョンでは動作検証してないです。ScriptingListener機能を使ったコードがあるので古すぎるバージョンだと動作しないかもしれないです。