Photoshopの一番下のレイヤーのみ表示|非表示をトグルするJavaScript


色調補正のやり過ぎを防ぐには、簡単な操作で補正前|補正後を切り替えられるようにすると良い
表示したままにしておきたいレイヤーの目玉マークをOption(Alt)+クリックすることで、これ以外のレイヤーを全て非表示にし、もう一度Option+クリックすると、 表示・非表示含めて 元の状態に戻す

単に「背景」レイヤーがある状態であれば、背景レイヤーをOpt+クリックするアクションで対応できた。
背景以外のレイヤー、スマートオブジェクトや透過させたレイヤー、レイヤーグループの場合はアクションに組み込めなかった。

▼こんなふうに使います。
Javascriptで、一番下のレイヤー以外の表示・非表示をトグルする https://youtu.be/aHHWfBBmM8s

これをショートカットキーでトグルするために下のJavascriptをアクションに登録する

補正用表示トグル.jsx
#target PHOTOSHOP
try{
var idShw = charIDToTypeID( "Shw " );
var desc75 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var list42 = new ActionList();
var ref68 = new ActionReference(); 
var tgtLayerkind = activeDocument.layers[activeDocument.layers.length-1]
    if(tgtLayerkind.isBackgroundLayer){
        var idLyr = charIDToTypeID( "Lyr " );
        var idBckg = charIDToTypeID( "Bckg" );
        ref68.putProperty( idLyr, idBckg );
    } else {
        ref68.putIndex( charIDToTypeID("Lyr "), tgtLayerkind.itemIndex );
    }
list42.putReference( ref68 );
desc75.putList( idnull, list42 );
var idTglO = charIDToTypeID( "TglO" );
desc75.putBoolean( idTglO, true );
executeAction( idShw, desc75, DialogModes.NO );
} catch(e){};

ESTKからバイナリ形式(jsxbin)で書き出しておくと良い
「ファイル」>「スクリプト」>「参照」からこのjsxbinを呼び出すアクションを作り、ショートカットキーを登録しておく。

  • 「背景」レイヤーがあるときは、背景レイヤーを対象にする
  • 「背景」レイヤーが無いときは、一番下のレイヤーを対象にする。スマートオブジェクトでもOK
  • 一番下がレイヤーグループの場合、一番下のレイヤーグループを対象にする
  • 一番下のレイヤーグループが入れ子の場合、親のレイヤーグループを対象にする

(動作確認はCC2015)