0
$\begingroup$

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.

enter image description here

Here are my previous attempts to offset the simulation node animation one frame forward:

  1. 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
  2. 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.
  3. 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.
  4. 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.

Node tree

$\endgroup$

1 Answer 1

1
$\begingroup$

unfortunately you didn't show us your node tree, so in worst case you will say: "yeah, in your case that works, but in my case..." and then you will show us "hopefully" your full node tree so we actually can see what you did.

"Normally" you should be able to achieve your effect like this:

enter image description here

So essentially you just have to think about how you can "offset" your frame. Because you presented an easy rotation, i took exactly that example and show you how you can do so.

If you want it for another node tree (because yours isn't working) please open another question because then you are changing the prerequisition of your question. You can open as many questions as you like. Thanks.

result:

enter image description here

$\endgroup$
1
  • $\begingroup$ Oh I'm sorry I didn't add the actual node-tree. It's pretty complex. But I'll add a simplified version to my post. Your solution is great for an object that is animated using geometry nodes, but unfortunately in my case, it's an already animated mesh (using a rig or transform values), which I only refer too in my node tree. $\endgroup$ Commented Dec 28, 2023 at 16:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .