見出し画像

不要なアイテムを削除するIllustrator用スクリプトを作りました

孤立点や空白の文字オブジェクトなど、不要なアイテムを指定して削除(または選択)するIllustratorのスクリプトです。以前からGitHub上では公開していたのですが、今回コードを大幅にリファクタリングしました。入稿前にいらないオブジェクトがないか調べるときにお使いください。

更新履歴など

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

検証バージョン

Illustrator 2020(24.3)

ダウンロード

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

インストール方法

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

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

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のバージョンが入ります

使い方

画像1

1. スクリプトを実行します。
2. 削除したいオブジェクトの種類にチェックを入れます。
3. オプションを設定します。
4. [実行]をクリックします。

削除対象

削除できるオブジェクトは5種類です。それぞれは、以下のような基準で検出されます

1. 孤立点:
アンカーポイントが1つしかないオブジェクト
2. 空のポイント文字:
文字がまったく入力されていないポイント文字。スペースも文字と見なします
3. 空のエリア内文字:
文字がまったく入力されていないエリア内文字。スペースも文字と見なします
4. 空のパス上文字:
文字がまったく入力されていないパス上文字。スペースも文字と見なします
5. 不透明度0%のオブジェクト:
不透明度が0%に設定されたオブジェクト。塗りのみ、線のみの不透明度は対象外です
6. ヘアラインパス:
線幅がなく、塗りだけの直線パス(詳しくは「 ヘアラインパスについて」の項を参照)

ヘアラインパスについて

ヘアラインパスとは、線の設定がない塗りのみの直線パスで、印刷事故につながる要素のひとつです。本スクリプトでは、塗りのみの直線パスのうち、セグメントの角度がすべて同一のものをヘアラインパスとして検出します。また、2つ以上のアンカーポイントをもち、それらすべてが方向線を持たず同一座標で重なっているパスも、ヘアラインパスとして検出します。塗り、線ともに設定されていない透明のパスは検出しません。

ヘアラインパスの検出精度

ヘアラインパスは、各セグメントの角度から直線かどうかを判断します。直線とみなす角度の精度は、スクリプトの中の25行目あたりにあるHAIRLINE_ACCURACYの値で変更できます。数を小さくするほどルーズになり、多少のゆがみがあってもヘアラインパスと判断します。シビアにしたいときはこの数を大きくしてください。初期値は2000です。

オプション

1. 削除せずに選択する:
対象オブジェクトを選択した状態にします。いきなり削除したくないときや、確認だけしたいときに有効です
2.ロック、非表示オブジェクトも対象にする:
ロック、非表示になっているオブジェクトも強制的に対象にします。ロック、非表示にされたレイヤー上のオブジェクトも対象となります
3. 実行後に報告メッセージを表示する:
実行したあとに、対象オブジェクトの数を報告します

ロック、非表示オブジェクトも対象にする

[削除せずに選択する]と[ロック、非表示オブジェクトも対象にする]を両方選択したときは、対象オブジェクトとそれらが属するレイヤーのロック、非表示が強制的に解除されます。この組み合わせの際は、実行前に警告を表示します

その他

・グループ化されている場合も、対象オブジェクトを個別に検出します。
・シンボルやパターン、複合シェイプなど、通常と異なる要素に含まれているオブジェクトは、スクリプト側から操作できないため対象となりません。

免責事項

・このスクリプトを使って起こったいかなる現象についても制作者は責任を負えません。すべて自己責任にてお使いください。
・データの構造などによっては、対象をブジェクトを取得できない可能性もゼロではありません。
・バージョン2020で動作の確認はしましたが、OSのバージョンやその他の状況によって実行できないことがあるかもしれません。もし動かなかったらごめんなさい。

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