2022-10-03(更新)

【Geometry Nodes】ウェイトペイントや頂点グループをジオメトリノードで使う方法【Blender】

ジオメトリノードでは入力値として頂点グループやウェイトペイントを使うことができる。できるだけわかりやすく解説。

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

2022/10/03 修正&追記:頂点グループをリネームする手順が記載されていなかったため、この記事に従ってもうまくできない状態でした。追記して修正しました。申し訳ありません。

何ができる?

今回はジオメトリノードにてウェイトペイントや頂点グループを入力として使う。

まずはウェイトペイントを使うと次のようなことができる。

ウェイトペイントをつける

このウェイトをジオメトリノード内でインプットとして利用すると

ウェイトを高さで利用

上のようにウェイトの強さを高さとして利用するといったことができる。

ウェイトペイントを使う方法

ここからは実際の使い方。

まずはウェイトペイントを塗る。

ウェイトモード

ウェイトペイントモードで塗ることで各頂点に対して「重み」をつけることができる。

主にボーンを曲げたときにどれぐらいメッシュに影響するかを設定するときに使うことが多いと思う。

今回はそれをジオメトリノードで使う。

ウェイトの解説

追加された頂点グループに名前をつける

ウェイトペイントを行うと自動的に頂点グループが作成されており、ここにウェイトの情報が保存される。

頂点グループが追加されている

わかりやすい名前を付けておく。今回はここをWeightPaintに変更した。

WeigthPaintに変更した例

Group Inputの設定

次に入力用の設定を行う。

ジオメトリノード内で適当な場所でNキーを押すと、右からシェルフが出てくる。

シェルフ

次の操作で項目を追加する

設定方法

  1. ボタンを押す
  2. Name先程の頂点グループと同じ名前を付けてTypeFloatになっているのを確認
  3. ここに項目が増えていればOK

厳密にはこのNameは頂点グループの名前と同じでなくても良い(モディファイア側の名前で一致させればよい)が、混乱を招くため同じ名前にしておく事を推奨。

インプットソケットが増えている

ここまでできればGroup Inputに項目が増えている。

モディファイア側の設定

上の設定だけではまだ利用できない。

モディファイアの画面にいくと

モディファイアに設定が追加されている

この位置に新しく入力欄が追加されている。

十字のマークをクリックした後、右側に先程のName同じ値を入力。つまり今回はWeightPaint

十字ボタン

この十字ボタンを押さないと単なる固定値の入力になるだけ。

この設定をすることで頂点内に設定されているアトリビュートを名前で呼び出せるという機能。

ノード例

最後にノードを組んで完成

ノード例

左上のSet Positionは原点が円柱の中央になっているのを補正しているだけ。

これがないと円柱は下側にも伸びてしまう。

これで完成。

あとは好きなようにノードを組める。

頂点グループを使う

殆ど同じ操作で頂点グループを入力値として使うことができる。

頂点グループ

まずはオブジェクトデータプロパティのパネルを使って上のように新しく頂点グループを設定した。

あとは全く同じ手順で

Inputノードにグループを設定

Inputノードにグループ用の入力を追加して

ジオメトリノード側の設定

ジオメトリノードのモディファイアにも入力を設定する。

あとはGroup Inputを繋ぎ変えると

繋ぎ変え

次のように変化する。

高さが変化

頂点グループは0か1

上では入力をFloatにしたが、頂点グループを使ってた場合の入力値は0か1だと思われる。

したがって上のように円柱の高さは一定になっている。

つまり入力の型(Type)を設定するときにIntegerBooleanにしても正常動作する。

Group Inputを使わない方法

2022/10/03追記

上の例ではGroup Inputに項目を追加する設定が面倒に感じるケースがあると思う。

Group Inputの外観

この設定を省略する方法を記す。

Named Attributeを使う

まずGroup Inputを使わずにNamed Attributeノードを出す。

Named Attribute外観

ここにウェイト情報が入っている頂点グループの名前を直接指定する。

あとはAttributeソケットからウェイト情報が取得できる。

この方法だとGroup Inputに項目を追加する設定する必要がない。

この方法のデメリット

この方法だとジオメトリノードを公開したり再利用する場合にデメリットがある。

複数の頂点グループを切り替えて使いたい場合ユーザーが直接Named Attributeを書き換える必要が生じる。

ジオメトリノードを全く触ったことがないユーザーを混乱させるので、場合によって使い分けたい。

クリースやマテリアルインデックスなども使用可能

全く同じ方法でクリース値やマテリアルインデックスを入力値として扱うことができる。

さいごに

これらの入力を使うことでユーザー側での値設定をより自由にすることができる。

例えば地面に草を生やすジオメトリノード等を作る時はウェイトペイントを使うのがベストなのではないだろうか。

最後にウェイトの値を色にも反映した例を掲載しておく。

色を追加

ノード



この記事をシェア


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