"""실행 검사 전용 두 애니메이션 Scene과 초기 Idle Scene을 만든다.""" import sys import bpy from mathutils import Vector bpy.ops.object.select_all(action="SELECT") bpy.ops.object.delete(use_global=False) scene = bpy.context.scene scene.name = "SceneA" scene.frame_start, scene.frame_end = 1, 21 scene.world.color = (0.1, 0.1, 0.1) bpy.ops.mesh.primitive_uv_sphere_add(segments=24, ring_count=16, radius=0.65, location=(-1, 0, 0)) ball = bpy.context.object ball.name = "Ball" ball.keyframe_insert("location", frame=1) ball.location.x = 1 ball.keyframe_insert("location", frame=11) material = bpy.data.materials.new("Blue") material.diffuse_color = (0.03, 0.3, 0.8, 1) ball.data.materials.append(material) bpy.ops.object.light_add(type="AREA", location=(-3, -4, 6)) light = bpy.context.object light.data.energy = 900 light.data.shape = "DISK" light.data.size = 5 light.rotation_euler = (Vector((0, 0, 0)) - light.location).to_track_quat("-Z", "Y").to_euler() bpy.ops.object.camera_add(location=(0, -7, 4)) camera = bpy.context.object camera.rotation_euler = (-camera.location).to_track_quat("-Z", "Y").to_euler() camera.data.type = "ORTHO" camera.data.ortho_scale = 5 scene.camera = camera second = bpy.data.scenes.new("SceneB") second.frame_start, second.frame_end = 1, 21 second.world = scene.world second_ball = ball.copy() second_ball.data = ball.data.copy() second_ball.name = "BallB" second.collection.objects.link(second_ball) second.collection.objects.link(light) other = camera.copy() other.data = camera.data.copy() other.location = (5, -7, 1) other.rotation_euler = (-other.location).to_track_quat("-Z", "Y").to_euler() second.collection.objects.link(other) second.camera = other idle = bpy.data.scenes.new("Idle") idle.world = scene.world idle_camera = camera.copy() idle_camera.data = camera.data.copy() idle.collection.objects.link(idle_camera) idle.camera = idle_camera bpy.context.window.scene = idle if "--external-image" in sys.argv: bpy.data.images.load(sys.argv[sys.argv.index("--external-image") + 1]).use_fake_user = True if "--short-scene" in sys.argv: scene.frame_end = second.frame_end = 1 bpy.ops.wm.save_as_mainfile(filepath=sys.argv[sys.argv.index("--") + 1])