デバイス向けアプリ開発セミナー」の資料を公開いたします。Immersiveデバイス向けに、Unityを使ってアプリを移植する際の落とし穴事例集をご紹介しました。ControllerをUnityで使用する際の注意点も記載しました。Immersiveヘッドセット向けにアプリ開発をする際のご参考になれば幸いです。2017.2.0f1)Immersiveヘッドセット向けアプリ開発者のみなさん、こんにちは。XVIの吉高(@TyounanMOTI)です。Editionが届いた方も多いでしょう。今回の記事では、Immersiveヘッドセット向けアプリをUnityで開発するときに陥りやすい落とし穴をご紹介します。16299.0で検証したものです。今後のUnityやWindowsのアップデートで解消される可能性があります。UpdateのWindows10では、エディタ実行時に以下のようなメッセージが出力され、真っ暗な画面が描画されます。Update以前のWindowsではUnityでImmersiveヘッドセットの開発はできないようです。Previewビルドを受け取ることでエディタ実行が可能になります。2017.2.0b8ではこの制約はありませんでした。カメラのNearClipを0.1より近くできないCameraコンポーネントのインスペクタにあるNearClipの設定を、0.1より近くできないようです。Cameraゲームオブジェクトにつけることで一応は回避できます。Viewの既定値は以下のようになっていました。102.0456単純なシーンだとちょっと見た目には判別つかないですが、一応インスペクタで変更できるようにしてあります。既定のアスペクト比が1.0でなくおかしな値になっていたので、アスペクト比は定数にしてあります。Matrixをシステム側からAPIで取ってくる仕組みなので、アプリ側で指定すると何か不都合が発生する可能性があります。一応、IPDの調整は、上記の回避方法でもWindowsの設定から変更が効くようです。原点(0,0,0)は床の表面にある原点はシーンロード時のヘッドセット位置から鉛直に下ろした線と床の交点です。Riftの既定値である「原点はヘッドセットの位置」とは異なる仕様です。Viveの既定値である「原点はRoomの中心」と似ています。TrackingSpaceType.Stationaryを設定しようとするとfalseが帰ってきて失敗します。既定の値はTrackingSpaceType.RoomScaleで、そこから変更することはできません。検証中に、TrackingSpaceType.RoomScaleが返ってくるにもかかわらず、原点がヘッドセットの位置になるときがありました。RealityポータルとUnityを再起動すると上述の状態に戻ったので、まだ不安定なのかもしれません...。UnityEngine.XR.InputTracking.Recenter関数でポジションリセットできないRecenter関数が動作しません。ユーザー操作でポジションリセットするには、シーンをリロードするしかなさそうです。RenderScaleを変えると正常に描画されないUnityEngine.XR.XRSettings.eyeTextureResolutionScaleによるRenderScale変更が正常に動作しません。今後のアップデートに期待します。Runに失敗するようになることがあります。フォルダ以外を削除してUnityを起動し直すと直ることがあります。Studioからのデバック実行に失敗します。Projectsのチェックの組み合わせを試しましたが、すべてだめでした。ReleaseやMaster構成ではデバック実行が可能です。おわりにまだ開発者版ということでいろいろと落とし穴がありますが、製品版が楽しみです。Immersiveヘッドセットはセットアップがカンタンで、コストパフォーマンスも良好。これまでより広く普及することが期待できます。盛り上げていきましょう!SHAREFACEBOOKFACEBOOKTWITTER2017.08.29はじめまして。こんにちは、XVIの吉高(@TyounanMOTI)と申します。社長の@GOROmanから、いつもどおり無茶振りをくらったのでブログ記事を書いてみます。不定期ではありますが、XVIで培った技術情報とかいろいろ書いていく予定です。他の社員も書いてくれると思います。