TimeRangeToNumberRange can return an empty range when the in put range is fully inclusive

If the input range is fully inclusive, we shouldn’t be returning an empty range. [A.5, A.5] should return [A, A+1). Without the change, it is returning [A+1, A+1), which is considered empty. We will only increment the lower bound if it is smaller than the pre-incremented upper frame number.

The issue this was causing is that in FSequenceUpdater_Hierarchical::Update() the subsequences get their range incremented by the tickrate, so they get a subframe. This differs from the typical behaviour of the root, which would have an [A, A] range when evaluating from EvaluateInternal(PlayPosition.GetCurrentPositionAsRange()). For an input without a subframe, this function already returned a valid rage, so this issue is not visible in a basic sequence where everything is played at root.

See suggested fix Fix that TimeRangeToNumberRange can return an empty range when the in… by LHG-JonAnderJimenez · Pull Request #14635 · EpicGames/UnrealEngine

[Attachment Removed]

Steps to Reproduce
An example test case for this issue would be to have a repeater event on a subsequence and scrubbing. The experimental DaySequence plugin can trigger this easily as it creates a subsequence for its editor preview

[Attachment Removed]

Thanks for raising this. It’s in the team’s hands, and they’re reviewing it; it’s just in the team’s backlog. If you’ve made the change locally, you may want to keep it until you’ve heard from us that it will be accepted or is going into a release.

Dustin

[Attachment Removed]

Yes, I can. This one has been backlogged for the moment while 5.8 was wrapping up.

Dustin

[Attachment Removed]

Thank you. Will you be updating this thread once you look at it?

[Attachment Removed]