汎用プラグイン

SVG_TRACE

概要

画像やレイヤーをベクター化して SVG で描画・書き出す

詳細説明

SVG_TRACE

画像ファイルや別レイヤーの絵をトレースしてベクター(SVG)に変換し、その結果を表示するカスタムオブジェクトです。
白黒の二値か、2 ~ 16 色のカラーでトレースできます。トレースした SVG は、オブジェクトメニューから
SVG_H のオブジェクトとして取り込めます(線や塗りを編集するため)。「自動書き出し」を ON にすれば、ファイルにも書き出します。

  • バージョン: SVG_TRACE.obj2 v0.1.3 / プラグイン svg_trace v0.1.3(スクリプトモジュール svg_trace.mod2 と汎用プラグイン svg_trace.aux2 の組)
  • 作者: by HexBrowns
  • 必要環境: AviUtl2 2.1.10 以上

インストール

  1. Releases から zip をダウンロードして展開する
  2. 中の Plugin フォルダと Script フォルダを、AviUtl2 のデータフォルダ(既定は C:\ProgramData\aviutl2)へコピーする。
    下の表の 3 つが置かれます
  3. AviUtl2 を再起動する(起動中にコピーした場合も、再起動するまで読み込まれません)
  4. オブジェクトの追加から「SVG_TRACE」を置く(HexScript の中)
パス 内容 必須か
Script\svg_trace\SVG_TRACE.obj2 カスタムオブジェクト本体 必須
Script\svg_trace\svg_trace.mod2 トレースとラスタライズを行うモジュール 必須
Plugin\svg_trace\svg_trace.aux2 SVG の書き出し先の切り替えと、「SVG_Hへ送る」「最新SVGを確認書き出し」メニュー 書き出し先をプロジェクトの隣にするとき・SVG_H へ送るときに必要

「SVG_Hへ送る」を使うには、SVG_H(Plugin\svg_h\svg_h.aux2)も入っている必要があります。
SVG_H は HexBrowns/svg_h の Releases から入れられます。

svg_trace.mod2 が読み込めないときや、トレースに失敗したときは、何も表示されません(エラーも出ません)。

ビルド(開発者向け)

リポジトリのルートで実行します。ビルドした .mod2 と .aux2、SVG_TRACE.obj2 を C:\ProgramData\aviutl2 の下(上の表の場所)へ配置します。

.\build.ps1

使い方

画像ファイルをトレースする

  1. 「SVG_TRACE」オブジェクトを置く
  2. 入力 をファイル(初期値)のまま、画像ファイル でトレースしたい画像を選ぶ
  3. モード を選ぶ。二値は黒いインクだけ、カラーは色ごとの面になる
  4. 二値なら 二値閾値、カラーなら 色数 で見え方を整える。細かいゴミが多ければ スペックル除去 を上げる

別レイヤーの絵をトレースする

  1. 入力 をレイヤーにする
  2. レイヤー位置 と レイヤー で読み込むレイヤーを決める。初期値(相対指定・1)は、SVG_TRACE の 1 つ下のレイヤー
  3. モードなどは上と同じ

読み込んだレイヤーは、そのまま画面にも描かれます(SVG_TRACE が隠すことはありません)。

SVG_H で編集する

  1. トレースした後、タイムラインのオブジェクトを右クリックし、「SVG_TRACE」→「SVG_Hへ送る」を選ぶ
  2. 最後にトレースした SVG を読み込んだ SVG_H オブジェクトが、マウスのあるレイヤー・フレームに作られる

SVG_H が読むのは、最後にトレースした結果(Plugin\svg_trace\latest_trace.svg。下の「SVG の書き出し先」)を
書き出し先のフォルダへ handoff_{時刻}.svg として複製したファイルです。後でトレースし直しても、作った SVG_H の中身は変わりません。
自動書き出しが OFF のままでも使えます。

SVG_TRACE を 2 つ以上置いているときは、どれであれ最後にトレースした方が送られます。

パラメータ

入力の設定

項目 範囲 / 選択肢 初期値 説明
入力 ファイル / レイヤー ファイル トレースする元
画像ファイル ファイル選択 (空) 入力がファイルのときにトレースする画像。空なら何も表示しない
レイヤー位置 絶対指定 / 相対指定 相対指定 入力がレイヤーのときの、「レイヤー」の数え方。絶対指定はレイヤー番号そのもの、相対指定は SVG_TRACE のレイヤーからの差(プラスで下のレイヤー)
レイヤー -100 ~ 100 1 読み込むレイヤー。自分自身のレイヤーや 0 以下の番号になるときは何も表示しない

トレース

項目 範囲 / 選択肢 初期値 説明
モード 二値 / カラー 二値 二値は明るさで白黒に分け、黒い部分だけをインクとして残す(白い部分は透明)。カラーは色ごとの面に分ける
色数 2 ~ 16 8 カラーのときの色の細かさの目安。多いほど色の段階が細かくなる。二値では使わない
二値閾値 0 ~ 255 128 二値のとき、明るさがこの値より暗い部分をインクにする。上げるほどインクが増える。カラーでは使わない
スペックル除去 0 ~ 64 4 この大きさ(ピクセル)より小さい点やかけらを捨てる
角閾値 0 ~ 180 60 輪郭の曲がり方を角として残すかの基準の角度(度)

書き出し

項目 範囲 初期値 説明
出力SVG ファイル選択 (空) 自動書き出しのとき、書き出し先フォルダとは別にもう 1 本書くファイル。空なら書かない
自動書き出し ON / OFF OFF ON のとき、トレースするたびに書き出し先フォルダへ SVG を書き、「出力SVG」も上書きする(下の「SVG の書き出し先」)。OFF なら書き出し先フォルダには何も作らない

SVG の書き出し先

トレースするたびに、最後の結果を Plugin\svg_trace\latest_trace.svg の 1 本だけに上書きします(中身が同じなら書きません)。
「SVG_Hへ送る」と「最新SVGを確認書き出し」はこれを読みます。

自動書き出しが OFF のときは、これ以外のファイルを作りません。 ON にすると、トレースするたびに次のフォルダへ書き出します
(OFF から ON にしたときは、その場でトレースし直して書きます)。

状態 フォルダ
プロジェクトを保存済み(開いた・保存したとき) プロジェクトと同じフォルダの SVG_export\
未保存 Plugin\svg_trace\export\
入力 ファイル名
ファイル {画像名}_{000 からの連番}.svg(トレースし直すたびに番号が増える)
レイヤー layer{レイヤー番号}_{フレーム番号}.svg

どちらの場合も、同じフォルダの latest.svg が最新の結果で上書きされます。出力SVG にファイルを選んでいれば、そこにも同じ結果を上書きします。

エクスポートメニューの「SVG_TRACE」→「最新SVGを確認書き出し」を選ぶと、最後にトレースした結果(latest_trace.svg)を、
上の書き出し先のフォルダに trace_{時刻}.svg として複製します。自動書き出しが OFF でも使えます。

フォルダの切り替え(と「SVG_Hへ送る」「最新SVGを確認書き出し」で複製するフォルダ)は svg_trace.aux2 が決めます。
入っていないときは、前回の書き出し先か Plugin\svg_trace\export\ のままになります。

注意

  • トレースは重い処理です。 設定を変えるとトレースし直します。レイヤー入力ではフレームごとにトレースし直します。
    自動書き出しを ON にしていると、そのたびに layer…_{フレーム}.svg が書き出され、動画を出力するとフレームの数だけ SVG ファイルができます
  • ファイル入力では、同じパスの画像ファイルを上書きして差し替えると(大きさか更新日時が変われば)トレースし直します
  • 長辺が 2048 ピクセルを超える画像は、長辺 2048 に縮めてからトレースします。表示される大きさも縮めた後の大きさになります
  • レイヤー入力では、読み込むレイヤーのフィルタ効果は掛かっていない状態の絵をトレースします
  • カラーでは、半透明の部分は色をそのままにして不透明として扱います(完全に透明な部分だけが透明のまま残ります)
  • SVG_TRACE を 2 つ以上置いても、それぞれが自分のトレース結果を表示します(v0.1.2 までは、別の SVG_TRACE の結果に入れ替わることがありました)。ただし「SVG_Hへ送る」で送られるのは、最後にトレースした方です