2023年3月12日日曜日

20230313 mon 球体 02 動かし動画  3方向 成功確認

aaa


球体が -10,0,0 に着いたら
さらに新たな球体 半径0.3 を
-10,0,0 から 出発させ
0,10,0 に進ませる 加える
 

以下のスクリプトで sphere 1だけ修正する 

0,0,0 出発
10,0,0 に到着したら
sphere1の速度の 1/1.41 に変更し
0,10,0 を目指す 到着したら 速度を元の速度に戻す

0,0,0 から再度出発し 10,0,0 へ 





以下のスクリプト修正で 
sphere 1 が 10,0,0 に到着したら
そこから 0,10,0 を到着位置に移動する
10,0,0 から 0,,10,0 の移動速度は1/1.41 で移動し 
0,10,0 に到着したら 0,0,0からの動きを繰り返す

残りの球体の動きは 以下のスクリプトと同じ

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


以下のスクリプトで sphere 1だけ修正する 

0,0,0 出発
10,0,0 に到着したら
sphere1の速度の 1/1.41 に変更し
0,10,0 を目指す 到着したら 速度を元の速度に戻す

0,0,0 から再度出発し 10,0,0 へ 

python スクリプトを書いて

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



以下のスクリプトで sphere 4を追加する 

球体1 が10,0,0 に到着したら
sphere4を -10,0,0 から sphere1速度の 1/1.41 で移動させ
0,10,0 を目指す 到着したら この球体を消す
 

import math
import bpy

# 1つ目の球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.3, location=(0, 0, 0))
sphere1 = bpy.context.object

# 2つ目の球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.3, location=(0, 0, 0))
sphere2 = bpy.context.object

# 3つ目の球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.3, location=(0, 0, 0))
sphere3 = bpy.context.object

# 移動アニメーションを作成
anim_data1 = sphere1.animation_data_create()
anim_data2 = sphere2.animation_data_create()
anim_data3 = sphere3.animation_data_create()

anim_data1.action = bpy.data.actions.new(name="sphere_anim1")
anim_data2.action = bpy.data.actions.new(name="sphere_anim2")
anim_data3.action = bpy.data.actions.new(name="sphere_anim3")

# 移動のキーフレームを設定
for i in range(2):
    loc1 = [0, 0, 0] if i == 0 else [-10, 0, 0]
    loc2 = [0, 0, 0] if i == 0 else [10, 0, 0]
    loc3 = [0, 0, 0] if i == 0 else [0, 10, 0]
    sphere1.location = loc1
    sphere2.location = loc2
    sphere3.location = loc3
    sphere1.keyframe_insert(data_path="location", frame=i*240+1)
    sphere2.keyframe_insert(data_path="location", frame=i*240+1)
    sphere3.keyframe_insert(data_path="location", frame=i*240+1)

# 繰り返すアニメーションを作成
anim_data1.action.frame_range = (1, 480)
anim_data2.action.frame_range = (1, 480)
anim_data3.action.frame_range = (1, 480)

anim_data1.action.repeat = True
anim_data2.action.repeat = True
anim_data3.action.repeat = True

anim_data1.action.extrapolation = 'LINEAR'
anim_data2.action.extrapolation = 'LINEAR'
anim_data3.action.extrapolation = 'LINEAR'



# 4つ目の球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.3, location=(-10, 0, 0))
sphere4 = bpy.context.object

# sphere4の移動アニメーションを作成
anim_data4 = sphere4.animation_data_create()
anim_data4.action = bpy.data.actions.new(name="sphere_anim4")

# sphere4のキーフレームを設定
loc4_start = [-10, 0, 0]
loc4_end = [0, 10, 0]
frames_to_reach = int(240 / 1.41)  # 1/1.41の速度で移動するためのフレーム数
for i in range(frames_to_reach):
    frac = i / frames_to_reach
    loc4 = [loc4_start[j] + frac * (loc4_end[j] - loc4_start[j]) for j in range(3)]
    sphere4.location = loc4
    sphere4.keyframe_insert(data_path="location", frame=240+i+1)

# 球体1のアニメーションの最後のキーフレームで、sphere4のアニメーションを開始する
sphere1.animation_data.action.frame_end = 480
sphere4.animation_data.action.frame_start = 481

# sphere4が目標に到着したら、球体を消すアニメーションを作成
anim_data5 = sphere4.animation_data_create()
anim_data5.action = bpy.data.actions.new(name="sphere_anim5")
loc5_start = [0, 10, 0]
loc5_end = [0, 11, 0]  # 目標に到着したとみなす座標
frames_to_reach = int(240 / 1.41)  # 1/1.41の速度で移動するためのフレーム数
for i in range(frames_to_reach):
    frac = i / frames_to_reach
    loc5 = [loc5_start[j] + frac * (loc5_end[j] - loc5_start[j]) for j in range(3)]
    sphere4.location = loc5
    sphere4.keyframe_insert(data_path="location", frame=721+i+1)
sphere4.keyframe_insert(data_path="scale", frame=721, value=[0, 0, 0])  # 球体を消す

# 繰り返すアニメーションにsphere4のアニメーションを追加する
anim_data1.action.frame_range = (1, 720)
anim_data2.action.frame_range = (1, 720)
anim_data3.action.frame_range = (1, 720)
anim_data4.action.frame_range = (1, 720 + frames_to_reach)
anim_data5.action.frame_range = (1, 720 + frames_to_reach + 1)
anim_data1.action.fcurves.remove(anim_data1.action.fcurves[-1])  # 終了フレームを削除



















bbb
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad




twitter 新着検索 Dürer & 測距儀


aaa









bbb
twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad

old page いいい
new page いいい

目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい

伊勢丹 建物広告 球体群 配置 20240323_001

aaa y軸に 球体半径0.1を等間隔に配置して 球体の名前は Sphere_x_y_z で 小数1桁で 座標位置で 名前を作る y=+1から ー1までで 21個の球体で 作る コレクションだけを作って "y軸の球体群" import bpy #...