Slide 1

Slide 1 text

HoloMagicians presents xRLT vol.1 HoloLensでユニティちゃんを椅子に ” ” 座らせてみた その後 の話 ZuQ9Nn(ずきゅ~ん)

Slide 2

Slide 2 text

自己紹介  ZuQ9Nn(ずきゅ~ん)  普段の業務はObjective-CでiOSアプリ開発  Swiftは書いていません  HoloLensとUityは趣味レベル  なんちゃってHolo Developer

Slide 3

Slide 3 text

今回のきっかけ  2017/09/18(日) Tokyo HoloLens meetup vol.5で椅子の検 知についてLTをしました  そこでは、ユニティちゃんを椅子に座らせることまで、できました。 (https://www.youtube.com/watch?v=fgS0WH-C1zg)

Slide 4

Slide 4 text

だがしかし  いきなり座ったまま出てくるのが不満  どうせなら椅子まで歩かせて座らせたいと思った  今回は、ユニティちゃんを椅子まで歩かせて、座らせることにチャレンジ

Slide 5

Slide 5 text

その結果 https://www.youtube.co m/channel/UCY9eNYY YqdHsEWGLIAOgdkA

Slide 6

Slide 6 text

なんてこった ━━━━ ショボ (´・ω・`)━━━━ン

Slide 7

Slide 7 text

すいません  失敗しました  漂うコレジャナイ感  ユニティちゃんの制御が想像以上に難しく、何度も椅子にのぼってし まった  現時点での僕のスキルではこれが精一杯  しかし、失敗の中にも知見は得られたので、この後は、今回一番ハ マった、ユニティちゃんの回転制御について話します

Slide 8

Slide 8 text

 今回のハマりどころ  ユニティちゃんが椅子に触れたら回転させる  結論から言うとHoloLensでは椅子の向き(背もたれがどちらに向いて いるか)を判断できません。

Slide 9

Slide 9 text

 どういうこと?  椅子の検知はMixedRealtyToolkit-UnityのSpatialUndstanding で行います  椅子の検知結果を扱う SpatialUnderstandingDllShapes.ShapeResultのプロパティ positionとhalfDims(椅子の面積の半分の情報,Vector3)  椅子の傾きを扱う SpatialUnderstandingDll.Imports.PlayspaceAlignment  上記2つを利用することで椅子の場所、大きさ、傾きに応じたオブ ジェクトを生成可能、ひょっとすると、このオブジェクトから回転の向き を判断できるかもしれないと考えた。。

Slide 10

Slide 10 text

 そこで実験  2つの椅子を色々な方向に置き、椅子の上にオブジェクトを生成、そ のオブジェクトのfoward(z座標がプラス)の位置にSphereのオブジェ クトを置いてみた。

Slide 11

Slide 11 text

 実験パターン1  2つ椅子、両方とものカメラに対して奥に生成

Slide 12

Slide 12 text

 実験パターン2  こちらも、先ほど同様2つ椅子、両方とものカメラに対して奥に生成 

Slide 13

Slide 13 text

 実験パターン3  こちらも、先ほど同様2つ椅子、両方とものカメラに対して奥に生成

Slide 14

Slide 14 text

 この実験の結果  椅子の上のオブジェクトのZ座標は、椅子ごとに異なるわけではなく、空間に対 して一定  プログラム的にはすべての椅子が同じ方向に向いている  すべての向きに対応しようとすると、どこを起点にどの方向に回転させれば良い かが判断できない  そこで今回はHoloLens(メインカメラ)を常に椅子の正面(背もたれが後ろ)にし てHoloLens(メインカメラ)の方向にユニティちゃんを回転させることで解決  なので、椅子をHoloLens(メインカメラ)の正面以外に配置すると、うまく動きま せん。。。orz...

Slide 15

Slide 15 text

その他対応したこと  動的Nav Meshの経路探索でユニティちゃんをAir Tapの位置に移動させる  Nav Meshそのものの、radius、heightも調整  ユニティちゃんの座るモーションをUnity標準のIKの機能で独自作成、アニ メーションの制御  ユニティちゃんの座るモーションは、回転が終了した後に行うようDelegteを 用いて制御  ユニティちゃんのコライダーを独自に設定し、座った時に邪魔にならないように 調整

Slide 16

Slide 16 text

まとめ、感想等  人間が普段、何気なくやっている動作を、架空のキャラで再現させようとするのは、それなりに 大変  Unityをつかったから、これくらいの調整で済んだ面もおおいけど、だからといって、すぐにできる わけではない  デッバックは基本実機、何度も調整してはアプリを実機に入れなおして確認するのが辛い、 もう少し効率よくやりたい  そもそも椅子が検知されなかったり、一度件検知しても自分が移動すると空間情報が不安 定になり、椅子の検知の場所がずれることも多くとにかく消耗させられやたら疲れる  座標系、回転制御などが難しい、おそらくUnity、HoloLensの開発にあたり肝になる部分  失敗しても勇気をもって内容をシェア。得られるものはある、誰かの役に立つかもしれない。

Slide 17

Slide 17 text

とはいっても  人間と同じ動作ができると、途端に存在感が高まります。  スマフォでもキャラと一緒に写真が撮れるアプリは存在しますが、あくま で見る感じ  HoloLensでは、単に画面を通してみるだけではなく、一緒に暮らせ る体感が可能??

Slide 18

Slide 18 text

つまりは  いままで2次元の中だけだっ た嫁と実質的に暮らせる未 来は、もうすでに来ている!

Slide 19

Slide 19 text

 ご清聴ありがとうございました