しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

URP で Shader Graph を使って Sprite を明滅させる

※ これは 2023/04/06 時点の Unity 2022.2.13f1 の情報です

最新版では動作が異なる可能性がありますのでご注意ください

前回は URP 3D で Sprite に向きを無視してカスタムライティングした

距離に応じてライティング

今回は Shader Graph を使って Sprite の Bloom 効果を明滅させてみたい

白猫だと Bloom が光りすぎるので Sprite 画像をこんなロボ猫に変更

ロボ猫画像

光らせる部分を境界線だけにするため、さらにこんな白縁取り画像も用意

白縁取り画像

Sprite Editor を開き、Secondaly Textures で _Emission という名前で上記の白縁取り画像を追加して Apply しておく

SpriteEditor で Secondaly Textures に縁取り画像を登録

前回使っていた SpriteLit の Shader Graph を複製し、SpriteGlow という Shader Graph を作成、いったんライティングの影響を無視するため MaterialUnlit に変更し、下記の青い部分を追加する

Shader Graph を修正

時間経過で増加する Time ノードを拾い、のこぎり状の三角波に変換する Sawtooth Wave ノードをかけて Remap ノードで出力範囲を調整、EmissionColor から引き算して暗くする処理を追加している

これでロボ猫の Sprite をこの SpriteGlow を通して表示すると・・・

境界線が明滅

境界線の部分だけ Bloom 効果が明滅するようになった!