OneonetのPyBE

Python,Blender,Excelのいろいろ

Blender x Python で作る塔

Pythonスクリプトでキューブメッシュを並べて円柱を作ります。塔というよりUFOキャッチャーによくある小箱お菓子が積みあがられているようなイメージですが、簡単なスクリプトで作成できます。将来的には物理演算の機能によって何か面白そうなことしてみたいと思っています。

#blender 2.93.1で動作確認
import bpy
import math

for item in bpy.data.meshes:
    bpy.data.meshes.remove(item)

n = 36     #頂点の数
r = 10.0   #半径
f = 20     #フロア数

for z in range(0, f):
    for i in range(0, n):
        rad = 2 * math.pi * (i+z*.5) /n
        xx = r * math.cos(rad)
        yy = r * math.sin(rad)
        bpy.ops.mesh.primitive_cube_add(location=(xx, yy, z), size=1.0, rotation=(0, 0, rad))

n,r,fを変更することで、1フロアのキューブの数、半径の大きさ、積み上げる数を変化できます。角度を半分ずらすことで互い違いになるようにしていますが、キューブ間の開きがキューブの大きさを超えないように調整が必要です。

f:id:oneonet:20220316145943p:plain