- Uređeno
Unityのマテリアルによってパーツの輪郭線が浮き上がってしまう
Unity2021.2.10f1(2DのURPを利用)
spine-unity-4.1-2022-02-10-beta.unitypackage
com.esotericsoftware.spine.urp-shaders-4.1-Unity2019.3-2022-01-18-beta.zip
上記を利用しております。
アセットストアなどでSpine対応のマテリアルや自作のマテリアルを反映させると、Spineのパーツの輪郭線が浮かび上がってしまうことが多々あります。
↑口と目元に輪郭線が浮かび上がってしまっています。
「UniversalRenderPipeline/2D/Sprite-Lit-Defalt」
などを設定すると再現がすぐできるかと思います。
(こちらはおそらく本来設定しては行けないシェーダーかなにかだと思いますが……)
こちらの対策などあったら教えていただけますと幸いです
こんにちは!
パーツの周りに黒い輪郭線が出る場合、そのテクスチャが元々Premultiply alpha (乗算済みアルファ)
設定を使用してエクスポートされているのにも関わらず、Unity内でストレートアルファの設定でレンダリングしてしまっていることが原因です。
URPのシェーダーを設定した際に問題が起こるとのことですが、シェーダーは基本的にストレートアルファテクスチャを想定しているため、黒い境界線が発生します。
詳しくはspine-unityランタイムドキュメントの以下のセクションで解説されています:
[url=http://ja.esotericsoftware.com/spine-unity#%E9%AB%98%E5%BA%A6%E3%81%AA%E6%83%85%E5%A0%B1
%E4%B9%97%E7%AE%97%E6%B8%88%E3%81%BF-vs-%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%83%88%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88]spine-unityランタイムドキュメント: 高度な情報 乗算済み vs ストレートアルファインポート[/url]
解決するには、上のセクションの中の『テクスチャパッカーの正しいエクスポート設定およびテクスチャとマテリアルの正しいインポート設定』で掲載されている、乗算済みアルファで書き出したテクスチャの場合とストレートアルファで書き出したテクスチャの場合の設定内容をもとに、テクスチャの設定を修正してください。
もし乗算済みアルファとストレートアルファの違い自体がよく分からない場合は、英語の投稿にはなりますが以下の投稿を読んでいただけるとよく分かると思います:
Premultiplied Alpha Guide
また、シェーダーを使用したい場合、公式に提供している拡張UPMパッケージで追加できるUniversal Render Pipeline/2D/Spine/Skeleton Lit
などのシェーダーを使用されることを推奨していることにもご注意ください。
その他ご不明な点があればお気軽にご質問ください!
ありがとうございます!!
ストレートアルファの設定でインポートしたところ、黒い輪郭が表示されなくなることを確認いたしました。
ただ、SpineBoyで上記設定で取り込むと問題なく表示されるのですが、自作のSpineで上記対応をすると右腕がそもそも表示されないなどの別の問題が発生することが確認されました。
こちらですが、類似の案件、修正方法などご存知でしょうか……?
Spineboyでは黒い輪郭が表示されなくなるのが確認できたとのことで良かったです!
ただ、
自作のSpineで上記対応をすると右腕がそもそも表示されないなどの別の問題が発生することが確認されました。
という件に関しましては、申し訳ありませんがいただいた情報だけでは何が原因なのかの判断が難しいため、
・テクスチャのエクスポート設定
・Unity上でのテクスチャの設定
・スケルトンのマテリアル設定
をそれぞれご共有いただくか、または問題のある部分だけの最小のデータをご用意いただいて contact@esotericsoftware.com までプロジェクトをご送付いただけますと幸いです。
お手数ですがよろしくお願いいたします。
申し訳ありません、クリッピングが悪さをしてしまっていたようで腕が表示されないのは全く別件でした。
上記修正したところ問題ないことを確認いたしました、ありがとうございます!!
問題が解決されたようで良かったです!また何かご不明な点がありましたらお気軽にご投稿ください
すみません、こちらの件ですが、Unity設定で
Preferences>Spine>Atlas Texture Setting
しました。
しかし、
〇〇-Screenと〇〇-Multiplyのマテリアルの「Straight AlphaTexture」のプロパティがチェックされず、画像がおかしく表示されてしまうようです。
こちらのマテリアルに関しては毎回手動でチェックを入れる必要があるのでしょうか?
混乱させて申し訳ありません。 ブレンドマテリアルの場合、Spine Preferences - Additive Material
などのマテリアルテンプレートが使用されることに注意してください。
Preferencesウィンドウに警告を追加し、 SkeletonStraightAdditive
などのマテリアルテンプレートを追加しました。 これらのテンプレートマテリアルが追加された新しいspine-unity4.0パッケージが利用可能です。
Spine Unity Download
Sorry for the confusion. Please note that for blend materials, the Material templates under Spine Preferences - Additive Material
, etc. are used.
I have added a warning in the preferences window, and added SkeletonStraightAdditive
etc. material templates. A new spine-unity 4.0 package is available with these template materials added.
Spine Unity Download
こちらの件を受けて、spine-unityランタイムのドキュメントに、ストレートアルファワークフローを使用する際のブレンドモードマテリアルの設定についての説明が以下のセクションに追加されました:
[url=http://ja.esotericsoftware.com/spine-unity-ja#%E9%AB%98%E5%BA%A6%E3%81%AA%E6%83%85%E5%A0%B1
%E4%B9%97%E7%AE%97%E6%B8%88%E3%81%BF-vs-%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%83%88%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88]spine-unityランタイムドキュメント: 高度な情報 乗算済み vs ストレートアルファインポート[/url]
Premultiply alpha を無効にしている場合は、Atlas Texture Settings を StraightAlphaTexturePreset に、そしてブレンドモードマテリアルもSkeletonStraightAdditive、SkeletonStraightMultiply、SkeletonStraightScreen に設定してください。
お手数ですがこちらを参考にPreferencesの設定を修正していただければ幸いです。