概要
StandardShaderを含むVRMモデルをランタイムロードできない例と対策を記載します。
例
ビルドに含めたシーンにStandardShaderが使われているオブジェクトが一つも無いと、ビルド物にStandardShaderが含まれないようです。VRMを使ったツール的なアプリだと空シーンにモデルだけ読むといった作りになるので、忘れちゃうかもしれません。(私は忘れてました。
確認
UniVRM的にはStandardShaderは「UniVRMで使えるシェーダー」だそうですので、対応しとくのが正解だと思われます。https://vrm.dev/univrm/shaders/univrm_shaders/
対策
StandardShaderが付いたオブジェクトを追加して、非表示にしておきます。
※もっと良い方法がありそうです。
参考
ビルドするシーンにスタンダードシェーダのオブジェクトが一つも無いから、スタンダードシェーダがそもそも含まれて無くて?読み込めないという、「そりゃそうね……」という状態でした。(画像はスタンダードシェーダの箱を無駄に置いてビルドした状態で、手前から全std混std全MToon https://t.co/ZrrUKyOsEx pic.twitter.com/kPZzOc3cl5
— 120 (@120byte) November 26, 2019