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.

.NET Conf 2018 Tokyo MixedRealityなシステムを気持ちよく開発しよう

30 views

Published on

.NET Conf 2018 Tokyo に登壇したときの資料

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

.NET Conf 2018 Tokyo MixedRealityなシステムを気持ちよく開発しよう

  1. 1. Mixed Realityなシステムを 気持ちよく開発しよう! 山中 大輔 HoloLab Inc.
  2. 2. 自己紹介 山中大輔 Twitter:@dy_karous Blog:http://blog.d-yama7.com/ 株式会社ホロラボ所属 HoloLab Inc.
  3. 3. 今日お話しすること HoloLab Inc. Mixed Realityとデバイスを連携させた システムの開発ノウハウを 事例を交えながらご紹介
  4. 4. 会社紹介 HoloLab Inc. 株式会社ホロラボ 事業内容 Windows Mixed Reality他、xR技術やセンサー技術に関する ・調査研究 ・システム/アプリケーションの企画開発 ・普及啓発活動 設立 2017/1/18 住所 東京都品川区西五反田2-25-1 インテックス五反田ビル3F 取締役 5名 従業員 16名 Web http://hololab.co.jp/
  5. 5. Mixed Reality×デバイス
  6. 6. ホロラボ開発事例 ドローンセンサー
  7. 7. HoloLensとセンサー HoloLab Inc.
  8. 8. HoloLensとドローン HoloLab Inc.
  9. 9. 構成パターン HoloLab Inc.
  10. 10. Mixed Reality×デバイス ⬇︎ 広がる未来
  11. 11. しかし… HoloLab Inc. 開発の現場では 特有の 苦労 がある…
  12. 12. 開発苦労話 HoloLab Inc. • 航空法の縛りがあり、気軽に飛ばせない • GPSなど一部の機能は屋外でしか使えない ■ドローンアプ リ
  13. 13. 開発苦労話 HoloLab Inc. • デバイスの動作が環境に左右される • 設計をよく考えないと自動テストがやりにくい • 航空法の縛りがあり、気軽に飛ばせない • GPSなど一部の機能は屋外でしか使えない ■HoloLens ■ドローンアプ リ
  14. 14. 開発苦労話 HoloLab Inc. • デバイスの動作が環境に左右される • 設計をよく考えないと自動テストがやりにくい • 航空法の縛りがあり、気軽に飛ばせない • GPSなど一部の機能は屋外でしか使えない ■HoloLens ■ドローンアプ リ • 実機デバッグが難しく、現地検証でトラブルが発生すると悲惨 ■現地検証
  15. 15. いかにして快適に開発するか 1. デバイスに依存するコードは抽象化・極小化する 2. 現地でもトラブルシュートできるように準備する HoloLab Inc.
  16. 16. デバイスに依存する機能 HoloLab Inc. ◆ドローン 飛行データ収集 カメラ操作 コントロール
  17. 17. デバイスに依存する機能 HoloLab Inc. ジェスチャー操作 音声コマンド 空間認識 ◆HoloLens
  18. 18. サンプルスクリプト HoloLab Inc.
  19. 19. 問題点 HoloLab Inc. ジェスチャー入力とオブジェクトを動かす 実装が密になってしまっている ⇒HoloLens実機にデプロイしないと動作 確認ができない ⇒自動テストができない
  20. 20. 解決策 • ジェスチャーの検出とオブジェクトを動かすコードを分離する ⇒ デバイスに依存する部分を抽出する • デバイス依存部分をインタフェースを使って抽象化する ⇒ ジェスチャー検出部分を置き換えることができる HoloLab Inc.
  21. 21. 修正手順 HoloLab Inc.
  22. 22. 修正手順 HoloLab Inc. ・ジェスチャー入力のコードを別クラス化
  23. 23. 修正手順 HoloLab Inc. ・インタフェースを抽出
  24. 24. 修正手順 HoloLab Inc. ・インタフェースを介して入力の状態を参照する
  25. 25. 修正手順 HoloLab Inc. デバイスに依存するの はココだけ
  26. 26. 修正したコード HoloLab Inc.
  27. 27. 修正したコード HoloLab Inc.
  28. 28. どんなうれしいことがある? • 実機にデプロイしなくても、エディタ上で確認できる HoloLab Inc. ジェスチャー入力イベントをコードで表現できるので、 自動テストでも応用できる
  29. 29. 自動テストはどうする? HoloLab Inc. ■IDEに搭載されているテストランナーを使っている • Unityエディタに搭載されているPlayModeテストを使う • テスト用のSceneを作成し、それをテストコード内で読み込ませ実行する ■HoloLens • XCode上でXCTestを使う • RxSwiftをよく使うので、RxTest/RxBlockingを使うと捗る ■ドローンアプ リ
  30. 30. Tips HoloLab Inc. • UWP Platformでは、Playmodeテストのコードが含まれていると、 アプリのビルドができない • テストコードは#if UNITY_EDITORディレクティブで囲う必要がある • UnityでもMoqを使うことができる • ZenJectに組み込まれており、Moqだけ使用することも可能 • HoloLensアプリのテストコードについては以下参照 • MonoBehaviourTestでコンポーネントをテストする http://blog.d-yama7.com/archives/1458 • HoloLensのジェスチャー操作をテストする http://blog.d-yama7.com/archives/1433
  31. 31. HoloLab Inc. 現地検証に備える
  32. 32. 現場は怖い • 想定していなかったトラブルが起きる(体感7割くらい) • 現場の環境がデバイスに適さない • ネットワーク環境がよくない etc... • すぐさまトラブルシュートできるかが腕の見せ所 HoloLab Inc.
  33. 33. 事前準備はしっかりやる • 設計、実装、テストに十分な時間を確保する • うまく設計とテストができていれば、トラブル発生時にも問題の切り分けがや りやすい • マイクロソフトのガイドラインを参考にイメージトレーニング • https://docs.microsoft.com/ja-jp/windows/mixed-reality/testing-your- app-on-hololens • HoloLensの特性を踏まえた動作検証の考え方がよくまとまっている HoloLab Inc.
  34. 34. いざ現場へ HoloLab Inc. • 機材は予備も含めて多めに持っていく • メインデバイス以外にも、ルーター、電源、ビルド用PC、etc... • 現場でシステムのモニタリングができる環境を作る • パフォーマンスモニタリング • アプリケーションモニタリング
  35. 35. 現場でのモニタリング HoloLab Inc. HoloLensドローンとタブレット WebSocketサーバ アプリケーションログ アプリケーションログ リアルタイムで モニタリング PC (WebSocketクライアント)
  36. 36. まとめ • HoloLensは他のデバイスと連携させると可能性が広がる • デバイスを使うアプリやシステムの開発特有の苦労がある • その特性に対してアプローチをとることが大切 • 設計の工夫 • テストの工夫 • 現場検証での工夫 HoloLab Inc.
  37. 37. HoloLab Inc. http://hololab.co.jp/

×