「単品配布 20230810 基本系 単位円 円周と直径を動く 4つの球体.blend」を共有
https://drive.google.com/file/d/1plIzByxW5Fd7unj8oWjuW4j-7eFsWqbT/view?usp=sharing
import bpy
# 初期設定
radius = 0.07
start_position = (-1, 0, 0)
end_position = (1, 0, 0)
animation_duration = 10 # 移動アニメーションの時間(秒)
stop_duration = 0 # 停止アニメーションの時間(秒)
repeat_count = 5 # アニメーションの繰り返し回数
# フレーム数を設定
bpy.context.scene.frame_end = (animation_duration + stop_duration) * repeat_count * bpy.context.scene.render.fps
# 球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=start_position)
sphere = bpy.context.active_object
# アニメーションを設定
for repeat in range(repeat_count):
for frame in range(int((repeat * (animation_duration + stop_duration) * bpy.context.scene.render.fps)) + 1,
int(((repeat + 1) * (animation_duration + stop_duration) * bpy.context.scene.render.fps)) + 1):
bpy.context.scene.frame_set(frame)
x_offset = (frame - repeat * (animation_duration + stop_duration) * bpy.context.scene.render.fps) * (
2.0 / (animation_duration * bpy.context.scene.render.fps))
sphere.location.x = start_position[0] + x_offset
sphere.keyframe_insert(data_path="location", frame=frame)
# アウトライナで全てのオブジェクトを選択解除
bpy.ops.object.select_all(action='DESELECT')
import bpy
# 初期設定
radius = 0.07
start_position = (1, 0, 0)
end_position = (-1, 0, 0)
animation_duration = 10 # 移動アニメーションの時間(秒)
stop_duration = 0 # 停止アニメーションの時間(秒)
repeat_count = 5 # アニメーションの繰り返し回数
# フレーム数を設定
bpy.context.scene.frame_end = (animation_duration + stop_duration) * repeat_count * bpy.context.scene.render.fps
# 球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=start_position)
sphere = bpy.context.active_object
# アニメーションを設定
for repeat in range(repeat_count):
for frame in range(int((repeat * (animation_duration + stop_duration) * bpy.context.scene.render.fps)) + 1,
int(((repeat + 1) * (animation_duration + stop_duration) * bpy.context.scene.render.fps)) + 1):
bpy.context.scene.frame_set(frame)
x_offset = (frame - repeat * (animation_duration + stop_duration) * bpy.context.scene.render.fps) * (
2.0 / (animation_duration * bpy.context.scene.render.fps))
sphere.location.x = start_position[0] + x_offset
sphere.keyframe_insert(data_path="location", frame=frame)
# アウトライナで全てのオブジェクトを選択解除
bpy.ops.object.select_all(action='DESELECT')
以下 ChatGPT との対話 修正記録 と メモ・ノート
ああああああああああああああああああああああああああああああああああああああああああああ