![見出し画像](https://assets.st-note.com/production/uploads/images/101262942/rectangle_large_type_2_0ccfd75c71b7728d17fe4843c595e73a.png?width=800)
Illustratorの「画像トレース」の自動化
200点近くのビットマップ画像をベクター化する機会があり、Illustratorの「画像トレース」の自動化について考えてみました。
「画像トレース」って
「画像トレース」はビットマップ画像をベクター化する機能です。
Illustrator CS2で「ライブトレース」として導入
Illustrator CS6で「画像トレース」に変更。パネル化
ライブペイントと一緒に使うとよいですね。
イラレの凄い人達が色々教えてくれて本当に有難いけど初心者にはツールなどの専門用語が飛び交っててマジで何言ってんのかわからんって人も多いだろう。僕もたまにある。
— トラノスケ🐻🎨イラストレーター (@to_ranosuke) March 26, 2023
何度も言うけどとりあえず「画像トレース」と「ライブペイント」これだけ覚えればJPG画像からイラレデータのイラストは作れるぞ。 pic.twitter.com/sj1ubjCZvJ
隙間オプションの設定と合わせて。
ライブペイントを扱う上でチェックしておきたいのが「隙間オプション」。
— DTP Transit (@DTP_Transit) February 14, 2021
線に見えても塗りの場合、隙間を閉じずに塗りつぶすオプションです。 pic.twitter.com/I4DICsuYae
なお、Photoshopで次のような“下ごしらえ”を行うと精度が向上します。
レベル補正などを実行し、メリハリを付ける
ゴミやノイズを削除しておく
[画像解像度]で「ディテールの保持」を選択し、解像度を上げる
![](https://assets.st-note.com/img/1679897525968-wlPNyNrygy.png?width=800)
デフォルトで入っているサンプルスクリプト
Illustratorの[ファイル]メニューの[スクリプト]には、ずばり[画像トレース]という項目があります。
![](https://assets.st-note.com/img/1679865768530-jKUyhlcsHH.png?width=800)
このコマンドは、次のディレクトリにある「画像トレース.jsx」というJavaScriptファイルを参照して実行するというもの。
/Applications/Adobe Illustrator 2023/Presets.localized/ja_JP/スクリプト/画像トレース.jsx
参照先と書き出し先のディレクトリを順番に聞いてくれ、いわゆる「バッチ処理」(指定したフォルダー内のファイルへの一括処理)を実行します。
![](https://assets.st-note.com/img/1679865920909-OdmrzAQViI.png?width=800)
なお、次のような処理が行われたIllustratorファイルが生成されるだけです。
プリセット:「白黒」が選ばれる
画像トレースされた状態で「拡張」はされていない
つまり、以下のような意図と異なります。
プリセット:プリセットを指定したい
拡張までしたい
拡張までしたい
Ten Aさんのブログ記事で画像トレース関連のJavaScriptが解説されています。
この記事によると、次の1行を加えることで「拡張」まで行えるようになります。
t.tracing.expandTracing();
プリセットの指定
ちょっと面倒なのが、プリセットの指定。
var tracingPresets = app.tracingPresetsList;
t.tracing.tracingOptions.loadFromPreset(tracingPresets[3]);
tracingPresets[3] ように番号で指定するわけですが、これがよくわかりません…
というのも[画像トレース]パネル上部の6つのアイコンと[プリセット]のポップアップは一致せず、どちらを参照するのがよくわからないのです。
![](https://assets.st-note.com/img/1679897214690-5QK05VOf3i.png?width=800)
自作プリセット
多くの画像に対して一括処理をかけていく際、重要なのがプリセットです。
いずれかの画像に対してパラメーターを追い込み、自作のプリセットとして保存します。
![](https://assets.st-note.com/img/1679898305503-jal0aae9xF.png?width=800)
その際、白い領域が透明になるように[ホワイトを無視]オプションをONにしておくのがポイントです。
ChatGPTに聞いてみた
バッチ処理をいったん忘れて、選択している配置画像に対して設定する方法についてChatGPTに聞いてみました。
![](https://assets.st-note.com/img/1679875318069-Rwo9rJYSD7.png?width=800)
こちらはプリセットを番号でなく、名前で指定し、さらに拡張まで行ってくれます。
var selectedObjects = app.activeDocument.selection;
if(selectedObjects.length > 0) {
for(var i = 0; i < selectedObjects.length; i++) {
var tracedObject = selectedObjects[i].trace();
tracedObject.tracing.tracingOptions.loadFromPreset("Default");
tracedObject.tracing.expandTracing();
}
}
Keyboard Maestroでは次のようにArgumentsを使って指定するのが吉。
![](https://assets.st-note.com/img/1679875409577-8Xr4ApPhod.png?width=800)
サンプルスクリプトを改良する
サンプルスクリプトの77-80行目を
// Trace the placed item
var t = p.trace();
t.tracing.tracingOptions.loadFromPreset(tracingPresets[3]);
app.redraw();
次のように変更します。
// Trace the placed item
var t = p.trace();
t.tracing.tracingOptions.loadFromPreset("sw"); // プリセットを指定
t.tracing.expandTracing(); // 画像トレースを拡張
app.redraw();
これでバッチ処理をかけながら、拡張まで行えます。
パスの調整(軽量化)
「画像トレース+拡張」を実行後、パスの調整が必要です。
アンカーポイントの数を確認
[ドキュメント情報]パネルを開き、パネルメニューから[オブジェクト]を選択すると、アンカーポイントの数を調べられます。
![](https://assets.st-note.com/img/1679964041094-Gd64fIRVpf.png?width=800)
パスの単純化
パスの軽量化の有効なのが[パスの単純化]コマンドです。
![](https://assets.st-note.com/img/1679944903310-vJODULXF3Y.png)
なお、パスの単純化はアクション化できます。
スムーズツール
ツールバーの[スムーズツール]でパス上をさするようにドラッグしてパスをスムーズにします。
パスファインダー(合流)
同じカラーで別のオブジェクトが隣り合う場合のみ合体するのが「合流」です。
Smart Remove Brush Tool
VectorScribeに同梱されている[Smart Remove Brush Tool]を使うと、パスをなぞるだけでアンカーポイントを減らすことができます。
![](https://assets.st-note.com/img/1679945256334-MNPC5NTQSu.png)
VectorScribeと同じAstute Graphicsから出ているVectorFirstAidの[Super Smart Remove points on paths]を使えば、クリックするだけで完了です。
![](https://assets.st-note.com/img/1679945189980-OBr2yYrTuF.png)
option + クリックで、オプションを設定するダイアログボックスが表示されます。値を上げるほどにアンカーポイントの数は減りますが、意図しない形状になってしまうことがあります。
![](https://assets.st-note.com/img/1679945331231-FIrDUfElso.png?width=800)
「20」ですと、スキマが生じてしまうことがありますので、パスファインダーの[合流]をかけてオブジェクトが隣接している場合には「2」など、かなり数字を落としてつかいましょう。実際のところ、「2」とか「3」くらいが無難です。
画像トレースのワークフローの全容とKeyboard Maestroパレット
画像トレースのワークフローの全容をまとめてみました。
![](https://assets.st-note.com/img/1679946365521-T192UPNxCP.png?width=800)
メニューコマンド
[画像トレース]パネル
を実行するのが面倒ですし、さらに軽量化の調整を考えると絶望的です。
そこで、Keyboard Maestroパレットにまとめてみました。
![](https://assets.st-note.com/img/1679946466356-w0ViqdXpua.png)
画像トレースを実行したら、[画像トレース]パネルが自動的に開くように設定しています(というか、こうあるべきですよね…)。
![](https://assets.st-note.com/img/1679946530509-5r0oCCKIIl.png?width=800)
バッチ処理後
複数ファイルに対してバッチ処理した後、複数の.aiファイルをまとめたいときがあります。
1つずつ開いてコピー&ペーストするのもありだけど、200ファイルとかあると絶望的。こういうときこそ、スクリプトを使いましょう。
DIMENSHOP 技術部さんのスクリプト、Illustrator 2023でも使えました!(感謝)
まとめ
多くのビットマップ画像をベクター化し、1ファイルにするには、次のようなワークフローを取ります。
![](https://assets.st-note.com/img/1679966072319-zccomom6qz.png?width=800)
ダウンロード
したたか企画さん謹製のKeyboard Maestroプラグイン MaestroPack が必要です。
ここから先は
![](https://assets.st-note.com/production/uploads/images/7425662/profile_a5ee2a599e9dc5d7e0de3dfdbdf04018.jpg?fit=bounds&format=jpeg&quality=85&width=330)
DTP Transit 定期購読マガジン
マガジン限定記事やサンプルファイルをダウンロードできます。
定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5