2022-06-16

【Geometry Nodes】Capture Attribute(属性キャプチャ)ノード【Blender】

特定のタイミングでアトリビュートを保存しておくCapture Attributeを解説。

Article Image
使用ソフトウェアバージョン備考
Blender3.2

Capture Attribute

日本語:属性キャプチャノード

属性キャプチャノード

概要

このノードを通った時点のValueを保存しておくノード。スナップショット的なイメージ。

ここで保存した値は右側のAttributeから出力される。

出し方

Attribute > Capture Attribute

読者のレベル

理解すればシンプルだが、少し難しいノードになる。

PositionのようなInput(赤)ノードを使ったことがある人向け。

Positionノード

先に実例

このノードは設定を覚えることよりも、概念的な理解のほうが優先。

というわけで設定解説は後に回して先に実例を出す。

ベースとなるノード

頂点が1個(座標:0, 0, 0,)しか入っていないオブジェクトに次のジオメトリノードを作ると

移動するだけのノード

OffsetX=5となっているので、Xに頂点が5m移動するだけだ。

結果

アトリビュート

上を改造

上のノードにCapture Attributeを2個差し込んでポジションをキャプチャする。

picture 8

※画像が小さいのでクリックで拡大。

Group Outputのソケットに処理後処理前が作ってあるが、これがよくわからない場合は次の記事を参照。

【Geometry Nodes】アトリビュートの概念とGroup Output(グループ出力)ノード【Blender】 | 謎の技術研究部

どういう処理?

上のノードではSet Positionで移動する前の座標を処理前

移動した後を処理後としてアウトプットしている。

ちなみにサンプルは分かりやすくX座標だけを取り出している。

実行結果

さて、その結果は

picture 9

Set Positionされた最終的なジオメトリのX座標は5になっており、処理後のデータにも5とある。

そして何よりSet Positionする前にキャプチャしたデータも正しく0のままで出力されている。

正しくCapture Attributeが挿されている位置のデータが保存されていることが解ると思う。

実用例

次にもう少し実用的な例があったので紹介(英語)

次の動画の6:30からの例

上記動画の最後の作例では、分割された各ポリゴンが拡大されていくようなアニメーションになっている。

改造してみる

上を参考にして、次のノードを組んでみた。

ノード例

※こちらも見えないのでクリックして拡大推奨

何をしている?

ざっくり解説すると、一度ポリゴンの結合を剥がしてしまってからCapture Attributeで頂点と面のPositionを保存している。

面のPositionはちょうど中央にくるのでこれらをMixノードでアニメーションさせるという手法。

おまけとしてポリゴンの位置を法線方向にずらしてから元の位置に戻るようにしている。

動画で確認

再生すると次のようになる。

動きが硬いのでもうちょっとアニメの調整が必要そうだがCapture Attributeの便利さは伝わると思う。

ソケットと設定

かなり冗長的になりそうなので簡略的。対応した番号で解説。

読まなくても使えると思うが一応乗せておく。

ノード解説用番号

1:型

FloatやBoolean等、保存しておきたいデータの「型」を指定する。

2:ドメイン

プロシージャルなモデリングでは一般的だが、アトリビュート(頂点などに付与されるデータ)は頂点だけではなくエッジや面それぞれ別の値を持っている。

Blenderではこの領域をドメインと呼ぶらしい(シミュレーションのドメインとは別?)

例えば上の画像の例ではPointとなっているので頂点に付与されているアトリビュートを保存するという意味。

どこの「ドメイン」のアトリビュートを保存しておきたかをここで明示する。

3と4:Geometry

3に入ったジオメトリデータはそのまま4にスルーされる。

難しく考える必要はなく、単に保存したいデータが入っている物を明示するために通るだけ。

5:Value

ここに保存したい値を入れる。

1で指定した型に合わせるように。

重要なのはここに入った瞬間のデータが保存され、出力されるということ。

これがこのノードの目的。

6:Attribute

保存されたデータはここから出る。

以上

おそらく本格的な作品を作る上では欠かせないノードになるのではないだろうか。

アトリビュート関係のノードは他にもあるので別で解説記事も作っていく。



この記事をシェア


謎の技術研究部 (謎技研)