上上がり 300 z 0→300
import bpy
import random
# タグ名
tag_name = "rain_l_line_same_velocities"
# コレクションを取得する
collection = bpy.data.collections.get(tag_name)
# コレクションが存在しない場合は作成する
if not collection:
collection = bpy.data.collections.new(tag_name)
bpy.context.scene.collection.children.link(collection)
# 球体の半径を設定
radius = 5.0
# 球体を表示するかどうかのフラグ
show_sphere = True
# 表示/非表示を切り替える
if collection.hide_viewport:
collection.hide_viewport = False
else:
collection.hide_viewport = True
for i in range(50):
# 球体の初期位置と移動先の位置をランダムに設定
y = random.uniform(-300, 300)
loc_a_start = (0, y, -300)
loc_a_end = (0, y, 300)
# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object
# コレクションにオブジェクトを追加する
collection.objects.link(obj_a)
if not show_sphere:
obj_a.hide_render = True
# アニメーションのフレーム設定を行う
start_frame = 1 # アニメーションの最初のフレーム
end_frame_a = int(20 * bpy.context.scene.render.fps) # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a # アニメーションの終了フレームを設定
# キーフレームを設定する
obj_a.location = loc_a_start # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame) # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a) # 終了フレームでキーフレームを設定
# アニメーション再生
bpy.ops.screen.animation_play() # アニメーションを再生
# アニメーション再生時間を5秒延長
bpy.context.scene.frame_end += 5 * bpy.context.scene.render.fps
y z広がり
import bpy
import random
# タグ名
tag_name = "rain_l_line_same_velocities"
# コレクションを取得する
collection = bpy.data.collections.get(tag_name)
# コレクションが存在しない場合は作成する
if not collection:
collection = bpy.data.collections.new(tag_name)
bpy.context.scene.collection.children.link(collection)
# 球体の半径を設定
radius = 5.0
# 球体を表示するかどうかのフラグ
show_sphere = True
# 表示/非表示を切り替える
if collection.hide_viewport:
collection.hide_viewport = False
else:
collection.hide_viewport = True
for i in range(50):
# 球体の初期位置と移動先の位置をランダムに設定
y = random.uniform(-300, 300)
loc_a_start = (0, y, -300)
loc_a_end = (0, y, 300)
# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object
# コレクションにオブジェクトを追加する
collection.objects.link(obj_a)
if not show_sphere:
obj_a.hide_render = True
# アニメーションのフレーム設定を行う
start_frame = 1 # アニメーションの最初のフレーム
end_frame_a = int(20 * bpy.context.scene.render.fps) # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a # アニメーションの終了フレームを設定
# キーフレームを設定する
obj_a.location = loc_a_start # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame) # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a) # 終了フレームでキーフレームを設定
# アニメーション再生
bpy.ops.screen.animation_play() # アニメーションを再生
# アニメーション再生時間を5秒延長
bpy.context.scene.frame_end += 5 * bpy.context.scene.render.fps
x0 z広がり y -300から0移動
import bpy
import random
# タグ名
tag_name = "rain_yoko_test"
# コレクションを取得する
collection = bpy.data.collections.get(tag_name)
# コレクションが存在しない場合は作成する
if not collection:
collection = bpy.data.collections.new(tag_name)
bpy.context.scene.collection.children.link(collection)
# 球体の半径を設定
radius = 5.0
# 球体を表示するかどうかのフラグ
show_sphere = True
# 表示/非表示を切り替える
if collection.hide_viewport:
collection.hide_viewport = False
else:
collection.hide_viewport = True
for i in range(50):
# 球体の初期位置と移動先の位置をランダムに設定
z = random.uniform(-300, 300)
loc_a_start = (0, -300, z)
loc_a_end = (0, 0, z)
# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object
# コレクションにオブジェクトを追加する
collection.objects.link(obj_a)
if not show_sphere:
obj_a.hide_render = True
# アニメーションのフレーム設定を行う
start_frame = 1 # アニメーションの最初のフレーム
end_frame_a = int(20 * bpy.context.scene.render.fps) # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a # アニメーションの終了フレームを設定
# キーフレームを設定する
obj_a.location = loc_a_start # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame) # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a) # 終了フレームでキーフレームを設定
# アニメーション再生
bpy.ops.screen.animation_play() # アニメーションを再生
# アニメーション再生時間を5秒延長
bpy.context.scene.frame_end += 5 * bpy.context.scene.render.fps
import bpy
import random
# タグ名
tag_name = "rain_yoko2_test"
# コレクションを取得する
collection = bpy.data.collections.get(tag_name)
# コレクションが存在しない場合は作成する
if not collection:
collection = bpy.data.collections.new(tag_name)
bpy.context.scene.collection.children.link(collection)
# 球体の半径を設定
radius = 5.0
# 球体を表示するかどうかのフラグ
show_sphere = True
# 表示/非表示を切り替える
if collection.hide_viewport:
collection.hide_viewport = False
else:
collection.hide_viewport = True
for i in range(50):
# 球体の初期位置と移動先の位置をランダムに設定
z = random.uniform(-300, 300)
loc_a_start = (0, 300, -z)
loc_a_end = (0, -300, -z)
# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object
# コレクションにオブジェクトを追加する
collection.objects.link(obj_a)
if not show_sphere:
obj_a.hide_render = True
# アニメーションのフレーム設定を行う
start_frame = 1 # アニメーションの最初のフレーム
end_frame_a = int(20 * bpy.context.scene.render.fps) # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a # アニメーションの終了フレームを設定
# キーフレームを設定する
obj_a.location = loc_a_start # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame) # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a) # 終了フレームでキーフレームを設定
# アニメーション再生
bpy.ops.screen.animation_play() # アニメーションを再生
# アニメーション再生時間を10秒延長
bpy.context.scene.frame_end += 10 * bpy.context.scene.render.fps
import bpy
import random
# タグ名
tag_name = "ccc"
# コレクションを取得する
collection = bpy.data.collections.get(tag_name)
# コレクションが存在しない場合は作成する
if not collection:
collection = bpy.data.collections.new(tag_name)
bpy.context.scene.collection.children.link(collection)
# 球体の半径を設定
radius = 5.0
# 球体を表示するかどうかのフラグ
show_sphere = True
# 表示/非表示を切り替える
if collection.hide_viewport:
collection.hide_viewport = False
else:
collection.hide_viewport = True
for i in range(50):
# 球体の初期位置と移動先の位置をランダムに設定
z = random.uniform(-300, 300)
loc_a_start = (0, 300, -z)
loc_a_end = (0, 0, 0)
# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object
# コレクションにオブジェクトを追加する
collection.objects.link(obj_a)
if not show_sphere:
obj_a.hide_render = True
# アニメーションのフレーム設定を行う
start_frame = 1 # アニメーションの最初のフレーム
end_frame_a = int(20 * bpy.context.scene.render.fps) # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a # アニメーションの終了フレームを設定
# キーフレームを設定する
obj_a.location = loc_a_start # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame) # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a) # 終了フレームでキーフレームを設定
# コレクションを取得する
collection = bpy.data.collections.get("ccc")
# コレクションが存在している場合
if collection:
# 表示/非表示を切り替える
if collection.hide_viewport:
collection.hide_viewport = False
else:
collection.hide_viewport = True
# アニメーション再生
bpy.ops.screen.animation_play() # アニメーションを再生
# アニメーション再生時間を10秒延長
bpy.context.scene.frame_end += 10 * bpy.context.scene.render.fps
bbb