2023年8月10日木曜日

20230810 再編集 球体1つを動かす





「単品配布 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 との対話 修正記録 と メモ・ノート


ああああああああああああああああああああああああああああああああああああああああああああ