I'm trying to create an addon, which creates smear frames of animated meshes. It's a geometry node tree, applied to a proxy mesh (single vert mesh), which reads the animated mesh. The node tree needs the geometry of three frames to create a smear frame. Ideally, it would be the previous, the current and the next frame, but since simulation nodes can't use geometry from upcoming frames (as far as I know) I need to use the current frame and the previous two. Unfortunately, this means that the entire animation is one frame behind the original animation.
Here are my previous attempts to offset the simulation node animation one frame forward:
- Run a python script that selects all keyframes of the original animation and offsets them one frame. This kinda works, but leads to a lot of other problems, as you can imagine
- Use one node tree, which only caches all frames in the original animation as one mesh, where every part of it has the corresponding frame as an attribute attached. Then the actual node tree could access specific frames from that giant mesh. Unfortunately, the first node tree can't access future frames either.
- Export a .mdd sequence with the wrong timing and use it with the Mesh Cache Modifier, where I can correct the start frame. This works, but the MDD exporter isn't activated by default in Blender. Also, this method creates unnecessary files on the hard drive.
- Importing the cache files created by the simulation nodes and offset them in time. The biggest problem is that I couldn't find anything about how Blender handles the blob file format, especially not with additional JSON files.
Could there be any other way to offset the simulation node animation by one frame?
EDIT:
Here you can see the node tree, which is applied to a proxy mesh. It uses the geometry of a second object, which is animated using keyframes.