Unityのライトを使って、懐中電灯をつくってみよう!

ライトを設定して懐中電灯をつくろう

夏の肝試しや暗いワールドにおすすめの懐中電灯アイテムの作り方を紹介します。

懐中電灯となる3Dモデルを設定する

まずは懐中電灯の機能をまとめる空のオブジェクトをつくりましょう。

  • Hierarchy を右クリックし Create Empty から作成します。
  • わかりやすいように作成した GameObject の名前を「HandyLight」に変更します。

次は HandyLight の子に3Dモデルとライトオブジェクトをつくります。

  • 懐中電灯に使いたい3Dモデルを HandyLight の上にドラッグアンドドロップします。
  • さらに、周りを照らすためのスポットライトを Hierarchy を右クリックし Light > Spot Light から作成します。

懐中電灯を持てるようにする

懐中電灯の持ち手を設定するために、空のオブジェクトを作成します。

  • Hierarchy を右クリックし Create Empty から作成します。Grip の詳しい設定方法はこちらの記事を参考にして下さい。
  • HandyLight に Inspector ウィンドウの Add Component から Grabbable Item を追加します。
    • ここで先ほど作成した Grip用の空のオブジェクトを設定します。

Grabbable Item を追加しましたが、当たり判定を持つコライダーがないためこのままでは持つことができません。

  • HandyLight の Inspector のAdd Component から Box Collider を追加します。
    • コライダーの大きさは懐中電灯のモデルの大きさに合わせ、Is Trigger にチェックマークを入れます。
  • 懐中電灯が重力の影響を受けないように変更します。HandyLight の RigidBody のUse Gravity のチェックマークを外します。
  • 参考記事はこちら

また、ギミックを追加することで懐中電灯のライトをオンオフすることができるようになります。詳しい手順はこちらの記事を参考にして下さい。

注意点としてリアルタイムライトには数の制限があります。cluster 上で反映されるピクセルライトは2つまでとなっており、ライトとの距離によって頂点ライトに切り替わりちらつくことがあります。

Point Light を以下のように配置すると、プレイヤーの移動とともに表示されるライトが切り替わってしまいます。

複数個設置するためにLightコンポーネントの設定を変更する

懐中電灯を複数設置する場合は Light コンポーネントの設定を変更しましょう。

  • Render Mode を Important に設定します。
    • Light の優先度はインスペクターの RenderMode から設定できます。Default は Auto に設定されており、 Important と Not Important から選択することができます。
      • Auto の場合はライトと視点との距離によってピクセルライトから頂点ライトに切り替わります。
      • Important に設定するとすべての Light が適用されますが、描画負荷が高まるため適度な量の設定にしてください。

クッキーを使ってレンズを表現してみよう

さらにライトの表現力を上げるために、Nature Starter Kit2 のテクスチャーを使って、懐中電灯のレンズを表現してみましょう!

  • Light コンポーネントの Shadow Type を「Hard Shadows」もしくは「Soft Shadows」を選択します。

Cookie を設定することで、単純に円形に照らしていた Spot Light がレンズの歪みのような影を落とすようになりました。
Light Cookie に利用できるテクスチャはグレースケールのテクスチャーであれば利用できるため、自分でテクスチャーを作成してオリジナリティのある懐中電灯をつくってみましょう!

  • 設定したい画像を選択し、Inspector ウィンドウから画像の Wrap Mode を「Repeat」から「Clamp」に変更します。
  • あとは先程と同様に Spot Light の Cookie に変更した画像を適用するだけです!
記事をシェアしてワールド制作を盛り上げよう!