アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE4】Daydream第2弾・開発中につまずきそうになった情報まとめ

Daydream開発でつまずきまとめ

Daydreamの開発の中でつまずいた所と勘違いを紹介します。

第一弾でDaydreamの初期設定やボタンイベントについては、

下記リンクで紹介しています!

argonauts.hatenablog.jp

その1.StartCameraFadeが動作しない

そもそもStartCameraFadeが何かわからない人もいるかと思うので、

一応説明しておくと、簡単にFadeInやFadeOutを実装できるノードです。

f:id:yoshikata1990:20180617001601p:plainターゲットは必ず必要ですがこれだけで、画面全体にVR環境でも

画面にフェード処理を加えることができます。

しかしモバイル環境ではプロジェクトの設定により動作しないことがあります。

それは、MobileHDRがOFFの場合になります。

プロジェクト設定で「hdr」で検索して、チェックを入れてあげてください。

f:id:yoshikata1990:20180617021652p:plain

最初のプロジェクト作成の際にスケーラブルな3D・2Dを選択して作成すると、

自動的にMobileHDRがOFFになります。

f:id:yoshikata1990:20180617012840p:plain

スケーラブルな3D・2Dを選択するといろいろな設定がOFFになります。

MobileHDR以外にBloom(発光表現)やモーションブラーなどもOFFになるので注意が必要です。

f:id:yoshikata1990:20180617021244p:plain

その2.モーションコントローラーの角度とか位置とかどうとるの?

モーションコントローラーの角度などはGoogleVRMotionControllerの

コンポーネントがあるのでそこから取得するのかと思ったら、

コンポーネントが持つGetMotionControllerから取得します。

位置はGetWorldLocationで取得して、FowardVectorモーションコントローラーの前方方向の向きをとってきてます。

f:id:yoshikata1990:20180617032224p:plain

その3.公式で用意されているlaserを使用したい。

公式が用意している下の線みたいなのがあります。

これはMotionControllerの機能ではないので説明しておきます。

f:id:yoshikata1990:20180617222020p:plain

コンポーネントでGoogleVRLaserVisualというものがあり、

これで一応の表示はできます。

f:id:yoshikata1990:20180617222227p:plain

ただ、Googleの公式・UE4の公式のどちらにも説明が全く無く、

モーションコントローラーにアタッチしても追従しないので、

注意が必要です。

モーションコントローラーに追従させる場合、

私は面倒臭いことが嫌いなので必要に応じてアタッチします。

今回はこんな感じです。

f:id:yoshikata1990:20180617223334p:plain

最後に・・・まだまだできるはず・・・

GoogleVR用の説明できていないコンポーネントはあるが、

今回はここまでです。特に最後のほうはどこに説明がないので、

UE4でDaydreamを開発する人はぜひ参考にしてみてください。

【UE4】Daydream開発第1弾!!プロジェクトの作成とボタンのイベントについて

Daydreamを今更・・・購入!!

Daydreamを購入しました!!

携帯はMoto Z Proを使用しています。

・・・正直今勢いがあるのは確実にOculus goのような気がするので、

ぜひそちらを買ってみてください(簡単に試すならそっちのほうがいい!!)

Daydreamの情報が少ないので来月までDaydreamでとりあえず隔週でブログを更新できたらと思います。

今回はDaydreamの設定とMotionControllerのボタンイベントを説明します。

テスト用のプロジェクトを作成

今回は初めてなのでとりあえずからのプロジェクトからスタートします。

f:id:yoshikata1990:20180527232228p:plain

Daydream用のプロジェクト設定について

まずはAndroid開発用のファイルをインストールします。

NVIDIA CodeWorks for Android | NVIDIA Developer

Android用の設定は下記のリンクでも説明しています。

こちらをご確認ください。

UE4.14・AndroidでVRの実機プレイまでの解説

インストールと設定が完了したら、プロジェクトの設定に移ります。

まずはDaydreamを使用するためにプラグインをONにします。

使用するのは「GoogleVR」と「GoogleVRMotionController」になります。

私はGoogleで検索してプラグインを見つけました。

f:id:yoshikata1990:20180527213342p:plain

次にプロジェクトの設定を行っていきます。

まずはAndroidSDKを設定します。

今の最新のバージョンのCodeWorksをインストールした際、

PASSを指定しない場合は下記の画像と同様で問題ないです。

f:id:yoshikata1990:20180527222213p:plain

次にAndroidのプロジェクト設定を行います。

まずSDKのバージョンを24に指定します。

これはAndroidOSでVRの最適化が行われているためです。

f:id:yoshikata1990:20180527224022p:plain

続いてGoogleVRのハードウェアサポートの設定です。

昔のプロジェクトではDaydream&Cardboardという分け方でしたが、

それぞれエレメントとして追加する仕組みに変更されているので注意です!

今回はとりあえず3.3DoFのDaydream設定にしています。

DoFって何かというと取得できる動作の情報量になります。

3DoFは「Yaw Pitch roll」の動きを認識できます。

6DoFは上記に加えて、「前後・左右・上下」も追加で認識できます。

Configure GoogleVR for sustained-performance modeもONにします。

f:id:yoshikata1990:20180527230330p:plain

最後にAndroidのBuildするarm系統を変更します。

Arm64を選択してArmv7の選択をOFFにします。

f:id:yoshikata1990:20180527230918p:plain

VRのMotionController対応を行う!

DaydreamのHMD・MotionControllerに対応したキャラクターを作成します。

Pawnのブループリントを作成して、

VR用のカメラとGoogleVRを設定します。

f:id:yoshikata1990:20180528222652p:plain

上記はコンポーネントの重なりになります。

同じシーンの中にカメラとGoogleVRMotionControllerコンポーネントを設定します。

続いて、BeginPlayイベントでトラッキングする原点とカメラの高さを指定します。

ブループリント内部はこの形です。

f:id:yoshikata1990:20180528232517p:plain

公式と同じですので下記リンクに細かい説明があります。

こちらも是非チェックしてみてください!
api.unrealengine.com

各ボタンのイベントについて

Daydreamコントローラーに各種ボタンが設定されています。

とりあえずタッチパッドの上下左右のボタンとマイナスボタンを試しました。

ーボタンがShoulderというイベントで、

タッチパッドのボタンはFaceButtonというイベントで取得できるようになっています。

f:id:yoshikata1990:20180528233108p:plain

今回はプロジェクトの設定と一部ボタンの説明をしました。

タッチパッドのX軸・Y軸が取れるみたいですが、

次回詳しく説明できたらと思います!!