import bpy
import math
zion_collection_name = "Sphere Z軸"
# コレクションを作成する
col = bpy.data.collections.new(zion_collection_name)
bpy.context.scene.collection.children.link(col)
import bpy
from mathutils import Vector
# 球体の中心位置リストを作成する
centers = []
for i in range(5):
z = -30 + i*15
centers.append(Vector((0, 0, z)))
# 目標位置を指定する
target_location = Vector((-30, 0, 0))
# フレーム数を指定する
last_frame = 600
# 移動する距離を指定する
distance_per_frame = 0.1
# スフィアの作成
for center in centers:
bpy.ops.mesh.primitive_uv_sphere_add(radius=1, enter_editmode=False, location=center)
sphere_obj = bpy.context.active_object
sphere_obj.name = "Sphere Z軸" + str(centers.index(center))
# アニメーションの作成
for frame in range(last_frame+1):
for obj in bpy.data.objects:
if obj.name.startswith("Sphere"):
distance = (target_location - obj.location).length
if distance > 0.01:
direction = (target_location - obj.location).normalized()
obj.location += direction * min(distance_per_frame, distance)
obj.keyframe_insert(data_path="location", frame=frame)