VRChatアバターのVRM変換方法

3DCG

はじめに

今回はVRMとは何かという説明からVRChatアバターのVRM形式への変換方法までを紹介します。

VRMとは何か

VRMとはVRアプリ向けに3Dの人型アバターを扱うためのファイルフォーマット。
誰でも自由に利用可能。

このVRMを使う事でVRM対応してるアプリやゲームに自分のアバター表示させることができます。

代表的なものではVismuthという実写合成のアプリなどで使います。

VRM作成の事前準備

VRMを作るには5つの物が必要になります。

  • Unity
  • Humanoidボーン入り3Dモデル(.fbx形式)
  • MToonシェーダー
  • UniVRM
  • VRChatアバターを実装できる程度のUnityの知識

大まかな流れを紹介しますと、
Unity使ってモデルを読み込み→VRM対応のMToonシェーダーを割り当て → UniVRMでVRM化です。

今回はUnityとVRChat用の3Dアバターは持っていて導入できる前提で進めます。
VRChatアバターの導入法を知りたい方はこちらの動画を見て習得してください。

必要データの読み込み

Unityを立ち上げ3DProjectを作成。
今回はUnity 2019.4.30f1を使います。
バージョンはこちらのUniVRMのページを見て対応してるものに合わせてください。

Directional Lightの色を白くします。

次に任意の3DモデルのデータをUnityに読み込みます。

Hierarchyにモデルのデータをドラッグ&ドロップで読み込み表示させます。
prefabデータを読み込むとVRChat向けの設定が入るので.fbxのモデルのデータを読み込みます。
これで必要データの読み込みが完了です。

シェーダーを読み込んでおらずマテリアルが消えてます。
VRMにするには対応のシェーダーにする必要があります。
なので設定してもVRM非対応の物は使えないので気にせず進めます。

MToonシェーダーの導入

MToonのGitHubページに飛びます。

GitHub - Santarh/MToon: Toon Shader with Unity Global Illumination
Toon Shader with Unity Global Illumination. Contribute to Santarh/MToon development by creating an account on GitHub.

こちらよりDLして入手してください。

ライセンスはMITlicenseです。

Copyright (c) 2018 Masataka SUMI
Released under the MIT license
https://github.com/Santarh/MToon/blob/master/LICENSE

なのでこのテキストをReadMe等に入れれて配布すれば、改変、再配布、商用利用、有料販売が可能です。

DLして解凍。
MToonはUnityPackageが無いのでMToonというフォルダーをドラッグ&ドロップで読み込みます。

これでMToonの導入が完了です。

UniVRMの導入

UniVRMのGitHubページに飛びます。

Releases · vrm-c/UniVRM
UniVRM is a gltf-based VRM format implementation for Unity. English is here . 日本語 はこちら - vrm-c/UniVRM

トップページを見てUnityのバージョンと導入方法を確認します。

この記事を執筆した時点ではUnityはUnity-2019.4.LTS or later対応
First→Secondのパッケージを順に読み込んでくださいと書かれてました。

これの通りのUnityのバージョンを使い、パッケージ2つ読み込みます。
UniGLTF_VRMShadersをUnityに読み込みます。

オススメのプロジェクト設定に合わせますか?という表示が出ます。
Accept Allを押して オススメの設定に合わせます。

Thank You!という表示がでたらCloseで閉じます。

UniVRM-0.84.0_024dを読み込みます。

これでUniVRMの導入が完了です。

シェーダーの設定

シェーダーが違うので関係上完璧な見た目の再現は出来ません。
なのでなるべく近い見た目を作っていく作業になります。

ProjectのAssetsの所で右クリックしてCreateからMaterialを選択し作成。

InspectorのshaderのStandardをクリックしVRMを選択。

MToonを選択。

LitColor,Alphaに色のテクスチャを割り当てます。

ShadeColorに影の色を設定。

NomalMapやEmissionなどがある場合はそのテクスチャを読み込んでください。
※このシェーダーは粗さや金属光沢の設定には非対応です。

Lightingで影の入り方を調整。

Outlineで輪郭線のを作成し見え方を調整。

顔に強い影ができる場合はAdvanced Settingsの中のShading Shiftを使って陰影境界をずらします。

透過の入ったテクスチャ素材を使ってる場合はRendering TypeをCutoutに切り替え、

画像を透過情報の入ったpngに差し替え、AlphaのCutoffの数値を調整して透過の閾値を調整してください。

半透明を表現したい場合はTransparentを選択してください。

もっと詳しく設定したい方はこちらのスライドなどの参考資料を見ながら設定してください。

こうして設定したマテリアルをモデルにドラッグ&ドロップで割り当てます。

パーツが分かれてる場合は残りの髪の毛や服のパーツ分のマテリアルも作成します。
同様にパラメータを設定しモデルに割当てます。

良いと思う見え方になりましたらMToonの設定は完了です。

VRMデータの書き出し

ヒエラルキーからモデルを選択してVRM0を選択してExport UniVRを選択。

そして絶対に必要な下記の3つの情報を打ち込みます。

  • Title にモデル名
  • Version にモデルのバージョン
  • Author に制作者名

あとは連絡先や親作品がある場合のURLや許諾範囲を決めます。
特にこだわりが無い場合は残りの2つは空白。
許諾範囲は一番上がOnly Author、残りはすべてDisallowで大丈夫です。
エラーをつぶしてエクスポートを押します。

VRM Viewerなどを使い正しく表示されてるかを確認すればVRMデータの書き出しが完了です。

まとめ

今回はVRChatアバターのVRM変換方法を紹介しました。

こちらを行う事でVRM対応の様々なアプリにアバターを読み込むことができます。

これでアバターと共に充実したVR生活お過ごしください。

コメント

タイトルとURLをコピーしました