import bpy
import math
# 長方形のサイズ
width = 2.0
height = 1.0
# 長方形の中心座標
center = (0.0, 0.0, 0.0)
# 球体の半径と個数
sphere_radius = 0.02
sphere_count = 80
# コレクションの作成と名前付け
collection_names = ["t=0_train", "t=-1_train", "t=+1_train"]
for collection_name in collection_names:
if collection_name not in bpy.data.collections:
collection = bpy.data.collections.new(collection_name)
bpy.context.scene.collection.children.link(collection)
# 球体を配置する関数
def create_spheres(collection_name, z_position):
collection = bpy.data.collections[collection_name]
# 球体の作成と配置
for i in range(sphere_count):
angle = 2 * math.pi * i / sphere_count
x = center[0] + (width/2 + sphere_radius) * math.cos(angle)
y = center[1] + (height/2 + sphere_radius) * math.sin(angle)
z = z_position
bpy.ops.mesh.primitive_uv_sphere_add(radius=sphere_radius, location=(x, y, z))
# 最後に作成された球体オブジェクトを選択状態にする
obj = bpy.context.object
obj.name = f"t{z_position}_Sphere_{i+1}"
obj.select_set(True)
bpy.context.view_layer.objects.active = obj
# 不要なリンクを削除
bpy.context.collection.objects.unlink(obj)
# 球体を対応するコレクションに追加
collection.objects.link(obj)
# 球体を配置する関数を呼び出し
create_spheres("t=0_train", 0.0)
create_spheres("t=-1_train", -1.0)
create_spheres("t=+1_train", 1.0)