この記事について
VRMのSpringBoneやBlendShapeを別のモデルにコピーする方法のメモです。VRMモデルの作成そのものには慣れている人を対象にしています。
以下のような場合に役立ちます。
UnityでVRMをセットアップして動かしてみたらモデルに穴が開いてる! Blenderで直してFBXが出来たけどまたUnityに入れてSpringBoneとか全部設定し直すの? 面倒くさいなあ・・・・・・
この記事の手順でSpringBoneやBlendShapeなどの設定を古いモデルから新しいモデルにコピーできます。
必要なファイルなど
UniVRMのバージョンはv0.43で試しています。**古いバージョンでは以下の手順は使えません。**新しいUniVRMを入れ直してください。
また、**SpringBoneの設定のコピーにCopyComponentsByRegexを使います。**リンク先に飛んで右上の「Clone or download」から「Download ZIP」をクリックするとダウンロードできます。ダウンロードできたら、中に入っているEditorフォルダをモデルの入ったUnityプロジェクトの中に入れてください。
古いモデルから新しいモデルに設定をコピーする手順
新しいモデルをインポートしてVRMに変換する
FBXファイルを通常の手順に従ってVRM化します。この段階ではSpringBoneとBlendShapeの設定は何もされていません。
- 新しいFBXファイルを、古いモデルと同じUnityプロジェクトにインポートします。通常通りAnimationTypeをHumanoidにしてConfigureからボーンの設定をしてください。ここはコピーできません。
- その後も通常通り、そのFBXをシーンに配置してExport HumanoidでVRM化します。
BlendShapeのコピー
古いVRMからBlendShapeの設定をコピーします。モデルのブレンドシェイプの構成が変わっていると上手くコピーできないことがあります。
- 古いモデルのBlendShapesフォルダと、新しいモデルのBlendShapesフォルダをエクスプローラで開きます1。
- 古いモデルのフォルダから**「BlendShape.asset」以外の**全てのassetファイルを新しい方のフォルダに上書きコピーします。
- Unity上で新しいモデルのBlendShapeを選択して、InspectorウィンドウでBlendShapeが表示されるようにします。
- Inspectorウィンドウ右上の歯車ボタンからRestoreをクリックします。
以上でBlendShapeの設定をコピーできました。
SpringBoneのコピー
古いVRMからVRMSpringBoneとVRMSpringBoneColliderGroupの設定をコピーします。モデルのボーンの名前や構成が変わっていると上手くコピーできないことがあります。
- 新しいVRMをシーン上に配置して古いモデルの横に並べておきます。
- Hierarchyウィンドウで古いモデルを右クリックして「Copy Components By Regex」をクリックします。
- 新しいウィンドウが出てきます。正規表現の部分に「VRMSpring」と入力してください。
- Copyボタンをクリックします。
- Hierarchyウィンドウで新しいモデルを選択してからPasteボタンをクリックします。
以上でSpringBoneの設定をコピーできました。
MaterialのコピーとTextureの移動
古いVRMからマテリアルの設定をコピーします。マテリアルの名前などが変わっていると上手くコピーできないことがあります。
- 古いモデルのMaterialsフォルダと新しいモデルのMaterialsフォルダをエクスプローラで開きます1。
- 古いモデルのフォルダから全てのassetファイルを新しいフォルダに上書きコピーします。
- Unity上で新しいモデルのTexturesフォルダの中身を全て削除します。
- Unity上で古いモデルのTexturesフォルダの中身を全て新しいモデルのTexturesフォルダに移動します。
以上でマテリアルの設定をコピーできました。
その他
もっといい方法があったら教えてください。