#Illustrator のレイヤー操作の不満とスクリプト

ほとんどのグラフィック編集ソフトにはレイヤーという機能が搭載されています。
レイヤーは、グラフィックの重なりや上下の順番を管理・編集するためのとても重要な機能です。Illustrator の場合、レイヤーを操作するときはレイヤーパネルを表示して操作します。
今回はこのレイヤーの操作方法と不満点、さらにその不満点を解決するためのスクリプトについてまとめました。

まず先に、レイヤーには2種類の選択状態があることについて説明します。

  1. アクティブなレイヤー

    レイヤーパネル内のレイヤーの右上に三角マークがついているレイヤーのことです。現在のレイヤーとも呼ばれます。アクティブなレイヤーはレイヤーパネル内に必ずひとつだけ存在します。新たにアイテムを描くときは必ずアクティブなレイヤー内に配置されます。

  2. 選択されたレイヤー

    レイヤーパネル上でハイライトされたレイヤーのことです(正式名称は知らないです)。Shift キーや Command キーで複数選択することが可能です。選択されたレイヤーは、レイヤーパネル内だけで完結する選択情報です。

アクティブ名レイヤーと選択されたレイヤー
アクティブ名レイヤーと選択されたレイヤー

混同されがちですが、アクティブなレイヤー選択されたレイヤーは全く別物ですので、その違いを理解したうえで読み進めていただけると助かります。

選択したアイテムを他のレイヤーへ移動する

選択したアイテムを違うレイヤーに移動するにはいくつかの方法があります。

カラーボックスをドラッグ&ドロップして移動

目的のアイテムを選択し、レイヤーパネルの右側にあるカラーボックスを移動先のレイヤーまでドラッグ&ドロップすることでレイヤー間の移動ができます。この場合、選択したアイテムは、移動先のレイヤーの最前面に配置されます。

このやり方だと、レイヤーパネルで小さな四角いカラーボックスをドラッグ&ドロップするという、シビアなクリック操作が必要になってしまいます。

カラーボックスをドラッグ&ドロップ
カラーボックスをドラッグ&ドロップ

カット&ペーストして移動

目的のアイテムをカットし、レイヤーパネルで移動先のレイヤーをアクティブにした後、編集メニュー前面へペーストまたは背面へペーストすることでレイヤー間の移動ができます。
前面へペーストをした場合はアクティブなレイヤーの最前面に、背面へペーストの場合は最背面に配置されます。
また、目的のアイテムをカットした後に、移動先のレイヤーにあるアイテムを選択したあと、前面にペーストまたは背面にペーストすると、選択したアイテムを基準に、前面または背面に配置することができます。
こちらの方が一番使われている方法ではないでしょうか。ショートカットだけで操作できるので気軽に行えますもんね。

ただし、移動させたいアイテムが複雑なパスや大量のシンボルだったりすると、処理に時間がかかってしまったり、Illustrator が落ちてしまうことがあります。

カット&ペースト
カット&ペースト

そこで、選択したアイテムを他のレイヤーへ楽に移動するスクリプトの紹介です。

上下のレイヤーにアイテム収集・移動

上下のレイヤーにアイテム収集・移動

Collect / Move Items in Upper Layer は、選択した複数のアイテムを上のレイヤーに移動するスクリプトです。
選択した複数のアイテムがいくつかのレイヤーにバラバラに配置されていた場合は、一番上にあるアイテムのレイヤーにまとめてくれます。もし、選択した複数のアイテムが全て同じレイヤーに配置してあればひとつ上のレイヤーにごっそり移動します。
さらに、オブジェクを何も選択していなければ、現在アクティブになっているレイヤーのひとつ上にあるレイヤーをアクティブにしてくれます。
ひとつのスクリプトで3度オイシイわけです。かなりオススメです。
同梱されている Collect / Move Items in Lower Layer は先に説明した内容の「下」バージョンです。この2つのスクリプトをショートカットに登録してしまえば、レイヤー間の操作がサックサクです。

レイヤー内のすべてのアイテムを選択する

目的のレイヤー内にあるすべてのアイテムを選択する場合もいくつかの方法があります。

同一レイヤー上のすべて を実行する

この場合は、目的のレイヤー内にあるアイテムを選択し、選択アイテム同一レイヤー上のすべて を実行することで、選択したアイテムと同じレイヤーに配置してあるアイテム群を選択してくれます。親レイヤーが異なる複数のアイテムを選択していた場合、それぞれの親レイヤー内すべてのアイテムが選択されます。

ただし、あらかじめアイテムを選択しておかないと実行することはできません。

同一レイヤー上のすべて
同一レイヤー上のすべて

レイヤー名部分を option + クリックする

レイヤーパネル内のレイヤー名部分をoption + クリック すると、そのレイヤー内のすべてのアイテムを選択できます。

レイヤーパネル内をいちいちクリックするのが面倒くさいです。

option + クリック
option + クリック

そこで、レイヤー内のすべてのアイテムを選択するスクリプトの紹介です。

レイヤー内のアイテムをすべて選択

レイヤー内のアイテムをすべて選択

Select Items on Current Layer は、同一レイヤー上のすべて 機能に加え、アイテムを選択していないときでもアクティブなレイヤー内すべてのアイテムを選択します。

レイヤーを並べ替える

レイヤーパネル内のレイヤーをドラッグ&ドロップすることで目的の位置に移動することができます。

ただし、慎重にカーソル操作をしないと他のレイヤーの中に入ってしまい、サブレイヤーになってしまうことがあります。また、最上部、最下部に移動する操作が視覚的に分かりづらいのが難点です。

ドラッグ&ドロップ
ドラッグ&ドロップ

そこで、レイヤーを並べ替えるスクリプトの紹介です。

アクティブなレイヤーを上下の位置に移動

アクティブなレイヤーを上下の位置に移動

Move Current Layer は、アクティブなレイヤーを上下に移動するスクリプトです。アクティブなレイヤーが一番上にある場合は一番下に、一番下にある場合は一番上に移動します。

レイヤーの状態を変更する

アイテムを選択・編集したくないときはそのアイテムが置かれているレイヤーをロックすることが多いと思います。作業の邪魔であれば表示・非表示の切り替えを、アウトライン状態を確認したければ表示プレビュー表示・アウトライン表示を切り替えますよね。
このようなレイヤー状態を変更するにはいくつか方法があります。

レイヤーパネルメニューで変更する

レイヤーを複数選択した状態、またはひとつのレイヤーがアクティブになっている状態で、レイヤーパネルメニューの下部にある項目(他を隠すその他をアウトライン表示他をロック等)を実行します。
この操作はアクションに登録できるのでかなり便利です。

ただし、レイヤーパネルの選択状態・アクティブ状態を判別して処理してるだけなので、ドキュメント上であらかじめ選択しておいたアイテムのレイヤーを操作する、といったことはできません。

レイヤーパネルメニュー
レイヤーパネルメニュー

レイヤーオプションで変更する

目的のレイヤーをダブルクリックするか、複数選択(またはアクティブ)にした状態でレイヤーパネルメニューから「○○○○」のオプションを選択しレイヤーオプションを表示します。レイヤーオプションに表示されているチェックボックスでレイヤーの状態を変更します。

この方法はクリック数が多くなってしまいます。感覚的に操作することができないので頻繁に使われる方は少ないんじゃないでしょうか。

レイヤーオプション
レイヤーオプション

レイヤーパネル内の左側にあるコラムをクリックして変更する

レイヤーパネルの左側にあるコラム(レイヤー名の左側にあるトグルボタン)をクリックすることでレイヤーの状態を変更する方法です。こちらの方が一般的な方法だと思います。

左から、表示コラム編集コラムの順に並んでます。
目的のレイヤーを非表示にしたければ、そのレイヤーの一番左側にある表示コラムをクリックします。ここはトグルボタンになっているので、目のアイコンをクリックすれば非表示になります。 同様に、目的のレイヤーをアウトライン表示にしたければ、この表示コラムを command + クリックし、ロック状態にしたければ、左から2番目にある編集コラムをクリック。といった感じです。
さらに、option キーを押しながらクリックすることで、クリックしたレイヤー以外の状態を一括で変更できます。

慣れた操作かもしれませんが、レイヤーパネル内をクリックする、という操作が非常に多くなります。

レイヤーパネルの各コラム
レイヤーパネルの各コラム

そこで、レイヤーの状態を変更するスクリプトの紹介です。

レイヤーを表示/非表示

レイヤーを表示/非表示

Hide Current Layer は、選択したアイテムが置かれているレイヤー(またはサブレイヤー)を非表示にします。
アイテムを何も選択していなければ、アクティブなレイヤー(またはサブレイヤー)を表示/非表示を切り替えます。

他のレイヤーを非表示

Hide Other Layers は、選択したアイテムが置かれているレイヤー(またはサブレイヤー)以外非表示にします。
アイテムを何も選択していなければ、アクティブなレイヤー(またはサブレイヤー)以外非表示にします。

レイヤーを全て表示

Show All Layers は、全てのレイヤーとサブレイヤーを表示します。

レイヤーをプレビュー表示/アウトライン表示

レイヤーをプレビュー表示/アウトライン表示

OutlineView Current Layer は、選択したアイテムが置かれているレイヤー(またはサブレイヤー)のプレビュー表示/アウトライン表示を切り替えます。
アイテムを何も選択していなければ、アクティブなレイヤー(またはサブレイヤー)をプレビュー表示/アウトライン表示を切り替えます。

他のレイヤーをアウトライン表示

OutlineView Other Layers は、選択したアイテムが置かれているレイヤー(またはサブレイヤー)以外アウトライン表示にします。
アイテムを何も選択していなければ、アクティブなレイヤー(またはサブレイヤー)以外アウトライン表示にします。

レイヤーを全てプレビュー表示

Preview All Layers は、全てのレイヤーとサブレイヤーをプレビュー表示にします。

レイヤーをロック/ロック解除

レイヤーをロック/ロック解除

Lock Current Layer は、選択したアイテムが置かれているレイヤー(またはサブレイヤー)をロックします。
アイテムを何も選択していなければ、アクティブなレイヤー(またはサブレイヤー)をロック/ロック解除を切り替えます。

他のレイヤーをロック

Lock Other Layers は、選択したアイテムが置かれているレイヤー(またはサブレイヤー)以外ロックします。
アイテムを何も選択していなければ、アクティブなレイヤー(またはサブレイヤー)以外ロックします。

レイヤーを全てロック解除

Unlock All Layers は、全てのレイヤーとサブレイヤーをロック解除します。

レイヤーを削除する

レイヤーを削除する場合、目的のレイヤーを選択し、レイヤーパネル下部にあるゴミ箱ボタンをクリックしたりゴミ箱ボタンまでドラッグ&ドロップします。レイヤーパネルメニュー「○○○」を削除 を実行しても可です。

他と同様、レイヤーパネル内を操作する必要があります。また、消すレイヤーを自分で選択しなければなりません。明らかに不要だろ!というような空っぽのレイヤーを削除する、といった便利な機能もありません。

レイヤーパネルのゴミ箱
レイヤーパネルのゴミ箱

そこで、レイヤーを削除するスクリプトの紹介です。

レイヤーを削除する

アクティブなレイヤーを削除

Remove Current Layer は、選択したアイテムの親レイヤーを削除します。もし、アイテムを何も選択していなければアクティブなレイヤーだけを削除します。

空のレイヤーを削除

Remove Empty Layers は、アイテムの置かれていない空のレイヤーやサブレイヤーを削除します。支給された汚いIllustratorデータを整理するときに大活躍します。

不要なレイヤーを削除

Remove Unnecessary Layers は、空のレイヤーに加え、無駄な入れ子状態になっているサブレイヤーを全て削除します。レイヤーマスクやレイヤー効果を使用している場合は、マスクや効果が解除されてしまいますのでお気をつけください

レイヤー名を変更する

レイヤー名を変更するときは、レイヤーパネル内にある目的のレイヤーのレイヤー名部分をダブルクリックするか、レイヤーパネルメニューから「○○○」のオプション を選び、レイヤーオプションダイアログで名前を編集します。

他と同様、レイヤーパネル内をクリック操作する必要があります。

レイヤー名
レイヤー名

そこで、レイヤー名を変更するスクリプトの紹介です。

レイヤー名を変更

レイヤー名を変更

Remove Current Layer は、選択したアイテムの親レイヤーの名前を編集するプロンプトを表示します。親レイヤーの異なるアイテムを複数選択した場合は、上部にあるレイヤーから順にプロンプトを表示します。もし、アイテムを何も選択していなければアクティブなレイヤーのプロンプトだけを表示します。

以上です。
ドキュメント上の作業を行っているときに、いちいちレイヤーパネル内の項目をカーソル操作するというのは集中力が途絶えてしまい地味にストレスが溜まります。これらのスクリプトにショートカットキーを割り当ててしまえば、そのストレスも少しは改善されると思いますので、ぜひおためしください。