UniVRM

Unity で VRM 形式のモデルをインポートあるいはエクスポートするためのパッケージ。各種エディタ拡張や glTF (.glb) 形式のエクスポート機能なども含まれる。

リポジトリ:

vrm-c/UniVRM: Unity package that can import and export VRM format – GitHub

概要

参考:

VRM で開発する | VRM [公式]

ダウンロード

v0.80.0 以降では Unity 2019 LTS より新しいバージョンの Unity に対応している。

1.0 ベータ版
  • VRM-X.YY.Z_xxxx.unitypackage (VRM-1.0Beta)
v0.87.0 以降
  • UniVRM-X.YY.Z_xxxx.unitypackage
v0.81.0 以降

2つのパッケージをダウンロードして順にインポートする。

  1. UniGLTF_VRMShaders-X.YY.Z_xxxx.unitypackage
  2. UniVRM-X.YY.Z_xxxx.unitypackage
v0.80.0 以前
  • UniVRM-X.YY.Z_xxxx.unitypackageUniVRM のメインパッケージ
  • UniVRM-samples-X.YY.Z_xxxx.unitypackageUniVRM を使用するサンプル

参考:

Releases · vrm-c/UniVRM – GitHub

VRMを作成する | VirtualCast wiki

インストール

パッケージを新しいバージョンに更新する場合は事前に古いバージョンを削除する。

参考:

UniVRM のインストール | VRM [公式]

UniVRM をアンインストールする | VRM [公式]

導入

参考:

キャラの作成方法と Unity で操作する方法 | CG メソッド

VRoid Studio で作成したモデルを Unity で動かすまで | YouDoYou BLOG

VRoid でモデル作って踊らせる | キャサリンdesu

VRoid で作ったキャラを Unity のアニメーションを適応してみるよ | すたじお・くろす

Unity で VRM ファイルをインポートして使うときの覚え書き – Qiita

UniVRM を使って Unity で VRM モデルを編集する | MR が楽しい

Unity に VRM 形式の 3D モデルをインポートする | 気ままなシュミログ

VRM ファイルを作ってみたい | VRM [公式]

使い方

参考:

VRM モデル作成についての手順 – Qiita

自分のアバターを VRM にしてもっと遊ぶ 表情/揺れモノ編 | WhiteAtelier Archives

入門

参考:

パーティクルライブを VRoid Studio と STYLY で作る | STYLY

仕組み

参考:

フォルダ構成 · vrm-c/UniVRM Wiki – GitHub

VRM モデルをインポートする

参考:

VRM ファイルを Unity で編集できるようにする | 神楽ゆのん

UniVRM を導入して VRM ファイルをインポートする方法 | StarGazer

VRM モデルを作成する (変換/エクスポート)

参考:

人型アバターの FBX ファイルを VRM ファイルに変換する | STYLY

FBX アバターを VRM へ変換する方法のご紹介! | ケーキの PC 情報集会所

Vroid と Blender で作った 3D モデルを Unity で VRM 出力する方法 1 | Vtuber の解剖学

Vroid と Blender で作った 3D モデルを Unity で VRM 出力する方法 2 | Vtuber の解剖学

VRM を作成する | VirtualCast wiki

エクスポートダイアログ | VRM [公式]

VRM ファイルを作ってみたい | VRM [公式]

ヒューマノイド概要 | VRM [公式]

アニメーション | VRM [公式]

サムネイル画像を設定する

参考:

VRoid からエクスポートした VRM ファイルに任意のサムネイルを設定する | Play Rough

VRM モデルの再インポート/モデルデータの更新

Issue #56 に対応して、VRM モデルを再インポートした際に既存の BlendShapeClip, BlendShapeAvatar, Material が存在する場合に自動的には上書きされない仕様になっている。更新した VRM モデルのデータで置き換えたい場合は該当するアセットを VRM モデルの再インポート前に削除しておく。

参考:

設定した関連コンポーネントのプロパティが失われる · Issue #56 · vrm-c/UniVRM – GitHub

VRM を実行時に読み込む

非同期読み込み

バージョン 0.44 以降で LoadAsyc を使う場合、次のような非同期関数でモデルを読み込む。

private async Task<GameObject> LoadVrmAsync(string vrmFilePath)
{
    var parser = new GltfParser();

    await Task.Run(() =>
    {
        var file = File.ReadAllBytes(vrmFilePath);
        parser.ParseGlb(file);
    });

    using (var context = new VRMImporterContext(parser))
    {
        await context.LoadAsync();
        context.EnableUpdateWhenOffscreen();
        context.ShowMeshes();
        context.DisposeOnGameObjectDestroyed();
        return context.Root;
    }
}
VRM-1.0
var vrm = await Vrm10.LoadPathAsync(
    path,
    canLoadVrm0X: true,
    normalizeTransform: true,
    showMeshes: false,
    awaitCaller: new RuntimeOnlyAwaitCaller(),
    materialGenerator: new Vrm10UrpMaterialDescriptorGenerator(),
    vrmMetaInformationCallback: updateMeta,
    ct: cancellationToken
);
if (vrm) {
    m_instance = vrm.GetComponent<RuntimeGltfInstance>();
}

参考:

UniVRM を使って VRM モデルをランタイムロードする方法 – Qiita

RuntimeLoad (1.0~) | UniVRM Programming ドキュメント (vrm-c.github.io)

RuntimeImport 非同期ロード (0.87~) | UniVRM Programming ドキュメント (vrm-c.github.io)

RuntimeImport (0.44~) | UniVRM Programming ドキュメント (vrm-c.github.io)

LoadModel – VRM10_Samples/VRM10Viewer/VRM10ViewerUI.cs at 7ad78c3bb4 – vrm-c/UniVRM

LoadPathAsync – VRM10/Runtime/IO/Vrm10.cs at 7ad78c3bb4 – vrm-c/UniVRM

シェーダー/マテリアル

参考:

Material | VRM [公式]

アプリケーションのビルド | UniVRM Programming Document (vrm-c.github.io)

VRMShaders/README.md – 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

参考:

Export / Import | VRM [公式]

MToon シェーダー

Rendering Type
  • Opaque不透明
  • Cutoutカットアウト (閾値で完全透過と不透明を切り替え)
  • Transparent半透明 (アルファチャンネルで透過度をコントロールする)
  • TransparentWithZWrite奥行き情報ありの透過

参考:

Santarh/MToon: Toon Shader with Unity Global Illumination – GitHub

MToon の設定 – Qiita

VRM フォーマットで使われる MToon シェーダーのキャラクターセットアップ – Qiita

VRM 形式のアバターの半透明の前後関係 | サンフラワーふじ

MToon リファレンス | VirtualCast wiki

VRM 標準シェーダ MToon の使い方 – SlideShare

MToon | VRM [公式]

テクスチャ

参考:

テクスチャーのインポート | VRM [公式]

表情モーフの設定/編集

モデルにアタッチされている「VRM Blend Shape Proxy」コンポーネントの「Blend Shape Avatar」に設定されているアセットが表情モーフを管理するアセットである。設定されているアセット名をダブルクリックするとアセットを選択状態にしてインスペクターに表示することができる。

VRM モデルをインポートすると、インポートしたディレクトリ下にある「(モデル名).Blendshapes」ディレクトリ内に表情モーフのアセット「BlendShape.asset」及びアニメーションクリップが作成される。

ゲーム再生中は、VRM Blend Shape Proxy に各ブレンドシェイプを 01 で操作するスライダーが現れ、簡易的に表情モーフのテストが行える。

プロジェクトウィンドウで「BlendShape.asset」を選択すると、インスペクターウィンドウで表情モーフを扱える。

  • Editor タブで Blend Shape Clip の編集
  • List タブで Blend Shape Clip を一覧表示

Blend Shape Clip

  1. Neutral基本 (ニュートラル)
  2. Aあ (口開け)
  3. Iい (口を横に引く)
  4. Uう (すぼみ口)
  5. Eえ (口を横に引く/下唇を下げる)
  6. Oお (口を開けて唇を突き出す)
  7. Blink両目閉じ
  8. Blink_L左目閉じ (ウインク)
  9. Blink_R右目閉じ (ウインク)
  10. Angry怒り (眉下げ/への字口)
  11. Fun楽しい (口角上げ)
  12. Joy喜び (目閉じ/口開き)
  13. Sorrow悲しい (困り眉/すぼみ口)
  14. Surprised驚き (目を見開く/口開き)
  15. Extra不等号目 (><)
  16. LookUp上を見る
  17. LookDown下を見る
  18. LookLeft左を見る
  19. LookRight右を見る

15~18 の LookUp、LookDown、LookLeft、LookRight は目線をモーフで制御するタイプのモデルで使用する。

視線をボーンで制御するタイプのモデルでは、VRMLookAtBoneApplyer コンポーネントを使用する。視線をモーフで制御する場合は VRMLookAtBoneApplyer を削除して、 代わりに VRMLookAtBlendShapeApplyer コンポーネントを付与する。

「Add BlendShapeClip」ボタンを押して、新しい表情モーフを追加 (新規の BlendShapeClip を作成) することができる。事前定義された表情モーフを追加する場合は Preset から該当するプリセットを選び、それ以外の表情モーフを追加する場合は Unknown を選ぶ。(スクリプトから表情モーフをコントロールする際に、事前定義された表情モーフはプリセット名で指定することができる。)

参考:

VRoid で出力した VRM ファイルの表情調整 | しま

モデルの表情調整と表情データの再利用方法 – Qiita

VRoid Studio 製モデルには実は表情が6つある。牙も生やせるし2種類もある。これらの使い方と調整の方法 | 友黎火の note

Unity で VRM の表情を追加&編集する | 神楽ゆのん

VMagicMirror 向け VRoid Studio 産 VRM モデルに Unity で新規表情パターンを追加 & 微調整する方法 | Vtuber の雑学メモ帳

UniVRM の VRMBlendShapeProxy で表情アニメーション処理を共通化する – Qiita

VRM で数秒後に表情を変化させる | まゆたまガジェット開発逆引き辞典

キャラクターの表情やまばたきの制御方法 | Unity でゲームを作ろう!(unity.moon-bear.com)

ブレンドシェイプの設定 | VRM [公式]

視線制御 | VRM [公式]

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

ポリゴンを両面描画する

参考:

VRM アバターでテクスチャの裏側が透明になってしまうときの解決法 | ミッコちゃん

BVH/モーションキャプチャーデータ

参考:

VRM と BVH (モーションデータ) | 120 のブロマガ

サンプル

  • VRM_Samples (UniVRM_samples-X.YY.Z_xxxx.unitypackage)
    • AnimationBridgeSample
    • FirstPersonSample
    • RuntimeExporterSample
    • SimpleViewer
  • VRM10_Samples (VRM_Samples-X.YY.Z_xxxx.unitypackage)
    • VRM10FirstPersonSample
    • VRM10Viewer
  • UniVRMTestVRM ビューワー

リポジトリ:

VRM_Samples – GitHub

VRM10_Samples – GitHub

UniVRMTest – GitHub

API

参考:

Programming Document | UniVRM

ドキュメント

UniVRM マニュアル | VRM [公式]

リンク

vrm-c/UniVRM Wiki – GitHub

VRM Spring Bone

ドキュメント:

VRM Spring Bone | VRM [公式]

コード:

Editor/SpringBone – GitHub

Runtime/SpringBone – GitHub

参考:

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 で長めのスカートを制御してみた | 闇魔研究所

Mesh Utility

参考:

Mesh Utility | VRM [Official]

Editor/MeshUtility - GitHub

Runtime/MeshUtility - GitHub

VRM Spring Bone Copy

参考:

VRM モデルの Spring Bone をコピーするツール | broken55

VRM モデルの Spring Bone をコピーするツールを作りました - Qiita

Copy VRM Settings

参考:

CopyVRMSettings.cs | ぽけもり

VRM Viewer

リポジトリ:

vrm-c/UniVRMTest - GitHub

参考:

VRM ファイルのインポート ローカル版 | Sirohood

MToon to HDRP Shader Change Supporter

参考:

VRoid モデルのマテリアルを簡単に HDRP 用に変えるスクリプト | やまぎしラボ

Change MToon to UTS2

コード:

MrSlip777/LoadVRM/ChangeShader/Change_MToonToUTS2.cs - GitHub

ドキュメント:

MrSlip777/LoadVRM/ChangeShader/LoadVRM/README.md - GitHub

参考:

Release ChangeShader_UTS2_MToon at 5.1 · MrSlip777/LoadVRM

URP プロジェクトに VRM のモデル持ってきたときに MToon シェーダーを UTS2 シェーダーに置換するスクリプトを作成しました (@KjmCh2s) | Twitter

VRoidMaterialChanger

リポジトリ:

Carnaite0224/VRoidMaterialChanger - GitHub

参考:

VRoid のモデルのマテリアルを URP 対応のマテリアルに変更してみた - Qiita

2021.2 の URP で VRoid を表示する | さとけん

Shader Graphs MToon

リポジトリ:

simplestargame/ShaderGraphsMToonForURPVR: Shader Graphs MToon for URP / VR - GitHub

VRM Tool Kit

動画:

1分でわかる VRM Tool Kit

チュートリアル

入手:

VRM 作成用ツール VRM Tool Kit | Sator Imaging

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA