NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

メタバースの世界を作ってみた

0.はじめに

ネットコムの岩﨑です。本記事ではメタバースプラットフォーム「cluster」へ自作ワールドをアップロードするまでの方法をご紹介していきます。

本記事は『メタバースの楽しみ方とNRIネットコムのR&D活動について』の関連記事となります。こちらも是非読んでください。

tech.nri-net.com

本記事の主な対象者

  • clusterで自作ワールドを作ってみたい人

  • 『メタバースの楽しみ方とNRIネットコムのR&D活動について』から飛んできた人

本記事に記載している内容

  • clusterのワールド作成~アップロード方法

  • clusterでアバターを変更する方法

本記事に記載していない内容

  • メタバースの説明

  • 各ツールの詳しい説明や基本的な使い方

1.作成環境

今回はWindowsで作成しました。また、作成に使用したツールなどをあげておきます。

  • Unity:作成作業で用いる。作成からアップロードまでのすべてを行う。

  • Unity Hub:UnityのインストールやUnityプロジェクトの管理を行う。

  • clusterデスクトップアプリ:作成段階のプレビューや実際にメタバース体験で用いる。

  • GitHub(必須でない):プロジェクトのバージョン管理を行う。

  • Sourcetree(必須でない):GitをGUIで操作できる。

2.作成方法

2.1.Unityのインストール

Unityは主にゲーム制作で用いられるツールであり、いわゆるゲームエンジンと呼ばれるものです。いろいろなオブジェクトを配置して、スクリプトを書いてゲームを作る、ということが簡単にできるツールです。皆さんが普段遊んでいるゲームももしかしたらUnityで作られているかもしれません。

さて、そのUnityをインストールしていくわけですが、まずは「Unity Hub」をインストールします。Unity Hubは様々なバージョンのUnityとそのプロジェクトを管理することができる開発サポートツールです。Unity Hubは以下ページの"1.1. Unity Hubをダウンロード#Windows 用ダウンロード"からダウンロードします。

unity.com

Unity Hubがインストールできたら、次はUnity Editorをインストールします。先ほどのページの"2.2. Unityバージョンを選択#ダウンロードアーカイブにアクセス"からダウンロードするのですが、Editorのバージョン指定があります。後からすぐに出てきますが、Unityでclusterの開発を行っていくには「Cluster Creator Kit」というものを用います。この「Cluster Creator Kit」は使用するUnity Editorのバージョンを以下ページで指定しています。

docs.cluster.mu

Creator Kitの対応バージョンのUnityエディタが必要です。

対応バージョン: Unity 2021.3.4

と、いうわけで"2.2. Unityバージョンを選択#ダウンロードアーカイブにアクセス"にアクセスし、2021.Xタブの「Unity 2021.3.4」欄にあるUnity Hubボタンから、Unity Hubを用いたUnity Editorのインストールをしていきます(Downloads (Win)ではない)。Unity Hub側で順調に選択を進めていくと、追加するモジュールの選択画面が出てくると思います。ここでは、Android・iOS・MacのBuildSupportを選択してインストールします。

Unity/ビルドサポートモジュールの選択

Unity Editorのインストールが完了したら、続いて新規プロジェクトの作成を行います。"3D開発"を指定し、任意のプロジェクト名と任意のプロジェクト作成ディレクトリを設定してプロジェクトを作成し、Unityが立ち上がりきるのを待ちましょう。最後に新しいバージョンがあるという旨のモーダルが出ますが、今回はバージョンの指定があるためスキップします。

Unity/初回起動時

2.2.初期設定

それでは初期設定から行います。

まず、上部のメニューにある"Edit"から"Project Settings..."を選択し、出てきたウィンドウの左側にある項目から"Player"を選択します。右側の下の方にある"Other Settings"の"Rendering > Color Space"を"Gamma"から"Linear"に変更します。

Unity/レンダリング設定の変更

続いて左側の項目から"Package Manager"を選択します。右側にある"Scoped Registries"のリボンを展開し、「Name : Cluster」、「URL : https://registry.npmjs.com」、「Scope(s) : mu.cluster」とそれぞれの項目に入力します。これでパッケージに「Cluster Creator Kit」が追加されます。完了したら一旦Project Settingsのウィンドウは閉じておきましょう。

Unity/Cluster Creator Kitパッケージの追加

次に、上部のメニューにある"Window"から"Package Manager"を選択しましょう。出てきたウィンドウの左上にある「+」の右側にあるドロップダウンから"My Registries"を選択し、先ほど追加した「Cluster Creator Kit」をインストールします。

Unity/Cluster Creator Kitのインストール

上部のメニューに"Cluster"が追加されれば成功です。

Unity/上部メニューに"Cluster"が追加されている

2.3.テストワールドの作成・アップロード

ワールドを作っていきます。

clusterワールドにはワールドを構成する最低限必要な要素が3つあります。1つ目は「Colliderが設定されたオブジェクト」です。Colliderが設定されたオブジェクトとは衝突判定のあるオブジェクトという意味で、アバターが触れることのできるオブジェクトを最低1つは用意してねということです。2つ目は「SpawnPoint」です。アバターがワールドに生成される場所を指します。3つ目は「DespawnHeight」です。不慮の事故でアバターがColliderが設定されたオブジェクトの外に行ってしまった場合、終わりのない奈落の底へ落ちていってしまいます。その際に通常のフィールドに戻ることができるように、アバターがある一定の高さ(DespawnHeight)より低い高度に行ってしまったら、アバターを消滅させてSpawnPointに再生成します。

まず、Hierarchyパネルにある"MainCamera"を削除します。Unityで開発を行う場合、何かしらのカメラを用いて画面への出力を行っていますがclusterでは不要です。残っていた場合はワールドアップロード時にエラーが出ます。最低限必要な要素にも含まれていませんね。

次に、最低限必要な3要素を構成していきます。1つ目の「Colliderが設定されたオブジェクト」として、アバターの歩く地面になる"Plane"を用意します。Unityがあらかじめ用意しているプリミティブオブジェクトにはすでにColliderが設定されているため、これで1つ目の要素はクリアです。2つ目の「SpawnPoint」と3つ目の「DespawnHeight」の設定にはclusterが用意しているスクリプトを用います。"Create Empty"から"GameObject"を2つ生成し、オブジェクトの見分けをつけるためにInspectorパネルからオブジェクトの名前を"SpawnPoint"と"DespawnPoint"に変更します。それぞれのオブジェクトの"Add Component"からCluster Creator Kitで提供されているオブジェクトと同名のC#Scriptをアタッチします。これで2つ目と3つ目の要素はクリアです。

Unity/SpawnPointの設定

それでは、作成したワールドをclusterにアップロードしていきます。「床があるだけで?」と思うかもしれませんが、ワールドを構成する3要素を揃えることができていればアップロードは可能です。

アップロードするためには自分のclusterのアカウントと作業しているUnityを紐づける必要があります。まずはUnity上とWeb側でclusterにログインします。Web側でアクセストークンを発行し、Unity上で"Cluster > ワールドアップロード"を選択して出てくるウィンドウのアクセストークン欄に貼り付けます。トークンが認証されるとワールドの新規作成ができるようになります。ワールドをアップロードする際には映える「サムネイル画像」を用意しなければなりませんが、今回はテストなので適当にペイントなどで作成した画像を設定しておきます。いよいよアップロードです。設定や構成に不備がなければビルドが始まり、自動的にブラウザが立ち上がります。エラーが出たという場合でも原因をはっきりと教えてくれる親切設計です。

Unity/ワールドのアップロード

3.自分の作ったワールドを体験する

作成したワールドに入ってみます。PCでclusterをする際にもアプリが必要になるので、インストールしてログインしておきましょう。

先ほど立ち上がったブラウザからアップロードしたワールドに入ります。どうでしょうか。白い地面しかない、あなただけのワールドにスポーン(※)したと思います。WASDキーで移動、マウスドラッグで回転、Spaceキーでジャンプ、Shiftキーでダッシュなど、アバターを動かすには十分の機能が既に備わっています。

(※メタバースのワールドに降り立つこと)

cluster/初期スポーン

4.もう少し複雑なワールドを作ってみる

ここまで作成してきたワールドは自分だけといっても誰でも作れるとても簡素なものです。このワールドをベースに、自分なりの工夫をしてオリジナルのワールドを作成していきましょう。例えば、ブロックをいい感じに配置してアスレチックゲームができるワールドにしてみたり、家具を配置してゆったりとくつろぐことができる世界にしてみたり・・・などなど。Cluster Creator Kitにはいろいろなアクションを起こすことができるスクリプトが用意されています。

せっかくなので趣味で少し作成してみたオリジナルワールドをちょっとだけご紹介します。このワールドはUnityのプリミティブオブジェクトとAssetStoreにある無料の素材のみを用いて、架空のオフィス空間を作成しています。

5.まとめや感想

今回はclusterへ自作ワールドをアップロードするまでの方法をご紹介してきました。Unityでの開発にはプログラミングを伴うことが多く、難しいと感じる人も多いと思います。しかし、clusterの開発には自作のスクリプトを使うことが出来ないという仕様上、制限はあるものの簡単にワールドを作成することができたと思います。

また、オリジナルワールドを作成する上で、勉強するためにも業務でバンバン使っているGitを導入してみたのですが、ブランチを切る基準やタイミングがわからなかったり、そもそもGitの操作に慣れなかったりと力不足を実感しました。業務でやらかす前にmasterしておきたいですね。

おわりです。

執筆者:岩﨑崇朗
システムエンジニア