アストラルプリズム

PC、スマホ、ゲームなどの備忘録と日記

bpyでのメッシュデータの取り方

毎回忘れるエディットモードからのデータ取得方法

 

f:id:katsumi3:20191208233718j:plain

bmeshを使用し基本的に面のデータに辺のデータが含まれ、さらに辺のデータに頂点のデータが含まれるという構造になっている。

 

手順

import bmeshする

#オブジェクトモードで選択中の物体のデータを取得

a= bpy.context.object

#編集モードに入る

bpy.ops.object.mode_set(mode='EDIT')

#編集モードでメッシュのデータを取得

#注:編集モードじゃないとデータ取得できない

bm = bmesh.from_edit_mesh(a.data)

#メッシュの面データにアクセス

bm.faces[0]

#メッシュの面の辺データにアクセス

bm.faces[0].edges[0]

#メッシュの面の辺の頂点データにアクセス

bm.faces[0].edges[0].verts[0]

#面が存在しない場合

bm.edges[0]という感じでfacesを書かなくていい

#頂点の座標にアクセス(絶対座標じゃないので要注意)

bm.faces[0].edges[0].verts[0].co.x

#辺の長さの調べ方

bm.faces[0].edges[0].calc_length()

 

bmeshのその他のコマンド解説は以下のサイト

docs.blender.org