【Blender×Python】メッシュデータ(ポリライン)を構成情報(頂点/辺)から作成する方法について徹底解説

Blender

「bpy」とは、PythonからBlenderの機能を呼び出すことができるBlender Python APIのことです。Blenderはオープンソースの3Dアニメーションソフトウェアであり、「bpy」を使うことでBlenderの様々な機能をPythonスクリプトから呼び出して利用することができます。本記事では、「bpy」を用いたメッシュデータ(ポリライン)を構成情報(頂点/辺)から作成する方法を紹介します。

# from_pydata関数による構成情報(頂点/辺)を用いたにメッシュデータ(ポリライン)の作成
"Mesh".from_pydata(vertices, edges, faces)

下記の様な内容で悩んでいる/困っている場合に使える方法を参考までにご共有させて頂きます。

・Blender上で、どの様にPythonを使うの?
・Blender上のPythonで、どの様にメッシュデータ(ポリライン)を構成情報(頂点/辺)から作成するの?

また、「bpy」を使用する上で基礎的な情報は下記の記事で紹介しております。
他の「bpy」のクラスや関数について気になる方はこちらの記事をご覧ください。

from_pydata関数による構成情報(頂点/辺)を用いたにメッシュデータ(ポリライン)の作成

“Mesh”.from_pydata関数の基本構文

"Mesh".from_pydata(
	vertices: iterable object, 
	edges: iterable object, 
	faces: iterable object
)
→ Mesh: bpy_types.Mesh

“Mesh”.from_pydata関数の使い方(Cube)

import bpy

verts_coord = \
    [
        [-1.0, -1.0, -1.0], 
        [-1.0, -1.0, 1.0], 
        [-1.0, 1.0, -1.0], 
        [-1.0, 1.0, 1.0],
        [1.0, -1.0, -1.0], 
        [1.0, -1.0, 1.0], 
        [1.0, 1.0, -1.0], 
        [1.0, 1.0, 1.0], 
    ]

edges_vid = \
    [   
        [2, 0],
        [0, 1],
        [1, 3], 
        [3, 2], 
        [6, 2],
        [3, 7],
        [7, 6],
        [4, 6],
        [7, 5], 
        [5, 4],
        [0, 4],
        [5, 1], 
    ]

CubeMesh = bpy.data.meshes.new(name="CubeMesh")
CubeMesh.from_pydata(verts_coord, edges_vid, [])
CubeMesh.update()

CubeObject = bpy.data.objects.new(name="CubeObject", object_data=CubeMesh)

ContextCollection = bpy.context.collection
ContextCollection.objects.link(CubeObject)

“Mesh”.from_pydata関数の使い方(Plane)

import bpy

verts_coord = \
    [
        [-1.0, -1.0, 0.0], 
        [1.0, -1.0, 0.0], 
        [-1.0, 1.0, 0.0], 
        [1.0, 1.0, 0.0],
    ]

edges_vid = \
    [   
        [2, 0],
        [0, 1],
        [1, 3], 
        [3, 2], 
    ]

PlaneMesh = bpy.data.meshes.new(name="PlaneMesh")
PlaneMesh.from_pydata(verts_coord, edges_vid, [])
PlaneMesh.update()

PlaneObject = bpy.data.objects.new(name="PlaneObject", object_data=PlaneMesh)

ContextCollection = bpy.context.collection
ContextCollection.objects.link(PlaneObject)

まとめ

「bpy」(Blender Python API)は、Pythonを使ったBlenderの開発に非常に役立ちます。この記事では、メッシュデータ(ポリライン)を構成情報(頂点/辺)から作成する方法を紹介しました。ぜひ活用してみてください。

関連検索ワード

How to create a mesh data from vertex and edge? (polyline)

関連キーワード

blender, python, create, mesh, polyline, vertex, edge, 作成, メッシュ, ポリライン, 頂点, 辺