i’ve made a python script that adds dynamic jiggle motion to bones using a bpy.app.handlers.frame_change_post function. the effect works in the viewport but not when rendering.
i discovered in 2.81 an optional ‘depsgraph’ argument has been added to frame_change_post handlers. the release notes specifically suggest this should allow the ability to access the render evaluated data blocks and alter the scene prior to rendering frames.
i’ve been playing with it a bit, and i think i’m misunderstanding the proper use of depsgraph. for example:
object_eval = object.evaluated_get(depsgraph)
this give’s me the object’s evaluated state being passed to rendering. but lets say i want to modify it further (eg double whatever its evaluated rotation is):
object_eval.rotation_euler.x *= 2
the above doesn’t actually do anything; i’m assuming object_eval is just a local variable.
object.rotation_euler.x = object_eval.rotation_euler.x * 2
this updates the rotation value of the object as expected, however now every other property on the object is no longer evaluated when rendering (ie any location keyframes, etc).
is there a way to modify data “on top” of the evaluated depsgraph without manually transferring every other property that had been evaluated in the depsgraph myself?