loose usage about The Grove (Turn)
概要
ここでは The Grove アドオンの Turn
機能に絞って記述する。
参考
Youtube - Negative Gravitropism | Demonstration
Youtube - Positive Phototropism | Demonstration
公益社団法人日本農芸化学会 - 植物の重力屈性の分子メカニズム根が地中に潜り茎が空へ向かうしくみ
利用環境
- blender 2.91
- The Grove release 9
各パラメータまとめ
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
と呼称する。
名前と値の指定方法を関連付けて覚える時は注意が必要。
Up in Shade
上記 Up
の Shade版。陰になっている状態での重力屈性を設定する。
つまりは、枝が陰に入っている時の枝の成長に対する gravitropism
相当のパラメータとなる。
植物学的にもそうだが、The Grove
では枝が陰に入っている場合は日の指す方へ伸びるか成長が止まるのがデフォルトの仕様となっている。
成長を続けて日の指す方へ伸びる時の gravitropism
補正が入るものと考えればいい。
下図の中では陰になっている時の枝の伸び方と、成長して陰から出てきた時の成長の仕方の差異に注目する。
Up in Shade < 0
の時は陰になっている時でも主枝が重力に従うようにして大きく歪曲してしる。
Up in Shade > 0
の時は逆に陰となっている場合は主枝が重力に抵抗して上へとまっすぐに伸びる傾向が見られる。
同時にUp
と Up in Shade
の間に大きな数値の差がある場合、陰から出る境目付近で主枝が大きく変化する。 Up in Shade = -1.0 | 1.0
の辺りが分かりやすい。
このパラメータは Up
と重複する。
日陰にいる場合は Up
に加えて Up in Shade
のパラメータを加算した感じで gravitropism
の補正が加わるものとして考える必要がある。
より正確に言うと、下記のような数式となっている。
枝にかかる重力屈性 = 日が差している度合い(%) * Upの値 + 影が差している度合い (%)+ Up in Shade の度合い 陰が差している度合い = 1 - 日が差している度合い
当然、陰に入ることで成長が止まっていたり枯れた場合は成長しなくなるので影響しない。
To Horizontal
傾斜重力屈性の項目。
木が側面から伸ばしている枝は種別による際はあるが、個体だけで見れば上向きか下向きかの差はあれど元となる枝に対しての角度が一定の範囲をとるようになっている。
このパラメータはその性質に働きかけて、側枝の角度が水平となるように矯正する。 値が大きいほど、側枝は発生元に対して水平(≒直角)となるような角度で成長するようになる。
ただし、 この項目は通常の傾斜重力屈性と以下の点で異なる仕様となっている。
- 対象の枝が陰に入っている場合のみ本パラメータを適用する。
- 言い換えれば、陰が全くない状態ならばこのパラメータは無効となる。
- 主枝も対象となる。
- ここが学術的な傾斜重力屈性とは大きく異なる。
- 主枝に対しては重力屈性、側枝に対しては傾斜重力屈性という名称で分けているケースが多かった。
より正確なパラメータ名にするなら
plagiotropism_shade
な気がしなくもない。
下図の実行結果のうち、但し書きの部分がよく分かるのは To Horizon: 2.0, Shade有り
のパターンとなっている。
To Horizon
が主枝(≒幹)にも影響しているため、重力屈性によって陰の上へと出ることができなくなっているのが分かる。
To Light
光屈性
のこと。
値を上げることで枝がより光がある方向へろ枝を伸ばすようになるし、反対にマイナスにすることで光を避けるようにして成長することも可能となっている。
陰を避けるように成長するため、 Flow -> Escape Shade
と同じく Shade
で陰となるように設定したオブジェクトを避けるような成長を見せるようになる。
このパラメータは成長方針を決めるパラメータなので、成長が止まるような環境におかれると意味がなくなる。
陰になった時の成長を調整する Flow
や Add
の設定が関連することになる。
The Grove
は独自のレイトレース機能を使って光のパスを計算している点に注意すること。
独自のレイトレースを採用しているので、 blender のライトオブジェクトには反応しない。
シーン設定の時に光の方向へ枝を誘導しようとする時にこの仕様による影響が出てくることになる。
下図は To Light
のパラメータを漸次増加させたもの。
設定している値の増加にあわせて、日陰側での成長を避けているのが分かる。
Twist
トチノキのような枝の節毎に微妙なねじれが発生している種類を再現するためのパラメータ。
このパラメータ枝の成長方向を変えるものではなく、枝そのものが設定した角度で回転してねじれる。
設定した角度で、ノード間のねじれる角度が決定する。
また、ねじれたために樹皮(テクスチャ)が直線ではなく回転するようになる。 枝がねじれたことによって芽が出る位置が前後でずれるため、 枝から新たに発生する子の枝が渦を巻くように見える。
Pitch
名前の通りの効果で、枝が成長する際のピッチ角へ範囲内の数値がランダムで追加される。
結果として一律で角度が変わる規則的な成長ではなく、不規則に枝の角度が変わった成長を遂げる。
Add
にも Start Direction -> ( Random ) Up
という設定があるので混同しやすいが、これと値は重複しない。
Add
では新しく枝ができた時だけに影響を与え、 pitch
は既存の枝に影響を与える。
ピッチとは何かは割愛
Heading
説明では新芽が出た時の角度となっているが、手っ取り早く言うと Pitch
では枝が伸びるピッチ角を調整したのに対して、こちらではヨー角へランダムな角度を追加する。
Pitch
と同じくこのパラメータも Add
の Start Direction -> Horizontal
という類似したパラメータが存在するが。値は重複しない。
Add
では新しく枝ができた時だけに影響を与え、 Heading
は既存の枝に影響を与える。