WebXRで開発してみる その1(サンプルの実行、Meta Quest 3S)

はじめに

 今回はWebXRのサンプルを実行してみました。

 以前の記事でブラウザからVRコンテンツを起動できることを知り、どのように開発しているのかを調べているとWebXRを見つけました。

▼こちらの記事で、Meta Quest 3Sのブラウザから起動できるアプリを試していました。

VRゴーグルで遊んでみる その2(Meta Quest 3S)

はじめに  今回もVRゴーグルで遊んでみたという話です。お絵描き系のアプリや、ブラウザから実行できるものを試してみました。 ▼VRゴーグルはMeta Quest 3Sを利用してい…

 Meta Horizonの対応プラットフォームの中で紹介されていました。

▼UnityやUnreal Engineだけでなく、Webなどがあります。

https://developers.meta.com/horizon/develop

▼MetaのWeb関連のページはこちら

https://developers.meta.com/horizon/develop/web

 そもそもWebXRで何ができるのかを知るために、今回はまずサンプルを実行してみました。

▼以前の記事はこちら

Unreal Engine 5を使ってみる その20(ハンドトラッキングのコリジョンと物体の把持、Meta XR Interaction SDK Unreal)

はじめに  今回はUnreal Engine 5でのハンドトラッキングにおけるコリジョンの設定と物体の把持について試してみました。  Meta XRのプラグインの追加などは前回の記事…

VRゴーグルで遊んでみる その1(Meta Quest 3S)

はじめに  今回はVRゴーグルのMeta Quest 3Sで遊んでみました。  これからUnreal EngineなどでVRコンテンツを製作するにあたって、まずは既存のコンテンツを知るべきだ…

開発者ツールをインストールする

Meta Quest Developer Hub

 開発者用のソフトウェアであるMeta Quest Developer Hubをインストールしておきました。

▼ダウンロードページはこちら

https://developers.meta.com/horizon/downloads/package/oculus-developer-hub-win

▼起動するとこんな感じ。Device Managerの画面です。

▼Performance Analyzerもあります。

 Code Samplesにはサンプルのリンクがありました。

▼Unityが圧倒的に多いという印象です。

 今回はMeta Quest Developer Hub自体は利用していません。この中にあるWeb関連のサンプルを後で実行します。

Immersive Web Emulator

 VRゴーグルが無くても、どのように動作するのかをブラウザで確認できるImmersive Web Emulatorがありました。

 Googleブラウザの拡張機能として追加できます。

▼こちらから追加できます。

https://chromewebstore.google.com/detail/immersive-web-emulator/cgffilbpcibhmcfbgggfhfolhkfbhmik

▼拡張機能として追加されました。

 サンプルを実行するときにこのツールを試してみました。

サンプルを実行してみる

WebXR First Steps

 Meta Quest Developer Hubで紹介されていた、WebXR First Stepsを試してみました。

▼GitHubのリポジトリはこちら

meta-quest/webxr-first-steps: Your first steps into immersive web development with WebXR.

 Node.jsで起動するようになっています。

▼Node.jsとNPMはインストール済みです。

 ダウンロードしたリポジトリのディレクトリで、以下のコマンドを実行しました。

npm install
npm run dev

 パッケージのインストールが行われ、サーバーが起動します。

▼8081ポートで問題なく起動しました。

 PC側のIPアドレスはipconfigで確認したところ、10.240.124.34でした。このIPアドレスに対して接続します。

▼以下のようなURLにVRゴーグルのブラウザからアクセスすると、画面が表示されます。IPアドレスは変更してください。

https://<IPアドレス>:8081

▼最初に接続するときは、セキュリティ保護の画面が表示されます。詳細を表示し、アクセスするという選択肢を選ぶと、アクセスできます。

▼ブラウザに画面が表示されました。

▼「VRをスタート」を選択すると、VR画面が起動しました。

▼周りを見渡したり、球を発射することができます。

▼ブラウザ上ではエラーが表示されていることがありました。buttons関連です。

 最近Unreal Engineのサンプルでビルドできなくて諦めていたので、ここまですんなり起動できたのに驚きました。

 PCのブラウザからアクセスし、Immersive Web Emulatorについて試してみました。

 F12キーで開発者モードを起動し、WebXRのタブに移動すると操作画面が表示されました。

▼VRゴーグルやコントローラが表示されています。

 ENTER VRをクリックしてVRモードを開始すると、コントローラを移動させたり、発射することができました。

▼これでPCでも簡易的な動作確認ができます。

▼Hands Modeもあるようです。

 手元にVRゴーグルがあるので、Immersive Web Emulatorを使う機会は少ないかなとは思います。

WebXR Showcases

Chars Etc

 WebXR Showcasesのリポジトリに4つのサンプルがありました。

▼GitHubのリポジトリはこちら

meta-quest/webxr-showcases: Collection of WebXR showcase experiences

 READMEのShowcaseのリンク先からも実行できるようでした。今回は先程と同様に、ローカルPCでサーバーを立てます。

 まずはchairs-etcを試してみます。現実空間にイスを配置できるサンプルです。

 GitHubのリポジトリをダウンロードして、そのディレクトリで以下のコマンドを実行しました。

npm install
cd chairs-etc
npm install
npm run serve

▼先程と同じく、8081ポートで起動していました。

 VRゴーグルでアクセスしてみました。

▼現実空間にイスを配置することができます。

 最初に空間のスキャンが行われて、どこに障害物があるのかをマップのように表示していました。LiDARのマップ生成のようなことができるのは面白いですね。

Real Measure

 距離を計測できるサンプルを試してみました。以下のコマンドでサーバーを起動しました。

cd ..
cd realmeasure
npm install
npm run serve

 VRゴーグルでアクセスしてみました。

▼コントローラの説明画面は変な感じでした。何枚か重ねられています。

▼空間上の2点の距離を測定できます。

▼30cmの定規と比較したのですが、ちゃんと測定できています。

 iPhonの計測アプリと似ていますね。

Sneaker Builder

 スニーカーの色を変更できるサンプルを試してみました。以下のコマンドを実行して、サーバーを起動しました。

cd ..
cd sneaker-builder
npm install
npm run serve

 VRゴーグルでアクセスしてみました。

▼スニーカーが現実空間に表示されています。

▼コントローラで選択し、色を変更することができます。

▼コントローラの先端はとがった形状で、選択するときは閉じます。

 コントローラのどこが操作の起点になるのかを分かりやすくすることは重要になりそうです。先程の定規のサンプルはなぜかコントローラの持ち手部分辺りで、若干操作しにくかったです。

 床付近に持って行くと、自動的に床に吸い付くように動きました。

▼自分の足の位置に合わせることもできます。時計とかのアクセサリーもこんな風に表示できそうですね。

 服の着せ替えとかになってくると、VRゴーグルには自分の姿が映っていないので鏡が必要になりそうです。

Flap Frenzy

 最後に、こちらはMRではなくVRのサンプルを試しました。羽ばたいて操作するゲームになっています。

 以下のコマンドを実行して、サーバーを起動しました。

cd ..
cd flap-frenzy
npm install
npm run serve

 VRゴーグルでアクセスしてみました。

▼コントローラが羽になっています。

▼3回はばたくとゲームが始まります。

 結構大きく腕を動かさないと、羽ばたいているという判定にならないです。傍から見たら腕をぶんぶん動かしている状態になります。

▼プレイ中の動画はこちら

▼途中でエラーが起きていることがありました。またbutton関連ですね。

最後に

 Unreal Engine用に用意されたMetaのサンプルに比べると、驚くほど簡単に環境構築ができて、サーバーとして起動することができました。実行環境がNode.jsですし、私にとってはWebXRで開発した方が楽なのかもしれません。

▼Node.jsはNode-REDのノードを開発するときなどに頻繁に使っています。

Node-RED関連

ここではNode-RED関連の情報を集めています。 書籍 関連記事 関連記事VRゴーグルで遊んでみる その2(Meta Quest 3S) 2025年6月22日 Pyodideを使ってみる その2(…

 MRもサンプルとしてちゃんと動作するコードがあるのは非常にありがたいです。コードをじっくり読みたいなと思っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です