[初級]touchdesignerで植物をつくる!最強のL-system 枝編


L-systemとは

wikipedia先生は

L-system(エルシステム、Lindenmayer system)は形式文法の一種で、植物の成長プロセスを初めとした様々な自然物の構造を記述・表現できるアルゴリズムである。

と申しておりますが、ようは

植物が作れる!

ということです。

今回はこんなのが作れるようになります!

touchdesignerでさっそく作ってみよう

とりあえず、作って詳しい解説はあとでします!
まずtouchdesignerを立ち上げて、デフォルトのオペレーターをすべて削除してください。

L-system SOP

なんとtouchdesignerには、L-system SOPというSOPのオペレーターが存在します。なんと優秀なの。
それではさっそくL-system SOPを出してみましょう。

すると、こんなのが出てくるかと思います。

上のSOPは、植物の角度や長さ、その他もろもろのパラメーターをいじることができます。
そしておまけでついてきた下のDAT。
ここにL-system独自の記号を書いて、植物の形を決めていきます。

SOPをいじる

L-system SOPのGeometryパラメーターをこのように設定してください。

同様に、Valuesパラメーターもこのように設定してください。

そして見やすくするために、L-system SOPの右下の + ボタンを押して、オペレーター上で w キーを押しましょう。すると、ワイヤーフレーム表示になります。見やすくするためです(しなくても良し)

謎の記号を書いていく

次は下のDATに謎の記号を書いていきます。
とりあえず、
今、書かれているコードを下記に書き換えてください

lsystem1_rules
context_ignore:F+-
premise:FFFA

A="F[-A]///F[-A]///F[^(10)A]

気持ちはわかります。なに書いてんねんと。

慌てないで!

ちゃんと説明しますので笑

Fは進む

まず最初の

context_ignore:F+-

これお決まりなので、無視して大丈夫です。

次の

premise:FFFA

ここではFFFAという記号で、この植物の形を決めますということをいっています。
このFはXY軸平面上をまっすぐ進みます。このFがあるおかげでL-systemは成長していくんですね。
FFFと三回続くので、Fの3倍の長さ進みます。写真だとこんな感じ

枝分かれ

Aというまたわからないやつ来ましたね。

落ち着いて!

次の文に書いてあります。

A="F[-A]///F[-A]///F[^(10)A]

最初の "F は次のFにSOPのパラメーターにあるStep Size Scaleという割合をかけます。その割合の分だけ短くなります。

来ました [-A]
[]はブランチと言って、枝分かれをする記号です。
かっこの中の -回転を表す記号です。具体的には、Z軸周りに反時計に回転します。
また A 来ましたね。これはさきほどの A と同じです。わかりにくい方は下の図で

勘のいい方はここで気づくのではないかと。
L-systemはこの繰り返しの仕組みで枝を形成しているのです。

様々な回転軸

次に / が出てきます。これも回転の記号ですが、今回は、Y軸周りに反時計回転です。
これをすることにより、枝を立体的することが可能になります。

///Fは/を3倍回転してF進みます。

回転するといっても何度回転すんだよと。
それはSOPのValueパラメーターのAngleです。

その後、[-A]
来ました。ブランチ。Z軸に回転してまた枝を作ります。

///F
これも先ほど同様、Y軸回転して進みます。

[^(10)A]
これも先ほど同じブランチですが、見たことのないやつがひとつ。

^(10)

簡単に言うと、X軸周りで10度、反時計回転です。
回転の記号-, /, ^の後に(数字)で角度を指定できるんですね。

回転記号まとめ

時計周り 反時計周り
X軸 & ^
Y軸 \ /
Z軸 + -

・(数字)で角度指定
・デフォルトはangle

Generations

ここまで説明を聞いて、こう思った人もいるはず。

Aを繰り返してたら、無限に成長してまうやん。

でも、成長は止まってますよね、、、
これを制御しているのが、
SOPのGeometryパラメーターのGenerationsです(LDH好きは盛り上がってるはず)。
値が1ならAは繰り返されません。2になると1回繰り返し、3になると2回繰り返す。
といった感じで成長の世代を制御します。

葉っぱをつけていく

ここまででこれと似たようなのができたと思います。

植物なのだから、枝だけではさみしいですね。
葉っぱをつけていきましょう。

といいたいところですが、葉っぱは次回にします。
ここからどんどんクオリティが上がっていきます!

それでは次回↓↓↓↓
[初級]touchdesignerで植物をつくる!最強のL-system 葉編