UE4+Google Cardboard開発メモ(Daydream対応)
最終更新日:2017年01月03日
UE4でGoogle CardboardおよびDaydream対応アプリを開発する方法やTipsをまとめています。Daydreamって何? という方はDaydreamメモを参照してください。
更新履歴
(2017年1月3日)UE4.14.1で(最低限)確認
(2016年8月21日)目次の追加と整理
(2016年6月21日)記述を整理、Scanline Racingの解説を追加
(2016年6月14日)Common Tools for Visual C++ 2015の説明を追加
(2016年6月9日)最低限ビルドするところまでメモ
UE4でGoogle Cardboardアプリを作るには
UE4のGoogle Cardboard対応について
Unreal EngineにはGoogle VRプラグインが標準で搭載されています。このプラグインでGoogle CardboardアプリおよびDaydreamアプリが作成できます。
なお、iPhoneではUE4.13以降が必要です。まだMacでしかビルドが通らず、テクスチャがぼやける等さまざまな問題があるようです。
Android向けにビルドするには
新規プロジェクトを作成します。まずは、プロジェクトウィザードで「空のプロジェクト」を「モバイル / タブレット」「スケーラブルな3D・2D」「スターターコンテンツ無し」で作成してください(スターターコンテンツがあるとビルドに非常に長い時間がかかります)。
Google VRプラグインの有効化
Google VRプラグインを有効化します。ツールバーの設定>PluginsでVirtual RealityのGoogle VRのEnabledをチェックして、右下の「Restart Now」で再起動してください。
Android SDKのバージョンの変更
プロジェクト設定で「プラットフォーム - Android」のタブを開きます。赤いバーが2箇所に出ていると思いますので、それぞれ「今すぐ設定」をクリックします。
マップを保存して、「起動」でAndroidデバイスを選択すると、Android端末で左右両眼の表示で立ち上がるはずです。
パッケージ化するときは、プロジェクト設定の「マップ&モード」のGame Dedault Mapにマップを設定し、ファイル>プロジェクトをパッケージ化>Androidで「Android (すべて)」を選択してください。出力先フォルダをエクスプローラーで開いてバッチファイルを実行するとアプリが端末に転送されます。
Daydreamデバイスの低遅延モードを有効化
DaydreamデバイスにはScanline Racingという機能があり、フロントバッファへの描画によってVRモードでトラッキングの遅延を低減できるようです。
「プラットフォーム - Android」タブで「Support arm64 [aka arm64-v8a]」をチェックします。その下のAdvanced APKPackagingで「Configure GoogleVR for low-latency rendering mode (scanline racing)」をチェックします。
開発Tips
バーチャルスティックを消すには
プロジェクト設定の「エンジン - インプット」を開いて、Default Touch Interfaceの「DefaultVirtualJoysticks」をクリアしてください。
アンチエイリアスをかけるには
フォーラムのこのスレッドを参照してください(まだ試せていません)。
Daydreamで「r.MobileOnChipMSAA=1」とすると2x MSAAがかかるようです(未テスト)。
Daydreamのモーションコントローラーに対応するには
設定>Pluginsで、Google VR Motion Controllerプラグインを有効化してください。ブループリントで右クリックして「MotionController」と入力すると関連するノードが出てきます。
また、以下のページに詳しい説明があります。
その他
Daydreamアプリをストアにリリースするには?
Daydreamのローンチ時点では、アプリをリリースできるのはDaydream Access Programの加入者に限定されるようです。通常のGoogle Playストアと異なり、VR体験が快適かどうかの審査が入るようです。