たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

知識0から始めるOculus Go開発

Oculus Go欲しい!買った!
…Oculus系のVR、開発したことないやん…。開発環境やプラットフォーム知らない…。
この記事は、そんな人がOculus Goアプリを0から開発した記録である。

早見表

about description
ストア Oculus Store (steam: ×)
基本環境 Android N
開発プラットフォーム Unity, Unreal, Oculus Mobile SDK(C++)
Web maybe OK (browser: webVR-ready "Oculus browser")
特別な機能 FFR, throttling, 72Hz mode

Store

Oculus Go (以下、OG)にはストアがあるのか? Steamとか使えるのか??

=> Oculus storeがあるよ。Steamは使えないかな

Oculus storeは、Oculusのハードウェア・ソフトウェアを売ってるサイト. (名前合ってるのか?)
OGもここから買えたよ

開発プラットフォーム・開発環境

Unityは使える? (使えないはずないよな……?)

=> これらが開発プラットフォーム1

Oculus Mobile SDKC++とのこと。
素直にUnity, UEを開発環境/プラットフォームとするのが良いかな

Webは?

ブラウジングは出来る? A-frameとかのwebVRは?

=> ブラウザあるよ。webVRも使えるよ。でもちょっと微妙な点が
標準搭載とのこと

Oculus Browser

Oculus StoreにOculus Browserがある.
これと同じかは分からないが、標準搭載とのこと 2
しかし、OG非対応…?

Unsupported Device: Oculus Go
Oculus Browser | Oculus
webVR対応
Enjoy super sharp text, images, and videos of existing 2D websites, as well as amazing performance of new 3D WebVR content.

他のブラウザ

あるのかな?
=> ストアからは見つからんかった…

特別な機能は?

なにか特別な機能があるのかな

=> あるよ!

  • Fixed Foveated Rendering : 領域ごとに解像度を変え、GPUを節約
  • Dynamic Throttling : 性能制限…だと思う
  • 72 Hz mode : 通常設定60Hzからブースト

Fixed Fove

固定 中心窩 レンダリング。そのまんまだね
人の目は、中心窩(Fovea)と呼ばれる中央領域で解像度良く見えるように設計されてる。
いわゆるFoveated Renderingは、eyeトラッキングを使って、中心窩へ映る画面を推定し、そこの解像度だけ上げよう、という技術。
Fixed Foveは、ユーザーの視点が決まってる(Fixed)と仮定して、アイトラッキングなしで解像度に差をつける仕組み.
ようは事前指定した領域ごとに解像度を変えるってことね
www.google.co.jp

実開発

公式。Unityでアプリビルド・デプロイ
developer.oculus.com

OGはAndroid N ベース3
カスタムがなされているとか。4

めちゃくちゃ簡単.
ほぼbuild&run押して終わり

環境構築/初期設定

Preparing for Mobile Development
Device Setup - Oculus Go

  • Android開発環境の準備
    • Android SDKのセットアップ
    • (開発機がWinの場合) USB経由のAndroid device認識セットアップ
  • Go実機デプロイの準備
    • Oculus Developer DashboardでのOrganization作成
    • Developer Modeをオン (スマホアプリから)
    • (開発機がWinの場合) Oculus Go ADB Driverのインストール

adb / Android Debug Bridgeの利用

開発機からOGへデプロイする際に、adbを利用する.
adb利用にはDeveloper Modeをオンにする必要があり、さらにそのためにOculus Developer DashboardでのOrganization作成が必要 (作成は任意の名前入れてNDAに合意するだけ)5

osig / Oculus Signature Fileは不要

モバイル開発ページにはosigが要ると書いてある6が、Goには不要7
ストア提出時には消す必要もある8し、むしろ無いべき

開発ガイド

公式

developer.oculus.com

“Oculus Go 開発” @Google検索

開発記事なし!! みんな書こう!!

Unity公式

こんなのUnityとOGで作ったぜ
blogs.unity3d.com

私への支援

「お、良い記事だな。応援したろ」という方、Pixiv FANBOXでのご支援お待ちしてます!
www.pixiv.net

change log

v0.1.0 : 2018-05-02T06:00+09:00 早起きしたらF8で発売発表されたので、ノリでGoを注文、何もわからんので記事を書いた
v0.2.0 : 2018-05-02T09:00+09:00 実開発の手順を追記
v0.3.0 : 2018-05-02T17:00+09:00 PixivFANBOX始めてみた
v0.3.1 : 2018-05-02T17:00+09:00 参考文献の脚注行き、早見表の追加
v0.4.0 : 2018-05-04T10:00+09:00 ブラウザ標準搭載に訂正
change logはsem. ver. (X.Y.Z)で、Xを記事全体のリライト, Yを個別節のリライト, Zを内容を変更しないリライトとしています。


  1. > We recommend developing for Oculus Go and Gear VR with the following tools. Everything You Need to Know To Develop for Oculus Go | Oculus

  2. > However, turning on access to adb to push application builds to an Oculus Go device requires “Developer Mode” be turned on, which in turn requires that you have created an Organization on the Oculus Developer Dashboard.

  3. > Your application must include an Oculus Signature File or osig. Building Mobile Applications

  4. > We recommend removing your Oculus Signature File before building your application for submission. Building Mobile Applications

  5. > Note that Oculus Go applications do not require “osig” files to run on retail devices. Everything You Need to Know To Develop for Oculus Go | Oculus