見出し画像

VIVE XR Eliteでフェイシャルトラッキング in VRChat

先日、VIVE XR Elite用のフェイシャルトラッカーが発売されました。

VRChatでもフェイストラッキングができるとのことで、自分の環境でも試してみた手順を残しておきます。ただし、トラッキングデータをアバターへ反映させる詳細なアニメーション設定を自力で作ることは今回しません。


フェイシャルトラッキングの全体像

最初に全体像を図に示すとこのような感じになります。

HMDから直接データを送るので思ったよりシンプル

大事なのは以下の3点

  • フェイシャルトラッキングに対応しているアバターを使う

  • HMDとVRChat間の通信にはVIVE Streaming Hubを使う

  • SRanipal・VRCFTなどのツールは不要

必要なもの

1. VIVE XR Elite + VIVEフェイシャルトラッカー(XRシリーズ)

合計20万超え。恐ろしや。

2. フェイシャルトラッキングに必要な設定ファイル

アバターがフェイシャルトラッキングに対応していない場合は必要になります。今回私は以下の商品を購入しました。

BOOTHで「FacialTracking」「FaceTracking」「FT」などのタグを調べるといくつか出てきます。ここで見つからないアバターについては、VRCFT用のTemplateなどから設定を自分で作ったり、Blender等でシェイプキーの追加をしたりする必要があるため、手間と知識が必要かと思います。

中身を見ると超複雑。テンプレートがあるとはいえ自分で作るのは骨が折れそう。

3. アバター

持っているアバターが元々フェイシャルトラッキングに対応していればそのままでOKだと思います。対応していない場合は上記の設定ファイルを適用するため、対応するアバターが必要です。(私はメインアバターが京狐ちゃんでしたが、自力で対応するのは諦めて設定ファイルが存在している真冬ちゃんを購入しました)

導入について

1. VIVE XR Elite + VIVEフェイシャルトラッカー

以下のユーザーガイドを見ながら設定する。

注意点

  • 本体のファームウェアを最新にする

  • うまくいかないときは1度再起動をする

  • アイトラのキャリブレに失敗したり、精度が微妙なときはガスケットスペーサーを取り付ける

2. フェイシャルトラッキング設定済みアバターの準備

※ アバター購入時点で設定済みの場合はスキップ

フェイシャルトラッキング用設定ファイルの説明書通りに進めればOKです。FBX変更用パッチファイルを実行することで、元のアバターに対してフェイシャルトラッキング用のシェイプキーを自動で追加してくれます。

基本的にはアバターのunitypackageをimportした直後の状態に対してパッチを実行する前提だと思います。うまくいかない場合、FBXやファイルの階層構造を変更していない状態を作り、再度試してみると原因の切り分けができそうです。

なんと基本的にはこれだけで動きます。VIVE Streaming Hub経由でVRChatへOSCで直接データを送ってくれているおかげですね。

VRChatで動かす

あとはHMDを被り、VIVE Streaming Hub経由でPCへ接続。いつも通りSteamVRからVRChatを起動すればOKです。

ただし、私の環境ではいくつか罠があったのでメモしておきます。

罠1. 全く顔が動かない

私の環境では大丈夫でしたが、OSC自体を無効にしているとトラッキングデータが反映されません。メニューから「Options」→「OSC」→「Enabled」をONに変更すればOKです。

EnabledをONにしておく

罠2. アイトラがほんの少し反応するだけ

最初動いたと思ったら目がほんの少し反応するだけでした。私の環境では以下の操作をしたことでこの問題は解消しました。

  • HMDとVRChatの再起動(いらないかも)

  • OSCのメニューからReset Config

ここからリセット

設定ファイルの適用前に一度フェイシャルトラッカーをつけて試したことで、おかしな状態のConfigになっていたのかもしれません。

罠3. 口周りがおかしくなる

無事動いたと思ったら、口を閉じている時に唇同士がめり込んでいるようなおかしな状態になりました。これは先人の方が解決方法を上げてくださっていました。

C:\Users\XXXX(ユーザー名)\AppData\LocalLow\VRChat\VRChat\OSC\XXXXXXXX(VRChatのユーザー名)\Avatars に存在する、対象アバターのシェイプキーリストの一覧から、 "v2/MouthClosed"の項目を削除することで解決します

https://x.com/DrQjfi/status/1746461414288716224?s=20

該当のjsonファイルを開き、以下の記述を丸ごと削除します。

{
  "name": "v2/MouthClosed",
  "input": {
    "address": "/avatar/parameters/v2/MouthClosed",
    "type": "Float"
  },
  "output": {
    "address": "/avatar/parameters/v2/MouthClosed",
    "type": "Float"
  }
},

ファイルがどれか分からない場合は、VRChatのAvatarsからMy Avatarsセクションを開き、該当アバターのページへ飛ぶとそのURLからIDを確認できます。(「https://vrchat.com/home/avatar/avtr_*******」のようになっています)

罠4. 充電が間に合わない

これはおそらくフェイシャルトラッカーをアタッチしていることで消費電力が増えているためだと思います。メガネモードでの使用がそもそもできなくなったため、充電ケーブルとACアダプタの出力が65W以上のものを購入して対応しました。(HMDのエラーでは最低30W必要と表示されました)

罠5. 頭への負担が大きい

機器を間に挟んだことでHMD本体の重い部分が頭から遠くなり、支えるのに必要な力が増えました。これによってバッテリークレードルを付けているときの頭への負担が増えたように感じます。また、眼鏡モードではもはやツルだけで支えきれず、一瞬でずり落ちていきます。これに対する明確な回答は今のところ出ていません……。

罠6. 視界が狭くなる

これも「罠5.」と同じ理由です。モニター部分が目から遠くなるため、視界に占めるモニターの面積が狭くなります。精度に問題がなければガスケットスペーサーを取り外した方が快適になるかもしれません。

まとめ

以上がVRChatでフェイシャルトラッキングをするための手順とメモになります。もっと複雑かと思っていましたが、最初からOSC経由でいい感じにデータを送ってくれるおかげで構成自体はシンプルになりました。あとは装着感だけなんとかなれば良いのですが…。販売されている設定ファイルの適用についても、用意されているパッチファイルを実行するのみで超お手軽だったのが良かったです。

フェイシャルトラッキングに疎い私でも比較的容易に適用できました。細かい罠への対策がこれから導入しようとしている方への助けになれば幸いです。それでは。

この記事が気に入ったらサポートをしてみませんか?