Alembic (Geometry Cache) and motion blur?

Hey All,

One thing I’m having success with at the moment is using alembic (in geometry cache mode) to bring in detailed fluid simulation meshes into unreal! However, I’d really like for them to motion blur correctly (or at least a good hack). As I’m doing this in the “cinematics” realm I don’t mind if its a bit expensive either.

So in the offline render world, a really good way to get “deformation” motion blur is by exporting alembic caches with extra time samples for the motion blur, for a linear frame centered motion blur you’d have 3 samples (or 5 for something with a bit of curve to it). As long as the mesh topology is consistent during the shutter open and close (i.e. integer frame -0.25 to +0.25) and that is the key here, the topology is consistent from frame x-0.25 to x+0.25, sampling the position during these 3 time intervals and blur between them!

I’ve noticed than when unreal is presented with an alembic with extra time samples it just treats them as ordinary frames so you end up with a cache that just looks like its playing slower as its just treating all time samples as subsequent integer frames rather than "sub frames/float frames’.

Unless there is some magic to make this work I guess its a feature request! But I would like to know if anyone has any workable suggestions in the meantime?

I did find some reference to a “previous frame switch”, I’m not really sure how I’d use this yet in my example but I could export 2 alembic caches, one that is 1 frame offset from the other, as the previous frame (and can have matching topology) in theory I would have (per vertex) 2 positions I’d like to blur between, but how specifically to do that I don’t know!

I do get motion blur working out of the box when I have a constant topology geometry cache across all frames, that’s great! Now I just need the sub frame support or a decent hack! :smiley:

Hey jpeggt did you get anywhere with this?

hey @jpeggt, I’m also up against this on a project at the moment. Did you guys come up with a solution?

Hello! is this still not solved? I have an alembic file with changing topology count per frame, Ive manually saved geometry to the substeps and disabled motion blur , this alembic file can be loaded and inspected for the sub steps in houdini.

No matter what I try on the UE5 import settings so far the sub frames are never used or accounted for .

sometimes it brings it in every frame and plays slower but speeding that clip up by amount of substeps still does not give the desired effect when rendered with movie render Q

Not sure about the substeps issue but as for motion blur on non-constant topology, I’m not sure this works at all pre 4.27 when it was early beta. In 4.27 I got it to work for shower water created in Houdini and exported as a surface mesh to alembic .abc. I made sure the velocity channel was present in the export from Houdini. Then on import as geometry cache make sure to set Motion Vectors pull down to ‘Import ABC velocities as motion vectors’. This should work. You may also need ‘Output Velocity’ checked in your material shader if it is translucent. This tripped me up for a while too.

2 Likes