環境:UE5.4
レベルマップ:Lv_Gauge
ウイジェット:WBP_Gauge_Set1
前書き
UIといえば、どのゲームにも必ずゲージがあります。グラデーション、円形、セグメント型、モチーフを使ったアニメーションなど、さまざまな種類のゲージが存在します。シンプルなものから複雑なものまで幅広くゲージを作成し、こちらのレシピページにまとめます。
ポイント:
「Progress」の変数は、ゲージの進捗です。普段はScalarParameterで対応しますが、実例のため同時にゲージをたくさん動かしますので、MaterialのParameterCollectionアセットを使用します。
ライブラリー
| プレビュー | マテリアル名 | ノード | 注目ポイント |
|---|---|---|---|
| M_Gauge_01 | サイズが固定、シンプル、テクスチャ1枚 | ||
| M_Gauge_02 | M_Gauge_01とほぼ同様。グラデーションを作成するために、「Lerp」を使用する。 | ||
|
|
M_Gauge_03 | セグメント数によってセグメントが端にくっつかないように調整処理を取り入れてる。色はゲージ進捗次第に異なるように閾値用の変数を使用。 ゲージの形状はテクスチャで対応する。 | |
| M_Gauge_04 | テクスチャなし、形状含めて計算によりできたもの。セグメントの関数はIQさんのシェーダーを参考 | ||
| M_Gauge_05 | SphereMaskノードで円を作成し、Subtractによりリンクができる。VectorToRadialValueゲージの位置を調整するためにCustomRotatorを導入する。 | ||
| M_Gauge_06 | M_Gauge_05とほぼ同様。形状はSphereMask1つでグラデーションが中心から始まるようにSphereMaskのグレースケールを使用する。 | ||
| M_Gauge_10 | 見た目はM_Gauge_01と同様だが、テクスチャなし、形状が計算によるもの。角がImageサイズによって潰れないようにアスペクト比を保ち、最も柔軟性が強いシェーダー。ゲージの向き(横or縦)は幅が長い方に調整される。ランタイムで横ゲージが縦ゲージになる仕様はないため、残されたSwitchParameterのノードを繋げたほうが処理が安くなる。 | ||
| M_Gauge_11 | M_Gauge_10とほとんど同様。EpicGamesが共有してるUIMaterialLabの一部を参考にした。区切りを丸くするために処理が一気に増えた。 | ||
| M_Gauge_99 |
|
斜線がある角はゲージのサイズによってつぶれないような処理をしているゲージ。斜線がimageサイズによって長さを保つためにUVを右上の角から拡大・縮小をしている。 |