Photoshopで全レイヤー名へ「種類」と「不透明度」を自動追記するスクリプトを紹介します。
イラスト制作やLive2D向けのデータ整理に役立ち、レイヤー情報を名前に反映することで、後からの編集や確認をスムーズに行えます。
この記事でいう「種類」は、通常・乗算・スクリーンなどの描画モードのことです。
テキストレイヤーや調整レイヤーといったレイヤーの種類は、掲載のコードでは名前に付きません。
2026年10月16日に、Windows 11 Pro(10.0.26200)のPhotoshop 27.11.0(日本語表示)でこのコードを実行し、名前がどう変わるかを確かめました。

スクリプトを使用するメリット
- すべてのレイヤー名に「種類」と「不透明度」の情報を自動追記できる
- Live2Dやイラスト制作時にデータを整理しやすくなる
- レイヤー情報が明確になり、共同作業者とデータを共有しやすくなる
スクリプトで全レイヤーに情報を追加する手順
このスクリプトは、レイヤー名の後ろに描画モードと丸めた不透明度を記載します。実行前にPSDを別名で保存してください。名前に「 : 」がある場合、それより後ろの文字は削除されます。通過の描画モードと、四捨五入後に100となる不透明度は省略されます。
STEP.1 スクリプトを格納
- 下記のコードをテキストエディタに貼り付けて保存します。
Photoshopのほかの操作は、まとめからご覧いただけます。

CGM_AddTypeAndOpacityToLayer.jsx
app.bringToFront();
var parent = activeDocument;
parent.layers[0];
parent.suspendHistory("レイヤーに種類と不透明度を追記 ", "main()");
function main()
{
var BLEND_MODE_NAMES = {
'NORMAL': '通常',
'COLORBLEND': 'カラー',
'COLORBURN': '焼き込みカラー',
'COLORDODGE': '覆焼きカラー',
'DARKEN': '比較(暗)',
'DIFFERENCE': '差の絶対値',
'DISSOLVE': 'ディザ合成',
'DIVIDE': '除算',
'EXCLUSION': '除外',
'HARDLIGHT': 'ハード ライト',
'HARDMIX': 'ハードミックス',
'HUE': '色相',
'LIGHTEN': '比較(明)',
'LINEARBURN': '焼き込み(リニア)',
'LINEARDODGE': '覆焼き(リニア)加算',
'LINEARLIGHT': 'リニアライト',
'LUMINOSITY': '輝度',
'MULTIPLY': '乗算',
'OVERLAY': 'オーバーレイ',
'PASSTHROUGH': '', //通過
'PINLIGHT': 'ピンライト',
'SATURATION': '彩度',
'SCREEN': 'スクリーン',
'SOFTLIGHT': 'ソフトライト',
'SUBTRACT': '減算',
'VIVIDLIGHT': 'ビビッドライト',
'DARKERCOLOR': 'カラー比較(暗)',
'LIGHTERCOLOR': 'カラー比較(明)'
};
var LAYER_KIND_NAMES = {
'BLACKANDWHITE': '白黒',
'BRIGHTNESSCONTRAST': '明るさコントラスト',
'CHANNELMIXER': 'チャンネルミキサー',
'COLORBALANCE': 'カラーバランス',
'CURVES': 'トーンカーブ',
'EXPOSURE': '露光量',
'GRADIENTFILL': 'グラデーション(塗りつぶしレイヤー)',
'GRADIENTMAP': 'グラデーションマップ',
'HUESATURATION': '色相・彩度',
'INVERSION': '階調の反転',
'LEVELS': 'レベル補正',
'NORMAL': '',
'PATTERNFILL': 'パターン(塗りつぶしレイヤー)',
'PHOTOFILTER': 'フィルター',
'POSTERIZE': 'ポスタライズ',
'SELECTIVECOLOR': '特定色域の選択',
'SMARTOBJECT': 'スマートオブジェクト',
'SOLIDFILL': 'べた塗り(塗りつぶしレイヤー)',
'TEXT': 'テキストレイヤー',
'THRESHOLD': 'しきい値',
'LAYER3D': '3Dレイヤー',
'VIBRANCE': '自然な彩度',
'VIDEO': 'ビデオレイヤー',
};
function getBlendModeInJa(blendMode)
{
blendMode = '' + blendMode;
var index = blendMode.indexOf('BlendMode.');
if (index >= 0)
{
blendMode = blendMode.substr(index + 1 + 9);
if (BLEND_MODE_NAMES[blendMode] !== void 0)
{
blendMode = BLEND_MODE_NAMES[blendMode];
}
}
return blendMode;
}
function geLayerKindInJa(layerKind)
{
layerKind = '' + layerKind;
var index = layerKind.indexOf('LayerKind.');
if (index >= 0)
{
layerKind = layerKind.substr(index + 1 + 9);
if (LAYER_KIND_NAMES[layerKind] !== void 0)
{
layerKind = LAYER_KIND_NAMES[layerKind];
}
}
return layerKind;
}
function removeArtlayerNameInfo(parent)
{
var ChildLyaers = parent.layers;
for (var i = 0; i < ChildLyaers.length; i++)
{
if (ChildLyaers[i].typename == "LayerSet")
{
removeArtlayerNameInfo(ChildLyaers[i]);
}
var artLayer = ChildLyaers[i];
var name = artLayer.name;
var index = name.indexOf(' : ');
if (index >= 0)
{
name = name.substr(0, index);
var visible = artLayer.visible;
artLayer.name = name;
artLayer.visible = visible;
}
}
}
function addArtlayerNameInfo(parent)
{
var ChildLyaers = parent.layers;
for (var i = 0; i < ChildLyaers.length; i++)
{
if (ChildLyaers[i].typename === "LayerSet")
{
addArtlayerNameInfo(ChildLyaers[i]);
}
var artLayer = ChildLyaers[i];
var name = artLayer.name;
var index = name.indexOf(' : ');
var layerKind = artLayer.kind;
layerKind = !true ? geLayerKindInJa(layerKind) : '';
if (layerKind !== '')
{
layerKind = '[' + layerKind + ']';
}
var layerOpacity = Math.round(artLayer.opacity);
if (layerOpacity === 100)
{
layerOpacity = '';
} else
{
layerOpacity = layerOpacity + '%';
}
var blendMode = artLayer.blendMode;
blendMode = getBlendModeInJa(blendMode);
temp = [];
if (blendMode !== '')
{
temp.push(blendMode);
}
if (layerOpacity !== '')
{
temp.push(layerOpacity);
}
if (layerKind !== '')
{
temp.push(layerKind);
}
if (temp.length > 0)
{
temp = temp.join(' ');
newName = name + ' : ' + temp;
var visible = artLayer.visible;
artLayer.name = newName;
artLayer.visible = visible;
}
}
}
removeArtlayerNameInfo(parent);
addArtlayerNameInfo(parent);
}CGM_AddTypeAndOpacityToLayer.jsxを 以下のフォルダに保存
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\- Photoshopを再起動します。
フォルダーに置いて再起動し、メニューから実行する方法は、2026年10月16日の確認には含めていません。
STEP.2 スクリプトを実行
- [ファイル] → [スクリプト] → [CGM_AddTypeAndOpacityToLayer] を選択します。
- 全レイヤーを処理し、省略条件に当てはまらない描画モードと不透明度を名前に追記します。

2026年10月16日の確認では、600×300pxの自作のPSDに、性質の違うレイヤーを7つ置いて実行しました。
文字レイヤーのTEXT_50(不透明度50%)と、非表示の文字レイヤーHIDDEN_75(75%)、グループGROUPの中の文字レイヤーCHILD_80(80%)があります。
ほかに、通常のレイヤーのNORMAL_100(100%)とlabel : keep、背景を置きました。
PSDの作成と、実行前後の名前の読み取りは、画面操作ではなく自動処理で行いました。
コードは本文のものを変えずに保存し、[ファイル]→[スクリプト]→[参照]から選んで実行しました。

実行すると通知は出ずに、7つのうち6つのレイヤー名が変わりました。

| 実行前の名前 | 実行後の名前 | 補足 |
|---|---|---|
TEXT_50 | TEXT_50 : 通常 50% | 文字レイヤーでも種類は付かない |
HIDDEN_75 | HIDDEN_75 : 通常 75% | 非表示のまま名前だけ変わる |
CHILD_80 | CHILD_80 : 通常 80% | グループの中も対象 |
NORMAL_100 | NORMAL_100 : 通常 | 不透明度100%は数値を省く |
label : keep | label : 通常 | 元の名前のkeepが消えた |
| 背景 | 背景 : 通常 | 背景も対象 |
GROUP | GROUP | 描画モードが通過で100%のグループは変わらない |
「通常」は描画モードです。コードは不透明度を四捨五入して整数にし、丸めた結果が100なら数値を省きます。表の入力値は整数で、小数を指定した実機確認はしていません。
表示状態、不透明度、描画モード、文字の内容は、実行の前後で変わっていません。
注意したいのは、もともと名前に「 : 」(前後に半角スペースが入ったコロン)を含むレイヤーです。
このコードは、前回付けた情報を消してから付け直すため、元の名前の「 : 」より後ろも消します。
確認では、label : keepがlabel : 通常になり、keepは残りませんでした。
このような名前のレイヤーがあるPSDは、実行前に別名で保存しておくと元の名前を残せます。
コードには種類を付ける処理も入っていますが、layerKind = !true ? geLayerKindInJa(layerKind) : '';の行で常に空になるため、種類は付きません。
この行を書き換えて種類を付ける方法は、今回は確かめていません。
ロックしたレイヤー、調整レイヤー、スマートオブジェクト、通常以外の描画モード、何段も入れ子にしたグループは、今回は確かめていません。
2回目以降の実行、取り消しで戻す操作、文書を開いていないときの動作も、今回は確かめていません。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
レイヤーを操作するスクリプトは、ほかにもあります。




まとめ
- 各レイヤーの描画モードと丸めた不透明度を、省略条件に応じて名前へ追加できる
- イラスト制作やLive2Dのデータ整理を効率化できる
- 他の作業者とデータを共有しやすくなる
Photoshopのレイヤー管理を効率化するために、このスクリプトの導入をお試しください。
よくある質問:全レイヤー名に種類と不透明度を追記する
このスクリプトでは何ができますか?
Photoshopで、レイヤー名の後ろに描画モード(この記事でいう「種類」)と不透明度を自動で追記できます。テキストレイヤーなどのレイヤーの種類は、掲載のコードでは付きません。イラスト制作やLive2D向けのデータ整理に役立ち、レイヤー情報を名前に反映することで、後からの編集や確認をスムーズに行えます。
どんなメリットがありますか?
すべてのレイヤー名に「種類」と「不透明度」の情報を自動で追記できます。Live2Dやイラスト制作時にデータを整理しやすくなり、レイヤー情報が明確になるので共同作業者とデータを共有しやすくなります。
どのレイヤーが対象になりますか?
グループの中のレイヤーや非表示のレイヤー、背景も含めて、全レイヤーが対象です。不透明度は四捨五入後に100となると数値を省き、描画モードの通過も省きます。そのため通過・100%のグループには情報を追加しません。ただし元の名前に「 : 」があれば、その後ろは削除されます。2026年10月16日にPhotoshop 27.11.0で確かめたときは、7つのうち6つのレイヤー名が変わりました。
実行するとレイヤー名が変わりますが、元に戻せますか?
記事では元に戻す方法は紹介していません。レイヤー名が書き換わるため、大切なファイルは事前に別名で保存しておくと安心です。もともと名前に「 : 」を含むレイヤーは、その後ろの文字が消えます。2026年10月16日の確認では、label : keepがlabel : 通常になりました。取り消しで戻せるかは確かめていません。
スクリプトはどのように導入しますか?
記事のコードをテキストエディタに貼り付けてCGM_AddTypeAndOpacityToLayer.jsxとして保存し、記事で案内しているフォルダに保存します。保存後にPhotoshopを再起動してください。
どうやって実行しますか?
[ファイル] → [スクリプト] → [CGM_AddTypeAndOpacityToLayer] を選択します。レイヤー名の後ろに描画モードと不透明度が自動的に追加されます。2026年10月16日の確認では、フォルダーには置かず、[ファイル]→[スクリプト]→[参照]から保存したファイルを選んで実行しました。
スクリプトのコードはどこで確認できますか?
記事内に掲載しているほか、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
メニューの表示や名称が記事と違う場合はどうすればよいですか?
Photoshopのバージョンによってメニューの名称や配置が変わることがあります。最新の操作手順は、Adobeの公式情報で確認してください。
