スクリプト

VariableFont

概要

可変フォント対応の文字を影や縁取り付きで表示するプラグイン

詳細説明

Variable Font(テキスト(VF) / Variable Font Object)

AviUtl ExEdit2 向けの「テキスト生成」メディアオブジェクトとカスタムオブジェクトです。
DirectWrite/Direct2D でテキストを描画し、バリアブルフォント(可変軸)をトラックバーで調整できます。

構成

  • VariableFont.aux2: 汎用プラグイン本体(テキスト(VF)フィルタを内蔵)
  • VariableFontModule.mod2: Script モジュール(render_to_buffer を提供)
  • Variable Font Object.obj2: カスタムオブジェクト(文字別描画、制御タグ対応)

対応環境

  • AviUtl2 + ExEdit2
  • Windows 10 1809 以降を推奨(可変軸は DirectWrite のバージョンに依存)
  • DirectX 11 が利用できる環境

インストール

  1. VariableFont.aux2 を AviUtl2 のプラグインフォルダにコピーします。
    • 例: C:\ProgramData\aviutl2\Plugin\
  2. VariableFontModule.mod2Variable Font Object.obj2 を Script 配下へコピーします。
    • 例: C:\ProgramData\aviutl2\Script\VariableFontObj\
  3. AviUtl2 を再起動します。

ビルド出力は通常以下です。

  • target\release\VariableFont.dll(配置時にVariableFont.aux2へ変更)
  • target\release\VariableFontModule.dll(配置時にVariableFontModule.mod2へ変更)

使い方(基本)

  1. 拡張編集(ExEdit2)でオブジェクト追加から テキスト(VF) を追加します。
  2. テキスト に表示したい文字列を入力します(未入力だと サンプルテキスト を表示)。
  3. フォント設定 でフォント・サイズ・色を調整します。
  4. 可変フォントの場合は バリアブル軸Weight などを調整します。
  5. 必要に応じて 影設定 / 縁取り設定 / レイアウト を調整します。

使い方(カスタムオブジェクト)

  1. オブジェクト追加から Variable Font ObjectVariable Font Object.obj2)を追加します。
  2. テキストフォントファイル / フォント名(システム)サイズ文字色 を設定します。
  3. 可変フォントの場合は バリアブル軸 を調整します。
  4. 必要に応じて 個別オブジェクト化 を切り替えます。
  5. 文字単位で差分を付けたい場合は 文字別制御タグ(配列) を利用します。

カスタムオブジェクトでは、本文内制御タグに加えて 文字別制御タグ(配列) による後段上書きが可能です。

設定項目

フォント設定

  • フォントファイル: .ttf / .otf を直接指定(最優先)
  • フォント: システムフォントのファミリ名(例: Noto Sans JP
  • サイズ: フォントサイズ
  • 文字色: 文字の色
  • B / I: 太字 / 斜体(標準のテキストオブジェクトの動作に合わせた疑似スタイルです。)
  • 字間: 文字間隔

フォントの優先順位は フォントファイルフォント → 既定フォント(Yu Gothic UI)です。

影設定

  • 影を表示: 影の有効/無効
  • 影色: 影の色
  • 影X / 影Y: 影のオフセット
  • 影濃度: 影の不透明度(0〜100)
  • 影ぼかし: ぼかし量

縁取り設定

  • 縁取りを表示: 縁取りの有効/無効
  • 縁取り色: 縁取りの色
  • 縁取り幅: 縁の太さ
  • 縁取りスタイル: /
  • 切り抜き: 縁取り表示時の「本文の描画」の扱いを切り替えます(縁取りのみ表現などに利用)

バリアブル軸

フォントが対応している軸のみが適用され、非対応の軸は無視されます。値はフォントが持つ範囲へ自動的にクランプされます。

  • Weightwght): 太さ
  • Widthwdth): 幅
  • Slantslnt): 斜体の傾き
  • Optical Sizeopsz): オプティカルサイズ
  • Italic Axisital): イタリック軸
  • Grade (GRAD)GRAD)ほか、いくつかのカスタム軸
  • 軸更新モード:
    • 初回キャッシュ: 初回に取得した軸情報を使い回します(軽い)
    • リアルタイム: 毎回取り直します(アニメさせる用途向け・重くなる可能性あり)

※ 現在の UI は「よく使う軸を固定で用意する」方式です(任意の 4 文字タグを UI から追加する機能はありません)。

レイアウト

  • 横幅 / 縦幅: 描画領域(0 で自動)
  • 文字揃え: 左/中央/右 × 上/中/下
  • 行間: 行間調整

注意: 横幅縦幅 のどちらかを 0(自動)にしている場合、折り返しが無効になります。折り返しを使いたい場合は両方に値を入れてください。

カスタムオブジェクト固有

  • 個別オブジェクト化: ON で文字ごとに multiobject 描画、OFF で単一画像描画
  • 文字別制御タグ(配列): 表示文字インデックスごとに制御タグを後段で適用
  • 行揃え: 左/中央/右(行単位)

本文内制御タグ:

  • <#...>: 文字色
  • <s...>: サイズ
  • <@...>: フォント/擬似スタイル
  • <v...>: 可変軸(位置指定または key=value 指定)

<v...> の位置指定は次の順です。

  1. weight
  2. width
  3. slant
  4. opsz
  5. grad
  6. xtra
  7. xopq
  8. yopq
  9. ytlc
  10. ytuc
  11. ytas
  12. ytde
  13. ytfi
  14. ital

よくある困りごと

  • 可変軸が効かない
    • フォント自体がバリアブルフォントではない可能性があります。
    • Windows のバージョンが古い場合、可変軸関連が利用できないことがあります。
  • フォントが見つからない
    • フォント は「ファミリ名」です(インストール済みフォントの表示名を指定)。確実にしたい場合は フォントファイル を指定してください。

開発者向け(ビルド)

  • Rust stable(x86_64-pc-windows-msvc
  • cargo build --workspace --releaseでビルド
  • PowerShell から:
    • build_release.ps1(aviutl2-cliによるビルド・配置)
    • build_release_module.ps1VariableFontModule.mod2

ライセンス

このリポジトリのライセンスは LICENSE を参照してください。