Files
Halloween/tools/render_video_v4.py
T

25 lines
1.4 KiB
Python

"""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)