CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Unity】ライトの種類と使い方!ライト関連のFAQまとめ
こんにちは。
今回はUnityのライトについてまとめていきます。
ライトは基本機能についてはわかりやすいのでざっくり説明して、よく詰まるライト関連のFAQをメインに解説してきます。
ライトの追加
ライトはHierarchyから右クリックで追加できます。右側のInspectorのTypeからライトの種類の変更が可能です。
ライトの種類
まずはライトの種類についてまとめていきます。
Direction
こちらはBlenderでいう「Sun」ライトで、太陽のようにシーン全体を照らす光になります。SkyboxだとGameビュー実際に太陽が表示されるので、わかりやすいですね。
このライトの位置によって光源が変わるわけではなく、回転によって光の射す方向を決めることができます。
ちなみにこのライトはX軸の値がマイナスだと夜になるので、シーン全体が暗くなります。
光の強さはIntensityから変更が可能です。
Spot
円形上にライトを照らすことができます。
範囲と円の大きさは以下の数値で調整可能です。
- Range…ライトの距離
- Spot Angle…円形の面積
Point
ライトの中心から球体上に光を照らすライト。
Rangeの数値で範囲を調整できます。
AreaLight
こちらは平面から光を出すことができます。
WidthとHeightを変更することで、縦と横の幅を調整できます。
このライトは他のライトと違ってベイクをしないと反映されません。
ベイクに関してはこちらの記事を参考にしてみましょう。
背景のライト調整
上記で紹介したライトオブジェクトの他に、背景でライト調整も可能です。
背景のライトを調整するためにはWindows→RenderingからLightSettingのウィンドウを出します。
SettingsのIntensity Multipierの数値を変更すると、背景ライトの調整が可能です。
ライトのFAQ
ここからライトのFAQをまとめていきます。
ライトが反映されない
まずライトが反映されない場合の解決法についてまとめていきます。ライトが反映されないときに考えられる対処法は以下の通りです。
- Pixel Light Countの数値を上げる
- ベイクしていない
- Rangeの範囲に入っていない
- ライトがアクティブになっていない
Pixel Light Countの数値を上げる
Unityは負荷を減らすために正確に描写するライトの光源数に制限があります。(厳密にはライトの光源数ではない)
もしライトを複数設置してきちんとライトを表示させたい場合はFile→Project SettingsのPixel Light Countの数値を挙げてみましょう。
ただし、数値を上げると負荷は増えるので注意です。
詳しくは以下の記事を参照しましょう。
ベイクしていない
先ほども書きましたがAreaLightはベイクしないと反映されません。AreaLightを使用している場合はベイクをしましょう。
また、ベイクしてもライトが反映されない場合があります。ライトベイクでライトが反映されない場合は以下の点をチェックしましょう。
- 光を当てるオブジェクトがStaticになっていない
- ライトがBakedになっていない
Rangeの範囲に入っていない
UnityではRangeの範囲がきっちり影響範囲になっているので、この枠内に入れないとライトは当たりません。
Range内にきっちりと光を入れましょう。
BlenderとかだとRangeの範囲外でも若干光は当たるのですが、Unityだと範囲が決まっているのでBlenderユーザーの方は注意です。
ライトがアクティブになっていない
ライトがアクティブになっていないかを確認しましょう。
ライトが貫通する
ライトが貫通する場合は以下のことをチェックしましょう。
- ShadowTypeを確認する
- Cast Shadowsの確認
ShadowTypeを確認する
ライトが壁に貫通する場合はShadow TypeがNoShadowsになっていると光が貫通してしまいます。
貫通を防ぎたい場合はSoftShadowsかHardShadowsを選択しましょう。
Cast Shadowsの確認
オブジェクトのLighting設定のところで、CastShadowsがOFFになっていると光が貫通してしまいます。貫通させたくない場合はOnにしましょう。
影が表示されない
影が表示されない場合は以下のことをチェックしましょう。
- ShadowTypeを確認する
- Cast Shadowsの確認
影と光の貫通はセットになっております。影を出すと壁が貫通しなくなります。
ShadowTypeを確認する
影が表示されない場合はShadowTypeがNoShadowになっていないか確認しましょう。
NoShadowだと影は反映されないため、SoftShadowかHardShadowを選択しましょう。
Cast Shadowsを確認する
オブジェクトのLighting設定のところで、CastShadowsがOFFになっていると影が映りません。影を作る場合はここをONに設定しましょう。
影だけ表示したい
オブジェクトの影だけを表示したい場合はCastShadowのところをShadowOnlyにすると影だけを表示することが可能です。
ライトベイクする方法
ライトは処理の負荷が大きいので、RealTimeで動かすライト以外はベイクするのが一般的です。
ライトベイクはLightingのウィンドウがから行えますが、設定項目が多いのでここでは解説しません。
参考になる記事を貼っておきますので、これらを参考にしてみてください。
ライトプロープを設定しよう!
ライトプロープとはベイクしたライト情報をキャラクターなどに反映させる機能です。点を打った場所のライト情報を取得し、キャラクターに反映させることができます。
ライトをベイクするとその他のリアルタイムライトを使用しない限り光源が移動しないため、何かが横切った場合そのオブジェクトに光情報を新しく充てることができます。
ライトプロープを使用するとこのライト情報を当てることが可能になります。
ライトプロープの設定方法に関しては以下の記事を参考にしてみてください。
まとめ
以上がライトの説明になります。
Unityのライトは設定項目が色々あるので、各自ライトの調整を行ってみましょう。
Unity用アセット販売中!
当メディアで運営しているアセットショップ「NickNackHolic」にてUnity用のアセットを販売しております。
ゲーム制作やVRchat、Clusterなどで使用できる便利なアセットを販売しております。
一部無料のアセットもあるので、ぜひ覗いてみてください!
Nick Nack Holic
VRchatやゲームアセット、映像作品で使える「雑貨」を販売中