UE--时间管理归纳

发布时间 2023-04-28 09:31:54作者: 疯狂的凑脚丫

一.时间轴--TimeLine

1.时间轴与lerp达到动态效果

2.添加多条时间线,输出多个随时间变化的数据,比如一个轨迹复杂的运动

3.可以添加事件轴,在特定的事件触发一个事件

4.SetPlayRate:用于设置时间轴播放的速率

 

二.Matinee(定序器取代了)

  对于关卡中的物体控制,UE4提供了一套更加方便的工具,那就是Matinee。
毕竟,如果要用Timeline来对物体进行控制,无论在实现还是管理上都非常的麻烦。
Matinee可以用于关卡中物品的移动控制,如电梯。也可以用于摄像头的控制来实现漫游展示,或者是过场动画。
Matinee的使用相当的简单明了,如果之前有使用过类似的动画制作软件的话,会很容易上手。
通过[官方文档]能快速上手,其中有不少例程可以作为参考。
 
三.世界的速度控制
SetGlobalTimeDilation:设置全局的时间膨胀,可以放慢和加速世界的时间
SetGlobalPitchModulation:设置全局的声音播放速度
SetCustomTimeDilation:专门用于单个Actor的速度控制
 
四.定时器
SetTimerByEvent:设置一个定时器事件绑定,相隔Time秒调用一次,ClearAndInvalidateTimerBy...解除绑定。
搜索一些相关定时器的函数在:工具-->时间里。
 
五.Tick
在UE4中,Tick函数有TickGroup的概念,各个组中的Tick中每一帧中被调用的时机是不同的。
SetTickGroup:
 · TG_PrePhysics – 在物理模拟运行之前执行
 · TG_StartPhysics – 用于开始物理引擎的特殊的Tick组
 · TG_DuringPhysics – 与物理引擎并行执行的Tick组
 · TG_EndPhysics – 用于结束物理模拟的特殊的Tick组
 · TG_PostPhysics- 在刚体以及衣物的模拟结束后才会运行的Tick组
 · TG_PostUpdateWork – 在帧内所有更新完成之后才会执行的Tick组
 · TG_LastDemotable – 所有被延迟到最后执行的的Tick组
 · TG_NewlySpawned – 特殊的Tick组,实际上并不是一个组,而是在所有的Tick组都运行完毕后,对所有世界中新生成的物体进行Tick
   
    一般情况下Tick是隶属于TG_PrePhysics的,也有一些功能在其他的组中,例如粒子发射器就是运行在TG_PostUpdateWork组中的。
Tick的调用通常来自UWorld实例的Tick函数。Slate中的Tick是直接来源于SWidget中的Paint函数的,因此带有额外的参数。
通常tick的运行函数应该尽量的简单,否则有可能会导致游戏卡死。在蓝图中,可以对蓝图类对应的TickGroup进行修改。
    不是继承自AActor的类可能没有这个函数,因为他们可能并不属于TickGroup系统的管辖之下。
控件蓝图由于是来自UUserWidget的,所以并没有这个函数。