Skip to content

Repository files navigation

FontPreview

AviUtl ExEdit2 向けの汎用プラグイン(.aux2)です。 フォント一覧を検索・絞り込みし、選択フォントでプレビュー表示したり、拡張編集へオブジェクトを追加(エイリアス貼り付け相当)できます。選択中のテキストオブジェクトとプレビュー文字列を同期することもできます。

対応環境

  • AviUtl2 + ExEdit2(2.1.0で動作確認)
  • Windows 10 以降推奨

インストール

配布パッケージを再生ウィンドウにドラッグアンドドロップしプラグインの導入を承認してください。 自動的にC:\ProgramData\aviutl2\Plugin\FontPreviewへ展開されます。

英語と簡体中文の差分言語ファイルを同梱しています。AviUtl2の「設定」→「言語の設定」で言語を切り替えると、Font Previewの画面、操作結果、D&D項目も切り替わります。日本語は既定表示です。

独自UIはAviUtl2のUIフォントを優先し、言語ファイルの__FontFallbackFontsに指定されたシステムフォントを不足グリフ用のフォールバックとして使用します。簡体中文ではMicrosoft YaHei UIMicrosoft YaHeiSimSunの順に利用可能なフォントを検索します。

配布パッケージのpackage.iniaviutl2.toml[release]から自動生成され、インストール説明のpackage.txtは日本語・英語・簡体中文を併記しています。

使い方

プラグインを読み込むと、AviUtl2のウィンドウ一覧へFont Previewが追加されます。

1) フォントを探す

  • 上部の検索欄: フォント名で絞り込み
  • 種類フィルタ: すべて / システム / ローカルフォント / プラグイン専用 / お気に入り / 可変フォント
  • ローカルフォント: AviUtl2のFontフォルダ(通常はC:\ProgramData\aviutl2\Font
  • プラグイン専用: 同じ場所のFontLibraryフォルダ
  • 星ボタンでお気に入りを切り替えられます
  • 星操作でローカルフォント / プラグイン専用を連動を有効にすると、お気に入り登録時はFontへ、解除時はFontLibraryへフォントファイルを移動します
  • システムフォントの星操作はFont Preview内のお気に入りだけを変更し、フォントファイルは移動しません
  • 名前順、種類順、お気に入り優先、可変フォント優先で並び替えできます

.ttf.otf.ttcをAviUtl2へドラッグ&ドロップし、表示されるFont Previewへフォントを追加を選ぶと、ファイルをFontフォルダへコピーして一覧を自動更新します。同名ファイルがある場合は上書きしません。

2) プレビューする

  • 一覧からフォントを選択すると、右側のプレビューにサンプルテキストを描画します
  • サンプルテキスト: 画面下の入力欄で変更
  • 選択に同期: 選択中またはフォーカス中のオブジェクトのテキストへ自動追従
  • 固定: 手入力したプレビューテキストを保持
  • サイズ・文字色・背景色: スライダーとカラーピッカーで変更
  • 名前をコピー: AviUtl2へ指定するフォントファミリ名をコピー

同期は定期的なポーリングではなく、オブジェクトの選択・更新・シーン変更イベントを契機に行います。イベント処理とは別のワーカーが選択テキストを読み取り、UIはコピー済みの文字列だけを参照します。選択に同期を有効にした直後は、取得済みの最新テキストがあればすぐに反映されます。空文字列や対象のない状態では、現在のプレビューテキストを上書きしません。

3) 拡張編集へ追加する(ボタン)

右側のプレビュー下部にあるボタンで、選択フォントを使ったオブジェクトを現在位置へ追加します。

  • テキスト + : 標準の テキスト オブジェクトを追加
  • VF + : Variable Font TextVariableFont プラグイン)を追加
  • VFO + : Variable Font Objectを追加
  • 選択中に適用 : 選択中またはフォーカス中の既存オブジェクトへ適用

注意:

  • VF +を使うには、VariableFont.aux2がインストールされている必要があります。
  • VFO +を使うには、Variable Font Objectがインストールされている必要があります。
  • どちらも「エイリアスからオブジェクト作成」を使って追加します(レイヤー/フレームは現在の編集位置)。

4) 既存オブジェクトへフォントを適用する(ダブルクリック)

フォント一覧をダブルクリックすると、選択中(またはフォーカス中)のオブジェクトに対してフォント指定を更新します。

  • テキスト(標準テキスト): フォント を更新
  • Variable Font Text(テキスト(VF)): フォント または フォントファイル を更新
  • Variable Font Object: フォント または フォントファイル を更新

可変フォント系の2種類は、フォントの取得元に応じて次のように更新します。

  • システムフォント選択時: フォント にファミリ名を入れ、フォントファイル は空
  • ローカルフォント選択時: フォント は空、フォントファイル にフォントパスを入れます

設定ファイル

お気に入り、絞り込み、並び順、同期モード、プレビュー設定は次へ保存されます。

C:\ProgramData\aviutl2\Plugin\FontPreview\settings.json

よくある困りごと

  • ローカルフォントまたはプラグイン専用のフォントが出ない
    • FontまたはFontLibrary.ttf/.otf/.ttcを配置し、再読み込みを押してください。
  • ドラッグ&ドロップでフォントを追加できない
    • 対応形式は.ttf/.otf/.ttcです。同名ファイルがFontフォルダにある場合は追加しません。
  • 星を切り替えてもAviUtl2のメニューが変わらない
    • フォントファイル移動後はAviUtl2を再起動してください。
  • VF +で追加できない
    • VariableFont.aux2が未導入、またはeffect名が一致していない可能性があります。
  • 選択に同期が更新されない
    • 対象オブジェクトにテキストVariable Font TextVariable Font Objectのいずれかがあることを確認してください。
    • 同期は編集イベントを契機にするため、モーダルウィンドウを閉じた後は、オブジェクトの再選択やテキスト変更など次の編集イベントで再開します。

開発者向け

Rust版の実装はsrc/に分割しています。

  • catalog.rs: システム・ローカルフォント列挙と可変軸情報
  • preview.rs: DirectWrite / Direct2Dによるオフスクリーンプレビュー
  • settings.rs: お気に入り・フィルター・並び順などの永続化
  • alias.rs: AviUtl2エイリアス生成
  • actions.rs: オブジェクト作成・既存オブジェクト更新・選択テキスト取得
  • ui.rs: egui UIと画面状態
  • lib.rs: プラグイン登録、共有編集状態、イベント駆動の同期ワーカー

旧C++実装のFontPreviewNew.cppとVisual Studioプロジェクトは、移行確認用として残しています。

cargo test
cargo clippy --all-targets -- -D warnings
cargo build --release

Rust 2024 editionを使用し、主なAviUtl2依存関係はaviutl2 = 0.39aviutl2-eframe = 0.39です。リリースビルドの生成物はtarget/release/FontPreview.dllです。手動配置する場合は、このDLLをFontPreview.aux2へ名前変更します。

通常の進行ログと同期診断ログは、AviUtl2のログへVERBOSEレベルで出力します。警告とエラーはそれぞれWARNERRORのまま出力します。

aviutl2-cliを利用する場合は、aviutl2.tomlからプレビュー・パッケージ作成できます。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages