RenderingSettingsの使い方【Vket Cloudのワールド設定機能一覧】

:::note info
本記事は、Vket Cloud Settings を使ってワールド設定を変更する【Vket Cloudのワールド設定機能一覧】の記事の一部です。

本記事に掲載されている情報はVketCloudSDK12.3.4のものです。
バージョンにより見た目や表示情報が変化する場合がございます。

VR法人HIKKYのorganization下のQiita/Zenn両方に投稿しております。
:::

# はじめに
Vket Cloud Settingsの子オブジェクトにある、**RenderingSettings**を編集することで、ワールドのレンダリング表現に関連する設定を行うことが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/161532a1-be13-b9d1-4e5f-2a5f4801ca6c.png)

::: note info
**表示されない場合**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/c7775a17-a085-cb0a-2be8-aee55211c8f4.png)


RenderingSettingsはAdvanced設定となります。
表示されない場合はVket Cloud Settingコンポーネントの設定モードを**Advanced**にすることで表示されます。
:::

## RenderingSettings
RenderingSettingsオブジェクトの中にはRenderin Settingコンポーネントが入っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/96e8d0c9-ff14-e072-0d57-b784391b816b.png)

### 物理ベースレンダリング
チェックを入れることで物理ベースレンダリングが有効となります。
物理ベースレンダリングが有効になった状態では、ワールド内のオブジェクト指向性光源(後述)の影響を受け、影を描画します。
物理ベースレンダリングが無効になった状態では、影が出力されません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/1556472a-dcd9-6186-20b3-23ae34cbce54.png)
↑物理ベースレンダリングが有効になったワールド

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/f9659b76-83d5-0b16-7ee2-64ccd97530f9.png)
↑物理ベースレンダリングが無効になったワールド

### 背景色
ワールドの背景色を変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/874cd258-6229-3355-b624-7bfb51a5c38c.png)

### 指向性光源

ワールドの指向性光源(Directional Light)を設定します。
設定することで、ワールドのライティングが指向性光源の影響を受けるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/d42d4341-3727-94fe-9960-7bfe5a1c49af.png)
↑赤色のDirectionalLightを設定した際の画面

### 光源強度

ワールドの指向性光源の強度を設定します。
大きいほどまぶしくなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/7dfaf623-5536-6ef4-327c-d9dbe735b8ab.png)

初期値は1です。

### ライトマップ強度

ワールドで使用しているライトマップによるライティング強度を設定します。
大きいほどまぶしくなります。

初期値は1です。

### フェードイン時間

ワールド入室時の「白画面→ワールド画面」の遷移フェードイン演出の時間を設定します。
単位は秒です。

初期値は2です。

### シャドウタイプ

アバターやワールド内の物体から投影する影の種類を変更することができます。

**丸影** : アバターの足元に円形の影を投影します。ワールド内の物体からは影を投影しません。
**通常のシャドウマップ** : アバターや物体の形状に合わせ動的に変化する影を出力します。

通常のシャドウマップの設定にした際、丸影より処理が重たくなります。

初期値は丸影です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/6552e4da-cf8e-c0f2-3677-3a2af02c43a0.png)
↑通常のシャドウマップに設定した例。この時出力される影を「動的影」とも呼ぶ。

### シャドウバイアス
影が表示される高さです。0が足元と同じ高さで、大きいほど上に表示されます。
シャドウタイプを通常のシャドウマップにした場合、ここで指定した高さ以上の部分の影しか表示されません。

初期値は0.001です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/d78b85c6-52c8-763d-314a-c6754bdeb30d.png)
動的影で0.1に設定した際。上半身の影しか描画されない

### シャドウエリアサイズ

シャドウタイプを通常のシャドウマップにした場合、影がしっかり表示される距離です。大きいほどしっかり表示される範囲が広くなります。

初期値は3です。

### シャドウフェードサイズ

シャドウタイプを通常のシャドウマップにした場合、影が徐々に薄くなる距離です。大きいほど徐々に薄くなる距離が長くなります。

初期値は1です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/bafeba60-e73b-2d66-356a-c47ebad5b321.png)
動的影は出力対象オブジェクトから離れると徐々に薄くなり、いずれは影が描画されなくなる

::: note info
動的影を描画するためには、HEO Shadowコンポーネントの設定、影の品質設定が必要です。

**①HEO Shadowコンポーネントの設定**
影を出力したい、影の出力を受けたいノードにはHEO Shadowコンポーネントを付与する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/cba0ed4c-ec39-7337-abb1-831c033c5b24.png)
シャドウキャスターにチェックを入れると、そのノードが動的影を出力するようになります。
シャドウレシーバーにチェックを入れると、そのノードに動的影が出力されるようになります。

**②影の品質設定**
Vket CloudのMENU > 設定 > システムにある**影の品質**が「低い」に設定されていると、動的影の設定が出来ていてもアバターから丸影が出力され、オブジェクトからは影が出力されなくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/96aca758-d925-aeba-1cfc-a7d2aa882e0a.png)

:::

### 近傍投影
カメラからどれだけ近いオブジェクトを描画するかの設定です。
距離単位はUnityScaleです。

小さいほどカメラにより近いオブジェクトが映るようになりますが、遠くのオブジェクトの重なり合ったテクスチャが乱れる、Zファイトが発生することがあります。

0.5以上など、大きな数を入れるとカメラをアバターに近づけた際、アバターの内部が見えてしまうなどが発生してしまいます。

初期値は0.1です。

### 遠景投影
カメラからどれだけ遠くのオブジェクトを描画するかの設定です。
距離単位はUnityScaleです。

大きいほどカメラから離れたオブジェクトも映るようになりますが、遠くのオブジェクトの重なり合ったテクスチャが乱れる、Zファイトが発生することがあります。

天球など遠くのオブジェクトが描画されず背景色が映ってしまう場合は、この設定値を見直すことで現象が改善する可能性があります。

初期値は500です。


### 投影度

カメラの画角です。小さいほど奥行きがなくなり、大きいほど奥行きが強くなり立体的になります。
本設定は三人称視点時のみ有効です。

初期値は70です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/3e7f7336-3f67-801c-5f2f-80f0a0003cda.png)
↑投影度を20にした際の画面(カメラモード使用)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/3d26c1fc-5b29-a8da-8d1c-689739479ae7.png)
↑投影度を150にした際の画面

### ブルーム

発光に関する設定を変更することができます。チェックを入れることで設定項目の一覧が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/27097afd-5924-e9b1-61de-524eae9e19da.png)

#### ブルーム強度
ブルームの強さです。大きいほどオブジェクトの発光がまぶしくなります。

初期値は0.2です。

#### ブルーム閾値
発光の輝度単位定義です。大きいほど明暗がクッキリします。

初期値は0.8です。

::: note info
ブルームの有無による見た目の変化について
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/99181bf6-4e7f-98a2-708c-a1adfe27224b.png)
ブルーム無し

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/6266bcd2-fa7d-2899-3189-9eefb3b13187.png)
ブルーム有り(強度0.8、閾値0.4)
:::

### 光散乱

ワールド内で疑似的なライティング表現を行うことができる機能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/1dafdd22-e065-1568-46c4-e09a298ff930.png)

#### 空気散乱強度
空気散乱の強さです。
大きいほど空気散乱がワールドに与える影響が増えます。

初期値は0.8です。

#### 散乱指向性
値が大きいほどぼやけた感じになります。

初期値は0.68です。

#### G
重力加速度です。
大きくすることで遠景が青くかすむ表現ができます。

初期値は0です。

#### 距離

小さくすることで、霧のような表現ができます。

初期値は150です。

#### 光源色

光の色を設定することができます。

初期値はRGB 0-255で(R,G,B,A) = (255,248,221,255)です。

#### 太陽色

太陽光に相当する光の色を設定することができます。

初期値はRGB 0-255で(R,G,B,A) = (255,255,255,255)です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/fb487750-bc7e-9375-e57e-0f681fb2a7b8.png)
↑値を調整することで、このような調整も可能。

::: note info
上記画像のパラメータ

ブルーム強度：0.967
ブルーム閾値：0.5

空気散乱強度：0.691
散乱指向性：0.636
G：0
距離：300
光源色：RGB 0-255 (R,G,B,A) = (255,178,147,255)
太陽色：RGB 0-255 (R,G,B,A) = (0,0,255,255)
:::

他にも、このような表現も可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/c4e95e50-c8af-c093-314d-c497fbfba39b.png)
↑空気散乱強度1.0、散乱指向性1.0、G1.0のとき。
空気散乱強度や散乱指向性を高めることで遠方が太陽色になり、
Gを高めるほど遠方の色が暗くなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/fc88cd1c-fea6-2248-abcc-853bd3e5cd32.png)
↑空気散乱強度1.0、散乱指向性1.0、G1.0にし、距離を極端に小さくする(画像は0.987)ことで、特定の角度から見た際、影絵のような見え方になる表現を作ることも可能です。

### IBL
イメージベースライティングを使用することができる機能です。
チェックを入れることで使用可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/8c8e8ba4-db29-8616-cd57-77c08cf56db1.png)

::: note warn
VketCloudSDK12.3.4時点では画像の設定は可能ですが、設定のために使用する画像を生成する機能がないため、使用できません。
:::

### SSAO
SSAO(スクリーンスペース・アンビエント・オクルージョン)の設定項目が表示されます。
チェックを入れることで使用可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/6f2f1738-cca0-4f5c-083b-53b42f0e6ec7.png)

#### 範囲

AO(アンビエント・オクルージョン)を行う範囲です。AOとは、穴や隙間などの狭い場所に陰影を乗せる処理のことを指します。
大きくすることでAOを行う範囲が広くなり、小さくすることで範囲が狭くなります。

推奨値は0.5～0.8です。
初期値は0.7です。

#### セルフシャドウカウンター

AOが発生しないはずの平面が自分自身を誤検知して黒ずむのを防ぐ設定です。

推奨値は0.1～0.2です。
初期値は0.2です。

#### 減衰

柱や浮いてる看板の背後など、距離があるのにAOが出てしまう部位を抑える設定です。

推奨値は3です。
初期値は3です。

#### 最小深度

基本は操作しない設定ですが、AOを強くしたとき、何もない部分が暗くなってしまった際に使用します。
オクルージョンとみなすしきい値の調整です。

推奨値は0.02です。
初期値は0.02です。

#### カラーブリード

ライトバウンスにより範囲の色がAOに乗る現象を疑似再現する設定です(効果は薄いです)。
Fakebloomと併用することを推奨します。

推奨値は0.4です。
初期値は0.2です。

#### AO比

AOの濃さを調整します。

推奨値は2.0～3.5です。
初期値は3です。

#### HSP

AOの黒色に背景の色を乗せる(明るい部分が暗くなりすぎないようになる)設定です。
有効化することを推奨します。
ピンク色など、白より暗い色の時は影が少しだけ発生します。

初期値では有効になっています。

#### フェイクブルーム

チェックを入れることでブラーサンプルを疑似的なブルーム表現に流用したものが適用されます。
カラーブリードと併用することをお勧めします。

初期値では無効になっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/7c5a253c-5356-468d-2bd8-affe565f1866.png)
↑すべてを推奨値の範囲で設定し、フェイクブルームを有効にした際

### 描画優先度設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/d9757496-ba66-ba68-5195-5dbab3599cc5.png)

ワールド内でアイテムになるオブジェクトが一覧で表示されています。
↑ボタンあるいは↓ボタンを押す、または数字入力欄の数字を変更することで描画優先度を設定することが可能です。

数字が小さいほど後から描画されます(描画優先度が高いです)。

ワールド内にアルファチャンネルを利用した半透明のオブジェクトがある際、半透明のオブジェクト同士が重なり合うと、描画優先度の高いもののみが表示されます。

したがって、基本的にはワールドの外側にある半透明オブジェクトは内側にある半透明オブジェクトより描画優先度を下げる必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/10c08d13-7ca2-36b6-6bb6-a62f9a327e3e.png)
↑Unityでこのような半透明のCubeを2つ重ねたオブジェクトを作っても…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763860/50ffbb01-7188-c013-5545-cd73f4ab7c94.png)
↑外側の描画優先度が高いと、内側のCubeは表示されない。

::: note info
同一アイテム内のオブジェクト間の描画優先度は、UnityのHierarchyビュー上で上から順となります。
:::

## まとめ

レンダリング設定は、より良いグラフィックを作るうえで重要な設定です。各設定を理解し、適切に調整することで、ワールドのビジュアルクオリティを向上させることができます。ぜひ、これらの設定を活用して、より良い見た目のワールドを作ってみてください。

また、レンダリング設定は、デバッグ機能のインフォメーション表示内Renderingタブと互換性があります。
したがって、Renderingタブの各パラメータを調整し、調整値をメモしておき、RenderingSettingに反映することで、ライティング設定のプレビューを行いながら設定することが可能です。

インフォメーション表示Renderingタブについては[こちら](<https://qiita.com/vket_chan/items/87880b85c898ad25d732#f2-%E3%82%A4%E3%83%B3%E3%83%95%E3%82%A9%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E8%A1%A8%E7%A4%BA>)をご覧ください。

## Vket Cloud について
ブラウザからアクセスできる“Webメタバース”を作成するサービスです。 Vket Cloudで制作された空間は、アプリレスでWebブラウザから簡単にアクセスできるため、プラットフォームの制限の中で限られたユーザーにだけでなく、インターネットに存在するすべてのユーザーに対してオープンなコンテンツ・サービスを届けることが可能です。

https://cloud.vket.com/

**前：** [デバッグモード時に表示されるステータスの説明](<https://qiita.com/vket_chan/private/d44999b496ef09ffee74>)
**次：** [CameraSettingsの使い方](<https://qiita.com/vket_chan/private/b0b8f47f219fc5fb7beb>)