ニッチなblender手記

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

loose usage about The Grove (Flow)

概要

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

ちなみに下の私的メモ見て読み取れるのであれば、読む必要はない。

f:id:r9aArrowhead:20210127223557j:plain

Flowの各パラメータはざっくり説明すると以下のようになっていた。

  • Favor Bright: 主枝が上へ伸びる度合い。同時に側枝の成長を阻害する度合いでもある。
  • Favor End: 側枝が子の枝をつけない度合。値が 1 に近づくにつれて子の枝の割合が減る。
  • Escape Shade: 側枝が日陰にいると判定された時に Favor End へ加算する値。
  • Reach: Favor End の有効距離。始点は木の頂点。
  • Favor Rising: 側枝の角度修正。正の値で天へ向けて伸びる強さが増し、負の値で地へ伸びる力が強くなる。

参考

THE GROVE - Flow

Try it - 5分でわかる!頂芽優勢のメカニズム

利用環境

前提

ここでは、幹・主枝・側枝の3つの要素が関係している。
パラメータの調整は上記3つの要素へ影響を与えるため、利用する際にはそれぞれがそのようなものであるかの概要は知っておく必要がある。

また、パラメータとは直接関係しないものの、上記3つに影響を与えるオーキシンとサイトカイニンについても多少知っておくと幸せになれるかもしれない。

上記ワードで調べればいくらでも出てくるため、説明は割愛。

注意点

Flow の設定パネルは項目の位置で左右にドラッグすることで値を変更する、スライダー方式になっている。
しかし、過度な値の設定をさせないためか、それぞれ上限と下限を設けられている。それが下図。

f:id:r9aArrowhead:20210127224323j:plain f:id:r9aArrowhead:20210127224331j:plain

しかし、 Favor Start Favor End 以外の項目は数値を直接指定することで、設定可能範囲を超えた値の設定が可能になる。
この方法での設定で結果が大きく変わることもあるため、覚えておくと便利かもしれない。

f:id:r9aArrowhead:20210127224339j:plain

流れ ( Flow )

まずは本家の説明を参照する。

Regulate their own growth by controlling the flow of sugars and hormones.
Favor current or sub branches, with a bias to the base or crown.

説明を見る限りはまんま成長に関する設定で、既にある枝葉に成長が偏るのが基本仕様となっているようだ。
ちなみに本家ドキュメントでは操作方法というよりは学術的な説明がされているので、門外漢の自分にはあまりよくわからなかった。

それでもパラメータに関する記述らしき部分だけを読み取ると、概ね以下のようなことが書いてある。
各パラメータの実際の挙動については後述するので、ここは読み飛ばしてくれてかまわない。

  • Favor Bright: オーキシン分泌強度。強くすると縦方向に伸びようとするため、側枝の発育が抑制される。個人的にはFavor End とのペアなのだから Favor Startという感じがする。
  • Favor End: Apical Dominance、和名でいう頂芽優勢という効果をシミュレートするための値。日陰という判定が入ると Escape Shade の値がこれに加算されていくらしい。閾値
  • Escape Shade: 枝単位でこの値が管理されているようで、日陰になっているかどうかの判定に用いられる。日陰と判断された場合、 この値が Favor End へ加算される。
  • Reach: 記述なし
  • Favor Rising: 記述なし

頂芽優勢の現象をモデルへ適用するための設定のようだ。
オーキシンとサイトカイニンの関係を示すためのパラメータだと推測する。

とりあえず、よくわからないので実験してみた。

デフォルト設定はこの状態となる。

f:id:r9aArrowhead:20210127223605j:plain

Favor Bright

ツールチップの私訳は以下の通り。

木を何千もの個々の植物として想像してみてください。

明るいものは大きく成長し、暗いものは枯れていく - これが、Favor Brightの最大の魅力です。

接続している枝同士は、互いに利益を共有します。

糖 (Favor Bright) が自由に流れ光がたくさんあると、日陰の植物でであっても新しい光を見つけるために必要なサポートを得て成長することができます。

下図の通り、値を上げると主枝と側枝の数が減っていく。

木は基本的に縦方向と横方向に成長するが、このパラメータは縦方向へ強く作用する。
植物学的にはオーキシンの分泌が活発な木ということになるのだろうか。

日照を得るための成長を強めた結果として水平方向への成長が抑えられるため、値を大きくすることで枝の広がりはしなくなったということになる。

f:id:r9aArrowhead:20210127223613j:plain f:id:r9aArrowhead:20210127223627j:plain f:id:r9aArrowhead:20210127223706j:plain

Favor End

まずはツールチップの私訳から。

Favor Endは、新しい側枝の上に枝の端を与えます。

それはより短く、より強力な側の小枝を作成しますが、幸先の良いスタートは常に勝利が保証されているわけではありません。

Favor Brightを引きぬいて最も成長している枝をゆっくりとさせたり、短い側の小枝 (twigs) が追いつくようにしたり、新しい枝の端としても引き継ぐことができます。

Favor BrightとFavor Endは、木の最も重要な特徴の一つです。

2つは一緒に作用し、広いスペクトルの形や特徴を作成します。

説明の通り、 Favor Bright の対となる要素。
水平方向の枝分かれを調整して、枝が更に子の枝を発生させるかどうかの判断に用いられる。

下図の結果では、主枝から側枝が伸びるところはパラメータの値ではさほど変わらない。
変わっているのは、側枝の枝分かれの豊富さにある。
0.0 から 0.5 では側枝から伸びる子の枝の数が大きく減っている。
光が当たっていない場所で葉を広げるよりも、より枝を成長させて光が届く位置まで枝を伸ばす方へ成長していくという感じになっている。

特筆すべきは Favor End: 1.0 の時の挙動。 このパラメータの影響は主枝にも影響を与えるのか、極端に成長が阻害されている。

注意点として、ドキュメントによれば日陰という判定が入ると Escape Shade の値がこれに加算されていくらしい。
Favor End で指定する値はあくまで初期値として見るべきだろう。

f:id:r9aArrowhead:20210127223714j:plain f:id:r9aArrowhead:20210127223721j:plain f:id:r9aArrowhead:20210127223728j:plain

Escape Shade

ツールチップの私訳。

遮光された枝のFavor Endを増減します。

光を見つけるための戦略として、各枝はそれぞれのFavor Endをコントロールします。

枝が日陰になればなるほど、枝の先端の成長を有利にして日陰から逃れることもできますし、側方の成長を有利にして薄暗い光をできるだけ多く取り込むこともできます。

後者はブナやヘーゼルのような林床種に見られる。

どれぐらい日陰を避けて成長させるかの度合いを表す値。単体ではあまり効果はないので、 Shade オブジェクトとの併用をするのがいいと思う。 光を避ける = 主枝、側枝を成長させる ことになるので、子の枝は数が減ることになる。

注意点としては、この値が独立して枝の水平展開を妨げていることではないこと。
ドキュメントには、枝のある位置が日陰と判定された場合にこの項目の値を Favor End へ加算することが明記されている。
つまりこの値は 日陰時に Favor End の値に加算して、 Favor End による側枝の成長を促進するパラメータ となる。
Favor End の上限値が 1.0 で Escape Shade も上限値が 1.0となっているので、 Escape Shade を最大値まで上げれば確実に Favor End による処理が発生するということになる。

まずは遮蔽物がない状態でテスト。

f:id:r9aArrowhead:20210127223831j:plain f:id:r9aArrowhead:20210127223849j:plain f:id:r9aArrowhead:20210127223855j:plain

この状態だと光を遮るのは自身の枝しかないため、見た目にはあまり変化はない。
そこで、次は Shade に遮蔽物となるオブジェクトを設定しての確認を行った。

f:id:r9aArrowhead:20210127224059j:plain f:id:r9aArrowhead:20210127224105j:plain f:id:r9aArrowhead:20210127224113j:plain

結果としては、 Shade で日陰の判定になっている部分の影響を確認できた。

こうなると、どこまで日陰を避けるのか試してみたくなるのが性分。

f:id:r9aArrowhead:20210127224119j:plain f:id:r9aArrowhead:20210127224129j:plain f:id:r9aArrowhead:20210127224137j:plain f:id:r9aArrowhead:20210127224147j:plain f:id:r9aArrowhead:20210127224156j:plain f:id:r9aArrowhead:20210127224201j:plain f:id:r9aArrowhead:20210127224207j:plain f:id:r9aArrowhead:20210127224215j:plain f:id:r9aArrowhead:20210127224222j:plain f:id:r9aArrowhead:20210127224229j:plain

どうも周囲を覆うと成長しなくなってしまうようだ。

個人的には光源決めてそこへ向かって伸びる機能とか欲しいかもしれない

Reach

ツールチップの私訳。

Favor Endの最大距離。

枝先は、枝を流れるホルモンを作り、脇芽の成長を遅くします。

ホルモンの濃度がしきい値より低くなるまで、先端からさらに離れていくと濃度が下がっていきます。これでFavor Endの効果はなくなり、側枝は自由に成長します。

側枝に対する Favor End の有効範囲ということ。 ここで設定した距離まで Favor End は有効になる。 見た目の感じとしては、パラメータの値を上げると枝の伸びに不規則さが混ざっているようにも思えるが、正直差異が分かりにくい。

f:id:r9aArrowhead:20210127223901j:plain f:id:r9aArrowhead:20210127223908j:plain f:id:r9aArrowhead:20210127223915j:plain f:id:r9aArrowhead:20210127223926j:plain f:id:r9aArrowhead:20210127223950j:plain f:id:r9aArrowhead:20210127223958j:plain f:id:r9aArrowhead:20210127224006j:plain f:id:r9aArrowhead:20210127224015j:plain

分かりにくいので、別の木にした。

f:id:r9aArrowhead:20210127224236j:plain f:id:r9aArrowhead:20210127224244j:plain

上図二枚の上面図を見ると分かるが、 Reach を上げると側枝から伸びる子の枝が減っている。

Favor Rising

ツールチップ私訳。

下にぶら下がっている枝を、上向きに成長するよう支援します。

上向きの枝をブーストして、そびえ立つ木を手に入れよう。

値が1の場合は、水平枝の威力を0にするところまで行きます。

望むならば、それ以上の高さまで行くことができます。

f:id:r9aArrowhead:20210127224022j:plain f:id:r9aArrowhead:20210127224029j:plain f:id:r9aArrowhead:20210127224038j:plain f:id:r9aArrowhead:20210127224250j:plain f:id:r9aArrowhead:20210127224258j:plain f:id:r9aArrowhead:20210127224046j:plain f:id:r9aArrowhead:20210127224052j:plain f:id:r9aArrowhead:20210127224307j:plain f:id:r9aArrowhead:20210127224315j:plain

見ての通り、値を上げると側枝全体が上向きに伸びようとする。
そして過度に値を上げると成長が阻害されるのか全体的に縮んでしまった。

反対に値を負の方向へ進めると、下向きになる。柳の木とかを作るのに利用できそう。
こちらは値を上げても成長の阻害はしなくなったが、側枝全体が重なり合うようになってしまう。