出来上がったVRMモデルにミスが見つかったりして、差し替える事って結構あるのですよね。
そこで修正したモデルに差し替える手順を、自分用に備忘録として書いておきたいと思います。blenderとUnityはしばらく使ってないと忘れてしまうので(汗)
なお、前提条件としてボーン 構造は一切いじっていない場合とします。
blenderでFBXを書き出す
まずは、blenderで作って修正したモデルをFBXで書き出します。
一度書き出してるので問題ないかと思いますが、エクスポートでチェックするべき点は、以下の3点。
- スケールを適用:すべてFBX
- トランスフォーム適用:チェック
- スムージング:法線のみ(これによりカスタム法線が反映されます)
オブジェクトタイプはアーマチュアとメッシュだけで大丈夫です。
あと、リーフボーン(末端のボーン)の追加が不要な場合は、アーマチュア > リーフボーン追加 のチェックを外します。
これでエクスポートしてください。
UnityでVRMを正規化
次にエクスプローラを開いて、以前に作業したUnityのFBX→VRM正規化用のプロジェクトファイル中の、モデルのFBXファイルを新しいものに上書きします。
テクスチャも変更した場合は、新しい画像ファイルに上書き。
次に、そのプロジェクトファイルを開きます。
上記のように上書きして開くと、モデルとテクスチャは新しいものに変更されています。そしてモデル選択してVRMを正規化。
UniVRMのメニューからモデルのVRMファイルを書き出してください。
スプリングボーン、ブレンドシェイプ、視線制御などをコピー
最後に、Unityで最終的なVRMを書き出します。
まず、スプリングボーン、ブレンドシェイプ、視線制御などをコピーするので、その元となるモデルを読み込みます。
次に、先ほど正規化したVRMも読み込んでおきます。
上の画像では、左がコピー元のモデル、右がコピー先の新しいモデルです。
ここで、コピーには「UniVRMExtensions」というツールを使うので、あらかじめインポートしておいてください。すごく便利なツールです!
そしてUniVRMのメニューから、CopyVRMSettingsを選択。するとコピー内容を設定するウィンドウが現れます。
ここでは、コピー元のモデルとコピー先のモデルを指定。そしてスプリングボーンやブレンドシェイプなど、コピーする項目にチェックを入れ、決定したら実行します。
すると、見事にコピーできました。素晴らしい!
これでVRMを書き出して、差し替え完了です。
最後に
UniVRMExtensionsでは、VRMInitializerを使ってエクスポート(正規化)→インポートの手順を省けるそうですが、自分の環境 (Unity 2019) ではうまく動作しなかったので、この方法が確実でした。
参考になれば幸いです。
【著者:Mitchie M @_MitchieM】
コメント