使用ソフトウェア | バージョン | 備考 |
---|---|---|
Blender | 3.2 |
2022/10/03 修正&追記:頂点グループをリネームする手順が記載されていなかったため、この記事に従ってもうまくできない状態でした。追記して修正しました。申し訳ありません。
今回はジオメトリノードにてウェイトペイントや頂点グループを入力として使う。
まずはウェイトペイントを使うと次のようなことができる。
このウェイトをジオメトリノード内でインプットとして利用すると
上のようにウェイトの強さを高さとして利用するといったことができる。
ここからは実際の使い方。
まずはウェイトペイントを塗る。
ウェイトペイントモードで塗ることで各頂点に対して「重み」をつけることができる。
主にボーンを曲げたときにどれぐらいメッシュに影響するかを設定するときに使うことが多いと思う。
今回はそれをジオメトリノードで使う。
ウェイトペイントを行うと自動的に頂点グループが作成されており、ここにウェイトの情報が保存される。
わかりやすい名前を付けておく。今回はここをWeightPaint
に変更した。
次に入力用の設定を行う。
ジオメトリノード内で適当な場所でNキー
を押すと、右からシェルフが出てくる。
次の操作で項目を追加する
+
ボタンを押すName
に先程の頂点グループと同じ名前を付けてType
がFloat
になっているのを確認厳密にはこのName
は頂点グループの名前と同じでなくても良い(モディファイア側の名前で一致させればよい)が、混乱を招くため同じ名前にしておく事を推奨。
ここまでできればGroup Input
に項目が増えている。
上の設定だけではまだ利用できない。
モディファイアの画面にいくと
この位置に新しく入力欄が追加されている。
十字のマークをクリックした後、右側に先程のName
と同じ値を入力。つまり今回はWeightPaint
この十字ボタンを押さないと単なる固定値の入力になるだけ。
この設定をすることで頂点内に設定されているアトリビュートを名前で呼び出せるという機能。
最後にノードを組んで完成
左上のSet Position
は原点が円柱の中央になっているのを補正しているだけ。
これがないと円柱は下側にも伸びてしまう。
これで完成。
あとは好きなようにノードを組める。
殆ど同じ操作で頂点グループを入力値として使うことができる。
まずはオブジェクトデータプロパティのパネルを使って上のように新しく頂点グループを設定した。
あとは全く同じ手順で
Input
ノードにグループ用の入力を追加して
ジオメトリノードのモディファイアにも入力を設定する。
あとはGroup Input
を繋ぎ変えると
次のように変化する。
上では入力をFloat
にしたが、頂点グループを使ってた場合の入力値は0か1だと思われる。
したがって上のように円柱の高さは一定になっている。
つまり入力の型(Type
)を設定するときにInteger
かBoolean
にしても正常動作する。
2022/10/03追記
上の例ではGroup Input
に項目を追加する設定が面倒に感じるケースがあると思う。
この設定を省略する方法を記す。
まずGroup Input
を使わずにNamed Attribute
ノードを出す。
ここにウェイト情報が入っている頂点グループの名前を直接指定する。
あとはAttribute
ソケットからウェイト情報が取得できる。
この方法だとGroup Input
に項目を追加する設定する必要がない。
この方法だとジオメトリノードを公開したり再利用する場合にデメリットがある。
複数の頂点グループを切り替えて使いたい場合ユーザーが直接Named Attributeを書き換える必要が生じる。
ジオメトリノードを全く触ったことがないユーザーを混乱させるので、場合によって使い分けたい。
全く同じ方法でクリース値やマテリアルインデックスを入力値として扱うことができる。
これらの入力を使うことでユーザー側での値設定をより自由にすることができる。
例えば地面に草を生やすジオメトリノード等を作る時はウェイトペイントを使うのがベストなのではないだろうか。
最後にウェイトの値を色にも反映した例を掲載しておく。