• International日本語
  • SpineとUnityでRecieve Shadowsを使用する際のアニメーションが点滅する不具合

お世話になっております。
spineのバージョン4.0.64と、spine-unity-4.0-2022-09-26.unitypackage使用させていただき、
unityのバージョン2021.3.25f1にインポートし、
2Dのspineで制作したキャラクターと3Dの背景でゲームを作っているのですが、Recieve Shadowsで上手く2Dに3Dの影が落ちるようにすることができません。

過去のスレッドを拝見し、ShaderをSpine/Sprite/Pixel Litにした後、Fixed Normalsにチェックを入れました。
その結果、Recieve Shadowsで影は2Dに反映されるようになったのですが、キャラクター自体が点滅するようにチラついてしまいます。
試しに、一枚絵のspine animationを読み込むとチラつきは起きないので、おそらく、ボーンやパーツ分けしたspine animationにSpine/Sprite/Pixel Litを設定しFixed Normalsにチェックを入れるとチラつきが発生してしまうようです。

何か対策や、見逃している項目などはありますでしょうか?

お答えいただければ幸いです。
よろしくお願い致します。

Related Discussions
...

ご迷惑をおかけして申し訳ございません。 事前にバージョン情報を提供していただきありがとうございます。

どのレンダー パイプラインを使用していますか? おそらくユニバーサル レンダー パイプライン (URP) ではなくUnity の標準レンダー パイプラインを使用しているかと思いますが、URP を使用している場合は、Spine/Sprite/Pixel Litシェーダーを使用せず、代わりに Spine URP Shaders UPM パッケージに含まれているシェーダーを使用する必要があります。

SkeletonAnimationコンポーネントのAdvanced - Z Spacingを0以外に設定されましたか? Spine/Sprite/Pixel Lit シェーダーでは深度バッファに書き込むため、これが必要であることに注意してください。 Inspectorの SkeletonAnimation に赤いビックリマーク付きの警告が表示され、そこで必要な Z spacing についても言及されているはずです。

上記のいずれでも問題が解決しない場合は、この問題が依然として発生する最小限の Unity プロジェクトを提供していただけますか? コンテキストがわかるように、このフォーラム スレッドの URL を簡単に記載して、zip パッケージとして contact@esotericsoftware.com に送信してください。 何が問題なのかをこちらで確認してみます。



Sorry to hear you're having troubles. Thanks for providing the version information up front.

Which render pipeline are you using? I assume you are using Unity's Standard Render Pipeline, and not Universal Render Pipeline (URP), right? If you are using URP, then the Spine/Sprite/Pixel Lit shader should not be used, instead shaders from the Spine URP Shaders UPM package should be used.

Have you set Advanced - Z Spacing at the SkeletonAnimation component to anything other than 0? Please note that this is necessary with the Spine/Sprite/Pixel Lit shader, since it writes to the depth buffer. You should see a warning with a red exclamation mark in the SkeletonAnimation Inspector as well mentioning required Z spacing.

If none of the above fixes your issue, could you please provide a minimal Unity project which still shows this issue? You can send it as a zip package to contact@esotericsoftware.com, briefly mentioning this forum thread URL so that we know the context. Then we can have a look at what's going wrong.

お返事ありがとうございます。
ご指摘の通り、レンダー パイプラインはUnityの標準レンダー パイプラインを使用しております。
また、SkeletonAnimationコンポーネントのAdvanced - Z Spacingも変更してみたのですが、やはりspineアニメの点滅が発生してしまいます(赤いビックリマーク付きの警告は消えましたが)。

お手数おかけして申し訳ございません。
お言葉に甘え、Unityプロジェクトのzipパッケージをcontact@esotericsoftware.comに送信させていただきました。
よろしくお願い致します。

    kou7 再現用のデータをお送りいただきありがとうございます。
    しかしながら、Haraldがお伝えしたように、ユーザー様各位にはUnityプロジェクトをお送りいただく際には「最小限の内容」でお送りいただくようにお願いしており、お送りいただいたZIPファイルには問題再現に不要なファイル(Library、Logs、obj、UserSettingsフォルダや、拡張子に.csproj.slnがつくファイルなど)まで含まれていましたので、今後Unityプロジェクトをお送りいただく際にはこれらを削除していただいた上で送っていただけますよう、ご協力いただけますと幸いです。

    問題の解決策については後ほどHaraldから回答があると思いますので、恐れ入りますが今しばらくお待ちください。

    ご確認ありがとうございます。
    また、Unityプロジェクトの件、大変申し訳ございませんでした。
    どのファイルを削除すれば最小限の内容になるかわからず、ああいった内容になってしまった次第です。
    次回以降、十分に注意してお送りしたいと思います。
    お手数ですが、よろしくお願い致します。

    @kou7
    Misakiが言ったように、サイズが 2GB のプロジェクトは絶対に共有しないでください。少なくとも不要な Library ディレクトリを常にプロジェクトから削除してください。 送っていただいたzipファイルから不要なファイルを除いたもののサイズはわずか 2MB でした。

    残念ながら、再現プロジェクトではちらつきの問題を再現できませんでした。 私が気づいたのは、Unity のシャドウ キャスティング設定、特にバイアス設定 (Directional Light) がシーンに合わせて適切に調整されていないため、望ましくないセルフ シャドウイング (シャドウ アクネ) アーティファクトが見られることです。

    また、Player Spine スケルトン ゲームオブジェクトのマテリアル設定が適切に調整されていないため、アルファ値がアルファしきい値を超えている透明な境界でアーティファクトが発生し、その結果、深度バッファまたはシャドウ バッファに書き込まれます。 したがって、それに応じてマテリアルのDepth Alpha CutoffShadow Alpha Cutoffを調整するとよいでしょう。

    上記の状態のことを「ちらつき」と言っているわけではない場合は、スケルトンのZ-Spacingをより大きな値に調整してみてください。

    上記のいずれでもない場合は、「ちらつき」の意味を示すスクリーンショットを見せていただき、Playを押したときに問題を再現できる別の Unity プロジェクトを共有してください。



    As Misaki mentioned, please never share a project of size 2GB, always remove at least the unnecessary Library directory from it. A zip file of your project without the unnecessary files is only 2MB in size!

    Unfortunately I could not reproduce a flickering problem in your reproduction project. What I noticed is that your Unity shadow casting settings, especially the bias settings (at the Directional Light) are not well adjusted for your scene, thus I see undesired self-shadowing (shadow acne) artifacts.

    Also the Material settings at your Player Spine skeleton GameObject are not well adjusted, leading to artifacts at the transparent border, where the alpha value is above the alpha threshold, thus writing to the depth or shadow buffer. Thus you might want to adjust Depth Alpha Cutoff and Shadow Alpha Cutoff at the material accordingly.

    If the above is not what you describe as flickering, please try adjusting the Z-Spacing at the skeleton to a larger value.

    If it's none of the above, please show in a screenshot showing what you mean by flickering and share another Unity project with us which reproduces the issue when pressing Play.