aviutl_cachetext icon indicating copy to clipboard operation
aviutl_cachetext copied to clipboard

キャッシュテキスト

$VERSION$ ( $GITHASH$ ) by oov

キャッシュテキストは、生成したテキストを画像としてキャッシュすることで描画処理を効率化する拡張編集用スクリプトです。

画像としてキャッシュするため、表示速度を利用したアニメーション、サイズのリアルタイムな変更などのような機能は使用できません。

静的なテキストを表示する際の軽量化にお使いください。

基本的な使い方は動画を、ダウンロードは Releases の Assets から、更新履歴は CHANGELOG.md を参照してください。

動作環境

  • AviUtl 1.10
  • 拡張編集 0.92
  • 拡張編集RAMプレビュー 0.3rc7

以上が導入されていて、かつ script フォルダーに Extram.dll がある環境で動作します。

既知の問題点

  • テキスト本文が同じだと別のテキストオブジェクトになってもキャッシュが切り替わらない
    • 本文に何も差異がない場合スクリプトからは区別が付きません
    • テキスト末尾に <#> を加えるなど、本文に変化を加えれば回避できます
  • キャッシュモードを 1 にした状態で 文字毎に個別オブジェクト を切り替えたときや、一括キャッシュ削除を行った場合にテキストが描画されない
    • 状態が切り替わったことを事前に検出する方法がないために起こる問題です
    • カーソル移動などでプレビューが更新されると正常に戻るので実用上の問題はないです

インストール方法

exedit.auf と同じ場所に キャッシュテキスト.exascript をコピーすれば完了です。

使い方

拡張編集の右クリックメニューから メディアオブジェクトの追加キャッシュテキスト を選ぶと、オブジェクトが追加されます。

ここにテキストを書く の部分を書き換えると表示されるテキストを変更できます。
その他のパラメーターも通常のテキストオブジェクトと同じように扱うことができます。

1行目にある <?m,s= 0 ,[==[0 の部分を書き換えると、キャッシュの活用方法を切り替えることができます。
0 以外に -11 が設定可能で、意味はそれぞれ以下の通りです。

  • -1 - キャッシュ無効
  • 0 - オブジェクトの編集中のみキャッシュ無効
  • 1 - キャッシュ有効

バージョン 0.6 から 0 のときの挙動が変わっています。
通常の用途であれば 0 のままで十分にキャッシュの恩恵が得られます。
1 にするとオブジェクトの編集中にもキャッシュが活用されより快適に作業ができるようになる可能性がありますが、キャッシュが有効の間はサイズの変更などがすぐには反映されなくなります。

キャッシュデータはテキスト本文が変わると自動的に再生成されます。

キャッシュデータについて

キャッシュデータは各レイヤーごとに最後の1つのみを保持しています。
例えばレイヤー1に こんにちはさようなら が順番に配置されているとき、 さようなら を表示した時点で こんにちは のキャッシュは消えています。

最近使用されていないキャッシュデータは定期的に削除されます。
ただし、この削除処理はどこかのレイヤーでキャッシュテキストが使われているときに、10秒間隔でしか実行されません。

画像データは Extram.dll を通じて AviUtl ではなく ZRamPreview.exe に保存されます。

一括キャッシュ削除

AviUtl のメニューから 編集Extramキャッシュ消去 を使うと、全てのレイヤーのキャッシュを削除することができます。
(※この操作はキャッシュテキストだけでなく Extram.dll を利用して保存したすべてのデータが削除されます)

手動で削除した直後の表示では文字が描画されませんが、カーソルを動かすなどでプレビューを更新すると正常に戻ります。

Contributors

  • neofuji