【Blender】有機的なオブジェクトを作る方法 Geometry Nodes編

本記事ではBlender標準機能のGeometry Nodesを使用して有機的なユニークな形状のオブジェクトを作成する方法を紹介します。

この記事は以下の記事の続きとなっています。

Geometry Nodesとは

Geometry Nodesは、ノードベースでオブジェクトのジオメトリを変更するBlender機能の一つです。
オブジェクトにGeometry Nodes Modifierを追加することで使用できます。
ノードと呼ばれる要素をつなげてノードツリーを作成することで、アニメーションやモデリングをすることができます。
今回はBlender3.1を使用しています(Blender3.0以前にはDual Mehs Nodeが存在しない為)。

使用例

今回はTissue Toolsの記事で紹介したDual mesh機能で作成したオブジェクトに似たボロノイ構造をノードベースで作成します。
Geometry Nodesを使用するメリットは、よりユニークな形状を作成できることや、作成した形状を別の形のオブジェクトに簡単に引き継げることが挙げられます。
それでは実際に作成してみましょう。

まず始めに3Dビューにメッシュ配置します。
このメッシュはの形状はどんな形状でも構いませんが今回はデフォルトで配置してあるCubeを使用します。

画面上部のGeometry Nodes Workspaceをクリックします。

Geometry Nodes Workspace

Geometry Nodes Workspace

ノードを追加したいオブジェクトを選択し、Newをクリックします。
ノードが表示されました。

Newをクリックします

Newをクリックします

片方のGroup Inputを削除し、Shift+[A]でMesh Primitives→Ico Sphereを追加します。

Shift+[A]でMesh Primitives→Ico Sphere

Shift+[A]でMesh Primitives→Ico Sphere

Shift+[A]で表示されるウィンドウ上部のSearchでノードを検索することもできます。

Searchでノードを検索できます

Searchでノードを検索できます

Ico SphereとGroup OutputをつなげるとCubeがIco Sphereに変化します。
Subdivisionsの値を4にします。

Subdivisionsの値を4にします

Subdivisionsの値を4にします

次にShift+[A]でGeometry→Merge by Distanceを追加します。
つながっているノードの間にノードをドラッグすると自動で間につながってくれます。

Shift+[A]でGeometry→Mergr by Distanceを追加します

Shift+[A]でGeometry→Merge by Distanceを追加します

Utilities→Random Value ノードを追加し、Data TypeをBooleanに変更します。
この値を変更することでメッシュの頂点数や辺の数を変更することができます。
ここではDecimateモディファイアのような役割です。
Random ValueのValueとMerge by DistanceのSelectionをつなぎます。

Data TypeをBooleanに変更します

Data TypeをBooleanに変更します

Mesh→Subdivide Meshを追加し、Merge by DistanceとGroup Outputの間にドラッグします。
Subdivide Meshノードは、メッシュの隙間を一部補完してくれる機能があります。

Mergr by DistanceとGroup Outputの間にドラッグします

Merge by DistanceとGroup Outputの間にドラッグします

Mesh→Triangulateを追加し、Subdivide MeshとGroup Outputの間にドラッグします。
Triangulateノードは、メッシュのすべての面を三角形に変換するできます。

Mesh→Triangulateを追加します

Mesh→Triangulateを追加します

Mesh→Dual Meshを追加し、TriangulateとGroup Outputの間にドラッグします。
Dual Meshノードは面を頂点に変換し、頂点を面に変換します。
この機能により頂点が密集している箇所に隙間ができます。

Mesh→Dual Meshを追加します

Mesh→Dual Meshを追加します

これで基本的なノードは完成です。
ここにWireframeとSubdivision Surfaceモディファイアを追加します。
モディファイアの順番が上からGeometry Nodes、Wireframe、Subdivision Surfaceになっていることを確認してください。

上からGeometry Nodes、Wireframe、Subdivision Surfaceの順番

上からGeometry Nodes、Wireframe、Subdivision Surfaceの順番

Subdivision Surfaceの値は使用しているPCの性能にもよりますが、2~3程度が適切です。

モディファイアを追加すると網状の球体ができます。

数値を変えて形状を変化させる

ここからGeometry Nodesの数値を変えて形状を変更していきます。
数値を変更しているときは動作が重くなるのでSubdivision Surfaceモディファイアは非表示にしておくことを推奨します。

Subdivision Surfaceモディファイアは非表示にします

Subdivision Surfaceモディファイアは非表示にします

試しにMerge by Distanceの値を0.7、Random Valueの値を0.7に変えてみましょう。

ランダムな有機的な構造になりました。
基本的にはこの二つのノードの数値を変更することで形状を変化させることができます。

Mergr by Distance、Random Valueの値を0.7

Merge by Distance、Random Valueの値を0.7


Subdivision Surfaceは非表示にしておきます

Subdivision Surfaceは非表示にしておきます

またRandom ValueノードのSeed値を変更することでオブジェクトのランダムネスを変化させることができます。

Seed値を変更します

Seed値を変更します

オブジェクトを近くで見ると、ところどころ空洞になっている箇所がありますが、これはWireframeモディファイアのBoundaryにチェックを入れることで埋められます。

所々空洞になっています

ところどころ空洞になっています


WireframeモディファイアのBoundaryにチェックをいれます

WireframeモディファイアのBoundaryにチェックを入れます

まだオブジェクトの表面がスムーズでないのでMesh→Set Shade Smoothを追加してDual MeshとGroup Outputの間にドラッグします。
表面がきれいになりました。

Mesh→Set Shade Smoothを追加します

Mesh→Set Shade Smoothを追加します

次にSubdivide Meshノードを複製してみましょう。
Subdivide Meshを選択し、Shift+[D]でノードを複製できます。

Shift+[D]でノードを複製できます

Shift+[D]でノードを複製できます

複製したノードをSet Shade SmoothノードとGroup Outputの間にドラッグします。
オブジェクトの隙間が細かくなりました。

ノードを挟む箇所によって効果が変わります

ノードを挟む箇所によって効果が変わります

既存のSubdivide Meshの値を変更することでも同じような変化が起こりますが、オブジェクト全体の隙間が補完されてしまうのでお好みで使い分けてください。

Subdivide Meshの値を変えることでもメッシュが細かくなります

Subdivide Meshの値を変えることでもメッシュが細かくなります

他のメッシュに適用させる

このノードツリーを別のPrimitive Mesh Nodeにつなぐことでまた違った形状を作成することもできます。

Mesh Primitives→Coneを追加し、Sphereノードと入れ替えます。

他のPrimitive Mesh Nodeにも応用できます

他のPrimitive Mesh Nodeにも応用できます

下の画像のようにモディファイアとノードの数値を変えてつなぐと、コーンを基礎とした抽象的な形状が出来上がります。

抽象的な形状ができました

抽象的な形状ができました

他にもノードの順番を入れ替えたり組み合わせることで抽象的なオブジェクトだけではなくパラメトリックデザイン風のオブジェクトを作成することも可能です。

1

1


2

2


3

3


4

4

エクスポートの方法

ジオメトリノードの情報を後から編集できるように、Layoutウィンドウに戻りShift+[D]でオブジェクトを複製します。

Shift+[D]でオブジェクトを複製します

Shift+[D]でオブジェクトを複製します

オブジェクトを右クリックしてConvert To→Meshを選択するとジオメトリノードとモディファイアが元のメッシュに適用されます。

Convert To→Meshを選択します

Convert To→Meshを選択します

適用できたらオブジェクトを選択してFile→Export→FBXを選択します。

File→Export→FBXを選択します

File→Export→FBXを選択します

画像の赤く囲ってある箇所のように選択したらExport FBXを選択します。
これでエクスポート完了です。

Export FBXを選択します

Export FBXを選択します

STYLYにアップロードする方法

STYLYアカウントを作成する

アカウント作成方法

STYLYにアップロードする方法

UnityからSTYLYにアップロードする方法

 

3Dモデルがオブジェクトとして配置されると下記のように表示されます。
これでSTYLYへのアップロードは完了です。お疲れ様でした。
STYLYのシーンです

STYLYのシーンです