Illustratorメモ「パターン分割→合流後の透明度と描画モードを元に戻すスクリプト(注意事項あり)」
パターンを楽に処理したい
イラストに質感や柄を追加するためのパターンとか、使いますよね。
これをストックイラストサイトに投稿するにはパターンなどの分割をしたり、パスが少なくなるように整理をすることがあります。
整理の方法としては、パターンオブジェクトやクリッピングパスでトリミングしたブラシなんかを分割・拡張したあと、パスファインダー>合流をするとクリッピングパスの外側の見えてないオブジェクトが消えるため、きれいになってデータも軽くなります。
このあたりの詳しい説明は今回省かせていただくのですが、この「合流」が曲者で、パターンが50%乗算で乗っていたりすると合流をかけたときに通常モード100%になってしまうんですよね。
これ、戻すの面倒じゃないですか?
全体にかかっているなら1度でいいんですが
色々やっていると個別にしたくなることもあって、不透明度が違ったりモードが違ったり、戻すとき間違えるしいちいち透明パネルを開くのが面倒!ということでこんなスクリプトを作りました。
DLできるようにしたので、よろしければお使いください。
こんなスクリプトを作ってみた
1. 不透明度と描画モードを取得する
2. 合流を実行
3. 最初の不透明度と描画モードに再設定する
なお、私が素人なのである程度わかっている人向けです。すみません。
適応条件・注意事項
・主にパターンが拡張されたクリッピングパスに使うために作りましたが、個別に透明や描画モードがあるパターンだと元通りにならないことがあります。(ver.2023に入っている「ポンパドール」パターンには使えませんでした)
・ブラシをクリッピング→拡張したものもOKです。が、透明や描画モードがあるとやはり元通りにならないことがあります。
・クリッピングパスでなくても、グループ全体に対して透明度、描画モードが設定されている場合にも使えます。こちらもグループ内に個別の透明度や描画モードが以下略。
・パターンに線が含まれている、線のみのパターンは合流がうまくできませんので、使用したい場合はパスのアウトラインをしてください。
・同梱してあるアクションですが、名称で指定してあるのでアクションやフォルダの名前・場所を変更しないようにしてください。変えたくて、知識があるという方はjsの方を書き換えても大丈夫です。
以上の条件以外にも、検証できていないことがあるかもしれないので一度実験してからご使用ください。
また、私はjsについて素人でchatGPTにベースを作ってもらい調整しました。不具合などは修正できない可能性がありますのでご了承ください…(すごいよchatGPT。作成奮闘記は後ろに)
使い方
ダウンロードしたスクリプトをIllustratorのスクリプトフォルダに入れます。
(スクリプトフォルダの場所の例:Adobe or アプリケーション>Adobe Illustrator(ver番号)>Presets>ja_JP>スクリプト)アクションパネルに合流アクションを読み込みます。
パターンを分割・拡張し、クリッピングパス状態になっているオブジェクトを選択します。
ファイル>スクリプト>スクリプトを選んで実行。
DL用データはこちら
動作確認は Illustratorデスクトップ版 ver.2023のみです。
スクリプトデータ、スクリプトに使用するアクションが入っています。
動作に関しての完全な保証はありませんので、まずはコピーしたオブジェクトなどで実験してからお使いください。
おまけ(chatGPTがすごいって話)
先に書きましたが、このスクリプトはchatGPTにベースを作ってもらい、自力修正+papicoさん(@tuktukdiary)にお助けいただいて完成しました。ありがとうございます!
私自身はwebサイトへ既存のjsをコピペで設置して、設定を多少触れるくらいの知識レベルです。
そんな私の奮闘記をちょっと載せておくのでお暇な方はどうぞ。
最初の依頼はこんな感じでした
本当に書けるんだすごい!と思ったものの、実際やってみたところ動きませんでした。
検証の結果、合流を適用の"Live Pathfinder Add"は合流じゃなくて追加か合体らしい。
ここを検索で調べてMergeに変えてみたところ合流はするんだけどアピアランス内に入ってしまうので見えないパスは消えてない。
で、じゃあアピアランスの分割をしてみようと思った。
GPTは分割のコードを出してくれたけど、結果は実行されず。
ググってみるとアピアランスの分割はjsでできなさそうだな〜とわかり、ではアピアランスに合流を入れないように動作させられないか?とさらにググるとアクションで合流を実行するとあり、やってみたらできました!
…が、不透明度が戻らない。
コードはこんな感じ↓なんですが、最初に取得した不透明度と描画モードがうまく再設定されていないんだなというところまでしかわからなかった。
Twitterでヘルプをしたところ、papicoさんがリプをくださいました。神!
む、難しい…!
変数はvar.●●●だよね…?最初にやったことをもう一度やって、最初の値を後の方に入れるわけね…???と何度もいじってついにできたのがこちら
検証の結果、透明や乗算がパターン自体に含まれているとうまく行かないものもあることがわかりましたが、最初にやりたかったことは達成できました。
1から自分で作るのは到底無理ですけど、chatGPTのおかげで結構使えるスクリプトが作れるってホントすごいです。
AIとは良いお付き合いをしたいですね…。
同じ悩みを抱える皆さんのお役に少しでも立てば嬉しいです。