原型 立方体を 基準に 3つの平行な正方形
Blender Pythonスクリプトで、y=-1, 0, 1の3つの位置にあるx=0、z=0を中心とした正方形を作成
import bpy
# 正方形の中心
center = (0, 0, 0)
# 正方形の大きさ
size = 2.0
# 正方形の座標
square_vertices = [
(center[0] - size/2, center[1], center[2] - size/2),
(center[0] + size/2, center[1], center[2] - size/2),
(center[0] + size/2, center[1], center[2] + size/2),
(center[0] - size/2, center[1], center[2] + size/2)
]
square_edges = [(0,1), (1,2), (2,3), (3,0)]
square_faces = [(0,1,2,3)]
# 正方形を作成する関数
def create_square(x, y, z):
# Meshデータの作成
mesh = bpy.data.meshes.new("Square")
# 座標を変換して、正方形をx,y,zの位置に移動
vertices = [(vx+x,vy+y,vz+z) for vx,vy,vz in square_vertices]
# Meshデータに頂点、エッジ、面情報を追加
mesh.from_pydata(vertices, square_edges, square_faces)
# オブジェクトの作成
obj = bpy.data.objects.new("SquareObject", mesh)
# オブジェクトをシーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj)
# 3つの正方形を作成
create_square(0, -1, 0) # y = -1
create_square(0, 0, 0) # y = 0
create_square(0, 1, 0) # y = 1
#原型 正方形 3枚 平行
import bpy # 正方形の中心 center = (0, 0, 0) # 正方形の大きさ size = 1.0 # 正方形の座標 square_vertices = [ (center[0] - size/2, center[1], center[2] - size/2), (center[0] + size/2, center[1], center[2] - size/2), (center[0] + size/2, center[1], center[2] + size/2), (center[0] - size/2, center[1], center[2] + size/2) ] square_edges = [(0,1), (1,2), (2,3), (3,0)] square_faces = [(0,1,2,3)] # 正方形を作成する関数 def create_square(x, y, z): # Meshデータの作成 mesh = bpy.data.meshes.new("Square") # 座標を変換して、正方形をx,y,zの位置に移動 vertices = [(vx+x,vy+y,vz+z) for vx,vy,vz in square_vertices] # Meshデータに頂点、エッジ、面情報を追加 mesh.from_pydata(vertices, square_edges, square_faces) # オブジェクトの作成 obj = bpy.data.objects.new("SquareObject", mesh) # オブジェクトをシーンに追加 scene = bpy.context.scene scene.collection.objects.link(obj) # オブジェクトのマテリアルを設定 mat = bpy.data.materials.new(name="SquareMaterial") obj.data.materials.append(mat) # 3つの正方形を作成 create_square(0, -1, 0) create_square(0, 0, 0) create_square(0, 1, 0)
import bpy
# 正方形1の座標
vertices1 = [(0,0,0), (1,0,0), (1,0,1), (0,0,1)]
edges1 = [(0,1), (1,2), (2,3), (3,0)]
faces1 = [(0,1,2,3)]
# 正方形2の座標
vertices2 = [(2,0,0), (3,0,0), (3,0,1), (2,0,1)]
edges2 = [(0,1), (1,2), (2,3), (3,0)]
faces2 = [(0,1,2,3)]
# 正方形3の座標
vertices3 = [(4,0,0), (5,0,0), (5,0,1), (4,0,1)]
edges3 = [(0,1), (1,2), (2,3), (3,0)]
faces3 = [(0,1,2,3)]
# Meshデータの作成
mesh1 = bpy.data.meshes.new("Square1")
mesh2 = bpy.data.meshes.new("Square2")
mesh3 = bpy.data.meshes.new("Square3")
# Meshデータに頂点、エッジ、面情報を追加
mesh1.from_pydata(vertices1, edges1, faces1)
mesh2.from_pydata(vertices2, edges2, faces2)
mesh3.from_pydata(vertices3, edges3, faces3)
# オブジェクトの作成
obj1 = bpy.data.objects.new("SquareObject1", mesh1)
obj2 = bpy.data.objects.new("SquareObject2", mesh2)
obj3 = bpy.data.objects.new("SquareObject3", mesh3)
# オブジェクトをシーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj1)
scene.collection.objects.link(obj2)
scene.collection.objects.link(obj3)
# オブジェクトのマテリアルを設定
mat1 = bpy.data.materials.new(name="RedMaterial")
mat1.diffuse_color = (1, 0, 0, 1)
obj1.data.materials.append(mat1)
mat2 = bpy.data.materials.new(name="GreenMaterial")
mat2.diffuse_color = (0, 1, 0, 1)
obj2.data.materials.append(mat2)
mat3 = bpy.data.materials.new(name="BlueMaterial")
mat3.diffuse_color = (0, 0, 1, 1)
obj3.data.materials.append(mat3)