クリエイター手抜きプロジェクト[314]Photoshop CS3/CS4/CS5編 レイヤー レイヤーセット名をレイヤーに配置する/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,700文字)


今回は、レイヤー/レイヤーセット名の階層構造を、分かりやすくツリーで表示するスクリプトです。例えば、以下のようなテキストがレイヤーに表示されます。

グループ 1
|■グループ 2
||■グループ 4
||└レイヤー 12
|├レイヤー 6
|└レイヤー 5
└レイヤー 4
グループ 9
└レイヤー 16
レイヤー 2
レイヤー 1
背景

今回のスクリプトでは、レイヤーの順番などはうまく反映されないことがあります(作成順に反映される場合があります)。以下のスクリプトは、レイヤー構造をインデント(字下げ)だけで表示します。





// レイヤー状態を新規にレイヤーを作成し反映
function writeLayerName(layObj, indent){
var i,k,idt;
var CR = String.fromCharCode(13);
var ns = layObj.layerSets.length;
for (i=ns-1; i>=0; i--){
for (k=0,idt = "■"; k<indent; k++) { idt +="■"; }
txt = txt + idt+layObj.layerSets[i].name+CR;
writeLayerName(layObj.layerSets[i],indent+1);
}
var n = layObj.artLayers.length;
for (i=0; i<n; i++){
var layName = layObj.artLayers[i].name;
for (k=0,idt = ""; k<indent; k++) { idt +=" "; }
txt = txt + idt+layName+CR;
}
}
var txt = "";
writeLayerName(activeDocument,0);
layObj = app.activeDocument.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.font = "Osaka";
layObj.textItem.contents = txt;


ツリー状態をより分かりやすくして配置したい場合には、以下のスクリプトを使用してください。これは、最初の例で説明したツリー状態で表示します。多少、手作業で直さなければならない場合があります。

// レイヤー状態を新規にレイヤーを作成し反映(2)
function writeLayerName(layObj, indent){
var i,k,idt;
var CR = String.fromCharCode(13);
var ns = layObj.layerSets.length;
for (i=ns-1; i>=0; i--){
var idt = "";
for (k=0; k<indent; k++) {
if (k==(indent-1)){
idt +="|■";
}else{
idt += "|";
}
}
txt = txt + idt+layObj.layerSets[i].name+CR;
writeLayerName(layObj.layerSets[i],indent+1);
}
var n = layObj.artLayers.length;
for (i=0; i<n; i++){
var layName = layObj.artLayers[i].name;
for (k=0,idt = ""; k<indent; k++) {
if (i ==(n-1) && (k==(indent-1))){
idt +="└";
}else{
if (k==(indent-1)){
idt += "├";
}else{
idt +="|";
}
}
}
txt = txt + idt+layName+CR;
}
}
var txt = "";
writeLayerName(activeDocument,0);
layObj = app.activeDocument.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.font = "Osaka";
layObj.textItem.contents = txt;

ちなみにMac OS Xの場合は、Photoshopをバックグランドにまわすか、Tabキーを押してパレットを消すと高速に処理されます。


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

違うネタを途中まで用意したのですが、撮影が間に合わず。
ようやく、長野県塩尻市でも梅の花が咲き始めました。

デザイナーさんから、こんなのもらいました。
・諏訪姫 - スク水バージョン...
< http://twitpic.com/99r9u3 >

諏訪姫はこんな会社で作ってるようです。
< http://www.pmoa.co.jp/ >

・毎度おなじみASCII.jpの連載
「Android 4の新機能でカメラWebアプリ作ってみた」
< http://ascii.jp/elem/000/000/683/683444/ >

・AndroidのためのHTML5本格アプリ開発【発売中】
< http://www.amazon.co.jp/dp/4897978971/ >

・新標準HTML5 & CSS3辞典【発売中】
< http://www.amazon.co.jp/dp/4844331752/ >

・Google API Expertが解説するHTML5ガイドブック
< http://www.amazon.co.jp/dp/4844329278/ >

・改訂5版JavaScriptポケットリファレンス
< http://www.amazon.co.jp/dp/4774148199 >

・10日で覚えるHTML5入門教室
< http://www.amazon.co.jp/dp/4798124184 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・クリエイター手抜きプロジェクト【2011年分まで用意しました】
< http://www.openspc2.org/projectX/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >
吉田印刷所の「印刷の泉」でも購入できるようになりました。