サラリーマンの憧れ、夢のマイホーム。3Dマイホームデザイナー13というソフトを使うと、間取りを入力するだけで簡単に立体的な家のイメージを作れて便利です。このソフトでは部屋の中からみた景色や外観などを3Dで見ることができるのですが、VRで家の中に入ったら面白いんじゃないか!? ということで、VRChatのワールドにする方法を書いていきたいと思います。
こんな間取り↑を作ると、こんな3Dの部屋↓ができる。(データはサンプルのもの)
【ご注意】このブログで書いている内容は、「こうやったらできた!」というだけで、誤った手順であったり、もっと良い方法があるかもしれません。間違いやもっと良い方法がありましたら、コメントで教えていただけると助かります。
前提とするスキル
ここで説明する内容は、ある程度以下のスキルがあることを前提にしています。
・Unityの基本的な操作
・VRChatのワールドまたはアバターのアップロード経験
公式サイトにも説明があるので、UnityやVRChatの使い方について詳しく知りたい方は、公式サイトも参考にしてみてください。
想定環境
・Unity 2019.4.31f1
・3Dマイホームデザイナー13
・VRChat SDK3
・VRChat Creator Companion(必須ではない)
3Dモデルの変換
VRChatのワールドはUnityで制作するため、Unityに家の3Dモデルを読み込む必要があります。3Dマイホームデザイナーは .glTF 形式で3Dモデルのファイルを出力できるのですが、Unityは直接そのファイルを読むことできません。そこで.glTFファイルを読めるようにする必要があります。
ファイルの保存
3Dマイホームデザイナーで .glTF 形式のファイルを保存するには、ファイル→エクスポート→.glTF を選択します。保存先を聞いてくるので任意の場所に保存します。
※公式サイトの説明では.glbになってますが、.glbが出力できるのはPro版以降です。.glTFでも特に問題ありませんでした。(.glbはバイナリ、.gltfはテキスト形式です。テクスチャなどのバイナリデータも.gltfに内包されています)
Unityの準備
VRChat Creator Companion (VCC)のProject NewからWorldを選択して、新しいプロジェクトを起動します。VCCを使わずに従来のようにUnity Hubから作成することも可能ですが、その場合はSDKを別途インポートしてください。
UniVRMのインポート
glTFファイルを読み込むためのアセット UniVRMをダウンロードします。UniVRMはVRMモデルを扱うためのアセットで、その中にUniGLTFというglTFファイルをインポートするプログラムが含まれています。今回は こちら の v0.99.4 の UniVRM-0.99.4_8d33.unitypackage をダウンロードします。ダウンロードが完了したらUnityにインポートします。
※最新バージョンはUnity 2019.4に対応してません。v0.99.x がUnity 2019.4で動く最後のバージョンになります。
glTFファイルの軽量化(任意)
飛ばして次に進んで差し支えありません。
3Dマイホームデザイナーが出力するglTFファイルは、1つのメッシュにつき1つのマテリアルが存在するため、変換すると大量のマテリアルが作成されてしまいます。同じ内容の重複するマテリアルを削除すると軽くなるので、私は変換プログラムを使って変換を行いました。CLIでPHPを実行する環境が必要です。
ソースプログラム: https://github.com/kaz-mac/misc/blob/master/3DMH/nodup_gltf.php
使い方: ./nodup_gltf.php input.gltf output.glft
※この変換プログラムの弊害として、重複したマテリアルを共通化しているので、例えば1つの部屋の壁の色を変えたら家中全部変わってしまう、ということが起こります。カスタマイズする場合は新しくマテリアルを作成することをおすすめします。
glTFファイルのインポート
gtTFファイルの準備ができたらUnityで読み込みます。UnityのメニューのUniGLTF→Import from glTFを選択し、glTFファイルを指定します。すると保存先を聞いてくるので、保存先を指定します。この保存先はこのプロジェクトのAssetsフォルダ以下にする必要があるため、何か新しいフォルダを作っておくといいと思います。
インポートするとUnityが固まります。ちょっと処理が重いだけです。数分くらい応答がなくなるのでそのまま放っておきましょう。なんかコンソールにエラーが出てる場合もありますが、たぶん気にしなくて大丈夫です。
ちなみにglTFのインポートは UniGLTF 1.27 でもできますが、こちらは大量のファイルを作成してしまうので、ものすごく時間がかかります。数時間はかかります。UniVRM 0.99.xのUniGLTFなら大量のファイル(メッシュ・マテリアル等)が作成されず、1つのファイルで済みます。
Unity上でワールドを作成する
ワールドの下準備
今回はテストなので簡単に、Planeを配置して、VRCWorldのPrefabを配置します。VCCではVRChat SDK- Worlds>Samples>UdonExampleScene>Prefabsの中にVRCWorldが入ってます。
3Dモデルを配置
インポートした家の3Dモデルは、Prefabアイコンみたいな形になってます。これを普通にドラッグ&ドロップするだけです。大きさによっては少し時間がかかるかもしれません。
コライダーを追加する
床に乗れるようにコライダーを設定します。コライダーが無いと床を突き抜けてしまいます。マウスの右ボタンを押しながら W A S D キーで視点移動ができるので、家の中に視点を移動します。Q E キーで上下移動、ホイールで移動速度の変更も可。これめっちゃ便利ですよね。この操作性を3Dマイホームデザイナーにも導入してほしいです!
左クリックすると一番手前にある壁が選択されてしまうので、もう一度クリックします。そうすると奥にある床が選択できるようになります。SHIFTキーを押しながらクリックすれば他の床も複数選択できます。階段は床板を1枚1枚選択しておくと上に登れるようになります。
選択が終わったらInspectorウィンドウのAdd Componentを押し、Mesh Colliderを選択します。壁にコライダーを付けるかはお好みでという感じですが、公開するワールドではないのでそこまでしなくてもいいかと思います。それにドアにコライダーを付けると開けるギミックがあるわけでもないので、中に入れなくなっちゃいます。
ここまで終わったら一旦保存しておきましょう。
VRChatにアップロードする
これでUnityの作業は完了です。簡単でしたね。次はいよいよVRChat側の作業に入ります。
シミュレーターで動作テストをする
VCCを使用している場合、UnityのPlayボタンを押すとVRChatのシミュレーターが起動します。
W A S Dキーで移動、マウスで視線変更、SPACEでジャンプ、SHIFTで高速移動できます。視線の位置が高いなと思ったらESCキーでメニューを出して、SettingsのPlayer Heightで身長を調整してみてください。
これでちゃんと歩けるか確認してみましょう。終了するにはもう一度Playボタンを押すか、ESCのメニューからExit Playmodeを押します。
VRChatで見る
VCCを使用していない場合や、実際にVRChatクライアントを起動して確認したい場合は、ワールドをビルドします。VRChat SDKメニューからShow Control Panelを開き、AuthenticationのタブからVRChatにログインします。
次にBuilderタブを開き、「Build & Test」を押すとビルドが開始します。ビルドが終了するとVRChatが起動します。「Force Non-VR」をチェックしていると、デスクトップモードでVRChatが起動します。VRヘッドセットで確認したい場合はチェックを外せば、VRで見ることができます。
これで普通にVRChatで内覧できるようになりました!
自分が作った家が3Dになってその中を歩ける。これは感動ものです!
もし本当に家を建てるなら、実際に家の中に入って使い勝手の良い間取りになっているかなどを確認しながら、調整していくといいと思います。ポイントとしては、自分と同じ目線の高さで見えるアバターを使うことです。アバターによっては部屋が大きく見えたり小さく見えたりするので、パブリックアバターや試着アバターなどに着替えて、ちょうど良いアバターを探してみるといいと思います。
他の人に見てもらうには?
テストモードで表示していたワールドはそのPC上でしか見れないので、他の人を招いたりすることはできません。他の人が入れるようにするには、VRChatにアップロードする必要があります。アップロードしても公開しなければ、他の人に見られることもありません。たぶん。
VRChatにアップロードする
VRChatにアップロードするには「Build & Publish for Windows」を押します。
しばらくするとワールドの設定画面が表示されるので、World Nameにワールド名、Descriptionに概要を入れて、The above~のところをチェックします。Publish to Comunity Labsはチェックしないでください。ここをチェックすると全世界に公開されてしまうで注意!
最後にUploadを押すとVRChatにアップロードされます。
VRChatで確認する
My WorldsのUploadedを開くと、自分がアップロードしたワールドの一覧が表示されます。このワールドのインスタンスを作成すれば普通に入ることができます。
人を招待する方法
Comunity Labsにまだ公開していないワールドはプライベートモードになっているので、通常は自分しかアクセスができません。インスタンスをFriendsでオープンしていればフレンドもJoinすることができます。
Meta Quest版を作る
今まで作成したワールドはPC版だったため、PCでしかアクセスできませんでした。Quest版なら持ち運びも簡単なので、人に見せたりするときも便利ですね。Quest版を作るのは結構簡単で、UnityのVRChatのコントロールパネルの「Switch Builld Target to Android」を押すと、Quest用のワールドをビルドすることができます。
「Build & Publish for Android」を押すと、PC版と同じようにビルドすることができます。ただしPC版のようにローカルでテストはできないため、VRChatにアップロードする必要があります。
PC版の編集に戻すには「Switch Builld Target to Windows」で切り替えます。PC版とQuest版の2種類を切り替えてアップロードするという感じです。Quest版でも割とサクサク動きましたが、一部正常に表示されないところがありました。おそらくシェーダーの関係だと思います。
3Dマイホームデザイナーはいいぞ!
ということで感動のあまり、3Dマイホームデザイナー VRChat化の方法を書いてみました。間取りを入力するだけで3Dのグラフィックが出来ちゃうすごいソフトですが、Unityを使えばVRで中に入れる!最高じゃないですか!
今回使用したのは「3Dマイホームデザイナー13」という、個人向けのタイプです。この製品のシリーズにはプロ向けの業務用などもあり、機能も様々ですが、個人で楽しむにはこれで十分だと思います。価格は公式サイトで買うとパッケージ版が16,500円、ダウンロード版が12,650円、Amazonで買うとパッケージ版が10,418円、ダウンロード版が11,385円(本記事掲載時点)となんか価格がバグってるので、Amazonで買った方が安いです。
個人的にはガイドブック付きを強くおすすめします!このソフトはちょっと操作方法にクセがあるので、はじめての場合はガイドブックを見ながら覚えたほうが楽です。ガイドブックは1/3が基本的な操作説明で、残りは「こうゆうときはこうやる」というようなテクニックの解説になっていて、めちゃくちゃ習得しやすい本です。Kindle Unlimited版なら無料です。