Adobe Illustrator 用のスクリプトを作ろうとした
社内のデザイナが使用していた Illustrator 用のスクリプトに少し機能を追加してほしいとのことで、(あまり頼まれてないけど)おもしろそうなので検索してみました。 が、情報が少ない…
デザイナが使用していたスクリプトは Quick-exporter というもので、 iOS や Android アプリ向けの書き出し作業が格段に楽になる素晴らしいスクリプトです。ソースコードは GitHub で管理されているようです。
これまで Photochop や Illustrator でこのようなスクリプトを利用できることは知っていましたが、実際に中身を見たのは初めてです。
中を見てみると、どうやら JavaScript みたいです。しかも拡張子が jsx (!)
まさか React か!?なんて思いましたが(思ってない)、そんなことはもちろんなく、 XML が埋め込めるというただそれだけの普通の JSX でした。
見た限り、 View が XML で記述されている様子もなく、 Java の Swing や他の多くの GUI フレームワークと同じように、コードで View を記述するような感じに見えました。
palette = new Window("palette", "Quick exporter"); var pnlMain = palette.add("group { orientation: 'column', alignment :'left', alignChildren :'right'}"); var grExtension = pnlMain.add("group"); var rbtnPNG24 = grExtension.add("radiobutton", undefined, "PNG24"); var rbtnPNG8 = grExtension.add("radiobutton", undefined, "PNG8"); // さらに続く..
View がどのように作られているのかわかったので、リファレンスで Window
とその引数である palette
、またはパーツの名前だと思われる group
や radiobutton
について調べよう、と思ったのですが…
全然情報が出てきません。
Adobe Forums にもこんな質問やこんな質問が立てられていますが、結局公式リファレンスのしっかりとしたものはなさそうでした。
公式のページ が一応あるのですが、 Scripting Guide も JavaScript Reference も PDF です…
いやそれは最悪いいとして、 Scripting Guide にも JavaScript Reference にも、 Window
も patelle
も alert()
もどこにもない!
その後結構調べましたが、公式でちゃんとしたドキュメントを見つけることはできませんでした。
また、スクリプトは Extendscript Toolkit を使用して作ると作りやすいらしいのですが、 macOS 10.11.5 以前しか対応していない1とのことでした..
と諦め掛けていたのですが、 Window
や dialog
のことを ScriptUI
と呼ぶことを知り、それで検索していると以下のサイトを見つけました。
ScriptUI for dummies | Peter Kahrel
このページの下部にある、 click here
リンクをたどると、非公式ですが ScriptUI の Guide があります 👏
Window
や palette
が具体的なコード例と一緒に説明されています。他にも edittext
や button
などの Control 要素についても説明がされています。
ということで、まだ Quick-exporter のコードに手を加えて View を少しいじった程度のことしかできていませんが、もう少しいじってみようかと思います。
余談
会社の Illustrator CC 2018 で alert()
をすると Illustrator がフリーズするんですが、環境のせいでしょうか…?