VRMは3Dキャラクターのフォーマットで、3Dステージで描画されます。Live2Dも同じパイプラインで描画されます
3DステージはWebGPUで動作し、WebGPUが使えないマシンでは自動的にWebGLへ切り替わります。バックグラウンドスレッドで動くため、複雑なシーンによるUIへの影響を抑えられます
VRM 0.xとVRM 1.0のモデルはどちらも読み込めます。両者で異なるlook-atと表情の規約にも対応しているので、各バージョンの規約に沿ってモデルを処理します。.vrmや.glbはLive2Dモデルと同じモデルを開く…の流れで開けます
同梱アバター
2体のVRMアバターがアプリに同梱されています:
| アバター | 仕様 | ライセンス |
|---|---|---|
| Milky Green | VRM 1.0 | VRM Public License 1.0 |
| RAYNOS-chan | VRM 0.x | Sony Character EULA |
Milky Greenにはクレジット表記の義務があり——LAPLACE Live! and Milky Green aka. 明前奶绿——Personaはこれをサードパーティに関する他の表示とともに概要ダイアログに表示します。モデル自身のライセンス条項は情報ブロックのライセンスの行に表示され、作者がクレジット表記を求めている場合は印が付きます
カメラ
Live2Dモデルがドラッグと拡大縮小のできる平らなキャンバスなのに対して、VRMはオービットカメラのある3Dシーンの中に置かれます:
| ジェスチャー | 効果 |
|---|---|
| ドラッグ | アバターの周りを回る |
| 右ドラッグ | カメラの注視点を平行移動する。何かを選択中でも同じ |
| Alt / ⌥ + ドラッグ | カメラの注視点を平行移動する |
| スクロール | 寄る・引く |
動きにはLive2Dステージと同じ慣性の効いたイージングがかかり、仰角は極に届く手前で止まるのでカメラが裏返ることはありません。カメラをリセットは既定の構図に戻します。この構図はアバター自身のバウンディングボックスから算出されたものです。画角はレンズを10°から90°の間で設定します。カメラの位置は、ステージの詳細で入力やドラッグでも調整できます——カメラを参照してください
カメラはモデルではなくシーンに属するので、1つのシーン内のすべてのVRMが同じカメラを共有します
配置
アバター自体はカメラとは独立に、ワールド座標のメートル単位で配置され、移動・回転・スケールのステージハンドルが付きます。位置セクションでは、X · Y · Zのフィールドの隣に3D位置コントロール、回転のフィールドの隣に回転の球体が並びます——ビジュアルコントロールを参照してください
スケールは0.05×から10×です。スプリングボーンの物理もモデルと一緒にスケールされるので、縮小・拡大したアバターでも髪は正しく動きます
配置はコントローラーからも動かせます——ステージ移動と移動中に歩くを参照してください
アイドル時の挙動
PersonaはVRMの読み込み後にアイドル動作を適用し、モデルがTポーズのままにならないようにします:
- アイドルアニメーション——ループする体のアニメーション。モデルごとに選べます
- まばたき——2〜6秒ごとにランダムで
- 呼吸——胸と背骨がゆっくり揺れます
- スプリングボーン——髪と衣服の物理。モデル自身のスプリングボーン設定がそのまま使われます
アイドルアニメーションは選択中のモデルのアイドルセクションにあり、その隣にクリップを選択…があります。これを押すとインベントリがアニメーションに絞られた状態で開き、そこには専用に作られた9本の待機ループが入っています:
立つ · 手を後ろに · 手を腰に · 腕組み · もたれる · 話す · 座る · ダンス · 待つ
7本のモーションクリップもアイドルとして選べますし、自分で記録したものを含め、自分で追加したクリップも選べます。この9本の専用待機ループはシームレスです。他のクリップは、繰り返し時に動きがつながらない場合があります
この設定はシーンごとではなくモデルごとなので、同じシーンにいる2体のアバターがそれぞれ別のポーズを取ることもできます
トラッキングロス時
アイドルセクションにはトラッキングロス時もあり、フェイストラッキングが途切れている間、トラッキング対象のパラメータがどう振る舞うかを決めます。最後のポーズを保持はトラッキングが戻るまで最後に受け取ったフレームで静止するもので、これが既定です。アイドルに戻るは約0.3秒かけてアイドルアニメーションの値へ移り、顔が戻ればまた戻ります
Live2Dモデルはこの2つに加えて代わりに再生するモーションも指定できますが、VRMにその項目はありません
モーションクリップ
PersonaにはpixivのVRoid ProjectによるVRM Animation(.vrma)クリップが7本同梱されており、読み込み済みのどのVRMでも再生できます——Live2Dのモーションと違い、特定のモデルに結び付いていません:
全身を見せる · あいさつ · ピースサイン · 撃つ · スピン · モデルポーズ · しゃがむ
各クリップはワンショットです。アイドルの上にフェードインし、最後のフレームを少し保ってから、ぶつ切りではなく滑らかにアイドルへ戻ります。まばたきは再生中のクリップの上でも続きます。クリップはモーションセクションに表示されます。Live2Dのモーショングループとまったく同じ場所です
再生中のクリップのボタンは、そのまま停止ボタンでもあります。もう一度押すと、再生が終わるのを待たずにアイドルのフェード時間でアイドルへ戻ります。オートメーションの停止も、ぶつ切りではなく同じ経路を通ります
これらはインベントリのアニメーションの下にも行として並び、自分で追加したクリップと一緒に表示されます。行をクリックすると、読み込み済みのVRMでプレビュー再生されます
このセクションの先頭にはモーションを記録もあり、アバターがいま行っている動きを新しい.vrmaとして書き出せます——モーションの記録を参照してください
アニメーションクリップの読み込み
アニメーションカテゴリは次の形式に対応しています。.vrma、Mixamoの.fbx、MMDの.vmdです。MixamoとMMDのクリップは読み込み時にVRMのヒューマノイドへリターゲットされ、その後は.vrmaと区別がつきません——アイドルとしても、ワンショットのモーションとしても、インベントリでクリックしてプレビューする行としても使えます
リグ全体のうち移動するのは腰だけで、その移動量はターゲットのモデル自身の比率に合わせて換算されます。そのため移動を伴うクリップは、どの体型に乗せても歩幅がその体に収まります。Mixamoのリグを持たない.fbxはアニメーションとして読み込めません
MMDのダンスは脚のIKも保ちます。PersonaがVRM自身の体の比率に合わせて足とつま先のIKを計算し直すので、脚がダンスのステップに合わせて動きます。あくまでヒューマノイドへのリターゲットでPMXのリグそのものではないため、MMDの物理は引き継がれず、髪や衣服はVRM自身のスプリングボーンで動きます
表情
表情セクションにはモデルで使用できる表情が並びます——1.0のプリセット名とカスタム名で、0.xのプリセット名は1.0の対応する名前に変換されます。押すと適用され、もう一度押すと外れます。Live2Dの表情とまったく同じです。フェイストラッキングが動かすのも同じ一群で、マイクによるリップシンクはそのうち母音のプリセットaa・ih・ou・ee・ohを動かします
適用中の表情にはウェイトスライダーが表示され、1%から100%の範囲で強さを調整できます。スライダーは有効な表情にのみ表示されます。表情を解除するには、ボタンをもう一度クリックしてください
52個のARKitブレンドシェイプをすべて表情として持つモデルは パーフェクトシンク に対応しており、Personaが導出した信号を経由せず、スマートフォンの生のARKit値で1対1に駆動されます。情報ブロックのパーフェクトシンクの行には、52個のうちいくつをモデルが持っているかが表示されます
セクション上部の表情を記憶するは既定でオンです。適用した表情はウェイトごと逐次保存され、そのモデルに戻ったときやアプリを再起動したときに復元されます。VRMには.vtube.jsonがないので、書き込み先はモデルファイルの隣の<model>.persona.jsonというサイドカーです
衣装
LAPLACE_outfit拡張を持つモデルでは、表情の下に衣装グループが表示されます。VRM標準の表情はモーフターゲット、マテリアルの色、テクスチャ変換を制御できますが、メッシュの表示・非表示には対応していません。この拡張は衣装パーツの名前と表示制御を定義し、VRChatなどから変換したモデルで利用できます。Personaでは各項目を表情として扱うため、ボタン、ウェイトスライダー、サイドカーへの保存、プラグインAPIを共通で使用できます
表情の調整と衣装の切り替えを区別しやすいように、顔と衣装は別のグループに表示されます
MToonマテリアル
ほとんどのVRMアバターはMToon、つまり仕様が備えるトゥーンシェーダーを使います。MToonセクションでは、作者が焼き込んだ設定の上から、モデルインスタンスごとに微調整できます:
| コントロール | 範囲 | 効果 |
|---|---|---|
| シェード | 0 – 1 | シェードの色がどれだけ強く出るか |
| シェーディングシフト | −1 – 1 | 明部と暗部の境界を移動させる |
| トゥーン度 | −1 – 1 | その境界がどれだけ硬いか |
| GIイコライズ | −1 – 1 | 環境光が陰影をどれだけ平坦にするか |
| ノーマルの強さ | 0 – 2 | ノーマルマップをスケールする。0で表面のディテールが平らになる |
| リムライト | 0 – 2 | 縁の光の強さ |
| リムリフト | −1 – 1 | その縁がシルエットからどれだけ内側へ回り込むか |
| リムのフレネル強度 | 0 – 4 | 上げるほど帯が縁へ引き締まる |
| リムのライティング反映 | −1 – 1 | 0でリムとマットキャップを平坦に描き、1でシーンのライトに連動させる |
| マットキャップ | 0 – 4 | マットキャップ——球面加算の映り込み——をスケールする。持たないマテリアルでは何も起きない |
| アウトラインの太さ | 0 – 2 | 作者が設定したアウトラインをスケールする |
| アウトラインのライティング反映 | −1 – 1 | 0でアウトラインは自分の色を保ち、1でライティングに染まる |
| エミッシブ | 0 – 4 | 自己発光の強さ。一部をブルームのしきい値の上へ押し出せる余裕がある |
| UVアニメーション | 0 – 4 | UVのスクロールと回転の速度をスケールする。0でアニメーションするテクスチャが止まる |
マテリアルをリセットですべてのスライダーがニュートラルに戻ります——倍率はすべて1、オフセットはすべて0になり、モデルは作者が作ったとおりに描画されます
ポーズトラッキング
VRMはヒューマノイドのリグを持つので、VMCやmocopi独自のプロトコル経由の全身モーションキャプチャでも動かせます——VSeeFace、Virtual Motion Capture、mocopiなどの送信側です。Live2Dモデルにはそうしたリグがないため、このセクションはVRMのときだけ表示されます
ウェブカメラも、追加の機材なしでポーズのソースになります。ボディトラッキングが胴体と脚を、ハンドトラッキングが腕と指を動かします
VRMでのショートカット
表情とモーションを対象とするアバターショートカットのアクションはVRMでも動作します。表情は名前で、アニメーションクリップはそのファイルで割り当てられます。モデルを差し替えは形式を問わず動作します——ショートカットでレイヤーをLive2DモデルからVRMへ、またその逆へ切り替えられます
オートメーションも、指定したVRMのレイヤーに同じ種類のアクションを実行できます——表情を切り替え、モーションを再生、すべての表情をクリア、モデルを差し替え——さらにモデル位置で、保存した配置へアバターを移動できます
頭・体・視線・表情はコントローラーへ直接割り当てることもできます——VRMのターゲットを参照してください
モデル情報
情報を開くと、VRMの語彙で何が読み込まれたかが分かります:
| 行 | 意味 |
|---|---|
| ソース | モデルが同梱のものか、自分で開いたものか |
| ファイル | 読み込まれた.vrm。フォルダに表示するボタンが付く |
| 仕様 | VRM 0.xか、1.0仕様の正確なバージョン |
| ボーン | ヒューマノイドのボーン数 |
| スプリング | スプリングボーングループの数——0なら髪や衣服の物理がない |
| 表情 | 表情の数 |
| パーフェクトシンク | 52個のARKitブレンドシェイプのうち、モデルが持つ数 |
| 作者 | モデルの埋め込みメタデータに記載された作者 |
| ライセンス | ライセンスのURL。クレジット表記が必要な場合は印が付く |
| 読み込み時間 | ステージがそのモデルの読み込みに実際にかけた時間 |
切り替え
VRMはぶつ切りではなくフェードで切り替わります。ただし、シーンの表示・非表示がポップかカットのときは別です。このフェードはスクリーン空間のディザです——モデルは不透明の描画キューに留まり、自身の深度ソートを保ちます。代わりに透明度でフェードさせると、そのソートが崩れて顔を透かして頭の内側が見えてしまいます
アバターがポーズを取ってカメラを向くまでは何も描画されないので、初期化途中のモデルがステージに映ることはありません
最終更新日:2026年9月20日