ニッチなblender手記

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

loose usage about The Grove (Turn)

概要

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

f:id:r9aArrowhead:20210312192941j:plain

参考

THE GROVE - Grow

Youtube - Negative Gravitropism | Demonstration

Youtube - Positive Phototropism | Demonstration

重力屈性

公益社団法人日本農芸化学会 - 植物の重力屈性の分子メカニズム根が地中に潜り茎が空へ向かうしくみ

Wikipedia - 光屈性

利用環境

各パラメータまとめ

Turn は全体として、既存の枝の成長内容を調整するパラメータとなっている。
新規に発生した枝の内容を調整するパラメータは Add

  • Up: 重力屈性。枝の成長がどれぐらい重力屈性を持っているかを指定する。正の数値を指定すると上方向に成長する。影の度合いによってこの値は減衰し、設定値は完全に日が差している状態の時のものを設定するようになっている。
  • Up to Shade: 日陰時の重力屈性。 Up とは効果が重複する。影の度合いによってこの値は増大し、設定値は完全に日陰に入っている状態の時のものを設定するようになっている。
  • To Horizon: 傾斜重力屈性。値が大きいほど、枝は発生した位置から水平方向へ伸びようとする。 ただし、 The Grove においてはこの値は、日陰の時だけ有効となり、値による影響は主枝にも反映される。
  • To Light: 光屈性。値が強いほどより光がある方へ枝を伸ばそうとする。 The Grove は独自のレイトレースを搭載しているため、ライトオブジェクトなどには反応しない点に注意。
  • Pitch: 枝が伸びる際のピッチ角(≒垂直角度)にランダムな角度を追加する。
  • Heading: 枝が伸びる際のヨー角(≒水平角度)にランダムな角度を追加する。

重要ワード

屈性

植物は光や重力、接触刺激などの外部刺激によって、成長する方向をたえず変化させる。この性質を屈性と呼ぶ。 屈性には大別して 重力屈性光屈性 が存在する。

重力屈性(gravitropism)

重力屈性は重力によって引き起こされる屈性。
植物の茎は重力とは逆向きに、根は重力の向きへ伸張する性質を持つ。

一般に重力に抗うようにして反対方向へ枝を伸ばすことを 負の重力屈性(Negative gravitropism)、重力に従って伸ばすことを 正の重力屈性(Positive gravitropism) と呼ぶ。

傾斜重力屈性(plagiotropism)

幹、主枝、主根および主茎は重力に正および負の方向に成長する。
一方で側根および側枝は一定の角度を保って傾斜して成長する。
これも重力応答により制御されており, 傾斜重力屈性 と呼ばれる。

光屈性(Phototropism)

またの名を 向光性とも呼ぶ。

光屈性は光によって引き起こされる屈性で、窓辺に鉢植えをおいておくと植物は茎や葉を窓のほうへ向けるように曲がる。
より正確に言えば、光がある方向へ枝を成長させる。

重力屈性 と異なり、光の差す方向へ枝を伸ばすことを 正の光屈性(Positive Phototropism)、その反対を 負の光屈性(Negative Phototropism) と呼ぶ。

Up

ノード(≒枝)が成長する時の向きを修正する。
正確には gravitropism(重力屈性) の値を設定する項目となっている。

gravitropism(重力屈性) は言い換えるとどれぐらい重力に従って曲がるか の指数。
地球上で植物が成長する限り植物が上へと成長するには重力に逆らう必要がある。この重力への反発具合を表したもの。 正の方向へ値を指定すると重力に逆らって枝が上方向へ伸びるようになる。
負の方向へ値を振ることで、枝の成長が重力の方向に従って(≒重力に負けて)伸びるようになる。

学術的には重力に逆らって上方向へ伸びることを negative gravitropism、 重力に従い下方向へ伸びることをpositive gravitropism と呼称する。 名前と値の指定方法を関連付けて覚える時は注意が必要。

f:id:r9aArrowhead:20210312192949j:plain f:id:r9aArrowhead:20210312192956j:plain f:id:r9aArrowhead:20210312193004j:plain f:id:r9aArrowhead:20210312193010j:plain f:id:r9aArrowhead:20210312193017j:plain f:id:r9aArrowhead:20210312193024j:plain f:id:r9aArrowhead:20210312193031j:plain f:id:r9aArrowhead:20210312193039j:plain f:id:r9aArrowhead:20210312193056j:plain

Up in Shade

上記 Up の Shade版。陰になっている状態での重力屈性を設定する。
つまりは、枝が陰に入っている時の枝の成長に対する gravitropism 相当のパラメータとなる。

植物学的にもそうだが、The Grove では枝が陰に入っている場合は日の指す方へ伸びるか成長が止まるのがデフォルトの仕様となっている。
成長を続けて日の指す方へ伸びる時の gravitropism 補正が入るものと考えればいい。

下図の中では陰になっている時の枝の伸び方と、成長して陰から出てきた時の成長の仕方の差異に注目する。
Up in Shade < 0 の時は陰になっている時でも主枝が重力に従うようにして大きく歪曲してしる。
Up in Shade > 0 の時は逆に陰となっている場合は主枝が重力に抵抗して上へとまっすぐに伸びる傾向が見られる。
同時にUpUp in Shade の間に大きな数値の差がある場合、陰から出る境目付近で主枝が大きく変化する。 Up in Shade = -1.0 | 1.0 の辺りが分かりやすい。

このパラメータは Up と重複する。
日陰にいる場合は Up に加えて Up in Shade のパラメータを加算した感じで gravitropism の補正が加わるものとして考える必要がある。
より正確に言うと、下記のような数式となっている。

枝にかかる重力屈性 = 日が差している度合い(%) * Upの値 + 影が差している度合い (%)+ Up in Shade の度合い

陰が差している度合い = 1 - 日が差している度合い

当然、陰に入ることで成長が止まっていたり枯れた場合は成長しなくなるので影響しない。

f:id:r9aArrowhead:20210312193101j:plain f:id:r9aArrowhead:20210312193111j:plain f:id:r9aArrowhead:20210312193120j:plain f:id:r9aArrowhead:20210312193126j:plain f:id:r9aArrowhead:20210312193133j:plain f:id:r9aArrowhead:20210312193143j:plain f:id:r9aArrowhead:20210312193153j:plain f:id:r9aArrowhead:20210312193212j:plain f:id:r9aArrowhead:20210312193221j:plain

To Horizontal

傾斜重力屈性の項目。
木が側面から伸ばしている枝は種別による際はあるが、個体だけで見れば上向きか下向きかの差はあれど元となる枝に対しての角度が一定の範囲をとるようになっている。

このパラメータはその性質に働きかけて、側枝の角度が水平となるように矯正する。 値が大きいほど、側枝は発生元に対して水平(≒直角)となるような角度で成長するようになる。

ただし、 この項目は通常の傾斜重力屈性と以下の点で異なる仕様となっている。

  • 対象の枝が陰に入っている場合のみ本パラメータを適用する。
    • 言い換えれば、陰が全くない状態ならばこのパラメータは無効となる。
  • 主枝も対象となる。
    • ここが学術的な傾斜重力屈性とは大きく異なる。
    • 主枝に対しては重力屈性、側枝に対しては傾斜重力屈性という名称で分けているケースが多かった。

より正確なパラメータ名にするなら plagiotropism_shade な気がしなくもない。

下図の実行結果のうち、但し書きの部分がよく分かるのは To Horizon: 2.0, Shade有り のパターンとなっている。
To Horizon が主枝(≒幹)にも影響しているため、重力屈性によって陰の上へと出ることができなくなっているのが分かる。

f:id:r9aArrowhead:20210312193231j:plain f:id:r9aArrowhead:20210312193238j:plain f:id:r9aArrowhead:20210312193250j:plain f:id:r9aArrowhead:20210312193306j:plain f:id:r9aArrowhead:20210312193312j:plain f:id:r9aArrowhead:20210312193321j:plain

To Light

光屈性 のこと。

値を上げることで枝がより光がある方向へろ枝を伸ばすようになるし、反対にマイナスにすることで光を避けるようにして成長することも可能となっている。

陰を避けるように成長するため、 Flow -> Escape Shade と同じく Shade で陰となるように設定したオブジェクトを避けるような成長を見せるようになる。

このパラメータは成長方針を決めるパラメータなので、成長が止まるような環境におかれると意味がなくなる。
陰になった時の成長を調整する FlowAdd の設定が関連することになる。

The Grove は独自のレイトレース機能を使って光のパスを計算している点に注意すること。
独自のレイトレースを採用しているので、 blender のライトオブジェクトには反応しない。
シーン設定の時に光の方向へ枝を誘導しようとする時にこの仕様による影響が出てくることになる。

下図は To Light のパラメータを漸次増加させたもの。
設定している値の増加にあわせて、日陰側での成長を避けているのが分かる。

f:id:r9aArrowhead:20210312193329j:plain f:id:r9aArrowhead:20210312193337j:plain f:id:r9aArrowhead:20210312193344j:plain

Twist

トチノキのような枝の節毎に微妙なねじれが発生している種類を再現するためのパラメータ。
このパラメータ枝の成長方向を変えるものではなく、枝そのものが設定した角度で回転してねじれる。
設定した角度で、ノード間のねじれる角度が決定する。

また、ねじれたために樹皮(テクスチャ)が直線ではなく回転するようになる。 枝がねじれたことによって芽が出る位置が前後でずれるため、 枝から新たに発生する子の枝が渦を巻くように見える。

f:id:r9aArrowhead:20210312193351j:plain f:id:r9aArrowhead:20210312193358j:plain f:id:r9aArrowhead:20210312193405j:plain f:id:r9aArrowhead:20210312193410j:plain

Pitch

名前の通りの効果で、枝が成長する際のピッチ角へ範囲内の数値がランダムで追加される。
結果として一律で角度が変わる規則的な成長ではなく、不規則に枝の角度が変わった成長を遂げる。

Add にも Start Direction -> ( Random ) Up という設定があるので混同しやすいが、これと値は重複しない。
Add では新しく枝ができた時だけに影響を与え、 pitch は既存の枝に影響を与える。

ピッチとは何かは割愛

f:id:r9aArrowhead:20210312193417j:plain f:id:r9aArrowhead:20210312193425j:plain f:id:r9aArrowhead:20210312193433j:plain f:id:r9aArrowhead:20210312193443j:plain

Heading

説明では新芽が出た時の角度となっているが、手っ取り早く言うと Pitch では枝が伸びるピッチ角を調整したのに対して、こちらではヨー角へランダムな角度を追加する。

Pitch と同じくこのパラメータも AddStart Direction -> Horizontal という類似したパラメータが存在するが。値は重複しない。
Add では新しく枝ができた時だけに影響を与え、 Heading は既存の枝に影響を与える。

f:id:r9aArrowhead:20210312193450j:plain f:id:r9aArrowhead:20210312193458j:plain f:id:r9aArrowhead:20210312193504j:plain f:id:r9aArrowhead:20210312193511j:plain