![見出し画像](https://assets.st-note.com/production/uploads/images/101872486/rectangle_large_type_2_92f64c3f3ee2f54aa6cf354a9de9bebd.jpeg?width=800)
Photoshopスクリプトでレイヤー選択を簡単に切り替える方法
はじめに
Photoshopで作業をしていると、特定のレイヤーとその前に選択していたレイヤー間で繰り返し切り替えることがよくあります。今回は、Photoshop 2022で使えるスクリプトを開発しました。このスクリプトを使うと、特定のレイヤー(例: "MASK")と直前に選択していたレイヤーの選択を簡単に切り替えることができます。
★このスクリプトはChatGPT4を活用して作成しています。
スクリプトの概要
"MASK" レイヤーと、直前に選択していたレイヤー間で選択を切り替える
レイヤー選択を切り替えた際、表示/非表示状態は変更されない
レイヤーセット内にあるレイヤーも対象になる
![](https://assets.st-note.com/production/uploads/images/101870711/picture_pc_37ac0363d81dce883fa7c0a546be8d68.gif?width=800)
スクリプトのコード
以下が、今回開発したスクリプトのコードです。Photoshop 2022で実行して、期待通りに動作することを確認しています。
#target photoshop
(function() {
var tempFileName = 'layerSwitcherTemp.txt';
var maskLayerName = 'MASK';
var tempFile = new File(Folder.temp + '/' + tempFileName);
function saveLayerInfoToFile(layerName, visibility) {
tempFile.open('w');
tempFile.write(layerName + '\n' + visibility);
tempFile.close();
}
function getLayerInfoFromFile() {
if (!tempFile.exists) return null;
tempFile.open('r');
var layerName = tempFile.readln();
var visibility = tempFile.readln() === 'true';
tempFile.close();
return {name: layerName, visible: visibility};
}
function getLayerByName(layerName, layers) {
for (var i = 0; i < layers.length; i++) {
var layer = layers[i];
if (layer.typename === 'LayerSet') {
var foundLayer = getLayerByName(layerName, layer.layers);
if (foundLayer) return foundLayer;
} else if (layer.name === layerName) {
return layer;
}
}
return null;
}
function main() {
var doc = app.activeDocument;
var selectedLayer = doc.activeLayer;
if (selectedLayer.name === maskLayerName) {
var layerInfo = getLayerInfoFromFile();
if (layerInfo) {
var previousLayer = getLayerByName(layerInfo.name, doc.layers);
if (previousLayer) {
doc.activeLayer = previousLayer;
previousLayer.visible = layerInfo.visible;
}
}
} else {
var maskLayer = getLayerByName(maskLayerName, doc.layers);
if (maskLayer) {
saveLayerInfoToFile(selectedLayer.name, selectedLayer.visible);
doc.activeLayer = maskLayer;
} else {
alert('レイヤー "' + maskLayerName + '" が見つかりませんでした。');
}
}
}
app.activeDocument.suspendHistory('Switch Layer Selection', 'main()');
})();
使い方
上記のスクリプトをコピーし、テキストエディタで新しいファイルを作成し、コードを貼り付けます。
ファイルを "*.jsx" の拡張子で保存します(例: "LayerSwitcher.jsx")。
Photoshopで、[ファイル] > [スクリプト] > [参照] から作成したスクリプトファイルを選択して実行します。
"MASK" レイヤーと直前に選択していたレイヤー間で選択が切り替わることを確認します。
まとめ
今回のスクリプトを使えば、Photoshopで特定のレイヤーと直前に選択していたレイヤー間で選択を簡単に切り替えることができます。これにより、作業効率が向上し、より快適な画像編集が可能になります。
この記事が気に入ったらサポートをしてみませんか?