Skip to main content
Inspiring
November 17, 2021
Answered

Javascriptでのレイヤーセット(グループ)の取得について

  • November 17, 2021
  • 1 reply
  • 3596 views

非プログラマですが、PhotoshopのJavascriptでの操作を勉強中です

Photoshopではレイヤーグループの中にさらにレイヤーグループをつくることが可能ですが、

レイヤーグループ名の取得は一番上の階層のグループが取得されてしまいます。

(layerSetObj.nameを使って取得しています)

同様にグループを指定して操作したくても、

2番目の階層より下のレイヤーグループやグループ内レイヤーをレイヤー名で指定するとエラーとなってしまいます。

 

2番目以下の階層を指定する方法はあるのでしょうか?

 

※補足

サンプルコードを参考にしているサイト様

http://nakatoji.lolipop.jp/index.php/extendscript

http://www.openspc2.org/book/PhotoshopCC/

 

This topic has been closed for replies.
Correct answer ajabon grinsmith

ああごめんなさいlayerSetsコレクションのほうがスマートでしたね。

 

任意のレイヤーから内包グループを参照するにはparentプロパティです。

activeDocument.activeLayer.parent

 

1 reply

ajabon grinsmith
Community Expert
Community Expert
November 17, 2021

レイヤー階層が仮に、

グループ 1

 └グループ2

となっている場合、グループ2には親のグループ1を経由しないと辿り着けないっぽいですね。

名前と階層が特定できている場合の決め打ちであれば

var hoge = activeDocument.layers.getByName("グループ1").layers.getByName("グループ2");

とすれば参照できます。

Inspiring
November 17, 2021

ありがとうございます!

おっしゃる通り、直接ではなく経由すると行けるみたいです。

 

公式のリファレンスガイドにもこのようなサンプルスクリプトがあったので、後学の方のために記載しておきます↓

var layerSetRef = app.activeDocument.layerSets.getByName ('myParentSet');
var childSet = layerSetRef.layerSets.getByName ('myChildset');

 

恐縮ですが、名指しではなく、activeLayerから取得する方法もわかりましたら是非宜しくお願いいたします。

 

ajabon grinsmith
Community Expert
ajabon grinsmithCommunity ExpertCorrect answer
Community Expert
November 17, 2021

ああごめんなさいlayerSetsコレクションのほうがスマートでしたね。

 

任意のレイヤーから内包グループを参照するにはparentプロパティです。

activeDocument.activeLayer.parent