Unityのライトはどうやって使えばいいんだろう?
かっこいいライト設定でゲームを作りたいけどどうすればいいのかな?
Unityで3Dゲームを使っているとこのように感じる方もいるでしょう。
この記事ではUnityに搭載されている基本のライト機能の紹介と、それを応用した方法をご紹介します。
私は3DCGゲームで背景のライト設定、キャラクターのライト設定を行ってきたので有用な情報を提供できると思います。
まず基本の方法を解説し、後半ではそれを使った演出の方法もご紹介します。
ライトを設定するときは「そういう機能がある」と知ってるだけではあまり意味がなくそれをどう使うかというのが重要です。
自然界の光はどうなっているか、演出として効果的なライティングとはどういうものか。
重要になってくるのはこういった観察力や表現力、演出の知識などです。
料理でいえば大事なのは 調理器具の名前だけを知ることではなくてそれらをどう使って料理できるかということですよね。
記事を読み終えるとUnityのライトでかっこいいゲームシーンが作れるヒントを得られます!
Unity とUnityのライトについて
無料で使えるゲームエンジン、Unityにはいくつかのライト機能がそろっています。
使ってみたい人はUnityのサイトからダウンロードしましょう。
ライト設定が必要な理由:ゲームの雰囲気を出すのに重要です
PlayStationやPCのゲームなど、美麗グラフィックが求められるハイエンド系のゲームでは画面の雰囲気が重要視されます。
綿密な設定をするかしないかで画面内のクオリティが全く変わってきます。
美しいライト設定がなされたゲームではプレイヤーの没入感が高まり、深い興奮と感動を生むことでしょう。
そのためライトの設定が重要になってくるというわけです。
ライティングアーティスト
ゲーム開発会社では3Dの背景デザイナーがマップに配置するオブジェクトのモデリングともにゲームマップ内に配置しライト設定まで行うこともあります。
規模の大きいプロジェクトではライティングアーティストという専門ポジションもあります。
ゲームタイトル一つ全体の中を見ても リアルタイムのゲームマップ、カットシーンムービーなどでライティングが必要な場面は多数存在します。
そのため専門の仕事が必要になってくるのです。
ご存知のようにゲームの画面クオリティは年々レベルが高くなっています。
そのためゲームのイメージを支えるライティング技術は需要が増えていく仕事と言えるでしょう。
Unityのライト 基本4種
ここでは基本となる4種類のライトについて紹介します。
基本のライト4種類
Direction Light (ディレクショナルライト)
Spot Light (スポットライト)
Point Light (ポイントライト)
Area light (エリアライト)
Direction Light ディレクショナルライト
ディレクショナルライトはシーン全体にへのライトとして使われます。
シーン内のオブジェクトすべてに同じ強さでライトを照射てます。太陽光のイメージですね。
3Dでプロジェクトを作り始めるとき、デフォルトで設定されていますが新しく追加する場合はInspecter内にあるShadowTypeをSoftShadowやHardShadowにすると影を表示できます。
ディレクショナルライトではライトのRotationを上向きの角度に設定すると夜の時間帯として演出できます。
具体的に言うとこの画像では Rotationを(x, y, z)=( -20, 0, 0)に設定し、Colorのhexadecimal=(8BBBC3)にして少しくらい雰囲気を出しています。
夜で真っ暗なので犬の剣士(DogPBR)のモデルは見えません(笑)。Unityちゃんのほうは特殊なシェーディングなので暗い中でも見えます。
ライトのアイコンが目障りになる場合があると思います。そういう場合はHierarchy内のライトの👁目のアイコンをクリックしましよう。
ライトのアイコンが非表示になりました。
表示したいときはもう一度クリックしましょう。
Spot Light スポットライト
部分的なライト
演劇のステージ上にいるかのような演出をすることもできます。
(Unityちゃんには特殊なシェーディングが設定されているためモデルの本体には変化がありません。)
Point Light ポイントライト
ポイントライトは設定する一か所を中央起点として全方向に発生するライトです。
影が中心から広がっていることがわかると思います。
Area light エリアライト
板状の光源を設定します。
エリアライトを設定すると板上状ライトから均一な強さの光がオブジェクトを照らします。
このライトは特殊で、処理するときにマシンに負荷が大きくかかるためベイクと言ってオブジェクトに光が当たっているように見せるために色を付けたような状態にします。
色を焼き付けるという感覚からベイクと呼ばれているそうです。
Hierarchy内にエリアライトを出すとInspecterで以下のウィンドウが開きます。
Width と Height でエリアライトの幅と高さを決めます。
エリアライトを使うときには光を当てたいオブジェクトのStaticにチェックを入れておきましょう。
今回はCubeと地面用のPlaneにStaticを設定しました。
最後に Lighting ウィンドウでGenerate Lighting のボタンを押しましょう。
CubeとPlane にエリアライトがベイクされました。
Unityのライト 応用
上記の
通常のマップ用のライト
ディレクショナルライトとスカイボックスの組み合わせでマップの時間帯を表現できます。
昼のスカイボックスとの組み合わせで昼の風景
夕暮れ色のスカイボックスと赤みを入れたライトで夕方の風景
ライトシャフト
ディレクショナルライトにスクリプトを設定することでゴッドレイのような演出を設定することもできます。
エミッシブライト
エミッシブライトはオブジェクトそのものが光っているような効果を与えられます。
マテリアルのエミッション(Emission)に☑チェックを入れることで設定できます。
Unityライトではいろいろな場面や情景を演出できる!
今回はライトの設定方法をいくつかご紹介しました。
基本のライトとスクリプトやエフェクトと組み合わせることで様々な場面を演出することができます。
早朝の朝日と澄んだ空気感、魔法効果、夜の街のネオン…など設定を作りこむことでいくらでも臨場感あふれるシーンを作ることができます。
本当はもっといろいろなパターンを紹介したいところですが凝り始めるとあまりにも多くなってしまうので今回は割愛しました(笑)。
基本のライトやスクリプトを組み合わせた使い方などマスターし、あなたのゲームをリアリティあふれるシーンにしてみてください!