【VRChat】2026年版:Blenderでワールドを作ってVRChatにアップロードする④~Unityでライティング~

Unity
記事内に広告が含まれています。

Blenderでワールドを作ってVRChatへアップロードしてみようという記事の4回目です。

この記事ではBlenderで作ったモデルをUnityでセッティングしていきます。
具体的にはライティング設定・ライトベイクをやっていきます。

基本的なモデリング、マテリアル付けなどできる方向けに、Blenderで簡単なお部屋を作ってVRChatへアップロードする手順をまとめているので、1回目から見たいよと言う方は以下の記事から読んでみてください。

今回は右図のような、小さい小部屋を作っています。VRChatでホームに設定して、自分の部屋として使うこともできます。

作るもの

  • 建物(部屋+廊下)
  • ソファ(クッションつき)
  • 机・イス
  • ローチェスト
  • 観葉植物の飾り
  • きのこのランプ
  • ぬいぐるみ

動画プレーヤー(Unityでつけます)やイスに座れる設定、ポストプロセシングで光を柔らかく表示するような設定もつけます。

ライティング、ライトベイクはワールド制作の中でも結構難易度が高い作業なので、あまり完璧を求めず、気楽にやっていきましょう。

スポンサーリンク

ライトを配置する

まずは、部屋の中を照らすライトを配置していきます。

部屋の照明

  • デフォルトで出てたDirectional Lightを利用します。
    右クリック > Renameで名前を変えてMain Lightとしました。
  • InspectorのTransformでRotation(回転)をX90,Y0,Z0にして、ライトから出てる矢印を引っ張って部屋の真ん中の照明のところに持っていきます。
  • Lightの設定
    • Type…Spot
    • Range…10
    • Spot Angle…80くらい(光の広がり具合)
    • Color…ライトの色味を決めます。(暖色を設定しています。お好みで決めてください)
    • ModeBaked(ライトベイクのために必要です)
    • Intensity…強さ。8
    • Indirect Multiplier…間接光の強さのスケール。2
    • Shadow Type…Soft Shadows

※部屋の広さによっては調整が必要な場合があります。画面を見て明るさや範囲などを調整してみてください。

※ライトがオブジェクトの中に入っているとライトベイクに失敗する(明るくならない)ことがあります。オブジェクトの中にめりこみすぎないように少し位置をずらしてください。

ランプの照明

  • ヒエラルキー上で
    右クリック > Light > Point Light
    でライトを追加します。
  • ライトから出てる矢印を引っ張ると移動できるので、ランプのところに移動させます。
  • ライトの設定
    • Type…Point
    • Range…1
    • Color…暖色に設定
    • ModeBaked
    • Intensity…7
    • Indirect Multiplier…2
    • Shadow Type…Soft Shadows

廊下の照明

廊下の照明をつけます。

ヒエラルキー上で右クリック > Light > Spot Light
を出して、廊下のライトの近くにおきます。(あまり上に置くと照明の影が出てしまったり、めりこんで明るさが出ないので気を付ける)

スポットライト設定

  • Type…Spot
  • Range…10
  • Spot Angle…75くらい。明るさの広がる範囲
  • Color…暖色に設定
  • ModeBaked
  • Intensity…強さ。5
  • Indirect Multiplier…2
  • Shadow Type…Soft Shadows

ライト・照明を複製する

廊下には2個照明をつけようと思っているので、今ある照明を複製します。

照明やライトを選択して、ヒエラルキー上で
右クリック > Duplicate
で複製できます。

位置をずらして配置します。

スポンサーリンク

ライトベイクの準備

ライトベイクとは、光や影の影響をあらかじめ計算し、その結果をテクスチャとして保存しておく仕組みです。
実行時に毎フレーム光の計算を行わなくて済むため、処理負荷を大きく下げることができます

ライトベイク用UVを作成する

インポートしてきたFBXファイルをクリックすると
InspectorにImport Settingsというメニューが出ますのでその中のModelタブを開きます。

  • import Cameras…チェック外す
  • import Lights…チェック外す
  • Generate Lightmap UVs…チェックする
  • Lightmap UVs settings
    • Min Lightmap Resolution…80~110
    • Min Object Scale…5~8

Applyボタンを押して適用します。

これでライトベイク用のUVが生成されます。

※今回、とても小さいワールドなので、Min Lightmap ResolutionMin Object Scaleを結構大きくしてUVに占める割合を多めにしてます。

オブジェクトの設定

ライトベイクで静的(動かない)オブジェクトがライトベイクされるために必要な設定です。

ライトベイクしたい全てのオブジェクトに以下の設定をしてください。

  • Staticにチェックを入れる

Mesh RendererContribute GIを有効にするのは、デフォルトで有効になっているので見なくても大丈夫だと思います。(もしうまくいかないときに、確認して、外れていたらチェック入れてください)

Blenderからもってきた建物や家具などのオブジェクト全部にこれをやってください。(さっき作ったライトは除く)

スポンサーリンク

ライトベイク設定

準備ができたら1回ライトベイクしてみます。(ライトベイクは何度でもやり直せるので、何回でもテストで焼いてみることができます。)

右下のライトのアイコン or
Window > Rendering > Lighting
でライトベイクの設定ができるLightingの設定画面が開きます

Lighting画面中のSceneタブの中から設定していきます。

  • Lighting SettingsNewを押し設定を新規作成します。
  • Mixed Lighting
    • Lighting ModeBaked Indirectにします。動的オブジェクトのライティングも焼きます
  • Lightmapping Settings
    • LightmapperProgressive GPUで焼いて見て、うまくいかなかったらCPUに切り替える。(プレビューって書いてあるけどうまく焼けてたらGPUでいい。)
  • Direct Samples…128
  • Indirect Samples…512
  • Environment Samples…512
  • Lightmap Resolution…80~110。ライトマップテクスチャの解像度。数値が大きい方が時間かかるけど綺麗な仕上がり。
    • Lightmap UVs settingsのMin Lightmap Resolution…80~110に揃えてみてください
  • Max Lightmap Size…2048
  • Ambient Occlusion…チェックを入れると接地面とか角の部分でちょっと暗くする。床と家具の接地面、壁の角が黒く締まってリアルになる。

GPU Baking DeviceにGPUがきちんと検出されない場合は、1回Generate Lightingでベイクしてみたら検出される場合もあります。

Lighting画面中のEnvironmentタブの中

環境光の設定です。ライトが直接当たらない場所の明るさや色に影響し、その結果はライトベイクにも焼き込まれます。

  • SkyBox Material…現在設定されている Skybox マテリアルが表示されます。室内ワールドでも、環境光や反射の入力として使われる場合があります。デフォルトのままでいいです。
  • Environment Lighting…デフォルトのGradient
  • Environment Reflections…環境からの反射。
    • SourceCustomにしておきます。
    • Cubemap…まだ反射マップが作成されてないのでNoneのまま放置します。

設定ができたら下のGenerate Lightingを押してライトベイクします。作成には最初は時間がかかります。画面下に進行途中のバーが表示されてますので、終わるまで待ってください。

エラーが出てライトベイクできない場合

画面下に

OpenCL CPU device Microsoft Basic Render Driver is not supported ignoring device for lightmapping 

のようなエラーが出てうまく焼けない場合、
Lightmapping Settings…Progressive CPU
に変えてもう一度焼いて見てください。
それでもベイクできない、エラーが消えない場合、
OpenCL™、OpenGL®、および Vulkan® 互換機能パック
が影響している可能性があります。

Windows の
設定 → アプリ で検索してアンインストールすると、ベイクできるようになる場合があります(自分の環境ではこれで解決しました)。

ただし、環境によってはこれらのAPIを使用するアプリが正常に動作しなくなる可能性があります。
問題が発生した場合は Microsoft Store から再インストール可能です。

ライトマップ確認

ライトベイクが終わったら、Lighting画面中のBaked Lightmapsタブを開くとライトマップが表示されています。

ライトマップの中の画像をクリックすると、ライトマップのプレビュー画面を開くことができます。

ポイント

  • サイズ2048×2048のライトマップが1枚焼けていること
    • 2枚とか複数枚焼けていたら、うまくUVが配置できてない、もっと節約できるよということです。(でも2枚くらいだったらOKなので、そのまま進めても構いません)
  • 半分以上の面積でUVが使われていること
    • うまくUV配置ができてないと、とても小さくUVが配置されて、光や影が汚く見えます。
    • そういうときは上で設定した、
      Lightmap UVs settings
      • Min Lightmap Resolution
      • Min Object Scale
      • などの値を変えて何回かライトベイクし直してみてください。

エラー修正

ライトベイクはできたけど、以下のようなエラーが出ることがよくあります。

There are5objects in the Scene with overlapping UV’s. Please see the details list below or use the ‘UV Overlap’ visualisation mode in the Scene View or Lightmaps in Lighting Settings for more information.

これはUVが重なっているところがあるよという注意です。UVが重なってしまうと明暗がおかしくなったりへんな形が出てしまったりするので、どこかおかしなところがないか確認して修正すると直る場合もあります。正直、初心者チュートリアルだと気にしなくていいかなと思いますが、気になる方は以下に修正方法などまとめていますので修正するときの参考にしてみてください。

スポンサーリンク

Reflection Probeを配置

次はReflection Probeを配置します。鏡とか、金属など反射するものに映り込みを表示させるためのマップです。

Hierarchyに
右クリック > Light > Reflection Probe
で追加できます。

球が部屋の中に出現します。まだ何も焼かれてないのでグレーになっています。

置き場所

壁で遮られてる部屋の中心、高さはキャラクターの目線の場所です。(中心に何かオブジェクトがあってめり込んでしまう場合はそこを避けてください。)

右図のような場合、廊下と、中央の部屋に1つずつ置きます

影響範囲の調整

InspectorのReflection Probe下の左側のアイコンを押すと編集モードになります。Probeを囲むボックスの黄色いドットをドラッグすることで大きさを変更できます。

あまり大きくすると壁の向こう側が見えることがあるらしいので、部屋の壁を覆うくらいでいいです。

ベイクの設定

TypeがBakedになってることを確認し、Box Projectionにチェックします。

Probeを設定できたら再度Generate Lightingを押し、ライトベイクすると反射マップが作成されます。(球に周囲の風景が映り込むような感じになります。)

反射マップ設定

ライトベイクで反射マップが作成されたら、シーンの環境反射マップとして設定します。

projectの中の
Assets > Scenes > VRCDefaultWorldSceneの中にさっき作った反射マップが入っています。

Lighting設定 > Environmentタブの中の
Environment Reflections >

  • Source…Customにする
  • Cubemap…反射マップをドラッグして設定

大きい部屋に置いて作った反射マップの方を使ってください。(ほぼフォールバックなので、どっちでもいいかもしれませんが…)

スポンサーリンク

Light Probe Group

今までのライトベイクでは動かないオブジェクトの明暗情報を焼きつけていました。このままでは動くキャラクターなどにライトが当たりません。

Light Probe Groupはキャラクターなどの動的(動く)オブジェクトが、ベイクされたライティング空間を動いても、周囲の光の雰囲気に近い見た目で照らされるようにしてくれる仕組みです。ベイクされた光の情報をサンプリングして使用します。

Light Probe Groupを追加する

Hierarchyで右クリック
Light > Light Probe Group
で追加できます。

編集

Light Probeを選択し、InspectorのLight Probe GroupコンポーネントEdit Light probe Positionsボタンで編集モードに入ります。

黄色い球のProbeを選択し、Duplicate Selectedを押すと複製できます。Ctrl + Dでも複製できます。

複数のProbeを選択して複製し、移動させて広げていくと楽です。

配置する場所

キャラクターが通るところに配置します。

Light Probe は、黄色い球1個1個が光の情報を持つサンプル点です。

そのため、光の明るさや色味がはっきり変わる場所 では、その境界付近に Probe を配置することで、明暗がより自然に計算されるようになります。

初心者さんはまだよくわからないと思うので、Probe をグリッド状のままワールド全体に配置してもOKです。狭いワールドなので、とりあえず等間隔で何個か置いておけばそこまで表示がおかしくなることはないです。個数は200個くらいまでなら大丈夫です。

編集が終わり、ワールドにLight Probe Groupを配置できたらもう一回ライトベイクします。

ライトベイクは普通に難しいので大変だったかもしれませんが、あまり細かいことを気にせず、作業を進めてみてもいいと思います。最初から完璧にライティングをしようと思うと終わらなくなってしまうので…。何回もワールドを作ってみるとコツがつかめてきたりしますので、気にしないことも大切です…!

次回は動画プレーヤーを置いたり、イスのギミックをつけてみます。

スポンサーリンク

続き

続き:第⑤回目 Unityでアイテムを配置したり、エフェクトをかけてアップロードまでやっています。

第①回目 Blenderでモデリングをしています。

第②回目 Blenderでマテリアル・テクスチャを作成しています。

第③回目 Unityでマテリアルなどの設定をしていきます。

スポンサーリンク

関連記事

アバター制作チュートリアル記事です。

動物型。シンプルアバター制作チュートリアル(アバター制作初心者向け)

人型アバター制作チュートリアル(アバター制作中級者向け)

コメント