Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HoloLensでユニティちゃんを椅子に 座らせてみた”その後”の話

ZuQ9Nn
October 13, 2017

HoloLensでユニティちゃんを椅子に 座らせてみた”その後”の話

ZuQ9Nn

October 13, 2017
Tweet

More Decks by ZuQ9Nn

Other Decks in Programming

Transcript

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

    View Slide

  2. 自己紹介

    ZuQ9Nn(ずきゅ~ん)
     普段の業務はObjective-CでiOSアプリ開発

    Swiftは書いていません

    HoloLensとUityは趣味レベル
     なんちゃってHolo Developer

    View Slide

  3. 今回のきっかけ

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  15. その他対応したこと
     動的Nav Meshの経路探索でユニティちゃんをAir Tapの位置に移動させる

    Nav Meshそのものの、radius、heightも調整
     ユニティちゃんの座るモーションをUnity標準のIKの機能で独自作成、アニ
    メーションの制御
     ユニティちゃんの座るモーションは、回転が終了した後に行うようDelegteを
    用いて制御
     ユニティちゃんのコライダーを独自に設定し、座った時に邪魔にならないように
    調整

    View Slide

  16. まとめ、感想等
     人間が普段、何気なくやっている動作を、架空のキャラで再現させようとするのは、それなりに
    大変

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

    View Slide

  17. とはいっても
     人間と同じ動作ができると、途端に存在感が高まります。
     スマフォでもキャラと一緒に写真が撮れるアプリは存在しますが、あくま
    で見る感じ

    HoloLensでは、単に画面を通してみるだけではなく、一緒に暮らせ
    る体感が可能??

    View Slide

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

    View Slide

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

    View Slide