Illustratorでレイヤーを作るとき,自動的に固有のカラーが割り当てられます。
アイテムを選択した際にはパスやアンカーポイントがその色で表示され,どこのレイヤーに入っているのかひと目で判断できるようになっています。親切ですね。
でもその色が黄色だった場合は,目がチカチカするだけでほとんど何も見えなくなります。おそらくすぐオプションで変更する方が多いでしょう。
問題は黄色がレイヤー5や7に割り当てられていることです。レイヤーを5個作る機会なんていくらでもあり,その度にオプションを設定させられると時間や精神力を無駄に消費してしまいます。
同じように黒(レイヤー9)・グレー(レイヤー8)・ダークグリーン(レイヤー11)なども生産性に悪影響があります。
そこで今回は,Illustratorを常時監視し,黄色・黒・グレー・ダークグリーンのレイヤーを見つけたらすぐ別の色に変更するAppleScriptアプリケーションを紹介します。
ただしあまり実用性はないので,あくまでもお遊びとして見てみてください。
ダウンロードはこちらです。AppleScriptなのでMacのみ対応しています。OS 10.10とIllustrator CS6で動作を確認しました。
rejectYellowLayer.app
使いかた
今回のものはアプリケーションなので,スクリプトフォルダに移動する必要はありません。自分がわかる場所に置いてください。
アプリケーションをダブルクリックして起動すると監視を始めます。
具体的に言うと,「Illustrator書類の最上層のレイヤー(サブレイヤーを含まない)の色を調べ,対象の色があれば変更するスクリプト」を1秒ごとに実行します。
もしセキュリティの警告が出て何もできない場合は,システム環境設定:セキュリティとプライバシー:一般 を開き許可を出してください。
色は以下のように変えます。
イエロー ➡︎ ゴールド
グレー ➡︎ グラスグリーン
ブラック ➡︎ ラベンダー
ダークグリーン ➡︎ ピンク
Dockに出ているアプリケーションのアイコンを右クリックし,終了を選ぶと監視をやめます。
もし暴走している場合は,コマンド+オプション+escの強制終了で止めてください。
注意点
Illustrator CS6で色を調べているので,ほかのバージョンだと対象の色が検知できないかもしれません。変更後の色も例えば「ゴールド」となるべきところが「カスタム」と表示される可能性があります。
同じ書類上で何回も実行していると,Illustratorが中途半端にエラーを出して反応しなくなる場合があります。そんなときは一旦書類を閉じてからもう一度開くと反応するようになることが多いです。
AppleScriptの仕様上,違うバージョンのIllustratorを複数起動しているとうまく動かないことがあります。また,このアプリが起動している状態でほかのAppleScriptを実行すると,競合して思わぬ結果を招きます。
そもそも1秒ごとにスクリプトを実行するのはマシンに結構な負荷を与えます。このへんが実用性に疑問が残るところですね。
終わりに
いかがでしたでしょうか。最近はマシンの能力が上がってきましたし,ワークフローによってはこれで十分戦力になるかもしれません。自身の状況に合わせて工夫してみてください。
これでまた少し仕事が速くなりました。今日もさっさと仕事を切り上げて好きなことをしましょう!
コードはこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
using terms from application "Adobe Illustrator" property color_gold : {class:RGB color info, red:255.0, green:153.000006079674, blue:0.0} property color_grass_green : {class:RGB color info, red:153.000006079674, green:204.000003039837, blue:0.0} property color_lavender : {class:RGB color info, red:153.000006079674, green:153.000006079674, blue:255.0} property color_pink : {class:RGB color info, red:255.0, green:153.000006079674, blue:204.000003039837} end using terms from on idle with transaction my main() end transaction return 1 end idle on main() tell application "Adobe Illustrator" if not (document 1 exists) then return tell document 1 try -- Layer 5 Yellow to Gold set color of (every layer whose (red of color of it is 255) and (green of color of it is 255) and (blue of color of it > 77) and (blue of color of it < 79)) to color_gold end try try -- Layer 8 Gray to Grass Green set color of (every layer whose (red of color of it > 126) and (red of color of it < 128) and (green of color of it > 126) and (green of color of it < 128) and (blue of color of it > 126) and (blue of color of it < 128)) to color_grass_green end try try -- Layer 9 Black to Lavender set color of (every layer whose (red of color of it is 0) and (green of color of it is 0) and (blue of color of it is 0)) to color_lavender end try try -- Layer 11 Dark Green to Pink set color of (every layer whose (red of color of it is 0) and (green of color of it > 84) and (green of color of it < 86) and (blue of color of it is 0)) to color_pink end try end tell end tell end main |
このサイトで配布しているスクリプトやその他のファイルを,無断で転載・配布・販売することを禁じます。
それらの使用により生じたあらゆる損害について,私どもは責任を負いません。
スクリプトやファイルのダウンロードを行った時点で,上記の規定に同意したとみなします。