You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Previously, this 'kind of' worked, but in practice there were divide by zeros happening and this was causing bugs under certain circumstances, as well as some odd behavior. To support this change required a bit of a refactor of FMovieSceneSequenceTransform and its 'Warping'. Warping previously just indicated looping, but now it can also indicate timescales of zero. In cases of zero timescale transforms, we keep transforms split into FMovieSceneNestedSequenceTransforms rather than combining them. Some logic that directly accessed the internal FMovieSceneTimeTransform 'LinearTransform' also had to be refactored to properly use the FMovieSceneSequenceTransform's accessor functions for doing things like inverse. When dealing with zero timescale in FMovieSceneTimeTransforms, there is the ability for loss of information when multiplying and inverting, and so to compensate for that we need every hierarchical step of the transforms stored. This also necessitated some changes in logic for TMovieSceneTimeArray and how it stores its TransformStack, as it was depending on the inverse of an inverse being a lossless operation when acting on a FMovieSceneTimeTransform. See https://docs.google.com/document/d/1ftdIyi9J8At6fw31K5awKCUK5-75uz7F-MWAq5b1vWc/edit#heading=h.fclfl8j8p52c. #jira UE-146012 [REVIEW] [at]ludovic.chabant [at]max.chen [CL 26734557 by david bromberg in ue5-main branch]