今回の記事では、FBXの人型アバターのファイルをVRMに変換する方法をご紹介します!
UniVRMの導入
Unityを開きます。FBXをVRMに変換する作業は、Unityでおこないます。
STYLYにアップロードしたい人はUnityのバージョンはUnity 2019.4.x, 2019.3.xで開いて下さい。
STYLYが対応する最新のUnityバージョンについては、STYLY Documentページからご確認ください。
UnityでVRMファイルを扱うためにまずUniVRMをインポートします。
以下のサイトから最新の.unitypackageをダウンロードします。
https://github.com/vrm-c/UniVRM/releases
URLをひらくとこのような画面↓にがでてきます。赤枠のやつでよろしいかと。なお、その時の最新のものをダウンロードしてください。
ダウンロードしたら、Unityで新規プロジェクトを開きましょう。
先ほどダウンロードしたUniVRMのunitypackageファイルをダブルクリックすると、Unityに以下のような画面がでてくるので、Allを押してからImportをおします。
これにてUnityでVRMファイルを扱うことができるようになりました!
モデルデータの調整
ボーンの調整
VRMに変換したいFBXのモデルをUnityに入れます。テクスチャのファイルも一緒にいれてください。
ProjectウィンドウのAssetsフォルダの中にドラッグアンドドロップでファイルを入れることができます。
入れたモデルを選択し、インスペクターのRigのタブからAnimation TypeをHumanoidにしてApplyをおします。
Applyを押すと、その上にあるConfigure…が押せるようになるので、押してください。別のシーンに飛びます。
このシーンでボーンの確認をします。赤色がエラーなので、赤色がない場合は下のDoneを押して元のシーンに戻ります。
赤色が出た場合は修正する必要があります。FBXのインポート時の自動認識の食い違いでエラーがでることがあるみたいです。
このボーンの設定の部分なのですが、下の図の、赤で囲ったようなきれいな〇のマークは必須の骨で、
青四角で囲ったような点々の〇のマークはなくても大丈夫な骨らしいです。
なので、エラーが出た場合はそれを参考にするとよいかもしれません。
今回の私のエラーは、Spineに設定されているSpine1という骨がダメだったみたいなので、
必須ではないChestに当てはまっていたSpine2の骨をSpineにもってきてChestを無しにすることで解決しました。ただ、こういうことをするとVroid hubにアップできなくなったりなどなにかしらよくないことが起こったりするので(実際、ChestがないとVroid hubに上げれなかったのであとからボーンを入れなおしました。)、Blenderでボーンを入れなおすなどするほうがよいかもです。
変更を加えた人は、Applyを押してDoneします。
マテリアルの設定
ボーンがうまくいったら、オブジェクトを一度シーンに入れましょう。
マテリアルのシェーダーの設定をします。
最初にモデルを入れたときについてるマテリアルだとシェーダーを変更できないので、新たにマテリアルを作って割り当てます。マテリアルはProject Windowのところで右クリック、Create>Materialで作成することができ、モデルにSceneビューに配置したモデルにドラッグアンドドロップすることで割り当てることができます。
テクスチャは下の写真の赤枠のところで設定します。そこをクリックすると選択ウィンドウが出るし、プロジェクトウィンドウからテクスチャを赤枠の四角にドラッグアンドドロップしても設定できます。
①作成したマテリアルを選択し、②インスペクターのShaderのところから③VRMの④どれかシェーダーを選択します。
VRMに使用するシェーダーは④のところのどれかか、一番上のStandardが公式から推奨されています。
今回私はMToonのシェーダーを割り当てました。一般的なのはUnlitTextureとかだとおもいます。
マテリアルを複数選択して一気に全部変更するのが良いでしょう。
その他の設定
マテリアルが設定できたら、あとはその他細かい部分を確認です。
残りの確認点としては、
・モデルの位置→原点(XYZが全部ゼロ)にあるか
・モデルのスケール→XYZが全部1.0になっているか
・モデルの向き→Z軸方向を向いているか
です。
それが確認できればいよいよ変換です。
変換しよう
上記の確認ができたら、①ヒエラルキーでオブジェクトを選択し、②メニューのVRM>UniVRM>Export humanoidを選択します。
以下のようなウィンドウがでてくるので、Authorのところに作者名を入れます。入れるとExportが選択できるようになるので、おします。チェックとかは全部入れた状態にしてください。
Exportを押すと、名前とフォルダを選択するウィンドウがでてきます。変換すると、たくさんのフォルダができるので、Assets下にフォルダを作ってそこで変換するようにすればややこしくならないかとおもいます!
変換が終わると、以下のような感じになります。赤枠で囲った部分が変換によって作成されたフォルダたちです。
そのなかにVRMのプレファブがあるので、それを選択します。
プレファブを選択すると、インスペクタにVRMの情報を書く部分(青枠部分)があるのでそこを記入します。
Informationのところは、
・モデル名
・モデルのバージョン
・作者名
・作者の連絡先
・親作品(あれば記入)
・サムネイル
Licenseのところは
[アバターの人格に関する許諾範囲]
・アバターの使用は自分のみか、許可された人だけか、だれでもオッケーか
・暴力的表現を許可するかどうか
・性的表現を許可するかどうか
・商用利用はオッケーか
・その他ライセンスのurlあれば
[再配布・改変に関する許諾範囲]
・再配布や改変に関する選択
といった感じです。各々設定をしてください。
設定が終わったら、ヒエラルキーにある変換前のFBXのオブジェクトは削除して、変換後のVRMのプレファブをシーンに配置します。
ヒエラルキーのVRMのオブジェクトを選択した状態で、先ほどと同じようにメニューのVRM>UniVRM>Export humanoidを選択します。今度は、下の図の赤枠部分のチェックは外してください。その状態でExportします。
ここは最終のExportなのでUnityのプロジェクトファイルじゃないところにExportして大丈夫です。デスクトップとか。
UnityプロジェクトのAssets下にExportするとたくさんフォルダが作られるのですが、Unityのプロジェクトファイルじゃないディレクトリ(デスクトップとかどこでも)にExportすると、.vrmのファイルだけが作成されて、それだけで扱うことができます。
.vrmファイルの中に、全部の情報が詰まってるって感じです!
これで完了です!無事変換できましたね!
Vroid hubやニコニ立体にうpしたり、VRCに持ってったり煮るなり焼くなり好きに使ってください!
STYLYへのアップロード
ここから先は先ほど変換したアバターをSTYLYにアップロードする人むけです!
以下のSTYLY公式サイトから、STYLYのUnity用プラグインをいれます。
ダウンロードした.unityoackageをダブルクリックでUnityにインポートします。
インポートしたら、以下のウィンドウが出てくるのでメールアドレスとAPIキーを入力します。
ヒエラルキーにあるVRMのオブジェクトをプロジェクトウィンドウのAssets下にドラッグアンドドロップします。このことをプレファブ化といいます。
プレファブ化したら、プロジェクトファイルにプレファブ化したほうのオブジェクトを選択して右クリックし、
STYLY>Upload Prefab or scene to STYLYを選択します。
しばらく待つと、アップロード終わったよのウィンドウがでてくるので、それが出たらSTYLYに移動しましょう。
STYLYエディタの、Assetsから3DモデルのMy Modelsを確認すると、アップロードされています!
以上でござる!