00:00 / 00:00

Persona

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

ウェブカメラのソースは、Personaを実行しているコンピュータに接続したカメラで、顔・手・体をトラッキングします。GoogleのMediaPipeをそのコンピュータ上で動かすので、スマートフォンもモーションキャプチャアプリも要りません。ネットワーク経由のソースとも組み合わせられます——顔はスマートフォンから、体はmocopiから、指はウェブカメラから、という具合です。1台のカメラで複数のLive2DアバターやVRMアバターを動かせます

設定

  1. トラッキングウェブカメラトラッキングセクションで、ウェブカメラトラッキングを有効化をオンにします。初回はこれでウェブカメラのソースが作られ、MediaPipeウェブカメラという名前のカードが現れます
  2. カードをクリックして設定を開き、カメラを選んで、動かすタスクを決めます
  3. カードののボタンでアバターを割り当てます
  4. 自然な表情で正面を向いてまっすぐ立ち、カードの下にあるキャリブレーションをクリックします

macOSでは、カメラが初めて起動するときにシステムがカメラへのアクセス許可を求めます。拒否した場合はトラブルシューティングを参照してください

ソースの設定

ウェブカメラのソースは1つだけで、ウェブカメラトラッキングを有効化がそのスイッチです——カード自体にはスイッチがありません。このスイッチは、ネットワーク経由のソースを切り替えるフェイストラッキングを有効化ポーズトラッキングを有効化とは独立しています。オフにしてもタスクの選択とアバターの割り当ては残り、オンに戻すと、他のソースの割り当てには触れずにそのまま再開します

設定効果
カメラ使うカメラ。デフォルトのカメラはシステムの既定に従います。接続されていないカメラは利用できないカメラと表示されます
フェイストラッキング表情と頭の動き。既定はオン
ハンドトラッキングLive2Dの手の入力と、VRMアバターの腕と指。既定はオン
ボディトラッキングVRMアバターの胴体と脚。既定はオフ
トラッキングを左右反転既定はオン。アバターが鏡に映った自分のように動き、右手でアバターの左手が動きます。オフにすると左右は入れ替わりません
処理方式CPU(既定)またはGPU。GPUはトラッキングのフレームレートを上げられますが、アバターの描画とグラフィックスカードを共有します
〈名前〉の手の動き手をウェブカメラでトラッキングしているVRMアバターごとに1行。腕と指(既定)または指のみVRMを参照

有効なタスクだけが読み込まれて動きます。カメラ、タスク、処理方式のいずれかを変えると、カメラが再起動します

WebコンソールプラグインAPIは、同じソース、タスク、割り当てを編集します。カメラの一覧、キャリブレーション、プレビューはデスクトップアプリにしかありません

アバターの割り当て

ネットワーク経由のソースのカードにはアバターを割り当てボタンが1つですが、ウェブカメラのカードにはの3つがあります。どれも同じ複数選択を開き、にはVRMアバターしか並びません。アバターはこの3つをそれぞれ1つのソースから受け取るので、ウェブカメラとデバイスのトラッキングを組み合わせられます

たとえば1体のアバターで、顔をLAPLACE Persona Trackerから、体をmocopiから、指をウェブカメラから受け取れます。同じチャンネルで別のソースがトラッキングしているアバターを選ぶと、他のソースと同じくトラッキングの再割り当てダイアログが開きます。タスクをオフにすると、それに割り当てたアバターのそのチャンネルはトラッキングされなくなります。Personaが別のソースに自動で切り替えることはありません

他のソースと同じく、1台のカメラで複数のアバターを同時に動かせます。どのアバターにも同じトラッキングデータが届きます

キャリブレーション

キャリブレーションはカードの下のステータス行にあり、キャリブレーション済みになると再キャリブレーションに変わります。カメラが顔・手・体のいずれかを捉えているときに使えます。プレビューの下のヒントが取るべき姿勢を示しています。自然な表情で正面を向き、まっすぐ立ってからキャリブレーションしてください

  • ——その瞬間の頭の姿勢と表情がニュートラルになります。頭の角度と前後の傾きはこれを基準に、表情はリラックスした顔を基準に測られます。キャリブレーションするまでは、カメラが最初に捉えた顔がニュートラルとして使われます
  • ——VRMアバターでは、キャリブレーション後に片手だけが映った瞬間に、カメラから手までの距離と手の高さを記録し、腕の届く範囲をそれに合わせます
  • ——向いている方向と立っている位置が、向きと移動の原点になります。曲げた脚を静止ポーズとして扱うことはありません

カメラを再起動するか、トラッキングを左右反転を切り替えると、キャリブレーションは破棄されます

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

カードの下のウェブカメラトラッキングのプレビューは、MediaPipeが見つけたランドマーク——顔の目・口・輪郭、手、体——を線で描き、トラッキングを左右反転がオンなら左右反転して表示します。カメラの映像は一切表示せず、結果と結果のあいだは最新のランドマークを保ち、更新の間を補間することはありません。その上のステータス行にはソースの状態と、トラッキング中はトラッキングのフレームレートがtracking · 30 FPSのように表示されます

トラッキングのフレームレートは1秒間に完了した更新の回数で、FPSカウンターを表示が示すステージのフレームレートとは別物です。Personaはカメラに最大60fpsを要求しますが、実際の値は、カメラが実際に出せるフレームレート、有効なタスクの数——各フレームで順番に実行されます——、そして処理方式で決まります。速いGPUでもカメラより速くフレームを用意することはできず、タスクを増やすほどフレームレートは下がりえます

ステータス

カードと、ウェブカメラトラッキングを有効化の横の表示には、他のソースと同じステータスの値が出ますが、判定はカメラが検出したものに基づきます:

ステータス意味
offウェブカメラトラッキングを有効化がオフ、またはすべてのタスクがオフ
waiting…カメラの起動中、またはフェイストラッキングがオフで手や体が検出されていない
tracking有効なタスクが顔・手・体のいずれかを検出している。顔が映っていなくてもtrackingになりえます
no faceフェイストラッキングはオンだが顔が見えず、手や体も検出されていない

プレビューの上のステータス行には、カメラとトラッカーの読み込み中はstarting…、失敗したときはunavailableが、メッセージと再試行ボタンとともに表示されます。フェイストラッキングポーズトラッキングの状態は、ネットワーク経由のソースだけを数えます

各タスクが動かすもの

Live2D

  • はスマートフォンと同じマッピングを通ります。FaceAngleXMouthOpenなどの導出された入力とARKit*入力が、モデルのパラメータの割り当てを通じて届きます
  • は28個の手の入力を提供し、同じくモデルの割り当てを通じてパラメータに届きます
  • はLive2Dでは動かす対象がありません。Live2Dにはヒューマノイドのリグがなく、Personaが胴体や手足のパラメータを作り出すこともありません

VRM

  • はスマートフォンと同じように表情・視線・頭を動かし、パーフェクトシンクもそのまま使えます
  • 腕と指なら肩・腕・手首・指を動かします。画像内の手首の位置が腕の目標点になり、アバターの腕の長さに合わせて姿勢が計算されます。指のみは指のボーンだけを動かします
  • は胴体と脚を回転させ、推定した分だけアバターを移動させます。左右と上下は画像内のあなたの位置に従い、前後は胴体の見た目の大きさから判断して±0.5 mまでに制限されます。歩行時の絶対位置は取得できず、足を地面に固定することもありません

ボディトラッキングは腕を動かしません。腕のジェスチャーはハンドトラッキングから来ます。フェイスソースがアバターを動かしている間は、頭と首はそちらが担当します

VMCやmocopiとの併用

VMCmocopiがアバターの体を動かしているときは、肩と肘はそのソースのままで、ウェブカメラの手はその上に手首と指の回転を重ねます。指のみにすると、手首も体のソースのままになります

手の入力

ハンドトラッキングは、Live2Dのパラメータの割り当てに次の入力を提供します。エディタではのグループにまとまっています。名前はVTube Studioのハンドトラッキングに従い、HandLeftAngleYHandRightAngleYを加えたものです。HandLeft…の入力にはそれぞれ対になるHandRight…があります:

入力範囲意味
HandLeftFound0 – 1その手を検出している間は1
HandLeftPositionXHandLeftPositionYHandLeftPositionZ−10 – 10手首の位置。Xは外側、Yは上、Zはカメラ側が正で、Zは手のひらの大きさから推定
HandLeftAngleXHandLeftAngleZ−180° – 180°手首の回転
HandLeftAngleY−90° – 90°手首の回転
HandLeftOpen0 – 15本の指の平均
HandLeftFinger_1_ThumbHandLeftFinger_5_Pinky0 – 1各指。伸ばすと1
BothHandsFound0 – 1両手を検出している間は1
HandDistance0 – 10両手首の距離

独自の割り当てを持たないモデルでは、手の入力と同じ名前のCubismパラメータが自動で割り当てられます。範囲はそのパラメータ自身のものを使うので、±1で作られたパラメータが±10として動かされることはありません

制限

  • MediaPipeの顔のブレンドシェイプはARKitの名前に沿っていますが、舌は含まれないのでtongueOutは動きません——ウェブカメラの映像はiPhoneのTrueDepthカメラの代わりにはなりません
  • 位置はすべて1枚の画像から推定します。手の距離は手のひらの大きさから、体の前後は胴体の大きさから求めます。測定した位置ではなく推定値です
  • 隠れた手、もう片方と重なった手、画面の外に出た手は、推測せずに除外されます。ボディトラッキングには両肩と両腰が映っている必要があります
  • VRMでは、一瞬見失った手や体を200ミリ秒保持し、その後約0.4秒かけて下の姿勢へ戻します。Live2Dでは、見失った手のFound入力が0になり、ほかの入力は最後の値を保つので、リグ側のフェードが最後まで再生されます

プライバシー

トラッキングはすべてこのコンピュータ上で動き、MediaPipeのモデルはアプリに同梱されているので、起動時にモデルをダウンロードする必要はありません。カメラの映像がPersonaの外に出ることはなく、コントロールウィンドウのプレビューが受け取るのもランドマークだけです。MediaPipeのライブラリは本来Googleへ利用統計を送信しますが、Personaはその通信をブロックしています。何が保存され、誰が読み取れるかはプライバシーとセキュリティを参照してください

トラブルシューティング

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

システム設定でPersonaにカメラの使用を許可してから、Personaを再起動してください。macOSではシステム設定 → プライバシーとセキュリティ → カメラにあり、変更した許可はPersonaを再起動するまで反映されません

"カメラを利用できません"

カメラが外されたか、別のアプリが使用しています。別のカメラを選ぶか、再試行をクリックしてください

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

トラッカーを読み込めませんでした。再試行をクリックして読み込み直してください

最終更新日:2026年9月19日

Tech otakus destroy the world