Blender:遺跡の作成1(geometry nodeを用いたコケづくり)_33

Blenderで遺跡のような背景を作っていきます。

Blender:記事目次 - Mindの雑記ブログ

画像をクリックすると楽天に飛びます。

遺跡の作成

wall factoryや平面から古代遺跡っぽい外観を作る。

コケの作成

古代遺跡となるとやはりコケや蔦などが必要になってくる。そこで今回は下記の動画を参考にコケづくりを行っていく。

www.youtube.com

作成方法は元になる石のオブジェクトにgeometry nodeモディファイアを設定し、コケの元になるオブジェクトを複製していくという感じになる。そこでまずはコケの元となるオブジェクトを下記のように作成した。このオブジェクトは最終的にコケに見えれば良いのでそこまで形を気にする必要はない。

下図のノードがコケを石に生やすノードである。下の赤いカッコで囲まれた部分は面に対して上向きの法線をを持っている頂点群を表している。Group Inputというのがコケを生やすための石の情報を表している。Normalというのが石の法線情報を表している。sample nearest surfacesというノードにGroup InputとNormalが刺さっている。これは石の法線情報を作成している。それを次にcompareノードに出力している。compareノードでは二つの入力されたベクトルの内積のなす角が何度になるかによって比較している。

*その後試してみた所sample nearest surfacesは使用せずに直接compare nodeにつなげたほうが良いことがわかった。

今一方には(0,0,1)というベクトルを指定している。もう一方にはそれぞれの頂点の法線ベクトルが入力されている。そのなす角度が5度以下の頂点を出力するようになっている。下図の青い線が法線の方向を表しているが、見ればわかる通り上面のなす角度は0度であり、上面以外のなす角度は90度以上である。つまりなす角度を5度に設定すれば上面だけの頂点を設定することができる。ちなみより小さいでは0度に設定すると上面の頂点もはじかれてしまう。その後にDistribute Points on Facesで実際の頂点情報として値を出力する。

この上面の頂点情報に途中でGroup InputのValueという値を足し合わせているが、これは頂点ペイントで描いた部分の点にコケをのせるために追加している。

まずオブジェクトデータプロパティのプラスボタンを押し設定を作る。その設定をモディファイアのValueの値に設定する。この設定はgeometry nodeで先にGroup InputとAdd間を繋いでおかないと出現しない。次に頂点ペイントで白色を頂点に塗っていくと塗られた部分の頂点が追加されコケが生えてくれる。頂点ペイントは頂点にしか塗れないので細分化などで頂点数を増やすと塗りやすい。

次に下図の赤いカッコについて説明していく。Object Infoというのはコケのメッシュ情報である。それをランダムスケールして出力している。

Object infoはアウトライナーからドラックアンドドロップで追加できる。

Instance on pointsでは入力された頂点群の情報を元にその頂点の場所にコケのオブジェクトのインスタンス(仮想のメッシュみたいなもの)を複製している。

最後にjoin geometryでGroup Infoから石のメッシュの情報とInstance on pointsからコケのインスタンスの情報をもらい合体させアウトプットしている。

ジオメトリノードの実体化

実体化はモディファイアのジオメトリを適用することでメッシュ部分が実体化される。しかしコケはインスタンスなので消えてしまう。そこでコケのインスタンスの間にRealize Instancesというインスタンスをメッシュ化するノードがあるのでそれを挟み込んだ状態で適用することでコケ部分を実体化することができる。

コレクションでの複数オブジェクトの追加方法

アウトライナーからコレクションをドラックアンドドロップするとcollection infoが作成される。その下の二つの設定にチェックを入れる。これをInstance on PointsのInstanceに繋ぎその下のPick Instanceにチェックを入れる。

まとめ

遂にgeometryに手を出してしまった。

*面の情報が大事なのでSHIFT+Nで面を揃える。またCTRL+Aで位置をリセットし原点をオブジェクトの中心に持って来る。