スクリプト入門1

Illustrator スクリプト入門 01(はじめの一歩編)

グラフィックツールとして有名な Adobe 製品。PhotoshopやIllustrator、InDesignなど、多種多様なアプリケーションあります。
これらの Adobe 製品に、メーカーや有志が配布されているプラグインやエクステンションというものをインストールすることで、ユーザーが自由に機能を追加することができます。
ただ、こういう機能が欲しいなあ。とか、ここをこう処理したいんだよなあ。と思っても、プラグインやエクステンションを自分でゼロから作るのは難しいですよね。

でも大丈夫。プラグインやエクステンション以外にも、Adobe 製品には「スクリプト」という便利な機能があります。
スクリプトというのは、JavaScript や AppleScript、VB Script という言語を使って、アプリケーションに操作を命令・実行する機能です。まあ、何言ってるかわかんないですよね。

ということで、今回から、プラグインやエクステンションよりも気軽に作れる「スクリプト」という機能について、Illustrator をベースに、カジュアルに書いていきます。
スクリプトっていうものが想像できない場合は、ぼくらが配布している http://3fl.jp/d/is をダウンロードしていただき、動かしてみてください。
なんとなく、どんなものなのか想像できましたか?

ちなみに、ターゲット層は「グラフィックツールしか使わないような人向け」です。
スクリプトとかわかんねーよー。プログラミングみたいで難しいよー。と思ってしまう人に読んでいただけるように、厳密な表現や、本来の意味などをガン無視して超適当に書いていきます。
先に言っておきますが、ぼくはそんなにスクリプトに詳しいわけではありませんし、どちらかというとまだまだ初心者だと思います。
もともとぼくはスクリプトやプログラムにアレルギー反応を示すくらいのグラフィック野郎でした。そんなやつが書いてることなので、細かいことは気にしないでください。


とりあえず自分でスクリプトを動かしてみよう!

スクリプトを用意する

まず、Illustrator を起動しておきましょう。
次に、お好きなテキストエディタを起動して新規ファイルを作成しましょう。その新規ファイルに

alert("アッーー!");

と書いてください。
その新規ファイルの拡張子を .jsx にして保存しましょう。とりあえず今回は test.jsx というファイル名にておきましょうか。

スクリプトを手っ取り早く実行する

先ほど作成した test.jsx を ファイルブラウザで選択し、Illustrator アプリケーション(またはアプリケーションアイコン)にドラッグ&ドロップしてみてください。

アッーー!

というアラートダイアログが表示されれましたよね?
表示されればオッケーです。

これで、スクリプトを自分で作って実行できました!わーすごい!

※まっとうな方法で実行したい場合はここを読んでね。
http://3fl.jp/d/is-howto-notice


とりあえず何か操作できるスクリプトを作ってみよう!

次に、選択した複数アイテムの数をしらべてみましょう。

テキストエディタで新たに check_count.jsx というスクリプトファイルを作りましょう。
そして、スクリプトファイルの1行目に

var doc = app.activeDocument;

と書いてください。

var doc 部分は 箱みたいなもの
var は、次の名前 doc で箱を作りますよ〜といった意味です。doc の部分には好きな名前をつけることができます。
appIllustrator アプリケーションのことです。
その後ろの .activeDocument現在アクティブになっているドキュメント を意味します。

雰囲気で雑な説明をすると、

Illustrator で、現在アクティブになっているドキュメントを、doc という箱に入れておく。

といった感覚です。

次に、スクリプトファイルの2行目に

var sels = doc.selection;

と書いてください。

var sels という箱を用意し、その箱の中に doc.selection を入れます。
doc は先ほど作った Illustratorで現在アクティブになっているドキュメント の箱です。
selection は、現在選択されているアイテム群 を意味します。
今回も雰囲気で雑な説明をすると、

Illustrator で現在アクティブになっているドキュメントで 選択されているアイテム群 を selsという箱 に入れておく。

といった感覚です。

これで、現在開いているドキュメントと、そのドキュメント内で選択しているアイテム群を箱に詰めることができました。

次に、その選択しているアイテム群の数を数えてみます。
スクリプトファイルの3行目に

var count = sels.length;

と書いてください。

count という箱に sels (選択されているアイテム群)の .length を入れることになります。
.length は箱の中身の総数を数えてくれます。
count という箱に、選択されているアイテム群の数の 数字 が入ります。
これで、

Illustrator で現在アクティブになっているドキュメントで選択されているアイテム群の数を 数字 で countという箱 に入れておく。

ということができました。

これで最後です。
先ほど count という箱に突っ込んだ数字を実際に表示します。
スクリプトファイルの4行目に

alert(count);

と書いてください。
alert(); は カッコの中身の情報をメッセージダイアログで表示してくれる 機能です。

最終的に、以下のようになりましたよね。

var doc = app.activeDocument;
var sels = doc.selection;
var count = sels.length;
alert(count);

そしたらスクリプトファイル check_count.jsx を保存します。


それでは、check_count.jsx を実行するための Illustrator ファイルを用意しましょう。
既存でも新規でも構わないので、ドキュメントを開きます。そしてドキュメントに四角でも丸でもテキストでもなんでもいいのでアイテムを作成してください。そしてそのアイテム群を選択します。

アイテム群を選択した状態で、先ほど保存したスクリプトファイル check_count.jsx を実行してみましょう。
実行する方法は先に書いた方法でやってみてください。
選択したアイテムの数メッセージダイアログで表示されましたか?

できたら完璧!すごい!

なんかエラーでちゃったら、書き方か手順が間違ってるはずです。スペースの入れ忘れはありませんか?どこか全角の記号を使ってしまっていませんか?
最初から読み直して、間違ったところがないかチェックしてみましょう。


以上、Illustrator スクリプト入門 01(はじめの一歩編)でした。
スクリプトをいじる第一歩のキッカケになればうれしいです。

続く(たぶん)

喫茶店作業のコーヒー代として使わせていただきます!