Photoshopのデータ整理やLive2Dの素材分けに役立つ、レイヤー名から特定の文字を除去する方法を解説します。
複数レイヤーの名前を一括で変更できるため、作業効率化に役立ちます。
目次
スクリプトを使用するメリット
- 選択したレイヤーの名前を一括変更できる
- 不要な拡張子(.png など)を一括で削除できる
レイヤーから特定の文字を除去する方法
Photoshopの関連する操作手順は、まとめ記事でも確認できます。
あわせて読みたい


Photoshopの使い方|保存・レイヤー・一括処理から探す
Photoshopでやりたい作業から記事を選べます。複数の画像に同じ編集を繰り返す場合は「アクション・一括処理」、JSXファイルを初めて使う場合は「スクリプトの導入・実…
- 下記のコードをテキストエディタに貼り付けて保存
RemoveLayerText.jsx
//@target photoshop;
app.bringToFront();
if (documents.length) {
var deleteStr = ".png"
var selLayers = getSelectedLayersIdx();
for (var a in selLayers) {
selectLayerByIndex(selLayers[a]);
activeDocument.activeLayer.name = activeDocument.activeLayer.name.split(deleteStr)[0];
}
}
function selectLayerByIndex(index, add) {
var ref = new ActionReference();
ref.putIndex(charIDToTypeID("Lyr "), index);
var desc = new ActionDescriptor();
desc.putReference(charIDToTypeID("null"), ref);
if (add) desc.putEnumerated(stringIDToTypeID("selectionModifier"), stringIDToTypeID("selectionModifierType"), stringIDToTypeID("addToSelection"));
desc.putBoolean(charIDToTypeID("MkVs"), false);
try {
executeAction(charIDToTypeID("slct"), desc, DialogModes.NO);
} catch (e) {}
};
function getSelectedLayersIdx() {
var selectedLayers = new Array;
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
var desc = executeActionGet(ref);
if (desc.hasKey(stringIDToTypeID('targetLayers'))) {
desc = desc.getList(stringIDToTypeID('targetLayers'));
var c = desc.count
var selectedLayers = new Array();
for (var i = 0; i < c; i++) {
try {
activeDocument.backgroundLayer;
selectedLayers.push(desc.getReference(i).getIndex());
} catch (e) {
selectedLayers.push(desc.getReference(i).getIndex() + 1);
}
}
} else {
var ref = new ActionReference();
ref.putProperty(charIDToTypeID("Prpr"), charIDToTypeID("ItmI"));
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
try {
activeDocument.backgroundLayer;
selectedLayers.push(executeActionGet(ref).getInteger(charIDToTypeID("ItmI")) - 1);
} catch (e) {
selectedLayers.push(executeActionGet(ref).getInteger(charIDToTypeID("ItmI")));
}
var vis = app.activeDocument.activeLayer.visible;
if (vis == true) app.activeDocument.activeLayer.visible = false;
var desc9 = new ActionDescriptor();
var list9 = new ActionList();
var ref9 = new ActionReference();
ref9.putEnumerated(charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
list9.putReference(ref9);
desc9.putList(charIDToTypeID('null'), list9);
executeAction(charIDToTypeID('Shw '), desc9, DialogModes.NO);
if (app.activeDocument.activeLayer.visible == false) selectedLayers.shift();
app.activeDocument.activeLayer.visible = vis;
}
return selectedLayers;
};RemoveLayerText.jsxを 以下のフォルダに保存。
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\- Photoshopを再起動。
STEP.2 スクリプトを実行
- [ファイル] → [スクリプト] → [RemoveLayerText] を選択。
- 指定した文字が削除され、レイヤー名が変更されます。
さらに便利に使う方法(ショートカット設定)
- [編集] → [キーボードショートカット] を開く。
- 「ファイル」メニューの項目から該当スクリプトを探す。
- 任意のショートカットキー(例:Ctrl + Shift + R など)を割り当てる。
- ショートカットキーを押すだけで、すばやくスクリプトを実行できます。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
レイヤーを操作するスクリプトは、ほかにもあります。
あわせて読みたい


Photoshopスクリプト(jsx)│背景レイヤーの表示を切り替える方法
Photoshopで一番下の背景レイヤーの表示を切り替えるスクリプトを紹介します。 背景レイヤーの表示・非表示を切り替えることで、デザインの確認作業を効率化できます。 …
あわせて読みたい


Photoshopスクリプト(jsx)│選択したレイヤーだけを表示・非表示する方法
Photoshopで選択したレイヤーのみを表示・非表示にするスクリプトを紹介します。 このスクリプトを使用すると、レイヤーパネルの目のアイコンを1つずつ切り替える手間を…
あわせて読みたい


Photoshopスクリプト(jsx)│全レイヤーに「種類」と「不透明度」を追記する方法
Photoshopで全レイヤー名へ「種類」と「不透明度」を自動追記するスクリプトを紹介します。 イラスト制作やLive2D向けのデータ整理に役立ち、レイヤー情報を名前に反映…
あわせて読みたい


Photoshopスクリプト(jsx)│レイヤー名のままグループ化する方法
Photoshopで選択したレイヤーをレイヤー名のまま自動でグループ化するスクリプトを紹介します。 Live2Dなどでパーツを分ける際に重宝し、グループ名をリネームする手間…
まとめ
- 選択したレイヤー名から特定の文字を削除できる
- Live2DやPhotoshopでのデータ整理を効率化できる
- ショートカットを設定すれば、さらに素早く作業できる
Photoshopでのレイヤー管理を効率化するために、本スクリプトの活用をお試しください。
