【Blender】Geometry Nodesで枝状の構造を表現する

概要

本記事ではGeometry Nodesを使用してオブジェクトを血管のような状態に変化させる方法を紹介します。

完成図

完成図

今回メインとなるノードはShortest Edge Paths Nodeです。

Shortest Edge Paths node

Shortest Edge Paths node

このノードはある頂点から最短距離にある辺を選択することができます。

Blenderのバージョンは3.3LTSを使用しています。

実践

辺をカーブに変換する

Blenderを起動し、画面上部のGeometry Nodesウィンドウに移動します。

デフォルトで配置してあるCubeを削除し、Sphereを追加します。Modifier PropertiesからSubdivision Surfaceを追加し数値を6に変更します。

Modifier Properties→Subdivision Surface→6

Modifier Properties→Subdivision Surface→6

変更したらモディファイアを選択し、[Ctrl+A]キーで適応します。

Ctrl+[A]キーでモディファイアを適応

[Ctrl+A]キーでモディファイアを適応

次にオブジェクトの終了頂点を設定します。

Object Data Propertiesに移動し、編集モードに入ります。

編集モード

編集モード

編集モードで適当な頂点を一つ選択し、Vertex GroupsのAdd Vertex Groupをクリックして頂点グループを追加します。

追加したらAssignをクリックしてオブジェクトモードに戻ります。

Vertes Groups→Add Vertex Group→Assign

Vertes Groups→Add Vertex Group→Assign

CubeにGeometryNodeを追加します。

GeometyNodeを追加

GeometryNodeを追加

始めにEdge Paths to Curvesノードを追加します。

ノードは[Shift+A]キーで追加することができます。

Edge Paths to Curves ノードを追加

Edge Paths to Curves ノードを追加

次にEdge Vertices、Shortest Edge Paths、Distance(Vector Math)ノードを追加し、下記の画像のようにつなぎます。

Edge Vertices、Shortest Edge Paths、Distance(Vector Math)ノードを追加

Edge Vertices、Shortest Edge Paths、Distance(Vector Math)ノードを追加

DistanceノードはVector Mathノードを追加した後にモードを選択することで変更することができます。

Vector Math→Distance

Vector Math→Distance

Index、Random Value、Equalノードを追加し、下記の画像のようにつなぎます。

Index、Random Value、Equalノードを追加

Index、Random Value、Equalノードを追加

Random Valueノードは追加した後にDate TypeをBooleanに変更。
EqualノードはCompareノードを追加した後にモードを選択することで変更できます。

Compare→Equal

Compare→Equal

そうするとCubeの辺の最短パスが可視化されます。

辺のみが見えるようになる

辺のみが見えるようになる

Voronoi Texture、Set Position、Merge by Distanceノードを追加し、下記の画像のようにつなぎます。

Merge by Distanceの数値を0.05に設定してください。

Voronoi Texture、Set Position、Merge by Distanceノードを追加

Voronoi Texture、Set Position、Merge by Distanceノードを追加

そうすると辺が血管の様になってきました。

見た目が変化した

見た目が変化した

これで基本的な形は完成したのでここからは厚みを付けてメッシュに変換していきます。

カーブをメッシュに変換する

Set Spline Type、Trim Curve、Resample Curveノードを追加し、下記の画像のようにつなぎます。

Set Spline Type、Trim Curve、Resample Curveノードを追加

Set Spline Type、Trim Curve、Resample Curveノードを追加

Set Spline TypeをNURBSに変更し、Resample Curveの数値を50にします。

そうするとカーブがより滑らかに枝分かれします。

カーブが滑らかになった

カーブが滑らかになった

Set Curve Radius、CurveCircle、Curve to Meshノードを追加します。

Curve to MeshノードのFill Capsをチェックオンする。
CurveCircleノードのResolution を2、Radiusを0.005に変更してからノードを下記の画像のようにつなぎます。

Set Curve Radius、CurveCircle、Curve to Meshノードを追加

Set Curve Radius、CurveCircle、Curve to Meshノードを追加

このままではメッシュが細すぎるので厚みを付けます。

細すぎるので厚みをつける

細すぎるので厚みをつける

Spline Parameter、Float Curveノードを追加します。

Spline ParameterのFactor、Float CurveのValueをつなぎ、Float CurveのValueをSet Curve RadiusのRadiusにつなぎます。

Spline Parameter、Float Curveノードを追加

Spline Parameter、Float Curveノードを追加

そうすると視認できるくらいに太くなりました。

メッシュが厚くなった

メッシュが厚くなった

Float Curveの曲線を編集すると太さを細かく変化させることができます。

厚みが微妙に変化した

厚みが微妙に変化した

大幅に太さを変えたい場合はCurveCircleのRadiusの数値を変更してみてください。

CurveCircleのRadiusの数値を変更

CurveCircleのRadiusの数値を変更

最終的なノードツリーはこのようになっています。

Node Tree 1

Node Tree 1


Node Tree 2

Node Tree 2

エクスポート方法

Modifier PropertiesからGeometyNodesを選択し、[Ctrl+A]キーで適応することでメッシュに変換することができます。

Ctrl+[A]キーでモディファイアを適応

[Ctrl+A]キーでモディファイアを適応

変換したCubeを選択し、左上のFile→Export→FBX(.fbx)をクリックします。

File→Export→FBX(.fbx)

File→Export→FBX(.fbx)

エクスポート設定は下記の画像で四角く囲ってある部分を変更すれば大丈夫です。

エクスポート設定

エクスポート設定

保存する場所を指定してExport FBXをクリックして保存します。

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

STYLYアカウントを作成する

アカウント作成方法

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

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

 

3Dモデルがオブジェクトとして配置されると下記のように表示されます。

STYLY Studioで配置

STYLY Studioで配置

これでSTYLYへのアップロードは完了です。

お疲れ様でした。

STYLYに関する質問、バグ報告、改善してほしい要望はSTYLY FORUMまで
https://jp.forum.styly.cc/support/discussions

Certified (QA) by Shota Shawn Yoshizawa
Edited by SASAnishiki