MRが楽しい

MRやVRについて学習したことを書き残す

clusterの自作ワールドを作成してアップロードする その5(アセットを使ったワールドのカスタマイズ)

本日は cluster の技術調査枠です。
cluster の自作ワールドを作成してアップロードする手順を記事にします。
f:id:bluebirdofoz:20201218033537j:plain

その5はアセットを使ったワールドのカスタマイズです。

前提条件

前回記事の続きになります。
bluebirdofoz.hatenablog.com

AssetStore

AssetStore では Unity で利用できる3Dモデルやスクリプトを購入することができます。
中には無料で利用できるものもあり、手軽にワールドの素材を手に入れることができます。
assetstore.unity.com
f:id:bluebirdofoz:20201218033556j:plain

今回はクリスマスも近いので以下のクリスマスに関する小物と部屋が含まれる無料アセットを利用することにしました。
assetstore.unity.com
f:id:bluebirdofoz:20201218033617j:plain

AssetStoreからのインポート

実際に AssetStore から素材を取得してみます。
Unity プロジェクトを開いて[Asset Store]画面を開き、Unity アカウントでログインします。
f:id:bluebirdofoz:20201218033629j:plain

先ほどの[Christmas Decoration Props]を検索して、アセットのページを開きます。
f:id:bluebirdofoz:20201218033640j:plain

ページを開くと[Import]ボタンが表示されるので、これをクリックします。
アセットを未ダウンロードの場合は[Download]ボタンが表示されるので先にダウンロードを実行してください。
f:id:bluebirdofoz:20201218033715j:plain

[Import Unity Package]ダイアログが表示されるので、[Import]ボタンをクリックします。
f:id:bluebirdofoz:20201218033725j:plain

これでワールドの素材を取得することができました。
[Christmas Decoration Props]アセットは Assets/ChristmasScene フォルダ配下に素材がインポートされます。
f:id:bluebirdofoz:20201218033734j:plain

取得した素材の利用

では取得した素材をワールドに配置してみます。
Assets/ChristmasScene/Assets/Prefabs フォルダ配下に様々な小物や部屋のプレハブが用意されています。
f:id:bluebirdofoz:20201218033746j:plain

この小物を[Scene]画面にドラッグすると、ワールドに小物を配置することができます。
f:id:bluebirdofoz:20201218033754j:plain

配置後は小物を選択した状態で、軸をドラッグするか、Inspector ビューのトランスフォームを変更することで位置や大きさを調節できます。
f:id:bluebirdofoz:20201218033807j:plain

完成品のプレハブの利用

[Christmas Decoration Props]アセットには Map.prefab という部屋と小物を組み合わせたプレハブも含まれています。
今回は手っ取り早くこちらを利用してワールドを作成してみます。[Scene]画面にドラッグして配置します。
f:id:bluebirdofoz:20201218033817j:plain

Tips

以下のようにプレハブ配置時、[Layer]が[UI]の一部のスクリーンなどが座標に関わらず前面に表示されることがあります。
原因は不明ですが、シーンを一度再生すると正しい描画順に修正されます。
・配置直後
f:id:bluebirdofoz:20201218033827j:plain
・シーン再生後
f:id:bluebirdofoz:20201218033836j:plain

配置した Map オブジェクトのトランスフォームを変更して位置や大きさを調節します。
f:id:bluebirdofoz:20201218033846j:plain

[Hierarchy]上の Map オブジェクトの位置はそのままでも問題ありませんが、Environment 配下にまとめた方が後々の管理がしやすいです。
Map オブジェクトを Environment 配下にドラッグして移動しておきます。
f:id:bluebirdofoz:20201218033856j:plain

床オブジェクトの削除

元々の床オブジェクトは不要なので削除します。
[StaticObjects]と[Colliders]内のオブジェクトを削除すると、床の見た目とアタリ判定を削除できます。
f:id:bluebirdofoz:20201218033908j:plain

Map プレハブの床には予めアタリ判定(Collider)が設定されているので、元々の床のアタリ判定を削除しても問題ありません。
f:id:bluebirdofoz:20201218033918j:plain

アタリ判定(Collider)の追加

Map プレハブの床にはアタリ判定(Collider)が設定されていますが、壁には設定されていません。
f:id:bluebirdofoz:20201218033929j:plain

このため、このままだと壁をすり抜けて移動出来てしまいます。
これを防ぐため、壁にもアタリ判定(Collider)を設定してみます。
f:id:bluebirdofoz:20201218033940j:plain

Wall オブジェクトの Inspector ビューを開き、[Add Component]をクリックします。
[BoxCollider]を検索して、[Box Collider]コンポーネントを追加します。
f:id:bluebirdofoz:20201218033950j:plain

追加された緑枠のアタリ判定が壁と同じ形になるよう調整します。
ここでは[Center X:0, Y:0, Z:0]、[Size X:1, Y:1, Z:1]で同じ大きさになるようになります。
f:id:bluebirdofoz:20201218034001j:plain

これで壁を突き抜けないようになりました。
f:id:bluebirdofoz:20201218034012j:plain

全ての Wall オブジェクトに同じように BoxCollider を設定して完了です。
f:id:bluebirdofoz:20201218034023j:plain

これで部屋の中を自由に歩き回れるワールドが作成できました。
f:id:bluebirdofoz:20201218034033j:plain

次回はライティングとスカイボックスの設定を行ってワールドの見え方を更に調整していきます。
bluebirdofoz.hatenablog.com