Live2Dのパーツ分けしたpsdに同名のレイヤーがあると差し替えでいろいろ面倒なことが起きるので、レイヤー名の重複を自動でチェックするスクリプト作りました。
レイヤーセットもまとめてチェックしていきます。最後に「同じレイヤー名はありません。」とメッセージが出れば、レイヤーセットとレイヤー、すべてが一意の名前になっています。
See the Pen
OJVxVJp by TaniNatsumi (@taninatsumi)
on CodePen.
①psdファイルを開いている状態でスクリプトをPhotoshopへD&D
②「同じレイヤー名をチェックし、テキストファイルに出力します。」と出るのでOK
③同じレイヤー名が存在した場合はファイル出力画面が出るのでテキスト形式(.txt)で保存する。その後「同じレイヤー名がn個ありました。」とメッセージが出るのでOKを押して終わり。出力したテキストファイルを確認して手動で直す。
④同じレイヤー名がなければ「同じレイヤー名はありません。」とでるはず。
filterを使って重複を抽出する方法が調べたら出てきたけど、Photoshopでfilter使うと、関数ではありませんエラーが起きてなんか使えなかったので、ソートしてから重複チェックをする処理で実装しました。
レイヤーの種類によってはもしかしたら変な挙動するかもしれないです。とりあえず通常のレイヤー(レイヤー効果は使用していてもOK…のはず)とレイヤーセットなら大丈夫かも。
再帰処理をしてるので、可能なら「Live2D_Preprocess」などを使用してレイヤーを全体的に統合した状態で使ったほうがいいです。
個人で利用するためなのでデバッグはしてません。利用は自己責任でぇ。