質感・ライティング

トゥーン・ランプシェーディング

Toon / Ramp Shading

陰影を段階的な色帯に変えてアニメ調にする。

9 / 10

インタラクティブデモ

デモを準備しています…

トゥーン・ランプシェーディング

ドラッグで視点を回転、Ctrl(⌘)+ スクロールでズーム。タッチ操作は 2 本指です。

ひとことで

光の当たり具合に応じてなめらかに変わる陰影を、数段階のはっきりした色の帯に置き換えて、アニメやイラストのような見た目にする手法です(セルシェーディングとも呼ばれます)。光の当たり具合を横軸にした 1 枚の横長の画像(ランプ)で陰影の色を決めるので、段の数、影の境目の位置、影の色味を、アートの方針に合わせて自由に作れます。

ゲームでの使いどころ

  • アニメ調のゲーム:『ゼルダの伝説 ブレス オブ ザ ワイルド』『原神』『ギルティギア』シリーズ、『ペルソナ』シリーズなど、多くのゲームの基本となる表現です。
  • キャラクターの顔:顔は影の出方が印象を大きく左右するので、法線を手で調整したり、影の位置を画像で指定したりして、イラストらしい影にします。
  • スタイライズした背景:絵本風、水彩風などの表現の土台として、陰影を段階化する。

しくみ

通常の拡散反射は、法線 n\mathbf{n} と光の向き l\mathbf{l} の内積 n⋅l\mathbf{n}\cdot\mathbf{l} に比例して、なめらかに暗くなります。トゥーンシェーディングでは、この値を横軸にしてランプ画像を読みます。

t=n⋅l+12,陰影の色=ramp(t)t = \frac{\mathbf{n}\cdot\mathbf{l} + 1}{2},\qquad \text{陰影の色} = \text{ramp}(t)
  • 2 段:影と日なたの 2 色。最もアニメらしい。
  • 3 段:影・中間・日なた。立体感が増す。
  • 色付きランプ:影側を青紫、日なたを暖色にするなど、影の色味そのものを指定する。影を単に暗くするのではなく色相をずらすのは、イラストでよく使われる技法です。

段の境目は、ランプ画像を最近傍でサンプリングすればくっきり、smoothstep などで少しぼかせば柔らかい境目になります。

輪郭線(アウトライン):アニメ調には輪郭線も欠かせません。代表的な方法は 2 つです。

  1. 背面法(インバーテッドハル):モデルを法線方向に少し膨らませ、裏面だけを黒く描く。デモはこの方法です。
  2. ポストプロセス:描画後の画面で、深度や法線の差から輪郭を検出する。

実装のポイント

  • 影の位置を指定する:顔の影がきれいに出るよう、頂点の法線を球状に整える(法線の転写)、影の出やすさを頂点カラーやテクスチャで指定する、といった調整が一般的です。
  • 影と自己影:影を落とすシャドウマップの影も、同じランプの影側の色で塗ると、陰影と影がなじみます。
  • ハイライトとリム:鏡面反射も段階化して、くっきりした形のハイライトにします。縁を光らせるリムライトを加えると、アニメらしい立体感が出ます。

つまずきやすい点

  • 影がまだら・ギザギザになる:法線がでこぼこしたモデルでは、段の境目が細かく割れて汚く見えます。法線をなめらかに整える必要があります。
  • 輪郭線の太さ:背面法では、カメラからの距離で太さが変わったり、角で線が切れたりします。距離に応じて膨らませる量を調整します(デモも距離に比例させています)。
  • 複数のライト:光源が多いと、段の境目が何本も出て不自然になります。キャラクターには主となる光源を 1 つ決め、他は環境光として扱うことが多いです。

デモで試すこと

  1. 「陰影」を PBR にすると、なめらかな陰影の立体的なペンギンになります。2 段・3 段・色付きランプと切り替えると、同じモデルがアニメ調に変わります。
  2. 右下のランプ画像が、光の当たり具合(左 = 真裏、右 = 正面)ごとの色です。色付きランプでは、影側が青紫になっています。
  3. 「影の境目の位置」を動かすと、ランプ画像の段がずれ、影の面積が変わります。
  4. 「輪郭線」をオフにすると、アニメらしさが大きく減ることが分かります。

参考資料

Filament Material System ↗

分野全体の資料で、この項目を直接扱っているとは限りません。