Hero img
vrmファイルを修正したい。

vrmファイルをBlenderで編集したけど、マテリアル反映されない。

vrmファイルをBlenderでちょこちょこ修正したんだけどvrmとしてexportしても、マテリアルが反映されず、ボーンの追加も、揺れ物設定も結局は、Unityを使う必要があるらしいので、Unityで修正作業をしていく。備忘録です。間違いがあるかもしれません。


目次

  • vrmアバターを作成したい
  • 作業内容
  • Blender
  • vrm import
  • export
  • Unity操作
  • UniVRMのインストール。
  • ColorSpace
  • FBXインポート
  • マテリアル
  • シェイダーを変更
  • Rig
  • vrmエクスポート
  • VRMのインポート
  • 表情設定
  • 揺れもの設定
  • 揺れ具合の確認
  • まとめ

vrmアバターを作成したい

vrmファイルをもらってBlenderで編集したのだが、マテリアルは剥がれるし、ボーン追加したけど、揺れも設定項目がわからない。
調べていくとUnityを使う必要があるらしいので
BlenderとUnityを使っていく。

ライセンスの確認

モデルの改変、配布、商用等確認して利用してください。

作業内容

今回は元々ちゃんと設定されているvrmモデルをBlenderで修正して、再度vrmキャラとして、使えるようにします。
結局のところvrm->fbx->vrm->vrmとなっています。
最後のvrm->vrmは一度vrmとしてエクスポートして、vrmをもう一度インポートする必要があります。

vrmの再インポート

揺れ物、表情不要の場合は最後の再インポートは不要です。

作業の流れ

blender

  • blenderでvrmプラグインのインストール
  • モデルの修正を行う。
  • モデルをFBXエクスポートする。

Unity

  • UnityでUniVRMをインストール
  • FBXモデル,テクスチャー画像をインポート
  • Humanoid設定、マテリアル設定
  • vrmをエクスポートする
  • エクスポートしたvrmを再度インポートする。
  • ブレンドシェイプ設定,揺れもの設定
  • エクスポートして終わり。

Blender

Blenderでプラグイン等をインストールし、FBXでエクスポートします。

vrm import

プラグインをインストールし、有効化にします。
インストール方法がわからない場合は、公式をご確認してください。

vrmをインポートできない場合pluginのバージョンが古いかもしれません。最新バージョンに上げてください。

インポートする前に...

モデルにもよりますが、vrmのテクスチャーデータがインポートされた時に画像ファイルとして生成されるようなので、まず、blenderを名前を付けて保存してください。その後vrmをインポートします。テクスチャー画像はblenderのプロジェクトフォルダーに生成されます。

vrmimport-plugin.png vrmimport-enable

export

なんだかんだとモデルを修正し、FBXとしてエクスポートします。

ボーンとメッシュ両方を選択する。

全てをエクスポートするでもいいけど、事故が多いので、エクスポートするメッシュとボーンの2種類を選択してエクスポートします。

vrm-exportfbx

エクスポート設定

copyとすることでテクスチャーもexportされるはずなのですが,できないものもあるので...そこはまぁ置いといて,FBXファイルのエクスポートします。次にUnityの設定です。

vrm-exportsetting

Unity操作

Unity側でもvrmファイルを扱うためにパッケージをインストールします。UniVRM

VRMとUniVRMがあるので注意。

とりあえずLatestとなっているもののUniVRMをダウンロードすれば大丈夫です。

vrm-uniVRM-download

UniVRMのインストール。

プロジェクトを作成後、先ほどダウンロードしたVRM-〇〇.unitypackageをインストールします。

ぽちぽちクリックしてインストールしていきます。

vrm-uniimportunivrm vrm-selectunipackage
vrm-inportunipackage vrm-setlinear

ColorSpace

ColorSpaceをリニアに変えます。上でAccept Allを押すとリニアになっています。
リニアになっていない場合は変更してください。

vrm-unity-projectsetting vrm-changelinear.png

最後にこのタブにvrmが表示されていればインストールされています。

vrm-unity-vrm-tab

FBXインポート

  1. 1.BlenderでエクスポートしたFBXファイルをUnity上にもって来ます。

Texture関係も同様にUnityに追加してください。
ドラックアンドドロップだけなので簡単です。

  1. 2.次に、シーンにも追加してください。
vrm-unity-scene

マテリアル

FBXでインポートしたモデルのマテリアルを抽出します。

  1. 1.FBXモデルを選択し、Materials->Extract Materialsをクリックします。 vrm-extract-materials

  2. 2.そのままフォルダの選択をクリック vrm-extract-select-folder

  3. 3.同じフォルダに抽出されたマテリアルが出来上がります。

vrm-view-materials

マテリアルにテクスチャーを設定します。

materialを選んで、Albedoに適切なテクスチャーを貼ります。

vmr-set-texture-material

シェイダーを変更

テクスチャーを貼り終えたらマテリアルのシェイダーを変更します。

  1. 1.マテリアルをすべて選択します。
vrm-select-all-materials
  1. 2.ShaderをVRM/MToonに変更します。 vrm-set-mtoon-shader

Rig

ボーン、リグの設定をします。
モデルを選んで、リグの種類をHumanoidに設定適用します。

vrm-apply-rig

vrmエクスポート

ここまで来たら一度vrmとしてエクスポートします。

vrm-export-first

VRMのインポート

先ほどエクスポートしたモデルをUnityで再度インポートします。 インポートしたら表情の設定、揺れ物設定をしていきます。

vrm-first-import.png

表情設定

表情の設定はblendshapesというフォルダー内に色々入っているのでここで設定ができます。
今回は元々のvrmモデルがある前提なのでその値をそのままコピーしてきます。

vrm-blendshap1 vrm-blendshap2

元々のvrmをインポート

オリジナルのモデルをインポートし、その中のBlendShapesの値をそのまま使います。
これはオリジナルのモデルが表情設定されている前提で行っています。

blendshapeを適用

ちゃんと動くブレンドシェイプをVRM Blend Shape Proxy(script)に設定するだけです。顔のポリゴンが変わってしまっている場合はできない場合は手動で、表情を設定する必要があります。

オリジナルのBlendShapeを今回新しく作成した、haru-vrm1のVRM Blend Shape Proxy(Script)に設定します。

vrm-blendshapecopy

揺れもの設定

揺れ物はsecondaryというものを使います。
vrmを再インポートし、Sceneに追加するとHierarchyに自動で追加されています。   同じ揺れ具合で良い場合はルートボーンに複数追加し、

vrm-rootbons

揺れ具合を別々に分けたい場合はsecondaryを複製すればできます。

vrm-secondary-view

こっちのようにするのが正解みたいです。

vrm-secondary-duplicate.png

揺れ物のパラメーター調整は バーチャルキャスト公式wikiにあるので参照ください。

揺れ具合の確認

揺れの調整ができたら最後に

Playボタンを押して、モデルを選んでギズモードを動かせばテストができます。

vrm-phys-test

まとめ

VRMを修正するのにはBlender->Unityを介する必要があり、vrmをエクスポートと再度インポートし、揺れ物やモーフを調整した後に完成形をエクスポートする必要があることが分かった。
表情のモーフに関しては同モデルの場合使いまわしができることも確認ができた。

関連記事

コメント

コメントを書く

質問や、間違いがありましたら、お気軽にどうぞ

※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください