スクリプト
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 が利用できる環境
インストール
VariableFont.aux2を AviUtl2 のプラグインフォルダにコピーします。- 例:
C:\ProgramData\aviutl2\Plugin\
- 例:
VariableFontModule.mod2とVariable Font Object.obj2を Script 配下へコピーします。- 例:
C:\ProgramData\aviutl2\Script\VariableFontObj\
- 例:
- AviUtl2 を再起動します。
ビルド出力は通常以下です。
target\release\VariableFont.dll(配置時にVariableFont.aux2へ変更)target\release\VariableFontModule.dll(配置時にVariableFontModule.mod2へ変更)
使い方(基本)
- 拡張編集(ExEdit2)でオブジェクト追加から
テキスト(VF)を追加します。 テキストに表示したい文字列を入力します(未入力だとサンプルテキストを表示)。フォント設定でフォント・サイズ・色を調整します。- 可変フォントの場合は
バリアブル軸でWeightなどを調整します。 - 必要に応じて
影設定/縁取り設定/レイアウトを調整します。
使い方(カスタムオブジェクト)
- オブジェクト追加から
Variable Font Object(Variable Font Object.obj2)を追加します。 テキスト、フォントファイル/フォント名(システム)、サイズ、文字色を設定します。- 可変フォントの場合は
バリアブル軸を調整します。 - 必要に応じて
個別オブジェクト化を切り替えます。 - 文字単位で差分を付けたい場合は
文字別制御タグ(配列)を利用します。
カスタムオブジェクトでは、本文内制御タグに加えて 文字別制御タグ(配列) による後段上書きが可能です。
設定項目
フォント設定
フォントファイル:.ttf/.otfを直接指定(最優先)フォント: システムフォントのファミリ名(例:Noto Sans JP)サイズ: フォントサイズ文字色: 文字の色B/I: 太字 / 斜体(標準のテキストオブジェクトの動作に合わせた疑似スタイルです。)字間: 文字間隔
フォントの優先順位は フォントファイル → フォント → 既定フォント(Yu Gothic UI)です。
影設定
影を表示: 影の有効/無効影色: 影の色影X/影Y: 影のオフセット影濃度: 影の不透明度(0〜100)影ぼかし: ぼかし量
縁取り設定
縁取りを表示: 縁取りの有効/無効縁取り色: 縁取りの色縁取り幅: 縁の太さ縁取りスタイル:丸/角切り抜き: 縁取り表示時の「本文の描画」の扱いを切り替えます(縁取りのみ表現などに利用)
バリアブル軸
フォントが対応している軸のみが適用され、非対応の軸は無視されます。値はフォントが持つ範囲へ自動的にクランプされます。
Weight(wght): 太さWidth(wdth): 幅Slant(slnt): 斜体の傾きOptical Size(opsz): オプティカルサイズItalic Axis(ital): イタリック軸Grade (GRAD)(GRAD)ほか、いくつかのカスタム軸軸更新モード:初回キャッシュ: 初回に取得した軸情報を使い回します(軽い)リアルタイム: 毎回取り直します(アニメさせる用途向け・重くなる可能性あり)
※ 現在の UI は「よく使う軸を固定で用意する」方式です(任意の 4 文字タグを UI から追加する機能はありません)。
レイアウト
横幅/縦幅: 描画領域(0 で自動)文字揃え: 左/中央/右 × 上/中/下行間: 行間調整
注意: 横幅 か 縦幅 のどちらかを 0(自動)にしている場合、折り返しが無効になります。折り返しを使いたい場合は両方に値を入れてください。
カスタムオブジェクト固有
個別オブジェクト化: ON で文字ごとにmultiobject描画、OFF で単一画像描画文字別制御タグ(配列): 表示文字インデックスごとに制御タグを後段で適用行揃え: 左/中央/右(行単位)
本文内制御タグ:
<#...>: 文字色<s...>: サイズ<@...>: フォント/擬似スタイル<v...>: 可変軸(位置指定またはkey=value指定)
<v...> の位置指定は次の順です。
weightwidthslantopszgradxtraxopqyopqytlcytucytasytdeytfiital
よくある困りごと
- 可変軸が効かない
- フォント自体がバリアブルフォントではない可能性があります。
- Windows のバージョンが古い場合、可変軸関連が利用できないことがあります。
- フォントが見つからない
フォントは「ファミリ名」です(インストール済みフォントの表示名を指定)。確実にしたい場合はフォントファイルを指定してください。
開発者向け(ビルド)
- Rust stable(
x86_64-pc-windows-msvc) cargo build --workspace --releaseでビルド- PowerShell から:
build_release.ps1(aviutl2-cliによるビルド・配置)build_release_module.ps1(VariableFontModule.mod2)
ライセンス
このリポジトリのライセンスは LICENSE を参照してください。