MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens用のオリジナルモデルを作成する その32(VRMへの変換)

本日はホロ恋子モデルの作成枠です。
ホロ恋子モデルを VRM 形式のフォーマットに変換してみます。
f:id:bluebirdofoz:20181024085815j:plain

前回記事の続きです。
bluebirdofoz.hatenablog.com

VRMドワンゴが公開しているVR向け3Dアバターファイルフォーマットです。
詳細は以下の公式ページを参照ください。
VRM - dwango on GitHub

VRM への変換方法なども画像付きでページがまとめられています。
本記事では備忘録として実施した手順に絞って記録を残します。
VRMファイルを作ってみたい - dwango on GitHub

Unity のインストールが前提条件になります。
VRM を作成するための UniVRM パッケージは Unity 5.6 以降をサポートしています。

UniVRM のセットアップ

最新の UniVRM パッケージを取得します。
以下のページから UniVRM-X.XX_XXXX.unitypackage をダウンロードします。
github.com
f:id:bluebirdofoz:20181024090032j:plain

空の新規 Unity プロジェクトを作成します。
f:id:bluebirdofoz:20181024090041j:plain

Unity プロジェクトを開いたら、先ほどダウンロードした UniVRM-X.XX_XXXX.unitypackage を実行します。
[Import Unity Package]ダイアログが開くので[Import]ボタンをクリックします。
f:id:bluebirdofoz:20181024090054j:plain

Assets フォルダ配下に VRM フォルダがインポートされれば UniVRM の準備は完了です。
f:id:bluebirdofoz:20181024090114j:plain

変換モデルのインポート

VRM に変換するモデルデータを FBX 形式などの Unity にインポートできる形式で準備します。
f:id:bluebirdofoz:20181024090145j:plain

モデルデータを Unity プロジェクトにドラッグしてインポートします。
f:id:bluebirdofoz:20181024090154j:plain

取り込んだモデルデータの Inspector ビューを開き、[Rig]タグを開きます。
[AnimatinType]を[Humanoid]に変更し、[Apply]ボタンをクリックします。
f:id:bluebirdofoz:20181024090205j:plain

Humanoid リグが正常に割り当てられたかどうか[Configure]ボタンをクリックして確かめます。
f:id:bluebirdofoz:20181024090226j:plain

Humanoid リグの構造については以下の記事を参考にしてください。
bluebirdofoz.hatenablog.com

ボーンの割り当てが正しく設定出来たら[Apply]ボタンをクリックし、[Done]ボタンで閉じます。
f:id:bluebirdofoz:20181024090246j:plain

次に後々マテリアルの設定をしやすくするために、マテリアルをシーン上で編集できるようにします。
モデルデータの Inspector ビューを開き、[Material]タグを開きます。
f:id:bluebirdofoz:20181024090311j:plain

[Location]を[Use External Material(Legacy)]に変更します。
すると[Naming]項目が表示されるので[From Model's Material]に変更します。
変更後、[Apply]ボタンをクリックします。
f:id:bluebirdofoz:20181024090320j:plain

モデルデータのディレクトリに Material フォルダが作成され、モデルデータで利用する Material ファイルが出力されます。
これでモデルの Material データが編集可能になります。
f:id:bluebirdofoz:20181024090330j:plain

VRM データの正規化

次に UniVRM の機能を用いてモデルデータを VRM 形式に正規化します。
以下のルールに基づいて、モデルデータを Unity のシーンに配置します。

・モデルの位置
 〇 モデルは原点に位置する
・モデルのスケール
 〇 1.0 = 1m
・モデルの向き
 〇 モデルは+Zの方向に向いている
・質感(マテリアル/シェーダ)
 〇 PBR
  ◎ Standardシェーダー(Unity標準)
 〇 Unlit系シェーダー
  ◎ VRM/UnlitTexture (UnityのUnit/Textureと同じ)
  ◎ VRM/UnlitCutout (UnityのUnit/Cutoutと同じ)
  ◎ VRM/UnlitTransparent (UnityのUnit/Transparentと同じ)
  ◎ VRM/UnlitTransparentZWrite (アルファブレンディングかつZWriteありです。実体のある半透明物への適用を想定しています)
 〇 Toonシェーダー
  ◎ VRM/MToon (照明対応トゥーンシェーダ)

f:id:bluebirdofoz:20181024090340j:plain

設定後、対象のゲームオブジェクトを選択した状態でメニューから VUniRM -> Export humanoid を選択します。
f:id:bluebirdofoz:20181024090352j:plain

[VRM Export]ダイアログが開きます。
[Author]に作者名を入力し、[Force T Pose]と[Pose Freeze]のチェックを入れます。
[Export]ボタンをクリックすると、VRM ファイルに変換して出力されます。
f:id:bluebirdofoz:20181024090403j:plain

VRM データを編集する

出力した VRM ファイルは再び Unity プロジェクトにドラッグして取り込むことで編集可能です。
UniVRM をインポート済みのプロジェクトに VRM ファイルを取り込むと、自動でモデルデータの Prefab などが生成されます。
f:id:bluebirdofoz:20181024090411j:plain

先ほど配置したゲームオブジェクトは一度削除し、生成された Prefab をシーンに配置します。
f:id:bluebirdofoz:20181024090419j:plain

ゲームオブジェクトを選択し、Inspector ビューを開くと、ライセンスなどのメタ情報が設定できます。
f:id:bluebirdofoz:20181024090429j:plain
詳細は公式ページを確認ください。
VRMファイルを作ってみたい - dwango on GitHub

設定を行い、VRM ファイルを再出力する場合は再び VUniRM -> Export humanoid を選択します。
f:id:bluebirdofoz:20181024090448j:plain

再出力を行う場合は[Force T Pose]と[Pose Freeze]のチェックは外した状態で[Export]ボタンをクリックします。
f:id:bluebirdofoz:20181024090454j:plain