投稿日
Quest Proのトラッキングデータを用いた豊かなアバター表現
はじめに
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
以下で、表情(フェイストラッキング)、視線(アイトラッキング)、身振り・姿勢(ボディトラッキング)の各要素について説明します。
フェイストラッキング
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で高性能にトラッキングできるようになると、より豊かなアバター表現につながると思いました。