2017年9月18日月曜日

Tokyo HoloLens ミートアップ vol.5 に参加

お疲れ様です。ZuQ9->Nnです。
2017/09/18(日) Tokyo HoloLens Meetup vol.5 が開催されたので参加しました。
場所は、日本マイクロソフト株式会社セミナールーム

Tokyo HoloLens ミートアップ vol.5 (2017/09/17 13:00〜)

開催概要 ## HoloLensアプリ開発秘話 HoloLensアプリ開発で著名な方々に登壇いただき、HoloLensに向いたアプリ、VR/MRに向いたアプリの特長や、HoloLensアプリ開発の裏話をお 話しいただきます。 HoloLensを持っていない方も参加可能です!ご興味のある方は是非ともご参加頂き、HoloLensを含めたWindows ...
イベントの詳細内容は、おそらくほかの方が詳しく、
わかりやすくまとめてくれると期待して。
今回は自分のLTについてのみです。
前から気になっていた椅子の検知にチャレンジ です。


なんとかサンプルが実機でも動きました。

今回はプロジェクトもGitHubに公開しましたので、参考にしてください。
ZuQ9Nn/ChairDetection

ZuQ9Nn/ChairDetection

This is HoloLens Sample App ChairDetection minimum cod
LTは残念ながら5分をオーバーしてしまいました。。orz..
プレゼンや動画の操作に戸惑いましたね。。事前に準備はしてたつもりでしたが
まだまだ努力も必要だったようです。

LTではいきなりコードを出してしまい詳細な説明しきれなかった、
椅子の定義について。ポイントは下記の部分です。

SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_SurfaceHeight_Between(0.25f, 0.6f),
...
SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_RectangleLength_Between(0.1f, 0.5f),
SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_RectangleWidth_Between(0.1f, 0.4f),
こんな感じで図解すると多少はわかりやすいでしょうか? ?(;^_^A アセアセ・・・


UnityでのScaleの1は、HoloLensで見て現実世界の1m
つまり幅が0.1m~0.4m、長さが0.1m~0.5m、床からの高さが0.25m~0.6mの
条件に当てはまった矩形を椅子として扱う感じです。

GitHubでのサンプルプロジェクトはUnityだけでも動くように作っています。
こんな感じで実行した後、ゲームシーンでマウスをぐりぐりと動かして
空間情報を読み込んでみてください。ある程度読み込むとユニティちゃんがでてきます。


結構時間がかかりますので、面倒な方は、
ChairDetection.csのpublicのプロパティ
Min Area For Complete、Min Horiz Area For Complete、Min Wall Area For Completeの値を
小さくしてみてください。実機ではある程度空間情報が必要ですが
Unity上ではそれぞれの値を半分くらいにしても大丈夫だと思います。
SpatialUnderstandingのサンプルは、全部の機能がてんこ盛りにされているため
逆に、やりたいことだけを抜き出すのにかなり苦労します。
今回、かなりコードが短くできたので
他の開発者さんの理解の助けになれば幸いです。