Skip to main content
Inspiring
11月 17, 2021 1:31 午前 UTC
解決済み

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

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

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

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

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

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

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

 

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

 

※補足

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

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

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

 

このトピックへの返信は締め切られました。
ajabon grinsmith
Community Expert
11月 17, 2021 4:49 午前 UTC

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

 

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

activeDocument.activeLayer.parent

 

返信数 4

ajabon grinsmith
Community Expert
Community Expert
11月 17, 2021 2:19 午前 UTC

レイヤー階層が仮に、

グループ 1

 └グループ2

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

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

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

とすれば参照できます。

翻訳
takayakimoto作成者
Inspiring
11月 17, 2021 3:11 午前 UTC

ありがとうございます!

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

 

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

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

 

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

 

翻訳
ajabon grinsmith
Community Expert
Community Expert
11月 17, 2021 4:49 午前 UTC

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

 

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

activeDocument.activeLayer.parent

 

翻訳