SPECIALIST

多様な専門性を持つNRIデジタル社員のコラム、インタビューやインサイトをご紹介します。

BACK

Cluster Creator Kitを用いてオフィスのようなワールドを作ってみた

みなさん、こんにちは。
NRIデジタルの伊田です。
私たちは、CoE新技術探索チームとして、新技術の探索・先行事例の調査を行っています。

本記事では、以前公開した記事「最近話題のメタバースとは!現状と今後の展望(概要編)」に関連して、実際にメタバースプラットフォームの1つであるClusterでバーチャル空間を作成してみましたので、ご紹介をしたいと思います。

Clusterとは

Clusterはクラスター株式会社が運営するメタバースプラットフォームです。PCやVRデバイス、スマートフォンからバーチャル空間にアクセスできます。
Clusterでは3Dアバターを操作し、バーチャル空間上でチャットや音声でコミュニケーションが取れます。

Clusterはバーチャル空間上で世界初の商業VRライブや学術学会の開催など非常に注目を集めております。最近ではKDDIがバーチャル大阪を作成し、バーチャル大阪上でM-1グランプリ2021のライブ配信を行い、盛り上がりを見せました。

Cluster上にバーチャル空間を作成するのは誰でも可能です。UnityとCluster Creator Kit という開発キットを用いればオブジェクトの操作やバーチャル空間のアップロードなどが可能になります。
2022年2月にはワールドクラフトという機能をリリースしました。この機能はUnityやプログラミングの知識がなくても、簡単にバーチャル空間を作成することができるようになり、より手軽にメタバースに触れることができるようになりました。

本記事ではCluster Creator Kitを活用した具体的な開発について解説をします。

Clusterで行われたM-1実況 ※出典1

Cluster Creator Kit による開発

オフィスのようなバーチャル空間の作成をしていきます。下の動画のようなバーチャル空間となっています。
本記事では特にバーチャル空間のアップロード方法と、動画の中にあるドアの開閉について解説します。

ワールドの作成

Cluster ではバーチャル空間のことをワールドと呼びます。

環境構築

ワールドの作成にはUnityとCluster Creator Kitが必要になります。
インストール方法などは公式ドキュメントがあるのでそちらをご参照ください。
Cluster Creator Kit ドキュメント|Cluster Creator Kit ドキュメント

1点注意が必要なのは、Unityのバージョンが決まっています。Unity Hubなどで対応のバージョンをインストールしてください。対応バージョン以外でワールドを作成すると予期せぬ事象が発生することがありますのでご注意ください。
※Unity Hubを使用するPCがプロキシ下にある場合は下記のようなbatファイルを作成し、batファイルからの起動をしてください。

@echo off
set HTTP_PROXY=http://<プロキシId>:<プロキシPass>@<プロキシドメイン>:<ポート>
set HTTPS_PROXY=http://<プロキシId>:<プロキシPass>@<プロキシドメイン>:<ポート>
start "" "C:\Program Files\Unity Hub\Unity Hub.exe" 
REM 4行目のパスはUnity Hubに適宜合わせてください。

上記でも動かない場合は、環境変数に下記の設定を入れてください。
変数:HTTP_PROXY
値:http://<プロキシId>:<プロキシPass>@<プロキシドメイン>:<ポート>
変数:HTTPS_PROXY
値:http://<プロキシId>:<プロキシPass>@<プロキシドメイン>:<ポート>

ワールドの作成

ワールドには下記の最低限3つの要素とMain Cameraの削除が必要になります。

  • SpawnPoint
  • Collider
  • DespawnHeight

SpawnPoint

SpawnPointとはワールド参加時にプレイヤーが出現するコンポーネントになります。ワールドには最低1つのSpawnPointが必要で、複数設置が可能です。

Collider

Colliderとはプレイヤーが衝突できるオブジェクトを定義するコンポーネントです。このコンポーネントを定義したオブジェクトはプレイヤーと衝突判定があり、通り抜けができないようになります。
※Colliderの数が多いとパフォーマンスに影響があります。必要なもの以外は設定しないようにしましょう。

DespawnHeight

DespawnHeightとはプレイヤーが消滅する高さを定義するコンポーネントになります。DespawnHeightで設定した高さより低い位置に移動するとSpanPointに戻されるようになります。

ワールド作成に必要な最低限の要素 ※出典2

上記3つの要素はオブジェクトのコンポーネントとして追加します。

SpawnPoint
Collider
DespawnHeight

次にMain Cameraの削除を行います。
Inspectorを確認してTagに「Main Camera」となっているものがあったら削除かTagを別のものに変更してください。

上記でワールドアップロードに最低限の準備が整いました。

ワールドアップロード

ワールドのアップロードにはClusterの新規登録が必要です。
新規登録後、メニュー>アクセストークンからトークンを発行します。
このアクセストークンはUnityに設定します。

UnityのClusterメニューからワールドアップロードを選択し、先のアクセストークンを入力するとUnityからワールドのアップロードが可能になります。

「‘ワールド名’としてアップロードする」を選択すると、確認のダイアログが表示されるので「アップロード」を選択します。

アップロードの処理は3段階に分かれており、

  1. ワールドのバリデーション
  2. ビルド
  3. 成果物のアップロード

を行います。処理時間は、プロジェクトに含まれているアセットと、ワールドによって変化します。
「ワールドアップロード」ウィンドウ内の処理項目それぞれに「Success」と表示されればワールドのアップロードは完了です。

トリガーの作成

ワールドのアップロードまで一通りできましたので、ワールドに動きを与えてみます。
今回は「内側からしか開けられないドア」を作成してみます。
最終的にはこのような動きになります。

作成の流れとして、

  1. ドアオブジェクト配置
  2. ボタンオブジェクト配置
  3. アイテムトリガーコンポーネント追加
  4. アニメーション作成
  5. アニメーションコントローラー作成
  6. アニメーションバリューギミック設定

の順で行います。

1.ドアオブジェクト配置は下記のようにしています。

ドアオブジェクト
2.ボタンオブジェクト配置は下記のようにしています。

ボタンオブジェクト
3.アイテムトリガーコンポーネント追加

Buttonオブジェクトに Interact Item Triggerコンポーネントを追加します。設定内容は下図のようにします。
ポイントはValueをSignalにすることです。今回はボタンを押したときにドアに信号を送りたいのでSignalを選択してください。

4.アニメーション作成

ドアが上昇するアニメーションと下降するアニメーションを作成します。
アニメーション作成はUnityの機能なので割愛します。
下の動画のような動きにしています。

5.アニメーションコントローラー作成

アニメーションの動きを制御するアニメーションコントローラーを作成します。
こちらもUnityの機能ですので簡単な説明に留めます。
今回はドアが開くアニメーションと閉じるアニメーションを交互に動かしたいのでドアが開くアニメーションと閉じるアニメーションに相互遷移を作成します。
ポイントは遷移する条件として、OpenCloseというTriggerパラメータを作成しています。このOpenCloseというパラメータを受け取るとアニメーションが遷移します。

※遷移インスペクターの終了時間ありのチェックボックスは外してください。
※アニメーションのループ時間のチェックボックスは外してください。

6.アニメーションギミックの設定

ドアオブジェクトにSet Animator Value Gimmickコンポーネントを追加します。
Set Animator Value GimmickはAnimatorのプロパティ値を設定できます。

ドアオブジェクトを選択し、コンポーネント追加からSet Animation を設定します。Animatorのコントローラーは先ほど作成したアニメーションコントローラーを設定します。Animator Parameter Nameに5で設定したTriggerパラメータ名を設定します。

以上で、スイッチを起点とした動きが作れました。


今回は上下運動でしたが、扉のような動きにすることも可能です。
これを応用すれば、エレベーターなども作成できそうですね。

まとめ

今回は、Cluster Creator Kitをご紹介しました。
3Dオブジェクトの用意や作成することが若干ハードルが高いと感じましたが、バーチャル空間は意外にも誰でも簡単に作成できることができます。導入までのハードルも低くUnityが使える方ならよりスムーズに作成できると思います。実際に作成したワールドに他人が入出すると嬉しいです。
皆さんも、今後ますます盛り上がりを見せるであろうメタバースに参加してみてはいかがでしょうか。

出典元
  1. メタバースで広がる「大阪国」の可能性 – ITmedia NEWS
  2. 制作したワールドを「cluster」にアップロードするために最低限必要な要素(SpawnPoint・DespawnHeight・Collider)を設定する
  3. 参考文献