トラッキングがCubismのパラメータに届く最後の一段——どの入力を、どの重みで、どの帯域へ、どんなカーブを通して割り当てるか——はここで編集します
Personaはまずモデル自身の.vtube.jsonに従うので、VTube Studioで調整したリグは作られたとおりに読み込まれます。このエディタはその上から変更を加えるもので、変更はモデルの隣のサイドカーへ書き込まれます。.vtube.jsonそのものは触りません
エディタを開く
Live2Dのレイヤーを選び、その詳細でパラメータを開きます。モデル詳細のいちばん下にあるセクションで、既定では閉じています
表示されるのはLive2Dのときだけです。VRMアバターは別の経路をたどり、トラッキングがプリセットの表情とヒューマノイドボーンを直接動かすので、あいだに割り当てるパラメータの層がありません
セクションの幅が足りていれば左右に分かれます。左が入力リスト、右が選択中の割り当ての設定です。狭いときは縦に積まれます
入力リスト
左の列には、割り当て済みのものだけでなくすべての入力が並びます。そうでないと、まだ割り当てのない入力にはプラスを押す場所がなくなるからです。ファミリーごとにまとまっていて、頭・目・眉・口、そして最後がパーフェクトシンク——52個の生のARKitチャンネルです
上部の入力を検索は、入力のラベル・そのid・割り当て自身の名前・割り当て先のパラメータをまとめて絞り込みます
各行はラベルの下に生のidが出ます。ラベルは読むためのもので、.vtube.json・.cdi3.json・プラグインAPIが話すのはidのほうです。クリックすればコピーできます。名前の下のレベルはその入力の現在値に追従します
入力の下にはそれが動かすパラメータがぶら下がり、行には次のタグが付くことがあります:
| タグ | 意味 |
|---|---|
| カーブ | この割り当てにはレスポンスカーブが付いている |
| 物理演算 | このパラメータには物理演算も書き込む |
| +N | この割り当てはさらにN個の入力を合算している |
| ⋯を置き換え | 選ぶと既存の割り当てが移動する。新しく追加されるのではない |
パラメータを追加でパラメータのピッカーが開きます。名前とその分類はモデルの.cdi3.jsonから取ります。そのファイルがないとリストは空になります。パラメータが何という名前なのかを知る手がかりがないからです。ピッカーの行にも物理演算へ入力と物理演算のタグが付きます
すでに他の割り当てが動かしているパラメータも無効にはなりません。行に現在の駆動元が表示され、それを選ぶと2本目が増えるのではなく、その割り当てが移動します。1つのパラメータに2本のルールが書き込めば争うだけで、最後に書いたほうが勝ちます。パラメータ側のマッピング(出力範囲・スムージング・カーブ・作者が付けた名前)はそのまま残り、変わるのは入力とその帯域だけです
割り当ての詳細
右の列には、選択中の割り当ての設定がすべて並びます
入力と重み
入力には、この割り当てに合算される入力が×の重みとともに並びます。合算されたあとで下のマッピングに入るので、1本の割り当てが複数の信号を同時に聞けます。重みはフォーカスが外れたときに確定します——確定のたびにディスクへ書き込むためです
そのフレームに来ていない入力は0として扱われ、入力が1つも存在しないときだけ割り当てがスキップされます。blink × −0.8 + wide × 0.8のような式が成り立つのはこのためで、定数は入力範囲が吸収します
最初の入力が、その割り当てがどの行にぶら下がるかを決めます。最初の1つを削ると次の入力の下へ移り、最後の1つは削れません
範囲
入力 下限/入力 上限はこの割り当てが見ている入力の帯域、出力 下限/出力 上限はパラメータを動かす帯域です
実際のリグでいちばんよく触られるのは入力範囲のほうです。MouthSmileの0.2–0.8を−1..1へ割り当てれば、わずかな笑みで表情が振り切ります。出力の上下を入れ替えれば反転になります
新しい割り当ては一律の0..1ではなく、その入力自身のレンジから始まります。頭の角度の単位は度、ARKitチャンネルは0..1、それ以外は無次元です
スムージング
0〜100。単純な補間ではなくOne Euroフィルタの係数です。速く動くときは食いつき、止まっているときは震えません
レスポンスカーブ
既定のマッピングは直線です。カーブを追加で入力と出力のあいだに自分で描けるカーブが挟まり、カーブを削除で外れます
カーブを手で直線に戻しても出力はカーブなしと同じですが、割り当てはカーブを持ったままです。実際に外れるのはカーブを削除を押したときだけで、行のカーブタグが消えるのもそのときです
キャンバスは両軸とも0..1に正規化され、左と下にこの割り当ての2つの範囲が表示されます。つまり見えている形は「この入力の帯域がこの出力の帯域へどう写るか」です。カーブ上の点は、現在の入力がどこに落ちているかを示します
クリックで点を追加、ドラッグで移動、右クリックで削除します。両端の点は上下にしか動きません。点を選ぶと上のX/Yの数値欄に軸そのものの単位で入力できます。プラトーをどの値で止めるかは、ドラッグで探すより打ち込むほうが正確です
区間の種類
選択中の点は、そこから右へ出る区間の進み方を決めます:
| 種類 | 進み方 |
|---|---|
| リニア | 直線 |
| ステップ | この点の値を保ち、次の点で跳ぶ |
| 反転ステップ | 次の点の値へすぐ跳んでから保つ |
| ベジェ | 3次ベジェ。区間の両端に四角いハンドルが出るので、ドラッグして整える |
最後の点には右へ出る区間がないので、種類のボタンは無効になります
プリセット
プリセットには、ドラッグの出発点になる代表的な形が入っています:リニア・イーズイン・イーズアウト・Sカーブ・しきい値・ステップ
物理演算
モデルの.physics3.jsonから、どのパラメータが物理演算の入力で、どれがその出力なのかが分かります:
- 物理演算へ入力——物理演算がこのパラメータを入力として読みます。割り当てて構いません。頭の回転を物理演算経由にしているリグはたくさんあります
- 物理演算——物理演算自身がこのパラメータへ書き込みます。ここにトラッキングも割り当てると両者が競合し、詳細ペインでも警告が出ます
現在値とスクラブ
トラッキングが動いていれば、各入力のレベルとカーブ上の点が現在値に追従します
レベルをドラッグするとその入力を任意の値に保持できるので、カメラを切ったままモデルにポーズを取らせてカーブを調整できます。放せばトラッキングに戻ります。保持したままでも数秒で自動的に期限切れになるので、ウィンドウを閉じても、再読み込みしても、ドラッグが最後まで届かなくても、モデルが取り残されることはありません
取り消しとやり直し
取り消しはCmd/Ctrl+Z、やり直しはそこにShiftを足します
1回のドラッグが1ステップです。カーブ・範囲・重み・入力の増減・割り当ての増減は、すべて同じ履歴に入ります。この履歴はパラメータセクションのものなので、フォーカスが別の場所にあるときは同じキーがシーンの取り消しに戻ります
保存先
変更はモデルの隣の<model>.persona.jsonへ書き込まれます。表情を記憶するが使うのと同じサイドカーです。割り当てが.vtube.jsonへ書き戻されることはありません——他人のフォーマットであり、カーブや重みを収める欄がないからです
読み込みの優先順位は.persona.json → .vtube.json → 内蔵の既定値です。サイドカーに割り当てが入ると以後はそちらが完全に優先され、.vtube.jsonとマージされることはありません。そのためVTube Studio側での変更はこのモデルに届かなくなり、セクションの上部にもそう表示されます
.vtube.jsonからの読み込み
初回の読み込み時に、モデルの.vtube.jsonのParameterSettingsが丸ごと取り込まれます。作者が各割り当てに付けた名前も一緒です。名前は編集でき、サイドカーへ保存されます。空にするとパラメータ自身の名前に戻ります
入力名は3段階で解決します。まずVTube Studio自身の語彙、次に生のARKitシェイプ名、最後にLeft/RightをL/Rに縮めるVBridgerの綴りです。VBridgerで作られたリグの行が落ちないのはこのためで、EyeSquintL・MouthDimpleR・MouthUpperUpLもすべて認識されます
VBridger自身の合成パラメータは入力ではありません。読み込み時に、VBridgerがそれらを計算している重み付きの和へ展開されます。式はプリセットからそのまま書き写しているので、符号も比率もVBridgerでの結果と一致します
.vtube.jsonにカーブは入っていないので、読み込まれた割り当てはどれも直線から始まります。呼吸も読み込まれません。入力を持たない時間駆動のオシレータであり、スイッチは自動呼吸にあります
最終更新日:2026年9月3日