1
$\begingroup$

I face a really odd thing When rendering a scene the output AVI file is very different from the animation I see inside blender. The script is looping over a function which create the scene:


    def main(self):
        for i in range(self.n_scenes):
            valid_scene = False
            while not valid_scene:
                self.clean_scene()
                valid_scene = self.create_scene()
            if len(os.listdir(self.output_path)):
                self.render_scene(f'{len(os.listdir(self.output_path))}.avi')
            else:
                self.render_scene('0.avi')

For example the initial position of the objects is really different from what I see in blender, in addition from the 2nd frame the locations are different from the first frame. Before rendering I bake all the objects using bpy.ops.ptcache.bake_all() and for cleaning the scene after each render using the following funciton:

    def clean_scene(self):
        bpy.ops.object.select_by_type(type='MESH')
        bpy.ops.object.delete()

What am I doing wrong? Is there any why to reset the scene? why there is a difference between played animation over blender and the rendered one?

$\endgroup$

1 Answer 1

0
$\begingroup$

Found the solution! After completing the rendering of the scene you should free the bake of the objects by using: bpy.ops.ptcache.free_bake_all()

Hope that help to other ones as well.

$\endgroup$

You must log in to answer this question.

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