bdunderscore / ndmf

MIT License
56 stars 18 forks source link

Poiyomi Toon ShaderをNDMFで扱うとき、SubAssetsでまとめていることによって問題が発生する #253

Closed Azukimochi closed 1 month ago

Azukimochi commented 1 month ago

Poiyomi Toon Shander(以下Poiyomi)は、最適化機能(以降Lock)を使用することで、未使用パラメーターを削除したシェーダーを生成し、マテリアルの同じ階層の"OptiomizedShaders/{Material Name}/{GUID}に保存して使用します。 このとき、NDMFでこのPoiyomiのマテリアルに対して複製などの操作を行い、Generated_配下のSubassetsに入っていると、最適化されたシェーダーのGUIDが同一になり、ビルド後のアバターに含まれるPoiyomiシェーダー情報が同一のものになるという不具合が発生します。

再現手順

必要アセット Light Limit Changer For MA anatawa12's gists pack(Manual Bake Preprocess Avatar Callbacks)

  1. Poiyomiを使用したアバターを用意します。(この段階で、PoiyomiマテリアルはすべてAnlockしておく)
  2. Light Limit Changer For MAを導入し、”色温度"、"彩度"機能をオンにし、どれかのマテリアルのメインカラーを変更し、ベイク(複製処理)の条件を満たします。
  3. アバターを右クリック -> "Manual Bake Preprocess Avatar Callbacks" をクリックし、Upload Preprocessを走らせてアバターを生成します。(この手順は、PoiyomiがPreprocessのときにマテリアルのLockを実行し、最適化を行うためです)
  4. 生成後のアバターのPoiyomiマテリアルのシェーダーが__Generated/OptimizedShades/{GUID}/Poiyomi Toon ファイルを多重参照しているのを確認できます

Note. この動作はPoiyomi Discord Server:sgader-bugs にて報告済み、Poiyomi側で改善される可能性はあります

bdunderscore commented 1 month ago

Poiyomi側で改善されたらしいのでクローズします