パスの端にある近接点を連結するIllustratorスクリプト『MergeOpenPath』

f:id:Twilyze:20190406053412p:plain

主な機能

  • パスの端にある設定距離以下のアンカーポイントを連結
  • 2通りの連結方法: 2点を中間位置に移動・2点を繋ぐ線を追加
  • 角度や線の太さなどのプロパティが一致するものに対象を絞る機能

ダウンロード

GitHubのReleasesページ MergeOpenPath.zip (2019/04/06更新)

普通(.jsx)のと圧縮(.min.jsx)したのが入っていますが機能は変わりません。

使い方

[ファイル]-[スクリプト]-[その他のスクリプト]から選択するか、 あらかじめスクリプトフォルダにファイルを配置すれば[ファイル]-[スクリプト]内に表示されます。

OS スクリプトフォルダの場所
Win Program Files/Adobe/Adobe Illustrator (ver)/プリセット/ja_JP/スクリプト/
Mac アプリケーション/Adobe Illustrator (ver)/プリセット/ja_JP/スクリプト/

※念のためスクリプトを使用する前にファイルを保存してください

連結したいアンカーポイントを選択してからスクリプトを起動し実行します。

設定

f:id:Twilyze:20190406053457p:plain

これ以下の距離なら連結する

  • アンカーポイント同士の距離がこの値以下なら連結します(単位はピクセル
  • スライダーは0~10までですがテキストボックスに直接入力すれば好きな値を設定できます

連結対象

  1. 両方
    他のパスとの連結後、同じパスの両端を連結を実行
  2. 他のパスとの連結
    2つのパスの端の点が連結できるかを探します
  3. 同じパスの両端を連結
    パスの最初と最後の点が連結できるかを探します

連結方法

距離や後述の条件をクリアし、2点のアンカーポイントを連結する時の動作。

  1. 2点を中間位置に移動
    [オブジェクト]-[パス]平均(2軸とも)->連結と同じ動作(後述のハンドル情報を保持する場合)
  2. 2点を繋ぐ線を追加
    [オブジェクト]-[パス]連結と同じ動作(後述のハンドル情報を保持しない場合)

縦軸・横軸で対の角度のパスに絞る

  • パスの角度が縦軸(垂直)・横軸(水平)で反転されたものに絞ります
    • ※角度はパスの端とその隣にあるアンカーの位置から求める
    • 許容量に5を設定した場合、反転した角度から+/-5度分のパスも含めます

f:id:Twilyze:20190406053529p:plain

プロパティが一致するパスに絞る

  • チェックしたプロパティの値が一致する時だけ連結します
    • レイヤーはレイヤー名ではなく同じレイヤーに属するかどうか
    • あんまりデバッグしていないので上手くいかないプロパティがあるかも
    • (まず使わないと思いますがスクリプトの冒頭にあるコメントアウトを解除すればオーバープリントevenoddピクセルグリッドに整合も使えます)

ハンドル情報を保持

連結方法によって動作が変わります。

  • 2点を中間位置に移動
    • 保持する
      [オブジェクト]-[パス]-[平均]と同じ動作
    • 保持しない
      両側のハンドルが削除されます
  • 2点を繋ぐ線を追加
    • 保持する
      アンカーポイント間のハンドルがあれば保持されます
    • 保持しない
      [オブジェクト]-[パス]-[連結]と同じ動作

f:id:Twilyze:20190406053547p:plain

非表示のパスを削除

  • 選択したパスのうち非表示のものを連結後に削除します
    • 一つでも連結が行われていなければ削除しません
    • 非表示のパスを選択するにはパスの所属するレイヤーやグループを選択します

使用例

アピアランス変形を使った鏡面編集後に、近接点をまとめて連結したい場合などに。
(もっといい方法があるのかもしれない…)

2分割の鏡面編集

  1. 中央に縦のガイドを設置
  2. 鏡面編集用の直線を横向きにアートボードサイズで作成
  3. レイヤーに[効果]-[パスの変形]-[変形]コピー数1・垂直軸にリフレクトで適用
  4. いろいろ描く
  5. 鏡面編集用の直線を非表示
  6. レイヤーを選択して[オブジェクト]-[アピアランスを分割]
  7. スクリプトで連結

レイヤー構造

  • 変形を適用するレイヤー
    • いろいろ描くレイヤー
    • 鏡面編集用の直線

アピアランスを分割する際、ロックされたガイドがレイヤーに混ざっていると分割できないので注意

16分割の鏡面編集

f:id:Twilyze:20190406053605p:plain

example_16.ai

360° ÷ 16 = 22.5°

  • 画像左:
    1. 鏡面編集用の直線を縦・横・112.5°(90+22.5)の3つ作成
    2. レイヤーに[効果]-[パスの変形]-[変形]を2つ適用
      コピー数1・垂直軸にリフレクトコピー数7・回転45°に設定
    3. いろいろ描く
  • 画像右:
    1. 鏡面編集用の直線を非表示
    2. レイヤーを選択して[オブジェクト]-[アピアランスを分割]
    3. スクリプトで連結

注意

  • 念の為実行前に保存しましょう
  • 別のグループや複合パス同士でも条件を満たせば連結します
  • 複合パスの中にあるグループは無視されます(スクリプトからはアクセスできない)
  • なにかエラーが出る時はIllustratorを再起動すると治るかもしれません

  • 基本的に最前面のパスから連結可能なパスを見つけ次第連結していきます

動作確認環境

Adobe Illustrator CS5.1 (Windows10 64bit)
(確認できてませんがCS3以降ならたぶん動きます)

お問い合わせ

Googleフォーム
Twitter

ライセンス

MIT

参考