ひとことで
光の当たり具合に応じてなめらかに変わる陰影を、数段階のはっきりした色の帯に置き換えて、アニメやイラストのような見た目にする手法です(セルシェーディングとも呼ばれます)。光の当たり具合を横軸にした 1 枚の横長の画像(ランプ)で陰影の色を決めるので、段の数、影の境目の位置、影の色味を、アートの方針に合わせて自由に作れます。
ゲームでの使いどころ
- アニメ調のゲーム:『ゼルダの伝説 ブレス オブ ザ ワイルド』『原神』『ギルティギア』シリーズ、『ペルソナ』シリーズなど、多くのゲームの基本となる表現です。
- キャラクターの顔:顔は影の出方が印象を大きく左右するので、法線を手で調整したり、影の位置を画像で指定したりして、イラストらしい影にします。
- スタイライズした背景:絵本風、水彩風などの表現の土台として、陰影を段階化する。
しくみ
通常の拡散反射は、法線 と光の向き の内積 に比例して、なめらかに暗くなります。トゥーンシェーディングでは、この値を横軸にしてランプ画像を読みます。
- 2 段:影と日なたの 2 色。最もアニメらしい。
- 3 段:影・中間・日なた。立体感が増す。
- 色付きランプ:影側を青紫、日なたを暖色にするなど、影の色味そのものを指定する。影を単に暗くするのではなく色相をずらすのは、イラストでよく使われる技法です。
段の境目は、ランプ画像を最近傍でサンプリングすればくっきり、smoothstep などで少しぼかせば柔らかい境目になります。
輪郭線(アウトライン):アニメ調には輪郭線も欠かせません。代表的な方法は 2 つです。
- 背面法(インバーテッドハル):モデルを法線方向に少し膨らませ、裏面だけを黒く描く。デモはこの方法です。
- ポストプロセス:描画後の画面で、深度や法線の差から輪郭を検出する。
実装のポイント
- 影の位置を指定する:顔の影がきれいに出るよう、頂点の法線を球状に整える(法線の転写)、影の出やすさを頂点カラーやテクスチャで指定する、といった調整が一般的です。
- 影と自己影:影を落とすシャドウマップの影も、同じランプの影側の色で塗ると、陰影と影がなじみます。
- ハイライトとリム:鏡面反射も段階化して、くっきりした形のハイライトにします。縁を光らせるリムライトを加えると、アニメらしい立体感が出ます。
つまずきやすい点
- 影がまだら・ギザギザになる:法線がでこぼこしたモデルでは、段の境目が細かく割れて汚く見えます。法線をなめらかに整える必要があります。
- 輪郭線の太さ:背面法では、カメラからの距離で太さが変わったり、角で線が切れたりします。距離に応じて膨らませる量を調整します(デモも距離に比例させています)。
- 複数のライト:光源が多いと、段の境目が何本も出て不自然になります。キャラクターには主となる光源を 1 つ決め、他は環境光として扱うことが多いです。
デモで試すこと
- 「陰影」を PBR にすると、なめらかな陰影の立体的なペンギンになります。2 段・3 段・色付きランプと切り替えると、同じモデルがアニメ調に変わります。
- 右下のランプ画像が、光の当たり具合(左 = 真裏、右 = 正面)ごとの色です。色付きランプでは、影側が青紫になっています。
- 「影の境目の位置」を動かすと、ランプ画像の段がずれ、影の面積が変わります。
- 「輪郭線」をオフにすると、アニメらしさが大きく減ることが分かります。