I need to call render in a loop. I start render, set handlers and after render finishing start it again. Something like this:
class loopRender(bpy.types.Operator):
bl_idname = "render.loop_render"
def execute(self, context):
bpy.app.handlers.render_complete.append(onRenderFinish)
a = bpy.ops.render.render('INVOKE_DEFAULT')
print(a)
def onRenderFinish(scene):
bpy.app.handlers.render_complete.remove(onRenderFinish)
bpy.ops.render.loop_render()
It works, but sometimes bpy.ops.render.render(‘INVOKE_DEFAULT’) returns {‘CANCELLED’} and loop stops. I don’t understand how to check what the reason of this error? And how to fix it?