Play Rough

ポと趣味のブログ

VRoidモデルにアクセサリーを追加する

f:id:mochipan_poke:20190821171240g:plain

バーチャルマーケット3の開催が1か月後に迫っています!!

折角なら購入したアクセサリーを自分のVRMモデルに付けてあげたいですよね。

 

今回はVRoidで作成したVRMファイルに、別途用意したアクセサリーを追加する方法の紹介です。

 

 

(ある程度unityとblenderの操作が出来る事を前提として書いています) 

 

使ったもの

Unity2017.4.15f(19以降ではVRMの挙動が不安定なのでそれ以前のバージョンを使用)

Maya(アクセサリーの作成)

Blender2.79(一時的にモデルとアクセサリーを統合して書き出しす為に使用)

VRoidから出力したVRMモデル

UniVRM(https://github.com/vrm-c/UniVRM/releases)

VRM_IMPORTER(https://github.com/iCyP/VRM_IMPORTER_for_Blender2_79)

TransferVRMSpringBoneSetteing(https://github.com/MrSlip777/LoadVRM/releases/tag/V1.0)

 

 

アクセサリーの作成とFBX出力(Maya)

(既に用意したアクセサリーがある場合はこの項を飛ばして下さい)

各種3DCGソフトでアクセサリーを作成しFBX形式で出力します。

f:id:mochipan_poke:20190821151823p:plain

今回はモンスターボール※風のヘアアクセサリーを作りました。

 

サイズの間違いが無いように事前に作業単位を変更しておきます。

Mayaの場合「ウィンドウ→設定/プリファレンス→プリファレンス」から左の設定タブを選択し作業単位をセンチメートルに変更。

このモデルの場合直径2cmです(小さ過ぎました)

 

書き出し

「ファイル→全て書き出し□」の□をクリックしファイルタイプをFBX exportに設定。

モデルを選択してから「ファイル→全て書き出し」

右のタブの設定は良く分からないので(は?)とりあえずカメラとライティングのチェックだけ外して名前を付けて全て書き出し。

 

これで作成したモデルがFBX形式で出力されました。

 

 

VRMモデルとアクセサリーを統合しFBX形式で出力する(Blender)

先ずはBlenderVRMファイルが扱えるように設定します。

githubから以下をダウンロードします。解凍は不要です。

https://github.com/iCyP/VRM_IMPORTER_for_Blender2_79

 

Blenderを開き「File→Preference→Add-ons」

先ほどダウンロードしたファイルを選択しInstall Add-on from Fileを選択

 

アドオンの表示画面に戻りTestingを選択、VRM_IMPORTERにチェックを入れSave User Settingを選択。

以上でBlenderVRMファイルが扱えるようになりました。

f:id:mochipan_poke:20190821153939p:plain

(インポートにVRMが追加された)
 

 

「File→Import」から用意したVRMファイルと先ほど作成したアクセサリーを選択します。

先ずはアクセサリーを適用したい位置に移動させましょう。

f:id:mochipan_poke:20190821154308p:plain

 

アクセサリーを選択し、「オブジェクトタブ→Relations→Parent」からSkeltonを選択します。

直下のタブをBoneに設定します。

直下のタブをJ_Bip_C_Headに設定します。今回はヘアアクセサリーなので頭の骨を選択しています。

f:id:mochipan_poke:20190821154727p:plain

 

設定後アクセサリーの位置がずれるので、再度適用させたい位置に移動させます。

これでモデルとアクセサリーの親子関係が出来ました。

 

最後にFBX形式で出力します。

「File→Export→FBX」

MainのApply ScalingsをFBX ALLに設定、ArmatureとMeshを選択。

GeometoriesのApply Modifiersにチェックを入れる。

AmaturesのOnly Deform Boneにチェックを入れる。

AnimationのBaked Animationにチェックを入れる。

エクスポート。

 

これでモデルとアクセサリーを統合したFBXモデルが作成されました。

 

 

VRMモデルを書き出す(Unity)

正直ここの作業が一番面倒です。

というのも、VRMからFBXで書き出したファイルを再度VRMとして出力する場合、既に設定されていたMaterial(1)、SpringBone(2)、BlendShape(3)が無くなってしまう為です。

ただ作業自体は簡単なので順を追って設定していきましょう。

 

先ずはUnityでVRMを扱えるようにします。

以下からUniVRMをダウンロードしunityにインポートします。

https://github.com/vrm-c/UniVRM/releases

 

先ほど作成したFBXファイルをアセット内に追加します。

モデルを選択し、「Inspector→Rig→Animation Type」のプルダウンからHumanoidを選択しApply。

「Configure→Done」

 

1.Materialの再設定

アセット内に元々用意していたVRMファイルを追加します。

シーンにFBXモデルを配置します。

「Hierarchy→Body.baked」

MaterialsのElementを、先ほど配置したVRMと同名のマテリアルに置き換えていきます。

f:id:mochipan_poke:20190821161840p:plain

同様にFace.baked、Hair001.bakedのマテリアルも置き換えます。

 

2.SpringBoneの再設定

以下をダウンロードしunityにインポートします。

https://github.com/MrSlip777/LoadVRM/releases/tag/V1.0

 

「1.」で作成したモデルを非表示にしVRMモデルをシーンに配置します。

モデルを選択し、「UniVRM→ExportVRMSpringBoneSetting→export」

プロジェクトファイルのcoliderファイルにSpringBoneassetが作成されます。

 

VRMモデルを非表示にしFBXモデルを表示させます。

モデルを選択し、「UniVRM→ApplyVRMSpringBoneSetting」、Apply。

これでFBXモデルにもSpringBoneが設定されました。

 

3.BlendShapeの再設定

一度FBXファイルをVRMとして書き出します。

VRM→UniVRM→Export humanoid」

 

再度シーンに配置しBlendShapes内のBlendShape Listを元のVRMと同名のものに設定します。

 

最後にもう一度VRMファイルを出力して完了です。

 

お疲れさまでした!

f:id:mochipan_poke:20190821164437p:plain

 

合わせて読みたい

mochipan-poke.hatenablog.com