プログレスバーが減少するとき、一瞬で減少値まで行ってしまうので味気ないです。そこで、ゆっくり減少させたいのですが、方法がわかりません。回答よろしくお願いします。
それと、プログレスバーが減少する際。格ゲーやダークソウルなどでみられる、ゲージが減り、その後ろに隠れていたゲージが追いかけるように減っていく処理(わかりにくくてすいません。)も分かりましたらお願いします。
進捗値として持っている変数をTick等で徐々に減らす(増やす)をすれば一瞬で目的の値になることはないかと
また、CurveやEaseを使えば簡単に見栄えを確保することも可能かと思われます。
UMGのProgressBarウィジェットを使用していると仮定しますが、同座標に前面と背面のProgressBarを用意して前面を一瞬、背面をアニメーションさせれば言わんとしている事は可能かと思います。(フォーラムを探せばもっと効率的な方法はあるかもしれません。)
Finterp Toが便利かと思います。
CurrentのFloatの値をTagetの値に向けていInterp Speedの割合で値を増やします。
Tick等からDeltaTimeを与えることで、フレームレートが違う環境でも同じ時間で増えます。
質問者さんのヤリタイことは緑とか黄色とか現在のHP+赤で減るHPゲージを作りたいってことですよね。
やり方は簡単です、現在のHPバーとダメージを貰う前のHPバーの二つのプログレスバーを用意します。
現在のHPをソートで1にして上にします。
ダメージをもらう方のHPバーをソート0にして下にします。
現在のHPは通常通りダメージ処理を行い、ダメージをもらった方を表現する方はtakanyan7さんが答えているFinterp Toで減らしながら表現してあげれば良いと思います。
返事が遅れてしまいすいません。FInterp Toについて調べて実行みましたが、Delta TimeにTickを入れても上手くいかないので、もう少し詳しく教えていただけるとありがたいです。最初の質問と趣旨がずれているかもしれませんが、良ければ回答お願いします。
BPがスパゲッティですいませんが、どこが間違っているでしょうか?Float変数のTick 0はEvent TickのIn Delta Timeの数値が入った変数です。
説明不足ですいません。その通りです!!丁寧な説明、ありがとう御座います。
ああ、違いましたね、
敵の攻撃処理の部分と一緒の変数で、
表示の値を変更してしまっているのかもしれません。
(一寸どう動いているのかわからないので失敗している気がします。
敵の攻撃処理等のSYSTEM部分として、
処理後のHPの変数を作成し、HP変数だけUI部分に渡し
先のUI部分では、スムーズに表示等の処理だけにして、
役割を分けると解りやすくなると思います。
また返信が遅れてしまいすいません。あなたのおかげでFInterp Toの使い方がわかりました。画像を添付して下さりありがとうございます。無事解決しました。