UXP Scripting(UXPスクリプト)がやってくる!

前のエントリの続き? になります。

InDesignのバージョン18から新たなスクリプト環境(UXP Scripting)が導入される予定です(直前になってキャンセルされる可能性が全くないわけではないので)。これはもうすでにプレリリース版(いわゆるベータ版)では実装されており、プレリリースに参加している人は試すことができます。

ということで私も、一昨日の「DTPerのスクリプトもくもく会 #30 - オンライン」に参加した中で、UXPスクリプトを色々触ってみました。


その前にUXPスクリプトとは何ぞや? という人がいると思うので私の理解はこうですというのを(間違っているところがあればご指摘ください)。

まずUXP(Unified Extensibility Platform)というのがありまして、これはAdobeで用意したJavaScriptでの開発基盤です。中身はというと、オープンソースのJavaScript実行環境であるV8エンジン(Googleが開発)に、ファイルシステムやクリップボードへのアクセスなどの機能を追加したものになります。詳しくはこちら。

UXPは2018年にAdobe XD、2020年にPhotoshopでの対応が開始され、開発者はこの機能を利用したプラグイン(UXP Plugin)を作れるようになりました。Photoshopでは2022(バージョン23)で、それまでのCEPエクステンションを廃止し、UXPプラグインに移行しました。

そして先月、Photoshopバージョン23.5でUXP Scriptingが使えるようになったと発表されたわけです。タイトルには含まれていませんがInDesignにもちょっとだけ触れられています。

アプリケーションとUXPの対応状況はこちらになります。

アプリケーション UXP Plugin UXP Scripting
Adobe XD 〇(2018年) ×
Photoshop 〇(2020年) 〇(2022年)
InDesign × △(2022年)
Illustrator × ×

UXP PluginとUXP Scriptingの違いです。

  UXP Plugin UXP Scripting
実行方法 メニューに追加される ファイルを選んで実行
インターフェイス パネルUI(ウィンドウ)が必須 基本的に表示するものはない
ファイル構成 manifest.jsonなど複数ファイル 1ファイル(今のところ)
置き換え対象(予想) CEP Extention ExtendScript

ということで、UXP ScriptingはExtendScriptを置き換える存在になると思われます。UXP ScriptingとExtendScriptの違いについては先のリンクのところで「UXP vs. ExtendScript (and ScriptUI)」という項目があるのでそちらを翻訳してください。


さて少し触ってみて、またいろいろな情報を集めてみての感想です。

ExtendScriptからUXP Scriptingへの移植

これはそれほど難しくなさそうです。Photoshopの場合、Photoshop APIを整備するのにかなり時間がかかっていましたが、InDesignではAPIを整備した形跡が見られません。つまり従来のScripting DOMをそのまま利用しているっぽいです。そのため、InDesign部分に関しては大きな変更はなく、ExtendScriptでの財産がまるっきり無駄になるということはなさそうです。ただ修正は必ず発生します。一括置換で済まないのでちょっと面倒です。

ExtendScriptは廃止されるのか

最終的にはそうでしょう。ただそれはかなり先のことになると思います。InDesignではまだExtendScriptで可能なことでUXP Scriptingでは対応していない部分があります。

最大の問題はIllustratorへの対応でしょうね。まだ全然手付かずで、APIを整備しようとするとPhotoshop以上に時間がかかることが想定されます。ExtendScript終了への道のりはまだまだ長そうです。


そういったことで、急いで何かをしなければならないといったことはないのですが、そこで困ったのが私です。「InDesign JavaScript教室」の名前を変えなくちゃなりません。今までJavaScript ≒ ExtendScriptだったから問題なかったんですが、これからはExtendScriptとUXP Scriptingのどっち? になります。どうしたものかな。

また、『イチからわかる! InDesign JavaScript 指南書』はタイトル・構成も含めて全面的に見直しになります。6月にExtendScript Debugger 2.0に対応するため大幅に書き直したんですが、その改訂版を出そうという矢先に発表されましたからね。あまりにもタイミングが悪いのでホントに困ったな。