『子供の科学』2022年9月号の特集「体験! メタバース」では、メタバースプラットフォーム「cluster」のワールドをつくる方法を簡単に紹介しました。雑誌でも2D/3Dゲーム開発エンジン「Unity」でつくれることを簡単に紹介しましたが、実際には事前の準備も含めてちょっとハードルが上がります。ここでは改めて手順を追って詳しく紹介していきましょう。
※なお、この記事は、2022年7月末時点での情報をもとに執筆をしています。使用しているアプリケーション、ソフトウェアのバージョン、画面などはご利用時には更新されている可能性がありますので、あらかじめご了承ください。
「3 サンプルプロジェクトを改造しよう」でワールド内に物を置くことができました。でももっと凝った形の物を使いたいですよね。そこで、公開されている3Dデータを利用する方法を試してみましょう。
(1)小惑星リュウグウをワールドに置いてみる
ワールドに置く3Dデータは、Unityで扱えるフォーマットのものなら何でもいいのですが、ここでは小惑星リュウグウを取り込んでみることにしましょう。
① 宇宙航空研究開発機構(JAXA)のWEBサイト(https://www.hayabusa2.jaxa.jp/galleries/3D/ )を見ると、いくつか公開先があることが分かります。どれでも良いのですが、ここ(https://data.darts.isas.jaxa.jp/pub/hayabusa2/paper/Watanabe_2019/ )からダウンロードすることにしましょう。

② 形状データ「SHAPE_SFM_3M_v20180804.obj」をダウンロードし、保存します。「SHAPE_SFM_800k_v20180804.obj」などもリュウグウの形状データなのですが、これらはデータ量を削減した簡易モデルです。負荷を軽くしたい場合などには、こちらを選んでも良いでしょう。クリックでダウンロードができないときは、ファイル名を右クリックして、「名前を付けてリンク先を保存」を選んで、保存をしてください。

③ ダウンロードしたデータを、Unityの「Assets」にドラッグします。ちょっと時間がかかりますが、取り込みが完了したら、アイコンが表示されます。ドラッグでうまくいかないときは、「Assets」で右クリックをして、「Import New Asset」を選択して、「SHAPE_SFM_3M_v20180804.obj」を選び、「Import」を押すと、取り込むことができます。

④ リュウグウのアイコンを「Hierarchy」か「Scene」にドラッグして、ワールドに置きます。見えないときは、床の下に隠れている場合もあるので、「Transform」で位置を適当に調整してください。位置の微調整は、選択時に表示される3色の矢印をマウスの左ボタンを押したまま移動させる方法も便利です。そのままだとリュウグウが横向きなので、「Transform」の「Rotation」でX軸を90°だけ回転させておきます。


⑤ もう1つ気になるのは、リュウグウの色合いです。先ほどの箱もそうですが、色を指定しないと、初期状態の白いままになってしまいます。物体の色や反射など、素材感を指定するのはマテリアルファイル。「Assets」で右クリックし、表示されたメニューから「Create」→「Material」を押します。

⑥ 新しいマテリアルファイルが作成されたので、名前を「ryugu」に変更します。これを選択すると、右の「Inspector」に設定が表示されるので、「Albedo」の右側の白いところを押します。

⑦ カラーピッカーで色を変えます。リュウグウは黒っぽい小惑星なので、色を暗めにしてみます。

⑧ 「Hierarchy」で、「SHAPE_SFM_3M_v20180804」の中の「default」を選択します。これがリュウグウの3Dデータ本体で、「Inspector」の一番下側に「Default Mat」というマテリアルが見えます。「Assets」にあるryuguマテリアルを、この「Inspector」の下の空欄にドラッグするとマテリアルが変更され、リュウグウが黒くなりました。



⑨ 再生ボタンで試してみましょう。あのリュウグウを目の前でじっくり眺められるというのは、不思議な感覚でとても楽しいですね。

(2)リュウグウの地表に立てるようにする
現実では経験できないようなことまで実現できるのがメタバースの良いところです。次は、リュウグウの地表に降り立ち、探検できるようなワールドにしてみましょう。
① まずは実際の大きさにしてみましょう。リュウグウの大きさは約900mなので、「Scale」のXYZを900にします。大きすぎて見えなくなってしまったので、「Hierarchy」の「default」をダブルクリックしてみてください。全体が表示されたはずです。


② このままだと、ワールドに入ったときにリュウグウの中心部から始まってしまうので、次は、スタート地点をリュウグウの表面に移動させます。「Hierarchy」で「System」→「SpawnPoints」→「SpawnPointEntrance」を選んでください。

③ 「Inspector」を見ると、「Spawn Point」というコンポーネントが見えます。この場所がスタート地点となるため、「Position」のY座標を450くらいに上げてみましょう。

④ この角度だとスタート地点の位置が確認しにくいですね。そのときは「Scene」の右上にある視点操作アイコンのXかZをクリックし、真横からの視点に変えてみます。

⑤ パース(遠近法)の見え方はリアルですが、まだちょっと分かりにくいかもしれません。こういうときは、視点操作アイコンの中央の四角をクリックすると、パースのない見え方に切り替えることもできます。これで確認すると、スタート地点の場所は大体良さそうです。

⑥ しかし再生してみると、リュウグウ表面を素通りして落ちてしまいます。これは、リュウグウがそこに表示されているだけで、まだ衝突判定の機能が付いていないからです。

⑦ 衝突判定には、「コライダー」というコンポーネントを使います。コライダーにはいくつか種類があるのですが、リュウグウのように複雑な形をしていて、その表面を歩くようなときには、「Physics」→「Mesh Collider」を貼り付けます。「3 サンプルプロジェクトを改造しよう」でつくった箱には衝突判定が最初からありましたが、これはつくった時に自動的にコライダーが付けられていたからです。

⑧ 再生してみましょう。今回は無事、リュウグウの表面に立つことができました。早速、あたりを歩き回ってみてください。

(3)背景を星空にしてみる
今の状態でも楽しいし、リュウグウの上を探検するという目的は果たせたのですが、どうも雰囲気が出ません。やはり背景が青空というのが違和感の最大の原因なので、これを星空にしてみましょう。
ここで活用するのが、Unityのアセットストアです。アセットストアでは、Unityで使うことができるさまざまなデータが提供されています。もちろん有料のものが多いのですが、無料のものもたくさん用意されていて、これだけでもかなり本格的なワールドがつくれるようになるので、うまく活用してください。
① 筆者がよく使う星空のアセットは「Milky Way Skybox」です。ウェブブラウザーでアセットストアのページ( https://assetstore.unity.com/packages/2d/textures-materials/milky-way-skybox-94001 )を開いて、「Add to My Assets」を押します。

② 利用規約が開くので、読んだら「Accept」を押します。これで「My Assets」に追加されました。Unityのアセットを使うためには、このように、「My Assets」に登録しておく必要があります。

③ 右上のアイコンを押して、「My Assets」を表示させると、ちゃんと「Milky Way Skybox」が登録されています。ここで、「Open in Unity」を押してください。

④ Unity上で「Package Manager」の画面が開き、そこに「Milky Way Skybox」が表示されるはずです。もしエラーで表示されないようなら、それはおそらく、Unityでサインインしていないのが理由です。左上に「Sign in」ボタンが見えていたら、それを押し、サインインしてからやり直してみてください。

⑤ 「Package Manager」に「Milky Way Skybox」が表示されたら、右下の「Download」を押します。ダウンロードできたら「Import」を押してください。

⑥ 「Import Unity Package」のウィンドウが表示されたら、右下の「Import」を押します。終了したら、Package Managerのウィンドウは消してください。

⑦ 上のメニューから「Window」→「Rendering」→「Lighting」を押します。

⑧ 表示されたウィンドウで「Environment」を押します。

⑨ Unityで背景は「Skybox」と呼びます。「Skybox Material」は「Default-Skybox」になっていますが、右のアイコンを押して、中から「MilkyWay」を探して選びます。すると、背景に星空が適用されます。

⑩ 「2 サンプルプロジェクトでワールドづくりをはじめよう」で説明したのと同じ手順で、ワールドをアップロードしてみましょう。同じワールドのままでも良いのですが、ここでは「新規作成」にしてみます。

⑪ ワールドがアップされたら、clusterアプリで中に入ってみましょう。星空のおかげで、宇宙っぽい雰囲気が一気に出ました。

⑫ ワールドは最初にアップしたとき、自動的に非公開になっています。自分で遊ぶだけならこれで良いのですが、公開したいときは、メールアドレス認証が必要になるので、手続きを行ってください。

これで小惑星リュウグウのワールドができあがりました! このように、公開されている3Dデータを使うことで、簡単にカッコいいワールドをつくることができます。
ただし、公開されている無料のデータでも、使うための条件があったりします。その条件はつくった人によっても違うので、データのウェブサイトで良く確認をしたうえで、ルールを守って使うようにしてください。
《子供の科学深ボリ講座》Unityでメタバースのワールドをつくろう! 記事一覧
文

コカネットプレミアム(DX)会員は、雑誌『子供の科学』バックナンバー電子版が読み放題! 以下をクリック☆

