【UE4】Oculus Preview Appとしてアップする時にチェックしておきたいこと
はじめに
最近はVALUしたり、bitcoinを覗いたりしてます。
ビットコインアドレスを貼っておくので、面白いなとか応援したいと思ったらぜひこちらに!
— てんちょー@C92 1日目東こ34b委託 (@shop_0761) 2017年8月2日
3Di3c7jmrvgvioW52GEF1prEkcydyRYbVT pic.twitter.com/duhz3AxKKn
そしてめちゃ安かったので買ってしまった…
しょえるやつが来ました pic.twitter.com/0xcrOaGKXo
— てんちょー@C92 1日目東こ34b委託 (@shop_0761) 2017年7月28日
ついさっきRiftのセットアップをして、HoloStickyの前のVRStickyで動作チェックしようと思ってゴニョゴニョしてました。
いろいろ面倒でPreview Appにしてしまえと思ったら、久々にやってハマったところがあったのでメモついでに。
HoloStickyはこちら。
てんちょー@C92 1日目東こ34b委託 on Twitter: "⚡️ "HoloStickyを作るまで" #HoloSticky https://t.co/VVfP3jflEr"
やること
- entitlement checksを実装する
- VR Modeで起動するようにする
- Steam VR Pluginを切る
の3つです。
entitlement checks
なんじゃこりゃ。 こちらを読んで下さい。
端的にまとめると、
- Online Platform → Online SubSystem Oculus プラグインを有効に
- プロジェクト名\Config\DefaultEngine.ini に追記
- Verify Entitlement ノードの追加
です。2つ目の追記事項はこんな感じ そのまま1番下に追加すればいいはず。 OculusAppIdに関してはDeveloper Dashboardで配布用アプリの設定をしてから、https://dashboard.oculus.com/application/“ココ!!”/build のココの部分にある数字の列をコピペしてください。
[OnlineSubsystem] DefaultPlatformService=Oculus [OnlineSubsystemOculus] bEnabled=true OculusAppId="IDを入れる"
そしてVerify Entitlement ノードはこんな感じ。どこでもいいのかなこれ。 今回はMotionControllerPawnを使っているので、そのBeginPlayにはさんでます。
LatentノードなのでOn SuccessとOn Failure時の処理を決められます。とりあえず元の処理を一番上に繋いでいます。 今回は適当にFailureだったらQuit Gameしてるだけなので、大したことはないです はい。
VR Modeで起動
エディタで実行テストしてると普通にVR Previewできちゃうので忘れがちですが、普通にパッケージングしてもVR Modeにはなりません。 ので、Execute Console Commandを仕込む、起動時に引数でVR Modeにするなどあるかと思います。 けど、面倒いので1番簡単そうなStart In VR にチェックをいれました。
Project Settings → Description の下の方にあります。
ここにチェックを入れるとVR Modeで起動してくれます。
Steam VR Pluginを切る
ここまでの2つは実際大したことないのでアレなんですが、これが盲点というか仕様変更があったのかな…?(前はなかった
このPluginが生きているとPackaging後の WindowsNoEditor\Engine\Binaries\ThirdParty 以下にOpenVR のフォルダが出来ます。これがあるとアップロード時に弾かれます。 忘れたまま一度PackagingしてしまうとPluginを切ったとしても残骸として残っている可能性があります。一応確認しましょう。
ただVR Templateから持ってきたMotionControllerPawnなどを使っているとSteamVR Pluginありきの実装になっている部分が一部あるので、 Pluginを無効にしても大丈夫かチェックする必要があります。
今回はMotionControllerPawnの場合で簡単に説明します。というよりMotionControllerですね。
こんな感じでSteamVRChaperoneがついてるので、こいつを消したい。 SetupRoomScaleOutline関数で使っているので消しておきます。
忘れずにコンポーネントも消しておきましょう。
するとGetBoundsが空になるので、適当に配列を間に合わせで入れておけばセーフw
Oculus Riftでも境界線を出したい…そんな時もあるかもしれません…そんな時は!
【夏コミ告知2】著・てんちょーさん(@shop_0761 )の「VRてんぷれーとを読んでみた本」の表紙を描かせて頂きました!スペースは1日目東こ34bです、よろしくお願いします! pic.twitter.com/j04QDrJJMo
— せんちゃ (@ukiukisoda) 2017年7月21日
これに書いてます!!買ってね!! alweiさんのブースに委託させていただいているので、当日はそちらにいます。 紙とPDF版を用意していて、PDF版は後日どこかで頒布しようかなーと思っていたり。
まとめ
最後は急に販促的になりましたが、概ねこんな感じでアップロードできるかと思います。 どれもエラーを追いかければなんとかなりますが、事前に知っておくと便利かもしれないですね!
おまけ
ちなみにアップロード時はzipにするんですが、こんな感じにしてVRStickyのフォルダをzipにしてます。
こうするとDashboard側でのLauche Fileのパスはこうなります。
VRSticky/WindowsNoEditor/VoiceRecognition.exe
最初は WindowsNoEditor/VoiceRecognition.exe にしてましたが、多少勝手に補完してくれるようです。