配信
配信

手の表現

更新日時: 2024/12/17
Quest SDKで提供されているさまざまな手と、ハンドエクスペリエンスを設計する際の大切な考慮事項について学びましょう。
Hero

定義

XRの手の表現とは、没入感のあるエクスペリエンス内で表示されるユーザーの手の描写のことです。それには、ユーザーとバーチャルコンテンツの間で没入感のある直感的なインタラクションを作り出すための、バーチャルの手のさまざまな外観や機能が含まれます。
手の表現は、次の2つの重要な役割を果たします。
  • 自分の体の一部となる感覚を与える: 目に見える手の表現をユーザーに提供することにより、ユーザーは没入感のあるエクスペリエンスで手を使って、戸惑うことなく自分を表現したりアクションを実行したりできるようになります。
  • 機能を明確に示す: 手の表現を通して、没入感のある特定のエクスペリエンス内で、ジェスチャーコントロールされている手で何ができるかをユーザーに伝えるので、ユーザーはどんなインタラクションができるかを容易に理解することができます。
開発者として、人間の手をリアルに表現することを真っ先に考えるかもしれませんが、これはコストがかかり骨の折れる作業になります。リアルな手にしても、ユーザーの実際の手に完全にマッチさせて違和感なく表現するのは困難であり、ユーザーが不快に感じたりバーチャルの自分と切り離されたように感じたりする要因になります。代わりに、構築しているエクスペリエンスにとって何が最適かを考えましょう。
手のビジュアル表現が没入型エクスペリエンスの重要な部分を占めるのであれば、誰でも一体感を感じられるような一般的な表現(タコの足のように)にするか、ニーズに合わせてユーザーがカスタマイズできるようにすることが非常に重要です。
手がエクスペリエンスの一部ではなく、主に入力手段として使われる場合は、機能的に現実的なアプローチが理想的であることが分かりました。機能的に現実的なアプローチとは、製作するのが難しく、うまくいかない場合が多い、一定レベルのディテールがなくても、その表現だけで、特定のエクスペリエンス内で手を使って何ができるかをユーザーが分かるようにすることです。
Different degrees of hand detail
さまざまな度合いの手のディテール例。
現在、Meta Questでは、主に3種類の手の表現が使用されています。

アバターの手(ユーザー定義)

Avatar hands
アバターは、人をデジタルで表現したものです。Metaアバターは、没入感あふれる自宅や仕事部屋など、すべてのファーストパーティMetaエクスペリエンスで利用可能です。Movement SDK を使ってカスタムアバターを作成することも、Avatars SDKを使ってMetaアバターを作成することもできます。Avatars SDKをエクスペリエンスに実装することで、ユーザーに手を提供するだけでなく、目を伏せたり鏡を見たりした時の自分の体を視覚的に表現することもできます。
ユーザーが最初にアバターを見るのは、Quest Homeです。アバターの手は、自分のプレゼンスに重きが置かれている場合は理想的ですが、パススルーでは推奨されていません。「不気味の谷」現象を引き起こす可能性があるからです。
アバターの手の外観(肌の色、アクセサリー)は、ユーザーが自分のMetaアバターをどのようにカスタマイズしたかで決まります。

カスタムの手(開発者定義)

Default hands
この手は、フィードバックが強化されており、特定のエクスペリエンスに合わせてカスタマイズすることができます。Metaのカスタムの手に使うInteraction SDKを流用するか、Hands APIを使ってハンドポーズデータをベースに一から作成することもできます。Meta設計のカスタムの手は、塗りつぶしとアウトラインの2つの要素で構成されています。塗りつぶしには、ダークグレーの2つのトーンをブレンドしたフレネルが使用され、微かな光のエフェクトと一定の少しの透明感を与えます。どちらのエフェクトも、背後にあるものを覆い隠さず、明るい環境で手のプレゼンスを表現します。アウトラインは、透明感のあるライトグレーで、暗い環境でも極端になりすぎることなくコントラストを与えてくれます。塗りつぶしとアウトラインはどちらも手首の部分でフェードアウトします。手首の角度はトラッキングされておらず、通常は没入感とプレゼンスを損なうからです。
さらにこのハンドシェーダーには、インタラクションを向上させるため、次の2種類のフィードバックが組み込まれています。

プログレスフィードバック

プログレスフィードバックは、ユーザーに視覚的なインジケーターを提供し、そのジェスチャーを使ってインタラクションができることを示します。
Progress feedback
手を開いているときのアウトラインは薄いグレーです。ただし...
  • つまむ/つかむなどの操作をするために指を曲げ始めると
  • 仮想オブジェクトにタッチするなどのアクションをするために指を近づけると
... 特定の指のアウトラインが明るくなります。

ゲートフィードバック

ゲートフィードバックは、ユーザーに視覚的なインジケーターを提供し、手が特定のポーズやエリアでアクションを開始することを示します。ゲートフィードバックの例として、システムジェスチャーがあります。
Gating feedback
例えば
  • 手が特定のポーズを取ると何かをトリガーできる。例: システムジェスチャー
  • 手が特定のエリアに入ると特定のジェスチャーが認識される。例:スワイプジェスチャー
このときに、アウトラインは青になります。つまむ操作をする指は、その操作が始まると明るい青になります。

パススルーの手

パススルーモードでは、パススルーによって提供される環境背景の上にデジタルコンテンツを重ねてレンダリングします。これには、パススルー動画の一部でもある、ユーザーの実際の手も含まれます。
これは、ユーザーが仮想オブジェクトを操作するときに、独特な設計上の難しさをもたらします。実際の手(バススルー動画)が、ユーザーの近くにありオブジェクトの前にあっても、仮想オブジェクトによりオクルージョンされてしまうからです。
Hands occluded by virtual content
仮想オブジェクトによりオクルージョンされるユーザーの手。
設計上の解決策がいくつかあります。

カスタムの手を使う

Hand mesh visualization
カスタムの手を実際の手の上に重ねる。
Questのジェスチャーコントロールデータを使用して、VR体験のように、デフォルトをユーザーの実際の手の上に重ねて表示することができます。こうすれば、ユーザーは手と関節の位置や動きをはっきり見ることができ、仮想オブジェクトを操作できるようになります。
しかしこの解決策の場合、パススルーの実際の手が仮想オブジェクトの下に回り、オーバーレイした手が仮想オブジェクトの上に現れるため、没入感が損なわれる可能性があります。そのため、ユーザーが仮想オブジェクトの近くにいるときだけ、仮想の手をブレンドすることをおすすめします。
この乖離は、ユーザーが手を顔に近づけると大きくなり、ユーザーが腕を伸ばしたときに最小限に抑えられます。手の位置や方向によっては、仮想の手と実際の手の乖離が目立たないこともあります。

マスキングでユーザーの実際の手を見せる

Showing physical hands via masking
マスキングで実際の手を見せる。
ジェスチャーコントロールのメッシュデータを仮想オブジェクトのマスクとして使用することができます。これを行うことで、手と仮想コンテンツが重なっている場所を透明にすることができます。つまり、ユーザーが自分の本物の手を見ることができるということです。
マスキングを使う際の課題の一つは、トラッキングされている手と本物の手の間の乖離です。マスクは(パススルーフィードを通して見える手ではなく)トラッキングされている手に基づいて適用されるので、サイズと位置がいくらかオフセットされて、没入感が損なわれる恐れがあります。
もう一つの課題は、手が動くときの遅延による乖離です。手が速く動くほど、この乖離は大きくなる場合があります。
解決策の一つは、マスキングの境界をぼやかすことです。境界を滑らかにすることで、乖離から生じる視覚的なコントラストを軽減することができます。
この方法は、小さな仮想オブジェクトにのみ、および精確なインタラクションが必要ないときだけ使用することをおすすめします。ユーザーは自分の本当の手に照準を合わせるからです。実際の手は、システムが認識するトラッキングされている手とは異なります。例えば、下のスクリーンショットのように、オブジェクトをつかむ場合は問題ないでしょう。しかし、小さいボタンUIを押すなど、より高い精度が求められるインタラクションでは、仮想の手と実際の手の指先が乖離しているため、操作が困難になります。

マスキングとバーチャルハンドメッシュアウトラインをブレンドする

Default Hand and physical hands blended
カスタムの手と実際の手をブレンドさせる。
上記の2つの設計上の解決策を組み合わせることで、没入感と使い勝手の良さの間でバランスを取ることができます。それでも、仮想の手とパススルーの手の乖離は、ユーザーの手の位置によっては起こる場合があります。
ユーザーが手を顔に近づけるにつれて、パススルーフィードの歪みが増し、仮想の手と実際の手の乖離が大きくなります。
Direct Touchでインタラクションしているユーザーは、仮想の手とパススルーの手がどちらも表示されると混乱するかもしれません。仮想の手とパススルーの手がぴったり合っていないと、どちらの手の表現で選択したりアクションを実行したりしているのかわからなくなります。仮想の手のビジュアルの不透明度と強度を、ターゲットオブジェクトに近づくにつれて動的に上げていくことも検討できます。

するべきこととするべきでないこと

手のエクスペリエンスを強化するために留意すべき項目を以下に挙げます。これを怠ると、エクスペリエンスが損なわれます。

するべきこと

  • 構築しているエクスペリエンスに合った手の表現を選ぶ。これは、没入型でもユーザーの物理環境とのミックスでも同様です。
  • 手のインタラクションを設計する際は、予約済みシステムジェスチャーのことも考慮に含める。

するべきでないこと

  • 仮想のアバターの手をパススルーフィードに重ねて表示する。
  • 可能であれば、パススルーフィードの実際の手の上に、仮想の手をオーバーレイしないでください。それらの手に乖離が生じるので、どの手で操作しているのかユーザーが混乱してしまう可能性があり、Direct Touchで操作することが難しくなってしまいます。
ナビゲーションロゴ
日本語
© 2026 Meta