Amazonで商品を見るセール会場へ

Photoshopスクリプト(jsx)│レイヤーから特定の文字を除去する方法

Photoshopのデータ整理やLive2Dの素材分けに役立つ、レイヤー名から特定の文字を除去する方法を解説します。

複数レイヤーの名前を一括で変更できるため、作業効率化に役立ちます。

目次

スクリプトを使用するメリット

  • 選択したレイヤーの名前を一括変更できる
  • 不要な拡張子(.png など)を一括で削除できる

レイヤーから特定の文字を除去する方法

Photoshopの関連する操作手順は、まとめ記事でも確認できます。

  1. 下記のコードをテキストエディタに貼り付けて保存

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;
};
  1. RemoveLayerText.jsx を 以下のフォルダに保存。
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\
  1. Photoshopを再起動。

STEP.2 スクリプトを実行

  1. [ファイル] → [スクリプト] → [RemoveLayerText] を選択。
  2. 指定した文字が削除され、レイヤー名が変更されます。

さらに便利に使う方法(ショートカット設定)

  1. [編集] → [キーボードショートカット] を開く。
  2. 「ファイル」メニューの項目から該当スクリプトを探す。
  3. 任意のショートカットキー(例:Ctrl + Shift + R など)を割り当てる。
  4. ショートカットキーを押すだけで、すばやくスクリプトを実行できます。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

レイヤーを操作するスクリプトは、ほかにもあります。

まとめ

  • 選択したレイヤー名から特定の文字を削除できる
  • Live2DやPhotoshopでのデータ整理を効率化できる
  • ショートカットを設定すれば、さらに素早く作業できる

Photoshopでのレイヤー管理を効率化するために、本スクリプトの活用をお試しください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次