LoginSignup
4
2

こちらは ミライトデザイン Advent Calendar 2023 の24日目の記事となっています。

23日目は suzuki-hoge さんの 「身体的疲労との付き合い方」 でした。

自分はもうそろそろで40代後半に突入しそうな歳で、若い時のように無茶をするのは無理な体になってきています。
こまめに体をほぐしたりするだけでも疲れ具合が軽減されるので、こちらの記事の内容を参考にしてあまり疲労を溜めないようにしようと思いました。

はじめに

Quest3を手に入れたので、せっかくなのでUnityを使って色々作って遊ぼうと考えています。
なので、まずは簡単なアプリを作ってみてQuest3での開発がどんな感じなのかを知ろうと思い立ちました。

自分が作業しながらメモした内容等を箇条書きでまとめた状態にしています。
Quest3とは直接関係ない部分(主にStep1)もありますが、自分と同じようにQuest3で初めてアプリを作る方の参考になれば良いなと思っています。

Step 1 環境構築

PC周りの設定

MacからWinodwsへの接続

  • Windows機がHomeエディションでリモートデスクトップが使えなかったのででProへアップデート
  • Windows上で「システム設定」からリモートデスクトップを有効化
  • MacにRemote Desctop をインストールして接続
    • コンピュータ名はWindowsのマシン名の後ろに .local を付与する
      • 例: SurfacePro8.local
    • 接続用のユーザー名はコマンドプロンプトから whoami コマンドで確認出来る
      • [ドメイン名][ユーザー名] の形式で表示されるのでそれをそのまま使用する
      • 例: surfacepro8\frozenvoice
    • もしくは、MicrosoftアカウントでPCにログインしている場合はそちらのID/PassでもOK
    • 接続設定で「Use all monitors」をONにして、Mac側のディスプレイ全てをWindows側でも使えるように設定

Unity準備

インストール

  • Unity Hubをダウンロードしてインストール
  • Unity HubからUnityをインストール
    • 自分が作業した時点の最新は 2022.3.16f1 だったのでそちらを利用
  • Unity HubでインストールしたUnityに下記のモジュールを追加
    • Android Build Support
      • Android SDK & NDK Tools
      • OpenJDK

Meta Quest Developer Hub準備

インストール

実機との接続確認

  • Quest3の開発者モード有効化
    • 自分は既にImmersedを有線接続するために開発者モードをONにしているのでそのままでOK
  • WindowsPCとQuest3をUSBケーブルで接続
  • Meta Quest Developer Hub を起動
      -Device Managerのタブで 「Set Up New Device」を選択してQuest3を登録
  • 「Cast」をしてみてQuest3で見えてる映像がPC側でも見えることを確認

Step 2 VRアプリを作る

Hello World的な簡易アプリ作成

Quest3向けのプロジェクト設定

  • Unity Hubで新規プロジェクトを作成して起動
  • メニューから「File」 → 「Build Setting…」を選択して下記を設定
    • 「Platform」 で Android を選択
    • 「Texture Compression」 で ASTC を選択
    • 「Switch Platform」ボタンを押下
  • メニューから「Window」 → 「Asset Store」 を選択してAsset Storeを表示
    • 「Open Package Manager」 を押下
    • 左上「+」マークから「Add package by name…」を選択
    • com.meta.xr.sdk.core を 入力して 「Add」ボタンを押下
    • インストールが終わると「Restart Unitiy」のダイアログが出るので「Restart Editor」のボタンを押下して再起動
  • メニューから「Edit」 → 「Project Settings…」を選択
    • 左側ツリーから Oculus を選択して、右側ペインで「Fix All」ボタンと「Apply All」ボタンを押下

アプリ作成

  • 「Hierarchy」 タブから Main Camera を削除
  • 「Project」タブのツリーで Packages > Meta XR Core SDK > Prefabs を選択
    • OVRCameraRig を 「Hierarchy」タブにドラッグ&ドロップして追加
    • 「Inspector」タブの「OVR Manager」部分で 「Target Device」としてQuest 3がデフォルトだとOFFなのでONに変更
  • 「Hierarchy」タブの左上「+」マークから「3D Object > Cube」を選択
    • 動きがないと面白くないので、下記のスクリプトを作成してCubeにアタッチ

回転用スクリプト

RotateCube.cs
using UnityEngine;
using System.Collections;

public class RotateCube : MonoBehaviour {
    void Update () {
        float deg = 30.0f * Time.deltaTime;
        transform.Rotate(new Vector3(deg, deg, 0));
    }
}

Step 3 PCとQuest3を接続して実機で確認

実機で動作確認

  • PCとQuest3をUSBケーブルで接続
  • Unity上で「File」→「Build Settings…」を選択
    • 「Run Device」 で Oculus Quest 3 を選択
    • 「Build And Run」ボタンを押下

Step 4 MRアプリに変更する

パススルーを有効化して外部を表示

  • 「Hierarchy」タブに追加した OVRCameraRig を選択
  • 「Inspector」タブの 「OVR Manager」部分で下記を設定
    • 「Quest Features」部分の「General」内の「Passthrough Support」 を Supportedに変更
    • 「Insight Passthrough」 のチェックボックスを ON
  • 「Project」タブのツリーで Packages > Meta XR Core SDK > Scripts を選択
    • OVRPassthroughLayer を 「Hierarchy」タブの 「OVRCameraRig」にドラッグ&ドロップして追加
    • 「Inspector」タブの「OVRPassthroughLayer」部分で下記を設定
      • 「Placement」 を Underlay に変更
  • 「Hierarchy」タブで OVRCameraRig > TrackingSpace > CenterEyeAnchor を選択
    • 「Inspector」タブの「Camera」部分で下記を設定
      • 「Clear Flag」 を Solid Color に変更
      • 「Background」 を (0, 0, 0, 0) の黒色に変更
  • 「Build And Run」して実機で確認
    • Ctrl + B がショートカットなのでコレを使うのが楽

Building Blocksでハンドトラッキングを追加

  • Unityのメニューから「Oculus > Tools > Building Blocks」 を選択
    • 「Hierarchy」タブに Hand Tracking をドラッグ&ドロップで追加
    • BuildingBlocksのCameraRigが使われるようなので、自前で追加したOVRCameraRigを削除
    • 「Hierarchy」タブに Passthrough をドラッグ&ドロップで追加

さいごに

本当はハンドトラッキングでCudeを触れるようにしたかったのですが、まだ理解が進んでおらずそこまで実装できませんでした。

Quest3はライブラリ等も揃っているようなので、ちゃんと使いこなせればそれほど労力を掛けずにVR/MRアプリが作れそうかな?というのが現時点での印象です。
個人的な趣味としてVR/MRは興味があるので、じっくりと学習してなにかちゃんとしたアプリを作ってみたいところです。

来年にはAppleのVison Proも発売されるので、VR/MRの流れがそろそろで本格的に来てくれると良いなと願っています。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2