VR内で土と石と木を確認する

「VキャスのVCIで◯ine◯raftっぽいもの作る Advent Calendar 2024」4日目

Vキャス内で、穴を掘って、石を砕き、木を切って、組み合わせて武器を作って、何なら出てくる敵を倒して・・・
そんなことをやりたいなぁっていう試みを12月でできるところまで行こうというカレンダーの4日目です！

昨日の[動かない土と石と木をつくる](https://qiita.com/HAHURI/items/016c396d53753b88bfb6)でVirtualCastに動かない土と石と木を投稿しました。
そこで今日は、実際にバーチャルキャストのVR内でこのアイテムを確認して微調整をします。

# VR内で土と石と木を確認する

VR機器の設定は今回の記事では除きますが、以下手順になります。

① SteamVRからバーチャルキャストを導入する
② VirtualCastを起動する
③ ルームに入ってVCIを取り出す
④ VCIを触って確認する
⑤ VCIを調整する
⑥ VCIを再度取り出し直して確認する

# 手順

## ① SteamVRからバーチャルキャストを導入する
[SteamVRのVirtualCastのページ](https://store.steampowered.com/app/947890/VirtualCast/)から、VirtualCastのアプリケーションをインストールします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/aecbb45e-2f0b-7e68-f72b-6b2d5d4043fa.png" width="50%">

ここで注意なのが、VirtualCastはWindows専用サービスなので、MacOSでは使えないことに気をつけてください。

また、VirtualCastはMetaQuest2や3単体でも利用できるので、MetaQuest2や3を単体で利用する場合は、MetaQuestを被ってストアで「バーチャルキャスト」を検索し、[Storeページ](https://www.meta.com/experiences/4174249979259348)からインストールしてください。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/02d6614f-ef56-05ae-1ef9-71a3448540e3.png" width="50%">


## ② VirtualCastを起動する
SteamVR版の場合は、インストールが成功すると、デスクトップにVirtualCastのアイコンが出現しています。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/2c50ae9f-d74b-3f9b-ce37-3c6b4ac17d40.png" width="50%">

これをダブルクリックして、起動しましょう。
※VRは設定が完了して、つながっている必要があります。

アイコンをダブルクリックして、VirtualCastを起動しましょう。

起動するとWindowPCのデスクトップ画面に、設定画面が表示されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/cdaf55ad-b78c-f764-1048-086283f2c451.png" width="50%">

まずは右上のCONNECTをクリックして、VirtualCastにログインしておきます。
ブラウザでWebのVirtualCastにログインできていると以下のようなコードが出るので、コピーをして。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/32bf069e-2abf-f521-3713-eeb0a2fc4b1c.png" width="50%">

アプリの方のVirtualCastの入力フォームに貼り付けて、次へをクリックすると
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/3f50aaeb-5894-1c59-8492-9df510a4d366.png" width="50%">

連携が完了できます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/8bf28e96-3f3e-e958-42fa-472dbceb448e.png" width="50%">

今回は、VCIを見るだけなので、ニックネームにすきな名前を入れて、スタート移動先というのを「ルーム」にしておきます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/ffcf762d-9bd8-7be4-24aa-59de9c20814a.png" width="50%">


このスタジオとルームというのは、バーチャルキャスト最初期からあるのがスタジオでほぼ配信のみの目的で使うもの、ルームは比較的新しくてメタバースだったり配信だったり色んな用途で使える場所です。

VCIは、ルームでこそその真価を発揮するので、確認はルームに設定します。

問題がなければ、スタートをクリックし、VRを被って先に進めましょう。

## ③ ルームに入ってVCIを取り出す
両手のトリガーを引いてルームへ入室します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/c344d3c9-44a6-d002-0545-350f0b8d14b4.jpeg" width="50%"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/d1152503-e365-1334-cd0a-a85300ef2287.jpeg" width="50%">

入室するとデフォルトだとおそらくロフトのある部屋になります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/1a4919bf-359c-9e12-0cd8-d8a8038a28a5.jpeg" width="50%">

ただ、ここは天井が低く、空間も狭く、初期アイテムも置いてあるので、空間が広い背景に変更して、初期アイテムも片付けます。

※以下Questコントローラーである場合の操作になります

右コントローラーのBを押します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/dcccbd8c-d6bf-744e-604d-35c1c3218bd0.jpeg" width="50%">

リングメニューが出てくるので、ルーム情報という丸い場所に手を持っていって、コントローラーの後ろのトリガーを引きます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/5dd55058-dc7d-30d1-22dd-85e7535864e0.jpeg" width="50%"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/ae9e2ec6-96ac-51da-a41e-ee58c27394bb.jpeg" width="50%">

この操作で、リングメニューの次のメニューに進んでいけます。
出てくるメニューから「ロケーション変更」を選択。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/ba709a7b-c397-cdd9-c080-0430c8ed8403.jpeg" width="50%">

さらに、出てくる中から「プリセット」を選択。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/68c52c49-eebc-459f-c709-4fb452da88dd.jpeg" width="50%">

そして、その中の一番右「EffectLocation・・・・」を選択。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/5fb14ae5-f813-e224-7e1c-80d587d1f654.jpeg" width="50%">

そうすると空間の背景が切り替わって広い空間になります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/5bafe953-af44-57cc-c2ec-38e2e93ef271.jpeg" width="50%">


次に、アイテムの掃除をします。
再度、右コントローラーのBを押します。
リングメニューからまた、ルーム情報を選択。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/87555bba-6bfc-cead-8ed2-7eb7a203ac29.jpeg" width="50%">

出てくるメニューから「片付ける」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/3ae7d36f-afcd-be4a-3397-12675df062cc.jpeg" width="50%">

片付ける対象が聞かれますが、今回は全てを選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/46412813-8703-be8c-d985-fd08532350be.jpeg" width="50%">
削除の確認が出るので「はい」を選択。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/f5b87c61-c0e1-82b6-d3bb-3c223f124407.jpeg" width="50%">
これで部屋の中にあるVCIが削除され、片付きました。


いよいよ、作成したVCIを呼び出します。

再度、右コントローラーのBを押します。
今度は自分のアイテム＝VCIを呼び出すので「マイアイテム」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/bfaaec11-9a9a-96c0-1964-71482ac22a5e.jpeg" width="50%">

投稿しているVCIが出てくるので、昨日投稿したVCIを名前で見つけて、これを選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/6327fc20-e573-a2d3-e100-3104b06198c2.jpeg" width="50%">

呼び出し方の選択が出てくるので「新規作成」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/f32ad4c9-c024-3689-c412-25c06d8d9329.jpeg" width="50%">

すぐに昨日作ったVCIがVR空間に出現します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/c2efb498-11db-785f-2c07-e812a6993940.jpeg" width="50%">


## ④ VCIを触って確認する
さて、昨日作ったVCIが出てきました。
一応石と土と木のようにはみえないでもない・・・？
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/8f7283e7-ab25-3c41-6dbc-c03142db400a.jpeg" width="50%">

また、VCIには登れることができたので、昨日の予定通り登ることができるVCIになっていそうです。

ただ、大きさが思ったサイズよりものすごく大きいということに気が付きます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/dd0f7e9c-1c08-f640-3345-7d09ab023161.jpeg" width="50%">

さらに、手をVCIのところに持っていって、コントローラーの後ろトリガーを引くとブロックで掴めることが確認できます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/24af2295-dfa7-2d61-e42e-5ae9b77a97f8.jpeg" width="50%">

ここまでの操作で、乗っかることができて、手で持ち運ぶことができるVCI担っていることが確認できました。
ただ、ちょっと大きすぎるということがわかったので、次にサイズを調整しようと思います。


## ⑤ VCIを調整する
一旦VRは起動したままでも良いですが、HMDを外して、PCでの作業をします。

UnityからVCToolKitをもう一度開きます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/b541294a-000b-468b-df1a-70afcc048b1e.png" width="50%">

使っているCubeを並び方は変えないままで、小さくします。

まず、Hierarchyで右クリックをして「Create Empty」をクリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/b407fbc2-30b8-4bd0-b2ea-94bbc6984ae2.png" width="50%">

GameObjectというものがHierarchyに追加されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/b37db11e-828b-2d25-b229-bf6b6737c59f.png" width="50%">

次に、VCIObject（画像では名前を変えたので「SAC-Craft_Tree」となっている）をクリックして、中身を表示します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/b3e93b54-59f0-2a54-ae7e-a809b982826d.png" width="50%">

VCIObject内の一番上のCubeを選択して、キーボードのShiftを押しながら下ボタンを押し続けて、VCIObjectの中身を全て洗濯した状態にします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/67c3f106-d8f0-d746-9c81-fda140ae1f45.png" width="50%">

選択したまま、ドラッグ＆ドロップで最初に作ったGameObjectに投げ入れます。
※うまくいくと画像のように、GameObject内にCubeたちがある状態になる。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/015f76e1-01f0-5810-55cd-876c663ddb94.png" width="50%">

次に、GameObjectを選択して、Inspectorを見ます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/4587cae3-dfcb-7da1-b47d-e00907cacc24.png" width="50%">

この中のTransformのScaleを、今回は1/4位のサイズにしたいのでXYZ全て0.25とします。
そうすると、Sceneに表示されていた、土と石と木が小さくなります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/794815ec-8c22-fdff-74bb-792917039ee7.png" width="50%">

小さくなったら、再びGameObject内のCubeをすべて選択して、もともと入っていたVCIObjectの中に戻します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/95b96587-0019-8962-762d-ac7f9db52292.png" width="50%">

これで、VCIObject自体のTransformの値は変わらないままで、でも中身は小さい状態にできたと思います。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/62edc42c-edda-0740-0bde-e18b92c8108d.png" width="50%">

VCIObjectを選択して、Inspectorの「VCIをVirtualCastにアップロードする」をクリックします。
この操作は、全体のVCIの上書きで投稿がされることになります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/0ff2f466-2553-16e8-63bd-ae7ab9535152.png" width="50%">

投稿が完了したら、VR内でもう一度確認しましょう。


## ⑥ VCIを再度取り出し直して確認する
HMDを被り直して、先程のルームに行きます。
コントローラーのBを押し続けると、光のラインが出てくるので、その光のラインを更新したいVCIに向けます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/8e3193f6-6225-193f-6b76-dcb1ff248da6.jpeg" width="50%">

光が当たると、VCIも光るのでBボタンを離すと、今出しているVCIに対する操作ができるリングメニューが出てきます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/bfd72dc9-f1af-12a0-74f7-b91a37a59103.jpeg" width="50%">

再読み込みでは、前のもののままになってしまうので、一度このメニューから「削除」を選択します。

VCIが消えるので、再度Bボタンを押し、「マイアイテム」を選択して、投稿しているVCI（前と同じもの）を選択。更に、呼び出し方は「新規作成」を選択します。

これで再度VCIを出すことになり、今さっき⑤で更新したVCIが出てきます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222644/8195599d-310b-ae19-bb82-d5d9dc1fba9b.jpeg" width="50%">

Unityで設定したように、1/4のサイズになったことが確認できました！

＃ おわりに
これで、VR内で土と石と木を確認することができました。

次は、ただ持てるのではなく「何回か叩いたら取得できる（持ち運べるようになる）」にしたいと思うので、VCIで使えるプログラミングコードの記述をしたいと思います。
ただ、まずはその環境がないので、明日はコードを書くための環境作成をしていこうと思います！