終了

【Adobe illustratorのスクリプトについて】 レイヤーごとに書き出し

Community Beginner ,
Dec 03, 2023 Dec 03, 2023

Adobe illustratorのスクリプトについてご教示ください。

現在、こちらのリンクを参考に

https://onishi-noboru.com/adobe-illustrator-how-to-export-artwork-by-layers

レイヤーごとにまとめて書き出すスクリプトを使用しているのですが


現在の機能に追加で、
一番上のレイヤーを必ず表示させて書き出しするようには可能でしょうか?

仕事で、ガイドレイヤーを表示しつつ、各レイヤーを書き出ししたく。。。


現在は、面倒ですが入稿データ作成後に、各レイヤーに
一番上のレイヤー(ガイドレイヤー)をフロントペーストして
書き出ししております。

不可能なら諦めるのですが、
スクリプトやコードについて詳しい方がおられましたら
お力添えいただけますと幸いです。

よろしくお願い致します

 

 

【使用中のコード】

var folder = Folder.selectDialog();
var document = app.activeDocument;
if(document && folder)
{
var options = new ExportOptionsPNG24();
options.antiAliasing = true;
options.transparency = true;
options.artBoardClipping = true;

var n = document.layers.length;
for(var i=0; i<n; ++i)
{
hideAllLayers();
var layer = document.layers[i];
layer.visible = true;

var file = new File(folder.fsName+"/"+layer.name+".png");

document.exportFile(file,ExportType.PNG24,options);
}

showAllLayers();
}

function hideAllLayers()
{
forEach(document.layers, function(layer) {
layer.visible = false;
});
}

function showAllLayers()
{
forEach(document.layers, function(layer) {
layer.visible = true;
});
}

function forEach(collection, fn)
{
var n = collection.length;
for(var i=0; i<n; ++i)
{
fn(collection[i]);
}
}


 

キーワード
Mac , スクリプティング , パフォーマンス , 印刷と公開 , 読み込みと書き出し
4.6K
翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 1 件の正解

Community Expert , Dec 04, 2023 Dec 04, 2023

すごい失礼しました

document.layers[0]以下略 ですね…

翻訳
Community Beginner ,
Dec 03, 2023 Dec 03, 2023

追記【PCの構成】
OS: mac OS Mounterey 
Mem : 64GB
CPU : 3.8 GHz 8コアIntel Core i7

 

です。よろしくお願いします。

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 03, 2023 Dec 03, 2023

もちろん可能なんですけど、Web上で公開されているスクリプトだとしても権利が発生する著作物にかわりありません。まるまる転載はよろしくありません。

 

一番上ということはlayers[0]ですから、それのvisibleプロパティをtrueにすると良いでしょう。

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Dec 03, 2023 Dec 03, 2023

テンA様

早速のご回答ありがとうございます。

>Web上で公開されているスクリプトだとしても権利が発生する著作物にかわりありません。まるまる転載はよろしくありません。

 

そうですね。ご指摘いただきありがとうございます。

申し訳ございません。以後気をつけます。

 

当方、コードの仕組みについてあまりわかっておらず

layer[0].visible = true;

 

をどこかに追加すれば良いということでしょうか?

知識不足で大変恐縮でございますが

どこに追加すれば良いかなど、お教えいただけますと幸いです。。

よろしくお願い致します。

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 03, 2023 Dec 03, 2023

横からすみません

 

>Web上で公開されているスクリプトだとしても権利が発生する著作物にかわりありません。まるまる転載はよろしくありません。

 

このことについて、「もう転載しちゃったものは仕方ない」として話を進めることの是非が問われる問題だと思うのです。本来は公開元のほうで転載や二次的配布、改変などについての著作権範囲を記載しておくのがベストですが、たとえそれがなかった場合でも最初に著作者であるリンク先にお伺いをたてるのがお行儀というものでしょう。

それは今からでも全然間に合いますのでぜひご検討ください。

 

わからないなりによく見ると、書き出しを実行している行がわかるはずです。

>document.exportFile(file,ExportType.PNG24,options);

これのすぐ上に追記すればそれなりの結果になるかと。

構文としてはとてもぶさいくになりますが要件は果たせるはずです。

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Dec 04, 2023 Dec 04, 2023

ajabon grinsmith様

ご返信いただきありがとうございます。

 

同様のスクリプトのコピーがWEB上に多数あり、一番わかりやすいサイト様をリンクとして

貼り付けてしまいました。軽率な行為であったと反省しております。

どの公開元も見つけた中では転載や二次的配布、改変など見当たらなかったので、

一番古い記事を公開している方に転載と改変の旨お伺いしようと思います。

マナーのご指摘、ありがとうございます。

 

 

早速、教えていただいた通りに

>document.exportFile(file,ExportType.PNG24,options);

これのすぐ上に追記

layer[0].visible = true;

 

を追加してみましたが、

「Error 21: undefinedはオブジェクトではありません」

とのエラーが出てしまい、スクリプトが起動できませんでした。

 

layer[0].visible = true;

の部分が間違っているのでしょうか??

どなたかお教えいただけると幸いです。。

よろしくお願い致します。

 

 

 

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 04, 2023 Dec 04, 2023

すみません凡ミスを見落としましたっ

layers[0].visible = true;

レイヤーにしてみてください。エスつけてください。

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Dec 04, 2023 Dec 04, 2023

ajabon grinsmith様

早速のご返信、ありがとうございます!

 

ご指摘の頂いた通り、layers[0].visible = true;

にしたところ、Error 21は解消されたようなのですが、

今度は「Error 2: layers[0]は未定義です」とのエラーが出てきてしまいました。。

layers[0]を定義するための構文が必要になるのですかね。。><

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Dec 04, 2023 Dec 04, 2023

添付忘れてしまいました。

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 04, 2023 Dec 04, 2023

すごい失礼しました

document.layers[0]以下略 ですね…

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Dec 04, 2023 Dec 04, 2023
最新

ajabon grinsmith様

 

お返事ありがとうございます。

すごい!!やりたかったことができました!!

これで、今後かなりの時短になります。

 

何度もご丁寧に教えていただきありがとうございました。

著作権の件に関しても、教えていただき恐縮です。

誠に感謝いたします!!

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines