次の項目は別ページに分割しました。
関連ページ:
VRM に関する基本的な情報は次のページにまとめています。
UniVRM
Unity で VRM 形式のモデルをインポートあるいはエクスポートするためのパッケージ。各種エディタ拡張や glTF (.glb) 形式のエクスポート機能なども含まれる。
リポジトリ:
vrm-c/UniVRM: Unity Package that can Import and Export VRM Format – GitHub
概要
ドキュメント:
ダウンロード
サポート
- v0.100.0 以降は、Unity 2020.3 より新しいバージョンの Unity に対応している。
- v0.80.0 以降では、Unity 2019 LTS より新しいバージョンの Unity に対応している。
1.0 正式版
2022年9月22日にリリースされた、v0.104.0 から VRM-1.0 が正式版扱いになった。
VRM-X.YY.Z_xxxx.unitypackage
(VRM-1.0)
1.0 ベータ版
v0.80.0 ~ v0.103.x
VRM-X.YY.Z_xxxx.unitypackage
(VRM-1.0Beta)
v0.87.0 以降
UniVRM-X.YY.Z_xxxx.unitypackage
v0.81.0 以降
2つのパッケージをダウンロードして順にインポートする。
UniGLTF_VRMShaders-X.YY.Z_xxxx.unitypackage
UniVRM-X.YY.Z_xxxx.unitypackage
v0.80.0 以前
UniVRM-X.YY.Z_xxxx.unitypackage
: UniVRM のメインパッケージUniVRM-samples-X.YY.Z_xxxx.unitypackage
: UniVRM を使用するサンプル
入手:
Releases – vrm-c/UniVRM – GitHub
参考:
インストール
※パッケージを新しいバージョンに更新する場合は、事前に古いバージョンを削除する。
Git URL
「Add Package from Git URL」から次の4つのパッケージをインストールする。
- VRM Shaders (
com.vrmc.vrmshaders
) - UniGLTF (
com.vrmc.gltf
) - UniVRM (
com.vrmc.univrm
) - VRM-1.0 (
com.vrmc.vrm
)
次の URL を使う。必要に応じて #
以降のバージョン番号は省略してもよい。
https://github.com/vrm-c/UniVRM.git?path=/Assets/VRMShaders#v0.xx.x
https://github.com/vrm-c/UniVRM.git?path=/Assets/UniGLTF#v0.xx.x
https://github.com/vrm-c/UniVRM.git?path=/Assets/VRM#v0.xx.x
https://github.com/vrm-c/UniVRM.git?path=/Assets/VRM10#v0.xx.x
ドキュメント:
UPM で UniVRM をインストールする | VRM [公式]
導入
ドキュメント:
参考:
キャラの作成方法と Unity で操作する方法 | CG メソッド
VRoid Studio で作成したモデルを Unity で動かすまで | YouDoYou BLOG
VRoid で作ったキャラを Unity のアニメーションを適応してみるよ | すたじお・くろす
Unity で VRM ファイルをインポートして使うときの覚え書き – Qiita
UniVRM を使って Unity で VRM モデルを編集する | MR が楽しい
Unity に VRM 形式の 3D モデルをインポートする | 気ままなシュミログ
使い方
参考:
自分のアバターを VRM にしてもっと遊ぶ 表情/揺れモノ編 | WhiteAtelier Archives
入門
参考:
パーティクルライブを VRoid Studio と STYLY で作る | STYLY
仕組み
参考:
フォルダ構成 · vrm-c/UniVRM Wiki – GitHub
VRM モデルをインポートする
参考:
VRM 1.0 アバターの Unity プロジェクトへのインポート方法 | だーら
VRM ファイルを Unity で編集できるようにする | 神楽ゆのん
UniVRM を導入して VRM ファイルをインポートする方法 | StarGazer
アセット
設定
- Meta
- Expression
- Look At
- First Person
ドキュメント:
VrmObject と Extract | VRM [公式]
視線制御 (Look At)
ボーンで動かすタイプは、「Look At Bone Applyer」のプロパティを調整する。
設定
- Transform: 左右の目のトランスフォームを指定する
- Left Eye: 左目
- Right Eye: 右目
- Degree Mapping: 作動範囲を指定する
- Horizontal Outer: 外向き
- Horizontal Inner: 内向き
- Vertical Down: 上向き
- Vertical Up: 下向き
作動範囲の指定
- Curve: 作動の特性を指定する (※ VRM-1.0 では廃止された)
- Curve X Range Degree:
- Curve Y Range Degree: 実際に動く範囲を指定する (デフォルト:
10
)
ドキュメント:
LookAt – VRM-1.0 API | UniVRM Programming ドキュメント [公式]
lookAt.ja.md – vrm-c/vrm-specification – GitHub
参考:
VRM モデルの視線制御/目の可動範囲の設定方法 – Qiita
VRM の目の動作 (Look At) を正しく設定する | クロイニャン
VRM モデルの視線が動かない原因 | Mitchie M のブログ
具体的な可動域の数値は「VRM Look At Bone Applyer」の「Degree Mapping」の項目で調整 (@Yohen_XR) – Twitter
アイトラ実装中…なのはいいんですが、VRoidモデルの目線の上下の可動域が想像より大きかったのでビックリしてる。 (@Yohen_XR) – Twitter
VRM モデルの再インポート/モデルデータの更新
Issue #56 に対応して、VRM モデルを再インポートした際に、既存の Blend Shape Clip / Blend Shape Avatar / Material が存在する場合に、自動的には上書きされない仕様になっている。更新した VRM モデルのデータで置き換えたい場合は、該当するアセットを VRM モデルの再インポート前に削除しておく。
ドキュメント:
Prefab が Import されるタイミングと上書きの注意 | VRM [公式]
参考:
設定した関連コンポーネントのプロパティが失われる · Issue #56 · vrm-c/UniVRM – GitHub
エクスポート
VRM モデル (あるいは glTF 形式) のエクスポートに対応しているシェーダーは Standard / Unlit / UniGLTF / VRM 系の以下のシェーダー
glTF レイヤー
- Standard
- Unlit/Color
- Unlit/Texture
- Unlit/Transparent
- Unlit/Transparent Cutout
- UniGLTF/UniUnlit
- VRM/UnlitTexture
- VRM/UnlitTransparent
- VRM/UnlitCutout
VRM レイヤー
- VRM/UnlitTransparentZWrite
- VRM/MToon
ドキュメント:
MToon シェーダー
Rendering Type
- Opaque: 不透明
- Cutout: カットアウト (閾値で完全透過と不透明を切り替え)
- Transparent: 半透明 (アルファチャンネルで透過度をコントロールする)
- TransparentWithZWrite: 奥行き情報ありの透過
リポジトリ:
Santarh/MToon: Toon Shader with Unity Global Illumination – GitHub
ドキュメント:
参考:
VRM フォーマットで使われる MToon シェーダーのキャラクターセットアップ – Qiita
テクスチャ
参考:
コンストレイント
ドキュメント:
Node Constraint (VRM-1.0) – GitHub
参考:
[1.0] Constraints: add explainer by 0b5vr · Pull Request #188 · vrm-c/vrm-specification – GitHub
コンストレイントをサポートしてほしい · Issue #6 · vrm-c/vrm-specification – GitHub
コントロールリグ (Control Rig)
コントロールリグを用いて、VRM モデルにポーズを付ける。(v0.103 ~)
Animator.getBoneTransform
は、コントロールリグにおけるボーンを返す。(v0.104 ~)
参考:
Control Rig – 正規化されていないモデルを操作する | UniVRM Programming ドキュメント [公式]
正規化
※ VRM-1.0 では、モデルを VRM 化する際に正規化を適用しない。
VRM-1.0 は正規化が仕様から除かれました。
—— UniVRM
正規化とは、ヒエラルキーからの 回転、スケールの除去。 その状態での Binding 行列再生成。 です。
すべてのノードの回転が
0
のときが初期姿勢 (T-Pose) であるという仕様で、プログラムから統一的にモデルを操作することが可能でした。—— UniVRM
参考:
Control Rig – 正規化されていないモデルを操作する | UniVRM Programming ドキュメント [公式]
ユーティリティ (VrmUtility)
ドキュメント:
簡単 API v0.95 | UniVRM Programming ドキュメント [公式]
URP で使いたい
参考:
VRoid のモデルのマテリアルを URP 対応のマテリアルに変更してみた – Qiita
LWRP / URP support · Issue #368 · vrm-c/UniVRM – GitHub
When unity URP will be supported? · Issue #387 · vrm-c/UniVRM – GitHub
glTF (.glb) をエクスポートする
ドキュメント:
glbファイルの作り方 – vrm-c/UniVRM Wiki – GitHub
参考:
VRM1として出力されたデータのGLBとしての互換性について · Issue #1906 · vrm-c/UniVRM – GitHub
ポリゴンを両面描画する
参考:
VRM アバターでテクスチャの裏側が透明になってしまうときの解決法 | ミッコちゃん
モーションキャプチャーデータ (BVH)
参考:
VRM とモーションデータ (BVH) | 120 のブロマガ
VRM-1.0 に移行する
(出典:Santarh)
UniVRM-1.0 が使い物にならない劣化具合でヤバいという話。しかもドキュメントが一切ない。VRM-1.0 リリースからだいぶ経つけど工事中でページが空っぽ
(2023年1月3日 午後 9:02)
—— @esperecyan
ドキュメント:
VRM-0.x モデルを VRM-1.0 モデルにアップグレードする | VRM [公式]
API 更新 | UniVRM Programming ドキュメント [公式]
リンク:
UniVRM 利用アプリケーションの VRM 1.0 への移行について (Santarh) – Speaker Deck
internal is not valid エラー
現象:
internal
修飾子が不正である旨のエラーが発生する。
error CS0106: The modifier 'internal' is not valid for this item
原因:
- v0.100.0 以降は、Unity 2020.3 より新しいバージョンの Unity に対応している。
対処法:
- Unity 2020.3 以降を使用する。
- それ以前の Unity で必要な場合は、UniVRM v0.99.4 を使用する。
参考:
internal modifier isn’t valid? · Issue #2024 · vrm-c/UniVRM – GitHub
サンプル
UPM
パッケージマネージャーで Git URL を指定してインストールした場合、パッケージマネージャーで「In Project」に切り替えて、「VRM-1.0」パッケージを選択して「Samples」から「Import」ボタンを押してプロジェクト内にサンプルコードを複製できる。
パッケージ
- VRM10_Samples (
VRM_Samples-X.YY.Z_xxxx.unitypackage
)- Model Setup Seed-San (VRM-1.0)
- First Person Sample (VRM-1.0)
- Runtime Exporter Sample (VRM-1.0)
- Viewer (VRM-1.0)
- VRM_Samples (
UniVRM_samples-X.YY.Z_xxxx.unitypackage
)- Animation Bridge Sample (VRM-0.x)
- First Person Sample (VRM-0.x)
- Runtime Exporter Sample (VRM-0.x)
- Simple Viewer (VRM-0.x)
リポジトリ
- UniVRMTest:VRM ビューワー **DEPRECATED**
リポジトリ:
サンプルモデル
リポジトリ:
ModelSetup_SeedSan – vrm-c/UniVRM – GitHub
API
VRM-1.0 – API | UniVRM Programming ドキュメント [公式]
Programming ドキュメント | UniVRM [公式]
ドキュメント
資料
UniVRM 利用アプリケーションの VRM 1.0 への移行について (Santarh) – Speaker Deck
チュートリアル
ワニでもできた!アバターを VRM にして cluster にアップロードしよう (Zen)
VRM のアバターを作って、色んな場所に遊びに行こう! (動く城のフィオ)
10分ちょっとでわかる FBX → VRM 変換 (栗団子)
Unity による VRM 化解説 #1 とりあえず VRM 化 (ねたけ)
Unity による VRM 化解説 #2 揺れ物の設定 (ねたけ)
Unity による VRM 化解説 #3 コライダーの設定 (ねたけ)
Unity による VRM 化解説 #4 瞬き/表情の設定 (ねたけ)
VRM Spring Bone
ドキュメント:
コード:
参考:
VRM モデルの髪をセットアップする | ForgeVision Engineer Blog
Blender で編集したモデルに Unity で物理演算を再設定する方法 (VRoid) | Vtuber の解剖学
バーチャルキャストのアバターの揺れもの設定 | サンフラワーふじ
VRM 変換大作戦! VRM Spring Bone で長めのスカートを制御してみた | 闇魔研究所
VRoid モデルの髪を揺らしてみたい! 後編 Unity 作業 | 蒼空の下で
VRM の揺れ物の設定 | VirtualCast wiki
VRIK / FinalIK を適用すると VRM の揺れもの (VRM Spring Bone) の動きがおかしくなる時の対処 – Qiita
VRM 変換大作戦!VRM Spring Bone で長めのスカートを制御してみた | 闇魔研究所
Fast Spring Bone
「Burst」パッケージをインストールすることで、処理が高速化される。
- Fast Spring Bone Service: Fast Spring Bone のマネージャー
VRM-1.0
Fast Spring Bone が標準で使われる。
VRM-0.x
FastSpringBoneReplacer.ReplaceAsync
を実行することで、Spring Bone を Fast Spring Bone に置き換える。
外力
instance.Runtime.ExternalForce
: 外力を加える (v0.106 ~)
ドキュメント:
Spring Bone | UniVRM Programming ドキュメント [公式]
Fast Spring Bone について v0.85 | UniVRM Programming ドキュメント [公式]
Mesh Utility
機能
- Mesh Separator
- Mesh Integrator
- Static Mesh Integrator
- Bone Mesh Eraser
参考:
VRM Viewer
**DEPRECATED**
リポジトリ:
参考: