Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Windows Mixed Reality アプリ開発 ベストプラクティス

5,367 views

Published on

2017/10/02, 06に開催されました Windows Mixed Reality開発者セミナー での、XVIによる発表資料です。
Unityを使って、Oculus Rift向けコンテンツをImmersiveヘッドセット向けに移植する際の落とし穴を紹介しました。
また、Motion ControllerをUnityで使う際の注意点も紹介しました。

Published in: Technology
  • Be the first to comment

Windows Mixed Reality アプリ開発 ベストプラクティス

  1. 1. Windows MR アプリ開発 ベストプラクティス XVI Inc.
  2. 2. 自己紹介 株式会社エクシヴィ代表取締役 近藤 義仁 Oculus Japan Teamの立ち上げに参画 個人でもVR/MRアプリを開発 twitter: @GOROman 同リードオーディオプログラマー 吉高 弘俊 Mikulusの音で光るヘッドホン実装 Unity/UE4プラグインを主に開発 twitter: @tyounanmoti
  3. 3. 会社紹介 株式会社エクシヴィ 2010年創業 主な業務内容 VR/AR/MR の企画・開発・配信・コンサルティング
  4. 4. xvi.co.jp
  5. 5. 本日のアジェンダ ・MR ヘッドセット移植への道 ・Motion Controller をつかってみた ・質疑応答
  6. 6. Immersive 没入型 大事なのことは「プレゼンス」
  7. 7. MR ヘッドセット移植への道
  8. 8. デバイスの違いを知る Oculus Rift & HTC Vive 外部センサーが必要 Windows MR Headset センサーは不要!
  9. 9. Unityで開発されたVRアプリケーション Oculus Rift/Vive用を実際にMR ヘッドセットへ移植
  10. 10. Unityの設定 これは簡単!!!!! と思いきや。。。
  11. 11. 試した環境 ● Mixed Reality 推奨PC ○ (GeForce GTX 1080) ● Windows Build 16299.0 ● Windows Insider SDK Preview 16288 ● Visual Studio 2017 Version 15.2 (26430.14) Release ● Unity 2017.2.0f1 (RC1)
  12. 12. Unityのカメラ 基本的にはMain Cameraが そのままMR内のカメラとして動く Editor 上の再生でPreviewも可能に
  13. 13. MR開発 落とし穴
  14. 14. Near Clipを約0.1未満に できない
  15. 15. Near Clipとは キャラクターの顔などが 欠けてしまう。。。 VRにとって致命的
  16. 16. Near Clipを0.01に設定するには… 投影行列を直接いじる var projection = Matrix4x4.Perspective(fieldOfView, 1440.0f / 1440.0f, nearClip, farClip); main.SetStereoProjectionMatrix(Camera.StereoscopicEye.Left, projection); main.SetStereoProjectionMatrix(Camera.StereoscopicEye.Right, projection); (Unity2017.2.0f2 MRTPでは表示がバグる…) 裏技
  17. 17. Recenterできない
  18. 18. Recenterできない シーンロード時に位置リセットされる →位置リセットするにはシーンリロードが必要
  19. 19. (0,0,0)をヘッドセットの位 置にできない
  20. 20. (0,0,0)をヘッドセットの位置にできない TrackingSpaceTypeをStationaryに変更できない Unity2017.2.0f2 MRTPでは修正済み!
  21. 21. SinglePassにできない
  22. 22. RenderScaleを変更 できない
  23. 23. RenderScaleを変更できない UnityEngine.XR.XRSettings.eyeTextureResolutionScaleが効かない
  24. 24. Win32では使えてたけど、 UWPでは使えないAPI がある
  25. 25. 移植が必要なAPIがある よくハマるのは… ● System.Threading.Threadがない ○ System.Threading.Tasksへ移行 ● System.Net.Sockets.TcpClientなどがない ○ Windows.Networking.Sockets.StreamSockets系へ移行 ● System.Console.WriteLineがない ○ System.Diagnostics.Debug.WriteLineへ移行
  26. 26. ASW的なのがない?
  27. 27. ASW的なのがない? フレーム落ちがダイレクトに影響する ● ポジショントラッキング ● ジャダー ● …
  28. 28. Tips ● OculusとImmersiveヘッドセットは同時に使える ○ OculusをDisplayPort->HDMI変換して接続する ● Fall Creators UpdateではIntel HD Graphicsでも動作する ○ 60fps ○ RenderScaleが低い ○ 視野角が少し狭い ● 立体音響はMS HRTF Spatializerを使える
  29. 29. Motion Controller をつかってみた
  30. 30. Motion Controller の違い Oculus TouchやVive Controllerとの違い Touchのようなハンドジェスチャは難しい インサイドアウトトラッキングのため、範囲外はトラッキングを失う!
  31. 31. Motion Controller https://developer.microsoft.com/en-us/windows/mixed-reality/motion_controll ers
  32. 32. Motion Controller のココがスゴイ! 机の上に立つ!! 振動が強い!!
  33. 33. Mixed Reality Toolkit https://github.com/Microsoft/MixedRealityToolkit-Unity
  34. 34. Motion Controller を描画するには? https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/Dev_Unity_2017.2 .0 Unity2017.2.0f1(RC) https://unity3d.com/jp/unity/beta/unity2017.2.0f1 Windows Insider SDK Preview https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewSDK
  35. 35. Motion Controller を振動させるには? MRTKのHapticsTest.cs エディタでは動作しない Windows.Devices.Haptics.SimpleHapticsControllerを使っている
  36. 36. Motion Controller 落とし穴
  37. 37. Windows Insider SDK Previewを 入れてないとクラッシュ
  38. 38. PC Standalone向けに実行すると クラッシュ
  39. 39. エディタ実行では コントローラが描画されない
  40. 40. エディタ実行では 一度Homeに戻らないと コントローラが認識されない
  41. 41. Motion Controller TIPS ・電池残量を見るには? ・エネループが使える
  42. 42. その他関連情報 https://forums.hololens.com/categories/questions-and-answers-immersive
  43. 43. デモ @hecomi さんのVrGrabberを移植 https://github.com/XVI/VrGrabber (hecomiさんgithubでもマージ済み!)
  44. 44. 質疑応答
  45. 45. ありがとうございました!

×