Blender の PythonAPI を勉強中です。
今回は、特に新しく覚えたことは使っていません。
Youtubeでちらっと見た(誰か忘れましたが)のを良いなと思ったので作ってみました。
Cubeを敷き詰めてボコボコさせる
作りたいと思ったのは「Cubeを敷き詰めて高さをランダムにしてボコボコさせる」ものです。
見ていて気持ちいい、なと思いました。
高さをランダムにするのはrandom.uniform()を使ってます。
ram = random.uniform(0, 2)
コード全体はこちら↓
import bpy import random num = 10 spacing = 2.1 def make_cube(x, y, z): loc = (x*spacing, y*spacing, z) sca = (1, 1, 1) bpy.ops.mesh.primitive_cube_add(location=loc, scale=sca) bpy.ops.object.material_slot_add() r = random.random() g = random.random() b = random.random() ma = make_material(r, g, b) for m in bpy.context.active_object.material_slots: m.material = ma def make_cubes(): for x in range(num): for y in range(num): ram = random.uniform(0, 2) make_cube(x, y, ram) def make_material(r, g, b): ma = bpy.data.materials.new('test') bpy.context.object.data.materials.append(ma) ma.diffuse_color = (r, g, b, 1) return ma def delete_all(): for item in bpy.data.meshes: bpy.data.meshes.remove(item) for item in bpy.data.materials: bpy.data.materials.remove(item) if __name__ == '__main__': delete_all() make_cubes()