2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-10-26

#L-systemとは
wikipedia先生は

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

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

植物が作れる!

ということです。

今回はこんなのが作れるようになります!
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 17_48_25.png

#touchdesignerでさっそく作ってみよう
とりあえず、作って詳しい解説はあとでします!
まずtouchdesignerを立ち上げて、デフォルトのオペレーターをすべて削除してください。
###L-system SOP
なんとtouchdesignerには、L-system SOPというSOPのオペレーターが存在します。なんと優秀なの。
それではさっそくL-system SOPを出してみましょう。

すると、こんなのが出てくるかと思います。
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 17_49_53.png

上のSOPは、植物の角度や長さ、その他もろもろのパラメーターをいじることができます。
そしておまけでついてきた下のDAT。
ここにL-system独自の記号を書いて、植物の形を決めていきます。
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 17_49_53_LI.jpg

###SOPをいじる
L-system SOPのGeometryパラメーターをこのように設定してください。
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 17_53_12_LI.jpg

同様に、Valuesパラメーターもこのように設定してください。
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 17_54_19_LI.jpg

そして見やすくするために、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倍の長さ進みます。写真だとこんな感じ
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 17_56_31_LI.jpg

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

落ち着いて!

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

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

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

来ました [-A]
[]はブランチと言って、枝分かれをする記号です。
かっこの中の -回転を表す記号です。具体的には、Z軸周りに反時計に回転します。
また A 来ましたね。これはさきほどの A と同じです。わかりにくい方は下の図で
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 18_00_00_LI (2).jpg

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

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

///Fは/を3倍回転してF進みます。
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 18_08_06_LI (2).jpg

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

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

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

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

^(10)

簡単に言うと、X軸周りで10度、反時計回転です。
回転の記号-, /, ^の後に(数字)で角度を指定できるんですね。
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.1.toe_ 2020_10_23 18_12_27_LI (2).jpg

###回転記号まとめ

時計周り 反時計周り
X軸 & ^
Y軸 \ /
Z軸 + -
・(数字)で角度指定
・デフォルトはangle

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

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

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

#葉っぱをつけていく
ここまででこれと似たようなのができたと思います。
TouchDesigner 2020.22080_ C__Users_22034_Desktop_touchdesigner_project_tdsw_L-system_qiita用_qiita.2.toe_ 2020_10_26 15_33_10.png

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

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

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

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?