ワールドを雰囲気よくする「とりあえずベイク」集
ライトベイクというと、雰囲気はよくなる(らしい)けどうまくいかないことも多かったりで難しそう、というイメージのある方方もいるかもしれません。この記事では、手抜きでそれっぽくするためのちょっとした事例集を提供します。
これが
https://scrapbox.io/files/63a9a8f9f2622f001d0dd50f.png
こうなって
https://scrapbox.io/files/63a9a856905a27001e85581e.png
こう!
https://scrapbox.io/files/63a9a8adc8bfb6001d643c3e.png
※部屋のモデルは研究室の学生が作ってくれたものをお借りしました!ありがとうございます。
そもそもライトベイクとは?
光の影響をあらかじめ時間をかけて計算して、光の当たり具合をあらわす専用のテクスチャ(ライトマップ)に書き込んでおくことを言います。ライトマップを作成することを「ライトマップを焼く(Bake)」と言うことから、ライトベイクと呼ばれています。ライトベイクを行うと光の反射と散乱を時間をかけて計算できるので、うまく使うととても写実的な陰影を作ることができます。
Step 1 エリアライトを使おう
手軽に雰囲気の良い照明にする第一歩はエリアライト(Area Light)を使うことです。エリアライトはベイク専用の光源で、点ではなく面で発光して自然で柔らかな影を作ることができます。
Area Lightを配置する
まず、Area Lightを追加して、だいたい天井を覆うように配置します(向きがあるので注意!面中央の黄色い線が伸びている方に光が出ます)。
※シーンにもともとDirectional Light等があるときは無効化しておきましょう。
https://scrapbox.io/files/63aa698d8471a0001ebcb623.png
https://scrapbox.io/files/63aa699f84b054001d069652.png
固定オブジェクトをStaticにする
ライトベイクは、固定されたオブジェクトにしか作用しません(動くと光の当たり方は変わってしまうので)。というわけで、ベイクの対象にするオブジェクトには、固定オブジェクトであることを示すStaticのチェックを入れる必要があります(画像右上)。
https://scrapbox.io/files/63a66ced943f05001d6f6088.png
一つ一つチェックをいれるのは大変なのでまとめて設定してしまいましょう。固定のオブジェクトを親となるオブジェクト(上の画像では「StaticObjects」)の子要素にして、親オブジェクトにチェックを入れると、次のようなメッセージが出ます。
https://scrapbox.io/files/63a66e5224f5c8001e21b596.png
ここで「Yes, change children」を選ぶと子要素にもぜんぶStaticのチェックが付きます。
ベイクする
ライティングの設定を開きます。WindowメニューからRendering → Lightingを選択。
https://scrapbox.io/files/63aa687e478479001ec7e376.png
Lightmapping Settingsの中に設定可能なパラメータが山のようにありますが、まずは初期値のままで構いません。
パネル下部の Generate Lighting をクリックして、あとは気長に待ちましょう(ゲーミングPCでも数分、PCの性能によっては数十分や場合によっては数時間かかることもある工程です)。
実行中は画面右下にこんな感じで進行状況が出るので参考にするとよいです。
https://scrapbox.io/files/63a68f95eed89b001eafb413.png
そして・・・
https://scrapbox.io/files/63a5f722c9608b001d814b53.png
できあがり!
◆ ◆ ◆ ◆ ◆
次の例では、面光源を縦向きに変えて、窓からの外光に見立ててみました(あわせて壁も一部分なくして窓のようにしています)。
https://scrapbox.io/files/63a6960e3454be001ef6fdf6.png
このようなライト配置で、改めてベイクしてみます。
ちなみに、ベイクをやり直すときは、前のベイク結果は一度クリアしたほうが確実です。
https://scrapbox.io/files/63a6a6730218de001d80ac14.png
結果はこうなりました。
https://scrapbox.io/files/63a69725b4f0ca001d1e738e.png
雰囲気ががらりと変わりましたね。暗めの部屋に、窓から明かりが入っているように見えます。
昼間なら外はもう少し明るいかもしれません。明るさはインスペクタのIntensityの項目で変えられます。1から2に変更してみましょう。
https://scrapbox.io/files/63a6b37be45295001d1a0929.png
明るくなりました(ついでに空の色も水色に変えました)。
https://scrapbox.io/files/63a6b4504f80c3001d3985fd.png
Step 2 点光源を使おう
点光源(Point Light)はベイクしなくても使えるので、ライトベイクに慣れていなくても使ったことがある人が多いと思います。
とりあえず使ってみる
https://scrapbox.io/files/63aa6c5279a4ea001d8f7ac8.png
Point Lightをベイクで使う場合は、Point Lightのインスペクタを開いてModeをBakedに変更します。
また、
Shadow TypeをSoft Shadowsに変える
Baked Shadow Radiusを少し大きくする(1とか2とか)
と、影の境界がボケて柔らかくなります。
https://scrapbox.io/files/63a943f1bcbcf8001d8165bf.png
エリアライトの場合と比べてみました。左が点光源、右がエリアライトです。
https://scrapbox.io/files/63aa675f8fcb2f001eb0620c.png
点光源の方が光の濃淡が強く、エリアライトのほうがより柔らかな光の当たり方になっていることがわかります。どちらが良いとは一概に言えませんが、上の二例だとエリアライトの方が落ち着いた雰囲気に感じられるかもしれませんね。
では、点光源が向いている場面は?
たとえば電球やランタンのような小さな照明器具を表現したい場合、点光源が向きます。
https://scrapbox.io/files/63a95766dc200e001d650385.png
明るさは若干大きめにして光の濃淡がより強くでるようにしてみました。また、色も電球らしく変えています。
https://scrapbox.io/files/63a9578806db48001e8ec7d8.png
点光源をたくさんつかう
天井灯として使う場合も、沢山配置するとお洒落で柔らかな印象になります。こういった照明はホテルやオフィスのロビーなどでよく見かけるのではないでしょうか?
https://scrapbox.io/files/63a959592bb94e001dc6542c.png
ライトを沢山使う分、一つ一つのRangeは短めの5mに設定、一方で光の強さを表すIntensityは強めの2に設定しました。
https://scrapbox.io/files/63a9597443d4be001d46aef4.png
ちなみに、ベイクはすべて事前計算なので、ライトを増やすとベイク自体にかかる時間や計算資源は増えますが、実行時の負荷はどんなにライトが増えようと変わりません。好きなだけ使いましょう!
Step 3 いろいろな間接照明を作ろう
おしゃれな部屋の照明の代表格といえば間接照明ですね。
個人的には、間接照明を作れることはライトベイク最大のメリットの一つとも思っています。リアルタイムライトでは「壁に反射した光がさらに別の壁を照らす」ことがないので、間接照明を作ることができません。
そんなおしゃれな間接照明も、エリアライトとベイクを使えば楽々です。
https://scrapbox.io/files/63a8c079ffb251001dbf161d.png
この例には、6種類の間接照明が含まれています。これまでの例と違って部屋のモデル自体も加工する必要がありますが、さほど複雑な形ではないのでご安心を。
一つ一つみていきましょう。
◆ ◆ ◆ ◆ ◆
コーブ照明
天井を照らす照明です。
https://scrapbox.io/files/63a9aa0f0d2abd001d1512db.png
構造は、天井に穴をあけてその奥に板を配置し、4枚のエリアライトで奥の板を照らすようにしています。
https://scrapbox.io/files/63a9aaef5ef549001e2a3337.png
https://scrapbox.io/files/63a9ae44ad00f5001e37807e.png
コーニス照明
壁面を照らす照明です。
https://scrapbox.io/files/63a9ab2c970371001e00d076.png
壁際の天井にくぼみを作り、そこに斜め下を向けたエリアライトを配置して壁を照らすようにしています。
https://scrapbox.io/files/63aa838767ad90001e06ce9d.png
バランス照明
壁面中央から、壁面を上下に照らす照明です。
https://scrapbox.io/files/63a9aedf88c957001fed480e.png
板状にしたキューブを壁面から少し浮かせて配置し、そこに上下2枚のエリアライトを配置しています。
https://scrapbox.io/files/63aa84085f2b70001e39b22e.png
フットライト
足元付近から床を照らす照明です。
https://scrapbox.io/files/63a9b1e20c0112001ec55fc5.png
構造は、柱に切り欠きを作ったうえで下向きのエリアライトを置いただけのお手軽仕様です。
https://scrapbox.io/files/63a9b24e331501001dc9d385.png
ニッチ
これは正しくは照明ではありませんが、壁をくぼませてつくる飾り棚の事です。ニッチの上部にニッチ内の壁面を照らすようにエリアライトを下向きに配置すると、ニッチ内をグラデーションの付いた柔らかな光で照らすことができます。
https://scrapbox.io/files/63a9b1901b3bd5001df6727f.png
スポットライトを上下ひとまとめにしたもの(?)
これ名前あるんでしょうか。壁の中央で上向きのスポットライトと下向きのスポットライトを組み合わせたものです。
https://scrapbox.io/files/63a9b631b3c161001e38af92.png
これまでに出ていないライトの種類として唐突に「スポットライト」が出てきましたが、要は放射範囲が円錐状に仕切られた点光源です。したがって使用上の注意も点光源と同じです。こちらの例では2つのスポットライトを使いました。
https://scrapbox.io/files/63a9b6a7d25159001e5ad029.png
Step 4 Directional Lightをベイクしよう
Unityを使っていると真っ先に目にすることになるDirectional Lightですが、ベイクで雰囲気のよいシーンを作ろうとする時には使い方に少し工夫が必要です。
こちらをご覧下さい。
https://scrapbox.io/files/63a9bc4186d4f2001f8da3a1.png
Directional Lightが部屋の中全体を照らせるように、ちょっと乱暴ですが天井を取り除いてみました(わざとらしい例ですが分かりやすさ重視ということで)。ベイクしたにしてはなんだかぱっとしないと思いませんか?
ここまでの事例で紹介してきたとおり、ベイクが威力を発揮するのは「間接光」が見た目に大きく関わる場面です。Directional Lightは均一すぎて、シーン全体に直接当てるとせっかく計算された間接光の微妙な濃淡を覆い隠してしまいがちです。
ですのでDirectional Lightを「雰囲気のいいライティング」に使う場合、場面そのものを工夫してDirectional Lightの光がシーン全体に直接はあたらないようなものにするとよいのではないかと思います。
◆ ◆ ◆ ◆ ◆
というわけで、天井を元に戻してベイクしてみた結果がこちら。
https://scrapbox.io/files/63a9b9d1d16d62001d3ee869.png
天井があることで、部屋の大半にはDirectional Lightの光が直接はあたらなくなりました。その一方で、床や机や壁で反射した間接光が部屋全体に満ちることで柔らかな光の空間ができました。
ライトの設定ですが、
ModeをBakedにする
Shadow TypeをSoft Shadowsにする
Baked Shadow Angleを1~2程度にする
といった注意点はPoint Lightと同じです。
テーブルや床で反射した光だけでも十分明るく周囲を照らしてくれるようにするために、光源自体の明るさ(Intensity)を少し明るめの2にセットしました。
https://scrapbox.io/files/63a9c50dd16d62001d3f39b0.png
別の例です。照明の色と角度を変えて、夕陽のさす部屋にしてみました。夕方の暗さを表現するために光源のIntensityは0.8まで下げてあります。
https://scrapbox.io/files/63a9be2d8f9aac001dd73628.png
まとめ
ベイクを用いて「とりあえず雰囲気の良い照明」にするコツは、まとめると
できればエリアライトを使う
そうでない場合はSoft Shadowを有効化してBaked Shadow Angleを1~2にする
光源を多数置く
間接照明を使う、間接光で照らす
ことです。
そしてここまでできるようになったら、もう一つのおすすめするのが、現実の街や建物を観察すること。
ライトベイクは基本的には光源がシーンを照らす様子を現実同様に再現してくれるものです。ベイクが使えるようになった後で街中を散歩してみると、様々な場所にライティングのヒントが転がっていることがわかるでしょう!
もちろん、近くの現実に手頃な街がない方は、VRChatやclusterの雰囲気のよいワールドを見てどんな照明があるのか想像してみるのも良いとおもいます。
もっと詳しく知りたい人へ
参考になりそうな記事を挙げておきます。
特に今回の記事では、ライティングパラメータの調整やBakeryの話は省いたので、そのあたりが気になった方はぜひ上記記事も読んでみてください。