皆さんは「ライティング」という言葉をご存じでしょうか?

「ライティング」とは光を使って画面をより見栄えのいいものにすることですが、ゲーム作りには関係ないのでは?と思った方もいるかもしれません。

しかし、よりクオリティの高いゲームを作るためには「ライティング」は必須です。

今回はそんな「ライティング」の種類やUnityでの設定方法を紹介していきたいと思います。

|Unityとは

出典:https://unity.com/ja

Unityとは2005年に米国のUnity Technologies社によってリリースされた世界で最もシェアされているゲームエンジンで、2D、3Dのゲーム開発および実行ができます。

有名ゲームにも多数使われており、例として、

  • 原神
  • ポケモンGO
  • ウマ娘
  • ドラゴンクエストⅧ 空と海と大地と呪われし姫君
  • バイオハザードアンブレラコア
  • Among Us
  • Nier Re[in]carnation
  • 遊戯王マスターデュエル

などがあります。

さらにUnityは幅広いプラットフォームに対応しており、モバイル、PCの他にもWebプラウザ(WebGL)、VRやAR、家庭用ゲーム機(PlayStation、Nintendo Switch)など様々な端末で利用できることが特徴です。

アセットの種類も豊富で、ノートPCでも使えるほどエディタが軽いので、ゲームをつくったことがない初心者の方でも気軽にゲーム開発ができます。

|Unityでできること

Unityではゲーム開発はもちろん、それ以外にも活用することは可能です。

例えばXRコンテンツ開発や、アプリ開発、自動車産業や医療現場、建築業界にも使われています。

今回はゲーム開発、アプリ開発、XR関連コンテンツの開発についてご紹介していきます。

ゲーム開発

Unityでは2D、3Dのゲーム開発が可能です。

主にモデルの配置、音声再生、画像の差し込み、コントローラーのUI設置ができます。

さらにプログラミングなしでも開発できるので、素材さえあれば誰でも簡単にゲームをつくれます。

実際に「ふりーむ!」「unityroom」などのサイトではゲーム制作初心者の方がたくさんゲームを投稿しており、そこから有名になったゲームもあります。

ゲーム開発でどのようなことができるのか、参考にしてみてはいかがでしょうか。

逆に、Unityでできないことは音声編集、画像作画などがあります。

他にはテキスト表現の細かい設定などはUnityは苦手とされています。

Unityでゲーム開発をする際はこういった特徴も理解したうえで使用するのをおすすめします。

アプリ開発

アプリ開発でも、Unityは活躍できます。

むしろ、様々なプラットフォームに対応しているので、日常で使うアプリを開発するのには最も適しているでしょう。

アプリであれば、簡単な操作で済むことが多いので、ノンプログラミングで開発することも可能です。

<h3>XR関連コンテンツの開発</h3>

XRとはVR、AR、MRの総称で、Unityはこれらの開発をすることもできます。

例えばARで開発された有名なアプリでは「ポケモンGO」があります。

他にも、自動車のバーチャルルームショーやバーチャルショッピング、バーチャルイベントなど様々なコンテンツでの開発が進んでいます。

将来的にはこういったコンテンツが当たり前になってくる日も近いかもしれませんね。

|ライティングとは

さて、それでは今回のメインのライティングについてご紹介していきたいと思います。

ライティングとは、シーンを様々な種類のライト(光源)で照らし、シーンの見栄えを決める行程のことを言います。

光源には「無限遠光源」、「点光源」、「面光源」、「線光源」、「環境光」、「スポットライト」などがあり、Unityのライティングではそれらを4種類のライトで表現していきます。

ライティングは美麗グラフィックが求められるゲームでは特に重要視され、ライティングの違いによって画面のクオリティが大きく異なります。

なので、規模の大きいプロフェクトではライティングが専門のライティングアーティストというポジションも存在します。

|Unityで使えるライトの種類

Uniyでは「Directional Light」、「Point Light」、「Spotlight」、「Area light」の4種類のライトが扱えます。

ではこの4つのライトについてご紹介していきたいと思います。

Directional Light

「太陽光」のイメージで、すべてのオブジェクトを均等に照らします。

明確な光源がなく、どんなシーンでも使いやすいので最も一般的なライトでもあります。

写実的なシーンでは太陽や月のシミュレーションに使われることも多く、よりリアルな影をつくりだすことができます。

角度を平行にすると日没のような、上にすると夜のような光の当たり方にすることも可能です。

Point Light

中央を起点にして電球のように照らすことができるライトです。

全方位を照らし、中央から距離があるほど暗くなります。

強度は光源からの距離の2乗に反比例します。

範囲が球体状となるため、Directional Light がもつプロパティに加え、範囲のプロパティも持ちます。

主に局所的な光源をシミュレートするのに役立ち、火花や爆発をつくるときにも役立ちます。

Spotligh

ステージを照らすように、円錐状の範囲を照らすことができます。

懐中電灯や車のヘッドライトのイメージだと分かりやすいかもしれません。

円錐の光の中心はライトオブジェクトの前方(Z方向)を指しており、

ライトの強度は円錐の端にいくほど暗くなります。角度を広げると円錐の幅が広がります。

ごく狭いエリアを照らすので、使い方によっては印象的なシーンをつくりだすことが可能です。

Area light

板状に光を照らすことができるライトです。

均一にオブジェクトに光を当てることができるので、使う場面も多いかもしれまんが、このライトは少し特殊で、処理に負荷がかかるためランタイムでの使用ではなく、ベイク処理でのみ使いましょう。

他のライトと比べて影が柔らかいので、写実的なシーンでは重宝します。

窓から入ってくる光や、家のインテリアライトなどのシミュレーションにも使えます。

|ライトの設定方法

次は、実際にライトを設定していきましょう。

新しくプロジェクトを設定したら、あらかじめライトが置いてありますが、今回は自分で設置していくので削除しておきましょう。

次にライトで照らすオブジェクトを設置しましょう。

オブジェクトは画面上部の「GameObject」>「3D Object」から好きなオブジェクトを設置します。

「Hierarchy」から空白部分を右クリックでも可能です。

Directional Light

まずは、Directional Lightを設置していきましょう。

先ほどと同じ「GameObject」から「Light」>「Directional Light」を選択します。

これでオブジェクトが明るく照らされたかと思います。

ライトの向きを変えると影の方向も変わります。

試しに、「Inspecter」のタブから「Rotatior」の「X」を”90”、他を”0”に設定すると真上から光を照らすことができます。

「X」を”0”にすると真横から光が当たり、夕方や早朝のようなライティングになります。

ライトの強さや形状、色を変えたい場合は他のライトも設定の仕方は同じですが、「Inspecter」のタブから変更しましょう。

色は「Coloer」、強さは「Intensity」、ライトの形状を変えたい場合は「Shadow Type」から設定します。

Point Light

次に、Point Lightを設置してみましょう。

先程作ったDirectional Lightを削除、もしくは「Inspecter」のタブのオブジェクト名の左横のチェックを外しましょう。そうすると、ライトをオフにできます。

そして先ほどと同じように「GameObject」>「Light」>「Point Light」と選びます。

Directional Lightとは違い、明るさが暗くなっているかと思います。

明るい範囲を広げるためには「Range」の値を”20”ほどまで上げてみると明るくなります。

「Intensity」の値を大きくしても明るくなりますが、範囲は広がらないので、中心部分の明るさが強くなります。

Spotlight

今度は、Spotlightを設置します。

先程と同じようにライトを削除、もしくは「Inspecter」からオブジェクト名の左横のチェックを外します。

そして「GameObject」>「Light」>「Spotlight」を選びます。

ライトを起点に円錐状にオブジェクトが照らされます。

オブジェクトとの距離を縮めると明るくなり、離れると暗くなります。

「Range」の値でも同じことが可能です。

もっと明るくしたい場合は「Intensity」の値を変更すると、明るくすることができます。

明るさの範囲を広げたい場合は「Spot Angle」の値を大きくしましょう。

Area light

最後に、Area lightを設置します。

ライトをオフにした後、「GameObject」>「light」>「Arealight」を選択しましょう。

他のライトとは違って設置してもオブジェクトが照らされないかと思います。

Arealightは処理に負荷がかかるため、ライトマップにベイクしなければ使用できません。

ですので、ライトマップを設定します。

まず、動かないオブジェクトにオブジェクト名の右にある「Sratic」にチェックを入れましょう。

そして「Window」>「Rendering」>「Lighting」を選び、ライトマップのタブを作ります。

次に「Generate Lighting」を選択するとライトマップが生成されます。

すると、今まで見えなかったArea lightの光が見えるようになります。

|まとめ

今回は、Unityでのライティングをご紹介しました。

ライティングは様々な場面でも使われており、映画やファッション誌などの写真集などもいくつものライトを使って撮影されています。

また、イラスト作成でもライト(光源)が意識された作品はより綺麗な画面になります。

どんなにいい作品でもライトがいい加減につくられているとライトがしっかりされた作品より見栄えが劣ってしまいます。

地味な作業ではありますが、意外と大切だったりするので気になる方はしっかり勉強するのもいいかもしれません。

ぜひ本記事が参考になれば幸いです。