5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ゼロから始めるVR開発 ~実機でのテストまで~

Last updated at Posted at 2020-02-15

はじめに

開発したことのない、Unity自体使ったことのない知識ゼロの私がVRアプリを開発する記録。
やっていて少しでも引っかかったところがあれば記載していきます。
自分がやったことの見直しのための記事ですが、何もわからない状態の人が参考になれば幸いです。

開発環境

  • Unity Hub 2.2.2
  • Unity 2019.2.1f1
  • Oculus Quest 64GB
  • MacBook Pro(2017) 10.14.6

Unityのインストール

UnityHubを使うとUnityのバージョン管理ができるらしい。
とりあえずUnityの最新版をインストールした。

OculusUnityのスタートガイド

スタートガイド
https://developer.oculus.com/documentation/unity/book-unity-gsg/

まずは何をどうすればいいのかわからない状態だったので、とりあえずチュートリアルを何も考えず手順通りこなす。
私はOculusQuestのため、OVRManagerのインスタンスを変更した。
OVRManagerはOVRCameraRigインスタンスにアタッチされているのでTarget DevicesをQuestに変更する。

チュートリアルをこなす

Oculus Unityスタートガイド

プレイヤーへのコントロールスクリプトの追加の際にPlayerControllerの名前についたファイルが存在しているため別の名前をつけた。
スクリプトの速度の設定を忘れないようにする。

Playをすると以下のエラーが出た。
NullReferenceException: Object reference not set to an instance of an object OculusSampleFrameworkUtil.HandlePlayModeState (UnityEditor.PlayModeStateChange state) (at Assets/Oculus/SampleFramework/Editor/OculusSampleFrameworkUtil.cs:43) UnityEditor.EditorApplication.Internal_PlayModeStateChanged (UnityEditor.PlayModeStateChange state) (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:415)

以下のサイトで見る限りは対処法は不明。問題の行のをコメントアウトしてひとまず誤魔化す。
一通りやってはみたものの作ったアプリをOculusに持って行って動かす方法は書いていなかったため対処方法を探す。

開発モードをオンに

Oculusの初期設定の際にスマホにインストールしたOculusアプリから設定->OculusQuest->その他設定->開発者モードをオンに
初めての場合開発者登録が必要のため登録する。
充電に使うUSB-CケーブルでPCと接続すると許可ウィンドウがQuest側で出るので許可する。

JDK・SDKのインストール

OculusQuestはAndroidベースなのでJDK・SDKをインストールする。
スクリーンショット 2020-02-15 13.21.27.png

ビルドする

ビルドして続行してみたところ4つのエラーが出た。

BuildFailedException: The Vulkan Graphics API does not support XR in your configuration. To use Vulkan, you must use Unity 2019.3 or newer, and the XR Plugin Management. OVRGradleGeneration.OnPreprocessBuild (UnityEditor.Build.Reporting.BuildReport report) (at Assets/Oculus/VR/Editor/OVRGradleGeneration.cs:104) UnityEditor.Build.BuildPipelineInterfaces+<>c__DisplayClass15_0.<OnBuildPreProcess>b__1 (UnityEditor.Build.IPreprocessBuildWithReport bpp) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:411) UnityEditor.Build.BuildPipelineInterfaces.InvokeCallbackInterfacesPair[T1,T2] (System.Collections.Generic.List1[T] oneInterfaces, System.Action1[T] invocationOne, System.Collections.Generic.List1[T] twoInterfaces, System.Action1[T] invocationTwo, System.Boolean exitOnFailure) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:391) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:187)
Vulkan Graphics APIは使えないようなのでOPenGLES3の優先度を上げれば消える。
Build Settingsのプレイヤー設定のその他設定から変更できる。

UnityException: No Android devices connected Make sure your device is plugged in. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:187)
アンドロイドの端末が接続できてねーぞ、とのこと。
開発者モードがオンになっているのを確認した上でもう一度USBデバッグの許可をしたら消えた。

残り二つは上記2つのエラーを直したら消えたので省略。

動かしてみた

com.hakoniwaoden.VRSample-20200215-163059.jpg
ひとまずチュートリアルのプロジェクトを実機にて動作確認することができた。

com.oculus.vrshell-20200215-163023.jpg
ビルドしたアプリはOculusのナビゲーション->ライブラリ->提供元不明のアプリから選択することで動作するようになった。

その他参考になった記事

Oculus Quest に Unity で開発したアプリをいれる方法(Mac/Win)

はじめてのOculus Quest 開発 with Unity

最後に

次はユニティちゃんを動かしてみたい。

5
6
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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?