ライティング・明るさ設定
概要
主に明るさに関する設定です。基本的に初期値(プリセットを適用
の通常
ボタンを押した状態)での利用がオススメですが、各種パラメーターを変更して撮影や映像制作に用いることもできます。
パラメーター
名前 | 説明 |
---|---|
明るさの下限 | ライティングで暗くなる限度です。真っ暗になるのを防ぎます。VRChatで利用する際は0.0~0.2あたりに調整することをオススメします。 |
明るさの上限 | ライティングで明るくなる限度です。白飛びを防ぎます。 |
ライトのモノクロ化 | ライトの彩度です。VRChatで色味がきついワールドでのライティングを補正できますが、周囲との色味の違いを発生させるため注意が必要です。 |
影色への環境光影響度 | 周囲の光が影の色に影響する強さです。 |
Unlit化 | ライティングを無効化しUnlitに近づけます。明るさを底上げする効果がありVRChatの暗いワールドでの補正にも利用できますが、自分が明るくなった分相対的に周囲のアバターを暗くしていることにもなるため注意して利用してください。 |
頂点ライトの強度 | 頂点ライト(頂点単位で計算されるポイント・スポットライト)の強度です。複数メッシュがある場合は0にすることでメッシュごとの明るさの違いを緩和できます。 |
ライト方向のオーバーライド | ライトの方向に加えるベクトルです。大きな値を設定することでライティング条件を無視して任意の方向から照らすことができます。この設定はフォールバックとしても使われるため、xyz全てを0に設定するとライトが全くないなどの条件下で真っ暗になる場合があります。 |
オブジェクトの向きに追従 | オブジェクトの向きが変わったときに設定したライト方向のオーバーライド の向きも合わせて動くようになります。 |
[Built-in RP] ライトの合成 | ポイントライトやスポットライトなどの追加のリアルタイムライトの合成方法です。 加算: 光学的に正しいが白飛びしやすい 比較(明): 光学的に正しくないが白飛びしにくい |
[HDRP] Before exposure limit | Exposure前に適用する明るさ制限です。 |
[HDRP] Directional Lightの強さ | マテリアルに適用するDirectional Lightの強さです。 |
ライトの計算式(開発者向け)
ライティング部分についてはCC0ライセンスでOpenLitというライブラリとして公開しています。自作シェーダー作成時に明るさを合わせたい場合は適宜ご利用ください。ここではパラメーターの挙動だけ理解できるように簡略化して記述しています。
hlsl
// 色の計算
RGB = clamp(RGB, _LightMinLimit, _LightMaxLimit); // "明るさの下限" から "明るさの上限" の範囲内に抑える
Mono = (RGB.r + RGB.g + RGB.b) / 3.0; // RGBの平均値をとって単色化
RGB = lerp(RGB, Mono, _MonochromeLighting); // "ライトのモノクロ化" の分だけ単色に近づける
RGB = lerp(RGB, 1.0, _AsUnlit); // "Unlit化" の分だけ1.0(白)に近づける
// 方向の計算
if(_FollowObject) // "オブジェクトの向きに追従" する場合だけ行列計算を行う
{
_LightDirectionOverride = length(_LightDirectionOverride) * normalize(mul((float3x3)UNITY_MATRIX_M, _LightDirectionOverride));
}
Direction = normalize(Direction + _LightDirectionOverride); // 元のライト方向と "ライト方向のオーバーライド" を合成