2023年8月8日火曜日

20230809  球体回転 530フレーム

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


import bpy

import math


# 初期設定

sphere_radius = 0.05  # 球体の半径

animation_duration = 20  # 移動アニメーションの時間(秒)

frame_rate = bpy.context.scene.render.fps

clockwise = False  # 時計回り: False, 反時計回り: True


# 球体を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=sphere_radius, location=(-1, 0, 0))  # 描画開始位置

sphere = bpy.context.active_object


# ゴール時間を設定

goal_frame = animation_duration * frame_rate


# アニメーションを設定

for frame in range(1, goal_frame + 1):

    bpy.context.scene.frame_set(frame)

    

    # 円周を動く球体の位置を設定

    angle = 2 * math.pi * (frame / (animation_duration * frame_rate))

    if clockwise:

        angle = -angle

    x_center = math.cos(angle)

    y_center = math.sin(angle)

    sphere.location.x = x_center

    sphere.location.y = y_center

    sphere.keyframe_insert(data_path="location", frame=frame)


# アウトライナで全てのオブジェクトを選択解除

bpy.ops.object.select_all(action='DESELECT')


# endを530フレームに設定

bpy.context.scene.frame_end = 530






import bpy


# シーンのフレームレンジを設定

bpy.context.scene.frame_start = 1

bpy.context.scene.frame_end = 530


# 球体を追加

bpy.ops.mesh.primitive_uv_sphere_add(radius=0.05, location=(-1, 0, 0))

sphere = bpy.context.object


# アニメーションキーフレームを設定

sphere.location.x = -1

sphere.keyframe_insert(data_path="location", frame=1)

sphere.location.x = 1

sphere.keyframe_insert(data_path="location", frame=270)

sphere.location.x = -1

sphere.keyframe_insert(data_path="location", frame=530)




#直線移動

import bpy

import math


# 初期設定

sphere_radius = 0.07  # 球体の半径

animation_duration = 20  # アニメーションの時間(秒)

transition_duration = 10  # 移動時間(秒)

frame_rate = bpy.context.scene.render.fps


# 球体1を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=sphere_radius, location=(1, 0, 0))  # 描画開始位置

sphere1 = bpy.context.active_object


# 球体2を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=sphere_radius, location=(-1, 0, 0))  # 描画開始位置

sphere2 = bpy.context.active_object


# ゴール時間を設定

goal_frame = animation_duration * frame_rate

transition_frames = transition_duration * frame_rate


# アニメーションを設定

for frame in range(1, goal_frame + 1):

    bpy.context.scene.frame_set(frame)

    

    if frame <= transition_frames:

        # 移動中

        t = frame / transition_frames

        sphere1.location.x = 1 - 2 * t

        sphere2.location.x = -1 + 2 * t

    elif frame <= goal_frame - transition_frames:

        # 待機

        pass

    else:

        # 戻る

        t = (frame - (goal_frame - transition_frames)) / transition_frames

        sphere1.location.x = -1 + 2 * t

        sphere2.location.x = 1 - 2 * t

    

    sphere1.keyframe_insert(data_path="location", frame=frame)

    sphere2.keyframe_insert(data_path="location", frame=frame)


# endを530フレームに設定

bpy.context.scene.frame_end = 530







基本系 配布 001 単位円 torus と xyz軸 円柱

https://drive.google.com/file/d/1adh0pC0n5MUfaPnsQcab8CnTvHu_JqLg/view?usp=drive_link

 

基本系 配布 002 単位2長さ balls

https://drive.google.com/file/d/1vyg5oFWmw_TK8nwp5TmVSfLH94I6rTaY/view?usp=drive_link

 

基本系 配布 003 単位2長さ balls 光時計セット 

https://drive.google.com/file/d/1u2Rn_nVBcewe39Vokua9C5n25cdivyyL/view?usp=drive_link

 

blender 基本系 配布 カタログ 2023 - zionad_mainのブログ https://mokuji000zionad.hatenablog.com/entry/2023/07/31/095208 






以下 ChatGPT との対話 修正記録 と メモ・ノート


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