Blender の Python Scripting の基礎的なこと

BlenderでPythonを使って制作ができるそうです。 私は BlenderとPythonを勉強しているので、「2つを同時に勉強できるのはいいかも!」と思って取り組み出しました。

まずは、超基本的なコードです。

デフォルトのCubeを削除して、Scriptingに読み込んで実行すると新しいCubeが表示される。

import bpy
bpy.ops.mesh.primitive_cube_add()

Mesh を 3 つを並べる

3 つの Mesh を x 軸上に並べてみました。

Blenderの超基本的なMeshはプリミティブと呼ばれているようです。

なので、コードも「primitive_cube_add()」とプリミティブが入っています。

↓ bpy.py

コードの確認

まず、「bpy」モジュールをインポートします。

import bpy

今あるメッシュ(最初の立方体とか)を削除する。

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

次は、3つのオブジェクト(Mesh)を追加します。

今回は立方体(cube)、モンキー(monkey)、UV 球(uv_sphere)にします。

他のMeshはこちらのページ(Mesh Operators)にあり。

bpy.ops.mesh.primitive_cube_add()
bpy.ops.mesh.primitive_uv_sphere_add()
bpy.ops.mesh.primitive_monkey_add()

追加したオブジェクトを入れるためのリストを作成する。

obj = []

オブジェクトを Mesh であるかどうかを確認して、Mesh であればリストに入れる。

for o in bpy.data.objects:
	if o.type == "MESH":
		obj.append(o)

obj にちゃんと入っているか、念のため確認します。

print(obj)
# [bpy.data.objects['Cube'], bpy.data.objects['Sphere'], bpy.data.objects['Suzanne']]

追加したオブジェクトの座標を決める。

pos_monkey = (0, 0, 0)
pos_uv_sphere = (-5, 0, 0)
pos_cube = (5, 0, 0)

座標をオブジェクトに割り当てる。

obj[1].location = pos_monkey
obj[2].location = pos_uv_sphere
obj[0].location = pos_cube

この Python ファイルを Blender で scripting に読み込む。