見出し画像

オブジェクトを正確に整列させるIllustrator用スクリプト

Illustratorには標準で整列機能がありますが、文字オブジェクトについては「見た目」としての正確な整列ができません。これは昔からの仕様で、今後変更される可能性はかなり低いと思っています。そこで、文字オブジェクトの正確な整列をサポートするスクリプトを作りました。うまく揃わないテキストに悩まされている方は、ぜひ使ってみてください。

更新履歴など

GitHubのリポジトリをご確認ください

対応バージョン

Illustrator CS5〜CC(24.3)

ダウンロード

スクリプトをダウンロードする

インストール方法

1. ダウンロードしたファイルを解凍します。
2. 所定の場所に「オブジェクトを整列Plus.jsx」をコピーします。Windows版ではお使いのIllustratorの種類によって保存する場所が異なりますのでご注意ください。
3. Illustratorを再起動します。
4. [ファイル]→[スクリプト]→[オブジェクトを整列Plus]と表示されていればインストール成功です。

ファイルをコピーする場所

Mac:
/Applications/Adobe Illustrator (ver)/Presets/ja_JP/スクリプト/
32bit Win(CS5まで):
C:\Program Files\Adobe\Adobe Illustrator (ver)\Presets\ja_JP\スクリプト\
64bit Win(CS5, CS6 64bit版):
C:\Program Files (x86)\Adobe\Adobe Illustrator (ver)\Presets\ja_JP\スクリプト\
64bit Win(CS6 64bit版以降):
C:\Program Files\Adobe\Adobe Illustrator (ver) (64 Bit)\Presets\ja_JP\スクリプト\

※ (ver)にはお使いのIllustratorのバージョンが入ります
※本スクリプトは、CS4以前では動作を検証しておりません

標準の整列機能では文字オブジェクトが正確に揃わない

画像1

Illustrator標準の整列機能を使って文字オブジェクトを揃えようとすると、以下2つの問題にぶつかります。

・横書きテキストの場合、下に隙間ができてしまう(期待する位置より上に揃う)
・トラッキングされた文字の場合、右端(下端)にトラッキング分の隙間ができてしまう(期待するより左、または上に揃う)

いずれも、文字のバウンディングボックス基準で整列位置が計算される仕様に基づくもので、Illustratorの整列がデタラメに処理されているわけではないのですが、おそらく現実として期待する結果になってないと感じることが多いのではないでしょうか。

このスクリプトを使うと

画像2

文字の(仮想)ボディのサイズを想定してテキストオブジェクトの大きさを再計算し、それに基づいて整列を行います。バウンディングボックスで文字の下に大きな隙間ができてしまうフォント(源ノ角ゴシックなど)や、トラッキングが設定されたテキストオブジェクトでも比較的正確な整列が可能です。

なお、Illustratorのテキストとバウンディングボックスの関係について興味のある方は、ものかのさんさんのブログ記事を参考にしてみてください。

使い方

画像3

1. オブジェクトを選択してスクリプトを実行すると、整列のダイアログが開きます
2. [水平方向]、[垂直方向]で、整列したい位置のチェックボックスをクリックします。整列をしたくないときは、オンになっているチェックボックスを再度クリックして、チェックをオフにします
3. [基準の範囲]から、整列の基準としたい対象を選択します。[アートボード]、[選択範囲]、[最背面オブジェクト]、[最前面オブジェクト]の4つから選択可能です
4. 整列基準の範囲を確認したいときは整列の範囲をハイライトのチェックをオンにします。対象範囲がピンクにハイライトされます
5. [実行]をクリックすると整列を実行します

基準となる範囲の詳細

アートボード:
現在アクティブなアートボードの大きさ
選択範囲:
選択されたオブジェクト全体の範囲
最前面オブジェクト:
選択された中で最も前面にあるオブジェクトの大きさ
最背面オブジェクト:
選択された中で最も背面にあるオブジェクトの大きさ

ダイアログについて

画像4

スクリプトは最後に実行したダイアログの状態を記憶しますので、スクリプトを起動したあとにすぐreturn(enter)キーを押せば前回と同じ設定で整列を実行できます。さらに、スクリプトの設定をカスタマイズすれば、ダイアログを省略して整列を実行することも可能です(次項参照)。

カスタマイズ

10行目あたりにあるsettingsの各値を変更することで、ダイアログを省略した整列ができます。ダイアログを省略するには、showDialogfalseにしたうえで、その他の値を希望する挙動に合わせておきます。また、withAltKeytrueにしておくと、ダイアログ省略設定時でもoption(Alt)キーを押しながらスクリプトを実行することで一時的にダイアログを使った整列が可能です。下記を参考に、テキストエディタでスクリプトを開いて直接編集してください。

■ vertical(Number型):
水平方向の揃え
[-1:移動なし|0:左|1:中央|2:右]
horizontal(Number型):
垂直方向の揃え
[-1:移動なし|0:上|1:中段|2:下]
base(Number型):
整列の基準
[0:アートボード|1:選択範囲|2:最前面オブジェクト|3:最背面オブジェクト]
previewArea(Boolean型):
整列基準範囲のハイライト表示
[false:しない|true:する]
showDialog(Boolean型):
ダイアログを表示
[false:しない|true:する]
withAltKey(Boolean型):
option(Alt)キーを押しながら実行でダイアログを強制表示
[false:しない|true:する]

※ダイアログ表示をカットしたい場合は、showDialogfalseにしてください
withAltKeyの値はshowDialogfalseのときのみ有効です

キーボードショートカットのすすめ

ダイアログを省略して実行するときは特にですが、スクリプトをキーボードショートカットで実行できるようにしておくことをおすすめします。

Illustrator標準ではスクリプトにショートカットキーを割り当てできないので、Macの方は、ものかのさんの「SPAi」や、Keyboard Maestroなどのツールを使うといいでしょう。Keyboard Maestroは、三階ラボさんの記事が詳しくて参考になります。Windowsの方は……なんとか頑張ってください!(ツールがあるのかどうか知らないです。すみません)

なお、ショートカットキーの中にoption(Alt)キーが含まれる場合、強制的にダイアログが表示されます。強制表示を無効にしたいときは、カスタマイズでwithAltKeyfalseに設定してください。ただし、この場合はダイアログの強制表示機能は使えませんのでご注意ください。

その他

・クリッピングマスクされたオブジェクトは、クリッピングパスの大きさを基準とします
・エリア内文字はテキストエリアを整列の基準とします

注意

・グループ編集モードでは、整列範囲のプレビューが使えません
・CS6ではダイアログ表示直後のプレビューが乱れることがありますが、何かの設定を一度変更すれば正常に戻ります(原因不明)
・必要なオブジェクトが選択されていないときは、警告を表示して処理を中断します
・オブジェクトの種類や構造によって意図しない結果になる可能性もゼロではありません
・大量のオブジェクトでは処理に時間がかかることがあります

免責事項

・このスクリプトを使って起こったいかなる現象についても制作者は責任を負えません。すべて自己責任にてお使いください。
・CS5から2020(いずれもMac版)で動作の確認はしましたが、OSのバージョンやその他の状況によって実行できないことがあるかもしれません。もし動かなかったらごめんなさい。

気に入ったらサポートいただけると嬉しいです。 作業中に消費の激しいコーヒー代とお菓子代にさせていただきます!