チュートリアル
VTuberのフェイストラッキング:Webカメラの設定と不具合の対処法
WebカメラでVTuberのフェイストラッキングを始める手順を解説。頭の動きのキャリブレーション、まばたき・口の感度調整、カメラ・アバターの表情・OBS連携の不具合への対処方法を紹介します。
カメラ、アバター、OBSの順に確認する
Webカメラを使うVTuberのフェイストラッキングは、カメラに映る顔の動きを、アバターアプリが扱える信号に変換する仕組みです。うまく動かすには、入力側と表示側の両方が整っている必要があります。カメラには顔がはっきり映り、モデル側には検出された動きを表現する仕組みが必要です。
アバターの頭は動くのにまばたきをしない場合、高性能なWebカメラに買い替えても解決しないかもしれません。まず顔の入力が検出されているか、アバターに使える表情があるかを確認しましょう。Virmiiでは動くのにOBSでは動かない場合は、モデルを変更する前にライブステージとの接続を確認してください。
この記事では、カメラの配置、Virmiiに実際にあるキャリブレーションと感度調整の機能、不具合を切り分ける順序を説明します。製品の動作は、2026年9月26日時点のVirmiiの実装と照合しています。
VirmiiのWebカメラによるフェイストラッキングの仕組み
Webカメラから映像の各フレームを受け取り、トラッキングソフトが顔の特徴点、頭の向き、表情の強さを推定します。アバターの描画側は、その推定結果を見える動きに変えます。あくまで画像からの推定であり、顔の筋肉を1つずつ直接測定したり、深度スキャンを行ったりするものではありません。
VirmiiはMediaPipe Face Landmarkerを使用しています。この機能からは、顔の特徴点、表情スコア、変換行列などを取得できます。出力の内容はFace Landmarkerの公式ドキュメントで説明されています。Virmiiは対応する信号をアバターの描画に利用しますが、MediaPipeが出力できるすべての情報を、アバターの操作機能として提供しているわけではありません。
flowchart TD
A["Webカメラの映像フレーム"] --> B["端末内で顔をトラッキング"]
B --> C["頭の動きと表情の信号"]
C --> D["Virmiiライブスタジオのプレビュー"]
C -->|"動作データと調整設定"| E["非公開ライブステージで描画"]
E --> F["OBSのブラウザソース"]
G["マイク音声"] --> H["OBSの音声設定"]ライブステージは、ライブスタジオから送られる動作データを使って、アバターを別に描画します。Webカメラの映像や、プレビュー画面を録画した映像を受け取る仕組みではありません。配信中はライブスタジオを開いたままにしてください。
Virmiiのトラッカーが要求するのはカメラ映像であり、マイク音声ではありません。口の動きはカメラから得た顔の信号に従います。マイク音声から音素を認識する機能ではありません。他のアプリには音声によるリップシンクや表情のホットキーがある場合もありますが、それらは別の機能であり、現在のVirmiiのWebカメラトラッキングへの入力ではありません。話し声はOBS側で設定してください。
頭の回転と表情の再生は、それぞれ別に動作したり失敗したりすることがあります。頭が動くことは、トラッキングと描画の一部が動作していることを示しますが、モデルがまばたき、笑顔、口の開閉に対応している証拠にはなりません。
まずカメラ・ブラウザ・アバターを確認する
対応するデスクトップブラウザと動作するWebカメラを使い、OSとブラウザのサイト権限の両方でカメラへのアクセスを許可してください。公開サイトのVirmiiにはHTTPSでアクセスします。ブラウザからカメラを使うには、安全なコンテキストとユーザーの許可が必要です。詳しくはMDNのカメラアクセスに関するドキュメントで説明されています。
現在のVirmiiは、希望解像度を1280 × 720、希望フレームレートと最大フレームレートを30 FPSとしてカメラ映像を要求します。実際の解像度やフレームの取得状況は、ブラウザとカメラによって決まります。これは映像取得の設定であり、トラッキング性能の保証ではありません。60 FPS対応のWebカメラを使っても、この仕組みが60 FPSで動くわけではなく、OBSのフレームレートを上げてもカメラから得る測定回数は増えません。
まずは手持ちのカメラで試しましょう。起動しない場合は、プライバシーシャッター、接続、ブラウザで選択されているカメラを確認してください。機器を使用している可能性がある他のアプリを閉じて、もう一度試します。別のカメラアプリで動作確認しても構いませんが、Virmiiに戻る前にそのアプリを閉じてください。
アバターの形式もアプリに合っている必要があります。Virmiiは対応する生成済み3Dアバターと、互換性のあるカスタムVRMのアップロードに対応しており、Live2D用のトラッカーではありません。アップロードするファイルについては、VRMのバージョンと既存の表情設定を確認してください。VRMファイルのガイドではファイルに含まれる情報を、VTuberソフトの選び方ガイドではアバターの形式ごとに使うツールを説明しています。
感度を調整する前に、映り方と照明を整える
Webカメラを目の高さに近い位置に置き、普段配信する位置から向き合いましょう。あごや眉も含めて顔全体が映り、少し顔を動かしても画面の外に出ない余裕を確保してください。顔の細部がはっきり見える位置まで、カメラや椅子を動かします。すべてのレンズや机に当てはまる、決まった距離や画面内の顔の割合はありません。
正面から柔らかい光を当て、椅子の真後ろに明るい窓が来る配置は避けてください。目や口の周りに濃い影ができていないか確認しましょう。眼鏡に画面や照明が反射する場合は、光の向きやカメラの角度を変えて、もう一度テストします。
話す、まばたきをする、別のモニターを見るといった動作でも状態を確認してください。レンズを真正面から見続けるときだけ動く構成では、実際の配信に合わないかもしれません。トラッキングしたい部分が、髪や物で隠れないようにしましょう。
カメラ専用ソフトに露出調整がある場合は、慎重に調整してください。目標は、明るさが安定した見やすい映像です。不適切な露出で固定すると、かえって映像が悪くなることもあります。Virmiiの「動きの調整」では、Webカメラの露出、ゲイン、ホワイトバランスは変更できません。
トラッキングを開始し、正面姿勢を設定する
利用できる状態のアバターを用意したら、次の手順で進めます。
- アバターのライブスタジオを開きます。非公開OBS URLがまだない場合は、ライブ出力で作成してください。現在の画面では、カメラを有効にする前にこの操作が必要です。この時点でOBSを開く必要はありません。
- トラッキングを開始を選び、カメラへのアクセスを許可します。カメラが動作中になり、顔を検出がはいになるまで待ちます。
- いつもの位置に座り、自然な表情で、正面として扱いたい方向に頭を向けます。
- 正面姿勢を設定を選びます。現在の頭の角度がアバターの正面の基準になり、相対距離の基準も設定し直されます。
- 左右を向く、うなずく、元の位置に戻るといった動きを試します。まばたきや口の反応を調整する前に、頭の動きを確認してください。
カメラを動かしたり、座る位置を変えたりしたら、正面姿勢を設定し直しましょう。これはそのトラッキングセッションのキャリブレーションであり、保存される表情プロファイルではありません。普段の目や口の状態を入力から自動的に差し引いたり、モデルを修復したり、肩や体のトラッキングを校正したりする機能ではありません。
カメラを停止すると、そのセッションの基準は消去されます。トラッキングを再開したりページを再読み込みしたりした後は、正面姿勢を設定し直してください。保存される「動きの調整」の設定と、この基準は別のものです。
まばたき・口の動き・スムージングを調整する
設定は1つずつ変更し、普段の動きでテストしてください。大きく表情を変えるテストは動作範囲の確認に役立ちますが、通常の会話と自然なまばたきを主な確認方法にしましょう。
| ライブスタジオの設定 | 変わるもの | 確認方法 |
|---|---|---|
| 口の感度 | 検出された口の動きへの反応 | 少し開けただけで大きな口になる場合は下げ、普通に話してもほとんど反応しない場合は少しずつ上げる |
| 頭部感度 | アバターが頭の回転に追従する強さ | 普段使う画面の方向を向き、動きに違和感がないか確認する |
| まばたき感度 | 検出された目の閉じ具合が、まばたきに反映される度合い | 意識してまばたきやウインクをしても目が閉じない場合は、少しずつ上げる |
| 開眼基準 | 普段の状態に含まれる目の閉じ具合の信号を、どの程度無視するか | 自分は自然に目を開けているのにアバターが半目になる場合は慎重に上げ、その後に完全なまばたきができるか再確認する |
| 距離感度 | カメラに近づいたり離れたりしたときの、アバターの見かけの大きさの変化 | 大きさを安定させたい場合は低めかゼロにする。体の位置をトラッキングする機能ではない |
| スムージング | 検出した動きの変化を、どの程度緩やかに反映するか | 揺れが気になる場合は上げ、頭や口の反応が遅すぎると感じたら下げる |
まばたき感度と開眼基準は、組み合わせて効きます。基準の補正が強すぎると、小さなまばたきが反映されなくなることがあります。感度が高すぎると、わずかな入力の変動で目が閉じることがあります。どちらかのスライダーで補おうとする前に、照明の問題を直してください。
口については、まず動くかどうかを確認します。感度はすでにある反応を調整できますが、不足している表情を作ることはできません。実際の結果は、アバターがVRMの表情バインドを使うのか、Virmiiで生成した表情画像を使うのかによっても変わります。
スムージングは、強くすればよいとは限りません。動きを安定させる代わりに反応が遅くなり、カメラが何度も顔を見失う問題を直すことはできません。生成した表情画像には、まばたきや口の形を段階的に切り替える独自の動作もあります。スムージングによって、画像が連続的なメッシュ変形に変わるわけではありません。
非公開ライブURLがある場合、ライブスタジオは「動きの調整」の変更を少し待ってから自動保存します。保存エラーに注意し、変更の保存が終わってからページを閉じてください。別途キャリブレーション用JSONを貼り付ける必要はなく、正面姿勢を設定について手動でプロファイルを保存する手順もありません。
アップロードしたVRMとVirmii生成モデルでは、表情の仕組みが異なる
アップロードしたVRMは、ファイル内の既存の表情を使う
カスタムVRMをアップロードしても、不足しているまばたき、口の形、顔の形状が追加されることはありません。描画時に動かせる範囲は、既存の表情バインドによって決まります。VRMはバージョンによってプリセット名が異なるため、汎用的なマッピングのコード片をファイルに貼り付ければモデルが直るとは考えないでください。
頭は動くのに顔が動かない場合は、対応するVRMエディターで表情を確認しましょう。個別の表情テストができる場合は、想定したプリセットで実際に顔が変化するか調べます。変形自体は動作するのにバインドが誤っている状態と、シェイプキーが欠けていたり空だったりする状態は、別の問題です。
現在、アップロードしたVRMはVirmiiのAI表情生成の対象ではありません。モデル側の修復には、適切な制作ツールと素材の改変許可が必要です。この違いについては、表情を動かすにはトラッキングの接続だけでは足りない理由を参照してください。
生成モデルは、別途生成した表情画像を利用できる
Virmiiでテキストや画像から生成したモデルでは、完成したモデルを開いて表情を生成を選びます。これは別の設定工程です。新しく生成したVRMやダウンロードしたVRMに、最初から完全なフェイシャルリグが備わっていることを保証するものではありません。
現在の仕組みでは、まばたきの中間状態や小さく開いた口も含め、13枚の表情画像を用意します。一式が完成すると、Virmiiが画像を顔に投影し、3Dアバターの動きを保ちながらカメラ入力に応じた表情を選びます。感度を調整して問題を探す前に、タスクの完了状態を確認してください。表情生成が待機中だったり失敗していたりすることは、Webカメラのキャリブレーションの問題ではありません。
生成はバックグラウンドで進み、最大で約24時間かかる場合があります。タスクが失敗し、そのモデルに再試行回数が残っていれば、再試行時は完成済みの画像を保持し、不足または失敗した画像を再度要求します。成功した画像は、そのモデルのバージョンに固定されます。タスクが完了しても、特に大きく顔を向けたときや、顔の形状が特殊な場合は、見た目の確認が必要です。手順はAI表情生成ガイドを、適用されるクレジットや利用枠は料金ページを参照してください。
表情画像はVirmiiのプレビュー、ライブスタジオ、OBSステージで再生されます。VRMとは別に保存されるため、モデルをダウンロードしても、この再生の仕組みが埋め込まれたり、他のアプリ用の顔のシェイプキーが作られたりするわけではありません。実装の詳細は、表情のバインドをどう実現したかで説明しています。
入力、表情の再生、出力の順に問題を切り分ける
一連の流れのうち、最初に動かなくなっている箇所から確認しましょう。ライブスタジオには、カメラの状態、顔の検出、トラッキングFPS、ライブ出力の接続状態が表示されます。確認には役立ちますが、表情ごとの信号を調べるデバッガーではありません。また、トラッキングFPSと、入力から配信までの全体の遅延は別の指標です。
| 症状 | 最初に確認すること | 次に行うこと |
|---|---|---|
| カメラが起動しない | サイトとOSの権限、プライバシーシャッター、機器の接続、同じカメラを使う他のアプリ | 入力側の問題を解消してからトラッキングを再開する。初期化がタイムアウトする場合は、トラッキング用リソースの読み込みに必要なネットワーク接続も確認する |
| カメラは動作中だが顔が検出されない | 映る位置、影、反射、顔の一部が隠れていないか | 均一な明るさでカメラに顔を向け、検出を確認してからキャリブレーションする |
| 何もしていないのに頭が傾いたままになる | 今の座る位置で正面姿勢を設定したか | 正面姿勢を設定し直す。トラッキングを止めても傾いている場合は、モデルを別に確認する |
| 目が半開きのまま、またはちらつく | 照明、開眼基準、まばたき感度、モデルのまばたき表情 | 基準と感度を少しずつ調整し、自然なまばたきと目の開き直しをテストする |
| 静かに話しているのに口が大きく開きすぎる | 口の感度と、アバターに用意されている口の形 | 感度を下げ、普通の会話、間を置く動作、口を閉じた状態に戻る動作を試す |
| 頭は動くが顔が動かない | アバターが使っている表情の仕組み | アップロードしたVRMはバインドを確認する。生成モデルは表情生成の完了と画像の読み込みを確認する |
| 動きが途切れる、または遅く感じる | 顔の検出、トラッキングFPS、端末上の他の処理負荷、スムージング | 照明を改善し、不要なカメラ処理や描画負荷の高い作業を終了して再テストする。60 FPSの映像取得設定が使えるとは限らない |
| プレビューは動くがOBSでは動かない | 非公開ステージURL、ライブスタジオが動作中か、ライブ出力の接続状態 | トラッキングを継続し、OBSが同じアバターの現在のURLを使っていることと、ブラウザソースの再読み込み動作を確認する |
フェイストラッキングが動作しているのに見た目が正しくない場合は、カメラの調整を続けるのではなく、モデルを別にテストしてください。形状の不足、表情画像の位置ずれ、まばたきのポーズ自体の誤りでは、それぞれ必要な修正が異なります。
動作を確認したアバターをOBSに接続する
プレビューが正しく動いたら、ライブ出力の非公開URLをコピーし、OBSのブラウザソースに貼り付けます。ライブスタジオやモデル詳細ページのアドレスではなく、アバターのステージURLを使ってください。ステージはアバターを背景透過で描画し、ライブスタジオは接続を通じて動作データと現在の調整設定を送ります。
ライブスタジオを動かしたままにし、ライブ出力の状態が接続済みになっていることを確認してください。マイク音声はOBSで別に設定します。他の内容を映すために画面キャプチャやウィンドウキャプチャを使う場合は、カメラのテスト映像、アカウントページ、非公開ステージURLが意図せず映り込まないか確認しましょう。
OBSでは、ブラウザソースが非表示になったときにページを終了したり、シーンが有効になったときに再読み込みしたりできます。どちらの動作でも、ステージの再接続が必要になることがあります。シーンを切り替えた後にトラッキングが止まる場合は、これらの設定を確認してください。OBSのブラウザソースのドキュメントに説明があります。OBSのステージが止まったという症状だけで、キャリブレーションが失われたとは判断できません。
話す、まばたきをする、頭を向ける、シーンを切り替える動作を含めて、短いテスト録画を行いましょう。遅延がゼロになることを期待するのではなく、録画を見返して目立つ音声と映像のずれがないか確認してください。接続の手順全体は、VirmiiのアバターとOBS連携のチュートリアルを参照してください。
ステージURLは非公開情報として扱ってください。漏えいした場合は再発行するか無効化し、新しいURLに変えたらOBS側も更新します。
毎回の配信前に行う短いチェック
- いつもの座る位置から、照明とカメラへの映り方を確認する。ゲーム中やチャットを読むときに向く方向も確かめる。
- トラッキングを開始し、顔の検出を確認して、そのセッションの正面姿勢を設定する。
- 自然なまばたき、普通の会話、何もしていない状態に戻る動作をテストする。生成アバターでは、表情画像が利用可能なことも確認する。
- OBSとの接続を確認し、マイクを含めて短く録画する。映像と音声を確認し、目立つずれがないか調べる。
- ライブスタジオを開いたままにし、配信開始前に実際のシーン切り替えを試す。
長時間配信では、日光、姿勢、パソコンの負荷の変化によって結果が変わっていないか注意しましょう。位置が変わったら、映り方の確認やキャリブレーションをやり直してください。最初の設定だけで、配信中ずっと安定して動くことを保証できるわけではありません。録画や配信に向けたその他の準備は、VTuberのセットアップチェックリストで確認できます。
よくある質問
頭は動くのに、口や目が動かないのはなぜですか?
頭の回転と表情の再生では、必要な条件が異なります。まず顔が検出され、必要な部分が見えているかを確認し、その後にアバターの表情の仕組みを調べてください。アップロードしたVRMには、ファイル内に動作するバインドが必要です。Virmii生成モデルでは、別の表情生成タスクが完了してから画像を再生できます。頭が動くだけでは、どちらの条件も確認できません。
アバターの目が半開きのままになったり、細かく動き続けたりするのはなぜですか?
まず、自分の目の周りの照明と反射を確認してください。次に、自然にカメラを見ながら開眼基準を調整し、意識してまばたきをしてまばたき感度を試します。目が閉じるだけでなく、再び開くことも確認してください。モデルの表情を単独でテストしても同じ不自然なポーズになる場合は、トラッキング感度を変えてもそのポーズ自体は修復できません。
カスタムVRMをアップロードすれば、不足している表情が追加されますか?
いいえ。アップロード時はファイル内の既存の表情を使用し、そのモデルがVirmiiの表情画像生成の対象になるわけではありません。不足している顔の形状やバインドは、別に制作・修復する必要があります。アップロードや頭のトラッキングが成功しても、表情全体の確認ができたことにはなりません。
OBSを開くと設定がリセットされたように見えるのはなぜですか?
動きの調整と正面姿勢を設定を分けて考えてください。「動きの調整」の変更は、ライブURLが存在し、保存が成功すれば自動保存されます。正面姿勢はローカルのトラッキングセッションの基準なので、そのセッションを停止・再開した後は設定し直す必要があります。OBSを開いたときは、動作中のスタジオから送られるデータを使う構成です。まずソースが同じアバターの現在の非公開URLを参照し、接続できているか確認してください。
Virmiiで口をトラッキングするには、マイクが必要ですか?
いいえ。現在のトラッカーは口の動きにカメラ入力を使用し、マイク音声は取得しません。ただし、視聴者に声を届けるには、OBSに音声ソースが必要です。カメラに口が映っていない状態でマイクに向かって話しても、Virmiiのフェイストラッキングは動きません。