UIのグラフィックデザインにはInkscapeを愛用してきましたが、徐々にIllustrator CCへ移行しようと計画中です。今回は、Illustratorのスクリプトの「Getting started」的な内容について調べたのでまとめておきます。
Illustratorでは3種類のスクリプト言語が提供されていて、それぞれ動作するOSが異なります。
自分はJavaScriptを選ぶことにします。 使い慣れてますし、どちらのOSでも動きますからね 😉
Creative Cloudには、スクリプトを作成するための開発環境「ExtendScript Toolkit」がついてきます。 メニューからダウンロードしておきましょう。
補完機能のついたエディタや、デバッグ時のコンソールなど、しょぼい必要最低限の機能がついています。
自分はVimかEmacsキーバインドがないと使えない呪いをかけられてしまったので、デバッグのときだけお世話になることにします。
どんな機能が使えるの?どうやって使うの? まずは公式サイトを探します。
この中から関連しそうなドキュメントを漁ってみました。 以下の3つを読めば十分でしょう。
まず、開発環境であるExtendScript Toolkitを起動しましょう。 Applicationsフォルダに入っているので、がんばって探してください。
ポチッと。
これがExtendScript Toolkitです。 今回はIllustrator用のスクリプトをつくるので、左上のコンボボックスから「Adobe Illustrator CC」を選択しておきましょう。
この作業を忘れると、Illustratorの情報にアクセスできず、小一時間悩むことになるのでご注意ください。
では、実際に動作させてみます。 ブラウザのJavaScriptと同様にalert関数が使えるので、へろーわーるど的なスクリプトを作ってみましょう。
alert('ALL YOUR BASE ARE BELONG TO US.');
書き終わって実行ボタンを押すと…。
よっし、ちゃんと動いた。
せっかくなので、Illustratorの情報にアクセスしてみましょう。 Scripting Referenceの「Application」の項に、利用できるアプリケーションの情報が載っています。
The Adobe® Illustrator® application object, referenced using the pre-defined global app object, which contains all other Illustrator objects.
ふむ。グローバル変数「app」から、いろいろ取得できるようです。 Illustratorで適当なドキュメントを開いてから、「activeDocument」を取得してみましょう。
alert(app.activeDocument);
それらしき値が入っていそうですね。 メッセージからドキュメントの匂いがします。
もう少し探検してみましょう。 リファレンスによると、activeDocumentの型は「Document」なので、Documentの項を参照し、…そうですね、名前でも取得してみましょうか。
var document = app.activeDocument;
alert(document.name);
カンペキ。
このように、ApplicationからDocument、DocumentからLayer、LayerからPageItem、…と階層を辿っていくことで、目的の情報にアクセスすることができます。
さて、毎回ExtendScript Toolkitから実行するのもアレなので、Illustratorから実行できるようにしましょう。 作成したスクリプトに「〜.jsx」と名前をつけて、どこかに保存します。
保存し終わったらIllustratorを開き、メニューの「ファイル>スクリプト>その他のスクリプト」で、先ほどのファイルを指定すれば一丁上がりです。
メニューに登録して、直接起動することもできます。 「/Applications/Adobe Illustrator CC/Preset.localized/ja_JP/スクリプト」にスクリプトを入れてIllustratorを再起動すれば、メニューに組み込まれます。
以上です。 ステキなIllustratorスクリプトライフをお楽しみください!