BasicSettings・PlayerSettings・DespawnHeightSettingsの使い方【Vket Cloudのワールド設定機能一覧】

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

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

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

# はじめに
Vket Cloud Settingsの子オブジェクトにある、**BasicSettings**・**PlayerSettings**・**DespawnHeightSettings**を編集することで、ワールドの基本的な設定やスポーン地点、無限落下しないようにする設定を行うことが可能です。
また、これらの設定はVket Cloud Settingコンポーネントの設定モードをBase、Advancedどちらに設定しても表示されます。
本ページではこれらの設定機能の詳細について紹介します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/874233e4-c1e6-8a8f-8364-441eca5a7e48.png)
# BasicSettings
BasicSettingsオブジェクトの中には、Base Settingコンポーネントが入っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/96d02415-dfc2-b2bf-b8b5-cebf5f76e733.png)

#### ワールド名
ワールドの名前を設定することができます。初期状態は`world`ですが、ワールドをMyVketにアップロードすることで、自動生成の文字列に変更されます。
この部分がURLのworldidクエリパラメータと連動しています。
(例：ワールド名を「VketCloudTest」とした場合、URLに`?worldid=VketCloudTest`というクエリパラメータが入る)

#### デバッグモード
チェックを入れることで、ビルド時画面上部にステータスが表示されるようになり、F2～F9キーでデバッグ機能が使えるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/f3b65a8d-d39a-4c69-8ca4-a8a0178913f7.png)

画面上部のこの部分がステータスです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/50c54e3c-411b-aa8f-dada-a3aceb6583a7.png)

ステータスに表示されている項目と説明は下記の通りです。
| 項目 | 説明 |
|:-:|:--|
| fps | 1秒あたりのフレーム数です。<BR>モニターのリフレッシュレートにより変動しますが、60に近い値となります。|
| Draw Call | 画面に描画されているオブジェクトのドローコール数です。<BR>3Dは3Dオブジェクトの、GUIはUIに用いられている画像のドローコール数になります。 |
| VRAM | 3DモデルによるGPUメモリの使用量になります。単位はMBです。<BR>**Tex**は画像を表示するためのテクスチャの、<BR>**Comp**は圧縮された画像を表示するためのテクスチャの、<BR>**Text**はテキストを表示するためのテクスチャの、<BR>**RT**はRenderTarget(レンダリング)の、<BR>**Etc**はバッファのメモリ使用量をそれぞれ表記しています。<BR>**Total**3DモデルによるGPUメモリの総使用量です。|
| GUI | GUIによるGPUメモリの使用量になります。単位はMBです。<BR>**Tex**は画像を表示するためのテクスチャの、<BR>**Comp**は圧縮された画像を表示するためのテクスチャの、<BR>**Text**はテキストを表示するためのテクスチャのメモリ使用量をそれぞれ表記しています。<BR>**Total**は総使用量です。 |
| Version | Vket Cloudの稼働に使用しているWebGLのバージョン表記です。 |

また、Version以下の行はコンソールとして動作しています。
HeliScriptにて`hsSystemWriteLine()`メソッドを利用した場合等にこちらに出力内容が表記されます。

その他のデバッグ機能については[デバッグモード機能一覧](<https://qiita.com/vket_chan/items/87880b85c898ad25d732>)にて解説しています。
#### アバタークリックを許可
チェックを入れることで、ワールド内でのアバタークリックが可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/8adcd791-bd48-9265-84dd-f5a9a557ba1e.png)

設定が有効になっているワールドで他ユーザーのアバターをクリックすると、ターゲット表示が行われ、「プロフィール」ボタンが表示されます。
プロフィールボタンをクリックすることで、その人のプロフィールを閲覧することが可能です。
#### VRM Drop
チェックを入れることで、VRM Drop機能が有効になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/64767c2e-88a6-074d-60c4-3b9ef32f19eb.png)

VRM Drop機能が有効になったワールドでは、Vket Cloudの画面内にVRMファイルをドラッグ&ドロップすることで、自アバターの見た目をそのVRMファイルに変更することができます。
モーションは変更前のアバターの物を引き継ぐため、ボーンウェイトが異なるアバターに差し替えた場合、モーションに違和感がある場合があります。

また、見た目の変更が適用されるのは自身のみで、ワールド内にいる他ユーザーからは変更前のアバターのままの姿で見えています。

#### オクルージョンカリング
チェックを入れることで、オクルージョンカリング機能が有効になります。
オクルージョンカリング機能が有効になった状態で、コライダータイプがオクルージョンに設定されたHEO　Colliderコンポーネントを入れたノードがシーン上にある際、そのノードにより隠れるオブジェクトが非表示となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/a12ff1bb-5c7d-3264-4825-fed946729668.png)

また、この機能を有効にしている際、ステータスに「OC」の文字が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/b570191e-3f6b-d0ae-1f5f-b6041cdb73b5.png)

#### ワールド名ディレクトリ
チェックを入れることで、ビルド時に作成される`release/data`ディレクトリ以下の各フォルダの中に、直接ファイルが格納された状態からワールド名のフォルダがもうひと段階追加された状態となります。

::: note warn
例：ワールド名「test」、HEOField「Ground」を持つワールドの場合

ワールド名ディレクトリチェック有

release
└data
　└Field
　　└ **test**
　　　└ Ground

ワールド名ディレクトリチェック無

release
└data
　└Field
　　└ Ground
:::

#### ゲームパッド
チェックを入れることで、ワールドでのゲームパッドの使用が可能となります。
ゲームパッドでは、プレイヤーの移動、ジャンプ、カメラ視点の切り替えが可能です。
接続するゲームパッドのボタン数が少ないと、エラーとなる場合があります。

#### 物理エンジン
チェックを入れることで、物理エンジンが有効となります。
物理エンジンが有効になった状態で、「物理演算を適用」にチェックの入ったHEO ColliderコンポーネントとBoxCollider、SphereCollider、CapsuleColliderのいずれかを持つノードに対し物理演算が有効となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/eacedd80-acd3-d31c-ce20-ad448d73a724.png)

また、「位置の固定」を行っていないオブジェクトは重力に従い落下するため、床となるノードには「物理演算を適用」「位置の固定」の両方にチェックを入れてください。

#### Favicon
画像ファイルを設定することで、Webブラウザのタブのアイコンを変更することが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/43355ead-4327-0bd5-6ddc-3ec62fbf1170.png)

#### 音声減衰
ボイスチャットにて、ワールド内で離れているユーザーの声が聞こえる範囲の設定です。
チェックを入れていない状態の場合、ワールド内でどれだけ距離が離れているユーザーであっても声を聴くことができます。
チェックを入れた状態の場合、最小距離より離れているユーザーの声は離れれば離れるほど小さくなり、最大距離より離れているユーザーの声は聴こえなくなります。
また、単位のmですが、1mはScale(1,1,1)に設定したUnity標準のCubeの一辺と同じ長さです。

#### HeliScript
シーン内で使用するHeliScriptの一覧です。
HEO ScriptコンポーネントによりHeliScriptを追加した際、こちらのリストに追加されます。
こちらのリストを直接操作することで、不要になったHeliScriptを除外したり、Class定義HeliScriptのようなシーン内アイテムのコンポーネントとして直接紐づけないHeliScriptを追加したりすることが可能です。

# PlayerSettings
PlayerSettingsオブジェクトの中にはPlayer Settingコンポーネントが入っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/9a7de14d-43d1-d207-e490-9daa271aa902.png)

#### 位置・角度
プレイヤーのスポーン位置とスポーンした際の向きです。
PlayerSettingsオブジェクトのTransform設定値が使用されます。
角度については、Y設定値のみが使用されます。

#### ジャンプ
チェックを入れることで、ワールド内でSpaceキー押下時にジャンプを行えるようになります。
チェックを外すとSpaceキーを押しても何も起きなくなります。

#### ジャンプ速度
ジャンプの強さです。初期値は4.5です。
大きくすればするほど高く飛ぶことが可能です。
0未満の値も設定することが可能ですが、非推奨です。

#### 移動速度(m/s)
ワールドでの移動速度です。1mはScale(1,1,1)に設定したUnity標準のCubeの一辺と同じ長さです。
初期値は7です。
また、0未満の値を設定することも可能で、その場合は操作方向と逆方向に移動するようになります。

#### 高速移動の倍率
Shiftキーを押しながら移動した際の移動倍率です。初期値は2です。
移動速度が7、高速移動の倍率が2の時、Shiftキー押下時の移動速度は7×2=14になります。
1未満の値を入れるとShiftキー押下時に減速することができ、0未満の場合Shiftキー押下時に操作方向が反転します。

#### TPS角度
詳細設定に収納されている設定項目です。カメラの初期角度を指定することができます。
Zは入力しても変わりません。

#### CRPモード
詳細設定に収納されている設定項目です。設定しても特に変化はありません。

# DespawnHeightSettings
DespawnHeightSettingsオブジェクトの中にはDespawn Height Settingコンポーネントが入っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/51ebcbe7-43c2-2cf3-329e-155b08c420b6.png)

#### エリアサイズ
入るとスポーン地点に戻るエリアコライダーの大きさを指定します。
Yは高さではなく、奥行き方向となります。

##### Despawn Height Settingの使い方
Despawn Height Settingコンポーネントの入ったオブジェクトが有効になっている際、Sceneビュー上に赤色の矩形が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/77ba6ed0-5674-712d-6976-fb2247655ce7.png)

こちらがDespawn Heightの設定位置になります。

Despawn Height Settingコンポーネントの入ったオブジェクトのTransformのPosition位置がDespawnHeightコライダーの中心地となっており、ビルド時にエリアサイズで指定した横幅と奥行きの高さ1のエリアコライダーが自動でWorldの子オブジェクトとして追加されます。
追加されたエリアコライダーには、侵入時に0.2秒で暗転 → スポーン地点へワープ → 0.2秒で明転のアクションが入っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788807/4b9f0def-bedf-ad58-d6fc-e63b3cbe55fb.png)
追加オブジェクトの中身は上記画像と同じ状態となります。

## まとめ

基本的な設定は、ワールドでの操作やスポーン地点、落下時にスポーン地点に戻す設定など、ワールドの遊びやすさに直結する内容が多いです。各設定項目を理解し、ぜひ、快適なワールド作りに役立ててください。

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

https://cloud.vket.com/

**前：** [Vket Cloud Settingsを使ってワールド設定を変更する](<https://qiita.com/vket_chan/private/a10ec82420b36da67147>)
**次：** [デバッグモードで使える機能一覧](<https://qiita.com/vket_chan/items/87880b85c898ad25d732>)