2023年4月3日月曜日

成功 等速直線運動 連番での処理


問い合わせ 行 追加も成功




import bpy

from mathutils import Vector


zion_speed = 0.3  # 1秒あたりの移動距離(ブレンダー単位)

run_simultaneously = False  # True なら同時移動、False なら順次移動


for a in range(11):

    # 新しい球体を作成

    bpy.ops.mesh.primitive_uv_sphere_add(radius=1)

    sphere = bpy.context.object


    # 初期位置のキーフレームを設定

    sphere.location = Vector((a * 10 + 10, 0, 0))

    sphere.keyframe_insert(data_path='location', frame=a * 10)


    # 終了位置のキーフレームを設定

    sphere.location = Vector((a * 10 + 10, 500, 0))

    sphere.keyframe_insert(data_path='location', frame=500)


    # 位置のキーフレームを設定

    if run_simultaneously:

        for i in range(101):

            sphere.location = Vector((a * 10 + 10, i * zion_speed, 0))

            sphere.keyframe_insert(data_path='location', frame=i)

    else:

        for i in range(a * 10, 101):

            sphere.location = Vector((a * 10 + 10, (i - a * 10) * zion_speed, 0))

            sphere.keyframe_insert(data_path='location', frame=i)


# アニメーションを再生

bpy.context.scene.frame_end = 500

bpy.ops.screen.animation_play()










成功 球体 移動開始 バラバラ


import bpy

from mathutils import Vector


zion_speed = 0.5  # 1秒あたりの移動距離(ブレンダー単位)


for a in range(11):

    # 新しい球体を作成

    bpy.ops.mesh.primitive_uv_sphere_add(radius=1)

    sphere = bpy.context.object


    # 初期位置のキーフレームを設定

    sphere.location = Vector((a * 10 + 10, 0, 0))

    sphere.keyframe_insert(data_path='location', frame=a * 10)


    # 終了位置のキーフレームを設定

    sphere.location = Vector((a * 10 + 10, 30, 0))

    sphere.keyframe_insert(data_path='location', frame=100)


    # 位置のキーフレームを設定

    for i in range(101):

        if i < a * 10:

            continue

        sphere.location = Vector((a * 10 + 10, (i - a * 10) * zion_speed, 0))

        sphere.keyframe_insert(data_path='location', frame=i)


# アニメーションを再生

bpy.context.scene.frame_end = 100

bpy.ops.screen.animation_play()


# ビデオをレンダリング

bpy.context.scene.render.fps = 24

bpy.context.scene.render.image_settings.file_format = 'H264'

bpy.context.scene.render.filepath = '/Users/your_username/Downloads/output.mp4'

bpy.ops.render.render(animation=True)




初期位置を 


(x,y,z) =(zion_x , 0,0)




終了位置を


(x,y,z) =(zion_x ,30,0) にして








このスクリプトでは、0から10までの整数aに対して、それぞれ位置を調整した球体を作成し、それぞれがアニメーションとして移動するように設定されています。


アニメーションのフレーム数は、それぞれの球体の終了位置に到達するために必要な時間に基づいて自動的に設定されています。また、ビデオをレンダリングするためのファイルパスも指定されています。


ただし、ファイルパスを使用する前に、あなた自身のユーザー名に変更する必要があります。また、レンダリングされたビデオの品質などの設定は、必要に応じて調整することができます。



a = 0  から 10 flame 後に

a =1 の球体を 移動開始させて


a = b  なら b * 10 flmae 後に

この位置の球体が 移動開始する










-30,0,0 から -30,30,0 に移動する半径 1球体が

t=0から t=10で移動するアニメを


blender python で作る


同じように


(-30 + zion_add),0,0 から (-30 + zion_add ),30,0 に移動する半径 1球体が


t=0から t=10で移動するアニメを作る


zion_add  = 10* nnn

nnn が 1から10に 数が1ずつ 増える




初期位置を 

(x,y,z) =(zion_x , 0,0)


終了位置を

(x,y,z) =(zion_x , 0,0)


zion_x = a*10 +10

a= a +1 で 0から 10


にして 球体を 複数 作って アニメにして



import bpy


from mathutils import Vector


a = 0

while a <= 10:

    # 新しい球体を作成

    bpy.ops.mesh.primitive_uv_sphere_add(radius=1)


    # キーフレームを設定

    bpy.context.object.location = Vector((a * 10 + 10, 0, 0))  # 初期位置を設定

    bpy.context.object.keyframe_insert(data_path='location', frame=a * 10)  # 初期位置のキーフレームを設定


    zion_speed = 0.5  # 1秒あたりの移動距離(ブレンダー単位)


    for i in range(101):

        bpy.context.scene.frame_set(i)

        loc = Vector((a * 10 + 10, i * zion_speed, 0))

        bpy.context.object.location = loc

        bpy.context.object.keyframe_insert(data_path='location', frame=i)  # 位置のキーフレームを設定


    bpy.context.object.location = Vector((a * 10 + 10, -50, 0))  # 終了位置を設定

    bpy.context.object.keyframe_insert(data_path='location', frame=100)  # 終了位置のキーフレームを設定


    a += 1


# アニメーションを再生

bpy.context.scene.frame_end = 100

bpy.ops.screen.animation_play()


# ビデオをレンダリング

bpy.context.scene.render.fps = 24

bpy.context.scene.render.image_settings.file_format = 'H264'

bpy.context.scene.render.filepath = '/Users/your_username/Downloads/output.mp4'

bpy.ops.render.render(animation=True)






import bpy

from mathutils import Vector


# 新しい球体を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=1)


# キーフレームを設定

bpy.context.object.location = Vector((0, 0, 0))  # 初期位置を設定

bpy.context.object.keyframe_insert(data_path='location', frame=0)  # 初期位置のキーフレームを設定


zion_speed = 0.5  # 1秒あたりの移動距離(ブレンダー単位)


for i in range(101):

    bpy.context.scene.frame_set(i)

    loc = Vector((0, i * zion_speed, 0))

    bpy.context.object.location = loc

    bpy.context.object.keyframe_insert(data_path='location', frame=i)  # 位置のキーフレームを設定


bpy.context.object.location = Vector((0, -50, 0))  # 終了位置を設定


bpy.context.object.keyframe_insert(data_path='location', frame=100)  # 終了位置のキーフレームを設定



# アニメーションを再生


bpy.context.scene.frame_end = 100

bpy.ops.screen.animation_play()



# ビデオをレンダリング


bpy.context.scene.render.fps = 24

bpy.context.scene.render.image_settings.file_format = 'H264'

bpy.context.scene.render.filepath = '/Users/your_username/Downloads/output.mp4'

bpy.ops.render.render(animation=True)











import bpy

from mathutils import Vector


# 新しい球体を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=1)


# キーフレームを設定

bpy.context.object.location = Vector((0, 0, 0))  # 初期位置を設定

bpy.context.object.keyframe_insert(data_path='location', frame=0)  # 初期位置のキーフレームを設定

bpy.context.object.location = Vector((0, -30, 0))  # 終了位置を設定

bpy.context.object.keyframe_insert(data_path='location', frame=500)  # 終了位置のキーフレームを設定


# アニメーションを再生

bpy.ops.screen.animation_play()









この球体が 距離 10 動いたときに

(-40, 50, 0) から動き出す半径1の球体 作成

 end_location = (0, -30, 0) へ

 " "Eye_Sphere_0"" の速度と 同じ速度で移動


 "Eye_Sphere_-40 " と x軸の位置で 名前を付けて





(-50, 50, 0) から動き出す半径2の球体 作成

(50, 50, 0) に 10秒で 到着するアニメを作る


t=0 出発

t=10 到着



同様に

(-50, 50, 0) から動き出す半径1の球体 作成

(50, -50, 0) に 10秒で 到着するアニメを作る

t=0 出発

t=10 到着


(-50, 40, 0) から動き出す半径1の球体 作成

(50, -40, 0) に 10秒で 到着するアニメを作る

t=1 出発

t=11 到着


同じように

(-50, y, 0) から動き出す半径1の球体 作成

で yの 数値を10増やし


tの数値を 1 増やす


アニメを作って


y= -50 から 50  で 増やす間隔は10


















import bpy


# 新しいシーンを作成

bpy.ops.scene.new()


# 球体を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=1)


# 球体のオブジェクト名を変更

bpy.context.object.name = "Eye_Sphere_0"


# 初期位置を設定

bpy.context.object.location = (-50, 50, 0)


# 10フレーム後の位置を設定

end_frame = 10

end_location = (0, -30, 0)

bpy.context.object.keyframe_insert(data_path="location", frame=end_frame)

bpy.context.object.location = end_location

bpy.context.object.keyframe_insert(data_path="location", frame=end_frame*10)


# ゆっくりと移動するように設定

zionspeed = 0.5

for curve in bpy.context.object.animation_data.action.fcurves:

    for kf in curve.keyframe_points:

        kf.co.x /= zionspeed


# カメラを追加

bpy.ops.object.camera_add()

bpy.context.scene.camera = bpy.context.object

bpy.context.object.location = (0, 0, 10)

bpy.context.object.rotation_euler = (0, 0, 0)



改良中 y=-30 中心 円周への球体36個

できた y= -30 中心で z=0平面移動  import bpy import math zion_collection_name = "線路レール 観察者" # コレクションを作成する col = bpy.data.collections.new(zio...