-
Notifications
You must be signed in to change notification settings - Fork 347
Rendering Animation with object matrix output transforms continuously #1848
-
I bake the action to an empty which is at the root position of my sword. I want to create a trail for which I delay the actions of that empty onto several other empties which function as hooks for the trail plane. This is my node setup:
Screenshot_327
To reduce manual effort I translate them using an offset matrix node (with translation mode set to local). This is needed to translate the empties to the tip and the middle of the sword. Everything seems to work, but when I enable motion blur and render (both cycles and Eevee have this problem) the empties which I transformed fly away as can be seen here. This also happens without motionblur when rendering the animation, which makes this unusable.
Screenshot_328
This only happens during rendering, after it is finished they will reset back to the position they were supposed to be. It also happens when rendering vector pass.
EDIT: Another thing I discovered: when rendering in viewport and clicking somewhere in the viewport, they also everytime I click fly away one step.
Beta Was this translation helpful? Give feedback.
All reactions
The issue is that you are setting the location of objects, reading their locations right after, then setting their location again. This is unreliable because Blender only updates the scene after AN finishes executing entirely. So you should generally set the location of objects only once and not read them again in the node tree. (There is a workaround, but using it is highly discouraged!)
The best way to do what you want is to use the newly added Evaluate FCurves Transforms node as follows:
Replies: 4 comments 6 replies
-
Can you share a minimal file that reproduces the issue?
Beta Was this translation helpful? Give feedback.
All reactions
-
mesh blur bug.zip
I used Blender 3.1 with the latest build release of this plugin.
Beta Was this translation helpful? Give feedback.
All reactions
-
The issue is that you are setting the location of objects, reading their locations right after, then setting their location again. This is unreliable because Blender only updates the scene after AN finishes executing entirely. So you should generally set the location of objects only once and not read them again in the node tree. (There is a workaround, but using it is highly discouraged!)
The best way to do what you want is to use the newly added Evaluate FCurves Transforms node as follows:
Beta Was this translation helpful? Give feedback.
All reactions
-
Am I doing something wrong?
Screenshot_329
Beta Was this translation helpful? Give feedback.
All reactions
-
I do not understand... I went to Loop input and clicked on list generator to create a matrix list and I connected it with the evaluate FCurves Transforms node. Isn't this what you also did in the screenshot?
Beta Was this translation helpful? Give feedback.
All reactions
-
@Chryfi I mean connect the FCurves list parameter of the loop input node to the FCurves evaluate node.
Beta Was this translation helpful? Give feedback.
All reactions
-
Sorry for the late replay. I made it work now, you were right, however.... now the delay is.... not delayed but in the future? I dont know how to properly describe it, see for yourself
Screenshot_342
Screenshot_341
Beta Was this translation helpful? Give feedback.
All reactions
-
Okay I think I got the hang of it, is this correct? I multiply the offset by -1 to get a delay?
Screenshot_343
Beta Was this translation helpful? Give feedback.
All reactions
-
@Chryfi Yes, multiplying by a negative factor is the right choice here.
Beta Was this translation helpful? Give feedback.