sRGB 以外の色空間 (Linear sRGB, HSV, HSL, L*a*b*, LCh, Oklab, Oklch) でグラデーションさせる AviUtl スクリプトです。動作には karoterra氏の GLShaderKit が必要になります。
- rikky_module 拡張編集0.92以前用
なくても動作しますが、導入すると設定ダイアログの項目をリストボックス化します。
- GLShaderKit を導入します。
exedit.aufと同一ディレクトリ(または1層下)にあるscriptフォルダに以下のファイルを入れてください。
GradientPlus.luaGradientPlus.anmGradientPlus.frag
オブジェクトに GradientPlus.anm を適用してください。
-
中心点から X 方向へのオフセット値。
-
中心点から Y 方向へのオフセット値。
-
グラデーションの角度。
-
グラデーションの幅。標準グラデーションとほぼ同じですが、計算の都合上、円ループで値が非常に小さい場合に発生するモアレやアンチエイリアスなどが微妙に異なります。
-
グラデーションの強さ。
0~100の範囲で指定してください。 -
合成モードを指定します。項目は標準グラデーションと同じです。
値 合成モード 1通常 2加算 3減算 4乗算 5スクリーン 6オーバーレイ 7比較(明) 8比較(暗) 9輝度 10色差 11陰影 12明暗 13差分 -
グラデーションの形状を指定します。項目は標準グラデーションと同じです。
値 形状 1線 2円 3四角形 4凸形 5円ループ 6四角ループ 7凸ループ 8凸ループ2 -
グラデーションする際の色空間を指定します。
値 名称 簡単な説明 1Linear sRGB ガンマを除去した sRGB。 2HSV Hue(色相)、Saturation(彩度)、Value(明度)からなる色空間。 3HSL Hue(色相)、Saturation(彩度)、Lightness(輝度)からなる色空間。黒や白とのグラデーションで HSV との違いが顕著に表れる。 4L*a*b*
(CIE LAB)人間の視覚に基づいて色の差が均等に認識できるように設計された色空間。本スクリプトでは D65 を白色点とする。 5LCh L*a*b* の a, b を極座標に変換したもの。 Hue(色相)を回転させながら補間できるため、色の変化がより自然になる。 6Oklab L*a*b* の知覚的均等性を改善した色空間。 7Oklch Oklab を極座標に変換したもの。 -
HSV、HSL、LCh、Oklch といった色相を持つ色空間が、色相環上でどのような経路で補間するか指定します。
値 経路 1短経路 2長経路 -
開始色を指定します。初期値は
0xffffffです。 -
終了色を指定します。初期値は
0x000000です。 -
有効にするとシェーダーを再読み込みします。
このスクリプトに含まれる関数です。外部スクリプトから呼び出すことができます。
GradientPlus(
offset_x, -- 中心点からX方向へのオフセット値
offset_y, -- 中心点からY方向へのオフセット値
angle, -- 角度
width, -- 幅
strength, -- 強さ
blend_mode, -- 合成モード
gradient_type, -- 形状
color_space, -- 色空間
interp_dir, -- 補間経路
color1, -- 開始色
color2, -- 終了色
reload -- 再読み込み
)| 変数名 | 説明 | 型 | 単位 |
|---|---|---|---|
| offset_x | 中心点から X 方向へのオフセット値 | number | ピクセル |
| offset_y | 中心点から Y 方向へのオフセット値 | number | ピクセル |
| angle | グラデーションの角度 | number | 度 |
| width | グラデーションの幅 | number | ピクセル |
| strength | グラデーションの強さ | number | なし |
| blend_mode | 合成モード | number | なし |
| gradient_type | グラデーションの形状 | number | なし |
| color_space | グラデーションの色空間 | number | なし |
| interp_dir | グラデーションの補間経路 | number | なし |
| color1 | 開始色(16進数カラーコード) | number | なし |
| color2 | 終了色(16進数カラーコード) | number | なし |
| reload | シェーダーの再読み込み | boolean | なし |
例
local GradientPlus = require("GradientPlus")
GradientPlus.GradientPlus(0, 0, 60, 400, 100, 1, 1, 7, 2, 0x1cae18c, 0xf35d5d, false)CC0 に基づくものとします。
- ライセンス漏れを修正
- 初版



