Blender ウォッチング

「Blender 3.1」はジオメトリノードもパワーアップ! 「メッシュ押し出し」などが追加

新たに加わった注目ノードの一部を解説

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

 3月9日、「Blender 3.1」が公式リリースされました。このリリースでは基本的にv3.0に間に合わなかった機能の追加や、安定化が主であるため、v3.0のような大きな機能追加はありません。その代わり、待望の機能の復活や細かな部分の調整、パフォーマンスの改善などで使い勝手が向上しています。

 今回は「ジオメトリノードの新ノード」についてご紹介します。

「ジオメトリノード」による作例

「サンプルファイル」のblendファイルをダウンロード(※)


※ダウンロード数が少ないため、Webブラウザーによってダウンロードがブロックされる場合があります。その場合はリンクの右クリックメニューからファイルの保存を行い、警告が表示されても[継続]などの項目を選択して保存してください。

 「Blender 3.1.0」以降で使用してください。

ジオメトリノードとは

 「ジオメトリノード」は、ノードでモデリングする、「Blender」の機能の一つです。

 本来は地形にオブジェクトを自動的に配置するのが目的で開発されましたが、今回v3.1で追加された新ノードにより、「手続き的モデリングツール」としての面がより強く出てきたように思えます。

 今回はv3.1で追加された、そんな新ノードの一部をご紹介します。

 ジオメトリノードについてもう少し知りたい方は過去の記事を参照してみてください。

「メッシュ押し出し」ノード

 モデリングツールの中でもよく使うことの多い「押し出し」ツールが、ジオメトリノードのノードとして追加されました。

 デフォルトではすべての面を押し出すため、最初の押し出しには[選択]ソケットで指定するか、元の形状を平面にするなどの工夫が必要なものの、このノードで押し出した部分はノードから[上]と[サイド]の選択が出力されますので、さらに押し出す場合の選択が楽になります。

 残念ながらv3.1の時点では押し出した部分の加工方法は限られるのですが、アイデア次第で色々なことができそうです。

「メッシュ押し出し」ノードによる家っぽい何か(画像のクリックで「ノードツリー」全体図)

 下図は「ノードツリー」の最初の部分です。[グループ入力]ノードから「ジオメトリ」情報を貰い、画面左側で切れている部分で最初に押し出す面を選択しています。

 そして処理された「メッシュ」データを[要素スケール]ノードに渡し、同時に[メッシュ押し出し]ノードから出力された「上」と「サイド」の選択情報を[要素スケール]ノードに渡し、スケーリングする面を指定しています。

ノードツリーの最初の部分(画像のクリックで「ノードツリー」の全体図)

 残りもほぼこの[メッシュ押し出し]ノードと[要素スケール]ノードの繰り返しで出来ています。全体表示を見た方は長さにウンザリしたかもしれませんが、要は人がモデリング中にする操作をそのまま並べただけです。

「フィールド蓄積」ノード

 「フィールド」(形状内のポイントや面の「位置」のように、各要素毎で値が変化する関数)を積算し、総和や、その時点での合計を出力します。

 例えば下図のようにランダムな厚さや方向の本を積み重ねたい時、要素毎に出力されたランダム値を積算することで、その本の配置する「高さ」を求め、積んでいくことができます。

「フィールド蓄積」ノードによる、本の積み重ね(画像クリックで全体図)

 もう少し詳しく説明すると、上の方ある[メッシュライン]ノード(と、その左側の頂点数を指定する[整数]ノード)で、インスタンス(複製)を作る回数を指定し、その回数だけ[ランダム値]ノードから乱数が生成され、それを積み上げる本の「Z 軸のスケール」の指定と、[フィールド蓄積]ノードで積算をする「高さ」にしています。これも部分で分ければわかりやすいと思います。

 ちなみに出力の[最初から]と[0から]の違いは、最初の要素の値から始めるか、完全に値をゼロから始めるか、です。

「辺の近傍」ノード

 近くの辺と共有する面の数を入力するノードです。例えば、それが「1つ」であれば、その辺が形状の端にあることがわかります。これを利用し、下図のように、端に柱を配置し、内側に窪みを付けるなどの処理ができます。

 なお、少々わかりづらい名前であるため、v3.2にて別の名前に変更される可能性があります。

「辺の近傍」ノードによる、外周に柱、内部に池の形状を自動作成した例(画像クリックで全体図)

 このノードツリーには、今回追加された[メッシュ押し出し]ノードも使用しています。共有する面の数により、柱を立てるか、押し出しで水槽を作るかを決めています。

「シーンタイム」ノード

 シーンの「秒数」や「フレーム」を入力するノードです。これを使うとジオメトリノードによるアニメーションが作成できます。例えば、下図のような時計の動きが作成できます。

 秒数は小数で出力されるため、用途に応じて[数式](下図では「切り捨て」)ノードで小数部を切り捨てする必要があります。

[シーンタイム]ノードによる秒針(画像クリックで全体図)

 余談ですが[オイラー回転]ノードの[角度]ソケットの入力が「度」ではなく「ラジアン」であることに注意が必要です。将来的に修正された場合はこのまま使用はしないでください。

終わりに

 後半が少し駆け足になってしまいましたが、可能性の広がったジオメトリノードでぜひ遊んでみてください。

 次回はインターフェイス関連をご紹介する予定です。ではまた。