2023年3月24日金曜日

aaa
import bpy
import math
from mathutils import Vector

# 速度を指定する
zion_speed = 1.0

# 目標位置を指定する
zion_target = Vector((0, -60, 0))

# 平行移動するかどうかを指定する
parallel = False

# 平行移動量を指定する
parallel_distance = Vector((300, 300, 300))  # ここを変更する

# 新しいパラメータを指定する
num_spheres = 11  # 球体の数
radius = 1  # 球体の半径
spacing = 6  # 球体の間隔

# x軸方向の範囲
x_range = (-30, 30)

# y軸方向の範囲
y_range = (0, 0)

# 開始点
start_point = Vector((x_range[0], y_range[0], 0))

# 終了点
end_point = Vector((x_range[1], y_range[1], 0))

# オブジェクトを作成する関数
def create_sphere(location, radius):
    bpy.ops.mesh.primitive_uv_sphere_add(location=location, radius=radius)

# アニメーションを設定する関数
def set_animation(obj, start_frame, end_frame, target_location, speed):
    distance = (target_location - obj.location).length
    duration = distance / speed
    for frame in range(start_frame, end_frame+1):
        t = (frame - start_frame) / duration
        obj.location = obj.location.lerp(target_location, t)
        obj.keyframe_insert(data_path="location", frame=frame)

# 球体を作成する
spheres = []
for i in range(num_spheres):
    x = start_point.x + spacing * i
    y = start_point.y
    z = start_point.z
    location = Vector((x, y, z))
    create_sphere(location, radius)
    obj = bpy.context.active_object
    spheres.append(obj)

# アニメーションを設定する
for i, sphere in enumerate(spheres):
    start_frame = 1
    end_frame = 250
    location = sphere.location
    if parallel:
        target_location = location + parallel_distance
    else:
        target_location = zion_target
    distance = (target_location - location).length
    speed = zion_speed / distance
    set_animation(sphere, start_frame, end_frame, target_location, speed)




import bpy
import math
from mathutils import Vector

# 速度を指定する
zion_speed = 1.0

# 目標位置を指定する
zion_target = Vector((0, 0, -30))

# 平行移動するかどうかを指定する
parallel = False

# 平行移動量を指定する
parallel_distance = Vector((300, 300, 300))  # ここを変更する

# 新しいパラメータを指定する
num_spheres = 11  # 球体の数
radius = 1  # 球体の半径
spacing = 6  # 球体の間隔

# x軸方向の範囲
x_range = (-30, 30)

# y軸方向の範囲
y_range = (0, 0)

# 開始点
start_point = Vector((x_range[0], y_range[0], 0))

# 終了点
end_point = Vector((x_range[1], y_range[1], 0))

# オブジェクトを作成する関数
def create_sphere(location, radius):
    bpy.ops.mesh.primitive_uv_sphere_add(location=location, radius=radius)

# アニメーションを設定する関数
def set_animation(obj, start_frame, end_frame, target_location, speed):
    distance = (target_location - obj.location).length
    duration = distance / speed
    for frame in range(start_frame, end_frame+1):
        t = (frame - start_frame) / duration
        obj.location = obj.location.lerp(target_location, t)
        obj.keyframe_insert(data_path="location", frame=frame)

# 球体を作成する
spheres = []
for i in range(num_spheres):
    x = start_point.x + spacing * i
    y = start_point.y
    z = start_point.z
    location = Vector((x, y, z))
    create_sphere(location, radius)
    obj = bpy.context.active_object
    spheres.append(obj)

# アニメーションを設定する
for i, sphere in enumerate(spheres):
    start_frame = 1
    end_frame = 250
    location = sphere.location
    if parallel:
        target_location = location + parallel_distance
    else:
        target_location = zion_target
    distance = (target_location - location).length
    speed = zion_speed / distance
    set_animation(sphere, start_frame, end_frame, target_location, speed)











import bpy
import math
from mathutils import Vector

# 速度を指定する
zion_speed = 1.0

# 目標位置を指定する
zion_target = Vector((0, 500, 0))

# 平行移動するかどうかを指定する
parallel = True

# 平行移動量を指定する
parallel_distance = Vector((0, 0, 300))

# オブジェクトを作成する関数
def create_sphere(location, radius):
    bpy.ops.mesh.primitive_uv_sphere_add(location=location, radius=radius)

# アニメーションを設定する関数
def set_animation(obj, start_frame, end_frame, target_location, speed):
    distance = (target_location - obj.location).length
    duration = distance / speed
    for frame in range(start_frame, end_frame+1):
        t = (frame - start_frame) / duration
        obj.location = obj.location.lerp(target_location, t)
        obj.keyframe_insert(data_path="location", frame=frame)

# 16個の球体を作成する
spheres = []
for i in range(16):
    angle = 2 * i * math.pi / 16
    x = 30 * math.cos(angle)
    y = 30 * math.sin(angle)
    z = -300
    location = Vector((x, y, z))
    radius = 1
    create_sphere(location, radius)
    obj = bpy.context.active_object
    spheres.append(obj)

# アニメーションを設定する
for i, sphere in enumerate(spheres):
    start_frame = 1
    end_frame = 500
    location = sphere.location
    if parallel:
        target_location = location + parallel_distance
    else:
        target_location = zion_target
    distance = (target_location - location).length
    speed = zion_speed / distance
    set_animation(sphere, start_frame, end_frame, target_location, speed)
































bbb

連番 007 未来光円錐 過去光円錐 円周中心からの球体放出

aaa 参考 2023年3月26日日曜日 製作 002b 未来光円錐の方向 線路レールで https://ia2023sha.blogspot.com/2023/03/002b.html import bpy import math zion_co...