« コミティア100 | メイン | 新着記事がある場合にここに表示するようにしてあります »

●レイヤーセットの描画モードを一括変換

2012年11月 5日    

SaiやClip Studio Paint でPSDを書き出すと
レイヤーセット(グループ)の描画モードが「通常」になってしまうので
それを一括して「通過」にできるといいという声があったので作ってみました

//#target photoshop
//レイヤーセットを辿るための関数
function follw_LayerSets(parent){
	var ChildLyaers= parent.layers;
	for (var i = 0; i < ChildLyaers.length; i++){
		if (ChildLyaers[i].typename == "LayerSet"){
			//レイヤーセットの場合の処理
			set_PassThrough(ChildLyaers[i]);
			//再帰処理
			//arguments.callee(ChildLyaers[i])
			follw_LayerSets(ChildLyaers[i]);
		}else{
			//レイヤーセット以外に処理をしたい場合はここに記述
		}
	}
}
//描画モードが通常のレイヤーセットを通過に設定
function set_PassThrough(targetLayer){
	if (targetLayer.typename == "LayerSet"){
		if (targetLayer.allLocked == false){
			if (targetLayer.blendMode == BlendMode.NORMAL){
				targetLayer.blendMode = BlendMode.PASSTHROUGH;
			}
		}
	}
}
//main
// in case we double clicked the file
app.bringToFront();
//ドキュメントが開かれているかどうか判別
if (app.documents.length ==0){
	//ドキュメントが開かれていない場合処理なし
}else{
 	var parent = activeDocument;//作業するドキュメントの参照
	follw_LayerSets(parent);
}

通常モード以外のレイヤーセット(グループ)は影響を受けません
また「通常」のままにしたいレイヤーセット(グループ)がある場合はレイヤーをロックしておいてください。

.jsまたは.jsxの拡張子でテキストファイルに保存して
ファイル>スクリプト>参照で このファイルを指定すると実行できます
ファイル指定の行程をアクションで記録するのもいいでしょう

また、他の項目でも書いた通り、
Photoshopのプリセットスクリプトのフォルダに置くことで起動時にスクリプトメニューに読み込ませることもできます
プリセットスクリプトのフォルダは
MacOSXのCS5場合:/Applications/Adobe Photoshop CS5/Presets/Scripts
WindowsのCS5場合:Program Files¥Adobe¥Adobe Photoshop CS5¥Presets¥Scripts
になるかと思います


投稿者 Yukimi` : 2012年11月 5日 11:04