原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】今更ながらArea Lightについて

新人研修

どこぞの会社の新人研修の一環なのか駅前で「よろしくお願いします。」と声を上げながら必死にビラ配りをしているスーツ姿に遭遇しても一切無視する冷酷な皆さんこんにちは。まぁ、社会の厳しさを学ぶのも新人教育の一環ですからね。

 

ライトの種類

3Dのゲームを作っていると少なからずライティング(及び影)についてアレコレと考慮する必要が出てきます。
特別リアルな画面を作ろうとしなくてもシェーダーによってはライトの影響を直に受けるので、思ったようなゲーム画面を作るにはライティングの設定が欠かせません。

Unityで用意されているライトの種類は

  • Directional
  • Point
  • Spot
  • Area

とあります。それぞれを説明すると

 

■Directional Light

この中でもDirectional Lightは太陽光に該当する光源となるので基本的にどのシーンでも使われるライトです。
限りなく遠くに存在する光源として捉えられるのでライトの位置はあまり関係なく、角度の設定が重要となります。

例えば下のような全く光源のないシーンに

Directional Lightを追加すると・・


オブジェクト全体にDirectional Lightで指定した角度から光が照射されて影が形作られます。

 

■Point Light

Point Lightは指定した位置から全方向に同等な光量を発するライトです。
つまりDirectional Lightとは違い、ライトの位置と光量の設定がシーンに影響を与えます

このライトは主に蝋燭や電球のように局所的な光源を表現するために使います。
先程のシーンの上部にDirectional Lightを追加すると

電球がボックス内を照らしているような画面となります。

 

■Spot Light

Spot Lightは光の当たる範囲を指定することができるライトです。
この為、ライトの位置と角度及び光の当たる範囲を指定することになります。

一般的にスポットライトは懐中電灯や車のヘッドライト等の光源として使用されます。
一人称視点のホラーゲームでは頻繁に使われているので以外に使用頻度は高いライトです。

 

そしてArea Light

Area Lightは空間内に長方形もしくは円形のエリアを指定して、その表面エリアから均一に放射される光源となります。
Spot Lightと違い光の当たる範囲を決めることはできず、Area Lightとその光が当たるオブジェクトとの距離によって照射する光量が決定されます。

幅の広いLEDライトや窓から差し込む光等、シーン内により自然な光の表現を加えるときに使用しますが、その分計算量が多くなる為、前述の3つのライト(Directional/Point/Spot)と違いその効果はダイレクトにシーンに反映されません。

要は設置しただけでは光源として使われない、ということです。

 

Area LightはTypeプロパティ欄に「baked only」とわざわざ記載されているようにライト設置後、ライトマップにベイクする必要があります。
そして、Area Lightの光を照射されるオブジェクトは全て「static」の設定が必要となります。

このため、最初にシーン内にArea Lightを設置した後に

各オブジェクトのInspectorで「Static」のチェックをONに設定

最後にメニューからWindow→Rendering→Lightingを選択して

Lighting設定から「Generate Lighting」をクリック

暫くするとライトマップがベイクされArea Lightで照射されたシーンが表示されます。

 

注意点

Point Lightと比較すると広い光源でシーン内を照らしている分、かなり自然な画面になっていることが分かります。
室内等で写実的な表現をしたい場合には頻繁に使う必要があるかと思いますが、ライトマップにベイクする計算にはかなり時間が掛かります。
使用するPCの性能にもよるかもしれませんが、上のシーンのベイクでも3~4分掛かりました。

設定の変更がダイレクトに反映されないので設定を失敗するとベイクするまで分からないのはちょっと痛いところです。

Area Lightの失敗例

また、オブジェクトを移動してもライトマップにベイクされた情報はそのままなので、オブジェクトの影は残ったままとなります。

ここら辺を考慮して使用する必要があるみたいです。

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。