美味しい焼き鳥屋さん

初心者による技術系のメモ

【Blender3.0】GeometryNodeを学ぶ Part02

t0rry.hatenablog.com
前回の記事の続き
相変わらず自分向けのメモ
Blender3.0がリリースされたのでBlender3.0環境で色々とメモ

Blender 3.0 Beginner Geometry Nodes Tutorial

youtu.be

学べる内容

植物が成長するシーンの作成方法
GeometryNodeを扱ううえで重宝するTips・数学知識についても触れられている
また、作品を作るための葉っぱも公開されているので非常に楽に学べる

成果品

制作、ワークフローの大まかな工程

茎(ベース)

Quadratic Bezierでベースモデルを生成
茎のクネクネはSetPositionにノイズテクスチャを適用することで再現
(SetPositionのOffsetがQuadratic BezierのResolutionの各ポイントの位置情報に作用する)
Trim Curveを使用し、カーブの始点・終点の制御(Endをアウトプットすることで成長率の制御)

茎(ベベルを制御)

Set Curve RadiusにMap Range、Curve Parameterを順に接続する
※Curve Parameterはコントロールポイントを取得する。長さを取得するわけではない
Curve Parameter Node — Blender Manual

茎(メッシュ化・マテリアル付与)

Curve to MeshのProfile CurveにCurve Circleを接続し、カーブの描画について定義する
Set Materialで使用するマテリアルを指定する

葉っぱ(生成1)

先ほどまで作っていたカーブの情報に対して葉っぱの配置数のためのサンプルをリサンプリングする
茎のSer Curve RadiusにREsample Curveを接続する

葉っぱ(生成2)

Instance on Pointsを使用することでリサンプリングしたポイントに対してインスタンスを配置する
葉っぱオブジェクトを呼び出し、Instanceに接続
また、PointについてもあらかじめResample Curveにて定義しているためPointに接続

葉っぱの並び替え(回転)

先ほど、Instanceに接続していた葉っぱオブジェクトのRotationとCurve TangentをAlign Euler Vectorに接続
※Curve Tangentノードを使うことCurveに対してポイント(制御点)方向へのベクトルを出力する
Curve Tangent Node — Blender Manual
※Align Euler Vectorノードを使うことで回転情報(Rotationソケット)をオイラー回転できる
Align Euler to Vector Node — Blender Manual

葉っぱの発生率の調整

Instance on PointsのSelectionにRandom Valueを接続することでInstance on PointsのPointsからInstanceを配置するPointをランダム抽出する
(Pointsは何かしらの形でInstanceが適用されないと可視化されないハズ)

葉っぱの大きさ

葉っぱは上に行くほど大きくなる。
Curve ParameterにMath(Power)を接続。めっちゃ良くなる

葉っぱ個別の回転の調整

Rotate InstanceのInstanceに先ほどまでの情報を
RotationにIndexを接続し、Math(Multiply)している
※Indexノードを使うことで前から引き継いだインスタンス全体ではなく、インスタンスオブジェクトの個別単位で位置の設定ができる
Index Node — Blender Manual

茎+葉っぱ

Join Geometryを使って結合