はじめに
KJ Procedural Tree Designerは、BlenderのNメニューから、樹木の幹・枝・根・樹皮をパラメータで生成・調整するAdd-onです。
このAdd-onでは、樹木の形を固定メッシュとして作るのではなく、幹の高さ、太さ、枝分かれ、根の広がり、樹皮の凹凸などを設定値から生成します。
現在の開発方針では、v0.2.5を基準に戻し、Geometry NodesのCurve to MeshノードのScale値を太さ制御の目的変数として扱う方向が重要です。v0.2.5のソースでは、Add-on情報としてBlender 5.1対象、バージョン0.2.5、Nパネル配置が定義されています。
樹木の幹・枝・根のデザイナー,葉っぱのデザイナーをAdd-onで作ったので,図のような樹木をデザインしてみた.

このAdd-onでできること
KJ Procedural Tree Designerでは、以下のような樹木デザインを作れます。
・太い幹を持つ大木
・枝分かれした枯れ木風の樹形
・地面に広がる根
・表皮の凹凸や縦筋を持つ樹皮
・枝数、根数、分岐階層を調整した樹形
・Formulaモデルを残しながらGeometry Nodesで編集する樹木
主な目的は、城、森、盆栽、ファンタジー背景、ゲーム背景、アニメ背景などで使える樹木パーツを、手作業ではなくパラメータで効率よく作ることです。
基本構造
このAdd-onは大きく分けて、次の2つの仕組みで動きます。
1. Formula Reference
Pythonの数式モデルで幹・枝・根の中心線を生成する基準モデル
2. Live GN Designer
Geometry Nodesでカーブを太さ付きメッシュへ変換し、樹皮などを編集するモデル
Formula Referenceは、樹木の原形モデルです。
Live GN Designerは、その原形をもとに、Geometry Nodesで編集しやすくした表示・編集用モデルです。
Geometry Nodes Modifierは、ノードグループを使ってオブジェクトの形状を生成・変形するBlender標準機能です。
インストール方法
- Blenderを起動します。
- メニューから以下を開きます。
Edit
→ Preferences
→ Add-ons
Install from Diskを押します。kj_procedural_tree_designer_XXXX.pyまたはZIP版を選択します。- Add-on一覧で
KJ Procedural Tree Designerを有効化します。 - 3D Viewportで
Nキーを押します。 - 右側のNメニューに
KJ Treeタブが表示されます。
旧版を入れている場合は、先に旧版を無効化・削除してからBlenderを再起動してください。
基本的な使い方
1. 新しい樹木を作成する
NメニューのKJ Treeタブを開き、次のボタンを押します。
New Formula + Live GN Tree
これにより、樹木のControllerと、幹・枝・根の生成データが作成されます。
2. 幹を調整する
Trunkセクションで、幹の基本形状を調整します。
Tree Height
Base Radius
Top Radius
Trunk Segments
Taper
Lean Direction
Lean Amount
Main Bend
Irregularity
Trunk Twist
Base Flare Noise
各項目の意味は次の通りです。
| 項目 | 内容 |
|---|---|
| Tree Height | 樹木全体の高さ |
| Base Radius | 幹の根元の太さ |
| Top Radius | 幹の先端側の太さ |
| Trunk Segments | 幹の分割数 |
| Taper | 根元から先端への細くなり方 |
| Lean Direction | 幹が傾く方向 |
| Lean Amount | 幹の傾き量 |
| Main Bend | 幹全体の曲がり |
| Irregularity | 幹の不規則な揺らぎ |
| Trunk Twist | 幹のねじれ |
| Base Flare Noise | 根元の膨らみの不規則性 |
重要: 現在の開発では、Base Radiusなどの太さ制御は、Geometry Nodes内のCurve to MeshノードのScaleに直結させる方針が最も安定すると考えています。Set Curve Radiusも曲線の半径を制御するノードですが、提示されたノード構成ではCurve to Mesh側のScaleが実際の直径に強く影響しているため、ここを操作パネルの目的変数にする方針です。Set Curve Radiusはカーブの半径を制御し、Curve to Meshのプロファイルサイズに関係するノードです。
3. 枝を調整する
Primary Branchesでは、主枝の本数や発生位置を調整します。
Enable Branches
Primary Branch Count
Start Height
End Height
Branch Length
Length Random
Radius Ratio
Upward Bias
Horizontal Spread
Rotation Random
Droop
Segments per Branch
| 項目 | 内容 |
|---|---|
| Enable Branches | 枝を生成するか |
| Primary Branch Count | 主枝の本数 |
| Start Height | 枝が出始める高さ |
| End Height | 枝が出る上限高さ |
| Branch Length | 枝の長さ |
| Length Random | 枝長さのランダム性 |
| Radius Ratio | 枝の太さ比率 |
| Upward Bias | 枝の上向き傾向 |
| Horizontal Spread | 横方向への広がり |
| Rotation Random | 周方向配置のランダム性 |
| Droop | 枝先の垂れ |
| Segments per Branch | 枝1本あたりの分割数 |
4. 子枝を調整する
Child Branchesでは、枝からさらに枝分かれする構造を設定します。
Branch Levels
Children per Branch
Child Length Ratio
Child Radius Ratio
Split Angle
Level Randomness
Tip Curl
Maximum Branches
| 項目 | 内容 |
|---|---|
| Branch Levels | 枝分かれの階層数 |
| Children per Branch | 1本の枝から出る子枝数 |
| Child Length Ratio | 子枝の長さ減衰 |
| Child Radius Ratio | 子枝の太さ減衰 |
| Split Angle | 分岐角度 |
| Level Randomness | 階層ごとのランダム性 |
| Tip Curl | 枝先のカール |
| Maximum Branches | 枝の最大生成数 |
枝が多すぎると処理が重くなるため、Branch LevelsとMaximum Branchesは小さめから調整してください。
5. 根を調整する
Rootsでは、地面に広がる根を設定します。
Enable Roots
Primary Root Count
Root Length
Root Radius Ratio
Radial Spread
Downward Bias
Surface Follow
Root Irregularity
Segments per Root
Root Levels
Children per Root
Root Length Decay
Root Radius Decay
Root Split Angle
Root Flatten
Buttress Strength
Tip Depth
Root Surface Depth
Maximum Roots
| 項目 | 内容 |
|---|---|
| Enable Roots | 根を生成するか |
| Primary Root Count | 主根の本数 |
| Root Length | 根の長さ |
| Root Radius Ratio | 根の太さ比率 |
| Radial Spread | 放射状の広がり |
| Downward Bias | 下方向への潜り込み |
| Surface Follow | 地表追従の強さ |
| Root Irregularity | 根の蛇行 |
| Root Levels | 側根の階層数 |
| Children per Root | 根から出る側根数 |
| Root Flatten | 根断面の扁平率 |
| Buttress Strength | 根元の板根・膨らみ |
| Maximum Roots | 根の最大生成数 |
提示されたノードでは、RootのCurve to MeshノードのScale = 0.100が実質的なRoot直径に効いている可能性があります。したがって、今後の修正では、Root Radius操作値をこのScaleに直結する設計が有力です。
樹皮の編集
樹皮はLive GN Controls側で調整します。
Bark Displacement
Enable Bark Geometry
Bark Strength
Ridge Strength
Detail Strength
Crack Strength
| 項目 | 内容 |
|---|---|
| Enable Bark Geometry | 樹皮凹凸のON/OFF |
| Bark Strength | 大きな凹凸の高さ |
| Ridge Strength | 縦筋の強さ |
| Detail Strength | 細かな凹凸の強さ |
| Crack Strength | 割れ目・溝の強さ |
Bark Pattern
Bark Scale
Vertical Stretch
Ridge Frequency
Detail Scale
Longitudinal Subdivisions
| 項目 | 内容 |
|---|---|
| Bark Scale | 模様の大きさ・密度 |
| Vertical Stretch | 縦方向への伸び |
| Ridge Frequency | 縦筋の本数 |
| Detail Scale | 細部模様の密度 |
| Longitudinal Subdivisions | 樹皮変位用の長手方向分割数 |
ScaleやFrequencyは、凹凸の高さではなく模様の密度や方向を変える項目です。変化が見えにくい場合は、先にBark StrengthやRidge Strengthを大きくして確認してください。
マテリアル編集
Live Bark Materialでは、樹皮の色や質感を調整できます。
Bark Color
Dark Groove Color
Roughness
Bump Strength
Color Variation
| 項目 | 内容 |
|---|---|
| Bark Color | 樹皮の基本色 |
| Dark Groove Color | 溝部分の暗い色 |
| Roughness | 表面の粗さ |
| Bump Strength | マテリアル上の凹凸感 |
| Color Variation | 色ムラの強さ |
地面追従
Groundでは、根を地形へ合わせる設定を行います。
Ground Mode
Ground Z
Ground Object
| 項目 | 内容 |
|---|---|
| Flat Ground | 指定したZ高さを地面として使う |
| Ground Object | 指定オブジェクトに根を追従させる |
| Ground Z | 平面地面の高さ |
| Ground Object | 地形として使うMeshオブジェクト |
地形オブジェクトを使う場合は、根の位置計算時に下向きRaycastで地表高さを取得します。
Live GN Controlsの使い方
Live GN Controlsは、Geometry Nodesで表示中の樹木に対して、即時反映を目的とした設定を行うパネルです。
Live Shape Overrides
Bark Displacement
Bark Pattern
Part Bark Strength
Live Bark Material
Live Output Quality
GN Model Management
Live Shape Overrides
Designer Global Scale
Trunk Radius Scale
Branch Radius Scale
Root Radius Scale
Branch Droop Offset
Root Depth Offset
Root Flatten
| 項目 | 内容 |
|---|---|
| Designer Global Scale | 樹木全体のスケール |
| Trunk Radius Scale | 幹の太さ倍率 |
| Branch Radius Scale | 枝の太さ倍率 |
| Root Radius Scale | 根の太さ倍率 |
| Branch Droop Offset | 枝の垂れを追加 |
| Root Depth Offset | 根の深さを追加 |
| Root Flatten | 根断面の扁平率 |
ただし、これまでの検証では、Radius関連のLive Editが十分に動かないケースがありました。今後はCurve to MeshノードのScaleを操作パネル値に直結する修正を優先する方針です。
推奨ワークフロー
通常制作
1. New Formula + Live GN Tree
2. Tree Height / Base Radiusで幹を調整
3. Branch Count / Branch Levelsで枝を調整
4. Root Count / Root Lengthで根を調整
5. Bark Strengthで樹皮の凹凸を調整
6. Bark Colorで色を調整
7. 必要に応じてApply as Mesh
不具合確認時
1. Bark GeometryをOFF
2. BranchesとRootsをOFF
3. Trunkだけを表示
4. Base Radiusを大きく変更
5. 幹の太さが変化するか確認
この確認でBase Radiusが効かない場合、枝や根ではなく、幹のGeometry Nodes内のRadius接続に問題があります。
よくある問題と対処
Base Radiusを変えても幹が太くならない
原因候補:
・旧GNグループが残っている
・Nパネル値が実際のノードへ接続されていない
・Curve to MeshのScaleが固定値のまま
・Set Curve Radius側を変更しているが、Curve to Mesh側のScaleが優先的に見えている
対処:
1. 旧版Add-onを削除
2. Blenderを再起動
3. Rebuild GN From Formula
4. Geometry NodesでCurve to MeshのScaleを確認
5. Scale値を手動変更して太さが変わるか確認
根の太さがRoot Radiusで変わらない
提示されたノードでは、RootのCurve to MeshノードのScaleが直径に効いている可能性があります。
Root Radiusの操作値は、Root用Curve to MeshのScaleへ直接接続する設計にするのが適切です。
枝数が増えすぎる
Branch Levels、Children per Branch、Maximum Branchesを下げてください。
枝の太さ設定で枝数が変わる設計は望ましくありません。枝数と太さは分離するべきです。
樹皮が団子状になる
細い枝や根に対して、樹皮変位量が大きすぎる可能性があります。
対処:
Bark Strengthを下げる
Ridge Strengthを下げる
Detail Strengthを下げる
Root / Branch Bark Ratioを下げる
開発・検証上の重要メモ
現在の優先修正方針は次です。
v0.2.5をベースにする
↓
操作パネルは維持する
↓
RootのCurve to Mesh ScaleをRoot Radiusの目的変数にする
↓
動作確認後、BranchとTrunkにも同じ方式を展開する
この方針により、複雑なpoint.radius、Set Curve Radius、Modifier入力、専用Valueノードの重複を減らし、実際に直径へ効いている値を操作パネルで制御できます。
【根拠】
v0.2.5のソースでは、Python数式モデルによって幹・枝・根のパスを生成し、それをGeometry Nodes Designerへ渡す構成になっています。Add-onはBlender 5.1を対象として定義されています。
また、Blender公式マニュアルでは、Geometry Nodes Modifierはノードグループでオブジェクト形状を定義するModifierであり、Set Curve Radiusはカーブ半径を制御してCurve to Meshなどのプロファイルサイズに使われるノードです。
【注意点・例外】
この取扱説明書は、現時点の開発・検証状況を反映したものです。
Radius関連の制御については、まだ最終確定ではありません。
特に以下は検証中です。
・Base RadiusをTrunk用Curve to Mesh Scaleへ直結する方式
・Root RadiusをRoot用Curve to Mesh Scaleへ直結する方式
・Branch RadiusをBranch用Curve to Mesh Scaleへ直結する方式
・Set Curve RadiusとCurve to Mesh Scaleの役割分担
そのため、公開記事にする場合は、バージョン番号と検証状況を明記することを推奨します。

