はじめに

XRチームの松岡です。

現在戦略技術センターでは、さまざまなデバイスやソフトウェアを用いて表情、視線、身振り・姿勢といったアバターの表現を豊かにする仕組みを開発しています。

今回の記事では細かい実装方法は割愛しますが、Quest Proのトラッキングデータを用いた豊かなアバター表現に関する取り組みを紹介します。

この記事の読者はUnityでVR開発の経験がある人を想定しています。アバターについてはVR向け3DアバターファイルフォーマットのVRMを利用して開発しています。

開発環境

デバイスはMeta Quest Proで、ソフト側ではUnity上でMeta XR SDK(旧Oculus Integration)の機能を利用しています。

Meta Quest Pro

Unity:2022.3.7.f1

Meta XR SDK:v60

Unity-Movement:v4.2.1

以下で、表情(フェイストラッキング)、視線(アイトラッキング)、身振り・姿勢(ボディトラッキング)の各要素について説明します。

フェイストラッキング

Quest Proのフェイストラッキング機能を使っています。

今回使用したアバターには、BlendShapeと呼ばれる技術が用いられており、これによりアバターの顔の形を変えてさまざまな表情を作り出すことができます。

※BlendShape:頂点数などの構造は同じで、形はちがうモデルを複数用意しておき、それぞれの形をブレンドして新しい形をつくり出す3Dモデルのアニメーション手法の1つ

Face Tracking API経由で提供される表情のトラッキングデータを、VRMのBlendShapeClip(BlendShapeを複数組み合わせたもの)の値に変換してVRMアバターの表情を動かしています。

Face Tracking API が提供するブレンドシェイプに対応しているBlendShapeClipが多ければ多いほどリッチな表情にすることができます。

アイトラッキング

Quest Proのアイトラッキング機能を使っています。

Eye Tracking API経由で提供される視線のトラッキングデータをもとに、右目左目のボーンを回転させています。

そのままだと瞳の動きの幅が大きすぎて白目をむいたため、動きを5分の1程度にする変換をかけています。

ボディトラッキング

Quest Proのボディトラッキングを使っています。この機能はQuest Proに限らず、Quest 3などでも使えます。

BodyTracking API 経由で提供される体の動きのトラッキングデータをもとに、アバターのボーンを動かしています。

以前は上半身しかトラッキングができなかったようですが、2023年12月ごろに出た新機能のGenerative Legsにより、足の位置を推定し全身のトラッキングができるようになりました。(Metaの発表ブログ

BodyTracking APIにはハンドトラッキングの情報も含まれているため、指も動きます。

手の表現力を生かすために、今までコントローラーで操作していた移動やUI操作などを、コントローラーなしのハンド操作のみでできるように取り組んでいます。そちらについてはまた別の記事で紹介できたらと思います。

最後に

今回のシステムはフェイストラッキング・アイトラッキング機能を使うためにQuest Proで動かす想定で作っています。

しかし、ボディトラッキングに関しては2024年2月現在Quest 3にのみ搭載されている「インサイドアウトボディートラッキング(IOBT)」という上半身をカメラでトラッキングする機能により、Quest ProよりもQuest 3のほうが性能がいいとされています。

IOBT機能とフェイストラッキング・アイトラッキング機能が搭載されたHMDが出て、表情・視線・身振り・姿勢すべてが一台のHMDで高性能にトラッキングできるようになると、より豊かなアバター表現につながると思いました。