Blender-Scanvorschau und Gruppenfoto ergänzen

This commit is contained in:
marcinator_2 committed 2026-10-01 03:52:03 +02:00
1 parent f15ab1d399
commit 4adf927773
21 files changed
+453 -4

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
"""Append a simulated saved group snapshot of the four synthetic visitors."""
from pathlib import Path
import array, math, random, wave
from PIL import Image, ImageEnhance
ROOT = Path(__file__).resolve().parents[1]
OUT = ROOT / 'preview/v4'
image = Image.open(OUT/'frames/review_185.png').convert('RGB')
image = ImageEnhance.Brightness(image).enhance(1.7)
image.save(OUT/'group_photo.png')
image.save(OUT/'gruppenfoto_demo_001.png')
import bpy
bpy.ops.wm.open_mainfile(filepath=str(OUT/'halloween_cone_demo_audio_v2.blend'))
s=bpy.context.scene
seq=s.sequence_editor.sequences
photo=seq.new_image('Group snapshot - four fictional visitors',str(OUT/'group_photo.png'),channel=30,frame_start=481)
photo.frame_final_duration=72
photo.transform.scale_x=.88;photo.transform.scale_y=.88
for name,body,y,size,color in [
('Photo title','GRUPPENFOTO GESPEICHERT',.96,30,(.4,1,.8,1)),
('Photo file','gruppenfoto_demo_001.png | 4 fiktive Besucher',.085,20,(.9,.9,.9,1)),
('Simulation','SIMULATION / 3D-FIGUREN',.045,17,(.65,.8,.8,1))]:
strip=seq.new_effect(name,type='TEXT',channel=31+len([x for x in seq if x.name.startswith('Photo')]),frame_start=481,frame_end=553)
strip.text=body;strip.font_size=size;strip.color=color;strip.location=(.5,y);strip.align_x='CENTER';strip.use_shadow=True
flash=seq.new_effect('Camera flash',type='COLOR',channel=40,frame_start=481,frame_end=486)
flash.color=(1,1,1);flash.blend_type='ALPHA_OVER'
flash.blend_alpha=.75;flash.keyframe_insert('blend_alpha',frame=481)
flash.blend_alpha=0;flash.keyframe_insert('blend_alpha',frame=485)
rate=24000;random.seed(51);sound=[]
for i in range(rate*3):
t=i/rate
click=.16*random.uniform(-1,1)*math.exp(-t*75)
click+=.08*random.uniform(-1,1)*math.exp(-max(0,t-.11)*90) if t>=.11 else 0
sound.append(round(click*32767))
with wave.open(str(OUT/'group_photo_shutter.wav'),'wb') as w:
w.setparams((1,2,rate,len(sound),'NONE','not compressed'));w.writeframes(array.array('h',sound).tobytes())
seq.new_sound('Camera shutter',str(OUT/'group_photo_shutter.wav'),channel=41,frame_start=481)
s.frame_end=552
s.render.image_settings.file_format='FFMPEG';s.render.ffmpeg.format='MPEG4';s.render.ffmpeg.codec='H264';s.render.ffmpeg.constant_rate_factor='HIGH';s.render.ffmpeg.audio_codec='AAC';s.render.ffmpeg.audio_bitrate=192
s.render.filepath=str(OUT/'halloween_group_photo.mp4')
bpy.ops.file.pack_all();bpy.ops.wm.save_as_mainfile(filepath=str(OUT/'halloween_group_photo.blend'))
bpy.ops.render.render(animation=True)
s.render.image_settings.file_format='PNG';s.frame_set(510);s.render.filepath=str(OUT/'group_photo_end.png');bpy.ops.render.render(write_still=True)