• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

OM Blog

Digital Artist Hacks!

  • Blog
    • 3DCG制作講座
    • 映像制作講座
  • Wiki
  • About
  • Contact
    • 3DCGデザイナー他 外部スタッフ募集
現在の場所:ホーム / 2DCG制作 / PhotoShop スクリプト ActionManagerベース

PhotoShop スクリプト ActionManagerベース

01/26/2016 By Ochiai Mitsuo Updated: 09/15/2019 コメントを書く

Photoshop Action Managerベースメモ。

activeDocument.layerからfor文でループ処理させると時間がかかるが、IDベースで処理するとレイヤー数が多くても高速でループ処理することができます。100レイヤー近くあっても軽々と処理します。


スクリプト

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
var LayerArray = [];  
LayerArray = getSelectedLayersIdx().reverse();
alert(LayerArray.length);
    
if(LayerArray.length >= 2){
    for(var i in LayerArray){
        selectLayerByIndex(Number(LayerArray[i]));
        alert(activeDocument.activeLayer.name);
    }
}
 
function getSelectedLayersIdx(){
      var selectedLayers = new Array;
      var ref = new ActionReference();
      ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
      var desc = executeActionGet(ref);
      if( desc.hasKey( stringIDToTypeID( 'targetLayers' ) ) ){
         desc = desc.getList( stringIDToTypeID( 'targetLayers' ));
          var c = desc.count;
          var selectedLayers = new Array();
          for(var i=0;i<c;i++){
            try{
               activeDocument.backgroundLayer;
               selectedLayers.push(  desc.getReference( i ).getIndex() );
            }catch(e){
               selectedLayers.push(  desc.getReference( i ).getIndex()+1 );
            }
          }
       }else{
         var ref = new ActionReference();
         ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "ItmI" ));
         ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
         try{
            activeDocument.backgroundLayer;
            selectedLayers.push( executeActionGet(ref).getInteger(charIDToTypeID( "ItmI" ))-1);
         }catch(e){
            selectedLayers.push( executeActionGet(ref).getInteger(charIDToTypeID( "ItmI" )));
         }
     var vis = app.activeDocument.activeLayer.visible;
        if(vis == true) app.activeDocument.activeLayer.visible = false;
        var desc9 = new ActionDescriptor();
    var list9 = new ActionList();
    var ref9 = new ActionReference();
    ref9.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
    list9.putReference( ref9 );
    desc9.putList( charIDToTypeID('null'), list9 );
    executeAction( charIDToTypeID('Shw '), desc9, DialogModes.NO );
    if(app.activeDocument.activeLayer.visible == false) selectedLayers.shift();
        app.activeDocument.activeLayer.visible = vis;
      }
      return selectedLayers;
};    
 
function selectLayerByIndex(index,add){
add = (add == undefined)  ? add = false : add;
var ref = new ActionReference();
    ref.putIndex(charIDToTypeID("Lyr "), index);
    var desc = new ActionDescriptor();
    desc.putReference(charIDToTypeID("null"), ref );
      if(add) desc.putEnumerated( stringIDToTypeID( "selectionModifier" ), stringIDToTypeID( "selectionModifierType" ), stringIDToTypeID( "addToSelection" ) );
      desc.putBoolean( charIDToTypeID( "MkVs" ), false );
  try{
    executeAction(charIDToTypeID("slct"), desc, DialogModes.NO );
}catch(e){}
};


参考: //forums.adobe.com/thread/803166


カテゴリ2DCG制作

関連コンテンツ



Reader Interactions

コメントを残すコメントをキャンセル

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

最初のサイドバー

[PR] CG専門講師の初心者向けAfter Effects本

OM Blog Topics

  • After Effectsで動画データをループする方法
  • 台湾の通販で使える中国語キーワード
  • 台湾の購入代行サービス まとめ
  • CGソフトウェア 学習トレーニングサイト
  • Autodesk 3dsMax プラグインリスト
  • Adobe Photoshop プラグインリスト
  • 私のパソコンスペック
  • Windows ムービー メーカー提供終了。無料の代替えソフトは「フォト」です。
  • Photoshopのテキストレイヤー名の自動更新設定を復元する方法
  • PSDデータが開けない場合の対処方法

RSS OM Wiki Topics

  • OM Wiki
  • Formatting Syntax - ↷ 移動操作に合わせてリンクを書き換えました。
  • Asciidoc - [テーブル]
  • ImageMagick - [ダウンロード & インストール]
  • アニメーションの作り方

アーカイブ

Copyright © 2026

  • プライバシーポリシー