DTP駆け込み寺
  1. [20706] Photoshopのスクリプトについて h 2021/12/08 15:17
    1. [20707] Re: Photoshopのスクリプトについて (z-) 2021/12/09 10:11
      1. [20748] Re^2: Photoshopのスクリプトについて h 2022/01/11 14:21
        1. [20749] Re^3: Photoshopのスクリプトについて h 2022/01/11 14:27

[ 返信 ]

Photoshopのスクリプトについて

とあることがしたくて、Photoshopにて、レイヤーすべてを新たにレイヤーセットを作ってまとめたいスクリプトを作っております。

--------
var myDoc = app.activeDocument;

var lyrSetName = 'hogehoge';
var lyrSetObj= activeDocument.layerSets.add();
lyrSetObj.name = lyrSetName;

activeDocument.activeLayer = activeDocument.layers[0];
var docLyrObj = activeDocument.layers;

for(l=docLyrObj.length-1 ; 0<l ; l-- ){
var lyrObj = docLyrObj[l];
var relativeObj = activeDocument.layerSets[lyrSetName];
lyrObj.move(relativeObj, ElementPlacement.PLACEATBEGINNING);
}
--------

上記で作ってみたのですが、これだと元のレイヤーにレイヤーセットが含まれると途中で止まってしまうようです。
(背景レイヤーはない前提でスクリプト使用しています)
レイヤーセットも含めた状態で、一つのレイヤーセットにまとめることは実現可能でしょうか?

当方Photoshop2020、OS10.15.7環境です。

[20706] h (2021/12/08 Wed 15:17)

[ 返信 ]


Re: Photoshopのスクリプトについて

ちょっとやってみたら確かにだめで、
ちょっとぐぐってみたらスクリプトリスナー案件のようですね。
https://community.adobe.com/t5/photoshop-ecosystem-discussions/move-layerset-to-another/td-p/3781993

[20707] (z-) (2021/12/09 Thu 10:11)

[ 返信 ]


Re^2: Photoshopのスクリプトについて

データごとにレイヤー名を参照しないとだめかなって思っていたのですが、
メニューの選択範囲>「全てのレイヤー」をScriptlistenerで抽出してみたらできました。
(まさかこんなメニューが追加されていたとは。。。)

[20748] h (2022/01/11 Tue 14:21)

[ 返信 ]


Re^3: Photoshopのスクリプトについて

> データごとにレイヤー名を参照しないとだめかなって思っていたのですが、
> メニューの選択範囲>「全てのレイヤー」をScriptlistenerで抽出してみたらできました。
> (まさかこんなメニューが追加されていたとは。。。)


ごめんなさい。。
頭の中ぐるぐるしすぎて変なこと書いてました。。。
関係ない内容ですので無視してください。

[20749] h (2022/01/11 Tue 14:27)