import bpy
import math
from mathutils import Vector
# 目標位置を指定する
target_location = Vector((0, 30, 0))
# フレーム数を指定する
last_frame = 300
# 移動する距離を指定する
distance_per_frame = 0.2
# 16個の球体を作成する
spheres = []
for i in range(16):
angle = 2 * i * 3.14159 / 16
x = 30 * math.cos(angle)
y = 30 * math.sin(angle)
z = 0
location = Vector((x, y, z))
radius = 1
bpy.ops.mesh.primitive_uv_sphere_add(location=location, radius=radius)
obj = bpy.context.active_object
spheres.append(obj)
# アニメーションを設定する
for i, sphere in enumerate(spheres):
start_location = sphere.location
direction = (target_location - start_location).normalized()
for frame in range(1, last_frame + 1):
sphere.location += distance_per_frame * direction
sphere.keyframe_insert(data_path="location", frame=frame)
# レンダリング設定を変更する
bpy.context.scene.render.image_settings.file_format = 'FFMPEG'
bpy.context.scene.render.ffmpeg.format = 'MPEG4'
bpy.context.scene.render.ffmpeg.codec = 'H264'
bpy.context.scene.render.filepath = '/path/to/output/folder/animation.mp4'
# アニメーションのレンダリングを実行する
bpy.ops.render.render(animation=True)