「Vケット入稿用ライトマップについて」の編集履歴(バックアップ)一覧はこちら
「Vケット入稿用ライトマップについて」(2019/07/19 (金) 01:26:29) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
# Vケット入稿用ライトマップについて
---
## 焼くオブジェクトの決定
ライトを焼きたいオブジェクトを選択し、<font color="blue">**Lightmap Static**</font>にチェックを入れます。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/99/fig_lightbake_01.png" width="500">
しかし、必ずしもすべてのオブジェクトをベイクする必要はありません。
<font color="red">ライティングの影響の少ないオブジェクトまで焼いてしまうと、ライトマップの容量を圧迫してしまいます。</font>
今回はライトマップサイズは<font color="red">**512を1枚**</font>に抑える必要があるため、キレイに焼く為にもなるべく節約しましょう。
- アバターなどのSkinned Mesh Rendererはライトベイクの対象に含まれません。
- 展示アバターを綺麗に見せるために、ワールドのRealtime DirectionalLightを当てるのを推奨します。
- ワールドのRealtimeDirectionalLightを当てるには、LayerをPickupに設定してください。
- ![fid](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/133/fig-pickup.PNG)
### 【焼くべきオブジェクト:BakedLighting】
- <font color="blue">**壁、天井、床、机などライティングの影響を与える**</font>大きなオブジェクト
光や影を焼きたい場合はライティングをBakeします。焼かれたデータはライトマップとして保存されます。
### 【焼く必要のないオブジェクト:ProbeLighting】
- <font color="red">**小物、アクセサリー、キャラクターなど、ライティングに影響を与えない**</font>と思われるオブジェクト、<font color="red">**動くダイナミックなオブジェクト**</font>
焼かないオブジェクトは主に<font color="orange">**LightProbe**</font>による**ProbeLighting**を使用します。
LightProbeは配置した位置における周囲の光を取り込み、オブジェクトに反映します。(つまり周囲の光の影響になじむ)
焼かれていないオブジェクトはデフォルトでLightProbeの影響が有効になっています。
ProbeLightingをするオブジェクトの注意点としては、<font color="red">**複数のオブジェクトを結合している場合には一つのオブジェクトとしてLightProbeの影響を受けてしまいます。**</font>
明らかに違うライトの影響を受ける場合は<font color="blue">**オブジェクトの分離**</font>をおすすめします。
※オブジェクト数が増えてしまうことになるので処理負荷とのトレードオフではあります。まとめられるオブジェクトはまとめるのを推奨です
(ライトプローブの配置については後述)
---
## ライトマップUVの展開
Blenderなどのモデリングソフトで作成し、Unityに読み込んだFBXなどのモデルの多くは、<font color="red">**ライトマップ用のUV展開がされていません。**</font>
このままライトを焼いた場合、UVが重なってしまっているところは<font color="red">**ライトが2重に焼かれてしまい、おかしな光や影が入ってしまいます。**</font>
### 【簡易版:ライトマップUV自動展開】
Unity側で自動的にライトマップ用のUVを展開してくれる機能があります。デフォルトでは有効になっていないため、新しくモデルを取り込んだときには [<font color="blue">**Generate Lightmap UVs**</font>] にチェックを入れて、ライトマップ用のUVを自動展開してあげる必要があります。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/100/fig_lightbake_02.png)
自動展開を使う方法では、暗い場所などライトの影響が強い環境下で細かい<font color="red">ライトマップのエラーが出てしまうことが多く</font>、完璧な方法とは言い難いです。
しかし、ライトマップは展開されているのでライトベイクをすることは可能にはなります。
ライトを焼いてみて、<font color="blue">ライトマップエラーが目立たない、許容できる場合はこちらの方法でも良い</font>かと思います。
ライトマップエラーが出てしまうが、簡易的に解決したいという場合は<font color="blue">**Pack Margin**</font>の値を調節してあげることで、ある程度解決する場合があります。
※ただし、UV同士の間隔が開くためにライトマップが無駄になってしまう領域が広くなってしまいます。
### 【上級者向け:UV2作成】
モデリングソフト上で<font color="blue">**ライトマップUVを手動で展開**</font>する方法です。
Unityに取り込んだモデルで、2つ目のUVを作成してあり、[<font color="blue">**Generate Lightmap UVs**</font>]のチェックがついていない場合、<font color="blue">**2つ目のUVがライトマップとして使用されます。</font>
ライトマップ用のUVを作る比較的簡単な方法の一つとしては、事前に展開してある1つ目のUVを複製し、[<font color="blue">**UV2**</font>]などの名前にし、その複製されたUVを、<font color="red">**オーバーラップがないように**</font>、かつ<font color="red">**ある程度のpadding**</font>を空けて島を梱包することで、ライトマップUVとして使うことができます。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/101/fig_lightbake_03.png)
この際、裏面や見えにくいところ、**光の影響が少ないところなどのUVの大きさを調整して、無駄を少なくし、全体のライトマップを調整する**ことを推奨します。
---
## ライトベイクの基本
ライトを焼きたいオブジェクトを選択し、<font color="blue">**Lightmap Static**</font>にチェックを入れます。
配布用シーンのライティング設定はBakedLighting用に調整してあるため、ライトの設置などができたらまずはそのまま焼いてみましょう。
### 基本的なライトの設定
- 追加したスポットライトなどの影響を焼くためには、ライトを選択し、設定を「**Baked**」にする必要があります。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/102/fig_lightbake_04.png)
- ライトがなくても**環境光**(スカイボックスからの光)や**グローバルイルミネーション**(間接光を表現する仕組み)というものが焼かれるため、多くの場合<font color="red">ライティングのベイクは必要です。</font>
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/103/fig_lightbake_05.png" width="500">
- Lightmap Staticかつ<font color="blue">**Standard ShaderのEmissiveのオブジェクト**</font>は、ベイク用の照明として使うこともできます。マテリアルのパラメーターから**Emissive**の設定を[**Baked**]にしてください。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/104/fig_lightbake_06.png" width="500">
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/97/fig_lightbake_07.png" width="500">
準備ができたらLightingパネルの一番下にある [**Generate Lighting**] のボタンを押します。(PC環境によっては5分から10分かかることがあります)
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/98/fig_lightbake_08.png)
---
## ライトマップ枚数/ライトマップ解像度の調整
ライトマップはサイズ<font color="red">**512×512px/1枚**</font>に収める必要があります。
ライトベイクが完了したあとであれば、ライトマップが何枚使われているかを確認することができます。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/107/fig_lightbake_09.png)
Lightingパネルの下のところに [<font color="blue">**1 Directional Lightmap: 512×512px**</font>] となっていれば問題ありません。
### ライトマップの枚数を減らすには
オブジェクトごとの<font color="red">**ライトマップ解像度を下げる**</font>必要があります。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/108/fig_lightbake_10.png" width="500">
まず、現状のライトマップ解像度を可視化するために、ビューを切り替えましょう。
Scene Viewの左上のところから[**Baked Lightmap**]を選択し、ライトマップがどのように焼かれているかを確認しましょう。
このチェッカー模様がライトマップの解像度です。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/109/fig_lightbake_11.png" width="500">
オブジェクトごとのMesh RendererのLightmap Settings から、[<font color="blue">**Scales In Lightmap**</font>]のパラメーターを調整します。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/110/fig_lightbake_12.png)
この数字を調整すると、チェッカー模様の大きさが変わっていくはずです。
では、[<font color="blue">**Scales In Lightmap**</font>]の値を変更して、ライトマップが1枚に収まるように調整しましょう。
ライトマップがどのように使われるかを確認するためにはライトマップを焼きながら確認するのが一番早いです。
ライトマップの枚数を確認するためだけに5分10分と待ちたくないため、**一時的にベイクのサンプル数を極端に落とします**。
(あとで戻してください)
<font color="red">**Direct Samples**</font>と<font color="red">**Indirect Samples**</font>の値を極端に下げてみてください。あっという間に確認できるはずです。
なお、[<font color="blue">**Lightmap Indices**</font>]のビューに切り替えることで、現在ライトマップがどのように使われているかを確認することができます。
これを [<font color="blue">**1 Directional Lightmap: 512×512px**</font>] 以下になるまで続けてください。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/111/fig_lightbake_13.png" width="500">
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/112/fig_lightbake_14.png" width="500">
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/105/fig_lightbake_15.png)
---
## ライトプローブ
配布シーンには最初から推奨設定のライトプローブが配置してあります。
しかし、<font color="red">ブースのメッシュがライトプローブの点を完全に覆い尽くす場合、その影響は真っ黒なものになってしまいます。</font>
そうした点がある場合、<font color="blue">**ライトプローブの点を削除するか、移動する必要があります**</font>。
**編集ボタン**を押すと、各点を移動できるようになるので、これを編集してください。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/106/fig_lightbake_16.png)
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/113/fig_lightbake_17.png" width="500">
▼ライトプローブの参考リンク
https://docs.unity3d.com/ja/2017.4/Manual/class-LightProbeGroup.html
---
## リフレクションプローブ
リフレクションプローブを置きたい場合は「<font color="blue">**解像度128**</font>」の**カスタムキューブマップ**を設定してください。
### カスタムキューブマップの作成方法
リフレクションプローブを配置し、Generate Lightingで通常のベイクを実行すると、『ReflectionProbe-0』などのリフレクション用のキューブマップがScene名と同じ名前のフォルダ内に作成されます。
そのキューブマップを「複製」し、わかりやすい名前をつけてください。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/114/fig_lightbake_18.png)
リフレクションプローブの「Type」をCustomに変更し、Cubemapに先程作成したキューブマップを格納します。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/115/fig_lightbake_19.png)
---
# Vケット入稿用ライトマップについて
---
## 焼くオブジェクトの決定
ライトを焼きたいオブジェクトを選択し、<font color="blue">**Lightmap Static**</font>にチェックを入れます。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/99/fig_lightbake_01.png" width="500">
しかし、必ずしもすべてのオブジェクトをベイクする必要はありません。
<font color="red">ライティングの影響の少ないオブジェクトまで焼いてしまうと、ライトマップの容量を圧迫してしまいます。</font>
今回はライトマップサイズは<font color="red">**512を1枚**</font>に抑える必要があるため、キレイに焼く為にもなるべく節約しましょう。
- アバターなどのSkinned Mesh Rendererはライトベイクの対象に含まれません。
- 展示アバターを綺麗に見せるために、ワールドのRealtime DirectionalLightを当てるのを推奨します。
- ワールドのRealtimeDirectionalLightを当てるには、LayerをPickupに設定してください。
- ![fid](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/133/fig-pickup.PNG)
### 【焼くべきオブジェクト:BakedLighting】
- <font color="blue">**壁、天井、床、机などライティングの影響を与える**</font>大きなオブジェクト
光や影を焼きたい場合はライティングをBakeします。焼かれたデータはライトマップとして保存されます。
### 【焼く必要のないオブジェクト:ProbeLighting】
- <font color="red">**小物、アクセサリー、キャラクターなど、ライティングに影響を与えない**</font>と思われるオブジェクト、<font color="red">**動くダイナミックなオブジェクト**</font>
焼かないオブジェクトは主に<font color="orange">**LightProbe**</font>による**ProbeLighting**を使用します。
LightProbeは配置した位置における周囲の光を取り込み、オブジェクトに反映します。(つまり周囲の光の影響になじむ)
焼かれていないオブジェクトはデフォルトでLightProbeの影響が有効になっています。
ProbeLightingをするオブジェクトの注意点としては、<font color="red">**複数のオブジェクトを結合している場合には一つのオブジェクトとしてLightProbeの影響を受けてしまいます。**</font>
明らかに違うライトの影響を受ける場合は<font color="blue">**オブジェクトの分離**</font>をおすすめします。
※オブジェクト数が増えてしまうことになるので処理負荷とのトレードオフではあります。まとめられるオブジェクトはまとめるのを推奨です
(ライトプローブの配置については後述)
---
## ライトマップUVの展開
Blenderなどのモデリングソフトで作成し、Unityに読み込んだFBXなどのモデルの多くは、<font color="red">**ライトマップ用のUV展開がされていません。**</font>
このままライトを焼いた場合、UVが重なってしまっているところは<font color="red">**ライトが2重に焼かれてしまい、おかしな光や影が入ってしまいます。**</font>
### 【簡易版:ライトマップUV自動展開】
Unity側で自動的にライトマップ用のUVを展開してくれる機能があります。デフォルトでは有効になっていないため、新しくモデルを取り込んだときには [<font color="blue">**Generate Lightmap UVs**</font>] にチェックを入れて、ライトマップ用のUVを自動展開してあげる必要があります。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/100/fig_lightbake_02.png)
自動展開を使う方法では、暗い場所などライトの影響が強い環境下で細かい<font color="red">ライトマップのエラーが出てしまうことが多く</font>、完璧な方法とは言い難いです。
しかし、ライトマップは展開されているのでライトベイクをすることは可能にはなります。
ライトを焼いてみて、<font color="blue">ライトマップエラーが目立たない、許容できる場合はこちらの方法でも良い</font>かと思います。
ライトマップエラーが出てしまうが、簡易的に解決したいという場合は<font color="blue">**Pack Margin**</font>の値を調節してあげることで、ある程度解決する場合があります。
※ただし、UV同士の間隔が開くためにライトマップが無駄になってしまう領域が広くなってしまいます。
### 【上級者向け:UV2作成】
モデリングソフト上で<font color="blue">**ライトマップUVを手動で展開**</font>する方法です。
Unityに取り込んだモデルで、2つ目のUVを作成してあり、[<font color="blue">**Generate Lightmap UVs**</font>]のチェックがついていない場合、<font color="blue">**2つ目のUVがライトマップとして使用されます。</font>
ライトマップ用のUVを作る比較的簡単な方法の一つとしては、事前に展開してある1つ目のUVを複製し、[<font color="blue">**UV2**</font>]などの名前にし、その複製されたUVを、<font color="red">**オーバーラップがないように**</font>、かつ<font color="red">**ある程度のpadding**</font>を空けて島を梱包することで、ライトマップUVとして使うことができます。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/101/fig_lightbake_03.png)
この際、裏面や見えにくいところ、**光の影響が少ないところなどのUVの大きさを調整して、無駄を少なくし、全体のライトマップを調整する**ことを推奨します。
---
## ライトベイクの基本
ライトを焼きたいオブジェクトを選択し、<font color="blue">**Lightmap Static**</font>にチェックを入れます。
配布用シーンのライティング設定はBakedLighting用に調整してあるため、ライトの設置などができたらまずはそのまま焼いてみましょう。
### 基本的なライトの設定
- 追加したスポットライトなどの影響を焼くためには、ライトを選択し、設定を「**Baked**」にする必要があります。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/102/fig_lightbake_04.png)
- ライトがなくても**環境光**(スカイボックスからの光)や**グローバルイルミネーション**(間接光を表現する仕組み)というものが焼かれるため、多くの場合<font color="red">ライティングのベイクは必要です。</font>
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/103/fig_lightbake_05.png" width="500">
- Lightmap Staticかつ<font color="blue">**Standard ShaderのEmissiveのオブジェクト**</font>は、ベイク用の照明として使うこともできます。マテリアルのパラメーターから**Emissive**の設定を[**Baked**]にしてください。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/104/fig_lightbake_06.png" width="500">
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/97/fig_lightbake_07.png" width="500">
準備ができたらLightingパネルの一番下にある [**Generate Lighting**] のボタンを押します。(PC環境によっては5分から10分かかることがあります)
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/98/fig_lightbake_08.png)
---
## ライトマップ枚数/ライトマップ解像度の調整
ライトマップはサイズ<font color="red">**512×512px/1枚**</font>に収める必要があります。
ライトベイクが完了したあとであれば、ライトマップが何枚使われているかを確認することができます。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/107/fig_lightbake_09.png)
Lightingパネルの下のところに [<font color="blue">**1 Directional Lightmap: 512×512px**</font>] となっていれば問題ありません。
### ライトマップの枚数を減らすには
オブジェクトごとの<font color="red">**ライトマップ解像度を下げる**</font>必要があります。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/108/fig_lightbake_10.png" width="500">
まず、現状のライトマップ解像度を可視化するために、ビューを切り替えましょう。
Scene Viewの左上のところから[**Baked Lightmap**]を選択し、ライトマップがどのように焼かれているかを確認しましょう。
このチェッカー模様がライトマップの解像度です。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/109/fig_lightbake_11.png" width="500">
オブジェクトごとのMesh RendererのLightmap Settings から、[<font color="blue">**Scales In Lightmap**</font>]のパラメーターを調整します。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/110/fig_lightbake_12.png)
この数字を調整すると、チェッカー模様の大きさが変わっていくはずです。
では、[<font color="blue">**Scales In Lightmap**</font>]の値を変更して、ライトマップが1枚に収まるように調整しましょう。
ライトマップがどのように使われるかを確認するためにはライトマップを焼きながら確認するのが一番早いです。
ライトマップの枚数を確認するためだけに5分10分と待ちたくないため、**一時的にベイクのサンプル数を極端に落とします**。
(あとで戻してください)
<font color="red">**Direct Samples**</font>と<font color="red">**Indirect Samples**</font>の値を極端に下げてみてください。あっという間に確認できるはずです。
なお、[<font color="blue">**Lightmap Indices**</font>]のビューに切り替えることで、現在ライトマップがどのように使われているかを確認することができます。
これを [<font color="blue">**1 Directional Lightmap: 512×512px**</font>] 以下になるまで続けてください。
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/111/fig_lightbake_13.png" width="500">
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/112/fig_lightbake_14.png" width="500">
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/105/fig_lightbake_15.png)
---
## ライトプローブ
配布シーンには最初から推奨設定のライトプローブが配置してあります。
しかし、<font color="red">ブースのメッシュがライトプローブの点を完全に覆い尽くす場合、その影響は真っ黒なものになってしまいます。</font>
そうした点がある場合、<font color="blue">**ライトプローブの点を削除するか、移動する必要があります**</font>。
**編集ボタン**を押すと、各点を移動できるようになるので、これを編集してください。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/106/fig_lightbake_16.png)
<img src="https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/113/fig_lightbake_17.png" width="500">
▼ライトプローブの参考リンク
https://docs.unity3d.com/ja/2017.4/Manual/class-LightProbeGroup.html
---
## リフレクションプローブ
リフレクションプローブを置きたい場合は「<font color="blue">**custom設定**</font>」のリフレクションプローブを使用して下さい。(カスタム設定であれば解像度の制限などはありません)
### カスタムキューブマップの作成方法
リフレクションプローブを配置し、Generate Lightingで通常のベイクを実行すると、『ReflectionProbe-0』などのリフレクション用のキューブマップがScene名と同じ名前のフォルダ内に作成されます。
そのキューブマップを「複製」し、わかりやすい名前をつけてください。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/114/fig_lightbake_18.png)
リフレクションプローブの「Type」をCustomに変更し、Cubemapに先程作成したキューブマップを格納します。
![fig](https://img.atwikiimg.com/www65.atwiki.jp/virtualmarket/attach/55/115/fig_lightbake_19.png)
---