Blender ウォッチング

「Blender 3.0」で直感的に!新しい「ジオメトリノード」を使ってみよう!

モデルデータを自動で作成・変形する方法

 本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。

 今回は「Blender 3.0」で変わった「ジオメトリノード」での、基本的な「オブジェクトのばらまき(ランダムに配置)」を行う方法を解説してみたいと思います。

今回の目標

準備

 上記の通り、今回は「Blender 3.0」を使用した解説ですので、もしお持ちでない方は先にダウンロード・インストールしてください。なお「Blender 2.93LTS」との共存は可能です。

 まず、Blender 3.0を起動し、デフォルトの立方体をクリック後、右クリックメニューまたは[Delete]キーで削除します。

立方体を削除

 [追加]-[メッシュ]メニューの[グリッド]コマンドで「グリッドメッシュオブジェクト」を追加します。これに凹凸を付けて地面に見立て、オブジェクトを配置します。

「グリッドメッシュオブジェクト」を追加
  1. 画面上部の[Modeling]タブで[Modeling]ワークスペースに移動
  2. [選択]メニューの[なし]コマンドで選択をクリア
  3. 再び[選択]メニューから[ランダム選択]コマンドをクリックして頂点をランダムに選択
[Modeling]ワークスペースに移動し、[選択]メニューの[なし]で選択をクリア後、に[選択]メニューの[ランダム選択]を実行

 [移動]ツールに切り替えて上下に動かし、凸凹にしておきます。表示が小さいので、下図のようにマウスホイールで少しズームインしておいた方がいいでしょう。

[移動]ツールで凸凹に

ジオメトリノードでの編集

 準備ができたので、ジオメトリノードでの編集を開始しましょう。

 上部のタブで[Geometry Nodes]ワークスペースに移行し、真ん中あたりの[ジオメトリノードエディター]のヘッダーの中央の[新規]をクリックします。

[ジオメトリノードエディター]のヘッダーの[新規]をクリック

 シェーダーノードのように、リンクでつながった[グループ入力]ノードと[グループ出力]ノードが表示されました。

新規ノードツリー

配置ポイントとオブジェクトの作成

 まずは、配置する場所(ポイント)とオブジェクトを作成します。

 [追加]-[インスタンス]メニューの[ポイントにインスタンス作成]コマンドでノードを追加し、最初の2つのノードのリンクの間に移動すると、2つの間にリンクされます。

2つのノードの間に割り込んだ[ポイントにインスタンス作成]ノード

 続けて[追加]-[メッシュプリミティブ]メニューから[円錐]ノードを追加し、今度はこのノードを先に追加した[ポイントにインスタンス作成]ノードの少し左下に配置します。

[円錐]ノードを追加して図の位置に配置

もし他のオブジェクトを使用したい場合は代わりに[追加]-[入力]メニューから[オブジェクト情報]ノードを使用してください。一番最後の図に例がありますので、そちらも参考にどうぞ。

 そしてこのノードの[メッシュ]ソケットをドラッグして[ポイントにインスタンス作成]ノードの[インスタンス]ソケットにつなげます。
グリッドが消え、各頂点のあった位置に大きな円錐が現れれば成功です。

グリッドの頂点のあった位置にドバーンと大きな円錐が出現

円錐を小さくする

 このままでは円錐が大きすぎて、なんだかよくわからないので小さくしましょう。

 [ポイントにインスタンス作成]ノードの[スケール]エリアにある[X][Y][Z]の値すべてを「0.05」ぐらいにします。

[ポイントにインスタンス作成]ノードの[スケール]の[X][Y][Z]の値すべてを「0.05」ぐらいに

もっとランダムに

 もっとランダムに、そして広く「面」上に配置したいので、別のノードを追加します。

  1. [追加]-[ポイント]メニューから[面にポイント配置]ノードを追加
  2. このノードを[グループ入力]と[ポイントにインスタンス作成]のリンクの上に移動し、間に割り込ませる(リンク白くなっているとそのリンクに割り込めます)。
[面にポイント配置]ノードを追加し、[グループ入力]と[ポイントにインスタンス作成]のリンクの上に移動。リンクが白くなっていれば割り込める状態

 これで円錐が面上に発生するようになります(とはいっても元のグリッドが消えているのでわかりづらいのですが)。
 しかし重なっちゃっている円錐がありますので、ほどよく離れるよう調整します。

 このノードの[ランダム]をクリックして[ポアソンディスク]に変更後、少し下の[最小距離]の値を「0.2」ぐらいにします。

[面にポイント配置]ノードを[ポアソンディスク]に変更後、[最小距離]を「0.2」に

グリッドも一緒に表示する

 地形として使用しているグリッドが消えちゃいましたので、一緒に表示されるようにします。

 まず左端の[グループ入力]ノードと、右端の[グループ出力]ノードを[Shift]キーを押しながらクリックして複数選択した後、少し上にドラッグしておきます。

左端の[グループ入力]ノードと、右端の[グループ出力]ノードを上に移動しておく

 [追加]-[ジオメトリ]メニューから[ジオメトリ統合]ノードを追加し、[ポイントにインスタンス作成]ノードと[グループ出力]ノードの間に割り込ませます。

[ジオメトリ統合]ノードを追加し、[ポイントにインスタンス作成]ノードと[グループ出力]ノードの間に移動

 [グループ入力]ノードの[ジオメトリ]ソケットをドラッグし、[ジオメトリ統合]ノードの[ジオメトリ]ソケットにつなげます。

[グループ入力]ノードの[ジオメトリ]ソケットをドラッグし、[ジオメトリ統合]ノードの[ジオメトリ]ソケットに接続

 無事両方の形状が表示されました。

円錐を面の方向に傾ける

 乗っている面の方向に円錐を傾けてみましょう。

 [面にポイント配置]ノードの[回転]をドラッグし、[ポイントにインスタンス作成]ノードの[回転]にリンクします。

[面にポイント配置]ノードの[回転]と、[ポイントにインスタンス作成]ノードの[回転]をリンク

(付録)前後左右に方向のあるオブジェクトをばらまく場合

 前後左右に方向のない円錐ではこれでOKですが、前後左右に方向のあるオブジェクトに対応するよう、もう少し手を加える必要があります。

 [追加]-[ユーティリティ]メニューの[オイラーをベクトルに整列]ノードを追加し、先の手順の[回転]と[回転]のリンク(青い破線)の間に割り込ませます(下図では Blender 3.0の不具合で「Align Euler to Vector」になっていますが、同じ物です)。移動時は割り込ませるリンクが白く光るので、破線の上に乗るように移動してください。

[オイラーをベクトルに整列](Align Euler to Vector)ノードを追加し、[ノーマル]と[回転]の青い破線の間に移動。※見やすいようノードを移動しています。

 [面にポイント配置]ノードの[ノーマル]ソケットと、[オイラーをベクトルに整列](Align Euler to Vector)ノードの[ベクトル]ソケットをリンクし、[オイラーをベクトルに整列](Align Euler to Vector)ノード内の[Z]をクリックします。

 下の全体図では円錐から方向のある「モンキー」([オブジェクト情報]ノードを使用)に変更しています。

[面にポイント配置]ノードの[ノーマル]ソケットと、[Align Euler to Vector]ノードの[ベクトル]ソケットをリンクし、[Align Euler to Vector]ノードを内の[Z]をクリック

 下図は円錐から「モンキー」に変更してみた図です。「オブジェクト情報」ノードを使用したサンプルにもなっています。

円錐からモンキーに変更してみた例

終わりに

 これで基本的な「オブジェクトをばらまく」ノードツリーができました。オブジェクトの変更やサイズのランダム化など、色々アレンジしてみてください。ではまた。