2014/7/30 開催の Okinawa.rb に参加。
本来 Ruby の集いであるにも関わらず、この日は構わず Blender 方面へ突入。主に Python Console において Bpy な方面へ。
結果、オブジェクト(以降の説明では Plane)に対し、頂点、辺、面をそれぞれ追加する手法を理解したため、以下のとおりメモ。
準備
まず、本件について準備しつつ Python Console を開くまでの手順。 Blender は、現 2.71 の on OS X な版を使用。
デフォルトの Cube は使用しないため削除。(X キーをタイプ)
![]() |
オブジェクト(Plane)を配置するため、 3D View の表示形式を Top Persp に切り替え。
![]() |
3D View にマウスカーソルをのせ、スペースキーをタイプ。 表示されたメニューから Add Plane を選択。 なお、以下な矢印の付け根部分をドラッグすることで画面分割が可能。
![]() |
Editor Type のメニューから Python Console を選択。
![]() |
これで Python Console が開きます。
![]() |
頂点の追加
Python Console に以下を入力し、 3D View にマウスカーソルを移動させタブキーをタイプして Edit Mode に切り替えると
d = bpy.data.objects['Plane'].data d.vertices.add(1) d.vertices[4].co.x = 3
以下のアカマルな位置に頂点が追加されている。
![]() |
ちなみに、 bpy.data.objects['Plane'].data の戻りは bpy.data.meshes['Plane'] であり Blender 2.71.0 5c2d7f7 - API documentation では bpy.types.Mesh に示される。 vertices については bpy.types.MeshVertex 。
辺の追加
面の追加
Object Mode に切り替え、 Python Console にて以下な入力。
d.loops.add(3) d.loops[4].vertex_index = 1 d.loops[5].vertex_index = 4 d.loops[6].vertex_index = 3 d.polygons.add(1) d.polygons[1].loop_start = 4 d.polygons[1].loop_total = 3
d.loops のデフォルトを確認すると vertex_index にそれぞれ 0, 1, 3, 2 が設定されている。これに追加し 0, 1, 3, 2, 1, 4, 3 とする。 また d.polygons にひとつ追加し、 d.loops の要素中、 4 番目から 3 つ目までを追加面として設定している。
Edit Mode に切り替た後、確認すると以下なとおり。
![]() |
これらの手法で、プログラム的モデリングについていろいろ妄想中。
あと、 いい加減、そろそろ Unity 方面をおさえないとな件。