みつまめ杏仁

アンリアルエンジン(UE4)でGUIを作るためにゴニョゴニョしてます。UIデザイナーの皆様の助けになれば幸いです。

残り少なくなったら点滅

体力ゲージが残り少なくなったら点滅させるのを作ってみます。

いろんな方法が考えられますが、簡単なやつをご紹介します。

ゲージは、前回の記事で作ったものを使用します。

 limesode.hatenablog.com

体力ゲージ用のマテリアルに点滅する処理を入れます。

↓ビフォー

f:id:hiyokosabrey:20160718204237p:plain

 

↓アフター

f:id:hiyokosabrey:20160719231345p:plain

通常のカラーとピンチ用の赤色をLerpノードで切り替えます。

そのLerpノードのAlphaピンに、サインカーブをつなぐと2つのカラーが交互に切り替わります。サインカーブはそのままだと値の範囲が -1.0 ~ +1.0 なので、いったん 0.5を掛けて半分にしてから、0.5を足すことで 0.0 ~ 1.0 の範囲に補正できます。

Timeノードをつながないとサイン波は出てこないので左端につないで、スピード調整用にMultiplyノードで加速できるようにしておきます。

f:id:hiyokosabrey:20160719231357p:plain

サインカーブのアニメーションができたのですが、そのままつないでしまうと常時点滅することになるので、パラメータを掛け算するようにつないでスイッチにします。

Lerpノードは線形補間をするノードで、 Alphaの値が 0.0 のときはAの値、 1.0のときはBの値を取り出すことができます。

Pinch という名前のスカラーパラメータに 0.0がくると、サインカーブの値がすべて 0.0になるので結果的に点滅しません。スカラーパラメータ―が 1.0 になるとようやくサインカーブの値が素直に流れ出します。

 

これでマテリアルが完成です。

あとはWidgetブループリントの方で、このスカラーパラメータの値をいじるだけです。

 

体力ゲージの長さを更新するための関数を編集します。

↓ビフォー

f:id:hiyokosabrey:20160719232719p:plain

 

↓アフター

f:id:hiyokosabrey:20160719233341p:plain

0.25以下なら true、 それ以外なら false ということで Selectノードを使います。

ブランチノードと違って最後の SetScalarParameterValueノードが一つで済むので便利です。

 

はい。できあがりです。

f:id:hiyokosabrey:20160719234750g:plain

 

ではでは

素敵なゲージライフを!