2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rickyアドカレ2024Advent Calendar 2024

Day 4

Blender bmesh_simple_editmodeテンプレート解析

Posted at

blenderのpythonTemplatesの1つであるBmesh Simple Editmodeについて解説を行う
基本的な動きについては単純だが要所要所でbpy特有の用語があるためその棚卸を行う。

image.png

# This example assumes we have a mesh object in edit-mode

import bpy
import bmesh

# Get the active mesh
obj = bpy.context.edit_object
me = obj.data


# Get a BMesh representation
bm = bmesh.from_edit_mesh(me)

bm.faces.active = None

# Modify the BMesh, can do anything here...
for v in bm.verts:
    v.co.x += 1.0


# Show the updates in the viewport
# and recalculate n-gon tessellation.
bmesh.update_edit_mesh(me, loop_triangles=True)

import bpy

bpyのインポートを行っています。
bpyはpythonでblenderを呼び出すことができるAPIのことです。
bpyを用いることでblenderの機能をpythonで制御することができます。

import bmesh

メッシュへのアクセスを提供するAPIです。
メッシュに対して影響を及ぼすことができるようになります。

Introduction
This API gives access the Blender’s internal mesh editing API, featuring geometry connectivity data and access to editing operations such as split, separate, collapse and dissolve.

この API は、ジオメトリ接続データと、分割、分離、折りたたみ、溶解などの編集操作へのアクセスを備えた Blender の内部メッシュ編集 API へのアクセスを提供します。

obj = bpy.context.edit_object

editモードのオブジェクトを選択しobjに格納します。

me = obj.data

対象のデータにへのアクセス
今回は編集モードのオブジェクトに対してそのデータにアクセスされます。

bm = bmesh.from_edit_mesh(me)

エディットモードのメッシュに対する操作を行えるインスタンスを作成します。

for v in bm.verts:

全ての頂点に対してfor文で処理を行う
なおvertsはすべての頂点を表すリストのようなもの。

v.co.x += 1.0

x軸に対して1をインクリメントする。

bmesh.update_edit_mesh(me, loop_triangles=True)

有益な情報が見つけられなかったためgeminiで質問した。

bmesh.update_edit_mesh(me, loop_triangles=True): この行は、BMeshで行った変更を元のメッシュに反映し、ビューポートに表示を更新します。loop_triangles=Trueは、n-gon(多角形)を三角形に分割するオプションです。

実際にこのコードを削ったところ移動は実施されなかったため何らかの反映の更新を行っていると考えられる。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?