2023年3月24日金曜日

distance 調整  配布用 改造20230325 基本1

aaa

velocity = (end_frame - start_frame) *(1/distance)* vvv_velocity







2023年3月24日金曜日

配布用 光時計筒の移動とカメラアイ 改造20230325 修飾1

aaa

2023年3月21日火曜日
円柱 原型 Z軸 方向 end_frame = start_frame + 600


2023年3月25日土曜日
こまごま 部品 列挙 blender python














import bpy
import math


zion_collection_name = "床面カメラ 光時計筒"

# コレクションを作成する
col = bpy.data.collections.new(zion_collection_name)
bpy.context.scene.collection.children.link(col)



import bpy
import math

# Create the minus sphere
minus_sphere = bpy.ops.mesh.primitive_uv_sphere_add(radius=2.0, location=(-30.0, 0.0, 0.0))
minus_sphere_obj = bpy.context.active_object
minus_sphere_obj.name = "Floor_Sphere_minus"

# Create the plus sphere
plus_sphere = bpy.ops.mesh.primitive_uv_sphere_add(radius=2.0, location=(30.0, 0.0, 0.0))
plus_sphere_obj = bpy.context.active_object
plus_sphere_obj.name = "Floor_Sphere_plus"

# Create the cylinder
cylinder = bpy.ops.mesh.primitive_cylinder_add(radius=1.0, depth=60.0, location=(0.0, 0.0, 0.0))
cylinder_obj = bpy.context.active_object
cylinder_obj.name = "Zion_Cylinder"



# Set start and end frames
start_frame = 1
end_frame = start_frame + 600

# Define the start and end positions
start_pos = (30.0, 0.0, 0.0)
end_pos = (-30.0, 0.0, 0.0)

# Calculate the distance between start_pos and end_pos
distance = abs(math.sqrt((end_pos[0]-start_pos[0])**2 + (end_pos[1]-start_pos[1])**2 + (end_pos[2]-start_pos[2])**2))

# Set the speed multiplier
vvv_velocity = 0.04

# Calculate the velocity required to move the sphere at a constant speed
velocity = (end_frame - start_frame) *(1/distance)* vvv_velocity

# Move the sphere and cylinder from start_pos to end_pos at a constant speed
for i in range(start_frame, end_frame + 1):
    bpy.context.scene.frame_set(i)
    bpy.context.object.location = tuple(s + (e-s)*((i-start_frame)*velocity/distance) for s,e in zip(start_pos, end_pos))
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Stop the sphere and cylinder from moving after reaching the end position
bpy.context.scene.frame_set(end_frame)
bpy.context.object.keyframe_insert(data_path="location", index=-1)
bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Set the waiting period
wait_frames = 30
end_frame += wait_frames

# Set the current frame to the end_frame
current_frame = end_frame

# Keep the sphere and cylinder at the end position and repeat the animation
repeat_frames = end_frame + 200
while True:
    current_frame += 1
    
    # Insert a keyframe at the current frame for the sphere and cylinder's location and scale
    bpy.context.scene.frame_set(current_frame)
    bpy.context.object.location = end_pos
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)
    
    # Stop the loop if current_frame reaches repeat_frames
    if current_frame == repeat_frames:
        break




# Add a camera and set its position cam_data = bpy.data.cameras.new('Camera') cam_data.lens = 600.0 # set focal length to 50mm (zoomed in)
cam = bpy.data.objects.new('Camera', cam_data) bpy.context.scene.collection.objects.link(cam) cam.location = (0.0, -30.0, 0.0)

cam.name = "床_光時計筒"

# Add a track constraint to the camera to follow the sphere
track_constraint = cam.constraints.new(type='TRACK_TO')
track_constraint.target = bpy.context.object
track_constraint.track_axis


# アクティブなシーンを取得する
scene = bpy.context.scene

# 開始フレームを1に設定する
scene.frame_start = 1

# 終了フレームを640に設定する
scene.frame_end = 640


#######################################





import bpy
import math


zion_collection_name = "天井カメラ 光時計筒"

# コレクションを作成する
col = bpy.data.collections.new(zion_collection_name)
bpy.context.scene.collection.children.link(col)



import bpy
import math

# Create the minus sphere
minus_sphere = bpy.ops.mesh.primitive_uv_sphere_add(radius=2.0, location=(-30.0, 0.0, 30.0))
minus_sphere_obj = bpy.context.active_object
minus_sphere_obj.name = "Top_Sphere_minus"

# Create the plus sphere
plus_sphere = bpy.ops.mesh.primitive_uv_sphere_add(radius=2.0, location=(30.0, 0.0, 30.0))
plus_sphere_obj = bpy.context.active_object
plus_sphere_obj.name = "Top_Sphere_plus"

# Create the cylinder
cylinder = bpy.ops.mesh.primitive_cylinder_add(radius=1.0, depth=1.0, location=(0.0, 0.0, 30.0))
cylinder_obj = bpy.context.active_object
cylinder_obj.name = "Top_Cylinder"



# Set start and end frames
start_frame = 1
end_frame = start_frame + 600

# Define the start and end positions
start_pos = (30.0, 0.0, 30.0)
end_pos = (-30.0, 0.0, 30.0)

# Calculate the distance between start_pos and end_pos
distance = abs(math.sqrt((end_pos[0]-start_pos[0])**2 + (end_pos[1]-start_pos[1])**2 + (end_pos[2]-start_pos[2])**2))

# Set the speed multiplier
vvv_velocity = 0.04

# Calculate the velocity required to move the sphere at a constant speed
velocity = (end_frame - start_frame) *(1/distance)* vvv_velocity

# Move the sphere and cylinder from start_pos to end_pos at a constant speed
for i in range(start_frame, end_frame + 1):
    bpy.context.scene.frame_set(i)
    bpy.context.object.location = tuple(s + (e-s)*((i-start_frame)*velocity/distance) for s,e in zip(start_pos, end_pos))
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Stop the sphere and cylinder from moving after reaching the end position
bpy.context.scene.frame_set(end_frame)
bpy.context.object.keyframe_insert(data_path="location", index=-1)
bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Set the waiting period
wait_frames = 30
end_frame += wait_frames

# Set the current frame to the end_frame
current_frame = end_frame

# Keep the sphere and cylinder at the end position and repeat the animation
repeat_frames = end_frame + 200
while True:
    current_frame += 1
    
    # Insert a keyframe at the current frame for the sphere and cylinder's location and scale
    bpy.context.scene.frame_set(current_frame)
    bpy.context.object.location = end_pos
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)
    
    # Stop the loop if current_frame reaches repeat_frames
    if current_frame == repeat_frames:
        break



# Add a camera and set its position cam_data = bpy.data.cameras.new('Camera') cam_data.lens = 600.0 # set focal length to 50mm (zoomed in)
cam = bpy.data.objects.new('Camera', cam_data) bpy.context.scene.collection.objects.link(cam) cam.location = (0.0, -30.0, 0.0)

cam.name = "天井光時計筒"

# Add a track constraint to the camera to follow the sphere
track_constraint = cam.constraints.new(type='TRACK_TO')
track_constraint.target = bpy.context.object
track_constraint.track_axis


# アクティブなシーンを取得する
scene = bpy.context.scene

# 開始フレームを1に設定する
scene.frame_start = 1

# 終了フレームを640に設定する
scene.frame_end = 640



#################################











# ボール 事象情報 拡散速度 円柱 移動速度と おんなじ






import bpy
import math


zion_collection_name = "ボール 事象情報 拡散速度"

# コレクションを作成する
col = bpy.data.collections.new(zion_collection_name)
bpy.context.scene.collection.children.link(col)






# Create the fall down sphere

import bpy
import math

# Create the fall down sphere
fall_down_sphere = bpy.ops.mesh.primitive_uv_sphere_add(radius=2.0, location=(0.0, 0.0, 60.0))
fall_down_sphere_obj = bpy.context.active_object
fall_down_sphere_obj.name = "fall_down_Sphere"



# Set start and end frames
start_frame = 1
end_frame = start_frame + 600

# Define the start and end positions
start_pos = (0.0, 0.0, 60.0)
end_pos = (0.0, 0.0, 0.0)

# Calculate the distance between start_pos and end_pos
distance = abs(math.sqrt((end_pos[0]-start_pos[0])**2 + (end_pos[1]-start_pos[1])**2 + (end_pos[2]-start_pos[2])**2))

# Set the speed multiplier
vvv_velocity = 0.04

# Calculate the velocity required to move the sphere at a constant speed
velocity = (end_frame - start_frame) *(1/distance)* vvv_velocity

# Move the sphere and cylinder from start_pos to end_pos at a constant speed
for i in range(start_frame, end_frame + 1):
    bpy.context.scene.frame_set(i)
    bpy.context.object.location = tuple(s + (e-s)*((i-start_frame)*velocity/distance) for s,e in zip(start_pos, end_pos))
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Stop the sphere and cylinder from moving after reaching the end position
bpy.context.scene.frame_set(end_frame)
bpy.context.object.keyframe_insert(data_path="location", index=-1)
bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Set the waiting period
wait_frames = 30
end_frame += wait_frames

# Set the current frame to the end_frame
current_frame = end_frame

# Keep the sphere and cylinder at the end position and repeat the animation
repeat_frames = end_frame + 200
while True:
    current_frame += 1
    
    # Insert a keyframe at the current frame for the sphere and cylinder's location and scale
    bpy.context.scene.frame_set(current_frame)
    bpy.context.object.location = end_pos
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)
    
    # Stop the loop if current_frame reaches repeat_frames
    if current_frame == repeat_frames:
        break




# Add a camera and set its position cam_data = bpy.data.cameras.new('Camera') cam_data.lens = 600.0 # set focal length to 50mm (zoomed in)
cam = bpy.data.objects.new('Camera', cam_data) bpy.context.scene.collection.objects.link(cam) cam.location = (0.0, -30.0, 0.0)

cam.name = "落下ボール_Cam"

# Add a track constraint to the camera to follow the sphere
track_constraint = cam.constraints.new(type='TRACK_TO')
track_constraint.target = bpy.context.object
track_constraint.track_axis





# アクティブなシーンを取得する
scene = bpy.context.scene

# 開始フレームを1に設定する
scene.frame_start = 1

# 終了フレームを640に設定する
scene.frame_end = 640











# 奥行きボール 事象情報 拡散速度 円柱 移動速度と おんなじ






import bpy
import math


zion_collection_name = "奥行きボール 事象情報 拡散速度"

# コレクションを作成する
col = bpy.data.collections.new(zion_collection_name)
bpy.context.scene.collection.children.link(col)






# Create the fall down sphere

import bpy
import math

# Create the fall down sphere
fall_down_sphere = bpy.ops.mesh.primitive_uv_sphere_add(radius=2.0, location=(0.0, 60.0, 0.0))
fall_down_sphere_obj = bpy.context.active_object
fall_down_sphere_obj.name = "奥行き_Sphere"



# Set start and end frames
start_frame = 1
end_frame = start_frame + 600

# Define the start and end positions
start_pos = (0.0, 60.0, 0.0)
end_pos = (0.0, 0.0, 0.0)

# Calculate the distance between start_pos and end_pos
distance = abs(math.sqrt((end_pos[0]-start_pos[0])**2 + (end_pos[1]-start_pos[1])**2 + (end_pos[2]-start_pos[2])**2))

# Set the speed multiplier
vvv_velocity = 0.04

# Calculate the velocity required to move the sphere at a constant speed
velocity = (end_frame - start_frame) *(1/distance)* vvv_velocity

# Move the sphere and cylinder from start_pos to end_pos at a constant speed
for i in range(start_frame, end_frame + 1):
    bpy.context.scene.frame_set(i)
    bpy.context.object.location = tuple(s + (e-s)*((i-start_frame)*velocity/distance) for s,e in zip(start_pos, end_pos))
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Stop the sphere and cylinder from moving after reaching the end position
bpy.context.scene.frame_set(end_frame)
bpy.context.object.keyframe_insert(data_path="location", index=-1)
bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Set the waiting period
wait_frames = 30
end_frame += wait_frames

# Set the current frame to the end_frame
current_frame = end_frame

# Keep the sphere and cylinder at the end position and repeat the animation
repeat_frames = end_frame + 200
while True:
    current_frame += 1
    
    # Insert a keyframe at the current frame for the sphere and cylinder's location and scale
    bpy.context.scene.frame_set(current_frame)
    bpy.context.object.location = end_pos
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)
    
    # Stop the loop if current_frame reaches repeat_frames
    if current_frame == repeat_frames:
        break




# Add a camera and set its position cam_data = bpy.data.cameras.new('Camera') cam_data.lens = 600.0 # set focal length to 50mm (zoomed in)
cam = bpy.data.objects.new('Camera', cam_data) bpy.context.scene.collection.objects.link(cam) cam.location = (0.0, -30.0, 0.0)

cam.name = "落下ボール_Cam"

# Add a track constraint to the camera to follow the sphere
track_constraint = cam.constraints.new(type='TRACK_TO')
track_constraint.target = bpy.context.object
track_constraint.track_axis





# アクティブなシーンを取得する
scene = bpy.context.scene

# 開始フレームを1に設定する
scene.frame_start = 1

# 終了フレームを640に設定する
scene.frame_end = 640










Real_photon_start_top_to_cam






import bpy
import math


zion_collection_name = " Real_photon_start_top_to_cam "

# コレクションを作成する
col = bpy.data.collections.new(zion_collection_name)
bpy.context.scene.collection.children.link(col)






# Create the fall down sphere

import bpy
import math

# Create the fall down sphere
fall_down_sphere = bpy.ops.mesh.primitive_uv_sphere_add(radius=2.0, location=(0.0, 0.0, 60.0))
fall_down_sphere_obj = bpy.context.active_object
fall_down_sphere_obj.name = "info_Sphere_from_top_to_Cam"



# Set start and end frames
start_frame = 1
end_frame = start_frame + 600

# Define the start and end positions
start_pos = (30.0, 0.0, 30.0)
end_pos = (0.0, -30.0, 0.0)

# Calculate the distance between start_pos and end_pos
distance = abs(math.sqrt((end_pos[0]-start_pos[0])**2 + (end_pos[1]-start_pos[1])**2 + (end_pos[2]-start_pos[2])**2))

# Set the speed multiplier
vvv_velocity = 0.04

# Calculate the velocity required to move the sphere at a constant speed
velocity = (end_frame - start_frame) *(1/distance)* vvv_velocity

# Move the sphere and cylinder from start_pos to end_pos at a constant speed
for i in range(start_frame, end_frame + 1):
    bpy.context.scene.frame_set(i)
    bpy.context.object.location = tuple(s + (e-s)*((i-start_frame)*velocity/distance) for s,e in zip(start_pos, end_pos))
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Stop the sphere and cylinder from moving after reaching the end position
bpy.context.scene.frame_set(end_frame)
bpy.context.object.keyframe_insert(data_path="location", index=-1)
bpy.context.object.keyframe_insert(data_path="scale", index=-1)

# Set the waiting period
wait_frames = 30
end_frame += wait_frames

# Set the current frame to the end_frame
current_frame = end_frame

# Keep the sphere and cylinder at the end position and repeat the animation
repeat_frames = end_frame + 200
while True:
    current_frame += 1
    
    # Insert a keyframe at the current frame for the sphere and cylinder's location and scale
    bpy.context.scene.frame_set(current_frame)
    bpy.context.object.location = end_pos
    bpy.context.object.keyframe_insert(data_path="location", index=-1)
    bpy.context.object.keyframe_insert(data_path="scale", index=-1)
    
    # Stop the loop if current_frame reaches repeat_frames
    if current_frame == repeat_frames:
        break




# Add a camera and set its position cam_data = bpy.data.cameras.new('Camera') cam_data.lens = 600.0 # set focal length to 50mm (zoomed in)
cam = bpy.data.objects.new('Camera', cam_data) bpy.context.scene.collection.objects.link(cam) cam.location = (0.0, -30.0, 0.0)

cam.name = "start_top_to_Cam"

# Add a track constraint to the camera to follow the sphere
track_constraint = cam.constraints.new(type='TRACK_TO')
track_constraint.target = bpy.context.object
track_constraint.track_axis





# アクティブなシーンを取得する
scene = bpy.context.scene

# 開始フレームを1に設定する
scene.frame_start = 1

# 終了フレームを640に設定する
scene.frame_end = 640





















bbb

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

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