ニッチなblender手記

世の中には自分に似た人が3人いるとされています。その人達へと情報共有するために主にblenderの記事を書いていきます。

loose usage about The Grove (Drop)

概要

ここでは The Grove アドオンの Drop 機能に絞って記述する。

The Grove では以下の3つの条件に従って不要な枝や木の成長を阻害するような枝を切り落とすようになっている。

  1. 日陰や寿命によって育てても木の成長を促さない枝
  2. Auto Prune の設定で指定した高さ未満に生えているものや、一定の太さ未満の枝
  3. ユーザが手動で選定した枝

ここでは上記3つの内、1番目のロジックを設定する Drop パネルの挙動を確認していくことになる。
日照によるドロップを行うかどうかのパラメータとして利用するのが Shaded ShootsShaded Ends の2つとなっている。
そして、残りの Low Power Ends, Obsolete, Stick Aroundが成長によるドロップ処理となっている。

2と3については基本動作で確認済み。

アドオン作者のドキュメントにはこれらのパラメータはデフォルトで十分作用するため、自然界を再現するにはデフォルトでの運用が推奨されている。

f:id:r9aArrowhead:20210204002324j:plain

各パラメータまとめ

先に各パラメータの内容をまとめると、以下のような挙動を担っている。

  • Shaded Shoots: 枝がどのぐらい日を遮られていたら切り落とすかを指定する。完全に日照から隠れている場合を0、日照に当たっている状態が1となっている。
  • Shaded End: 日陰と判定された枝が成長を止める確率。0は成長を阻害せず、1は日陰となった全ての枝の成長を止める。日陰にあると判定されていない場合、このパラメータは無効。
  • Low Power Ends: 枝が老化によって成長を止める際の閾値。0の場合は老化による成長の停滞はなく、1の場合は全ての枝の成長が止まる。
  • obsolete: 側枝への親枝からの水の供給度合いを設定するための閾値。0の場合は常に水が供給されていて、1の場合は水の供給がない状態。例外として、心材 (heartwood) が形成される前の若い枝にはこのパラメータが適用されない。
  • Stick Around: 老化した枝を残すかどうか。0だと残さず、1にすると古い枝を切り落とさずに残したままとなる。

参考

THE GROVE - Prune

利用環境

注意点

The Grove には独自のレイトレース機能が搭載されており、これを用いて生成した木や枝葉への日陰の判定を行っている。
日陰によるドロップ処理は、この計算結果で日陰と判定されたものに対して行う。

言い換えると、 blender 標準の光源は全く意味をなさない。
枝のドロップ処理を行う場合はライトなどによる光源での調整ではなく、 The Grove の各種パラメータのみで操作する必要ことに注意が必要となる。

問題点

後述の内容を見れば分かりやすいが、ここの項目は各設定を数値で指定する形式になっている。
しかし、その数値が示す定量的な説明はドキュメントには一切記載されておらず、それぞれのパラメータが担う定性的な内容しか記載されていない。

数値を指定する根拠がないため、調整が非常に感覚的な内容に拠っているために思い通りの木を作ろうとするには試行錯誤による確認しかないのが現状である。

Shaded Shoots

日が当たっていない枝を切り落とすためのパラメータ。
0 にすれば日陰にある枝であろうと残したままとなる。
1にすると日が当たっていても枝を切り落とすので、木としての成長が止まってしまう。

0の時の図では、日陰にある枝も切り落とされないために根本に近い枝も成長していて△なシルエットになっている。

f:id:r9aArrowhead:20210204002330j:plain f:id:r9aArrowhead:20210204002337j:plain f:id:r9aArrowhead:20210204002343j:plain

Shaded End

Shaded Shoot に似ているが、こちらは日照を得られなかった枝の成長が止まる確率を指定するパラメータ。
0で全ての枝が成長し、1では日陰判定を受けた枝の成長は完全に停止する。

確立なので、パラメータを1にしない限りは完全に日から隠れていても成長する枝が存在する。
下図の枝の分布でも確認できるように、成長の停止がまばらで密度に濃淡があるのが分かる。

f:id:r9aArrowhead:20210204002350j:plain f:id:r9aArrowhead:20210204002356j:plain f:id:r9aArrowhead:20210204002403j:plain

Low Power Ends

枝の老化によって成長が止まる閾値の設定。
詳しい説明はどこにもないが、発生した枝は初期値としてこのパラメータの値を 1 として保持していて、成長と共に内部パラメータの値が減少していく形式に見受けられる。

0に設定した場合は寿命はなく延々と成長し続ける反面、1に設定した場合は枝の成長が完全に停止する。

また、成長が停止した枝は花や果実をつけるようなロジックとなっているため、完全に成長しないというわけではない。

f:id:r9aArrowhead:20210204002412j:plain f:id:r9aArrowhead:20210204002420j:plain f:id:r9aArrowhead:20210204002427j:plain f:id:r9aArrowhead:20210204002433j:plain f:id:r9aArrowhead:20210204002440j:plain

obsolete

枝が自身の親から水の供給を受けているかのパラメータ。
心材や辺材を表現するためのパラメータのようで、枝の親が老化によって水の供給を減らしていくことを再現している。
Low Power Ends が枝自身の老化に対する閾値であるならば、こちらは親の枝に対する老化の閾値設定。

心材や辺材を再現するためでもあるこのパラメータには例外が設定されている。
親が心材を発生させていないような若い枝の場合は、このパラメータは無視される。
この辺りは下図のパラメータ設定の差を見て欲しい。パラメータの値を最大値にしても木の上部には側枝が葉を茂らせている。

The Grove は心材の発生条件も設定可能で、Thicken パネルの Sapwood パラメータで設定を変えればこのパラメータも影響を受けることになる。

f:id:r9aArrowhead:20210204002447j:plain f:id:r9aArrowhead:20210204002454j:plain f:id:r9aArrowhead:20210204002500j:plain f:id:r9aArrowhead:20210204002508j:plain f:id:r9aArrowhead:20210204002514j:plain

Stick Around

枯れた枝を残しておくかどうかの閾値。0の場合は枯れている枝であろうと残したままとなるし、1であれば問答無用で刈り取られる。

どれが枯れた枝なのかは一見して分かりにくいが、後述の Show Dead を On にすると対象となる枝にハイライトが付くため、確認しながら作業をするといい。

f:id:r9aArrowhead:20210204002520j:plain f:id:r9aArrowhead:20210204002527j:plain f:id:r9aArrowhead:20210204002535j:plain f:id:r9aArrowhead:20210204002541j:plain f:id:r9aArrowhead:20210204002547j:plain

Show Dead

The Grove が枯れた枝と判断した枝をハイライトで表示してくれる。

f:id:r9aArrowhead:20210204002553j:plain