lilxyzw / lilToon

Feature-rich shaders for avatars
MIT License
973 stars 97 forks source link

[VRCSDKクローズβ] Unity 2022.3.6f1でAssetBundleをビルドするとUV1データが消失してしまう #130

Closed bdunderscore closed 1 year ago

bdunderscore commented 1 year ago

LiltoonのMain Texture 2のUV ModeをUV1に設定すると、Unity 2022.3.6f1でAssetBundleをビルドするとUV1データが消失して、UV0が参照されます。Project Settings内の「Optimize Mesh Data」を無効にすると正常になりますが、VRCSDKが自動的に有効にするので困る人が多いでしょう。

再現パッケージはこちらです。 https://www.dropbox.com/scl/fi/7kdw9ceu7qfpohvddlm4w/liltoon-issue-130.unitypackage?rlkey=6licn57rt45nk87s4nj7fnasb&dl=0 VRCSDKなしで再現する手順

  1. 000u2022testの中にAssetBundlesフォルダーを作成(ある場合は中身を削除)
  2. Tools -> Build test assetbundle
  3. Play modeに入る
  4. Tools -> Load test assetbundle

なおエディタ内では正常で、簡単なUV1参照のUnlitシェーダーなら問題なく動作します(uv1testプレハブをシーンに置けば正常状態が見えます)

bdunderscore commented 1 year ago

https://gist.github.com/bdunderscore/6f52b2caedf032cb33178d6be712323f

こちらのパスをlts.shaderに追加することで迂回できる模様です。UsePassを参照していない可能性がありそうです。

bdunderscore commented 1 year ago

"LightPass"="NeverEver" でも行ける

bdunderscore commented 1 year ago

なお、上記のgistのvert入力をlil_common_appdataのstruct appdataに変えると認識しなくなります。なぞ。

lilxyzw commented 1 year ago

とりあえず上記pull requestで不具合を回避できることを確認したので開発ブランチにmergeしました。ありがとうございます!