影を立体的に地面へ落とすアニメーション効果 / フィルタ効果.地面だけでなく壁や天井など任意角度の平面に影を落とせます.GroundShadow_S の拡張版です (変更点はこちら).
無印の AviUtl と AviUtl ExEdit2 の両方に対応しています.
- イラスト: 琴葉茜 琴葉葵 (c) AI Inc.
-
AviUtl 1.10
-
拡張編集 0.92
-
GLShaderKit
https://github.com/karoterra/aviutl-GLShaderKit
v0.4.0/v0.5.0で動作確認.
-
(推奨) patch.aul (謎さうなフォーク版)
https://github.com/nazonoSAUNA/patch.aul
アンカー位置の認識がずれる原因が 1 つ減ります.
- 設定ファイル
patch.aul.jsonで"switch"以下の"lua"と"lua.getvalue"をtrue(初期値) にしてください.
- 設定ファイル
-
AviUtl ExEdit2
http://spring-fragrance.mints.ne.jp/aviutl
beta25で動作確認済み.
-
AviUtl (無印) の場合
以下のフォルダのいずれかに
GroundShadow2_S.anm,GroundShadow2_S.lua,GroundShadow2_S.fragの 3 つのファイルをコピーしてください.exedit.aufのあるフォルダにあるscriptフォルダ- (1) のフォルダにある任意の名前のフォルダ
-
AviUtl ExEdit2 の場合
GroundShadow2_S.anm2ファイル対して,以下のいずれかの操作をしてください.-
AviUtl2 のプレビュー画面にドラッグ&ドロップ.
-
以下のフォルダのいずれかにコピー.
- スクリプトフォルダ
- AviUtl2 のメニューの「その他」 ➡️ 「アプリケーションデータ」 ➡️ 「スクリプトフォルダ」で表示されます.
- (1) のフォルダにある任意の名前のフォルダ
- スクリプトフォルダ
初期状態だと「フィルタ効果を追加」メニューの「装飾」に GroundShadow2_S が追加されています.
- 「オブジェクト追加メニューの設定」の「ラベル」項目で分類を変更できます.
-
AviUtl (無印) 版では AviUtl ExEdit2 版と比べてパラメタの並びが異なっていたり,一部がパラメタ設定ダイアログ経由での設定になりますが,特記事項がない限り基本的には同じ機能です.
影を落とす “地面” の位置を指定します.ここで指定した座標を通り,「地面角度」と「回転」で指定した角度の平面に影を落とします.プレビューのアンカーをドラッグすることでも調整できます.
-
緑のアンカー線を操作することで指定できます.
-
オブジェクトが “地面” に接する点にアンカーを置くことで “地面に立っている” ような表現ができます.オブジェクトから離すと “地面から浮いている” ように見えます.
-
AviUtl (無印) の場合,オブジェクトに拡大率や回転などが設定されていると,アンカー位置を正しく取得できない場合があります.
-
-
座標は 3 次元で指定します.オブジェクトと平行で,オブジェクトの奥にある平面などに影を投射することもできます.
オブジェクトの中心からの相対座標で {<X座標>, <Y座標>, <Z座標>} とピクセル単位で記述します.初期値は {0,200,0}.
影を落とす先の “地面” の仰角を指定します.「回転」が 0 の場合,カメラ視点を基準として次のように決まります:
| 負の値 | 0 | 正の値 |
|---|---|---|
| 下り坂 | 水平 | 上り坂 |
単位は度数法で最小値は -180, 最大値は 180, 初期値は 0.
光の入射角を指定します.「回転」が 0 の場合,「光源角度」で上下方向が,「光源傾斜」で左右方向が,カメラ視点を基準として次のように決まります:
| パラメタ | 負の値 | 0 | 正の値 |
|---|---|---|---|
| 「光源角度」 | 上から下 | 手前から奥への水平方向 | 下から上 |
| 「光源傾斜」 | 右から左 | 左右にまっすぐ | 左から右 |
「光源角度」の単位は度数法で最小値は -180, 最大値は 180, 初期値は -45.
「光源傾斜」は傾斜量 (角度の正接 (
影を落とす先の「地面」の回転角を指定します.回転軸は
単位は度数法で最小値は -720, 最大値は 720, 初期値は 0.
立体射影を計算する際の,カメラ位置の
-
青いアンカー線を操作することで指定できます.
- オブジェクトに拡大率や回転などが設定されていた場合,アンカー位置を正しく取得できない場合があります.
オブジェクトの中心からの相対座標で {<X座標>, <Y座標>} とピクセル単位で記述します.初期値は {0,-200}.
立体射影を計算する際の,カメラの視野角を調整します.単位は % で,視野角の正接 (
- 大きくすると立体感が強くなり,遠くの影がさらに小さく,近くの影はさらに大きくなります.
- 小さくすると立体感が弱くなり,遠くの影と近くの影の大きさに違いが出にくくなります.
- 0 を指定すると直投影 (orthographic projection) な描画ができます.
- この場合「カメラ位置」のパラメタは影響しなくなります.
最小値は 0, 最大値は 10000, 初期値は 100.
影の色を指定します.初期値は 000000 (黒).
「影色」を適用する強さ指定します.0 だと元オブジェクトと同じ色で影を描画します.
単位は % で最小値は 0, 最大値は 100, 初期値は 100.
影の不透明度を指定します.
単位は % で最小値は 0, 最大値は 100, 初期値は 50.
影の元となるオブジェクトの透明度を指定します.
単位は % で最小値は 0, 最大値は 100, 初期値は 0.
影のぼかし方を指定します.
-
「光拡散」は光源の入射角のブレ量で,オブジェクトと “地面” に映る影との距離が長いほどぼかし量が大きくなります.
-
「境界ぼかし」は元画像にそのままかけるぼかし量で,“地面” との距離に依存しません.
「光拡散」は拡散角度の正接 (
「境界ぼかし」はピクセル単位で最小値は 0, 最大値は 500, 初期値は 4.
「地面位置」で指定した
ピクセル単位で指定し最小値は 0, 最大値は 4000, 初期値は 0.
「影の範囲」が 0 以外の場合にのみ有効で,描画範囲の先端部分の不透明度を距離に応じて減衰させます.
薄くなる部分の距離をピクセル単位で指定.最小値は 0, 最大値は 2000, 初期値は 0.
影の描画位置を平行移動で動かします.プレビューのアンカーをドラッグすることでも調整できます.
-
線のついていないアンカーを操作することで指定できます.
- AviUtl (無印) の場合,オブジェクトに拡大率や回転などが設定されていると,アンカー位置を正しく取得できない場合があります.
{<X移動量>, <Y移動量>} の書式でピクセル単位で記述します.初期値は {0,0} (移動なし).
「光拡散」の計算の精度を指定します.数値が大きいほど滑らかな描画結果になりますが動作が遅くなります.シェーダープログラム内での繰り返し回数の上限値で,奇数の平方のうち指定値を超えない最大数が実効的な値です.
最小値は 1, 初期値は 529.
AviUtl ExEdit2 版だと,最大値は 9801.
AviUtl ExEdit2 版のみにある設定です.AviUtl (無印) 版では,環境設定の最大画像サイズに固定です.
フィルタ効果後の画像の最大サイズをピクセル単位で指定します.
- 光源と地面の角度の組み合わせによっては,理論上の計算結果が現実的には扱えない画像サイズになることがあるため,予め上限を設定しておく必要があります.初期状態だと
$2000 \times 2000$ のサイズを最大想定にしています. - この値を大きくする場合,
system.confファイル内の[Config]以下,TemporaryImageCacheSizeの項目の見直しも検討してください.max_wとmax_hの積がTemporaryImageCacheSizeの半分未満に収まる程度がサイズ限界の目安です. - フィルタオブジェクトとして使用した場合,この設定は無視されます (常にシーンの画面サイズに相当する値).
最小値は 1024, 最大値は 16384, 初期値は 2000.
パラメタインジェクション (parameter injection) です.各種パラメタを Lua の数式で直接指定できます.また,任意のスクリプトコードを実行する記述領域にもなります.
AviUtl (無印) 版と AviUtl ExEdit2 版で指定方法が異なります.
初期値は nil. テーブル型を指定すると obj.track0 などの代替値として使用されます.
{
[1] = track0, -- number 型で "地面角度" の項目を上書き,または nil.
[2] = track1, -- number 型で "光源角度" の項目を上書き,または nil.
[3] = track2, -- number 型で "光源傾斜" の項目を上書き,または nil.
[4] = track3, -- number 型で "回転" の項目を上書き,または nil.
}テーブル型の中身として解釈され,各種パラメタの代替値として使用されます.初期値は空欄.
{
ground_pos = { x, y, z }, -- table 型で "地面位置" の項目を上書き,または nil.
ground_angle = ground_angle, -- number 型で "地面角度" の項目を上書き,または nil.
light_angle = light_angle, -- number 型で "光源角度" の項目を上書き,または nil.
light_slope = light_slope, -- number 型で "光源傾斜" の項目を上書き,または nil.
rotation = rotation, -- number 型で "回転" の項目を上書き,または nil.
camera_pos = { x, y }, -- table 型で "カメラ位置" の項目を上書き,または nil.
camera_fov = camera_fov, -- number 型で "視野幅" の項目を上書き,または nil.
col = col, -- number 型で "影色" の項目を上書き,または nil.
col_alpha = col_alpha, -- number 型で "影色強さ" の項目を上書き,または nil.
alpha = alpha, -- number 型で "影の濃さ" の項目を上書き,または nil.
front_alpha = front_alpha, -- number 型で "前景透明度" の項目を上書き,または nil.
conic_blur = conic_blur, -- number 型で "光分散" の項目を上書き,または nil.
edge_blur = edge_blur, -- number 型で "境界ぼかし" の項目を上書き,または nil.
len = len, -- number 型で "影の範囲" の項目を上書き,または nil.
tip_blur = tip_blur, -- number 型で "先端ぼかし" の項目を上書き,または nil.
pos = { x, y }, -- table 型で "影位置移動" の項目を上書き,または nil.,
quality = quality, -- number 型で "精度" の項目を上書き,または nil.
max_w = max_w, -- number 型で "画像最大幅" の項目を上書き,または nil.
max_h = max_h, -- number 型で "画像最大高さ" の項目を上書き,または nil.
}- テキストボックスには冒頭末尾の波括弧 (
{}) を省略して記述してください.
GroundShadow_S からの変更点は以下の通りです.
-
追加項目
-
「回転」.
-
「精度」.
-
「画像最大幅」「画像最大高さ」 (AviUtl ExEdit2 版).
AviUtl2 の取り扱える画像サイズの仕様変更に伴って追加.
-
-
削除項目
-
その他
-
光源の入射角を「光源角度」と「光源傾斜」から計算する手順を変更.
- 手前側に影を落とした場合,「光源傾斜」による影の動く方向が逆になります.
- 奥側に落とした場合でも,同じ数値を指定しても微妙に違う角度になります.
-
「濃さ」を「影の濃さ」に名前変更.
-
「影拡散」を「境界ぼかし」に名前変更.
-
「影の範囲」で全体を描画する特殊な指定値を,-1 から 0 に変更.
-
「影先端ぼかし」を「先端ぼかし」に名前変更.
-
-
AviUtl 無印版の場合,テキストエディタで
GroundShadow2_S.anm,GroundShadow2_S.lua,GroundShadow2_S.fragを開くと冒頭付近にファイルバージョンが付記されています.-- -- VERSION: v1.05 --
ファイル間でバージョンが異なる場合,更新漏れの可能性があるためご確認ください.
-
v1.05 (for beta25) (2025-12-22)
-
AviUtl2 版でパラメタ「精度」「画像最大幅」「画像最大高さ」を追加.
- パラメタインジェクション経由のみの指定だったのを,独立のパラメタに分離.
- それに伴って,パラメタインジェクションの初期値を空欄に変更.
-
AviUtl2 版でフィルタオブジェクトとして使えるように設定.
-
AviUtl2 beta25 で動作確認.
-
-
v1.04 (for beta22a) (2025-12-05)
-
AviUtl2 版でパラメタをグループ化して整理.
-
AviUtl2 beta22a で動作確認.
-
-
v1.03 (for beta20) (2025-11-17)
-
AviUtl2 版でのシェーダー処理を一部簡略化.
-
AviUtl2 beta20 で動作確認.
-
-
v1.02 (for beta12) (2025-09-25)
-
AviUtl (無印) 版で
影色強さが低いとき,影の上下左右端の 1 ピクセル幅が黒っぽくなることがあったのを修正. -
AviUtl2 beta12 で動作確認.
-
-
v1.01 (for beta11a) (2025-09-20)
-
AviUtl (無印) 版で,エラーメッセージが間違っていたのを修正.
-
AviUtl2 beta11a で動作確認.
-
-
v1.00 (for beta5) (2025-08-10)
- 初版.
このプログラムの利用・改変・再頒布等に関しては MIT ライセンスに従うものとします.
The MIT License (MIT)
Copyright (C) 2025 sigma-axis
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- GitHub: https://github.com/sigma-axis
- Twitter: https://x.com/sigma_axis
- nicovideo: https://www.nicovideo.jp/user/51492481
- Misskey.io: https://misskey.io/@sigma_axis
- Bluesky: https://bsky.app/profile/sigma-axis.bsky.social



