I’m having an issue with one of my Blueprints when rendering with temporal subsamples in Unreal Engine.
The Blueprint includes a character that moves along a spline. The character’s position is calculated based on the level sequence’s current playback time—e.g., if the sequence is 100 units long and at time 40, the character should be at position 40 on the spline. I calculate the character’s speed dynamically to match the target position, and they stop when they’re not supposed to be moving.
This speed is tied to a blend space to transition between idle, walking, running, etc. Everything works perfectly in the editor and when rendering without temporal subsamples. However, with temporal subsamples enabled, the character moves forward very slowly, and the calculated speed is so low that it doesn’t trigger the walk cycle in the blend space.
The sequence runs at 24 FPS with 32 subsamples per frame. I would expect the delta time to be around 0.00130208 (1 / [24 * 32]), but I’m seeing a delta time closer to 0.000625 (1 / 1600), and I’m not sure why.
Can anyone explain how tick timing works when rendering with subsamples? Understanding this better might help me either fix the issue properly or temporarily patch it (e.g., by scaling delta time or speed during render).
Subsamples are calculated every frame, and in your case, Unreal calculates 32 “sub-frames” per frame. That’s why we refer to it as a multiplicative factor.
To go into more detail, you need to understand that Unreal uses two combined subsampling systems:
• Temporal subsamples, which are linearly distributed over time
• Spatial subsamples (used for things like DOF or AA), which are quasi-random
However, subsamples are tied to your timeline. So if you check your current playback with your animation, you might run into issues. Currently, each of your frames is divided into 32 subframes, so the delta time should be 1/32, not 0.00130208.
In general, it’s preferable to bake your animation before rendering, so I would recommend doing that.
Also, keep in mind that with subsamples, Unreal Engine needs both a previous and a next frame for things to work properly. This is why artists often skip rendering the first and last frames of their sequence.
Thanks for the response! That helps confirm everything I was assuming.
I ended up fixing it by setting the tick interval on my blueprint to 1/24 (0.0416666667) which makes sense to me, and I swear I tried that before but it didn’t work.. Anyways, your post made me retry that and got it all working, so thank you!