【Photoshopスクリプト】レイヤー名の「[→]を[_L]に、[←]を[_R]」にする
① 実行するとすべてのレイヤーに対して[→][←]の文字を削除し、末尾に[_L][_R]と付けます
② リネームされたレイヤーはpsdファイルと同じ階層に「renamed_layers.txt」としてテキストファイルで保存されます
たとえば
・「横髪→」というレイヤーは「横髪_L」となります
・「目←」というレイヤーは「目_R」となります
リネームサンプル画像は以下のとおりです
個人の好みや感覚はあると思いますが
「→」と入力するのに「みぎ」とタイプしてるのに、画面上では「左」側なのがモヤモヤするので
今回こんなスクリプトを作りました。脳の中で処理が1行増える感覚がするんですよね。。。
以下コード全体です。
function renameLayers(layer) {
var renamedLayers = [];
function processLayer(layer) {
if (layer.typename === "LayerSet") {
for (var i = 0; i < layer.layers.length; i++) {
processLayer(layer.layers[i]);
}
} else {
var name = layer.name;
var newName = name;
var renamed = false;
// "←"を"_R"に変換
if (newName.indexOf("←") !== -1) {
newName = newName.split("←").join("") + "_R";
renamed = true;
}
// "→"を"_L"に変換
if (newName.indexOf("→") !== -1) {
newName = newName.split("→").join("") + "_L";
renamed = true;
}
if (renamed) {
layer.name = newName;
renamedLayers.push(newName);
}
}
}
processLayer(layer);
return renamedLayers;
}
function saveRenamedLayers(renamedLayers, savePath) {
var file = new File(savePath);
file.open("w");
for (var i = 0; i < renamedLayers.length; i++) {
file.writeln(renamedLayers[i]);
}
file.close();
}
if (app.documents.length > 0) {
var doc = app.activeDocument;
var renamedLayers = [];
// 全てのレイヤーを処理
for (var i = 0; i < doc.layers.length; i++) {
renamedLayers = renamedLayers.concat(renameLayers(doc.layers[i]));
}
if (renamedLayers.length > 0) {
// PSDファイルと同じ階層に保存
var docPath = doc.path;
var savePath = docPath + "/renamed_layers.txt";
saveRenamedLayers(renamedLayers, savePath);
alert("レイヤーのリネームが完了しました。リネームされたレイヤー名はrenamed_layers.txtに保存されました。");
} else {
// リネームが一度もなかった場合のメッセージ
alert("リネームされたレイヤーはありません。");
}
} else {
alert("ドキュメントが開かれていません。");
}
※本記事のコードは参考としてご利用ください
ここから先は
0字
マガジン中のスクリプトのコードはすべて無料で見ることができます。
Live2D制作のためのpsdファイル作業を効率化、スピードアップしたい方におすすめです。
役にたったら投げ銭としてマガジンを購入していただけると活動の糧になります。
Live2Dスクリプト集
100円
作業効率化のためにつくった自分用のPhotoshopスクリプトです
この記事が気に入ったらチップで応援してみませんか?