2016年12月5日月曜日

Photoshopで表示されているレイヤーセット名を取得する

テクスチャとか作っているとレイヤーセットが増えてきますよね~。
カラーバリエーションとか模様違いとか。

出力するときに「ファイル名+レイヤーセット名」みたいにすると便利そうです。
今画面に表示されているレイヤーセットの名称を調べようとした時、どうするのか?


単純にレイヤーセットをリスト化して、最初に出てきた可視レイヤーセット名を取得すれば良いような気がします。

getLayerSetName.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
getLayerSetName = function()
{
    var lsObj = activeDocument.layerSets;
     
    var result = "";
    for( i=0; i<lsObj.length; i++ ){
        if( lsObj[i].visible ) {
            result = lsObj[i].name;
            break;
             
        }
         
    }
     
    return result;
     
}


これだけだったら話は早いのですが、斜め上の行動をする人が居るのが世の常。


こんな感じでレイヤーモードと透明度で色味調整しているファイルがあるかもしれない!
ま、スクリプト側からは注意喚起することくらいできないんですけど・・・。
目的はレイヤーセット名の取得なので無視します。


ちなみに、レイヤーの取得方法は3種類。
activeDocument.artLayers レイヤーのみ
activeDocument.layerSets レイヤーセットのみ
activeDocument.layers    レイヤーとレイヤーセット

このうちactiveDocument.layersから各レイヤーのblendMode,fillOpacity,opacity,visibleなんかの状況から分岐処理させるとかかな。


レイヤーカンプ使った出力スクリプトが公式で有るからソレ使えよみたいな感じですが、
テクスチャ作成途中の段階でレイヤーカンプ作るとレイヤーカンプは壊れ易いので無理。

そもそも3Dデザイナーのフォトショッパーってレイヤーカンプの存在知らなかったりするし。

0 件のコメント:

コメントを投稿