Topics

【Unity徒然6回目】VRoidをURP対応してみた

  • このエントリーをはてなブックマークに追加

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のモデルが動くように


関連記事