MediaPipe
Webカメラベースで顔と手のトラッキングを行ないます。フェイストラッキングでは、MediaPipeは40以上のARKit BlendShape、頭の回転、頭の移動をトラッキングします。ポーズトラッキングでは、MediaPipeは手首と指をトラッキングします。
設定
MediaPipeはWarudoに組み込まれているため、追加のソフトウェアをインストールする必要はありません。ほとんどのWebカメラはMediaPipeで動作するはずですが、動 作しない場合は、以下のFAQセクションを参照してください。
MediaPipeは、CPUまたはGPUで実行できます。パフォーマンスを向上させるにはGPUが推奨されます。MediaPipeはデフォルトでGPUで実行されています。代わりにCPUを使用するには、MediaPipeトラッカーアセットに移動して GPUアクセラレーションを無効にします。
CPUはいつ使用するのが良いでしょうか?GPUリソースを大量に使用するゲームをプレイしている場合は、パフォーマンスの問題を回避するために、MediaPipeにCPUを使用することをおすすめします。
MediaPipeをハンドトラッキングに使用する場合は、カメラの正面に位置し、カメラビューに手が完全に表示されていることを確認してください。 [MediaPipeトラッカー] アセットで [カメラの内容を表示] を有効にすると、カメラビューに自身の姿が表示されるようになります。
通常、カメラをPC画面の上に置き、頭がカメラビューの中央より少し上になるようにします。また、使用前にハンドトラッキングをキャリブレーションすることをおすすめします。詳細については、キャリブレーションを参照してください。
キャリブレーション
フェイストラッキング
MediaPipeのフェイストラッキングは、次の方法で調整できます。
- [キャラクター] → [モーションキャプチャー] →[クイックキャリブレーション] → [キャリブレーションMediaPipe] をクリックするか、
- [MediaPipeトラッカー] アセットで [キャリブレーション] をクリックします。
キャリブレーション中は、まっすぐ前を向いて頭を動かさないでください。キャリブレーション後は、頭を自由に動かして大丈夫です。
ハンドトラッキング
[MediaPipeトラッカー] アセットの [ハ ンドトラッキングキャリブレーション] をクリックすると、MediaPipe のハンドトラッキングを調整できます。片方の手を耳の横に上げ、手のひらをカメラに向けます。もう一方の手で [OK] を押して調整します。
キャリブレーション中は、手のひらをカメラに向けてリラックスした姿勢を保ち、必要に応じて指を少し曲げます。
手の動きが速すぎたり遅すぎたりする場合は、[手の移動範囲] オプションで調整できます。また、[手の移動範囲オフセット] オプションを調整して、たとえば手を頭に近づけることもできます。
オプション
- 手の移動範囲: 手の動きの範囲。Xは左右、Yは上下、Zは前後です。
- 手の移動範囲オフセット: 手の動きの範囲のオフセット。正のXは左オフセット、正のYは上オフセット、正のZは前オフセットです。
- 腕の回転オフセット: 肘を内側または外側に回転させます。
- 手の水平距離補正: キャラクターの手を近づけて、指を交差させるなどのジェスチャーを行いやすくします。
- 手のY閾値: 手首とカメラビューの上端および下端の間の距離がこの値より小さい場合、その手のトラッキングは無視されます。これにより、不安定なトラッキン グによるジッターの問題を避けることができます。
- カメラ対角線視野角: カメラの視野(FOV)。正確な値は手の深さを推定するのに役立ちます。通常、カメラのストアページにメーカーによる視野率が記載されています。
- ハンドプッシュZ最大値: 身体と衝突を防ぐために、手は前方に押し出されます。この値は、手が前方に押し出される最大距離を決定します。
- ハンドプッシュYの範囲: 手が肩から離れるほど、前方に押し出されます。手から肩までの垂直距離がこの値以上であれば、手は最大限前方に押し出されます。
- ハンドプッシュYオフセット: この値が0のとき、手は肩から下に向かって前に押し出され始めます。この値が正の場合、手は肩の上から前方に押し出され始めます。
- 肩の回転の重み: 肩をどれだけ回転させるか。0は回転なし、1はフル回転を意味します。肩が自然に見えるまで、この値を調整してください。
よくある質問
よくある質問については、「概要」、「フェイストラッキングのカスタマイズ」、および「ポーズトラッキングのカスタマイズ」を参照してください。
MediaPipe トラッカー ウィンドウが黒くなり、「Loading...」のまま動きません
一部のWebカメラは、GPUアクセラレーションが有効になっている場合にのみサポートされます(例: DroidCamなどのIPカメラ)。また、一部のWebカメラは、GPUアクセラレーションが無効になっている場合にのみサポートされます。[MediaPipeトラッカー] アセットで [GPUアクセラレーション] の設定を切り替えて、問題が解決するかどうかを確認してください。
MediaPipeのGPUアクセラレーション設定
また、ウイルス対策ソフトによっては、Warudoのカメラへのアクセスをブロックする場合があります。ウイルス対策ソフトのカメラ保護機能を無効にするか、Warudoをホワイトリストに追加してください。
頬をふくらませたり、舌を突き出したりすることができません
これはMediaPipeの既知の制限で、Googleが修正するのを待っています。
トラッキングが不安定です
まず、Webカメラが実際に30FPS以上で動作していることを確認します。このWebサイトを使用して、WebカメラのFPSを確認できます。Webカメラが低いFPSで動作している場合は、部屋が暗すぎる可能性があります。部屋が十分に明るいことを確認してください。
Webカメラが30FPS以上で動作しているのに、トラッカーウィンドウに表示されるFPSがはるかに低い場合は、[MediaPipeトラッカー] アセットで [GPUアクセラレーション] の設定を切り替えてみてください。
トラッキングFPSは、通常 15~30 です。3Dゲームをプレイしている場合、トラッキングFPSは 10 程度まで低下することがあります。
トラッキングがフリーズしました
ノートパソコンを使用している場合は、電源に接続されており、バッテリーで動作していないことを確認してください。
ハンドトラッキングにはMediaPipeとLeap Motionのどちらを使用すれば良いですか?
予算に余裕がある場合は、通常、ハンドトラッキング用に首/胸にマウントする「Leap Motion Controller 2」を使用することをおすすめします。Leap Motionトラッキングは、通常、MediaPipeよりも安定しており、特に3Dゲームをプレイしているときは、CPU/GPUリソースの使用量が少なくなります。
トラッキングが失われやすい「Leap Motion Controller 1」はおすすめしません。