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

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

VIVEトラッカーとスマートフォンを連携して遊ぶ

スマートフォンを窓として使って、VR世界をのぞき込んだり、MR的な現実世界に合成できたり、VR空間のユーザーと遊べるデモプロジェクトをVIVESoftwareがソースごとあげています。
下記のGithubに上がっているUnityプロジェクトを使用し、VIVEトラッカーとスマートフォンWifiで連携させることが可能です(リポジトリにはデモの1,2が含まれております)。

こんな感じでVIVEトラッカーをスマホにつけます。
f:id:noshipu:20171008035937j:plain

できることはこんな感じで、VIVEのVRユーザーとスマホユーザーが一緒の空間で遊べたりできちゃいます。



今回はそのビルドを使って遊んでみます。

準備

ハードウェアで用意するもの

HTC VIVEと動作するPC
VIVEトラッカー 1台以上
Android6.0以上が搭載したスマートフォン端末をVIVEトラッカーの数だけ
スマートフォンとPCが同じWifi環境に接続できること

ダウンロード

以下のリポジトリからBuildsをダウンロードする。(v1.2.7zをダウンロードしました)
https://github.com/ViveSoftware/ViveTrackerExperiencePrototype/releases

PCのIPアドレスを知る

コマンドプロンプトを開き、ipconfigを実行
IPv4アドレスを取得しておく。

Androidにビルドをいれる

各プロジェクトに含まれるAPKをインストールしておく
Builds\1-ModelViewer\ModelViewerDemo.apk
Builds\2-SimpleShooter\SimpleShooterDemo.apk
Builds\3-PaintVR\PaintVRMobile.apk

デモを試してみる

  • ネットワークの認証が各プロジェクトごとにでますが全て承認してください。
  • スマホのアプリ起動時にPCのIPを入力してください。

1. ModelViewer

  • モデルを見れるデモ
  • モバイル側は現実世界の上にモデルが表示される仕様となっている


2. SimpleShooter

  • VIVEユーザーとモバイルユーザーで時間制限の撃ちあいをすることができる
  • VIVEユーザーはモバイルユーザーをVR空間でヴァーチャルなオブジェクトを狙う
  • モバイルユーザーは現実世界のVIVEユーザーを狙う
  • 真ん中の障害物はお互いに見えている状態

3. PaintVR

  • オブジェクトにスプレーで色を塗ることができるアプリ
  • VIVEコントローラーがスプレー缶になり色を塗れる
  • 一眼VRでViveコントローラーも使えそう

youtu.be

色々使いどころがありそうなデモプロジェクトでした。
VIVEトラッカーが必要なのでアミューズメントVRや、ビジネス関係VRとか、趣味プロジェクトとかで活躍しそうです。

Unity 2017.2で統合されるVuforiaを試してみる

2017.2からSDKをインポートせずにVuforiaが使えるようになるみたいです。
まだベータ版ですがVuforiaを試してみます。

今回試すのはVuforiaの公式GettingStaredのやつです。
注意事項としてまだベータ版なので、リリース非推奨かつ、将来の商用プロジェクトとして開発することも推奨していないとのことです。
こちらの記事の記載も大きく変わっていく可能性があるのでご注意ください。
https://library.vuforia.com/content/vuforia-library/en/articles/Training/getting-started-with-vuforia-in-unity-2017-2-beta.html

前提条件

Unity 2017.2.0b11
ビルドターゲットはAndroidで(iOS, UWPも選択可能とのこと)

導入していきます

Unityプロジェクト作成

以下のリンクからインストール

Unity2017.2.0b11のインストール時にVuforia Augmented Reality SupportをOnにします
f:id:noshipu:20170921212033p:plain

そのままUnityプロジェクトを作成します

Vuuforiaを有効にする

Build SettingsからPlatformをAndroidに切り替えます。
Build Settings / Player Settings /XR Settings に移動してVuforia ARをOnにします。
f:id:noshipu:20170921231202p:plain

VuforiaなObjectを配置していく

1. GameObject->Vuforia->ARCameraを追加
※インポートが促された場合、許可する
このタイミングでMainCameraも削除しておいていいでしょう。

2. ARCameraのComponentのOpen Vuforia configurationを選択

3. Datasetsを有効化しておく

4. GameObject->Vuforia->ImageでImageTargetのオブジェクトがSceneに追加される

5. ImageTargetの子供にCubeを置いてみます
f:id:noshipu:20170921232445p:plain

これで準備完了です。

試してみる

Webカメラが使えればEditorから動かすことができます


Androidビルドでも動く


まだ任意のマーカーを登録できなかったので、2017.2のベータがとれるタイミングで使えるようになったらまた触ってみたいと思います

unity-landing.vuforia.com

DaydreamでUIのMaskが効かないときの対処メモ

Daydreamでビルドした際にuGUIのMaskがきかなかった時の対処法です。

対処

PlayerSettingsのDaydreamのDepthFormatを[24bit depth | 8-bit stencil]に変更すると直ります
f:id:noshipu:20170907231526p:plain

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