Files

49 lines
2.0 KiB
Python

"""Synthetic integration fixture; does not use any user's project assets."""
import bpy
import sys
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False)
scene = bpy.context.scene
scene.name = 'ExportFixture'
scene.frame_start, scene.frame_end, scene.render.fps = 1, 3, 24
bpy.ops.mesh.primitive_cube_add()
obj = bpy.context.object
obj.name = 'AnimatedCube'
material = bpy.data.materials.new('AnimatedMaterial')
material.use_nodes = True
obj.data.materials.append(material)
tree = material.node_tree
principled = tree.nodes.get('Principled BSDF')
noise = tree.nodes.new('ShaderNodeTexNoise')
noise.noise_dimensions = '4D'
noise.inputs['W'].driver_add('default_value').driver.expression = 'frame * 0.7'
tree.links.new(noise.outputs['Color'], principled.inputs['Base Color'])
for frame, value in [(1, .2), (3, .8)]:
principled.inputs['Roughness'].default_value = value
principled.inputs['Roughness'].keyframe_insert('default_value', frame=frame)
obj.shape_key_add(name='Basis')
key = obj.shape_key_add(name='Stretch')
key.data[0].co.z += 1
for frame, value in [(1, 0), (3, 1)]:
key.value = value
key.keyframe_insert('value', frame=frame)
bpy.ops.object.camera_add(location=(0, 0, 5))
scene.camera = bpy.context.object
scene.camera.name = 'ActiveCameraObject'
scene.camera.data.name = 'ActiveCameraData'
bpy.ops.object.light_add(type='POINT', location=(0, -2, 3))
bpy.context.object.data.energy = 100
curve = bpy.data.curves.new('CurveGeometry', 'CURVE')
curve.dimensions = '3D'
curve.bevel_depth = .1
spline = curve.splines.new('POLY')
spline.points.add(1)
spline.points[0].co, spline.points[1].co = (0, 0, 0, 1), (1, 1, 1, 1)
curve_obj = bpy.data.objects.new('ConvertedCurve', curve)
scene.collection.objects.link(curve_obj)
# A second scene must not leak into the chosen scene's export.
other = bpy.data.scenes.new('ExcludedScene')
other.collection.objects.link(bpy.data.objects.new('UnrelatedObject', bpy.data.meshes.new('Unused')))
scene.frame_set(1)
bpy.ops.wm.save_as_mainfile(filepath=sys.argv[sys.argv.index('--') + 1])