00:00 / 00:00

Persona

パラメータの割り当て

適用対象Live2D

パラメータ割り当てエディターでは、トラッキング入力のキャリブレーション、入力ソースと合成の重み、入力/出力範囲、カスタムレスポンスカーブを設定し、トラッキングデータがCubismモデルの各パラメータをどのように駆動するかを調整できます。

Personaはモデルに付属する.vtube.json設定ファイルを優先的に読み込むため、VTube Studioで調整済みのモデルをそのままの設定で利用できます。本エディターではその設定をベースにさらなる微調整や拡張を行えます。すべての変更はモデルと同じフォルダーにある専用の設定ファイルへ保存され、元の.vtube.jsonを書き換えることはありません。

エディターを開く

レイヤーリストでLive2Dレイヤーを選択し、インスペクターパネル下部のパラメータセクションを展開します(既定では折りたたまれています)。

本ページでは主にLive2Dのトラッキングパラメータの割り当てについて解説します。VRMアバターのフェイストラッキングはプリセットの表情シェイプやヒューマノイドボーンを直接駆動し、ゲームパッドやコントローラーは仮想バインディングターゲットを介して割り当てられます。

各入力ソースはカードとして一覧表示され、その下に駆動先のパラメータが並びます。任意のパラメータ行をクリックすると、カード内のその場で割り当ての詳細とレスポンスカーブエディターが展開されます。フィルター条件、カードの折りたたみ状態、展開中の割り当てやキャリブレーションバーは、セッション中モデルインスタンスごとに記憶されます。

入力カードとツールバー

パネル上部のツールバーでは、検索・絞り込み・一括操作を行えます。

  • 入力とパラメータを検索:入力ラベル、元のID、割り当てのカスタム名、駆動先のパラメータ名やIDを対象に検索します。
  • 表示する入力:使用中とすべての入力を切り替えます。使用中はモデルに割り当てがある場合の既定表示で、割り当てが読み取る入力のみを表示します。すべての入力は利用可能な全入力ソースを表示します。
  • 入力カテゴリ:カテゴリ別にカードを絞り込みます。すべてのカテゴリのほか、頭、目、眉、口、手、マウス、時刻、ランダム、52種類の生ARKitチャンネルを含むパーフェクトシンク、および接続中のコントローラー設定ごとのグループを選択できます。
  • 割り当てを追加:全入力語彙から任意の入力ソースを選択し、使用中ビューにそのカードを固定表示してパラメータピッカーを直接開きます。
  • すべてキャリブレーション:使用中でデータを受信しているすべての入力を同時に記録・キャリブレーションします(詳細は後述の入力のキャリブレーションを参照)。
  • キャリブレーションをリセット:このモデルのすべての入力のキャリブレーションを一度の操作(1ステップで取り消し可能)で消去します。
  • すべて折りたたむ / すべて展開:リスト内のすべての入力カードを一括で折りたたむか展開します。

手の入力はWebカメラのハンドトラッキングによって取得されます。詳細はWebカメラトラッキングを参照してください。口グループにはマイク音声から生成されるVoice*入力も含まれます。詳細はリップシンクを参照してください。

各入力カードのヘッダーには次の項目が表示されます。

  • 入力のローカライズされたラベルと元のID
  • 現在値とリアルタイムのレベルバー
  • キャリブレーションボタン(調整済みの入力にはキャリブレーション済みバッジと範囲目盛りも表示。ランダム入力カードには代わりに発動設定ボタンを表示)
  • +(パラメータを追加)ボタン

カード下部には、その入力が駆動しているパラメータ行が縦のレールで接続されます。各パラメータ行には次の項目が表示されます。

  • 左端に、リアルタイムのサンプリングドット付きミニレスポンスカーブ(展開しなくてもカーブ形状を一目で確認可能)
  • 割り当て名と元のパラメータID
  • 入力範囲 → 出力範囲の要約とスムージング値
  • パラメータの現在出力値

元のIDは.vtube.json、.cdi3.json、プラグインAPIと共通の識別子です。テキストとして選択できるため、そのままコピーできます。

パラメータ行およびパラメータピッカーには以下のステータスタグが表示される場合があります。

タグ意味
+Nこの割り当てがさらにN個の入力ソースを合算している
物理演算物理演算エンジンもこのパラメータへの書き込みを行う
物理演算へ入力物理演算システムがこのパラメータを入力として参照(ピッカー表示)
未定義割り当て先のパラメータIDが現在のモデルに存在しない
⋯を置き換え選択すると既存の割り当てが移動し、重複ルールが作成されない
⋯に重ねるランダムパルスの割り当てが既存の割り当ての上に重なり、同じパラメータを共有

ある入力が他の割り当ての副次項として合算されている場合、カード下部にあわせて加算ラベルとクリック可能なチップが表示され、クリックすると該当する割り当てへ直接ジャンプして展開できます。

カード右上の+(パラメータを追加)またはツールバーの割り当てを追加をクリックするとパラメータピッカーが開きます。パラメータ名やグループ分けはモデルの.cdi3.jsonから直接読み込まれます。ファイルが存在しない場合、識別用のメタデータがないためリストは空になります。

すでに他の割り当てで使用されているパラメータも選択可能です。リストには現在の駆動元(⋯を置き換え)が表示され、選択すると新しい重複ルールを作成するのではなく、既存の割り当てを現在の入力へと移動させます。これにより、複数のルールが同一パラメータへ同時に書き込んで競合するのを防止します。パラメータ側に設定されていた既存のマッピング(出力範囲、スムージング、カーブ、カスタム名)はすべて保持され、入力ソースとその入力範囲のみが切り替わります。

マウスと時刻の入力

マウスと時刻のグループはカメラなしで使えます。

入力ID範囲説明
カーソルXMousePositionX−1..1カーソルがある画面上での位置。右方向に増加
カーソルYMousePositionY−1..1カーソルがある画面上での位置。上方向に増加
時刻(24時間制)Time24h0..11日のうちの経過割合
時刻(12時間制)Time12h0..1Time24hと同様だが、正午と午前0時で一周する

マウス入力のIDはVTube Studioの命名規則に準拠しています。マウス入力はフェイストラッキングやトラッキングの全体スイッチから独立しているため、カメラをオフにしていても目線、頭の角度、デスクペットの手足などを動かせます。入力として取得できるのはカーソル位置のみです。マウスボタンは代わりにショートカットのトリガーとして使えます。

時刻入力は、Personaを実行しているデスクトップコンピュータのローカル時計を使用します(Webコンソールから編集している場合も同様)。たとえば06:00では、Time24hは0.25、Time12hは0.5になります。割り当ての計算では滑らかな動きのためにミリ秒単位の小数が保持されますが、画面上のリアルタイム表示は整数の秒に切り捨てられるため、静止時も値が安定し、正午や午前0時にのみ一周します。

時刻は描画フレームごとに1回サンプリングされ、Live2DとVRMアバターで共有されます。フェイストラッキングをオフにしたり切断したりしても、時刻は割り当てを駆動し続けます。パラメータを時刻入力に割り当てると(既存の割り当てを時刻に移行する場合を含む)、スムージング係数が自動的に0(smoothing: 0)になります。そうしないと、午前0時や正午の一周時にスムージングによる逆スキャンが生じるためです。始点と終点の値が一致するカーブにすると、周期の境界での急なジャンプを防げます。

フェイストラッキングと時刻入力を組み合わせた割り当てでは、トラッキングが途切れたときの動作をトラッキングロス時で決めます。アイドルに戻る(idle)はトラッキング成分をフェードアウトさせて時刻のみの結果へクロスフェードし、最後のポーズを保持(hold)は最後のトラッキング姿勢を維持したまま時刻を進め続けます。

ランダムパルス入力

ランダムグループには、独立して自動発動する8つの入力(ランダムパルス1 ~ ランダムパルス8、IDはRandomPulse1~RandomPulse8、範囲0..1)があります。各パルスは通常0で待機し、それぞれの設定に従ってランダムなタイミングで1まで立ち上がってから戻ります。カメラは不要で、フェイストラッキングのオン・オフや接続状態にも影響されないため、耳ぴこ、尻尾の揺れ、まばたき、アクセサリーのきらめきなどのランダムな動きを簡単に作れます。

ランダムパルスカードの発動設定をクリックすると、時間設定バーが開きます(単位はすべて秒で、待機時間と持続時間は発動のたびに抽選されます。リセットで初期値に戻せます)。

コントロール範囲既定値説明
間隔0.1–36000.5 → 4.51回の発動が終わってから次の発動が始まるまでの最短・最長待ち時間
持続時間0.1–36000.58フェードを含む1回の発動の最短・最長時間。両端に同じ値を入れると一定時間になる
フェードイン0–36000.29発動開始時に0から1へ立ち上がる時間
フェードアウト0–36000.29発動終了時に1から0へ戻る時間

抽選された持続時間がフェードインとフェードアウトの合計より短い場合、両方のフェードが比率を保って短縮されます。既定の発動設定はVTube Studioの自動まばたきと同じタイミングです。

ランダムパルスのみを入力とする割り当ては、そのパラメータを動かす他の入力の上に重ねて発動するため、通常の割り当てと同じ出力パラメータを共有できます。

  • パラメータピッカーでは、すでに他の割り当てが駆動しているパラメータは「⋯を置き換え」ではなく「⋯に重ねる」と表示されます。たとえば、ParamEyeLOpenをEyeOpenLeftで駆動したまま、RandomPulse1の割り当てを重ねてパルス発動のたびに目を閉じさせることができます。
  • 発動中は、パラメータの現在値から出力範囲の発動側の端(outRange[1]、またはカーブが向かう端)へ滑らかに補間されます。非発動時は何も書き込まず元の値をそのまま通します(ただし、パルス割り当ての待機出力がパラメータの初期値と異なる場合は、他にそのパラメータを駆動する割り当てがない間その待機値を保持します)。
  • ランダムパルスで新しい割り当てを作成すると、出力範囲はパラメータの初期値から遠い方の端(初期値が1で範囲が0..2のパラメータでは1 → 0)に初期化され、立ち上がりと戻りはパルスのフェードイン・フェードアウトで制御されるためスムージングは0になります。
  • 入力の組み合わせでは、ランダムパルスの割り当てには他のランダムパルス入力のみを追加できます。

入力のキャリブレーション

キャリブレーションでは、実際の表情や動きの可動域をその入力本来のレンジへどうマッピングするかを、各割り当てが値を読み取る前の段階で調整します。入力カードのキャリブレーションボタンをクリックするとキャリブレーションバーが開きます(時刻とランダム入力にはありません)。

キャリブレーションは割り当てより前の段階で適用されるため、同じアバター上のすべての割り当てで調整後の信号が共有されます。プラグインAPIから注入された入力やVRMコントローラー割り当ても同様です。

キャリブレーションバーには次のコントロールがあります。

  • 下限と上限:実際に無理なく届く最小値・最大値で、入力本来のレンジの両端へマッピングされます。FaceAngleZ(顔の回転の動き)は、他の頭部角度や一般的なリグの±30°割り当てに合わせて±30°へマッピングされます。
  • 静止位置:力を抜いたときの入力の位置で、本来のレンジの中央へマッピングされます。左右や上下の可動域が非対称でも、力を抜いた状態できれいに中央へ収まります。静止位置のハンドルと数値欄があるのは、レンジの中央で静止する入力(頭の角度、視線、コントローラースティックなどの符号付き入力、およびMouthSmile、VoiceFrequencyPlusMouthSmile)のみです。
  • ミラー:静止位置のある入力で、下限と上限を静止位置を中心に常に対称に保ちます。このとき静止位置をドラッグすると有効帯域全体が平行移動します。

ハンドルをドラッグする代わりに、実際の可動域を記録することもできます。

  1. カードの記録(またはツールバーのすべてキャリブレーション)をクリックします。
  2. 静止した状態から始めます。最初の読み取り値が静止位置になります。
  3. 両端まで大きく動かすと、下限と上限が自動的に広がります。
  4. 完了したら停止をクリックします。

記録中の変化量が本来のレンジの2%未満だった入力は変更されません。カードのリセットをクリックするとその入力のキャリブレーションを消去し、ツールバーのキャリブレーションをリセットをクリックするとこのモデルのすべての入力のキャリブレーションを一括で消去します。

キャリブレーションは区分線形マッピングとして動作し、下限・上限を超えた入力はそのまま傾きに沿って外挿されます。最終的なパラメータ出力をクランプするかどうかは、各割り当ての範囲内に制限スイッチで決まります。

割り当ての詳細

入力カード配下のパラメータ行をクリックすると、カード内のその場で割り当ての全設定項目が展開されます。上部ヘッダーには、入力と駆動先のパラメータがそれぞれの元のIDとともに表示されます。

  • パラメータを変更:ヘッダーのパラメータをクリックすると、割り当て先を別のパラメータに切り替えられます。入力ソース、入力範囲、スムージング、カーブ形状、カスタム名はそのまま維持され、出力範囲のみが新しいパラメータ本来のレンジに合わせて更新されます。選んだパラメータをすでに別の割り当てが駆動している場合は、この割り当てがそれを置き換えます。
  • 削除:この割り当てを削除します。
  • 名前:割り当ての名前を変更します。Escキーで未保存の名前編集を破棄でき、空欄にするとパラメータ本来の名前に戻ります。

割り当てられているパラメータIDが現在のモデルに存在しない場合、行に未定義のタグが付き、その割り当てが現在効果を発揮しないことが示されます(モデルの載せ替え時によく見られます)。

入力と重み

入力の組み合わせには、この割り当てに合算されるすべての入力ソースが一覧表示され(入力を追加から追加可能)、それぞれに独立した乗算重み×が設定されます。複数の入力が重み付け合算された後、後続のマッピングパイプラインへと渡されます。重みの値は入力欄からフォーカスが外れた際に自動的に確定され、ディスクへ保存されます。

ある入力のデータが現在のフレームで欠落している場合は自動的に0として扱われ、すべての入力ソースにデータが存在しない場合にのみ割り当ての計算がスキップされます。この仕組みにより、blink × −0.8 + wide × 0.8のような複合信号による駆動が安定して動作し、数式内の定数オフセットは入力範囲側で自然に吸収されます。

リストの先頭にある入力ソースによって、どの入力カードの配下に表示されるかが決まります。先頭の入力を削除すると次の入力ソースの配下へと自動的に繰り越されます。最後の1つの入力は削除できません。

スムージング

スムージング係数は0〜100の範囲で、スライダーまたは数値入力で設定できます。固定の強さで平滑化するのではなく、動きの速さに応じて効き方が変わる1€(One Euro)フィルターを採用しています。素早い動作には遅延なく追従し、静止時にはジッターやノイズを効果的に抑制します。

パラメータを時刻入力(Time24hまたはTime12h)に割り当てると、正午や午前0時の一周時に逆スキャンが発生しないよう、スムージング係数は自動的に0にリセットされます。

レスポンスカーブ

すべての割り当てには、入力・出力範囲、3次ベジェ伝達カーブ、リアルタイム信号表示を割り当ての実際の単位で1つにまとめた2Dレスポンスプロットが表示されます。横軸は合算入力の本来のレンジ、縦軸は対象パラメータ本来のレンジです。出力範囲がパラメータ自体のレンジを超える場合、その外側はシェーディング表示されます(Cubismがそこでパラメータをクランプするため)。カーブ上のサンプリングドットが現在の入力・出力位置をリアルタイムに示します。

範囲

カーブの両端にある2つの端点が、そのままこの割り当ての入力範囲と出力範囲になります。プロット上で両端の端点を横方向(入力)や縦方向(出力)へ直接ドラッグして調整できるほか、プロット下部の入力(開始 → 終了)および出力(開始 → 終了)の数値欄に直接値を入力することもできます。

入力範囲を調整することで、表情の感度やしきい値を直感的にコントロールできます。たとえばMouthSmileの0.2–0.8を−1..1へマッピングすると、入力が0.8に達した時点で最大出力となります。ツールバーの反転をクリック(または出力の開始値と終了値を入れ替え)すると、マッピングの向きを瞬時に反転できます。

新規割り当て作成時、入力範囲は画一的な0..1ではなく、その入力ソース本来のレンジに合わせて自動初期化されます(頭の回転角度は度単位、ARKitチャンネルは0..1、その他は各単位に合わせて設定されます)。

プロット下部の範囲内に制限スイッチ(.persona.json内のclampOutput)は、入力が入力範囲を超えたときの挙動を制御します。

  • オンの場合、出力は出力範囲の端で止まります。
  • オフの場合、整形したカーブのない割り当て(新規の割り当てや、直線に戻すでリセットした割り当てなど)は、パラメータの物理上限・下限まで直線的に外挿されます。ポイントやプリセットで整形したカーブは端の値を保持します。

新しく追加した割り当てではオンから始まります。.vtube.jsonからインポートした割り当てはVTube Studio側のクランプ設定を引き継ぎ、clampOutputを省略して保存された割り当てはオフとして扱われます。

ベクターペンツールの操作

カーブエディタはベクターペンツールと同様の直感的なジェスチャーに対応しており、なめらかな点と角ばった点の精密な編集が可能です。

  • 点の追加:カーブの任意の位置をクリックしてアンカーポイントを挿入します。曲線部分では新しいポイントがカーブ上に置かれるため、形状は変わりません。
  • 点の移動:アンカーポイントをドラッグして位置を移動します。ポイント自身のハンドルも一緒に追従するため、進入・退出角度が維持されます。両端の範囲端点をX方向・Y方向にドラッグすると、入力範囲・出力範囲が直接調整されます。
  • カーブの調整:四角いハンドルをドラッグして曲線の曲がり具合を調整します。なめらかな点では、反対側のハンドルが直線を保ちながら同調して回転し、長さを維持してなめらかさを保ちます。
  • ハンドルの個別操作(角ばった点):Alt(macOSではOption)を押しながら四角いハンドルをドラッグすると、そのハンドルだけを単独で動かすことができ、角ばった折り目を形成できます。
  • なめらか / 角ばった点の切り替え:Alt/Optionを押しながら中間のポイントをクリックすると、角ばった点となめらかな点を切り替えます。角ばった点にすると両ハンドルがポイントに格納され、なめらかな点にすると隣接するポイントに向けて直線状にハンドルが展開されます。
  • 点の削除:中間のポイントを右クリックすると削除できます(両端の範囲端点は常に保持されます)。

中間のポイントを選択すると、プロット下部のX/Y欄に実際の物理単位で座標を直接入力できます。水平区間やしきい値を精密に合わせたい場合は、ドラッグよりも直接数値入力を行う方が確実です。

ミラー、プリセットとクイック操作

カーブキャンバス上部のツールバーには以下の機能が備わっています。

  • ミラー:割り当て範囲の中心を基準に点対称を維持します。片側のポイント、ハンドル、ステップモードを編集すると反対側も自動的にミラー更新されます。範囲が中央対称でカーブも対称な符号付き入力の割り当ては、展開時に自動でミラーがオンになります。
  • プリセット:現在の入力・出力端点間のカーブ全体を、代表的な伝達関数の形状(リニア、ステップ、反転ステップ、ベジェ、イーズイン、イーズアウト、Sカーブ、しきい値、多段ステップ)に置き換えます。
  • 反転:出力範囲の開始値と終了値を入れ替えます。
  • 直線に戻す:すべての中間ポイントを削除し、現在の入力・出力端点間を直線に戻します。

物理演算

モデルの.physics3.jsonファイルを解析し、各パラメータと物理演算シミュレーションとの関係をエディター上で明示します。

  • 物理演算へ入力:物理演算システムがこのパラメータを入力として使用します。このパラメータにトラッキングを割り当てるのは一般的な手法で、頭の回転をここへ割り当てることで髪やアクセサリーの揺れを連動させることができます。
  • 物理演算:物理演算エンジンが実行時に直接計算して値を書き込みます。ここにトラッキングの割り当ても追加すると双方の書き込みが競合するため、インスペクター上に赤字で警告が表示されます。

現在値と手動調整

トラッキングの動作中は、入力カードのレベルバー、パラメータ行のミニプロット、および展開中のレスポンスカーブ上のサンプリングドットが入力データに連動してリアルタイムに動きます。

各パラメータ行および割り当て詳細には、モーション、表情、物理演算をすべて適用した後の、モデル上でのパラメータの最終値も表示されます。この値がカーブ上のサンプリングドットとずれている場合は、他のモーションや物理演算も同時にそのパラメータへ書き込んでいます。

入力カードのレベルバーを直接ドラッグすると、その入力をテスト値に固定でき、Webカメラを使わずにモデルのポーズを付けてカーブの効き具合を調整できます。マウスを離すと通常のリアルタイムトラッキングに復帰します。ウィンドウが閉じられたり再読み込みされたり、ドラッグが正常に離されなかったりしてエディターが値を保持しなくなると、約1秒でテスト値が自動的に解除されるため、モデルが固まったままになることはありません。

取り消しとやり直し

取り消しは Cmd/Ctrl + Z、やり直しは Cmd/Ctrl + Shift + Z で実行できます。

1回のドラッグ操作が1つの履歴ステップとして記録されます。入力のキャリブレーション、カーブの編集、範囲の調整、重みの変更、入力ソースの追加や削除、割り当てルールの作成や削除は、すべて同じ操作履歴に統合されます。この操作履歴はパラメータパネル内にスコープされており、他の場所にフォーカスがある場合はシーン全体の取り消し・やり直しとして機能します。

保存先

パラメータ割り当てと入力キャリブレーションの変更は、すべてモデルと同じフォルダーにある<model>.persona.jsonに書き込まれます。表情を記憶すると同じサイドカー設定ファイルを共有します。.vtube.json形式にはカスタムレスポンスカーブ、複合重み付け入力、入力キャリブレーションを保存する仕様がないため、カスタム割り当てや入力キャリブレーションが.vtube.jsonへ書き戻されることはありません。

<model>.persona.json内では、割り当てルール(bindings)、入力ごとのキャリブレーション(calibration)、およびランダムパルスの発動設定(randomPulses)は独立した3つのトップレベルフィールドとして個別に保存されます。

  • 割り当て設定の優先順位:<model>.persona.jsonのbindings → .vtube.json → 内蔵既定値。サイドカーファイルにbindingsが保存されると、以後はその一覧だけが使われ、.vtube.jsonとマージされることはありません。これ以降にVTube Studio側で行った変更はPersona内のモデルに反映されなくなり、パネル上部にもその旨が表示されます。
  • .vtube.jsonの割り当てを維持したままキャリブレーション・パルス調整:.vtube.jsonの割り当てを使用しているモデルで入力のキャリブレーションやランダムパルスの発動設定のみを行った場合、Personaは<model>.persona.jsonにcalibrationまたはrandomPulsesフィールドのみを書き込み、bindingsはコピーしません。モデルは引き続き.vtube.jsonの割り当てを使用します。

.vtube.jsonからのインポート

モデルを初めて読み込む際、Personaは.vtube.json内のParameterSettingsリストを、作者が設定したカスタム割り当て名も含めて丸ごとインポートします。名前はいつでも編集でき、サイドカーファイルへ保存されます。空欄にするとパラメータ本来の名前に戻ります。.vtube.jsonで入力が未指定かつUseBlinking: trueになっている項目(VTube Studioで自動まばたきを使ってパラメータをランダムに動かす手法)は、RandomPulse1(出力範囲[OutputRangeUpper, 0])としてインポートされます。

入力名は3段階で照合されます。まずVTube Studio公式の入力名テーブル、次に生のARKit標準ブレンドシェイプ名、最後にVBridgerの省略記法(Left/RightをL/Rに短縮したもの)の順で判定されます。これにより、VBridger仕様で作られたリグでも、EyeSquintL、MouthDimpleR、MouthUpperUpLなどが正しく認識され、項目が抜け落ちることはありません。

VBridger独自の複合パラメータは単一の入力としては扱われず、インポート時にVBridger公式プリセットの数式に基づいて基礎入力の重み付け合算へと自動展開されます。正負の符号や比率もVBridger環境と完全に一致します。

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

Tech otakus destroy the world