このチュートリアルをする
Solverについて
「事前定義されたアルゴリズムに従ってオブジェクトの位置と方向を計算する手段を容易にするコンポーネント」だって
Solvers | Mixed Reality Toolkit Documentation
壁に沿う、視界に常に入る、見た目の大きさが常に同じ(距離で変化する)、手に追従するものなどいろいろある
Orbital
:指定された位置にロックされ、参照オブジェクトからのオフセット。ConstantViewSize
:参照されるオブジェクトのビューに対して相対的に一定のサイズを維持するようにスケーリングします。RadialView
:参照オブジェクトによってキャストされたビューコーン内にオブジェクトを保持します。SurfaceMagnetism
:ワールド内のサーフェスに光線を投影し、オブジェクトをそのサーフェスに位置合わせします。Momentum
:加速度/速度/摩擦を適用して、他のソルバー/コンポーネントによって移動されるオブジェクトの運動量と弾力性をシミュレートします。InBetween
:2つの追跡されたオブジェクトの間にオブジェクトを保持します。HandConstraint
:GameObjectと手で交差しない領域で、手に追従するようにオブジェクトを制限します。メニューなどの手に制約のあるインタラクティブコンテンツに役立ちます。このソルバーは、IMixedReality Handで動作するように設計されていますが 、IMixed Reality Controllerでも動作します。 HandConstraintPalmUp
:HandConstraintから派生しますが、アクティブ化の前に手のひらがユーザーの方を向いているかどうかをテストするロジックが含まれています。このソルバーはIMixedReality Handコントローラーでのみ機能します。他のコントローラータイプでは、このソルバーは基本クラスと同じように動作します。
Solvers | Mixed Reality Toolkit Documentation より
Orbital
指定された位置とオフセットにオブジェクトをロックする
Orbitalを追加したら、SolverHandlerも追加されて頭に追従するようになった
WorldOffsetを設定したらX以外はその場所に表示された
実機ビルドして分かったけど、移動してもついてくるんだ。
自分を中心として常に視界に入る感じ。高さ(Y)と奥行き(Z)は固定
RadialView
別のオブジェクトにRadialViewを追加して、以下のように設定したら手首に追従する
Solver Handler (Script) コンポーネントを構成する
- [Tracked Target Type](追跡対象の種類) を [Hand Joint](手の関節) に変更します
- [Tracked Handness](追跡対象の手) を [Right](右) に変更します
- [Tracked Hand Joint](追跡対象の手の関節) を [Wrist](手首) に変更します
Radial View (Script) コンポーネントを構成します。
- [Reference Direction](参照方向) を [Object Oriented](オブジェクトの向き) に変更してから、 [Orient To Reference Direction](参照方向に向ける) チェックボックスをオンにします
- [Min Distance](最小距離) および [Max Distance](最大距離) を 0 に変更します
Orient To Reference Directionはキューブの角度が手首の角度によって変わった
最後に
前、UIを頭に追従させるときRadialViewでやったけどOrbitalのほうがよかったのかな?
HandConstraintPalmUpはこの記事でやった