プログラミング未経験者でも、AIを活用すればインデザインスクリプトを作れるか?

DTP

インデザインを使った日々の仕事で、自動化したいけれどスクリプト開発担当者の手を煩わせるほどでもない軽いものは、AIを利用し自分で作ることができないだろうか?と思いChatGPTで試してみました。

※CC2025環境もありますが、慣れ親しんだMacOSカタリナ・CC2022で実践しました。

テスト1:選択オブジェクトを数えるスクリプト

まず最初に、インデザインで選択したオブジェクトの数を数えるスクリプトを頼んだところ、さくっと書き出してくれました。

 

書いてもらったプログラムをスクリプトエディタにペーストし、再生ボタンを押すだけです。
保存して繰り返し使うことができます。
簡単ですね。私のような者が申し訳ない気になってきます。
まるで『2001年宇宙の旅』のモノリスと類人猿です。

簡素なプロンプトということもあってか一発で作ってくれました。
以前、複雑な構造のデータだが、正確な作業をしていたらオブジェクトの数が特定できるというものがあったのですが、インデザインではオブジェクトを数える機能がないようでした。
イラストレーターにはあるんですけどね。

テスト2:選択オブジェクトの位置を入れ替えるスクリプト

続いて、二つのオブジェクトの位置を入れ替えるスクリプトをお願いしてみました。
今回も軽やかに回答を提示してくれました。すごいです。

早速実行してみたところエラーが出ました。
エラー文をコピーしてChatGPTに対処法を尋ねると、再度スクリプトを生成してくれます。

 

その後、選択したオブジェクトのサイズが変わってしまうというトラブルを経て

 

修正し、より実作業に近いデータで再度確認をしたところ、
フレームの中に配置されたオブジェクトがついてこない…。最初のフレームの中身の位置のままでした。

 

この問題について何往復か問答を繰り返しましたが、なかなか目的地に到達できません。

白矢印でまとめて選択しても、移動時に中身がついてこないのと何か関係があるんですかね?

 

ちょっと挑発してみたところ、あっさりと白旗を揚げられてしまいました。
以前は負けん気剥き出しで喰らいついてきたような印象でしたが…。

 

それではブログ用の記事を作れないので非常にまずいです。
私も少し考えないとならないようです。
どうも座標から制御することに固執しているような気がしたので、移動させるという観点から書いてもらえないかと考え聞いてみたところ…

 

やっと完成させることができました。
お礼は欠かさずに。

 

プログラミング能力がなくても、自然言語のやり取りだけで簡単なスクリプトが作れてしまいました。
以前ChatGPTに聞いた時は、インデザインはそれほど詳しくないと言われたのですがその進化に驚きます。

 

テスト3:ガイド・レイヤーロック・隠すを制御するスクリプト

ここで個人的にちょっと欲しかった、ガイドを全削除するスクリプトを作ってみたいと思います。
古くから受け継がれ、用途が謎のガイドが何本も引かれているデータを受け取って、全てを消してしまいたくなることがたまにありませんか?

 

先ほどのぐだぐだ具合が嘘のように、特に問題なく一発で完成しました!
注文通り複数ファイルの処理も一括でできました。

 

複数スプレッドがあっても全部削除してくれていました。すばらしいです。

 

プログラム文を読んでみたところ、レイヤーのロック解除無しでもできそうな気がしたので聞いてみたところ可能なようでした。
レイヤーロックの初期状態を維持できるものも一発で作ってくれました。
ちなみにインデザインの人力操作だと、ガイドはスプレッド単位での削除となりますが、スクリプトのコマンドでしたら一括でできるようです。

 

あまりに簡単にできたのでレイヤーの全ロック・全解除・維持、ガイドの消去をする・しないをまとめて選択できるようにしたものを作ってみようと思います。
さらに「隠す」機能の全解除も追加してみましょう。
つい最近、レイアウトが複雑に入り組んで隠す機能を多用しないと厳しい場面があり、「全てを表示」コマンドはスプレッド単位のため、ちょっと面倒だなあと思ったことがありました。

「隠す」機能は、自分の予想外のものが隠されている可能性もあり、少々注意が必要です。
以前、いろいろな人が出入りしてインデザインデータを触る環境で仕事をしたことがありましたが、削除がわりに「隠す」を使っていた人のデータに潜んでいた不要なオブジェクトを表示させてしまい、危うく大事故を起こすところでした。
いつもは自分しか触っていないデータでさえ、触る前に「スプレッド上の全てを表示」がグレーアウトしていることを確認するようにしていたのですが…。
プリフライトに「非表示のページアイテム」として、隠れたオブジェクトをチェックする項目もありますね。

 

とりあえず適当にこんな感じの実験ファイルを用意いたしました。

 

数回のエラーを経て無事完成させることができました。
「二つのオブジェクト位置入れ替え」と比べると、だいぶ簡単にできました。
改良したいところもありますが一旦完成とします。

まったくインデザインスクリプトに関する知識がありませんでしたが、簡単なものをいくつか作ることができてしまいました。
今回はChatGPTを使用しましたが、次々と開発企業が登場し、生成AIはますます進化を続けています。
引き続き注視してゆく必要がありそうです。