ライティングの方法

確認済のバージョン: 2017.3

-

難易度: 中級

最終的なアセットの作成とシーンのライティングを開始する前に、ライティングの方法を考える必要があります。素晴らしい作品を作る意欲に満ちたコンテンツ制作者が、プロジェクトの開始時にこの重要なステップを飛ばしてしまうことは良くあります。開発が進んでからライティングの方法を変更するには非常に高いコストが掛かります。制作に入る前にしっかり時間を掛けて方法を固めることで、結果的に時間が節約され、より良いパフォーマンスと、より忠実性の高いビジュアルを実現することができます。

現実世界の様々な事柄についても同じことが言えますが、二つの異なるセットアップのメリットとコストを比較した場合、そこにはほぼ必ずトレードオフがあります。F1レース用の車は、燃料節約型のハイブリッド車と比べると、日常の食料の買い出しには適していないのと同じことです。しかし、特定の条件下でこういったトレードオフを緩和することのできる技術も存在します。各機能とそのトレードオフを把握することで、プロジェクトに何が最も適しているかを判断できるようになります。

それでは、ライティングそのものについて見て行きましょう。一般的なシーンの、日中の屋外エリアにおけるライティングは、次の 3 つのライティングコンポーネントに分解することができます。

  1. 半球(空からの光)

  2. 直接光(太陽や局所的な光)

  3. 間接光(反射した光)

これだけだと単純な 3 つのコンポーネントがあるだけのように思えますが、リアルタイムライト、混合ライト、ベイクされたライト、静的オブジェクト、動的オブジェクトの選択と組み合わせによって、多種多様なライティングを生み出すことができます。

Unity は様々なライティング手法やプロジェクト条件に幅広く対応しています。

各種ライティングモードおよびセットアップに関する詳細は、Unity マニュアルでご確認いただけます。

Unity を使い始めて間もない方にとっては、全てのセットアップのトレードオフを把握して選択するのは大変かもしれません。そこで、膨大な情報の中から、最も一般的に使用されているセットアップに的を絞って確認して行きましょう。

最も一般的に使用されているライティングのセットアップは以下の 5 つです。

参考

各セットアップの見え方の違いを確認できる画像です。

  1. Basic Realtime(ベーシックなリアルタイムライティング) ― ライトからのスペキュラーハイライトは目に見える形で表れますが、間接ライティングが表れません。

  2. Baked(ベイクされたライト) ― ベイクされたソフトシャドウが現れ、静的な間接ライティングが高解像度で現れますが、ライトからのスペキュラー反応はなく、動的に照らされたオブジェクトはシャドウを落としません。

  3. Mixed(混合ライティング) ― Baked と類似していますが、スペキュラー反応があり、動的に照らされたオブジェクトがシャドウを落とします。

  4. Realtime ライトと GI ― 正常な間接ライティング反応とスペキュラー反応が表れ、全てのライトが可動で更新可能ですが、斜めに差すソフトシャドウはありません。

  5. Guns Blazing(全オプションを有効にした状態) ― 各ライトの設定によって、上記のオプションを全て組み合わせることができます。

参考

上のスライドショーは、ベイクされたアンビエントオクルージョンが有効になった状態です。 (注)リアルタイム GI は静的なアンビエントオクルージョンをベイクできないので含まれていません。

各設定の基本的な特徴は以下の通りです。

ベーシックなリアルタイムライティング + 環境光ライティング(リアルタイム GI やベイクされた GI は無し)

代表的なターゲットプラットフォーム ― 据え置き機と PC 一般的に、様式化されたビジュアルを持つプロジェクトや、プロトタイプの段階に使用されます。

メリット

  • 直接光と直接シャドウは全てリアルタイムであり、したがって動的です。
  • 事前計算もなく、ベイキングやメッシュの準備もないため、イテレーションが速くなります。
  • 動的オブジェクトと静的オブジェクトが同じ方法で照らされ、ライトプローブが不要です。

デメリット

  • 半球オクルージョンがなく、直接光によって照らされてていない領域では、そのままのスカイボックス / アンビエントの色と値になります。
  • グローバルイルミネーション(GI) / 間接ライティングのコンポーネントがなければ、結果的に最善のビジュアルが得られない可能性があります。

全ライティングをベイク + ライトプローブ

参考

代表的なターゲットプラットフォーム ― モバイルプラットフォーム、VR、据え置き機、低性能 PC 一般的に、トップダウンのアイソメトリック・モバイルゲームや高フレームレートの VR ゲームなど、ランタイムのパフォーマンスが課題になりますが、メモリに余裕のあるゲームに使用されます。

メリット

  • 静的オブジェクトには全てのライトがベイクされます。アンビエントオクルージョンと間接ライティングを生成します。
  • エリアライトのベイキングに対応しており、ソフトシャドウの角度を静的に照らされたオブジェクトにベイクできます。
  • ここにリストアップされている中で、ランタイムのパフォーマンスが最も速くなるオプションです。

デメリット

  • ライティングがベイクされているためライティングのイテレーションが遅くなる場合があります。したがって、プログレッシブライトマッパーが使用されていない場合には、シーン変更時にライトのリビルドが必要になります。
  • 動的に照らされるオブジェクトは、ライトプローブによってのみ照らされます。
  • 光源からのスペキュラーハイライトがなく、キューブマップ / 反射にのみ依存します。
  • 動的オブジェクトからのシャドーイングはありません。
  • シーン内に使用されているライトマップテクスチャの量によっては、ランタイムメモリのコストが大きくなる可能性があります。
  • テクスチャコーディネートチャンネル 2(ライトマップの UV2)の作成が必要になる場合があります。

混合ライティングとシャドウマスク + ライトプローブ

参考

代表的なターゲットプラットフォーム ― VR、据え置き機、PC 一般的に、据え置き機や PC 向けゲームで、日中の光の時間(太陽の動きなど)が重要でないものでは、ほとんどこれが使用されています。 メリット

  • 全ライティングをベイクした場合と類似していますが、混合ライティングでは、動的オブジェクトがリアルタイムのスペキュラー反射を受けてリアルタイムシャドウを落とし、静的オブジェクトはベイクされたシャドウマスクを受け、結果としてビジュアル品質が高くなります。

デメリット

  • オブジェクトが持てるシャドウマスクの数が 4 つに制限されます。
  • ランタイムのパフォーマンスに、リアルタイムライトのレンダリングによる付加的なコストが掛かります。
  • 混合ライトの使用には注意してください。特定のセットアップでパフォーマンスに最悪な影響を与える可能性があるためです。

上記のリストは、シャドウマスクライティングをごく簡略的に説明したものです。 完全な情報はこちらでご確認いただけます。

リアルタイムライティングとリアルタイム GI + ライトプローブ

参考

代表的なターゲットプラットフォーム ― 据え置き機、PC 一般的にオープンワールドゲーム(日中の光の時間の更新が必要で、ゲームデザインの一部として動的ライティングの効果が必要)に使用されます。 メリット

  • リアルタイムの間接ライティングを使用した素早いライティングのイテレーションが可能です。
  • 動的オブジェクト・静的オブジェクトの両方がリアルタイムのスペキュラー反射およびシャドウを受けます。
  • 間接ライティングの効果を出すのに、ベイクされたライティングよりも少ないメモリ消費で済む場合があります。
  • GI の更新に掛かる CPU 時間のパフォーマンスコストが一定です。

デメリット

  • ベイクされたライティングよりオクルージョンの詳細度が低く、通常、スクリーンスペース・アンビエントオクルージョン(SSAO)および、各オブジェクトのテクスチャにベイクされたアンビエントオクルージョン(AO)によって補強される必要があります。
  • 静的オブジェクトがエリアシャドウや角度の付いたライトのソフトシャドウを受けません。
  • リアルタイムライトは、設定によってはパフォーマンスに最悪な影響を与える可能性があるため、使用には注意してください。
  • 静的ライティングに寄与するオブジェクトの量が多すぎる場合に、事前計算(ライティングの生成)に大幅に時間が掛かる可能性があります。UV の設定が最適化されていない場合は特にこれが当てはまります(Enlighten のリアルタイム GI でさらに最適化やプロジェクションの修正を行う場合は、テクスチャコーディネイトチャンネル 3(UV3)の作成が必要になります)。

リアルタイム GI の最適化に関する詳細はこちらでご覧いただけます(英語)。

Guns Blazing(全てのオプションを有効にした状態)

参考

代表的なターゲットプラットフォーム ― 据え置き機、PC 一般的に、高い現実性が求められ、パフォーマンスに制約があってメモリの使用を厳密に管理する必要のあるゲームに使用されます。このオプションは、コンテンツ作成者が個々のシステムを熟知していて、ライティングの各組み合わせの性質を深く理解して扱える場合に使用することが推奨されます。

メリット

  • 全てのライティング機能が揃ったオプションです。コンテンツ作成者は全機能を利用することができます。

デメリット

  • ランタイムのパフォーマンスとメモリを完全に消費してしまう可能性があります。
  • ワークフローの負荷(UV 作成およびベイク時間)が増加します。

迅速にイテレーションを行ったりシーンのライティング状況を確認したりするためには、レスポンシブな視覚的フィードバックが欠かせません。このためサンプルシーン『Spotlight Tunnel』では、リアルタイムライティングとリアルタイム GI を併用しています。 これにより多彩なスペキュラー反応と質の高い反射光ライティングが得られ、ライトの修正をその場で行えるようになっています。