Adobe::イラレのレイヤーをバラバラに保存
#2025/6/13
★2025/06/13現在,複数のアートボードを持つ場合に,思ったように保存してくれない……要改造……
 Illustratorの標準機能だと,レイヤーはひとつずつOn/Offしての保存しかできず.スクリプト(ExtendScript)で実行する必要があるらしい.調べたらやはりニーズがあるんだろう.あった.
参照:【図解】イラストレーターでレイヤーごとにまとめて書き出す方法【Adobe illustrator】
【Illustrator】たった5分で簡単!イラストレーターを使って、レイヤーごとに1枚ずつPNGで書き出す方法 | SUZUSIKIKATA
 この記事からいただいたスクリプトを最後に再掲させていただく.
 実行方法は以下の通り.
1. 対象のイラレファイルを開く
2. メニューで,ファイル >スクリプト >その他のスクリプト
https://gyazo.com/e7504ad6905fd8f596b9a05a0738c7c0
3. 作成したスクリプトを選択
4. ガガガっと保存してくれる
 注意点としては,イラレのレイヤーはサブレイヤーを入れ子にできるが,このスクリプトではトッププレイヤーを書き出すだけ,ということだ.複雑なレイヤーを全部書き出すと膨大な量のファイルができてしまうので,これで必要かつ十分かもしれない.
※ちなみに,アドビのヘルプサイトによれば「Illustrator では複数のスクリプト環境がサポートされています(Microsoft Visual Basic、AppleScript、JavaScript、ExtendScript など)。」とある..jsx 拡張子はExtendScriptのこと.
※また,外部のスクリプトを都度呼び出すのではなく,イラレのスクリプトフォルダに放り込めば,スクリプトメニューに表示されるようになる.「スクリプトフォルダ」ってどこだって話.それは……
(Win) C:\Program Files\Adobe\Adobe Illustrator 2025\Presets\ja_JP\スクリプト\
(Mac) アプリケーション/Adobe Illustrator CC 2019/Presets/ja_JP/スクリプト
code:SaveLayer2PNG.jsx
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.layersi;
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 (collectioni);
}
}
以上.
#script #javascript #adobe