見出し画像

Geometry nodes 属性の伝搬

いきなりだけどこれを見てほしい。
Geometry nodesでよく見る教科書的なノードである。Suzanne(お猿さん)をランダムに配置した結果を得ることができる。

簡単に説明すると、
元のオブジェクトはSuzanneであるため、InputはSuzanneになる。
上部ではGridをMeshで作成しMesh平面上にPoints(点群)を配置している。そのPointsにSuzanneをInstance化している。

Cupture AttributeでInstance ID(Index)を取得し、RealizeでInstanceをMesh化している。Set PositionでMeshをランダムにOffsetしている。

不思議なことに、Mesh化した後にランダムOffsetしているのにSuzanneの形が崩れていない。これはCupture Attributeを利用しているからである。

Cupture AttributeはGeometry nodesを使う上でとても便利な機能であるが、概念的に難しいとことがある。
Cupture Attributeはフロー上では何の変形も与えていない。Indexを取得しているだけである。
Instance on Pointsを直接繋いだ状態でspreadsheetを確認すると、各Instanceにpostionとidが振り分けられていることがわかる。

ではすべて繋いだ状態でspreadsheetを確認するとMeshのVertexにidが振り分けられていることがわかる。
Cupture AttributeではInstanceのidを取得し、それをランダムに接続することにより同じidには同じランダムな値を渡すことができる。
よってMesh化した後でもSuzanneをランダムに配置することができるようになる。

今回は一例を見て属性の伝搬を見てみた。Cupture Attributeは便利でよく使うので、伝搬の仕組みを知ることでより複雑なものを作ることができる。

この記事が気に入ったらサポートをしてみませんか?