どうコメの開発では、VRMをUnityで使用するためにUniVRMを使用しています。
どうコメのプロジェクトは、レンダリングパイプラインにURPを採用しており、今までUniVRMが提供しているシェーダーが利用できませんでした。
なので当初はユニティちゃんシェーダーを使って変換をかけていたのですが、そのうちユニティちゃんシェーダーも開発が止まり、UnityToonシェーダーに置き換えるようお達しが出てしまいました。
そしてこの度、UniVRMがURPに対応した!ということで、早速置き換えを試みます。
ところがドキュメントをよく読むと、今回対応したのは、ランタイムのインポートのみ。
ランタイムのインポートというのは、プログラム実行中にリアルタイムにVRMを読み込んで表示を行うタイプのことです。
つまり、予めインポートをしてプレハブを作っておくといったエディタインポートは、未対応なのです。
実際に行うと、シェーダーの設定がURPのものにならず、ピンク状態になってします。
ただまぁシェーダー自体は手動で設定してやれば切り替えられるので、手作業でちまちまシェーダーを変えていきます。
おかしな所は無さそうに見えます。
これを実際に表示してみます。
右がリアルタイムインポートのもの、左が先ほど作ったプレハブにしたものです。
左側のキャラはなんか白いです。
裏を見ると真っ白です。
うーん、これは使えません。
リアルタイムインポートしたものは問題ないですね。
どうもシェーダの切り替えを手作業で行う際に、一部のパラメータが欠落してしまうようです。
左が手作業でシェーダーを切り替えたもの、右がリアルタイムインポートで設定されたものです。
ノーマルマップは欠落しているし、なんか色々と設定が違います。
というわけで、エディタインポートを行いたい場合は、変換プログラムを書いてやる必要があります。
でもまぁエディタインポート自体の対応は、比較的早いんじゃないかなと思います。
わざわざ変換プログラム作っても数ヶ月の命なら、移行そのものを延期してもいい気がします。
実際UnityToonシェーダーとの違いってあんまり分からないですし。
どうコメでは、今回のバージョンアップを期に、エディタインポートをやめて全部リアルタイムインポートするよう変更しました。
リアルタイムインポートって、結構時間がかかるので、たくさん出すとかであれば、やっぱりエディタインポートしておきたい場合もあるでしょうね。
このへんはゲームの特性によるかもしれません。
おしまい
コメント