UE Sequencer因小数帧显示少了一帧的解决方法

问题显示:

动画的fbx其实是从951帧——1021帧

但是在UE里的SectionRange的显示是1020*帧数

 

形成的原因:

UE中所有的FrameNumber其实是用"Tick"类型存储的,而我的本地项目设置的1帧是800tick,所以该Fbx只有968001Tick,转换成帧数是1210.00125帧

而在UE引擎的算法里,如果取小数点之后的帧数几乎接近于0时,UE就不予计算而是以一个*号结尾显示用于提醒确实不是整帧

 

解决办法:

由于这个算法运用到了UE的所有模块,很多处都使用了这个方式其实并不造成任何影响,但放在Sequencer里的显示会让美术觉得少了一帧,所以我们只修改在Sequencer的显示部分。

一开始想到的方法是只要实际的帧数和强制取整后的帧数不一样(代表有小数点之后的被省略了),就向上取整,但这个方法没考虑到一个问题,其实我们传进去的还是Tick不是Frame,没有经过Tick到Frame这步计算的数值其实是对的

 

改进方法:

 

解决第一个问题的最后效果:

 

如果这里把这个1211输入值按一下回车确认一下,那么Section轨道里的sequencer帧数就对了,说明我们只改了这个SectionRangeEnd的显示,没有触发改了数值后对轨道中的Section的影响

最终找到了SectionRange行程的代码块

这里的sequencerLength非常特殊,他不是一个按照sequencer秒、Tick来计算的单位,而是以Sequencer自己的15帧为一个单位化成一个单位长度

修改源码在进入sectionRange之前就判断这个最后算出来的tick数是否可以被他设置的TickRagte整除,不能整除,就加成能整除的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值