loose create quad poly about Animation Nodes
概要
単一のポリゴンを作成することができたので、次は複数のポリゴンを生成する。
今回はシンプルに隣接する2つの三角ポリゴンを生成して、 Quad に見えるようにした。
手順
- 三角ポリゴンを2つ作る
- 2つの三角ポリゴンを一つにまとめる
- 不要なポリゴンを削除する
- メッシュデータを
BMesh
型へ変換する - 重複しているデータを削除する
BMesh
型のデータをMesh
型へ変換する
- メッシュデータを
- 表示する
三角ポリゴンを2つ作る
まずは独立した三角ポリゴンを2つ用意する。 三角ポリゴンを作る手順は以前作成したので割愛。
2つの三角ポリゴンを一つにまとめる
下図のように、Animation Nodes
は複数のメッシュを個別にビューポートへ出力することができない。
そのため、ノード上に独立したメッシュが複数存在する場合はこれを一つにまとめる必要がある。
Animation Nodes
には生成したメッシュを一つにまとめる機能があるので、それを利用する。
特に難しい操作は必要なく、下図のように Create Mesh List
で複数のメッシュを含んだリスト型データを用意して、 join Mesh List
でまとめれば完了する。
不要なポリゴンを削除する
ポリゴンを表示するだけならば、前操作までで完了しているのでビューポート上に個別に作成した三角ポリゴンがそれぞれ表示されているのが分かる。
しかし、下図のようにオブジェクトの情報を見てみるとピンとくると思うが、見た目と頂点数が一致していない。
それぞれ個別に頂点を作成したので、頂点の座標が重複している状態になっている。
用途によっては三角ポリゴン同士に分かれている方がいい場合もあるが、今回は頂点をマージして重複した頂点は削除したい。
マージするためには、 Animation Nodes
が用意している BMesh
APIのラッパーノードを利用する必要がある。
BMesh についてはここでは割愛。
メッシュデータを BMesh
型へ変換する
作成したメッシュデータを BMesh
データへ変換するためには、 Create BMesh
ノードを利用するだけでいい。
重複しているデータを削除する
BMesh
へデータ変換できたなら、以後も Animation Nodes
が提供している機能を利用することとなる。
Remove Double
ノードで重複を削除する。
BMesh
型のデータを Mesh
型へ変換する
マージが終わったデータは、そのままでは表示できない。
BMesh
と Mesh
はデータ型が異なるため、 Animation Nodes
が提供している Mesh Object Output
へ入力できないようになっている。
ビューポートへ表示するためには、一度 BMesh
型へ変換したデータを改めて Mesh
データ型へ再変換する必要がある。
Mesh
型への変換には、 Create BMesh
ノードのようなワンタッチでできるノードは用意されていない。
幸い BMesh
型からは 頂点データからメッシュを作成した時のように、頂点データ・エッジインデックス・ポリゴンインデックスを出力できる BMesh Mesh
ノードが用意されている。
BMesh Mesh
ノードを利用すれば Combine Mesh
ノードで改めてメッシュを生成することができる。
表示する
マージしたメッシュを表示すれば、重複していた頂点が削除されていることが確認できる。
参考
Animation Nodes - Doc - Create BMesh