Blender初心者が最初に覚えるべき内容をまとめたページは、このリンクにあります。
このページは、Blender(Portable_4.1.1)のPythonスクリプトでここで行ったモデリングを試みる実験のページです。
import sys sys.path.append('D:\\work')これで、「Pythonコンソール」で下記を実行させれば、最初の「test.py」を実行することができます。
import test続けて、再び「test.py」を実行する場合は、「import test」は使えません。代わりに次のコードを貼り付けて実行させます。
from importlib import reload reload( test )これ以降で再び実行する場合、「reload( test )」だけを実行させます。
bpy.ops.mesh.primitive_cube_add(size=2, location=(0, 0, 0), scale=(1, 1, 1)) # 立方体作成(戻り値なし) obj = bpy.context.active_object # 直前でアクセスしたアクティブなオブジェクト取得 obj.location = (obj.location.x + 1.0, obj.location.y + 2.0, obj.location.z + 3.0) # 移動 obj.name='直方体' print(f"{obj.name} {obj.type} {bpy.data.objects['直方体'].location}") # '直方体 MESH <Vector (1.0000, 2.0000, 3.0000)>'上記bpy.ops.mesh.primitive_cube_addのオブジェクト生成メソッドにしたは戻り値がありませんが、 実行直後では、生成オブジェクトは、アクティブオブジェクトになります。
import bpy import bmesh obj=bpy.data.objects['Cube'] # bpy.types.Object型 bpy.ops.object.mode_set(mode='EDIT')# 編集モードにする bm = bmesh.from_edit_mesh(obj.data) # bpy.types.Meshのobj.dataから、BMesh型を取得 # bm.verts[0]は BMVert型です。bm.verts[0].co の表現で、Vector((1.0, 1.0, 1.0))のようなデータが得られる。
import bpy mesh = bpy.data.meshes.new("MyMesh")# 新しいメッシュを作成 verts = [(0, 0, 0), (1, 0, 0), (1, 1, 0), (0, 1, 0)] # 4つの頂点(頂点データを用意) faces = [(0, 1, 2, 3)] # 1つの面を作成 # 面のインデックスを指定 mesh.from_pydata(verts, [], faces)# メッシュに頂点と面を設定(2番目の引数は辺のデータ) obj = bpy.data.objects.new("MyObject", mesh)# オブジェクトを作成し、メッシュを割り当てる bpy.context.collection.objects.link(obj)# シーンに追加上記のmesh.from_pydataで、面だけ作っていますが、辺も自動的に作られます。
edges = [(0, 1), (1, 2), (2, 3), (3, 0)]# 辺のインデックスを指定 mesh.from_pydata(verts, edges, [])# メッシュに頂点と辺を設定