Animation Node の KDTree の使い方

カテゴリ:blender

KDTree を使えば,ある頂点の近くにある頂点を探索できる.

demo
動作デモ

KDTree の概要

KDTree を使うにはまずそれを構築しなければならない. 必要なデータは頂点のリストだ.リストについては ループの使い方 を参照.

Add > KD & BVH Tree > Construct KD Tree に頂点のリストをつなぐ.

最も近いオブジェクトを見つける

Add > KD & BVH Tree > Find Nearest Point を使う. ベクトルデータとインデックスと頂点間の距離とを取得できる.

グループ内のオブジェクトに一番近いオブジェクトを非表示にする

工程は以下のようになる.

  1. グループ内のオブジェクトの位置をループを使ってベクトルのリストにする
  2. そのリストから KDTree を構築し,一番近い頂点位置のインデックスを取得
  3. 取得したインデックスの位置にあるグループのオブジェクトを非表示にする

グループ内のオブジェクトの位置をループを使ってベクトルのリストにする

グループからオブジェクトのリストを取得するには Objects from Group(Add > Object > From Group)を使う.

ループの出力として Vertex List を作成するには,New Generator Output から Vertex List を選択する.

実際のノードは以下のようになる.

KDTree を構築し,一番近い頂点位置のインデックスを取得

find nearest

取得したインデックスの位置にあるグループのオブジェクトを非表示にする

ループを使って,最も近いインデックスと同じインデックスのオブジェクトを非表示にする. 一致の検査は Compare(Add > Boolean > Compare)でできる.

.blend ファイルダウンロード

関連記事
Blender 記事の目次