VRoidStduioから出力されたVRMのモデルデータはURPに対応していないのでURP環境だとまともに動かなくなってしまう
ということでURP対応をやってみました
差し替えるシェーダーはお手軽ユニティちゃんシェーダー
素で使ったら重いのでゲームには不向きですが検証には最適ですねこれ
https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project/releases/tag/urp-2.5.0
*注意点がURP用のユニティちゃんシェーダーでないとURP対応していないのでアウト
で、ポチポチマテリアルを差し替えていったら完了なのですが、なんとこれをプログラムで対応してくれるコードを公開してくれている方がいらっしゃいました
ありがたい!!
https://qiita.com/carnaite0224/items/59537e4b2ce4a9bd0eb9
ということで倣って早速gitからプロジェクトを落としてみる
https://github.com/Carnaite0224/VRoidMaterialChanger
ここのVRoidChangeMaterials.unitypackageを展開
したらばメニューバーにURPが追加されているのでモデルのprefabを選択した状態で
URP→VRoid→Materials Initialize To Lit Shaderか Materials Initialize To Toon Shaderを選択
これで押すとマテリアルがすべて入れ替わり完成
無事入れ替わりました
ただ、今Litを試しましたが、この後LitからToonに変えようとしてもうまくいきません
コードを見てみると
var vrm = Shader.Find(“VRM/MToon”);
としているので1度変更をかけてしまうともう見つからなくなってしまうので、再度変更することができません。
逆に言えばここのコードを書き換えてしまえばいくらでも変更することが可能になります
*ただ必要なマテリアルがフォルダの一か所にまとまっているのでそもそも手動で変更もできます
まぁこれで無事URP上でVRoidのモデルが動くように