出展者向けライティング説明
ここではVket2021でのライト設定についてご案内します。ここに書かれたことは最低限の設定方法です。
ご自身のブースに対する個別の質問・相談などは 出展者Discord にてお待ちしております。質問が無くても遊びにきてくれると嬉しいな!
索引
- デフォルトのライト設定でブースを構築したい、ライトベイクは難しくてよくわからない、といった場合。 → 「簡易ライト設定コース」をご覧ください。
- ライトベイクしてみたい、光や影を自分でコントロールしてみたい、といった場合。→ 「ライトベイク設定コース」をご覧ください。
- ライト設計の全体像を教えてほしい、といった場合。→ 「くわしい解説」をご覧ください。
簡易ライト設定コース
特徴
- メリット
- 特別な設定は不要です。
- プレイヤーに当たるものと同じ Directional Light を受けることができます。
- ワールド構造物などの影を受けることはありません。
- Toon系シェーダーでも問題ありません
- デメリット
- 影が地面に落ちません。
- モデル自体に描画できる「陰(Shade)」ではなく、他メッシュに影響する「影(Shadow)」を扱うことができません。
- 暗い空間を作ることができません。
- 間接光を用いたライティングができません。
- 影が地面に落ちません。
MeshRenderer および SkinnedMeshRenderer の付いている GameObject が Default
レイヤーの設定であることを確認してください。
合わせて ContributeGI (旧称はLightmap static) のチェックが外れていることを確認してください。
メッシュをシーンに追加したときのデフォルトの設定になっていると思いますので、その状態からの変更は不要のはずです。もし違っている場合は Default に変更し Contribute Global Illumination (旧称はLightmap static) のチェックを外してください。
注意点
- ブース配置によりY軸方向の回転が行われるため、ブース側面や背面から DirectionalLight に照らされる場合があります。照らされる向きを出展者が詳細に決めることはできませんのでご了承ください。
- シェーダによってはブースが配置された付近の環境光の色味や明度を強く受けてしまう場合があります。マテリアルの設定から色味を調整してください。
さらに質を高めるために
見栄えを向上させる(ことができるかも?)の設定についてご紹介します。
- Light Probe Groupの設定
「ワールド設置のライトだけでは足りない、ライトベイクとは行かないまでも明暗をコントロールできないか」という場合に、ブース内に Light Probe Group を設置することができます。
- ブルームの設定
Baked のライトを設置し、そのライトまたは影を拾うように Light Probe を配置することで明暗のコントロールが可能です
光のにじむような効果が Bloom と呼ばれているものです。Emissionマテリアルは光源としても用いることができますが、ライトベイクせずともエフェクトとして描画されます。
ライトベイク設定コース
特徴
- メリット
- 影を焼き付けることができます。
- ワールド構造物に当たるものと同じ Baked ライトを受けることができます。
- 光を遮ることで暗がりや暗室を作ることができます。
- デメリット
- Realtime ライトがないため一部のシェーダが正しく動作しない可能性があります。その場合は特定のメッシュのみ「簡易ライト設定コース」の設定とすることで回避できます。
- ブース内を照らすライトは、ブースの一部として入稿していただく必要があります。
- ワールド側からはブース内を最低限のBakedライトで照らします。
- ブース内の照明を出展者側で用意していただくことが、ライトベイク設定のメリットでありデメリットであると認識いただけますと幸いです。
- 設定難易度は高めです。
ライトベイクしないほうがよいメッシュの判別方法
次に挙げるメッシュは、一般的にライトベイクしないほうが見栄えが良くなることが多いです。それらのメッシュについては「簡易ライト設定コース」同様に ContributeGI (旧称はLightmap static) をチェックしない設定としてください。
- アバター向け汎用シェーダを利用している場合
- UTS や arktoon などアバター向けのシェーダは ContributeGI (旧称はLightmap static) に対応していないため
- トゥーンシェーダなどは Realtime の Directional Light によって光源方向を決めているため
- Skinned Mesh Renderer を用いている場合
- Unity の lightmapper は、Skinned Mesh Renderer のライトベイクに対応していないため
- メッシュの形状が非常に複雑である場合
- メッシュ形状をもとにライトベイクするため、凹凸が複雑なメッシュでは見栄えの調整が大変です
上記の理由から、おすすめは「展示するアバターなどの3Dモデルは Contribute GI を付けずベイク対象にしない」「ブース本体や台座などには Standard Shader を用いて Contribute GI を付けてベイク対象にする」という設定です。
*Vket2021ではDirectional Mode を Directionalに設定しています
設定方法
- メッシュの設定
- メッシュにライトマップ用の UV2 を用意する必要があります
- UV2についての詳しい説明は こちらを参照
- メタセコイヤなど一部のモデリングソフトでは2枚目のUVを作成できないためご注意ください
- メッシュに UV2 が用意されていない場合、モデルの import 設定から『Generate Lightmap UVs』にチェックをして Unity に生成させることもできます
- MeshRendererの設定
- MeshRenderer の付いている GameObject を
Environment
レイヤーに割り当ててください。 - Contribute GI をチェックしてください。
- MeshRenderer の付いている GameObject を
- SkinnedMeshRendererの設定
- UnityのLightmapperでは、SkinnedMeshRendererに対するライトベイクはできません。SkinnedではないMeshRendererに変換してベイク対象とするか、またはSkinnedMeshRendererのまま「簡易ライト設定コース」にてベイク非対象としてください。
- Light設定
- ブース内であれば Baked のライトを配置して構いません。入稿ルール内に制限事項がありますので確認をお願いします。
メッシュのimport設定例
MeshRendererの設定例
ライトの設定例
よくあるご質問
暗室の作り方
暗室(もしくは暗めの空間)をライトベイクにて作りたい場合の設定例をお伝えします。
- 空間内のオブジェクトは「ライトベイク設定コース」の通り ContributeGI を付与する
- Receive Shadows にチェックを入れる
- 周囲の光を遮蔽するように、メッシュで囲まれている
- メッシュの Cast Shadows を On にして、光を遮蔽する(暗室内にメッシュの影が落ちる)ようにする
- メッシュが片面ポリゴンの場合は Cast Shadows を On ではなく Two Sided にして、裏面にも影が落ちるようにする
- 暗めのテクスチャを設定した Reflection Probe を設置する
- リフレクションとして周囲の光を拾ってしまうことがあるため
- 暗室内に追加の Light Probe Group を設置する
- ContributeGI の付いていないメッシュに当たる環境光を暗くするため
ライトベイクにて暗室を作る場合、建造物に Standard Shader を使用すると良いです(ライトベイクに対応していて設定が簡単であるため)。ただしプレイヤーのアバターについては、アバター向け Directional Light が当たるため暗室内であっても明るいままとなります。ご了承ください。
詳しい解説
Vket2021ワールドのライト設計
Vket2021の各会場は、次のように基礎ライト設計を行いました。
- レイヤ構造
- Default レイヤ
- Realtime の Directional Light が当たります
- デフォルト設定でも暗くならないようにして、出展者の設定の手間を省くため
- Realtime ライトの必要な Toon 系シェーダへの救済措置として
- Realtime の Directional Light が当たります
- Pickup レイヤ
- Realtime の Directional Light が当たります
- Environment レイヤ
- Baked の影付きライト各種が当たります
- ワールド構造物など、ライトベイクの対象になるメッシュが配置されます
- 出展物として入稿されるメッシュも、ライトベイク対象のものであればEnvironmentレイヤに配置してください
- Default レイヤ
- ライト設定
- Realtime Directional Light
- NoShadow とすることでワールド全域に低負荷で均一な光を提供します
- レイヤは Default, Pickup, Player, PlayerLocal, MirrorReflection を対象とします
- Bakedライト各種(ワールド照明用)
- ワールド構造物を照らすライトは HardShadows または SoftShadows 設定です
- ブース範囲内を照らす場合でも遮蔽できるようにするため
- ワールド構造物を照らすライトは HardShadows または SoftShadows 設定です
- Bakedライト各種(ブース照明用)
- 出展者によってブースの一部として入稿されるライトです
- Realtime Directional Light