Blender ウォッチング
「Blender 3.0」で直感的に!新しい「ジオメトリノード」を使ってみよう!
モデルデータを自動で作成・変形する方法
2021年12月17日 06:55
本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。
今回は「Blender 3.0」で変わった「ジオメトリノード」での、基本的な「オブジェクトのばらまき(ランダムに配置)」を行う方法を解説してみたいと思います。
準備
上記の通り、今回は「Blender 3.0」を使用した解説ですので、もしお持ちでない方は先にダウンロード・インストールしてください。なお「Blender 2.93LTS」との共存は可能です。
まず、Blender 3.0を起動し、デフォルトの立方体をクリック後、右クリックメニューまたは[Delete]キーで削除します。
[追加]-[メッシュ]メニューの[グリッド]コマンドで「グリッドメッシュオブジェクト」を追加します。これに凹凸を付けて地面に見立て、オブジェクトを配置します。
- 画面上部の[Modeling]タブで[Modeling]ワークスペースに移動
- [選択]メニューの[なし]コマンドで選択をクリア
- 再び[選択]メニューから[ランダム選択]コマンドをクリックして頂点をランダムに選択
[移動]ツールに切り替えて上下に動かし、凸凹にしておきます。表示が小さいので、下図のようにマウスホイールで少しズームインしておいた方がいいでしょう。
ジオメトリノードでの編集
準備ができたので、ジオメトリノードでの編集を開始しましょう。
上部のタブで[Geometry Nodes]ワークスペースに移行し、真ん中あたりの[ジオメトリノードエディター]のヘッダーの中央の[新規]をクリックします。
シェーダーノードのように、リンクでつながった[グループ入力]ノードと[グループ出力]ノードが表示されました。
配置ポイントとオブジェクトの作成
まずは、配置する場所(ポイント)とオブジェクトを作成します。
[追加]-[インスタンス]メニューの[ポイントにインスタンス作成]コマンドでノードを追加し、最初の2つのノードのリンクの間に移動すると、2つの間にリンクされます。
続けて[追加]-[メッシュプリミティブ]メニューから[円錐]ノードを追加し、今度はこのノードを先に追加した[ポイントにインスタンス作成]ノードの少し左下に配置します。
もし他のオブジェクトを使用したい場合は代わりに[追加]-[入力]メニューから[オブジェクト情報]ノードを使用してください。一番最後の図に例がありますので、そちらも参考にどうぞ。
そしてこのノードの[メッシュ]ソケットをドラッグして[ポイントにインスタンス作成]ノードの[インスタンス]ソケットにつなげます。
グリッドが消え、各頂点のあった位置に大きな円錐が現れれば成功です。
円錐を小さくする
このままでは円錐が大きすぎて、なんだかよくわからないので小さくしましょう。
[ポイントにインスタンス作成]ノードの[スケール]エリアにある[X][Y][Z]の値すべてを「0.05」ぐらいにします。
もっとランダムに
もっとランダムに、そして広く「面」上に配置したいので、別のノードを追加します。
- [追加]-[ポイント]メニューから[面にポイント配置]ノードを追加
- このノードを[グループ入力]と[ポイントにインスタンス作成]のリンクの上に移動し、間に割り込ませる(リンク白くなっているとそのリンクに割り込めます)。
これで円錐が面上に発生するようになります(とはいっても元のグリッドが消えているのでわかりづらいのですが)。
しかし重なっちゃっている円錐がありますので、ほどよく離れるよう調整します。
このノードの[ランダム]をクリックして[ポアソンディスク]に変更後、少し下の[最小距離]の値を「0.2」ぐらいにします。
グリッドも一緒に表示する
地形として使用しているグリッドが消えちゃいましたので、一緒に表示されるようにします。
まず左端の[グループ入力]ノードと、右端の[グループ出力]ノードを[Shift]キーを押しながらクリックして複数選択した後、少し上にドラッグしておきます。
[追加]-[ジオメトリ]メニューから[ジオメトリ統合]ノードを追加し、[ポイントにインスタンス作成]ノードと[グループ出力]ノードの間に割り込ませます。
[グループ入力]ノードの[ジオメトリ]ソケットをドラッグし、[ジオメトリ統合]ノードの[ジオメトリ]ソケットにつなげます。
無事両方の形状が表示されました。
円錐を面の方向に傾ける
乗っている面の方向に円錐を傾けてみましょう。
[面にポイント配置]ノードの[回転]をドラッグし、[ポイントにインスタンス作成]ノードの[回転]にリンクします。
(付録)前後左右に方向のあるオブジェクトをばらまく場合
前後左右に方向のない円錐ではこれでOKですが、前後左右に方向のあるオブジェクトに対応するよう、もう少し手を加える必要があります。
[追加]-[ユーティリティ]メニューの[オイラーをベクトルに整列]ノードを追加し、先の手順の[回転]と[回転]のリンク(青い破線)の間に割り込ませます(下図では Blender 3.0の不具合で「Align Euler to Vector」になっていますが、同じ物です)。移動時は割り込ませるリンクが白く光るので、破線の上に乗るように移動してください。
[面にポイント配置]ノードの[ノーマル]ソケットと、[オイラーをベクトルに整列](Align Euler to Vector)ノードの[ベクトル]ソケットをリンクし、[オイラーをベクトルに整列](Align Euler to Vector)ノード内の[Z]をクリックします。
下の全体図では円錐から方向のある「モンキー」([オブジェクト情報]ノードを使用)に変更しています。
下図は円錐から「モンキー」に変更してみた図です。「オブジェクト情報」ノードを使用したサンプルにもなっています。
終わりに
これで基本的な「オブジェクトをばらまく」ノードツリーができました。オブジェクトの変更やサイズのランダム化など、色々アレンジしてみてください。ではまた。