リムライト
Shader Graphでリムライト(または「輪郭ライティング」)を実装する方法を説明します。リムライトは、オブジェクトのエッジ部分に光を当てる効果で、キャラクターやオブジェクトの輪郭を際立たせるために使用されます。これをShader Graphで実装するには、以下のステップを試してみてください。
1. Shader Graphを作成する
まず、リムライトを実装するためのシェーダーを作成します。
- Shader Graphの作成:
- Unityエディタで、右クリックして「Create」 > 「Shader」 > 「PBR Graph」を選択します。
- 新しいShader Graphを作成し、名前を付けます(例:
RimLightShader)。 - ダブルクリックして、Shader Graphエディタを開きます。
2. リムライト用のノードを設定する
リムライトを作成するためには、オブジェクト表面の法線方向とカメラ方向を比較し、エッジ部分を強調します。この効果は通常、法線の逆方向(カメラに対して斜めの角度)で発生します。
-
ノードの準備:
- 「Normal Vector」ノード: これはオブジェクト表面の法線ベクトルを取得します。
- 「World Space View Direction」ノード: これはカメラからオブジェクトへの視線方向を取得します。
- 「Dot Product」ノード: 法線ベクトルと視線方向のドット積を計算します。これによって、オブジェクト表面がカメラに対してどれだけ斜めかがわかります。
- 「Smoothstep」ノード: ドット積の結果を元に、リムライト効果を制御するためのしきい値を設定します。これにより、強調されるエッジの範囲を調整できます。
-
リムライトの計算:
- 「Dot Product」ノードの出力を「Smoothstep」ノードに接続します。このノードの出力がリムライトの強度を制御します。
- 「Smoothstep」ノードの出力を「Multiply」ノードで「Color」ノード(リムライトの色)と掛け算します。これにより、リムライトカラーをエッジ部分に適用します。
-
最終出力の設定:
- 最後に、「Base Color」または「Emission」ノードにリムライトカラーを接続して、リムライトの色をオブジェクトに適用します。一般的に、リムライトは「Emission」スロットに接続することが多いです。
3. ノード構成の具体的な流れ
- Normal Vector -> Dot Product -> Smoothstep -> Multiply (Color) -> Emission (または Base Color)
4. リムライト強度の調整
「Smoothstep」ノードのパラメータ(しきい値や範囲)を調整することで、リムライトの強度や範囲をコントロールできます。リムライトは通常、物体の斜めの面に適用されるため、しきい値を調整して、どの角度でリムライトが表示されるかを設定します。
5. 結果の確認
Shader Graph内でシェーダーを保存して、マテリアルとしてオブジェクトに適用します。シーンビューでカメラの角度を調整し、リムライトがうまく反映されていることを確認します。
6. リムライトカラーや強度の動的変更(オプション)
- リムライトの強度や色を動的に変更する場合は、Shader Graph内で「Time」ノードや「Input」ノード(例: クリック位置、マウス位置、プレイヤーの位置)を使って、リアルタイムで変化させることもできます。
まとめ
Shader Graphでリムライトを実装する方法は、オブジェクトの法線方向と視線方向を比較し、エッジ部分に光を当てることで実現できます。基本的な流れとしては、法線ベクトルと視線方向のドット積を計算し、その結果をSmoothstepで処理、さらにそれをリムライトカラーと掛け合わせて最終的な出力を作成します。この方法で、シンプルかつ効果的にリムライトを実装できます。