Unity URP 2D SpriteShapeの使い方メモ

AngleRangeの使い方

設定しただけではダメTangentMode設定をLinerかBrokenにする必要がある

左上の青い円弧の部分のあたりで設定
Pointを選択すると出てくるメニューのTangentModeから設定

AngleRange>Spriteの複数設定

同じRangeの中に複数設定した際の変更方法

Spritesに追加する
Pointを選んでSprite Variantから割り当てる

使っている素材はこんな感じ

参考サイト:

Unityマニュアルhttps://docs.unity3d.com/ja/Packages/com.unity.2d.spriteshape@10.0/manual/SSController.html

Photoshopで輪郭を元にNormalを作る効果

フォトショップの画面
Unity上でLight2Dを当ててみた結果

Unity URP 2DでNormalを使いたいと思い、色々調べてみました。

最近の動向として、フォトショップでは3D機能が使えなくなるようなので、代替えまではいかないけど、簡単にnormalを作る方法を考えてみた。

今のところ輪郭だけに適応されます。内部は、手書きかな・・・
太さに応じて、効果を調整したりする必要がありそう。

手順

  1. カラーモードをCMYKにする
  2. 周囲が透明なオブジェクトを用意、3レイヤー分に複製する
  3. 上から、C、M、Yとする
  4. 下記ダウンロードからのスタイルを、それぞれCMYに適応する
  5. PNGで書き出す

Unity Visual Script :GPTさん一問一答

Cooldownノードで実行間隔を制限することは処理負荷の分散に繋がりますか?

はい、それは可能です。”Cooldown”ノードはその名前からもわかるように、特定のアクションが一定の時間(クールダウン期間)経過するまで再度実行されないようにする機能を持っています。

たとえば、毎フレーム処理を行うのではなく、一定の間隔(例えば1秒ごと)で処理を行うように設定すれば、その処理がゲームのパフォーマンスに与える影響を軽減することができます。これは特に、重い計算や複雑な物理シミュレーションなどのコストの高い処理に対して有効です。

ただし、”Cooldown”ノードを使用することでパフォーマンスが向上するかどうかは、その処理の性質とゲームの要件によります。例えば、プレイヤーの入力を処理するような場合、リアルタイムの応答性が重要になるため、クールダウンを設けるとゲームプレイの体験が悪化する可能性があります。

そのため、パフォーマンスの最適化を図る際には、ゲームの要件とプレイヤーの体験を考慮しながら、必要な処理とその頻度を適切にバランスさせることが重要です。また、プロファイラを使ってパフォーマンスを定期的に測定し、最適化の効果を確認することも重要なステップです。

Durationに秒数、Readyに後処理を入れれば動きます。

URP 2Dでハマったことメモ

Normalが効かない

light2DのTargetSortingLayerが原因だった。defaultに戻したら効くようになった。

ただ、原因を取り除いて逆に不具合が出そう

オブジェクトやテクスチャの設定は他のサイトで紹介している方法で良いが、マップパーツに使うことを考えて、Shaderグラフとマテリアルでもできないか確認する(まだ未確認)。

そのほかの設定項目見直し

  • Light2DのNormal Mapsのチェックは入れる
  • Light2Dのボリュメトリックは強すぎるとNormalが効いていても分からなくなるから薄めにかけた方が良さそう