[Unity] Shapes2D でブラーをかけると非表示になる場合

Shapes2Dはスクリプトからも手軽に扱えるので重宝しているのですが(無料だし)、ShapeTypeがEllipse(円形)でScaleを小さくした時にBlur(ぼかし)をかけていると表示そのものがされなくなる現象に出くわしたので調べたことをメモしておきます。
だいぶ限定的ですが。


ShapeスクリプトのンスペクタにはBlurという項目があります。これでぼかしの強度を調整することができます(0で無効)。


BlurはオブジェクトのSizeの半分未満を指定する

オブジェクトのScaleが X = 1,Y =1 ,Z =1だったとします。このときBlurに設定していい値は最大で0.4999999までです。
これを超えるとShapeが表示されません。Sceneビューでは暗転してます。
ただしXとYの値が違う場合は正常に動作します




これだけならまだ分かりやすいんですが、これにInnerCutoutが絡んでくるとややこしくなってきます。

InnerCutout は比率でカットされる

InnerCutoutは0〜1で指定します。1で全カットです。
Scaleが1のときにInnerCutoutを0.5にすると直径0.5の穴があきます。
この状態でBlurを0.4999999にするとInnerCutoutが無視されます。ぼかしはかかります。





このときInnerCutoutが効いたままでBlurが正常に有効なのは0.2499999までです。
つまりScaleの値からInnerCutout分引かれ、残り分が有効範囲となるようです。

動的に動かしたいのでない限りConver to Spriteで変換しちゃいましょう。



コメント