Chapter 31無料公開

🧊ゲージ

Yukiya
Yukiya
2024.11.17に更新
このチャプターの目次

環境:UE5.4
レベルマップ:Lv_Gauge
ウイジェット:WBP_Gauge_Set1

前書き

UIといえば、どのゲームにも必ずゲージがあります。グラデーション、円形、セグメント型、モチーフを使ったアニメーションなど、さまざまな種類のゲージが存在します。シンプルなものから複雑なものまで幅広くゲージを作成し、こちらのレシピページにまとめます。

ポイント:
「Progress」の変数は、ゲージの進捗です。普段はScalarParameterで対応しますが、実例のため同時にゲージをたくさん動かしますので、MaterialのParameterCollectionアセットを使用します。

ライブラリー

プレビュー マテリアル名 ノード 注目ポイント
Gauge_01.gif M_Gauge_01 NodeGauge_01.png サイズが固定、シンプル、テクスチャ1枚
Gauge_02.gif M_Gauge_02 NodeGauge_02.png M_Gauge_01とほぼ同様。グラデーションを作成するために、「Lerp」を使用する。
Gauge_03_A.gifGauge_03_B.gif M_Gauge_03 NodeGauge_03.png セグメント数によってセグメントが端にくっつかないように調整処理を取り入れてる。色はゲージ進捗次第に異なるように閾値用の変数を使用。 ゲージの形状はテクスチャで対応する。
Gauge_04.gif M_Gauge_04 NodeGauge_04.png テクスチャなし、形状含めて計算によりできたもの。セグメントの関数はIQさんのシェーダーを参考
Gauge_05.gif M_Gauge_05 NodeGauge_05.png SphereMaskノードで円を作成し、Subtractによりリンクができる。VectorToRadialValueゲージの位置を調整するためにCustomRotatorを導入する。
Gauge_06.gif M_Gauge_06 NodeGauge_06.png M_Gauge_05とほぼ同様。形状はSphereMask1つでグラデーションが中心から始まるようにSphereMaskのグレースケールを使用する。
Gauge_10.gif M_Gauge_10 NodeGauge_10.png 見た目はM_Gauge_01と同様だが、テクスチャなし、形状が計算によるもの。角がImageサイズによって潰れないようにアスペクト比を保ち、最も柔軟性が強いシェーダー。ゲージの向き(横or縦)は幅が長い方に調整される。ランタイムで横ゲージが縦ゲージになる仕様はないため、残されたSwitchParameterのノードを繋げたほうが処理が安くなる。
Gauge_11.gif M_Gauge_11 NodeGauge_11.png M_Gauge_10とほとんど同様。EpicGamesが共有してるUIMaterialLabの一部を参考にした。区切りを丸くするために処理が一気に増えた。
Gauge_99.gif M_Gauge_99 NodeGauge_99.png ↓↓詳細ノード↓↓NodeGauge_99A.pngNodeGauge_99B.png 斜線がある角はゲージのサイズによってつぶれないような処理をしているゲージ。斜線がimageサイズによって長さを保つためにUVを右上の角から拡大・縮小をしている。