【Unity/Blender】モバイル向けボリュームライト表現

Unityでモバイル向けボリュームライト表現1

Blenderで円錐を作成して、Unityでモバイル向けボリュームライト*に設定する方法。
*(空間も照らす漫画的スポットライト表現)
PC向けの方法だと、スマホでは重くなるので、この方法一択になると思われる。

↓の自作ゲームで実際に使用。

サンプルのスクリーンショット

若干チープな気もするが、ローポリなキャラクターと合わせれば許容出来る。

【Unity】モバイル向けボリュームライト表現

色を変えて下から当てると、ホラーっぽい感じにも。
(ボリュームライトじゃなくても良い気はした)

Unityでモバイル向けボリュームライト表現2

サンプルの動画

*音なし。

Blenderでボリュームライト用の円錐を用意

【ダウンロード】自分で作るのが面倒な人用

ボリュームライト用の円錐の3Dモデル

  • 頂点:64
  • 半径1:0.5m
  • 半径2:0m
  • 深度:1m
  • 形式:OBJ(MTLなし)
  • ライセンス:CC0

作り方

使用環境

  • バージョン:blender-2.93.0
  • 言語:日本語
【言語:英語の場合のみ】Blenderを英語から日本語に変更
  1. 上部メニュー -> Edit -> Preferences…を選択して設定画面を開く。
  2. Translationの項 -> Languageで、Japanese (日本語)を選択。

作成手順

  1. シーンコレクションで、Cubeを削除。
  2. 上部メニューのやや下にある、「オブジェクトモードメニュー」 -> 追加 -> メッシュ -> 円錐を選択。
  3. 左下の「円錐を追加」から各種設定を変更。
    頂点:上面と下面の頂点数。デフォルト32。多い程、滑らかに。
    半径1:下部の半径。デフォルト1m
    半径2:上部の半径。デフォルト0m
    深度:縦の長さ。デフォルト2m
  4. 「オブジェクトモードメニュー」の一番左「オブジェク…」を選択、「編集モード」に変更。
  5. 「編集モードメニュー」 -> メッシュ -> ノーマル -> 反転を選択。見た感じ変化はないが完成。
  6. ファイル -> エクスポート -> Wavefront (.obj)を選択。適当にConeと命名 -> OBJをエクスポート。

生成されたCone.objファイルが3Dモデル本体。
Cone.mtlはマテリアルデータ(今回は使わない)。

作った円錐をUnityでボリュームライトに設定

マテリアルの作成と設定

  1. 上部メニュー -> Assets -> Create -> Materialを選択。適当に「VolumeLightMaterial」等と命名。続いて設定。
    1. インスペクター -> Shader -> UI -> Lit -> Transparent
    2. Tint:任意の色に変更。
      色はLightの方で設定可能だが、透明度はこちらでしか設定出来ない。
      自分の場合は、(255, 255, 255, 64)に設定した。

円錐の3Dモデルの設定

  1. Cone.objをProjectフォルダ内へ、ドラッグ&ドロップしてインポート。
  2. フォルダからヒエラルキーへ、ドラッグ&ドロップして、シーンに配置。
  3. Coneの子のdefaultを選択。
    1. インスペクター -> Mesh Renderer -> Materials -> Element 0に、先程のVolumeLightMaterialを設定。
    2. インスペクター -> Transform -> Scale(localScale)を変えて、想定する大きさに変更。

光源の設定

  1. ヒエラルキー -> Coneのプレハブ本体(defaultの親)を選択。
  2. インスペクター -> Layer -> UIを選択(使っていないレイヤーなら何でもOK)。
  3. Change Layerダイアログ -> Yes, change children
  4. ヒエラルキー -> defaultを右クリック -> Light -> Point Light
  5. 作成したPoint Lightを選択。
  6. インスペクター -> Lightの各種要素を設定。
    1. Mode:Bakedに設定。
    2. Range:ボリュームライトの大きさに応じて調整。
    3. Intensity:10~100位で任意の値に調整。
    4. Color:任意で。自分の場合は(255, 255, 0, 255)に設定した。
    5. Culling Mask:Nothingを選択した後、UIを選択。
  7. インスペクター -> Transform -> Position.Yを上部にズラして光源の位置を調整。

照らす対象へスポットライトを当てる場合

ざっくりした説明

  • ボリュームライトのプレハブに、Mode:Realtimeのスポットライトを追加。
  • ボリュームライトのサイズに合わせて、明るさと距離を調整。

詳細な手順

  1. ヒエラルキー -> defaultを右クリック -> Light -> Spotlight
  2. 作成したSpotlightを選択、設定。
    1. インスペクター -> Transform
      1. Rotation.Xを90に変更。
      2. Position.Yを円錐内の上部に調整。
    2. インスペクター -> Light
      1. Mode:Realtimeのまま。
      2. Color:デフォルト設定の白か、Point LightのColorに合わせる。
      3. Range、Spot Angle、Intensityは一時的に設置した3D Objectを見て調整。
        1. ボリュームライトをプレハブ化した後に、選択。プレハブ内に切り替える。
        2. 上部メニュー -> GameObject -> 3D Object -> Planeを円錐下部に設置して調整。
        3. 最後にPlaneを削除。

タイトルとURLをコピーしました