虚幻4初级 使用纯蓝图制作一个简易的仿吃鸡血条效果(蓝图宏)

Demo下载

实现效果

分析

  • 整个条使用百分比来表示,最大值为1.0,最小值为0。
  • 使用插值做平滑效果,所以要用Tick(Widget中不能使用TimeLine)
  • 在血量减少的时候使用插值减少实际血量的比值,并同时增加延迟的比值,这样可以保证实际血量的值+延迟的值是保持不变的。
  • 在一定延时后,使用插值处理延迟值的减少,并同时空的值增加,原因同上
  • 判断血量是减少还是增加,如果是减少则使用上述方法,如果是增加的话则延迟的值始终为零,使用插值增加实际血量,同时减少空的值,保证三个比值的总值永远为1.0

蓝图

实际上,我们有现成的控件,百分比值的控制可以使用【HorizontalBox】Slot中SIze的值(模式为填充)


Slot


如果每次使用都需要Cast的话有点麻烦,我们将其封装成蓝图宏:


SetSlotValue

GetSlotValue

还有一个稍微复杂的宏,我会着重讲解:


将上面血条的三段拆分出来

这个需要实现的宏的主要作用是:保持线段总长不变(ac恒定ab+bc=ac),其中一个线段减少,另一个线段相应增加(ac-(ab-n)=bc+n)。


SetSlotValue_2

将SetSlotValue_2插值化(SetSlotValue2ByInterp)
WidgetIsEnpty

UI

层次结构,那三个子控件都是Border

测试效果

UpdateRealAndLag

UpdateLagAndEnpty

Tick

更新值的接口

你可能感兴趣的:(虚幻4初级 使用纯蓝图制作一个简易的仿吃鸡血条效果(蓝图宏))