Edited at

Oculus Platform SDKのサンプルアプリVRHoopsをOculus Goで動かす


はじめに

VRHoopsはOculus公式のサンプルVRアプリで、バスケ風の動くゴールにボールを入れて点数勝負をするというゲームです。

Sample Appsに軽く説明がありますが、P2Pで他のユーザとマッチング(Matchmaking)できて、オンライン対戦できます。

さらにOculusプラットフォームの機能である、Leadersboards(ランキング)やAchievements(トロフィー)も実装しています。

基本的にはREADME通りに動くのですが、ちょこちょこはまったのでチュートリアル形式でまとめておきます。


手順


前提

UnityとAndroid SDKはインストール済み。


1. Oculus Platform SDKをダウンロード

Oculus Platform SDK | Developer Center | Oculusからダウンロードします。

解凍して /OVRPlatformSDK_vX.XX.X/Samples/Unity/VrHoops を適当なフォルダにコピーします。


2. Unityで開きます

Unityで /OVRPlatformSDK_vX.XX.X/Samples/Unity/VrHoops を開きます。


3. OculusPlatform SDKをインポート

[Assets] > [Import Package] > [Custom Package]から /OVRPlatformSDK_vX.XX.X/Unity/OculusPlatform.unitypackage をインポートします。


4. Androidプラットフォームに切り替え

[File] > [Build Settings]を開き、[Android]を選択し、[Switch Platform]をクリックします。

右側の設定はスクリーンショットのようにしてください。


5. Player Settingsを変更

先程の[Switch Platform]ボタンの右の[Player Settings]をクリックします。

[Resolution and Presentation] > [Orientation] > [Default Orientation]を Landscape Leftに設定

[Other Settings]の以下3箇所を修正します。


  • [Package Name]: 一意な名前に(com.xxxx.sample.VrHoopsみたいな)

  • [Minimum API Level]: Android 5.0 'Lollipop' (API Level 21)

  • Install Location: Automcatic

[Publishing Settings]の[Create a new keystore]にチェック。

以降の手順はUnityでGoogle Play公開用のAPKをビルドする方法を参考にしてください。(キャプチャ取り直すのが面倒なので^^;)


6. Oculus Developer Dashboardでアプリを作成



  1. Oculus Developer Dashboardを開き、[新しいアプリを作成]をクリック。


  2. プラットフォームを選択で Mobileを選択。

  3. 適当なアプリ名(VRHoopsなど)をつけて保存。

  4. アプリIDをコピーします。(後から確認するときは[Manage]>[団体名]>[アプリ名]>[APIについて]から確認できます。)


7. UnityにOculus Platformの設定

Unityに戻り、メニューから[Oculus Platform] > [Edit Settings]を開きます。

[Gear VR App Id]に先程コピーしたアプリIDをペースト。

[Unity Editor Settings]の[Test User Email]/[Test User Password]にOculusアカウントを入力し[Login]ボタンをクリック。

※Facebookでログインしていてパスワードを設定していない方は、マイプロフィールからパスワードを設定してください。


8. Matchmakingの設定


  1. Oculus Dashboardで[Manage]>[団体名]>[設定]>[アプリグループ]>[アプリ名(App Grouping)]>[ルームとマッチメイク]を開く。

  2. [プールを作成]をクリック。

  3. 以下を入力。


    • プールキー: NORMAL_QUICKMATCH

    • モード: Quickmatch

    • 最小ユーザー数: 2, 最大ユーザー数: 3

    • スキルプール: なし

    • 応答時間を考慮しますか?: いいえ



  4. [保存して展開] をクリック。

※詳細はVRHoopsフォルダ内のREADMEを見てください。


9. Leaderboardsの設定

VRHoopsではLeaderboards機能でプレイヤーのスコアをランキングします。勝利数ランキングとハイスコアランキングです。


  1. Oculus Dashboardで[Manage]>[団体名]>[設定]>[アプリグループ]>[アプリ名(App Grouping)]>[リーダーボード]を開く。

  2. [リーダーボードを作成]をクリックし、以下のように入力して作成します。


    • API名: MOST_MATCHES_WON

    • 並び順: 数値が大きいほど良い



  3. もう一つ作成します。


    • API名: HIGHEST_MATCH_SCORE

    • 並び順: 数値が大きいほど良い




10. Achievementsの設定

10賞するとトロフィーを上げるように設定します。


  1. Oculus Dashboardで[Manage]>[団体名]>[設定]>[アプリグループ]>[アプリ名(App Grouping)]>[アチーブメント]を開く。

  2. [アチーブメントを作成]をクリックし、以下のように入力して作成します。


    • API名: LIKES_TO_WIN

    • タイトル: 10勝達成

    • 説明: 10勝するとゲットできるよ。

    • 書き込みポリシー: Client Authoritative

    • アチーブメントを非表示にしますか?: チェックしない

    • タイプ: カウント

    • ターゲット: 10




11. apkファイルをビルド

Unityで[File] > [Build Settings]を開き、[Build]ボタンをクリックし、apkファイルを作成します。


12. Oculus Dashboardでapkファイルをアップロード

Oculus Developer Dashboardで、[Manage]>[団体名]>[アプリ名]>[ビルドを管理]から[ビルドをアップロード]をクリック。

ALPHAチャンネルの[・・・] > [新しいバイナリをALPHAにアップロード]をクリック。

[ファイルを選択]で先ほど作成したapkファイルを選択。


13. テストユーザを追加

Oculus Developer Dashboardで、[Manage]>[団体名]>[アプリ名]>[ビルドを管理]からALPHAチャンネルのユーザの追加ボタンをクリック。

自分やテストしてほしい他のユーザのOculusアカウントのメールアドレスを追加。

招待メールが届くので承認します。


14. Oculus Go実機にインストール

ここまでの手順を踏むと、Oculus Go実機で[検索]で「VRHoops」(Dashboardで付けた名前)と検索すると、VRHoopsアプリが見つかりますので、ダウンロードします。

インストールされると通常通りマイアプリに追加されますので、起動できるようになります。

招待したテストユーザにも同じ手順でインストールしてもらいましょう。


15. 動く

※VRHoopsはOculus Go用のアプリではないので、普通のOculus Goアプリと違って視線でポインター操作をします。

[Practice]をクリック?すると一人でゲームができます。


16. Oculus Platform SDKの機能を試す

Matchmaking、Leaderboards、Achievementsの機能を試すには、もう一台Oculus Goが必要です。

二人とも[Play Online]をクリック?するとMatchmakingの機能で二人で一緒にプレイできます。

以下のようにLeaderboardsもちゃんと機能してランキングが表示されています。

Achievementsは10勝しないと取れないので(設定変えればいいんですが)、試してませんがきっと動くでしょう。


終わりに

特にコード解説はしませんが、VRHoopsはこの辺のOculus Platform SDKの機能を実装するにはいいサンプルだと思います。

コピペテックという取り組みはじめました。いくつかOculus Goチュートリアルを書いているのでよかったらご覧ください。

* 3時間でできるはじめてのOculus Goプログラミング「VRブロック崩し」

* Oculus Goで動くVR脱出ゲームをUnityで作ろう