本日は cluster の技術調査枠です。
cluster の自作ワールドを作成してアップロードする手順を記事にします。
その6はライティングとスカイボックスの設定です。
前提条件
前回記事の続きになります。
bluebirdofoz.hatenablog.com
clusterワールドのライティング
ライトを利用する際は「ライティングモード」に気を付ける必要があります。
「ライティングモード」は Light オブジェクトの[Mode]項目で以下の3種類から設定します。
モード名 | 設定欄 | 説明 |
---|---|---|
Realtime | Realtime Lighting | ランタイムに全てのフレームの Realtime ライトのライティングを計算し更新します。Realtime ライトは事前計算されません。 |
Mixed | Mixed Lighting | ランタイムに Mixed ライトのプロパティーの一部を計算することが可能ですが、制限があります。Mixed ライトの中には事前計算されているものがあります。 |
Baked | Lightmapping Settings | ランタイム前に Baked ライトの照明を事前計算し、ランタイムの計算にはそれらを加えません。全ての Baked ライトは事前計算されます。 |
cluster のワールドには3つ以上のピクセルライトを反映できません。
3つ目以降のライトのピクセルライトは自動的に無効化されます。
例えば、以下の事例では1つ目、2つ目の赤色と緑色のライトは床や天井にピクセルライティングが行われていますが、3つ目の青色のライトのピクセルライティングが行われていません。
cluster のワールドではリアルタイムシャドウは利用できません。
例えば、以下の[Realtime]のライトで作成したワールドでは物体の影が描写されず、壁や天井ごとに陰影が表示されています。
ワールドに物体の影を描写するには[Mixed]または[Baked]のライトで影をワールドにベイクしておく必要があります。
以下の[Baked]のライトで影をベイクしたワールドでは、物体同士の影が描写され、窓から差し込む光が表現されています。
ただし、[Baked]のライトは[Static]でないモデルを照らすことはできないので注意してください。
本記事では手順の簡略化のために、「Realtime」のライトを1つだけ利用することにします。
ライティングに関する詳細を知りたい方は以下のページを参照ください。
creator.cluster.mu
clustervr.gitbook.io
docs.unity3d.com
ライトの配置
今回は室内のワールドなので部屋の中央に1つの電灯を配置することにします。
ワールドにデフォルトで配置されている DirectionalLight オブジェクトは不要なので削除しておきます。
ライトには幾つかの種類があります。今回は全方向に光を放つポイントライトを使用します。
ライトの種類の詳細を知りたい場合は以下のページを参照ください。
docs.unity3d.com
[Hierarchy]上で右クリックから[Light -> Point Light]を選択し、ライトを追加します。
追加された Point Light の Inspector ビューを開いて、Transform を編集して部屋の中央に移動させます。
更に[Light]コンポーネントの[Range]の値を調整して光の強さを変更します。
更に温かい感じを出したかったのでライトの色合いを変更してみます。
ライトの色は[Color]項目で変更できます。
これで部屋がライトに照らされて明るくなりました。
ワールドのスカイボックス
デフォルトだとワールドの背景には青空が設定されています。
このままだと部屋の明るさと合わないので、背景も夜空に変更してみます。
スカイボックスマテリアルの作成
背景の設定にはスカイボックスを利用します。
最初に、スカイボックスの元となるHDRI画像を以下のサイトから取得します。
hdrihaven.com
今回は以下の夜景のHDRI画像を利用します。
ダウンロードサイズは2kを選択しました。
変化がすぐ分かるように[Game]画面にスカイボックスを表示します。
[effect -> skybox]にチェックを入れると、[Game]画面にスカイボックスが表示されます。
ダウンロードしたHDRI画像を Unity に取り込みます。
Inspector ビューを開き、[Texture Shape]を[Cube]に変更して[Apply]で変更を反映します。
スカイボックス用のマテリアルを作成します。
[Project]のフォルダ上で右クリックから[Create -> Material]で新規マテリアルを作成します。
作成したマテリアルの Inspector ビューを開き、[Shader]を[Skybox -> Cubemap]に変更します。
シェーダを変更したら[Cubemap (HDR)]に取り込んだ画像を設定します。
名前を適当なものに変更して、これでスカイボックス用のマテリアルが作成できました。
スカイボックの変更
次にスカイボックスの設定を変更します。
メニューから[Windows -> Rendering -> Lighting Settings]を選択します。
すると[Lighting]ウィンドウが開きます。
[Skybox Material]を先ほど作成したスカイボックス用のマテリアルに設定します。
これでスカイボックスが切り替わりました。
シーンを再生して、窓を覗き込むと夜空が見えるようになりました。
風景の明るさはマテリアルの[Exposure]で、風景の回転は[Rotation]で変更することができます。
ワールドの更新
ここまでのカスタマイズで一度、cluster 上のワールドを更新してみます。
メニューの[Cluster -> ワールドアップロード]から[ワールドアップロード]ダイアログを開きます。
前回作成した[TestWorld]を選択し、画像等の情報を更新した上で再び[アップロードする]を実行します。
これで指定のワールドが更新されます。
テストプレイしてみました。
ワールドが更新されて、部屋を歩き回ることができました。
次回はポストプロセッシングを使ってワールドを幻想的な雰囲気にしてみます。
bluebirdofoz.hatenablog.com