UE4蓝图 控制物体移动缩放且不受帧率影响的方法

最近在做虚拟仿真相关场景的研究,之前使用过场动画驱动物体移动和缩放,现在需要使用外部数据驱动UE4关卡中的物体,于是参照在unity里的做法,将物体移动和缩放的方法放在Tick事件中,使用Delta Seconds作为基础参数乘以一个速度变量。在正常状态下运行良好,如果将鼠标切出窗口,帧率明显下降,代码执行也变慢了,物体移动固定长度的时间延长了。熟悉unity的可以得出UE4中Tick相当于unity的Update方法,易受到机器性能影响,但UE4中没有Unity的FixedUpdate类似的方法。还是尝试了一些方法,做了一些测试得出一些结论。

一、对于实时性要求不高,重复性动作的

建议使用Matinee、Sequence动画解决。动画帧率是固定的,在不同性能设备上同一时间位置基本没有误差。还可以在蓝图中使用TimeLine节点,使用直接赋值的方式,避免TimeLine轨迹的计算。

用TimeLine直接给坐标赋值,不会受到帧率影响
TimeLine直接给坐标或缩放赋值,可以避免受到帧率影响
用TimeLine轨迹经过计算后给坐标赋值,还是会受到帧率影响
TimeLine轨迹计算后赋值,会受到帧率影响

二、实时性要求较高的

1.对于有目标点和移动时间间隔的

使用 MoveComponentTo 节点,只适用于移动和旋转,没有找到关于缩放的类似节点
MoveComponentTo节点

2.无目标点或时间间隔的

还是在Tick事件中,基础时间变量使用 GetWorldDeltaSeconds 节点,此处适用于移动、旋转和缩放。
GetWorldDeltaSeconds 节点

总结

在Tick事件中,使用 GetWorldDeltaSeconds 节点,代替Tick自带的DeltaSeconds节点即可。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值