忘備録 レシピ

草むらの作成
(ジオメトリーノード) 2024/10/26

この内容は
書籍:Blenderジオメトリーノードではじめるプロシージャルモデリング
を参考に、少しアレンジを加えたものです。

この記事は、ジオメトリーノード操作部分がメインやから、オブジェクト作成部分の説明は結構適当。
オブジェクトやマテリアルの操作に慣れている方が対象。

目次

オブジェクトの準備

地面の作成

Shift+A → メッシュ → 平面

平面のサイズは使いたいサイズに変更してください。
特にこだわりがなければデフォルトのままでOKです。

マテリアル設定を行います。
ビューポートシェーディングをマテリアルプレビューに変更。

マテリアルプロパティから、マテリアルを追加。
地面ぽい色にします。

地面オブジェクトは一旦非表示にします。

草の作成

サイズや本数なんかの数書いてるけど、目安として書いただけ。
自分の好きな数で作って問題ないんで、いくつでもOK

Shift+A → メッシュ → 平面サイズを0.1くらいにします。

編集モードに入り、Aで全選択
RX→90で回転
SXで全体を細くします。
上の頂点2つを選択して、SXで更に細くします。

Ctrl+Rでループカットを4本追加。
Oでプロポーショナル編集をONにして(スムーズ編集)、上2つの頂点を選択し、Rで回転。
なんとなく草っぽい形にします。

下側の辺が、原点の高さになるようにGZで移動。
更にそれぞれの頂点を動かして、形を整えます。

オブジェクトモードに戻り、
モディファイアープロパティからソリッド化を追加。
幅0.01オフセット-1.0000、ふちフィルをチェック。

ソリッド化を適用します。

次に、Ctrl+1サブディビジョンサーフェスを追加。

編集モードに入ります。
上が平たくなっていて不細工なので、同じ高さの頂点4つを選択して、S→Yで縮めて同じ太さになるように調整します。
逆に下のほうは、X軸方向に長くなっているので、SYで広げて調整します。

下側が丸くなりすぎているので、ループカットを1本追加。
追加したループカットの辺が原点と同じくらいの高さになるようにGZで高さを調整。
真下(Ctrl+7(Numキー))から見た時に、原点がオブジェクトの真ん中になるように位置を調整。

オブジェクトモードに戻り、スムーズシェードをかけます。
地面同様、マテリアル設定を行います。

草っぽい見た目にできればOKです。

地面と草を表示

非表示にしていた地面を表示します。
草は地面と重ならない位置に移動させておきます。

ジオメトリーノード設定

トップバーでジオメトリーノードエディターに移ります。
地面オブジェクトを選択し、新規をクリックします。

ジオメトリーノードが追加されます。

Shift+A → ポイント → 面にポイント配置を選択。

↓このような見た目になります。

地面が消えて、草とは関係のない立方体が現れてしまいました。

面にポイント配置ノードが何をするためのノードかというと、
元になっているオブジェクト(この場合は地面オブジェクト)に対して、ポイントになるオブジェクトを配置するものになります。

草を地面に配置するために必要となるノードです。
現在のよくわからないオブジェクトを草に変更するためには、他のノードを追加していく必要があります。

とりあえず、まずは地面を表示させるためのノードを追加します。

地面オブジェクトを表示させる

面にポイント配置グループ出力の間で、
Shift+A → ジオメトリ → ジオメトリ統合を選択します。

面にポイント配置ジオメトリ統合グループ出力が自動で繋がります。

グループ入力のジオメトリとジオメトリ統合のジオメトリを繋ぎます。

地面が表示されました。

ポイント配置を草オブジェクトに

面にポイント配置ジオメトリ統合の間で、
Shift+A → インスタンス → ポイントにインスタンス作成を選択。

ポイントにインスタンス作成ノードが繋がります。

次に、面にポイント配置ノードの下、ポイントにインスタンス作成ノードの左側の空いているところで、
Shift+A → 入力 → シーン → オブジェクト情報 を選択。

オブジェクト情報のジオメトリとポイントにインスタンス作成のインスタンスを繋ぎます。

スポイトのある入力欄をクリックすると、オブジェクト名が表示されるのでを選択します。

これで地面から草を生やすことができました。

草の数が少ないので数を増やします。
面にポイント配置密度を10.000から100.000に変更します。

草の数が増えました。

あまりにも向きが均一に揃いすぎているので、ランダムな回転を加えます。

オブジェクト情報ノードの下の空いているところで、
Shift+A → ユーティリティ → ランダム値を選択します。

ランダム値ノードが追加されます。

Floatになっているところをベクトルに変更します。

ランダム値の値とポイントにインスタンス作成の回転を繋ぎます。

ランダムな回転がかかりましたが、角度がおかしいので調整します。
最小の値は0のままでOKなので、最大の値だけ変更します。

上から、X・Y・Zの値となりますが、度数の表記にはなっていません
ラジアン(弧度法)で表記されています。
いちいち計算するのは面倒なので、変換サイトを利用してください。
下記ボタンから変換サイトに飛べるようにリンクを貼っておきます。

今回はX・Yの回転を15°、Zを360°にしたいと思いますので、
計算結果、XとYを0.261、Zを6.283で入力します。

傾きが良い感じになりました。

グループ入力を利用して
モディファイアープロパティで値を変更

ここまでで “草むらを作る” という作業工程は完了になります。
ここからは、後々、草むらの見た目を変更させたい場合に便利な仕組みを作る行程になります。

モディファイアープロパティのジオメトリーノード項目で、密度、ランダム値の回転の数字を変更できるようにします。

ジオメトリーノードエディターでNキーを押し、サイドバーを表示します。

グループタグになっていることを確認し、
グループソケットの項目にある+ボタンをクリックします。
ドロップダウンメニューから入力を選択します。

グループソケットソケットという項目が増えました。
同時にグループ入力ノードにもソケットという項目が増えました。
またモディファイアープロパティのジオメトリーノードにもソケットという項目が増えました。

面にポイント配置ノードの密度の数値を触りたいので、ソケットと密度を繋ぎます。

ビューポートでは草が消えてしまいますが気にしないでください。
このあと設定を行えば表示されるようになります。

グループソケットの設定を触っていきます。

  • タイプをFloat
  • 詳細に分かりやすい名称
    空欄でも構いませんが、ソケットが増えすぎると分かりづらくなるので名称をつけておくと分かりやすくなります。
    自分は「草 密度」にしました。
  • 単一値にチェック
    ここにチェックを入れるとモディファイアーの旗のようなアイコンが消えます。
    誤って押さないようにするためにチェックをしておきます。

これでモディファイアープロパティーで数値を入力できる準備が整いました。
ジオメトリーノードのソケットに、密度で設定していた100という数値を入力してみてください。

草の表示が復活しました。

草の回転角度も、モディファイアープロパティーから変更できるようにします。

密度のソケットを追加したとき同様、再度、グループソケット+から、入力をクリックして、ソケットを追加します。

グループ入力ノードのソケット
ランダム値ノードの最大
繋ぎます

密度のときと違って、
タイプベクトルにします。

モディファイアープロパティーの入力欄が3つになりました。

この3つの入力欄は、ランダム値ノードの最大を設定したときと同じ数値の
「0.261」「0.261」「6.283」
を入力します。

これでモディファイアープロパティーで、密度と回転の数値が触れるようになりました。

こうこく

目次