"""Render the approved dark scene as a 20-second video.""" import bpy, os ROOT=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) OUT=os.path.join(ROOT,'preview','v4') bpy.ops.wm.open_mainfile(filepath=os.path.join(OUT,'halloween_examples.blend')) s=bpy.context.scene # Animation quality: retain lights, fog and reflections; use fewer temporal samples. s.eevee.taa_render_samples=8;s.eevee.volumetric_samples=16 s.render.resolution_x=1280;s.render.resolution_y=720;s.render.resolution_percentage=100 s.render.fps=24;s.frame_start=1;s.frame_end=480 s.render.image_settings.file_format='FFMPEG';s.render.ffmpeg.format='MPEG4' s.render.ffmpeg.codec='H264';s.render.ffmpeg.constant_rate_factor='MEDIUM' s.render.ffmpeg.audio_codec='AAC';s.render.ffmpeg.audio_bitrate=192 s.render.filepath=os.path.join(OUT,'halloween_dark.mp4') # Confirm that all four visitors have animated leg joints in the saved scene. legs=[o for o in s.objects if 'leg pivot' in o.name] assert len(legs)==8 s.frame_set(140);a=[o.evaluated_get(bpy.context.evaluated_depsgraph_get()).rotation_euler.x for o in legs] s.frame_set(148);b=[o.evaluated_get(bpy.context.evaluated_depsgraph_get()).rotation_euler.x for o in legs] assert all(abs(x-y)>.01 for x,y in zip(a,b)) print('VERIFIED: eight moving leg joints') s.frame_set(1);bpy.ops.file.pack_all() bpy.ops.wm.save_as_mainfile(filepath=os.path.join(OUT,'halloween_dark.blend')) bpy.ops.render.render(animation=True)