【解決】Keyboard MaestroのIllustratorスクリプト実行を簡単にしたい!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
Keyboard MaestroでIllustratorスクリプト アイキャッチ図版

Keyboard MaestroでのIllustratorスクリプト実行を解説した記事としては,三階ラボさんの記事が有名です。私もお世話になりました。
3flab inc. | Keyboard Maestro で Illustrator のスクリプトをサクっと実行

記事の要点は,スクリプトのjsxファイルをIllustratorで開くように設定すると,呼び出したとき実行できるということです。シンプルでわかりやすいですね。

ところが慣れてくると,次の項目が気になってきました。

  • スクリプトを開くIllustratorのバージョンが固定されているので,別のバージョンを併用するときどうすればいいのかよくわからない
  • バージョンが増えるたびにいちいち全バージョン登録するのは面倒くさい
  • JavaScript(ExtendScript)のみ対応で,AppleScriptやJXAはそれぞれ別の方法を用意しなければいけない

一方スクリプト起動アプリとして有名なSPAiでは,ExtendScript/AppleScript/JXA の違いを気にすることなく実行できます。あまり気にしていないかもしれませんが,Illustratorのバージョンについても管理してくれています。

具体的には,スクリプトの種類によって

  • 目の前に出ているバージョンで実行する
  • 複数バージョン起動中は実行を中止する

といった判断をしています。Keyboard Maestroでもこういうのをやってほしいですね。

そこで今回はKeyboard MaestroにSPAi風スクリプト起動ヘルパーを組み合わせ,適切な方法やバージョンでスクリプトを実行してもらう方法を紹介します。

下準備

ちょっと最初のセッティングが面倒なのですが,最初だけなので頑張ってついてきてくださいね。

では,こちらのファイルをダウンロードしてください。

Yatakagami.scptというAppleScriptが,スクリプト起動ヘルパー本体です。まずはこのファイルを,そう簡単に移動・改名しない場所に置いてください。この次に説明するKeyboard Maestroマクロでこの場所のパス文字列を使います。

[sttk3] Function.kmmacrosというのがKeyboard Maestroマクロです。ダブルクリックするなどして開くとインストールされますので,そうしてください。

中には2つのマクロが入っています。そのうちexecute_script(exec_path, exec_args)のほうには,Yatakagami.scptのパスを入力する必要があります。
osascript という文字の隣にある””の間に,Yatakagami.scptのファイルをドロップしてください。パスが入ります。

下準備:Yatakagamiのパスを入力 の図版

このマクロは他のマクロから呼び出すためだけに存在します。なぜそういう作りかたをするかと言うと,あとでパスなどを変更したくなったとき,ここだけ直せば済むからです。コピーしてしまうとコピーした分全部変えなければいけないですよね。

さて下準備の最後は,Keyboard MaestroでIllustratorのみで有効なマクログループを作ることです。実はこのYatakagami.scpt,PhotoshopとInDesignでもスクリプトが呼び出せます。なのでIllustratorで使う場合は,目の前のアプリがIllustratorのときだけ反応するようにしておくのが便利です。

マクログループを作って選択し,Avilable in these applicationsの中に使いたいIllustratorバージョンを全部追加してください。PhotoshopやInDesignの場合でもやることは同じです。そのアプリの全バージョンを追加します。

下準備:マクログループにバージョンを追加 の図版

試してみたところどうやら,他のマシンからインポートしてきたマクログループに,直接Avilable in these applicationsを指定すると動かないようです。自分で作ったグループに設定してください。

ここまでできたら下準備は完了です。

スクリプト登録のしかた

[sttk3] Function.kmmacrosのもう片方macro_templateは,その名の通りスクリプト実行マクロの雛形です。このマクロを下準備のとき作ったIllustrator用グループに複製し,自分が管理しやすい名前をつけてください。

複製したマクロの中に「Set Vatiable “exec_path” to Text」というアクションがあります。次は,そのアクションのto: という文字の右にある大きめのテキスト入力欄に,実行したいスクリプトのパスを入力します。下準備でやったのと同じように,ファイルをドロップすればパスが入ります。

スクリプト登録:パスを入力 の図版

あとはNew Triggerで,キーボードショートカットなどお好きな起動方法をセットすれば登録完了です。もうその方法で呼び出せるようになっています。

その下のexec_argsって何?

Adobeのスクリプトでは,実行時に引数を渡せます。引数(ひきすう)とはスクリプトに渡す文字や数字などのデータのことです。スクリプトはそのデータを見てふるまいを変えることができます。そのため,ちょっとだけ内容の違う似たような処理を1つのファイルで管理できて便利です。

今まではその引数を管理するインフラが整っていなかったので,ファイル名で代用していました(【解決】スタイルにショートカットを割り当てたい!を参照)。こういうのがもっと使いやすくなります。ただし,引数受け取りに対応したスクリプトを書けばの話ですが……

引数の設定方法は,単に「Set Vatiable “exec_args” to Text」のto: に文字を入力するだけです。特に引数が必要ない場合は入力欄を空にしておいてください。このアクションや変数を削除してしまうとIllustratorが落ちるので,消してはいけません。

スクリプト登録:引数を入力 の図版

サンプルスクリプトalert.jsx,alert.scptでそれぞれ動作をお試しできます。引数を受け取ってダイアログに出すというものです。開発者の方はそれをベースに書いてみてください。

このスクリプトを開発するにあたって,GOROLIB DESIGN(@gorolib)さん三階ラボ 長藤寛和(@kanwa)さんものかの(@monokano)さんにテストなどご協力いただきました。ありがとうございます。

これでまた少し仕事が速くなりました。今日もさっさと仕事を切り上げて好きなことをしましょう!

コードは長くなったのでダウンロードして見てください。

このサイトで配布しているスクリプトやその他のファイルを,無断で転載・配布・販売することを禁じます。
それらの使用により生じたあらゆる損害について,私どもは責任を負いません。
スクリプトやファイルのダウンロードを行った時点で,上記の規定に同意したとみなします。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

広告

コメントを残す

*