Takunojiの日記

自分が勉強したプログラム技術メモ

Blender Python BMesh 〜点から面へ〜

前回は、点(Vertex)を作成し線を作成して座標の確認を行いました。
今回は、面を作成します。

前回のポイントは、既存のオブジェクトにおける座標を設定するのが
以下のようなスクリプト(BMeshでの処理?)です。

ob = bpy.context.object
bm = bmesh.from_edit_mesh(ob.data)

v1 = bm.verts.new*1
v2 = bm.verts.new*2
v3 = bm.verts.new*3

bm.edges.new*4
bm.edges.new*5
bm.edges.new*6
※Z軸の座標は0→1に変更しています。

この状態(スクリプト)だと線を描くだけです。

f:id:Takunoji:20180327215614p:plain

ここまで来たので、サクッと面を作成したいと思うのが人情(自分だけ?)
なので上記スクリプトをちょいといじります。

import bpy, bmesh

ob = bpy.context.object
bpy.ops.object.mode_set(mode='EDIT')
bm = bmesh.from_edit_mesh(ob.data)

bpy.ops.mesh.select_all(action='DESELECT')

v1 = bm.verts.new*7
v1.select = True
v2 = bm.verts.new*8
v2.select = True
v3 = bm.verts.new*9
v3.select = True

bpy.ops.mesh.edge_face_add()
#bm.edges.new*10
#bm.edges.new*11
#bm.edges.new*12

f:id:Takunoji:20180327215833p:plain f:id:Takunoji:20180327220054p:plain

こんな感じで描画されました。
板(Plane)の上にある三角形はスクリプトで作成したものなので
 Planeに依存しています。なので隣の画像のように回転します。

次回は、

現状のままでは2Dモデルです。なので、3Dモデルとして形を作りたいと思います。

 



*1:0,0,1

*2:1,0,1

*3:0,1,1

*4:v1, v2

*5:v2, v3

*6:v3, v1

*7:0,0,1

*8:1,0,1

*9:0,1,1

*10:v1, v2

*11:v2, v3

*12:v3, v1