プロジェクトに含めるシェーダーについて
UniVRM ライブラリを導入しただけでは、ビルド時にシェーダーエラーが発生し、モデルが正常に読み込めません。 なぜなら、アプリ上で読み込む glTF ファイルや VRM ファイルはビルド時には存在しないため、Unity が適切なシェーダをビルドに含めることができないからです。
ビルドする際は必ず Project Settings
で Always Included Shaders
に適切なシェーダを設定してください。
下記に設定するべきシェーダを記載します。
図: Project Settings
の Always Included Shaders
設定画面。 VRM 1.0 ファイルを URP で扱う場合の例。
シェーダのコンパイル - Unity Documentation
Always Included Shaders - Unity Documentation
Built-in Render Pipeline
glTF ファイルを扱う アプリの場合
com.vrmc.gltf
パッケージを用いて glTF ファイルを扱うアプリの場合、以下のシェーダをビルドに含める必要があります。
Built-in RP | |
---|---|
Standard | ✅ |
UniGLTF/UniUnlit | ✅ |
VRM 0.X ファイルを扱うアプリの場合
com.vrmc.univrm
パッケージを用いて VRM 0.X ファイルを扱うアプリの場合、以下のシェーダをビルドに含める必要があります。
Built-in RP | |
---|---|
Standard | ✅ |
UniGLTF/UniUnlit | ✅ |
VRM/MToon | ✅ |
VRM 1.0 ファイルを扱うアプリの場合
com.vrmc.vrm
パッケージを用いて VRM 1.0 ファイルを扱うアプリの場合、以下のシェーダをビルドに含める必要があります。
Built-in RP | |
---|---|
Standard | ✅ |
UniGLTF/UniUnlit | ✅ |
VRM10/MToon10 | ✅ |
Universal Render Pipeline(URP)
Universal Render Pipeline/Lit
のビルド時間が長大URP版のPBRシェーダー、 Universal Render Pipeline/Lit
の初回ビルドに長時間かかることがわかりました。
https://github.com/vrm-c/UniVRM/pull/2498
初回ビルドに長時間(10時間など)かかることにご注意ください。 2回目以降はキャッシュが使用されるのでそこまではかかりません。 ビルド時間軽減のためのカスタムシェーダーを検討中です。