バーチャル3Dクリエイター神部まゆみです(*^-^*)
VRoidモデルをVRChatにFallbackアバターとして上げてみたからそのメモです。
前回の記事はこちら。

VRoidモデルをQuest版 Fallbackアバターとして使えるようにアップした手順
手順1:VRoid Studioで透過テクスチャを調整して、できるだけ削減してエクスポートする
Quest版のStandard Liteシェーダーだと透過が使えないので、透過を使っているテクスチャを調整してエクスポートします。
前回の記事の手順1~3のあたりです。

マテリアル数8と2でエクスポートしといたほうがいいかも…?
この後hairを複製して法線反転させて、Quest版シェーダーの片面透過対策をやるため。

マテリアル数2にするとBodyとHairが一体になってしまうから、blenderで分割しないといけなくて面倒なので。
12か削減なしでもOKだけど今回は8でいきます。
あれ、でも上のエクスポート情報だと6になってるw
でもこの後blenderに読み込んでHairメッシュが単体であったからOK。
削減の様子はこんな感じ。
マテリアル8でやったら何故かテクスチャベイクに失敗した(-_-;)透過対策の髪の毛を作れたらマテリアル2でやる
この後テクスチャベイクするんだけど、マテリアル8でやったらテクスチャベイクで何故か失敗した(-_-;)なんか真っ黒になってしまった。
マテリアル8にしてるのは透過対策のためのHairを抽出したいからだけど、一度作ってしまえば同じモデルならコピペで使い回せる。
マテリアル2のやつでやったらちゃんとベイクできたので、マテリアル8とマテリアル2のやつを両方エクスポートしておくと良いかも。
手順2:blenderに読み込んで髪の毛を複製して法線を反転させる
これはマテリアル8でエクスポートしたモデルでやった。
これも別記事に書きました。

これでこんな感じのメッシュが作れた。
法線が正面を向いてるので、モバイルシェーダーで片面しか表示されなくても大丈夫。
次にテクスチャを一枚にベイクするけど、マテリアル8のやつだと何故か失敗して真っ黒になってしまったので、ここからはマテリアル2のやつでやる。
作ったHair-Backはマテリアル2のモデルにコピペします。
手順3:blenderでテクスチャを一つにベイクしてまとめ、マテリアル一つにする
テクスチャベイクしてマテリアルを一つにできれば、Fallbackアバターとして使える。
こちらの優秀な先輩のページがとても参考になりました。
ありがとうございます(*^-^*)

…これなぜかマテリアル8でエクスポートしたVRoidモデルだとベイク失敗したので、マテリアル2でエクスポートしたやつでやります。
詳細はリンク先を見てもらうとして、ダイジェスト的に動画を置いておく。
UVマップを新規で作って、BodyやFaceなどオブジェクトごとにUV展開して一つのUV展開図にまとめていく感じ。
「ディフューズ」でベイクしたら真っ黒になってしまったけど、「統合」でベイクしたらいけた。
ベイクが終わったらテクスチャを忘れずに保存しておく。
↓UVマップを切り替えてシェーダーノードをつなぐ
見た目がおかしいけど、この後メッシュを結合してマテリアルを削減し、unityに持っていったら正常な見た目になっていた。
ので現時点では気にしなくてOK。
これ多分シェーダーノードがUVマップの設定がおかしいんだと思うけど、今の私の技術力では原因不明(;^_^A
手順4:blenderのデシメートモディファイアでBodyのポリゴンを削減する
VRoid Studioでエクスポートする前に削減しておけばだいぶ減らせると思うけど、まだ13000くらいある。
Fallbackアバターにするには7500以下には減らしておきたい。
合計のポリゴン数が7500以下になるよう削減すればOK。
faceはシェイプキーがあるのでデシメートモディファイアが適用できず、Apply Modifierアドオンを使ってもエラーが出たので削減できないみたいです(~_~;)
なので削減するならBodyかHair-Backしかない。
Faceメッシュは、Apply Modifierアドオンでデシメートモディファイアを適用しようとするとエラーが出るっぽい
一応ダメだった事例として触れておくけど、Apply Modifierアドオンはシェイプキーがあるメッシュをデシメートする場合は使えないっぽい?
Faceメッシュをデシメートして適用しようとしたらシェイプキーがあってダメだったので、Apply Modifierアドオンで適用しようとしたけどエラーが出てダメだった。
多分頂点情報が削減されてシェイプキーが壊れてしまうからかな。
エラー内容はこんな感じ。
Python: Traceback (most recent call last):
File “C:\Users\MK-Mayumi\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\ApplyModifier-master\__init__.py”, line 234, in execute
apply_modifier(target_object=bpy.data.objects[objname], target_modifiers=str_targets)
File “C:\Users\MK-Mayumi\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\ApplyModifier-master\__init__.py”, line 169, in apply_modifier
bpy.context.window_manager.popup_menu(draw, title=”Error”, icon=’INFO’)
File “C:\Program Files\Blender Foundation\Blender 2.93\2.93\scripts\modules\bpy_types.py”, line 158, in popup_menu
draw_func(popup, bpy.context)
File “C:\Users\MK-Mayumi\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\ApplyModifier-master\__init__.py”, line 165, in draw
self.layout.label(“Vertex Count Disagreement! Some shapekeys skipped.”)
TypeError: UILayout.label(): required parameter “text” to be a keyword argument!location: <unknown location>:-1
ちなみにこのエラーが出ると謎の作業用っぽいメッシュが残ってしまうので、このエラーが出たら削除するかアンドゥして戻しておいたほうがいいと思います。
デシメートを適用しなくてもVRMエクスポートはできるけど…
でもこれ適用しなくても行けるっぽくて、VRMエクスポートしてunityに持っていったら、デシメート後の頂点数になっていた。
デメリットとしては、適用されないから編集モードにするとデシメート前の頂点情報になってしまうこと。
しかしblenderでメッシュを結合すると、モディファイアは適用されずに削除されてしまうみたい。
VRMエクスポートする直前にやるならいいけど、メッシュ結合前にやるのはダメっぽい。
でもこれでunityに持っていくとシェイプキーが消滅していたので、やっぱりFaceはデシメートしないほうがいいかもしれない。
とりあえず今回はFaceメッシュはデシメートせずに、BodyとHairだけデシメートしてやってみます。
それでも7500以下にはできました。
あんまり削減しすぎると穴空くからギリギリでいいかな(;^_^A
手順5:メッシュ結合する
Body、Face、Hair(透過対策用) の三つがあるので結合します。
Shift押しながら三つとも選択して、Ctrl+Jで。
マテリアルを削除する
結合したので、三つあるマテリアルを一つに削減する。
N00_000_00_Body_00_SKIN (Instance) ってやつだけ残せばいいっぽい。
見た目は相変わらずおかしいけど、このままunityに持っていく。
手順6:blenderに読み込んでいらないボーンを消す
これは別にいつやってもいいけど、ここでボーン削減しておく。
これは別記事に書きました。

削除の様子はこんな感じ。
髪の毛と服のボーンを消せば59個までボーン削減できた。
間違えて首や腕のボーンを消さないように注意。
手順7:エクスポートしてunityに持っていく
unityに持っていったらちゃんと表示された!
ダメならベイクしたテクスチャを手動でマテリアル適用すると大丈夫かもしれない。
VRChat/Mobile/Toon Litにしたらいい感じに。
あとはアイラインが透過失敗してるところをなんとかすれば…。
faceはデシメートしてないのでちゃんと表情シェイプキーも動きます。
アイラインが黒くなっている部分を調整する
GIMPで開いてみたけど、どうもこの黒いあたりがダメっぽい。
GIMPの色交換で肌色にしてみる。
範囲選択してからやると、選択範囲内の指定した色だけ変えられます。
まだちょっと黒いけど、あとは調整次第か…。今回はそこまで細かくはやりません(;^_^A
とりあえずこれでいいかな。
手順8:VRChatにアップロードする
VRC Avatar Descriptorを追加する。
やった!androidでも余裕のパフォーマンスExcellent!!
カスタムフォールバックとして使えるって書いてありますね。
windowsとandroidでアップする
両方アップしないといけないっぽい?ので両方やります。
androidビルド
windowsにスイッチして、
windows版でもアップする。
動作確認する
おお!My Creations For Fallbackのところにちゃんとありますね(*^-^*)
まぁ特に問題なく動きますね。
削減してちょっと穴空いてるのは調整するしかないかな(;^_^A
これFallbackアバターは普通のアバターとは別モノ扱いみたいな感じ?っぽい。
メインをデフォルトのモデルにして、Fallbackアバターを自分でアップしたやつにしたりできる。
手順が分かればまぁまぁ簡単にできるので、削減してFallback用のアバターも用意しておくと便利かもしれない。
おわりに
ざっくりやったのでアラは結構あるけど、一応アップできて良かった。
あとは調整次第かな?
ある程度できたらBOOTHあたりに置いておきたいけど、もう少しVRChatの勉強したほうがいいかな(;^_^A
Fallbackアバターにしておけば制限で引っかかっても表示されるので、作っておくと便利かもしれない。
気が向いたらMakeHumanで作ったモデルとかもアップしてみるかもしれない。

あとはワールドでも作ってみようかな。部屋とかも作り込んでみたいし。
まぁ飽きないように色々やっていこうと思います(*^-^*)