Illustrator で最上位レイヤーを個別に PNG に出力するスクリプト

 唐突に本題からはじめてしまいますが、Adobe の Illustrator(CC 2015)で、「ファイル」メニューの「Web 用に保存...」から PNG で保存しようとすると、2回目以降に高確率でアプリケーションがクラッシュしてしまうという謎現象に取り憑かれてしまいました。

 以前から度々、同様の現象に出くわしてはいたのですが、2回で必ず落ちるようになってしまっては、さすがに使い物になりません。

 マシンを再起動しても解消しないし、コリャどうしたモンかなぁ、と困っておりましたところ、ハタと思い付きました。

 もしかして、自分でスクリプト書いて出力すれば大丈夫なんじゃね?

 果たせるかな、その思い付きは正解でした。

 スクリプトで出力したら、運良くクラッシュしなかったのです。

 ということで、ついでに多少の利便性を考慮して、最上位レイヤーを個別に PNG としてエクスポートするスクリプトにでっち上げましたので、いちおう公開しておきます。

 例によって GitHub です。

 まぁ、探せばもっと良いスクリプトがいくらでも見つかると思うのですが、自分の目的にぴったりのを探す方が面倒臭かったので、作っちゃいました。すみません。

 大したモノではありませんが、もしどなたかのお役に立ちましたら。

スポンサーリンク

読み込み中です。少々お待ち下さい

GitHub リポジトリ

 GitHub リポジトリは、以下になります。

 相変わらず、我ながらスゴい名前。

 発音は「えくすぴんぐれいやー」でしょうか(質問)

 伝説の武器みたいでカッコいいですね。

 あ、いや、ウソです、冗談です、ごめんなさい。

 ていうか、このくだり自体が、どうでもいいですね。

 設定画面は、こんな感じです。

alt text

 後は GitHub の方をご覧いただけば良いのですが、いちおう、この記事にも説明を書いておきます。

動作環境

 確認したのは、Adobe Illustrator CC 2015 ですが、2014 や後期の CSx でも、特に問題無く動作すると思います。

インストール

「ファイル」メニューの「スクリプト」に追加する場合は、プリセットフォルダにインストールするのがお手軽です。

  1. プリセットの「スクリプト」フォルダに「レイヤー毎に PNG として保存(&L).jsx」をコピーします。

    • Windows の場合
      C:\Program Files\Adobe\Adobe Illustrator CC 2015\Presets\ja_JP\スクリプト
    • Mac の場合
      /Applications/Adobe Illustrator CC 2015/Presets.localized/ja_JP/スクリプト/
  2. (Windows 環境で上手くメニューに追加されない場合は、管理者モードでテキストエディタを起ち上げて、そちらから保存する等してみてください)

  3. Illustrator を再起動します。

 もちろん、「ファイル」メニューの「スクリプト」>「その他のスクリプト」から、直接実行しても構いません。

使い方

  1. 「ファイル」メニューの「スクリプト」>「レイヤー毎に PNG として保存」を選択します。

  2. オプションを設定して、「生成」ボタンを押下します。

    alt text

補足

  • スクリプトのファイル名に「(&L)」のようにメニューキーを含めておくと、Windows 環境であれば 「ALT→F→R→L」の順番にキーを押すことでも、スクリプトを実行できます。
  • (ショートカットキーを割り当てられないが故の苦肉の策です。Mac では ScriptKeyAi 等をどうぞ)

  • 保存先のデフォルトは、処理対象ドキュメントが保存されているフォルダです。

  • ファイル名にはレイヤー名がそのまま使われますので、同名のレイヤー名は避けてください。

  • レイヤーのロック/アンロックで、出力する/しないを簡単に指定できます。

    例えば、以下のような場合は、「text」と「base」はロックされているので出力されず、「pageN」は順番に出力されます。

    alt text

    (但し、「ロックされたレイヤーを含める」をオンにすると、常に全ての最上位レイヤーを出力します)

  • 出力後は、レイヤーの表示/非表示は元の状態に戻ります。

  • 「アートボードサイズでクリップ」がオンの場合は、アクティブなアートボードのみが出力対象となります。アートボードが複数存在する場合は、ご注意ください。

  • 2015/11/09 追記:

  • オプションにマットを追加しました。

  • 「ロックされたレイヤーを含める」がオフの場合は、ロックされたレイヤーの表示/非表示を切り替えないように変更しました。
    これにより、表示されているロックされたレイヤーを、背景(または前景)として出力することが可能です。
    ロックされたレイヤーを出力に含めたくない場合は、予め非表示にしておいてください。

おまけ

現在の表示を PNG として保存(&P).jsx」は、現在表示されているアクティブなアートボードを そのまま出力するだけの、お手軽なおまけスクリプトです。

 ウチと同じように「Web 用に保存...」しようとすると、ほぼ毎回クラッシュしてしまうという場合は、もしかしたら役に立つかも知れません。

おわりに

 Illustrator を使っていると、クセが強くて異常に多い機能の使い方をいちいち覚えるくらいなら、プログラム組んじゃった方が早いんじゃないの、と思うことって良くありますよね。

 まぁ、コードを書くには Adobe のドキュメントは物凄く見辛いので、気が向いた時しかやる気にならないのが難ですが。

 でも、いざという時に JavaScript のような簡単な言語で処理が記述できるのは、今回のように回避策として使えたりもするので、なんだかんだで便利だと思います。

追記:よく考えたら、JPEG や PNG8 でも出力できるようにしておいた方が良かったですかねー。まぁ、でも、画像加工は Photoshop の方でやるのが筋な気もするので、別にいいのかなぁ。もし必要に迫られたら更新するかも知れません。

 あ、でも、そしたら名前が変わっちゃう(笑)

この記事をシェア
  • このエントリーをはてなブックマークに追加
  • Share on Google+
  • この記事についてツイート
  • この記事を Facebook でシェア