※ これは 2023/04/14 時点の Unity 2022.2.15f1 の情報です
最新版では動作が異なる可能性がありますのでご注意ください
前回は URP Shader Graph を使って Sprite に光る走査線を表示するような効果をつけた
今回はこんなドーナツ型のメッシュを穴の部分の大きさを Shader Graph で調整して描画させてみたい
スポンサードリンク
まず Blender で下記のようなドーナツをつぶしたような形状のメッシュを作成し、.fbx ファイルとしてエクスポート、Unity にインポートする
カーブで円を作って厚みをつけた後にメッシュに変換して、縦軸のスケールを小さくしてつぶせばできるはず
次に RIng という名前で Unlit の Shader Graph を新規作成し、下記のように設定する
Object の Positon ノードから頂点座標を持ってきて、Length
ノードで中心点からの距離を求めたのち、Lerp
ノードで InnerRadius
から OuterRadius
までの範囲で先ほどの距離に応じて滑らかに移動、元の座標でかけて頂点を移動させるということを行っている
この Shader Graph で Material を作り、先ほどのドーナツ型メッシュに設定してみると・・・
InnerRadius
を小さくすれば穴が小さくなり大きくすれば穴が大きくなる、OuterRadius
を大きくすればドーナツ全体が大きくなる
これの何がいいかというと、一定の厚みを維持したままドーナツ全体を大きく描画する・・・みたいなことがやりやすくなる
単純に拡大すると厚みの部分もそれに比例して大きくなってしまう事態が避けられるというわけ