ニッチなblender手記

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

loose usage about The Grove (Grow)

概要

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

f:id:r9aArrowhead:20210218103301j:plain

参考

THE GROVE - Grow

利用環境

各パラメータまとめ

  • Nodes: 一つの枝が一年で成長させることができるノード(≒節)の最大数。最大数なので他のプロパティの影響でこの数に届かないことがある。
    • 成長可能なノード数を制限するため、樹齢を増やした方が制限による影響が大きくなる。
    • ノード全体で成長する長さは Length で制限を受ける
  • Length: 1つの枝にあるノード全体が、一年間に成長することができる長さの最大値
    • Nodes で指定した数はこのプロパティ影響を与える。 Length / Nodes = 1つのノードの長さ となる。
    • 側枝などの枝分かれした部分は個別に判定される。例えば枝が2本ある場合は2本それぞれが Length まで成長できることになる
  • Longer in Shade: 日が当たっていない陰の状態となっている時に、枝の成長を増減させるパラメータ
    • 枝の寿命によって完全に成長が止まる場合はそもそも機能しない
    • 枝の成長を増減させる のがポイント。ここを正の値にすれば 日陰にいる方が成長が早い枝 を作成することも可能。

不明点

Nodes = 1 にすると、幹の部分のみ NodesLength のプロパティが成長を鈍らせていた。
Nodes = 2 以上にすると問題ないので、そもそも Nodes = 1 というのを想定していないのかもしれない。

ノードとは?

後ほどこの辺りの概念はまとめる予定だが、差し当たって Grow では必須の知識となる Node Branch twig についてまとめる。

情報処理試験などの情報系、あるいは理数系、名称の由来の分野でもある植物学を学んでこられた方々には ツリー構造 の用語のことだと言ってしまえば理解が早いかもしれない。

The Grove では下図で示した部分をそれぞれ Node Branch twig と呼んでいる。

f:id:r9aArrowhead:20210218103315j:plain

Grow ではこの3つの要素に関する成長と制御するパラメータとなっている。

Node

Node は2つの意味を持っている。

  1. Branchtwig の境界線
  2. BranchBranch の境界線

ひとまとめで説明すると、 枝分かれが発生した個所

Branch

Branch は大雑把にまとめると以下の2つの意味を持っている。

  1. 幹に相当する、垂直方向へ伸びていく枝。The Grove オブジェクトが最初に生成した枝で必ず1つ存在する。
  2. 枝分かれして水平方向へ伸びていく枝。主に側枝に相当する。twig が発生して成長した枝。

twig

Branch のノード部分に一番最初に発生する葉や芽に相当する。
The Grove では twig に用いるモデルを変更して木が茂らせる葉を変えることで見た目を変更することができる。

Node 部分に最初に発生する要素でもあり、 twig が成長することで新しい Branch となる。 言い換えれば、 Node が成長していない場所には Branch は発生しない。

The Grove 成長モデル

The Grove は木の成長ロジックとして現実の植物成長モデルを利用しており、概要は下図のようになっている。

f:id:r9aArrowhead:20210218103309j:plain

文章化すると概ね以下の通り。

  1. ノード部分に twig が発生する
  2. 発生した twigBranch として成長する
  3. 成長した Branch のノード部分に新たな twig が発生する

このルーチンを繰り返して成長していくことになるが、成長の過程で FlowShadeDrop の影響を受けると成長を阻害されて twigBranch が発生しなくなる。

Nodes

一つの枝が1年で成長できるノードの数を制限するプロパティ。

成長するにはノードから twigbranch が発生して成長しなければならないが、この成長を制限する。 成長が進むとノードの数が増えるため、時間がたてばたつほど影響が大きくなる。

成長するノードの制限は branch 毎に判定される点に注意。

Nodes = 1

f:id:r9aArrowhead:20210218103321j:plain f:id:r9aArrowhead:20210218103328j:plain f:id:r9aArrowhead:20210218103334j:plain f:id:r9aArrowhead:20210218103340j:plain

Nodes = 2

f:id:r9aArrowhead:20210218103347j:plain f:id:r9aArrowhead:20210218103355j:plain f:id:r9aArrowhead:20210218103402j:plain f:id:r9aArrowhead:20210218103410j:plain f:id:r9aArrowhead:20210218103417j:plain

Nodes = 3

f:id:r9aArrowhead:20210218103423j:plain f:id:r9aArrowhead:20210218103430j:plain f:id:r9aArrowhead:20210218103438j:plain f:id:r9aArrowhead:20210218103443j:plain f:id:r9aArrowhead:20210218103451j:plain

Length

branch がもつノード全体が、一年間に成長することができる長さの最大値。

The Grove はノードがどれぐらい成長するかを NodesLength に拠っているようで、下記のような式で1つのノードの長さを計測している。

Length / Nodes = 1つのノードの長さ

上記のような処理のため、 Nodes と Length でノードの間隔を表現する点に注意。
一つ一つの枝の間隔が広い木を作りたい場合などに考慮するプロパティにもなっている。

Nodes=1, Length=20cm

f:id:r9aArrowhead:20210218103457j:plain f:id:r9aArrowhead:20210218103502j:plain f:id:r9aArrowhead:20210218103509j:plain f:id:r9aArrowhead:20210218103515j:plain

Nodes=2, Length=20cm

f:id:r9aArrowhead:20210218103521j:plain f:id:r9aArrowhead:20210218103525j:plain f:id:r9aArrowhead:20210218103530j:plain f:id:r9aArrowhead:20210218103534j:plain

Longer in Shade

日が当たっていない陰の状態となっている時に、枝の成長を増減させるパラメータ。
ここで指定するのは完全に日が当たっている状態での成長からの比率。
負の値で指定すると元の成長よりも減衰し、正の値で指定すると促進する。

そのため、下図のようにこのパラメータを正の値で指定して日陰のようなシチュエーションを用意すると日陰にいる枝の方が成長が促されているという現象を確認できる。

f:id:r9aArrowhead:20210218103541j:plain