【解決】整列・分布を全部ショートカットで操りたい!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
Saligna整列・分布パネル配置図

Illustrator標準の整列・分布機能は,整列基準(アートボード・選択範囲など)を変更するのにいちいちパネルをクリックしなくてはいけません。

これが面倒で何とかしたかったのですが,整列基準はスクリプトやアクションでは変更できませんでした。

標準機能ではどうにもならないようなので,JavaScriptを使って整列と分布そのものを丸ごと作ることにしました。作ったスクリプトにショートカットキーを割り当てることで,キーボード操作を実現する作戦です。

ついでなので以下のような不満も一緒に解決してしまいます。

  • 横書きポイントテキストの下に余分なアキができる
  • ポイントテキストにトラッキングをかけていると,行末に余分なアキができる
  • InDesignの「マージンに揃える」に相当する整列基準が存在しない
  • 天地左右センターに揃えるのに,整列を2回実行しなくてはいけない
  • 選択したアイテム全体で一緒に動いてほしいときも,個別に整列されてしまう
  • 「プレビュー境界」にチェックが入っていると,ガイドがどこかに吹き飛んでしまう
  • キーオブジェクトに複合シェイプを指定すると,意図しない移動が起こる
  • スクリプトからキーオブジェクトを取得する方法がない

スクリプトはこちらのzipファイルです。

キーボードショートカットで呼び出すにはSPAiやKeyboard Maestroなど,スクリプトにショートカットを割り当てられるアプリケーションが必要です。
事前にインストールし,各スクリプトに好きなキーを設定しておいてください。

スクリプトについて

今回のスクリプトは,30個セットというすごい量になっています。適宜必要な分だけ登録して使ってください。

管理の都合上スクリプトの名前がほしくなったので,Saligna(サリグナ)とつけました。わがままでしたたかなあなたのための整列機能です。

Illustrator CS6(Mac)で動作を確認しています。

キーオブジェクトを検出するにはCS6以降が必要です。それ以外の部分はCS3以降で動くことを目指して作りました。実際に動くかはわかりませんが,使いたい人は試してみてください。

入っているもの

zipファイルを解凍すると,aligndistributesettingの3つのフォルダがあります。

aligndistributeにはそれぞれ整列・分布を実行するスクリプトが入っています。これらはファイルの内容は全く同じで,ファイル名によって整列と分布,揃え位置などを切り替えています。

alignの中はさらに12のフォルダに分かれます。1は標準の整列と同じ揃えの種類(左端や下端など),2は右下や天地左右センターなど標準だと2段階の操作が必要なものです。

settingは整列基準をアートボードにするなど環境設定を変えたり,設定をパネルに表示したりするスクリプトです。

■align 1 : 基本整列
スクリプト名 役割
a=top_edges.jsx 垂直方向上へ整列
a=vertical_centers.jsx 垂直方向中央へ整列
a=bottom_edges.jsx 垂直方向下へ整列
a=left_edges.jsx 水平方向左へ整列
a=horizontal_centers.jsx 水平方向中央へ整列
a=right_edges.jsx 水平方向右へ整列
■align 2 : 2段階整列
スクリプト名 役割
a=top_left.jsx 垂直方向上,水平方向左へ整列
a=top_middle.jsx 垂直方向上,水平方向中央へ整列
a=top_right.jsx 垂直方向上,水平方向右へ整列
a=middle_left.jsx 垂直方向中央,水平方向左へ整列
a=center.jsx 垂直方向中央,水平方向中央へ整列
a=middle_right.jsx 垂直方向中央,水平方向右へ整列
a=bottom_left.jsx 垂直方向下,水平方向左へ整列
a=bottom_middle.jsx 垂直方向下,水平方向中央へ整列
a=bottom_right.jsx 垂直方向下,水平方向右へ整列
■distribute : 分布
スクリプト名 役割
d=top_edges.jsx 垂直方向上に分布
d=vertical_centers.jsx 垂直方向中央に分布
d=bottom_edges.jsx 垂直方向下に分布
d=left_edges.jsx 水平方向左に分布
d=horizontal_centers.jsx 水平方向中央に分布
d=right_edges.jsx 水平方向右に分布
d=vertical_space.jsx 垂直方向等間隔に分布
d=horizontal_space.jsx 水平方向等間隔に分布
■setting : 環境設定
スクリプト名 役割
SalignaPanel.jsx Salignaの環境設定を見たり変更したりするパネルを呼び出す
setArtboard.jsx 整列基準を「アートボード」にする
setGuide.jsx 整列基準を「ガイド」にする
setSelection.jsx 整列基準を「選択範囲」にする
setUnsync.jsx 連動機能をoffにする
setSync.jsx 連動機能をonにする
toggleSync.jsx 連動機能のonとoffを交互に切り替える

使いかた

基本的には以下のような流れになります。

  1. SalignaPanel.jsx を実行してパネルを出す(初回以降は出しっぱなしで良いし,表示しなくても動く)
  2. setArtboard.jsx などのスクリプトや,パネルのクリックで整列基準を切り替える
  3. キーオブジェクトを使いたいときは,通常の追加クリック操作で指定する
  4. 分布の間隔を指定したいときは,パネルの下段に入力する
  5. d=horizontal_space.jsx などで整列・分布を実行する

Saligna整列・分布パネル配置図

おすすめ新機能

2段階整列

左上・天地左右センター・右下などは揃える機会が多いと思います。a=center.jsx などのスクリプトなら1回の実行だけでそこに揃えることができます。

整列基準「ガイド」

InDesignの「マージンに揃える」に似た機能です。アクティブなアートボード内にクローズパスのガイドがあれば,その領域に整列します。ガイドを移動しても,整列実行時に改めて領域を探すのでちゃんとガイドに揃います。

書類全体でのパスの数が少なければ,全レイヤーをチェックしてそれらしいガイドを見つけ出します。多すぎて動作が遅くなったり止まったりしそうなときは,ガイドまたはguideという名前のレイヤーだけを調べます。

連動(Sync)設定

パネルの右上に鎖アイコンがありますが,これが連動設定です。鎖が開いていたら連動しないで,普通の整列をします。

鎖が繋がっていたら連動するです。選択しているアイテム同士の間隔はそのままで整列を実行します。グループ化してから整列するのに似た動きです。

この設定は,パネルのクリックや toggleSync.jsx で切り替えられます。また,これは整列(align)だけに影響し分布のときはまったく無視されます。

これで整列

整列基準がアートボードまたはガイドで,連動する設定になっており,さらにキーオブジェクトが指定されている場合,これで整列モードです。

キーオブジェクトを基準に対して整列し,それ以外のアイテムはキーオブジェクトと同じ距離だけ移動します。これは例えば,図の外枠をアートボードの中心に移動し,中身はその距離に合わせて一緒に移動するときなどに便利です。

これに整列

整列基準が選択範囲で,連動する設定になっており,さらにキーオブジェクトが指定されている場合,これに整列モードです。
キーオブジェクト以外のアイテムを,連動する設定でキーオブジェクトに整列します。変形パネルで何かの座標をコピーして,ほかのアイテムの座標にセットしたときのような動きをします。

こちらは動作デモです。

注意点

  • 何回も実行すると,Illustratorが中途半端にエラーを出して期待通りの結果が出なくなる場合があります。そんなときは一旦書類を閉じてからもう一度実行すると回復することが多いです。
  • 選択したアイテムが多すぎる場合,Illustratorがクラッシュすることがあります。一応選択可能な数に制限をかけていますが,使っているPCの能力によってはそれでも防げないかもしれません。こまめに保存を心がけてください。
  • パネルが選択状態だとUndoなどのショートカットが効かなくなるようです。Illustrator書類のほうにフォーカスを移すとまた使えるようになります。
  • 一瞬アイテムが変な動きをしてるのが見えます。それはスクリプトで取得不可能なキーオブジェクトを,無理やり取得するためにそうなっています。大目にみてください。

説明すると何か難しそうですが,こういうのは百聞は一見に如かずです。やってみればすぐわかるのでぜひ試してみてください。

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

今回は長くなったので,ソースコードを見たい人はダウンロードして見てください。

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

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

SNSでもご購読できます。

広告

コメントを残す