スクリプト

Open Glow

スクリーンショット

概要

光学に基づいて自然に減衰する美しいグロー

詳細説明

Open Glow

Open Glow ON/OFF比較

AviUtl ExEdit2 用のグロースクリプトです。光の物理法則(逆二乗則)に従って減衰するリアルなグローを、GPU処理(HLSLピクセルシェーダー)により標準の発光/グローと同等以下の負荷で実現します。

After Effects プラグイン「Deep Glow」(Plugin Everything) のコンセプトを参考にした非公式・独立実装であり、同社とは無関係です。

作者: 絵に描いた虹

特徴

  • 物理的な減衰 — グロー光の裾が距離のp乗に反比例して減衰。既定の p=2 は現実の光の逆二乗則そのもの
  • 減衰指数を自由に調整 — 霞んだ広い光(p小)から芯の締まった光(p大)まで、負荷を変えずに可変
  • リニア光ブレンド — ガンマ補正でリニア空間に変換してから光を加算(Deep Glow の Exposure/Gamma と同じ考え方)
  • 縦横比(Aspect Ratio) — 光を横/縦方向に伸ばすアナモルフィック表現。角度指定で斜めの光線も可能
  • ディザ — 8bit出力時のバンディング(縞)を防止。モノクロディザ対応
  • 軽量 — 解像度を半分ずつ落とすミップピラミッド方式。フルHDでも総処理画素は元画像の約2.7倍相当
  • しきい値(ソフトニー付き)、光色、グローのみ出力、フィルタオブジェクト対応

ダウンロード / インストール

GitHub Releases から最新版の aviutl2_script_OpenGlow-r*.au2pkg.zip をダウンロードし、AviUtl2 のプレビュー画面へドラッグ&ドロップしてください。

インストール後、次の場所に追加されます。

  • アニメーション効果 / フィルタ効果: 「光効果」カテゴリ → Open Glow
  • フィルタオブジェクトとしても使用可能(画面全体にかける場合)

手動で導入する場合

OpenGlow.anm2 を C:\ProgramData\aviutl2\Script\(またはその直下のフォルダ)にコピーしてください。更新時はコピー後に AviUtl2 で「キャッシュを破棄」を実行すると再読み込みされます。

パラメータ

項目 意味 目安
強さ グロー光の露出(%)。リニア空間で光量に乗算 100で等倍。物足りなければ200〜400
拡散 グローの広がり半径(px)。処理段数もここから自動決定 300前後
減衰 減衰指数 p。光は距離のp乗に反比例して暗くなる 2 = 逆二乗則(物理的に正しい)
しきい値 この明るさ(%)以下はグロー光源にしない(ソフトニー付き) 0 = Deep Glowと同じ全画素発光。グロー的に使うなら20〜60
ガンマ リニア光変換のガンマ値 2.2(sRGB相当)。上げると裾が持ち上がり柔らかい印象
合成モード リニア加算 / スクリーン / グローのみ リニア加算が物理的。グローのみは別レイヤー合成用
光色 グロー光への色フィルタ(乗算)。「透明」で元の色のまま カラグレ前提なら透明のまま
縦横比 0=円形。プラスで横方向、マイナスで縦方向に光が伸びる(±10で11倍の細長さ) アナモルフィックレンズ風は +2〜4
角度 光線の伸びる方向を回転(度、時計回り) 縦横比が0のときは効果なし
ディザ グラデーションの縞模様(バンディング)を防止する極小ノイズ(詳細は下記) 通常はON
モノクロディザ ディザの粒子を無彩色にする(詳細は下記) 拡大時に色付き粒子が気になる場合のみON
サイズ固定 オブジェクトの領域拡張をしない はみ出し不要なら ON で軽量化

ディザとは?

グローのような滑らかな明るさのグラデーションを最終的に8bit(256階調)の映像に出力すると、階調が足りずに「等高線」のような縞模様が見えることがあります。これがバンディングです。暗いグラデーションほど目立ちます。

ディザをONにすると、画素ごとに±半階調未満のごく小さなノイズを加えて階調の境目をランダムに散らします。すると縞がノイズに変換されて人間の目にはほぼ見えなくなり、実際より階調が多い(=滑らかな)映像に見えます。写真のフィルム粒子と同じ原理で、ノイズ自体は等倍表示ではまず知覚できません。迷ったらONのままで問題ありません。

モノクロディザは、そのノイズの種類を変えるオプションです。通常のディザはR/G/Bにそれぞれ別のノイズを加えるため、大きく拡大するとわずかに色の付いた粒子になります。モノクロディザをONにするとRGBに同じノイズを加えるため、粒子が白黒(無彩色)になります。縞を消す効果はどちらもほぼ同じなので、拡大したときの粒子の色味が気になる場合だけONにしてください。

仕組み

素直に逆二乗カーネル 1/r² で畳み込むと非現実的な重さになりますが、**「σが2倍ずつ増えるガウスぼかしの列を等しい重みで足すと、合成カーネルの裾が正確に 1/r² に漸近する」**という数学的性質を使い、ミップピラミッド1往復だけで済ませています。

  1. 前処理 — ガンマ補正で画素値をリニア光量に変換し、しきい値・光色を適用。縦横比使用時はここで回転+短軸圧縮した「グロー空間」に変換(楕円PSFが正確に得られる)
  2. ダウンサンプル — 解像度を半分ずつ落とす(13タップフィルタでちらつき防止)。1段ごとにぼかし半径が2倍相当
  3. アップサンプル累積 — 最深段からテント補間で拡大しつつ、1段ごとに重み q = 2^(2−p) を掛けて足し戻す。p=2 なら等重みで裾が 1/r² に。「拡散」の端数は最上段の重みで補間するため半径アニメーションも滑らか
  4. 合成 — リニア空間で元画像に光を加算してガンマ空間へ戻し、IGN(Interleaved Gradient Noise)ディザで量子化バンディングを防止

使い方のヒント

  • 発光の代わり: しきい値0〜10、拡散400、減衰2。「拡散大きめ・芯はっきり」が1エフェクトで出る
  • 弱め二重グロー: 強さ30〜60で2つ重ねる。減衰を2と3で変えると質感の異なる光が層になる
  • アナモルフィック風: 縦横比2〜4+しきい値高め。青系の光色を乗せると映画レンズ風
  • カラグレ前提: 光色は「透明」のまま、後段のグラデーションマップ等で色付けすると馴染む

既知の仕様・制限

  • グローのはみ出しは「拡散×1.25」(縦横比適用後の楕円範囲)まで領域拡張して確保。環境設定の最大画像サイズでクリップされます
  • 半透明部分は乗算済みアルファのまま処理するため、アンチエイリアス縁のグローはわずかに控えめになります(縁のフリンジ防止を優先)
  • 縦横比を大きくすると、最も細かい光の芯も引き伸ばされます(アナモルフィックな見た目として意図した挙動です)

ライセンス

MIT License — Copyright (c) 2026 絵に描いた虹

謝辞・参考