![見出し画像](https://assets.st-note.com/production/uploads/images/90038664/rectangle_large_type_2_5a5fa758b27c99bb5e8b2975b76b1add.png?width=1200)
Geometry nodes 属性の伝搬
いきなりだけどこれを見てほしい。
Geometry nodesでよく見る教科書的なノードである。Suzanne(お猿さん)をランダムに配置した結果を得ることができる。
![](https://assets.st-note.com/img/1667046532263-KsHX46eyTJ.png?width=1200)
簡単に説明すると、
元のオブジェクトはSuzanneであるため、InputはSuzanneになる。
上部ではGridをMeshで作成しMesh平面上にPoints(点群)を配置している。そのPointsにSuzanneをInstance化している。
![](https://assets.st-note.com/img/1667046929513-005PjrkmVU.png)
Cupture AttributeでInstance ID(Index)を取得し、RealizeでInstanceをMesh化している。Set PositionでMeshをランダムにOffsetしている。
![](https://assets.st-note.com/img/1667047055989-9M66MGI8zU.png)
不思議なことに、Mesh化した後にランダムOffsetしているのにSuzanneの形が崩れていない。これはCupture Attributeを利用しているからである。
Cupture AttributeはGeometry nodesを使う上でとても便利な機能であるが、概念的に難しいとことがある。
Cupture Attributeはフロー上では何の変形も与えていない。Indexを取得しているだけである。
Instance on Pointsを直接繋いだ状態でspreadsheetを確認すると、各Instanceにpostionとidが振り分けられていることがわかる。
![](https://assets.st-note.com/img/1667047906330-RH00NyWK4O.png?width=1200)
![](https://assets.st-note.com/img/1667047931797-9S92reBcD1.png?width=1200)
ではすべて繋いだ状態でspreadsheetを確認するとMeshのVertexにidが振り分けられていることがわかる。
Cupture AttributeではInstanceのidを取得し、それをランダムに接続することにより同じidには同じランダムな値を渡すことができる。
よってMesh化した後でもSuzanneをランダムに配置することができるようになる。
![](https://assets.st-note.com/img/1667048123781-bzfH5nLBUY.png?width=1200)
![](https://assets.st-note.com/img/1667048148570-6MhwofghHc.png?width=1200)
今回は一例を見て属性の伝搬を見てみた。Cupture Attributeは便利でよく使うので、伝搬の仕組みを知ることでより複雑なものを作ることができる。