Obi FluidとMTOONでUNITY_LIGHT_ATTENUATION関連のエラーが出た!その後動いたけど原因不明

Obi Fluid

またObi Fluidでビルドエラーが出たのでメモ。

 

Obi Fluidっていうのはこれね。

■PR■

現在Meta Quest2 128GBが13%割引で買えるうえ、なんと「Space Pirate Trainer DX」と「GOLF+」がタダで貰えるようです(2023/04/02 23:59まで)。

ザッカーバーグ氏太っ腹すぎる…Σ(゚Д゚)

Meta Quest 2—完全ワイヤレスのVRヘッドセット【2023/06/03まで「Space Pirate Trainer DX」「GOLF+」無料ダウンロード付】—128GB|Amazon

この機会にメタバースデビューしておくのも良いかも。

エラー内容

エラーは二つ。

Shader error in ‘Obi/Particles’: invalid subscript ‘_ShadowCoord’ at line 100 (on d3d11)

Error building Player: Shader error in ‘Obi/Particles’: invalid subscript ‘_ShadowCoord’ at line 100 (on d3d11)

ParticleShader.shaderファイルの100行目でエラー?

エラーをクリックしたら、エラーが出てるのはこのファイルの100行目みたい。

100行目はこれ。

UNITY_LIGHT_ATTENUATION(atten,i,0);

MTOONでも同じ感じのシェーダーエラーが出ていた( ̄▽ ̄;)Obi Fluidだけの問題じゃなさそう

Shader error in ‘VRM/MToon’: invalid subscript ‘_ShadowCoord’ at Assets/AssetStore/uniVRM/VRMShaders/MToon/MToon/Resources/Shaders/MToonCore.cginc(165) (on d3d11)

 

検索したら、似た場所でエラーになってる人がいた。

UniVRMをAndroid向けにビルドするとMtoonで躓く現象の回避方法 - Qiita
環境 macOS 10.14.6 Unity 2018.4.9f1 UniVRM 0.53.0 起こったこと UniVRMを含むプロジェクトをAndroid向けにビルドすると、次のようなエラーが発生し、ビルドに失敗した。 ...

この人も比較的近いエラーかな?

Oculusアプリのビルドでエラーになったときの対応について(Unity)|ひでゆき|note
UnityのShader Forgeを使用して作ったシェーダーは、ビルドのときにエラーが出るときがあります。 原因は、Shader Forgeを使用して作ったシェーダーの中で、使えるシェーダーAPIを判別しているのですが、ここで正しく判別できないためです。 エラーの改善方法は、Player SettingsのO...

自動グラフィックAPI for windowsのチェックを外して、OpenGLES3を追加したらビルドできたけど、これ関係ないんじゃ…?

でもOpenGLESって、androidとかモバイル向けっぽい?けど…。

これ関係ないんじゃない?

これで本当に解決したのかは不明(;^_^A

その後再起動してみたらエラー再発!該当部分をつぶさないとダメっぽい

なぜビルドできたりできなかったりするのかは不明(-_-;)

はー、こういうのAIで自動検知とかして、なんとかできないんですかね。

MTOONのほうも UNITY_LIGHT_ATTENUATION でエラーが出てるみたい

MTOONのほうはここでエラーが出てるみたいで、Obi Fluidのほうと構文が同じ。

UNITY_LIGHT_ATTENUATION(shadowAttenuation, i, i.posWorld.xyz);

 

解決法 コメントアウトしてみる ※一応ビルドは通ったが、表示がおかしくなった

該当部分をコメントアウトしたら、ビルドは通ったけど実行したらシェーダーが死んだ( ̄▽ ̄;)

あれ、でも肌以外もMTOONなんだけど、あまり影響受けてないっぽい。

肌は形が複雑だから、法線とかそういうので影や光の影響を受けやすいからかな。

 

MTOONは切り捨ててUTS2にするとかならいけるかもしれない。

でもMTOONの透過は楽で優秀なんだよね。

肌だけUTS2にするのもいいかもしれない。

コメントアウトしたのを戻したらまた正常にビルドできた( ̄▽ ̄;)unity、私に構ってほしいだけなのかい…?

これなんか設定のせいなんじゃない?

挙動が不安定すぎるよ(-_-;)

その後再起動したらまた正常にビルドできた。とりあえず保留で…

これビルドの際にエラー起きる感じみたいだから、なんだろ。

Unity Editor上では問題なく再生できるし。

ビルドして作ったフォルダを削除してみたり、unity再起動したり、シェーダーを再インポートしたりして読み込みなおすと上手くいくのかもしれない。

キャッシュとかそういう感じの不具合とか?

 

とりあえず一応動くっぽいから、保留にしておきます。

 

タイトルとURLをコピーしました