技術と開発

clusterのSubSceneで迷ったところ

seironsyugi

どうもこんにちは、雰囲気でUnityを触っているCHiHAYAです。
こちらの記事を参考にclusterでワールドを分割して軽量化を行おうと思ったところ、いくつかつまづいた箇所があったので備忘録です。

空のGameObject に SubScene コンポーネントをアタッチしようとしたところ出てきた謎の文字

Adding component failed. Add required component of type ‘BoxCollider’ or ‘CapsuleCollider’ or ‘CharacterController’ or ‘MeshCollider’ or ‘SphereCollider’ or ‘TerrainCollider’ or ‘WheelCollider’ to the game object ‘GameObject’ first.

解説→上記は「今つけようとしているコンポーネントは、Colliderが無いと付けられません」と表示されている

原因→「必ずSubSceneコンポーネントより先にコライダーをアタッチしてください」と元の記事に書いてあるのに、先頭しか読まずSubSceneコンポーネントを付けようとした。

空のGameObject の下にBOXコライダーを入れたCUBEを配置したのに、上記同様のエラーが出る

解説→コライダーはSubSceneコンポーネントを入れたいオブジェクトに入れる事

DespawnHeightはワールドに1つ配置されている必要があります。現在配置されているDespawnHeightの数は 0 です

メインシーン以外がActiveになっているので、SpawnPointEntrance、DespawnHeightが入っている入り口用のシーンをアクティブにする。

シーン2に移るためのオブジェクトが出てこない

シーン1からシーン2に移るためのSubSceneコンポーネント入れたオブジェクトは、シーン1に置く事

シーン1からシーン2に移り、しばらくするとシーン2の部分が消えてしまいリスポーン位置に戻ってしまう

シーンの読み込みは上手く行ったのですが、上記の×の部分で足場がなぜか消えてしまいます(時間経過で)

Cluster Creator Kit ドキュメントSubScene コンポーネントより
https://docs.cluster.mu/creatorkit/world-components/sub-scene

SubScene コンポーネントを使うと、常にロードされているシーン(メインシーン)と、プレイヤーがある領域内にいる場合のみロードされるシーン(サブシーン)から構成されるワールドを作成できます。 SubScene コンポーネントについた Collider 内にプレイヤーがいる場合、指定したシーンがロードされ、そうでない場合、そのシーンは破棄されます。 このロード状況はプレイヤーによって異なります。

解説記事の「SubSceneを複数扱う」で、こちらの内容が解説されているのですが、よくわかっていませんでした。

SubSceneはスイッチのオブジェクトではなく「範囲指定のオブジェクト」

ふとした疑問

まだテスト段階なので、これでどれだけ軽量化出来るか不明。

足場をシーンごとに入れ替えてしまうと、事故が起こりそうなので、ワールド自体はメインシーンに置き、設置物等はサブシーンに入れて「遠方のオブジェクトは描画しない」という使い方がメインになりそう。

clusterの公式のイベント(バーチャル六本木)などもワールド分割されるので、てっきりこの技術を使われているのかと思いましたが、SubSceneではほぼ遅延なく読み込まれるので、それとは別なんですね。

Xからコメントをお待ちしています。
ブログ更新の励みになります!
記事URLをコピーしました