BMS, Movie, Illustrations, Programming

【旧記事跡地】Geometry Nodes で辺を点に変換する【Blender 4.5】

もっと良い方法があったので、この記事ではなく、以下の記事を参照してください。

Mesh to Points ノードで、辺をメッシュに変換する【Blender / Geometry Nodes】

↓↓↓↓ 以下、旧記事跡地 ↓↓↓↓
↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓

目的

Geometry Nodes で辺を頂点に変換するノードを考えます。

悪い例:頂点をそのまま使う

頂点の位置を Set Position で辺の中点にする方法が最初に思いつきますが、ひとつの頂点が複数の辺に接している場合は上手く行きません。

良い例:グリッドを作成する

今回のケースでは、頂点の数より辺の数が多い可能性があるため、既存の頂点を動かすのではなく、 Grid ノードや Mesh Line ノードなどでゼロから頂点を生成する必要があります。

グリッドの各頂点に対して、 Set Position で位置を指定していきます。中点の計算方法は先ほどと同じですが、 Sample Index ノードで、グリッドではなく元のジオメトリに対して値を計算します。

Sample Index Node – Blender Scrapbox

他の Geometry Nodes で Instance on Points を適用して完成

頂点のままだとレンダリングされないので、 Instance on Points を追加するなどして、メッシュが見えるようにします。

おまけ:辺の長さと向きを属性として保存する

Attributes として辺の長さや向きを保存して、他の Geometry Nodes から参照することもできます。

長さは Vector Math ノードの Distance で、向きは Subtract で計算しています。

ダウンロード

Blend ファイルをダウンロード (edge_to_points_with_grid.blend)

リンクを右クリックして保存してください。