VroidのVRMをunityでFBXに変換する方法を紹介します。

VRChatでの利用を目的としている人は、最新版の方法ではFBXに変換しなくてもアップロード方法があるので、別サイトにまとめたのでご覧ください↓
VRChatにVRoidで作ったアバター(VRM)をアップロードする方法


VRM Converter for VRChat

VRM Converter for VRChat
https://booth.pm/ja/items/1025226

VRM Converter for VRChat-〇〇 + UniVRM-0〇〇.unitypackage

でVRMをインポート。Assetsにドラッグアンドドロップすると自動でPrefab化されます。

FBX Exporter

https://assetstore.unity.com/packages/essentials/fbx-exporter-101408

FBX ExporterでFBXに変換


変換されたFBXファイルの設定

Rig
をHumanoidに

(Chest)J_Bip_C_Chest → J_Bip_C_UpperChest
(Upper Ches)J_Bip_C_UpperChest → None(なし)

(参考サイト)
https://styly.cc/ja/tips/unity-fbx2vrm/
https://shinrinmusic.com/vroid-vrchat-avatar-upload/

シェーダーを直す

目の周りがパンダみたいに白目になったり、白髪化したりしているのでシェーダーを設定します。

シェーダーをスタンダードでRendering ModeをOpaqueからCutOut
あるいは
Unlit/Transparent Cutout
あるいは
VRM/Unlit Tecture(目など)

VRM/UnlitCUtout

暗いのは
Toon Lit VRChat/Mobile/Toon Litが万能

VRChatでの利用を目的としている人は、最新版の方法ではFBXに変換しなくてもアップロード方法があるので、別サイトにまとめたのでご覧ください↓
VRChatにVRoidで作ったアバター(VRM)をアップロードする方法


奮闘記まとめ

以下、奮闘記。

アバターをunityからvrcへ持っていこうとして、モデルのテクスチャが読み込まず。

このサイトを中心に勧めていく。

VRoidモデルをVRChatでアバターとして追加する方法【アップロード】
https://shinrinmusic.com/vroid-vrchat-avatar-upload/

最初にVRMを読み込む段階まではしっかりと表示されてくれるのですが、FBXに変換するとテクスチャが髪や目が白色になります。

unityでVRC用にするにはBlenderを通してマテリアル統合する方法(方法1)と、Blenderなしでunity側だけで設定する方法(方法2)がありますが、

(方法1)Cats Blender PluginでVRMをVRChat専用のFBXに変換しておく
→髪の色が白色になってしまう(テクスチャが)

いつなるか?
Cats Blender Pluginの使い方【1ボタンで最適化・詳細設定も可能】
https://shinrinmusic.com/cats-blender-plugin-how-to-use/
の流れで

VRChatのアバターのマテリアルを解説【統合して1つにします】


フォルダの場所を目で確認してAtlasを保存する
の段階で髪色が抜けて白髪化してしまう

(方法2)BlenderなしでUniVRM(Unity向けVRM標準実装)を導入しFBX Exporterで変換
→FBXに変換すると目の部分がパンダのように白化ける→目の周りのシェーダーを透明にすると良いという解決法がほかサイトにあったが変わらず

マテリアル選択→shaderをRendering ModeのstandardでOpaqueをcutout

Opaque – デフォルトです。透明な部分のない、一般的な固形のオブジェクトに適しています。

Cutout – 不透明と透明な領域をはっきり分ける透明効果を作成することができます。このモードでは、半透明の領域は存在せず、テクスチャは100%不透明か、まったく見えなくなるか、どちらかになります。これは、葉っぱや穴だらけでボロボロの服などの素材を形作るのに便利です。

Transparent – 透明なプラスチックやガラスなどの現実的な透明なマテリアルのようなレンダリングに適しています。このモードでは、マテリアル自体は、(テクスチャのアルファチャンネルとティントカラーのアルファに基づいた)透明度の値になります。しかし、本物の透明なマテリアルの場合と同様に、反射や照明のハイライトは、完全な明快さで表示されたままになります。

Fade – オブジェクトが鏡面反射光や反射を含んでいる場合でも、透明度の値を使ってオブジェクトを完全にフェードアウトすることができます。このモードは、オブジェクトのフェードインやフェードアウトをアニメーション化する場合に便利です。反射やハイライトもフェードアウトするので、透明なプラスチックやガラスのような透過素材を写実的にレンダリングするのには適していません。

アップロードしようとするがエラーになる

The angle between pelvis and thigh bones should be close to 180 degrees ~
大腿骨と骨盤の角度を180度に近づけないとフルトラの場合に上手く動作しない可能性がある。
横からみたときにHipsと太もものボーンをまっすぐにそろえれば消える

HIPのボーンに小さな小骨がある
垂直に向かせたいが動かない

VRMからそのままBlenderでFBXエクスポートしても失敗

→VRMからそのままBlenderへ、マテリアル統合とFBXエクスポートする→やはり白髪化

アップロード時→

Spine hierarchy missing elements, make sure that Pelvis, Spine, Chest, Neck and Shoulders are mapped.

背骨(Spine)、腰(Chest)、首(Neck)、肩(Shoulder)のボーンは必ずマッピングされていないといけません。
このメッセージが表示された場合、セットアップ時にこれらのスロットが空ではないか確認してください。

補足として、NeckとChestはMecanimシステムに於いてはオプション扱いですが、VRChatでは必要なものです。

→Neckを指定

customAvatar.unity3d does not existエラー

leNotFoundException: C:/Users/usuario/AppData/Local/Temp/DefaultCompany/VRChat/customAvatar.unity3d does not exist Someone knows what happens?

customAvatar.unity3d does not existとか見えてたら
asset直下にCopyComponentsByRegex.cs等のなにか余計なファイルがあったりします

→不明

→アップロード用に新しいプロジェクトを作る→fbxを読み込ませる→アップロード可(ただテクスチャ読み込まず)

統合したpngファイルを同時にAssetsの直下に→fbxのマテリアルでマテリアル指定しても紫化→use extrrnal materials(Legacy)でApply→

bodyのShaderをVRC Mobile Too litかunit Transparent cutout

VRMからVRChatへアップロードする流れ
https://qiita.com/100/items/7315fe3a7eb75732ae43
で白髪化せずにアップロードできた

BlenderにCats Blender Pluginで持ち込むも失敗

unityでfbxで調整してAssetからBlenderに持っていく→パンダ目になる

やはりvrmをBlenderにしてそこで髪色を着色指定しないとだめか

どのタイミングで白髪化するか分かれば
統合する段階で
その前に着色できれば・・

FBXで取り出してBlenderに持ち込むときはObjectを右クリのFBXインポート。そこでACIIではだめ。binaryで取り出す

https://shinrinmusic.com/vroid-vrchat-avatar-upload/#i-5
ここの「シェーダーの設定」のところ

・unity 2017.4.28
(導入済)
DynamicBone
IK
VRC SDK

・Blender2.8
(導入済)
cats-blender-plugin-master
material-combiner-addon-master
VRM_IMPORTER_for_Blender2_8-master

導入参考
https://shinrinmusic.com/cats-blender-plugin-install/

対処法参考
Cats Blender Pluginでマテリアルを統合したら真っ黒や真っ青(紫)になる場合
https://ayato3d.hatenablog.com/entry/2019/05/23/011921
→解決法はない

VroidとBlenderで作った自作アバターをVRchatで使う方法
https://vtuberkaibougaku.site/2019/06/12/vroid-blender-vrchat/
→一度VRMを取り込んですぐFBXでエクスポートして再FBXでインポートして取り込んだら変わるかと思いきや変わらず

unityしかUnityにUniVRM、FBX Exporterを導入→vrm読み込む→Prefab形式→fdx変換→

Blenderでfbxは読み込まずエラーにて

BlenderでASCII FBX files are not supported

ASCII FBX files are not supported

コンバータ使うも画像破壊して読み込めず終了。

VRM→Blender→Unity→VRChat
https://qiita.com/Schwl_Freiheit/items/ecbfabe1a9fd8f5e83e0

blendファイルとvrmファイルをインポートのところでblendファイルunityで読み込めず終了。

“this avatar is not imported as a humanoid rig and will not play VRChat’s provided animation set”
が出てますね… Humanoidで必要なボーン全部緑になってるはず

HumanoidにはなってたんですけどなぜかGeneric判定されてたみたいです…。原因は分からなかったのですけど、1回アバターをUnityから消してFBXインポートし直したらなおりました!

VRChatでヒューマノイドとして認識させるには最低でも指3本分のボーンが必要なので、いつもの猫の手みたいな形になってて必要なさそうと削ってるなら、適当にウェイトペイントされてない指ボーンを追加することで治るかも

“this avatar does not contain an animator and will not animate in vr chat” need help

このアバターにはアニメータが含まれていないため、VRチャットではアニメートされません。
カメラは、実行時に非ローカルアバターから削除されます。
アバター記述子を適切に配置し、すべてを正しく設定する必要があります。 どんな助けも大歓迎です。

アニメーションタイプを「Generic」または「Humanoid」に設定しましたか? 現在のモデルのダウンロードを提供していただければ、ご覧になれます。