のしメモ アプリ開発ブログ

Unityアプリとかロボットとか作ってるときに困ったこととかメモ

Instant PreviewでDaydreamアプリ開発を効率化する

こんな感じにビルドせずに実機で動作が見れます

GVRを利用したプロジェクトにInstant Previewを取り込むと、ビルドせずに実機で動作を確認することが可能になり、UnityEditorのランタイム上で色々調整ができるようになります。
シェーダーや実際のVRでの見え方の調整ではとても重宝しそうです。

導入は以下です。

Instant Previewのマニュアルはこちら
https://developers.google.com/vr/tools/instant-preview

既にGVRを使用しているUnityプロジェクトを対象に説明していきます。
UE4でもできるみたいなので、マニュアル参考にしてください。

1. Instant PreviewのUnityパッケージのインポート

下記のリンクからダウンロードします。
https://github.com/googlevr/gvr-instant-preview/releases
使用しているGVRのバージョンに合わせてunitypackageをダウンロードします。

今回使用していたGVRのバージョンが1.7だったので、"InstantPreviewForGVRUnitySDKv1.70.0.unitypackage"をダウンロードしました。
ダウンロードが終わったらプロジェクトにインポートします。

2. Prefabを配置

Assets/InstantPreview/GvrInstantPreviewMainをScene上に配置します。
Hierarchyを見ると各種設定項目があります。
f:id:noshipu:20170907165316p:plain
このScriptでadbコマンドを経由してInstantPreviewのアプリを自動的にインストールされます。

3. 実行する

Unityで再生を押すとアプリがインストールされます。
設定でWifi経由に変更することや、コントローラーのみを同期させることも可能なようです。
f:id:noshipu:20170907172602j:plain:w320

アプリがインストールされると実機側でデバッグできるようになります。

ストリーミングのパフォーマンス向上

Edit -> Project Settings -> Qualityから[V Sync Count]を[Don't Sync]に設定します。

その他の情報等については公式マニュアルを確認してください
https://developers.google.com/vr/tools/instant-preview

UnityでDaydream用の360度立体画像を作成する

DaydreamでGooglePlayに登録時に360度の立体画像が必要になります。
f:id:noshipu:20170818191555p:plain

今回はその画像の仕様と実際に撮影する方法をメモしておきます。

どこに使われるのか

Daydream端末のGooglePlayストア内に掲載されるアプリの背景画像になります。

360度画像の仕様

画像形式 EquirectangularのTop to Bottom形式
解像度 4096 x 4096 ピクセル
サイズ 15MB以内
ファイル形式 png or jpeg pngを推奨
透過情報 アルファなし

☆ 注意点

・正面にロゴ等を置いてもストアの情報で隠れるので注意が必要。
・プラットフォーム側でレンダリングされたUIとの奥行が衝突しないようにシーン内のオブジェクトをカメラから2.5m以上離れて撮影する必要がある
・ステレオ映像でなくても登録はできそう

背景素材の作り方

# WindowsでUnityを使って開発しているアプリを想定しています。

1. 360度撮影できるAssetをインポート

360度パノラマ画像を撮影する際に使用するメジャーなAssetですと下記があります。
(2017/8/21現在)

タイトル 価格 URL
360 Panorama Capture 無料 https://www.assetstore.unity3d.com/jp/#!/content/38755
SphericalImageCam $32.40 https://www.assetstore.unity3d.com/jp/#!/content/21979
VR Panorama 360 PRO Renderer $52.92 https://www.assetstore.unity3d.com/jp/#!/content/35102

今回は無料で使える360 Panorama Captureを紹介します。

2. TargetPlatformをPC Standaloneにする

Windows環境のStandalone選択状態で実行が必要になります。
Daydreamのプロジェクトだとモバイル依存の箇所でエラーがでたりするので、別プロジェクトに切り分けたりするのもありかもです。

3. 空のGameObjectを作成し、CapturePanorama.csをアタッチ

4. CapturePanoramaのパラメータを設定

・Capture StereoscopicをONに設定
・Panorama Widthを4096に設定

5. Unityを再生し、Pキーを押す

撮影され、プロジェクトフォルダの中に撮影された画像が入る。
Top to Bottom形式のステレオパノラマ画像が撮影できたので、GooglePlayに登録することができます!

もし視差なしの画像を用意するのであれば、Capture StereoscopicをOffにして撮影した画像を画像編集ツールを使って上下で2枚つなげれば、視差なしの画像を登録することができます。

360度の背景が必須画像であれば、OculusのようにGoogleVRの中にキャプチャのツールもSDKに含まれているとありがたいですね。

Android実機でReflection Probeが動作しない時の対処メモ

リアルタイム更新のReflection ProbeをAndroid実機にビルドした際に上手く動かなかったので対処をメモ

対処方法

QualitySettingsの[Realtime Reflection Probes]にチェックが入っていなかったのが根本的な問題でした。

他の対処としてはOpenGL2.0で動作しているといくつか問題があるみたいなので、OpenGL3.0で動かすと安定しているみたいです。