やりたいこと
spritemaskの機能を使いたいのですが、マスクしたいSprite Rendererによっては機能しないことがあります。
spritemaskのドキュメントについてはこちらです
https://docs.unity3d.com/ja/current/Manual/class-SpriteMask.html
やったこと
↑の画像をごらんください。
画像の左上、濃い青のボタンの画像をSprite Rendererを使用して画面に表示し、星型のマスクを設定しました。その結果、上2つのケースでは正常に星の形にマスクされており、下3つのケースではマスクされていません。
それぞれのケースでは「Sprite RendererのSpriteの画像は同じ」、「Sprite Maskの設定しているSpriteやそれ以外の項目は同じ」、「Sprite RendererのMaterialのみ異なる」といった状態です。
変更したマテリアルは右上のものはSprite Renderer作成時にデフォルトで設定されているSprites-defaultマテリアルで、それ以外の4つはアセットに含まれているものや自作したものなど、適当に選んだマテリアルを設定しています(なので、ボタンの表示がおかしいものになっているものもありますが、それは一旦置いておきます)
それ以外に影響しそうな項目、スプライト自体のMask InteractionやSprite Rendererのlayerの設定などは変更しておらず、マスクしたい画像のマテリアルに何が設定されているかによってマスクされるか否かが決まっているように見えます。
しかし、上記ドキュメントにこのような、シェーダーの設定によってはマスクできないから気を付けてね!という記述もなく、検索しても情報が見つからないため、シェーダーが原因なのか、日ごろの行いが悪いからか、それ以外の原因なのかわからず、Sprite Maskにも同じMaterialを設定すればいいのでは?と思ったりもしますが、Sprite MaskにはMaterialを設定することすらできず、解決することができません。
この問題の解決方法、あるいはspritemaskはこう使うのが常識だろ!など情報をお持ちの方は教えていただけないでしょうか_(┐「ε:)_

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/28 15:25