出来上がったVRMモデルにミスが見つかったりして、差し替える事って結構あるのですよね。
そこで修正したモデルに差し替える手順を、自分用に備忘録として書いておきたいと思います。blenderとUnityはしばらく使ってないと忘れてしまうので(汗)
なお、前提条件としてボーン 構造は一切いじっていない場合とします。
blenderでFBXを書き出す
まずは、blenderで作って修正したモデルをFBXで書き出します。
![Blender_ [C__Users_tutu-_Desktop_miku_e_miku_e.blend] 9_20_2021 11_51_26 PM.jpg vrm fbx 差し替え](https://mitchie-m.com/blog/wp-content/uploads/2021/09/Blender_-C__Users_tutu-_Desktop_miku_e_miku_e.blend-9_20_2021-11_51_26-PM.jpg)
一度書き出してるので問題ないかと思いますが、エクスポートでチェックするべき点は、以下の3点。
![Blender_ [C__Users_tutu-_Desktop_miku_e_miku_e.blend] 9_20_2021 1_51_03 AM.jpg fbx vrm 差し替え](https://mitchie-m.com/blog/wp-content/uploads/2021/09/Blender_-C__Users_tutu-_Desktop_miku_e_miku_e.blend-9_20_2021-1_51_03-AM.jpg)
- スケールを適用:すべてFBX
- トランスフォーム適用:チェック
- スムージング:法線のみ(これによりカスタム法線が反映されます)
オブジェクトタイプはアーマチュアとメッシュだけで大丈夫です。
あと、リーフボーン(末端のボーン)の追加が不要な場合は、アーマチュア > リーフボーン追加 のチェックを外します。
![Blender [C__Users_tutu-_Desktop_miku_e_miku_e.blend] 9_25_2021 11_46_12 AM.jpg リーフボーン追加](https://mitchie-m.com/blog/wp-content/uploads/2021/09/Blender-C__Users_tutu-_Desktop_miku_e_miku_e.blend-9_25_2021-11_46_12-AM.jpg)
これでエクスポートしてください。
UnityでVRMを正規化
次にエクスプローラを開いて、以前に作業したUnityのFBX→VRM正規化用のプロジェクトファイル中の、モデルのFBXファイルを新しいものに上書きします。
テクスチャも変更した場合は、新しい画像ファイルに上書き。
次に、そのプロジェクトファイルを開きます。

上記のように上書きして開くと、モデルとテクスチャは新しいものに変更されています。そしてモデル選択してVRMを正規化。

UniVRMのメニューからモデルのVRMファイルを書き出してください。
スプリングボーン、ブレンドシェイプ、視線制御などをコピー
最後に、Unityで最終的なVRMを書き出します。
まず、スプリングボーン、ブレンドシェイプ、視線制御などをコピーするので、その元となるモデルを読み込みます。
次に、先ほど正規化したVRMも読み込んでおきます。

上の画像では、左がコピー元のモデル、右がコピー先の新しいモデルです。
ここで、コピーには「UniVRMExtensions」というツールを使うので、あらかじめインポートしておいてください。すごく便利なツールです!

そしてUniVRMのメニューから、CopyVRMSettingsを選択。するとコピー内容を設定するウィンドウが現れます。

ここでは、コピー元のモデルとコピー先のモデルを指定。そしてスプリングボーンやブレンドシェイプなど、コピーする項目にチェックを入れ、決定したら実行します。

すると、見事にコピーできました。素晴らしい!
これでVRMを書き出して、差し替え完了です。
最後に
UniVRMExtensionsでは、VRMInitializerを使ってエクスポート(正規化)→インポートの手順を省けるそうですが、自分の環境 (Unity 2019) ではうまく動作しなかったので、この方法が確実でした。
参考になれば幸いです。
【著者:Mitchie M @_MitchieM】


コメント