Oculus Developers Documents: User Inputの要約 (2)

p0dee
6 min readJun 9, 2020

--

前回の続き。Oculus Developersドキュメントの「User Input」は、その文量の半分を 6DoFコントローラのベストプラクティスに割いている。

6DoFコントローラにおけるBest Practices

優れたhand registration

  • hand registrationの実装には時間をかける価値がある
  • registrationが適切だと、仮想手により仮想空間と直感的にインタラクトできる
  • registrationが不十分だと「不気味の手の谷」(uncanny hand valley)現象を引き起こす
  • proprioception(*1)の不一致によってユーザーを不快にさせることも

registrationに必要なこと

  • 手の位置と向きが仮想と現実とで一致していること
  • わずかな誤差であっても不十分なregistrationにつながる

適切にregistrationする手順

  • シーン内にコントローラのモデルを配置する
  • その中心点(its pivot)が正しいことを確実にする: HMDを下から覗き込みながらコントローラを顔面付近で動かす
  • 実装が適切であれば、コントローラが現実世界から仮想世界にシームレスに受け継がれる
  • 次に、コントローラを包むように手をモデル化
  • 最後にコントローラのモデルを隠す

registrationの簡単なテスト方法

肉厚(fleshy)でリアルな手のモデル

  • 現実の手と乖離があればユーザーを不快にする可能性がある
  • 手の外観をカスタマイズできるようにする
  • 大きな手や、オブジェクトを装着した手は「その中に自分の手がある」と解釈するため脳が受け入れやすい
  • 逆にあまりに小さいと混乱を招く
  • 半透明や、ロボット型の手は良い例: 性別、年代、人種、民族性に依存しない

手と物体との交差

  • 仮想世界で手と物体とが交差した際に、仮想手の動きを止めないこと
  • これを行うと、トラッキングが失われたように、不快感を与える
  • リアルな仮想手の場合、物体と交差する際には半透明の手に置き換える
  • これによりトラッキングの継続性を維持し、同時に対象を操作できないことを示唆できる

手のアニメーションを避ける

  • registrationには脳が仮想手を自身の手と思い込むことが必要
  • 実際の手の動作に反した動き/アニメーションは不快感を与える
  • 例外は、銃の発射に伴う反動のように、仮想世界におけるユーザー操作の結果として起こる瞬間的なアニメーションはOK

DON’T: 前腕および肘のレンダリング

  • proprioception(*1)の繊細さゆえ、腕のシミュレートは困難
  • 不正確ならば無いほうがマシ: 手首より上は描画しないことを推奨

DON’T: 物理抵抗の大きなインタラクション

  • コントローラは重さに対するモーメントや物理抵抗を再現できない
  • 物理抵抗を伴うインタラクション(重い石、レバー)には現実味を与えられない
  • 物理抵抗を感じないインタラクション(電気のスイッチ)は現実的に感じられる
  • インタラクション設計においては、物体の見かけの重さを考慮に加えて、物理抵抗のなさが現実的に感じられるよう模索をすること

要注意: 両手を伴うインタラクション

  • 重い箱を持ち上げる、長い器具を両手で持つ、といった操作は違和感につながりやすい
  • これら操作で両手の間に感じるべき、硬さによる制約(the rigid constraints)は仮想世界に存在しないため

仮想世界の物体を掴む

  • 物体特有の持ち方に従って掴むこと: 銃ならばグリップを、コーヒーカップなら取手を
  • 拾い上げる際、正しい持ち方にsnapする必要がある
  • 持ち手をずらす必要のある物体は非推奨(例: 卓球ラケット): 手の入れ替え作業が不自然に感じるため
  • 物体を拾って握る場合は、Gripボタンの使用を推奨する

DON’T: 床から物体を拾わせる

  • センサー類は机の上に配置されることが多く、床から拾い上げようと屈むことでそれらを塞ぐ可能性があるため
  • 手の届かない物体に対する作用にはDistance Grabが効果的

取っ手のない物体

  • ボールなど明らかな取っ手が存在しない場合、Gripボタンが押されている限り手に吸着しているべき
  • offsetや向きは任意で良い(物体のsnapや位置修正は必要ない)
  • Gripボタンがおされた時点のpositional offsetのままで手に吸着させる

投げる操作

  • コントローラで期待通りに物体を投げることは期待以上に難しい
  • 物体によって投げ方が異なる(例: フリスビー、紙飛行機)
  • フリスビーや紙飛行機それぞれに現実味を与えるなら、それぞれで物理法則を分けることが必要
  • 投げる操作において、持つ/離すにGripボタンを使用する際は注意が必要
  • Gripボタンを使用すると、ユーザーが実際にコントローラ本体を投げてしまう恐れがある
  • 勢いを要する投げる操作には、Triggerボタンの使用を検討すること

触覚フィードバック

  • 触覚フィードバックで物体とのインタラクションを示唆することで、より現実味が増す
  1. proprioception: 四肢(自分の手足)が物理空間上のどこに位置しているかを、見ずとも脳が感知すること

hand registrationや、proprioceptionといった単語について、適切な日本語訳を見つけられなかったのでそのまま記載した。このドキュメントを読未進めていけば、その意味に対する推測は自ずと定まってくると思う。

前回の冒頭で触れた「The Climb」のアンチパターンについて、前者「隣接するボタンへの可逆的/非可逆的機能の割り当て」については、ここでは見出せなかった。

一方で、推奨事項の「手の外観はカスタマイズできるように」については、見事にThe Climbがイントロで提供しているものだった。(筆者がThe Climbに魅了された要因のひとつでもあった)

どの指針も一長一短では得難いノウハウで、非常に勉強になった。

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response