バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はShader error in ‘VRM10/Universal Render Pipeline/MToon10’~が出た時の備忘録です。
すぐ解決したけど次似たようなエラーが出た時のために一応記事にしておきます。
症状:VR Interaction Frameworkをビルドしようとしたらエラーが出た
unityスプリングセールで買ったVR Interaction Frameworkアセットで遊んでいたらエラーが出ました。
環境はunity 2020.3.40f1、UniVRM v0.111.0、VRM0.0のモデルを使用、プロジェクトはURPではなくBuilt in Render Pipelineです。
以前は普通にビルドできたんだけど、UniVRM入れたからかな?
エラー内容:Shader error in ‘VRM10/Universal Render Pipeline/MToon10’: Couldn’t open include file ‘Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl’. at Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_render_pipeline.hlsl(5)
こんな感じのエラーが出ていた。
このプロジェクトはBuit in Render Pipelineなんだけど、URP関係のエラー?が出ています。


Shader error in ‘VRM10/Universal Render Pipeline/MToon10’: Couldn’t open include file ‘Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl’. at Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_render_pipeline.hlsl(5)
Compiling Vertex program with DIRECTIONAL LIGHTPROBE_SH _SCREEN_SPACE_OCCLUSION
Platform defines: SHADER_API_DESKTOP UNITY_ENABLE_DETAIL_NORMALMAP UNITY_ENABLE_REFLECTION_BUFFERS UNITY_LIGHTMAP_FULL_HDR UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BLENDING UNITY_SPECCUBE_BOX_PROJECTION UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS
Disabled keywords: FOG_EXP FOG_EXP2 FOG_LINEAR INSTANCING_ON LIGHTMAP_SHADOW_MIXING SHADER_API_GLES30 SHADOWS_SCREEN SHADOWS_SHADOWMASK UNITY_ASTC_NORMALMAP_ENCODING UNITY_COLORSPACE_GAMMA UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_RGBM_ENCODING UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_DXT5nm UNITY_NO_FULL_STANDARD_SHADER UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_VIRTUAL_TEXTURING _ADDITIONAL_LIGHTS _ADDITIONAL_LIGHTS_VERTEX _ALPHABLEND_ON _ALPHATEST_ON _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MTOON_EMISSIVEMAP _MTOON_PARAMETERMAP _MTOON_RIMMAP _NORMALMAP
UniVRMのバージョンが合っていないからかも?
入れたのはUniVRM v0.111.0だけど、2020対応の最終バージョンっぽいし一応対応してるとは思う。
2020.3 LTS or laterって書いてあるし、unity 2020.3.40f1なら使えそうだけど。
VRM0.0のモデルをインポートさせるために0.xのほうを入れました。



UniVRMを削除したらビルドできた
これパッケージマネージャーに出ないのでいつも手動で削除していますが、この三つを削除する。


もしかしてUPMパッケージなら削除できるのかな?まぁ後でやってみます。
削除したらエラーも消えて普通にビルドできましたね。


やっぱりUniVRMの問題か。
以前はwebXR Exportで普通にビルドして動かせたし、バージョンの問題かな?
UniVRM 0.110.0を入れたら普通にビルドできた
あっバージョンが合ってなかっただけか…。
↓v0.110.0のUniVRMを入れたらエラーも出ず普通に使えました。

v0.111.0のほうに何か不具合があったか、環境の相性が悪かっただけかな?


その後も普通にビルドできました。
うーんなんか拍子抜け。まぁ解決したからOK。
似たようなエラーが出ている人は多分シェーダー関連のエラーだろうから、別のバージョンのシェーダー入れたりすれば治るかもしれません。
検索したらMTOONじゃない別のシェーダーで似たようなエラーが出たっていうページが引っかかったので、他のシェーダーでも起こる可能性がありそう。
2024/07/19追記:URP関係のエラーの可能性も?VRM1.0じゃないとURP対応してないっぽい
上記のやり方でエラーは解決したんだけど、URPプロジェクトをいじっていたら似たようなエラーに遭遇したので一応追記しておきます。
↓こちらの記事に詳しく書きましたが、VRM1.0じゃないとURPに対応してないっぽいです。VRM0.0だとダメらしいからこのあたりが関わってるエラーかもしれない。
UniVRM v0.111.0はちょうどURP対応の過渡期にリリースされたバージョンなので、URPではないプロジェクトやVRM0.0でもエラーが出やすいのかも?
↓v0.112.0からURP対応したって書いてあるし、このバージョンからunity 2021.3が最低バージョンになったみたい。こういう過渡期は変なエラー出やすいのかな…?


エラーが消えない人は、レンダーパイプラインやUniVRMのバージョン、unityのバージョンが合っているかを見直してみると良いかもしれません。
レンダーパイプラインはプロジェクト設定 ⇒ グラフィックス ⇒ スクリプタブルレンダーパイプライン で確認できます↓。
何も設定されてなければBuilt in Render pipelineで、あとはURPやHDRPならそういう名前のファイルが設定されてるはず。


まぁ何かのヒントになれば幸いです。
追記終わり。
おわり
案外簡単に解決してよかった。
uniVRMの不具合なのか私の環境に合わなかっただけかは不明(;^_^A
まぁ書き残しておくと覚えやすいし次似たようなエラーが出ても解決しやすくなるかもしれないので…。
また同じようなエラーが出たら追記します(*^-^*)