00:00 / 00:00

Persona

ウェブカメラトラッキング

ウェブカメラトラッキングソースは、Personaを実行しているコンピュータに接続されたカメラを使用して、表情、手のジェスチャー、身体のポーズを検出します。Google MediaPipeをローカル環境で直接実行するため、スマートフォンや専用のモーションキャプチャソフトウェアは不要です。さらにネットワーク経由のトラッキングソースとも柔軟に併用でき、顔はスマートフォン、身体はmocopi、指先はウェブカメラから取得するといった運用が可能です。1台のウェブカメラから複数のLive2DおよびVRMアバターを同時に駆動できます。

セットアップ

  1. トラッキングパネルのウェブカメラトラッキングセクションで、ウェブカメラトラッキングを有効化をオンにします。初回有効化時に専用のトラッキングソースカード(MediaPipeウェブカメラ)が自動作成されます。
  2. カードをクリックして設定パネルを展開し、使用するカメラデバイスを選択して、実行するトラッキングタスクにチェックを入れます。
  3. カード内の顔、体、手ボタンをクリックし、対象のアバターを割り当てます。
  4. 自然な表情で正面を向いて背筋を伸ばし、カード下部のキャリブレーションボタンをクリックします。

macOS環境では、カメラの初回起動時にOSのカメラアクセス許可ダイアログが表示されます。以前にアクセスを拒否した場合は、トラブルシューティングを参照してください。

ソース設定

ウェブカメラのソースはシステム全体で1つのみ管理され、そのオン/オフはウェブカメラトラッキングを有効化マスタースイッチで直接切り替えます(カード内に個別の電源スイッチはありません)。このスイッチは、ネットワークソースを制御するフェイストラッキングを有効化やポーズトラッキングを有効化から完全に独立しています。マスタースイッチをオフにしてもタスク選択やアバター割り当ては保持され、再度オンにすれば他のソース割り当てを変更することなく即座に復元されます。

設定説明
カメラ使用するカメラデバイス。デフォルトのカメラはシステムのデフォルト入力に従います。切断されたデバイスは利用できないカメラと表示されます
フェイストラッキング表情と頭部回転を検出。既定値はオン
ハンドトラッキングLive2Dの手入力、およびVRMアバターの腕と指のボーンを検出。既定値はオン
ボディトラッキングVRMアバターの胴体と脚の動きを検出。既定値はオフ
トラッキングを左右反転既定値はオン。アバターが鏡のように動き、ユーザーの右手がアバターの左手を動かします。オフ時は左右を反転しません
処理方式CPU(既定値)またはGPUから選択。GPU処理はトラッキングフレームレートを向上させますが、アバター描画とGPUリソースを共有します
〈アバター名〉の手の動きウェブカメラの手入力が割り当てられたVRMアバターごとの個別設定。腕と指(既定値)または指のみを選択可能。詳細はVRMを参照

チェックを入れた有効なタスクのみがメモリに読み込まれ、常駐実行されます。カメラの切り替え、タスクのオン/オフ、または処理方式の変更を行うと、カメラパイプラインが再初期化されます。

WebコンソールとプラグインAPIは、デスクトップと同じソース、タスク、割り当て設定を共有します。カメラ一覧の選択、キャリブレーション実行、リアルタイムプレビューはデスクトップアプリ限定の機能です。

アバターの割り当て

1つのアバターを割り当てボタンを持つネットワークソースカードとは異なり、ウェブカメラカードには顔、体、手の3つの独立したチャンネル割り当てボタンが用意されています。いずれも複数選択ダイアログを開きますが、体にはVRMアバターのみが一覧表示されます。アバターの各チャンネルには一度に1つのソースのみを紐付けられるため、ウェブカメラと外部ハードウェアをチャンネルごとに組み合わせて運用できます。

これにより、同一アバターにおいてLAPLACE Persona Trackerから顔、mocopiから身体、ウェブカメラから指先の入力を受けるといった柔軟な構成が実現します。他ソースがすでに同一チャンネルを制御しているアバターにチェックを入れると、トラッキングの再割り当て確認ダイアログが表示されます。タスクをオフにすると、そのタスクに割り当てられていたアバターの該当チャンネルは更新を停止し、Personaが他ソースへ自動的にフォールバックすることはありません。

他のトラッキングソースと同様に、1台のウェブカメラから複数のアバターを同時に駆動でき、すべてのアバターへ同一の検出データがリアルタイムに配信されます。

キャリブレーション

キャリブレーションボタンはカード下部のステータスバーに配置されており、設定完了後は再キャリブレーションへと表示が切り替わります。カメラ視野内に顔、手、身体のいずれかが検出されている場合のみクリック可能です。プレビュー下部の案内文に従い、自然な表情で正面を向いて背筋を伸ばした姿勢で実行してください。

  • 顔:現在の頭部向きと表情筋の状態をニュートラルな基準姿勢として記録します。頭部の回転角度や傾きはこの基準からの変位として計測され、表情のブレンドシェイプも脱力状態をゼロ点として算出されます。キャリブレーションを実行するまでは、最初に検出された顔フレームが一時的なニュートラル値として適用されます。
  • 手:VRMアバターにおいて、キャリブレーション後に片手のみが画面内に映った最初のフレームでカメラからの距離と高さを記録し、アバターの腕の届くスケール基準を算出します。
  • 体:現在の身体の向きと立ち位置を、身体回転およびワールド移動の原点として確定します。膝を曲げた姿勢を静止姿勢基準として誤判定することはありません。

カメラの再起動やトラッキングを左右反転の切り替えを行うと、現在のキャリブレーションデータは破棄されリセットされます。

プレビューとフレームレート

カード下部のウェブカメラトラッキングのプレビューには、MediaPipeが検出した特徴点(目、唇の輪郭、手のボーン、身体のポーズ関節点)がワイヤーフレーム線画として描画されます(トラッキングを左右反転が有効な場合は線画も反転)。プライバシー保護のためカメラの生映像は一切表示されず、パイプラインの処理間隔中も最新の特徴点を維持し、フレーム間の補間処理は行われません。上部のステータス行には現在のソース状態と、検出フレームレート(例:tracking · 30 FPS)が表示されます。

トラッキングフレームレートは毎秒完了したアルゴリズムの検出サイクル数を示し、FPSカウンターを表示で確認できるステージ描画フレームレートとは完全に独立しています。Personaはカメラハードウェアへ最大60fpsのキャプチャを要求しますが、実際の到達フレームレートはカメラの物理出力仕様、有効なタスク数(各タスクは毎フレーム順番に直列実行されます)、および処理方式に左右されます。高性能GPUを使用してもカメラ本来のキャプチャ上限を超えることはできず、また有効タスクを増やすごとに処理負荷によるフレームレート低下が生じる可能性があります。

ステータス

カード本体およびウェブカメラトラッキングを有効化スイッチ横の表示は、カメラの視覚検出状態に基づいて判定される標準のステータスに従います:

ステータス説明
offウェブカメラトラッキングを有効化がオフ、またはすべての個別タスクが無効化されている
waiting…カメラデバイスの起動処理中、またはフェイストラッキングが無効で手や身体が検出されていない
tracking有効なタスクのいずれかが顔、手、身体の検出に成功している(画面内に顔が映っていなくても表示可能)
no faceフェイストラッキングが有効だが顔が検出されず、手や身体も画角外にある

リアルタイムプレビュー上部のステータス行には、コンポーネント読み込み中にstarting…、初期化失敗時にunavailableとエラーメッセージ、および再試行ボタンが表示されます。フェイストラッキングとポーズトラッキングの各メインパネルに表示される集約ステータスは、ネットワークソースのみを対象として集計されます。

各タスクによる駆動対象

Live2D

  • 顔:モバイルトラッキングと同様のマッピング機構を用い、FaceAngleXやMouthOpenなどの派生パラメータおよび標準ARKit*入力をモデルのパラメータバインドを介して適用します。
  • 手:28種類の標準手の入力を出力し、同様にモデルのパラメータバインドを通じてCubismパラメータへ伝達されます。
  • 体:Live2Dモデルでは駆動対象が存在しません。Live2Dには人型骨格リグが存在しないため、Personaが胴体や四肢の制御パラメータを自動合成することはありません。

VRM

  • 顔:モバイルアプリと同様に表情、視線、頭部回転を制御し、パーフェクトシンクにも完全対応します。
  • 手:腕と指設定時は、肩、腕、手首、指のボーンを駆動します。検出された手首の画面座標を腕の逆運動学(IK)ターゲットとし、アバター固有の腕長に合わせて姿勢を算出します。指のみ設定時は、指ボーンの回転のみを制御します。
  • 体:胴体と下肢のボーン姿勢を駆動し、アルゴリズムによる推定値に基づいてアバターを平行移動させます。左右および上下の移動量は画面内の投影位置を追従し、前後の奥行き移動量は胴体の投影サイズ変化から推定されて±0.5m以内に制限されます。絶対的な空間移動追従ではなく、足元を床面に固定する処理も行いません。

ボディトラッキングが腕のボーンを動かすことはなく、腕のポーズはハンドトラッキングによってのみ駆動されます。独立したフェイスソースが該当アバターへ割り当てられている場合、頭部および頸部の回転制御は常にフェイスソースが優先されます。

VMCやmocopiとの連携

VMCやmocopiでVRMの身体を動かす場合、肩や肘の関節制御は全身モーキャプソースが完全に担い、ウェブカメラのハンドトラッキングはその上に手首と指の相対回転をレイヤー合成します。指のみモードを選択した場合は、手首の回転制御権も身体ソース側へ保持されます。

手の入力

ハンドトラッキングは、Live2Dのパラメータ割り当てに対して以下の入力パラメータを提供します(エディタ内では手グループに分類)。命名規則はVTube Studioのハンドトラッキング規格に準拠し、さらにHandLeftAngleYおよびHandRightAngleYを拡張しています。各HandLeft…入力には対称となるHandRight…入力が対になって存在します:

入力範囲説明
HandLeftFound0 – 1該当する手が画面内で検出されている間は1
HandLeftPositionX、HandLeftPositionY、HandLeftPositionZ−10 – 10手首座標。Xは外側方向、Yは上方向、Zはカメラ手前方向(手のひらサイズから推定)
HandLeftAngleX、HandLeftAngleZ−180° – 180°手首のオイラー回転角
HandLeftAngleY−90° – 90°手首のヨー回転角
HandLeftOpen0 – 15本の指の開き具合の加重平均値
HandLeftFinger_1_Thumb … HandLeftFinger_5_Pinky0 – 1各指の伸展度(完全に伸ばした状態で1)
BothHandsFound0 – 1両手が同時に画角内で有効検出されている間は1
HandDistance0 – 10両手首間のユークリッド空間距離

独自の手動バインドを持たないLive2Dモデルでは、手の入力名と同一の名称を持つCubismパラメータが自動的にバインドされ、パラメータ自身に定義された数値範囲が尊重されます(たとえば±1の範囲で設計されたパラメータが±10へ過剰入力されることはありません)。

制限事項

  • MediaPipeの顔ブレンドシェイプはARKitの命名規約に準拠していますが、モデル仕様上舌の検出に対応していないため、tongueOutは動作しません。単眼ウェブカメラの映像はiPhoneのTrueDepthセンサーによる深度計測と同等ではありません。
  • すべての空間座標は単一のRGB画像から算出されます。手の奥行きは手のひらサイズから、身体の奥行きは上半身の投影面積から推定されます。これらは視覚的推定値であり、物理センサーによる実測位置ではありません。
  • 手が遮蔽されたり、両手が重なり合ったり、画角外へ外れたりした場合、無理な推測を行わず即座に対象手のトラッキングを破棄します。ボディトラッキングの正常動作には、両肩と両腰が安定して画角内に収まっている必要があります。
  • VRMアバターでは、トラッキング対象を一瞬見失った場合、直前の姿勢を200ミリ秒保持したのち約0.4秒かけて下層の静止姿勢へとスムーズに補間復帰します。Live2Dモデルでは、手を見失うとFound入力が0へ落ち、他の入力パラメータは最終有効値を保持することで、モデル側のフェードアウトモーションが自然に完結できるように設計されています。

プライバシーとセキュリティ

トラッキングアルゴリズムはすべてローカル端末上で完結して実行されます。MediaPipeの機械学習モデルはPersonaクライアント内に同梱されており、実行時に外部から追加ダウンロードを行うことはありません。カメラの生映像がネットワークへ送信されることや、Personaの描画サンドボックス外へ漏洩することは一切ありません(操作ウィンドウ内のプレビューも抽象化された特徴点データのみを受信します)。MediaPipeの公式ライブラリに既定で含まれるGoogleへの利用統計送信処理についても、Persona内部で完全に遮断しています。詳細なデータ保存方針についてはプライバシーとセキュリティを参照してください。

トラブルシューティング

「カメラへのアクセスが拒否されました」

OSのシステム設定でPersonaに対するカメラアクセスを許可し、Personaを再起動してください。macOSでの設定項目はシステム設定 → プライバシーとセキュリティ → カメラです。アクセス権限の変更はPersonaの再起動後に反映されます。

「カメラを利用できません」

カメラデバイスが物理的に抜かれているか、他アプリケーションによって占有されています。設定パネルで別のカメラを選択するか、再試行をクリックしてください。

「ウェブカメラトラッキングを開始できませんでした」

トラッキングエンジンの読み込みに失敗しました。再試行をクリックしてランタイムの再初期化を実行してください。

最終更新日:2026年10月11日

Tech otakus destroy the world