見出し画像

バーチャルマーケットのブースを作る (2):ライトマップ前編

はい、美坂です。
この記事ではBlenderとUnityでの「バーチャルマーケット向けの」
ライトマップについての知見を解説します。

主に

・バーチャルマーケットに出展したことがあって
 クオリティを更に上げたい人


・BlenderとUnityのライトマップについて
 ふんわり知りたい人

あたりを想定して説明していきます。
例によってBlenderとUnityの基本操作はできる前提です。

前回より更にターゲット層が狭くなってきました……

あと同じ内容の動画も同時公開しています。
テキストと動画、好きな方見てくださいね。

[はじめに]

今回ライティングの話ではあるんですが、
ライトの基本とか種類とか特性とかの話はスルーして
主にライトマップに特化して説明していきます。

バーチャルマーケットのような
色々と制限が厳しい環境でクオリティを上げるには
ライトマップを使うのはとても有効です。

ライトマップをうまいこと使えれば
モデルの見た目クオリティが大幅に上がります。
積極的に使っていきましょう。

[ライトマップ]

で、そもそもライトマップて何?
って話にちょっと触れておきましょう

CGでは空間にある色々な光源から物体の光の当たり具合を計算して、
最終的に見える色を表示しています。
結構複雑で負荷のかかる計算です。

しかし光源と物体が動かない場合、
物体表面の光の当たり具合は変化せず一定のままです。

変化しない値なら、光の当たり具合を1回計算して
テクスチャに記録しておけば、
後はもうそれを使いまわして済ますことができ、
何回も計算する必要がなくなります
これがライトマップの仕組みです

複雑な光源のブースでも記録したテクスチャを貼るだけで処理が済みます。
計算負荷はとても低く抑えられます。

[入稿制限]

バーチャルマーケットでのライトマップは
展示ワールドに配置された大量のブース全てまとめて
運営側でまとめて焼いてくれています。
すごく重そうな処理ですね。

そういう事情もあるのか、バーチャルマーケットで
ライトマップを使用する場合、かなり厳しい入稿制限があります。

具体的には
 ・ライトマップテクスチャは 512 x 512px で1枚以内に収める
です。

単純なモデルのブースなら割となんとかなるんですけど
ちょっと複雑なモデルになると
綺麗に仕上げるには厳しい仕様です。

うちのブースでは室内がかなり細かい作りになっていて、
この入稿制限で綺麗にライトマップを焼くのはとても難しいです。

画像1

……が、入稿されたブースはこんな感じ。
割といい感じになってます。 ……なってるよね?
何やらかしたらこうできるのか、ですが、

ライトマップの入稿制限が厳しいなら
計算処理は自分でやってしまえばいい。

という事でうちのブースの室内は
Blender側で事前にライトマップをテクスチャに焼いて
Unity側に持ち込んでいます。(※この辺の詳細は次回やります)
これならテクスチャサイズの制限は受けません。

まあ後で容量についての入稿制限が襲ってくるんで
あんまり調子に乗ってやるとつらいことになるんですけどね……

[2つの方法]

ライトマップの処理を
Unityで焼く場合とBlenderで焼く場合。
それぞれのメリット・デメリットをまとめておきましょう。

Unityでライトマップ
・ベイク処理は運営任せ
・制限が厳しい
・周囲の光源も反映される
・ライトプローブなど使用可

Blenderでライトマップ
・ベイク処置は自分でやる
・ある程度制限に余裕があるので細かい部分まで表現できる
・周囲の光は反映されない
・テクスチャによる擬似ライトマップなので制限あり

一長一短ですね……

[両方使う]

はい、2通りのライトマップについて解説しました。
実はこれ、もう気づいている方もいるかもですけど
両方同時に使うことも可能です。

画像4

実際うちのブースでは
内側はBlender、外側はUnityと
オブジェクト分けて設定しています。

画像2

内側は周りの光の影響をあまり受けないので
Blenderで大きなライトマップテクスチャを使って
精密にライトマップを焼いて……

画像3

外壁は周囲の光源を反映させて
周りの雰囲気に馴染ませるために
Unity側で焼いています。

と、このように両方使うことで
双方の良いとこ取りみたいな感じもできます。
まあ作るのが面倒くさいですけどね!

次回予告

ちょっと長くなってきたので
ここらで切って続きは次回にしましょう。
次回は実際にライトマップ焼いていきます。

サポートは主においしそうな or 変な食べ物に費やされます。 サポートしてくれるととても嬉しいですが、お金はまず自分自身を優先して使ってくださいね。