Adobe製品についてくるExtendScriptToolKit(ESTK)でもいいっちゃいいけど、開発は止まってしまった。CreativeCloudアプリからもダウンロードしくいように隠されちゃった。ちゃんとやりたい人はAdobe公式が推奨する方法に合わせて行くべき。無論ESTKがいいならそれでもいいが。
その公式推奨というのが「Visual Studio Code」(通称:VSCode)というマイクロソフトが出してる無料のスクリプトエディター。これを使用する。もちろんAdobe製のソフトじゃないのでそのままではAdobeソフト用のスクリプト開発としてはやりにくい。そこで、Adobe公式が出しているVSCode用のエクステンション(拡張機能)「ExtendScript Debugger」をインストールする。
VSCodeはスクリプトエディターとしてコーディング中に便利な機能が多い。オープンソースなのもあり、いろんな 人が出してる拡張機能をインストールすることでカスタマイズも超できる。Google chromeの拡張機能と同じイメージをしてもらえれば。
VSCode自体の使い方や、便利な拡張機能はいろんなページで紹介されているのでググってほしい。
こちらの公式サイトからVisual Studio Codeをダウンロード、インストールする。説明しなくても出来る。
UIを日本語化したいときは、エクステンションをインストールする。
同様にエクステンションのマーケットプレイスにExtendSctipt Debuggerがあるのでインストールする。書いたスクリプトをAdobeソフトで実行するためのもの。
VSCode内で表示される説明は以下のページでも見れる。ウェブページ上で見たほうが日本語化がしやすいかと思う。
これは必須ではない、が、やっておけばスクリプト作成がかなり楽になる。
スクリプトを書いてる途中で日本語変換の様に候補を出してくれたり、次に入力出来る候補を教えてくれたりする機能がある。IntelliSense(インテリセンス)とか自動補完とか言う。VSCodeにはそんな機能がついては、いる。けれど最初から出来るのは、一般的なjavascriptで使用されるコマンドだけ。
Adobeソフトで使えるオブジェクトやプロパティ、メソッドの構造をVSCodeが知っているハズがない。なので、それを教えてあげることで補完が効くようにできる。
手順は以下のページを参照。
Visual Studio Code for Adobe ExtendScript - Code and Motion
youtube動画が貼ってあるのでそれ見ながらやればだいたい分かる。ただ、動画だと、JavascriptじゃなくてTypeScriptで書く前提で話が進んでいるっぽい。(ほぼ同じようなもんだが、わからない人は調べてくれ...)
TypeScriptで書く派はそのまま真似すれば大丈夫と思うけど、Javascriptで書いてる人はそのままじゃ多分無理。なので後者派に向けて、要点だけ説明する。
VSCodeで「ワークスペース」を作成しておく。必須ではないが、あったほうが便利。
例えばAfterEffects用、Photoshop用、GoogleAppsScript用とかで別々のワークスペースを作成しとく。ワークスペース毎に設定を変えたり、ルートフォルダ(基準のフォルダ)を設定したりできる。
これから、自動補完できるようにAfterEffects用の型定義を設定していくが、それって、PhotoshopやGASのスクリプト開発中には不必要、むしろ邪魔になってしまう。作りたいものに適した設定をそれぞれに適用できるようにワークスペースを作っておいたほうがよい。正直説明出来るほど理解してないが、多分そういう理由。
ちなみに、ワークスペースの設定ファイルには開いているタブ情報も含まれるので、AEスクリプトを作っていて、GASのワークスペースに切り替えたとき、前回GASの作業をしていたときに開いていた状態が復元される。そこからAEのワークスペース戻したときも然り。
・初めてVSCode入れた人
初めてインストールした人なら多分「ようこそ」画面が出てくると思うが、そこの「ワークスペースフォルダーを追加」からAfterEffects用のワークスペースを作成しちゃお!今後、スクリプトを作成していく時にいつもここで作業する、っていう場所を決めてしまう。
フォルダ選択ダイアログが出るので選択する。左側のエクスプローラタブの中にフォルダが読み込まれた状態になる。しかしまだワークスペース自体は保存されていない。[ファイル] > [名前を付けてワークスペースを保存] で保存する。
・既にVSCode入れてた人
ワークスペース設定してたらそれでいいし、してなかった場合は、[ファイル] > [名前を付けてワークスペースを保存] で保存する。
後で入手する型定義のファイルを入れるためのフォルダを用意しておく。普通にWindowsのエクスプローラから作ってもいいし、右図のようにVSCodeのエクスプローラーからでもいい。別に無くても大丈夫だけれど、固めて置いてるほうが整理しやすいでしょ。
フォルダの名前はなんでも。動画に従って「types」でもいいし「型定義ファイル」でもいいし。
ちょっとこれ自信ないけど、VSCodeはワークスペース内のファイルを全部見て、型定義のファイル(*.d.ts)ファイルを読み込んでる?ファイル名やフォルダの場所変えても動作したのでそう思っている。真実は知らない。教えてほしい。
以下の場所から型定義ファイルをダウンロードする。
これは公式じゃなくて、pravdomilさん(?)が自分で作って配布してくれているもの。公式のは無い。
「pravdomil!天才だぜ!ありがたや~🙏」の気持ちを忘れずに使わせてもらう。右の画像を参照して、ZIPでダウンロードする。
2018までしか更新されていないので、最新のものが必要な場合は自作するか、神に期待する。
まぁ最新バージョンで追加された機能以外は反応するはずなのでさほど問題ない。
入手したZIPを解凍して、必要なファイルだけ抜き取る。中に入っているのは以下の感じ。
shared
すべてのアプリケーションで共通で使用されるもの
AfterEffects、Photoshopなど
各アプリケーション専用のもの
他のはとりあえず気にしなくて良い。sharedと任意のアプリケーションのフォルダをコピーして先に作っておいたフォルダの中に入れる。
これで型定義は用意できたが、まだこれでは有効にならない。あとワンステップ必要。
ワークスペースのルート(直下)にjsconfig.jsonというファイルを作成する。VSCodeでjavascriptを書く時に使用される設定ファイル。言語毎に設定ファイルがある。javascript用のconfig(設定)ファイルなのでjsconfigということ。詳細は公式のレファレンスを参照してほしい。
jsconfig.json Reference - VSCode公式のjsconfig.jsonのリファレンスページ
jsconfig.jsonの中身を書けばいろいろ設定でき、る、けど、まだよくわからん。
Visual Studio Code for Adobe ExtendScript - Code and Motion
のError Reportingの項でも「これコピペすればいいよ~」て書いてあるんだけど、各項目の意味がいまいちわからん。
でもいろいろ試してたら、jsconfig.jsonというファイルが存在さえすれば、中身が空っぽでもいいみたい?違ってたらごめんなさい。
設定項目もはっきり理解できてないけど、作りたいのはウェブページで使うjavascriptじゃなくて、Adobeソフト上で動かすものなので、なんか別にいいのかな~と思って逃げる。
VSCodeの新しいファイルを作成するアイコンをクリックして、ファイル名を「jsconfig.json」とすればよい。もしワークスペース内のフォルダやファイルを選択しているとそのフォルダ内に作成されてしまうので注意。
これで一応環境は整った、かな。何か忘れてたらごめんなさい。
VSCodeにはプログラムを書きていく上でもっと普遍的に便利なものも沢山あるので、自分の使いやすいようにカスタマイズしていく。少しググれば、「VSCodeのエクステンション、これだけは入れておけ」みたいなページがいくつもあるので参考にしてみては。
デバッグの仕方はまた別のページで...(いつか)