Hey, I’m trying to change material on many objects during frame change with python.
In viewport everything works fine but during Animation Rendering(cycles or eevee) it crashes immediately or a few frames later.
My system can’t handle more than 500 cubes. A small delay in foreach is also no solution. Does anyone have an idea? (Ps. Shader animation is no option)
It crashes during rendering with this Error: EXCEPTION_ACCESS_VIOLATION
import bpy scene = bpy.context.scene objs = [obj for obj in scene.objects if obj.type == 'MESH'] m = bpy.data.materials mats = [m['Red'], m['Green'], m['Blue']] def frame_change_post(scene, depsgraph): nr = scene.frame_current % 3 print("Frame Change: ", nr) for obj in objs: obj.active_material = mats[nr] bpy.app.handlers.frame_change_post.clear() bpy.app.handlers.frame_change_post.append(frame_change_post)