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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for ZuQ9Nn ZuQ9Nn
October 13, 2017

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

Avatar for ZuQ9Nn

ZuQ9Nn

October 13, 2017
Tweet

More Decks by ZuQ9Nn

Other Decks in Programming

Transcript

  1. すいません  失敗しました  漂うコレジャナイ感  ユニティちゃんの制御が想像以上に難しく、何度も椅子にのぼってし まった  現時点での僕のスキルではこれが精一杯

     しかし、失敗の中にも知見は得られたので、この後は、今回一番ハ マった、ユニティちゃんの回転制御について話します
  2.  どういうこと?  椅子の検知はMixedRealtyToolkit-UnityのSpatialUndstanding で行います  椅子の検知結果を扱う SpatialUnderstandingDllShapes.ShapeResultのプロパティ positionとhalfDims(椅子の面積の半分の情報,Vector3) 

    椅子の傾きを扱う SpatialUnderstandingDll.Imports.PlayspaceAlignment  上記2つを利用することで椅子の場所、大きさ、傾きに応じたオブ ジェクトを生成可能、ひょっとすると、このオブジェクトから回転の向き を判断できるかもしれないと考えた。。
  3.  この実験の結果  椅子の上のオブジェクトのZ座標は、椅子ごとに異なるわけではなく、空間に対 して一定  プログラム的にはすべての椅子が同じ方向に向いている  すべての向きに対応しようとすると、どこを起点にどの方向に回転させれば良い かが判断できない

     そこで今回はHoloLens(メインカメラ)を常に椅子の正面(背もたれが後ろ)にし てHoloLens(メインカメラ)の方向にユニティちゃんを回転させることで解決  なので、椅子をHoloLens(メインカメラ)の正面以外に配置すると、うまく動きま せん。。。orz...
  4. その他対応したこと  動的Nav Meshの経路探索でユニティちゃんをAir Tapの位置に移動させる  Nav Meshそのものの、radius、heightも調整  ユニティちゃんの座るモーションをUnity標準のIKの機能で独自作成、アニ

    メーションの制御  ユニティちゃんの座るモーションは、回転が終了した後に行うようDelegteを 用いて制御  ユニティちゃんのコライダーを独自に設定し、座った時に邪魔にならないように 調整
  5. まとめ、感想等  人間が普段、何気なくやっている動作を、架空のキャラで再現させようとするのは、それなりに 大変  Unityをつかったから、これくらいの調整で済んだ面もおおいけど、だからといって、すぐにできる わけではない  デッバックは基本実機、何度も調整してはアプリを実機に入れなおして確認するのが辛い、 もう少し効率よくやりたい

     そもそも椅子が検知されなかったり、一度件検知しても自分が移動すると空間情報が不安 定になり、椅子の検知の場所がずれることも多くとにかく消耗させられやたら疲れる  座標系、回転制御などが難しい、おそらくUnity、HoloLensの開発にあたり肝になる部分  失敗しても勇気をもって内容をシェア。得られるものはある、誰かの役に立つかもしれない。