// //レイヤ作成機能勝手に拡張 //Rev.03 UI実装版 //2007.07.14 まきのともやす // //Rev履歴 // //07.02.26 Rev.01試作版公開 //ただ単に任意の文字列+”影”レイヤのクリッピングマスクを作成するだけ。 // //07.07.14 Rev.02 UI実装版 //とりあえずUI実装で見た目がいっぱしの機能拡張っぽくなった気がしないでもない。 //影・ハイライトをチェックボックスにして必要に応じてON/OFFできるようにする。 //また、追加文字列項目を設置し、任意文字列+追加文字列のレイヤも作成できるようにする。 //何に使うのかよくわからないけど。 //あと、ベースレイヤ名がnullだった時の処理とかめどいのでしてないです。 // //07.08.15 Rev.02a //追加レイヤ名が入っていないのに追加レイヤが作成されてしまう問題の修正 // //11.07.24 Rev.02b //Photoshop CS5ではレイヤ名テキストを選択状態にできないので //レイヤ名テキスト自体を空白にし、実行時に空白だった場合には"Layer"で作成 // //14.11.01 Rev.03 //Photoshop CC(2014)において、直Text入力するとPhotoshop自体が落ちてしまう問題が発生。 //当座の凌ぎとして文字入力をdropdownlist化し、内容をLAYER_VALUE配列に登録する形とする。 //バージョン表記 var REV_STR = "レイヤ作成拡張 Rev.03 beta" ; //レイヤ文字列 var LAYER_VALUE = new Array ( "レイヤ" , "口" , "水着ベース" , "髪飾りベース" , "制服ベース" , "制服ライン" , "体操着ベース" , "体操着ライン" , "ブルマベース" , "ブルマライン" , "涙ベース" , "チアコスベース" , "チアコスライン" , "アンスコベース" , "シューズベース" , "シューズライン" , "ソックス" , "ポンポン","リボン","下着ベース","下着ライン" ); //UIの配置とか設定 var win = new Window('dialog' , REV_STR ); win.bounds = [100 , 100 , 620 , 200]; //ウインドウの大きさ win.add ('statictext', [15, 15, 95, 35], 'ベースレイヤ名:'); //edittext→dropdownlistに変更 win.Layname = win.add ('dropdownlist' , [100, 15, 365, 35] , LAYER_VALUE); win.Layname.selection = 0; //最初から0番目を選択状態にする win.Cb1 = win.add('checkbox',[15,40,120,70],'+影レイヤ作成'); win.Cb1.value = true; win.Cb2=win.add('checkbox', [15,60,140,100],'+ハイライトレイヤ作成'); win.Cb2.value = false; win.add ('statictext', [170, 45, 240, 70], '追加レイヤ名:'); win.extname = win.add('edittext',[250,45,365,65]) win.okbtn = win.add('button' , [400 , 15 , 500, 35 ] , 'OK' , {name: 'ok' }); win.cancelbtn = win.add('button' , [400 , 45 , 500, 65 ] , 'キャンセル' , {name: 'cancel' }); win.ok=1; win.center(); //とりあえず中央に配置 var ret = win.show(); //ダイアログボックスの表示 //ボタンが押されたら if(ret == 1) { //droplist内で現在選択されいてる文字列の取得 var lstr = win.Layname.selection.text; if( win.Layname. selection = '') lstr = "Layer"; else str = win.Layname. selection; //テキスト文字列の参照 //ベースレイヤ追加 layObj = activeDocument.artLayers.add(); if(layObj != null) //レイヤが作成されたならそのレイヤの名称を変更 { activeDocument.artLayers[0].name = lstr ; } //影レイヤの追加 if(win.Cb1.value){ layObj = activeDocument.artLayers.add(); //レイヤが作成されたなら名称変更して”影”を追加 if(layObj != null) { activeDocument.artLayers[0].name = lstr + "影"; layObj.grouped = true; //グループ化ON } } //ハイライトレイヤの追加 if(win.Cb2.value){ layObj = activeDocument.artLayers.add(); if(layObj != null) { activeDocument.artLayers[0].name = lstr + "ハイライト"; layObj.grouped = true; } } //その他レイヤの追加 if(win.extname.text != ""){ layObj = activeDocument.artLayers.add(); if(layObj != null) { activeDocument.artLayers[0].name = lstr + win.extname.text; layObj.grouped = true; } } }