No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

Houdini:L-system概要と作例01

Houdini Advent Calendar2016 15日目に参加しました。
Houdiniノード勉強回。
テーマはL-System。
反復処理されるルールによって、枝分かれする現象を表現できるヤツ。

使えそうに見えて使いどころが難しい、そんな機能かと。
基本的にL-system(SOP)ノードだけで、作ることができます。
まずは概要から。

lsystem_01

L-Systemの作成には大きく3つの工程があると、私は思っています。
1:どのようなルールで作るか(パターン)
2:どのような数値を設定するか(長さ、角度、減衰、増幅など)
3:それを何回繰り返すか


1:「どのようなルールで作るか」を決めるのがパラメータTabの右端の”Rules”。
これでパターンのルールを決めます。以下、簡単な解説。

lsystem_02

Premise・・・初期状態
Rule # ・・・L-Systemのルール。ここで記述したルールに基づいて生成される。

Ruleの記述は、意味を持つ文字をいくつも並べて記述してゆきます。

F 1step進んで、そこまで線描画
f 1step進んで、描画しない
+ 回転
逆回転
[ ] 分岐作成
長さにStep Size Scaleの値を乗算する。(長さの減衰、増幅)
; 角度にAngle Scaleの値を乗算する。(角度の減衰、増幅)
& ピッチアップ
^ ピッチダウン
\ ピッチダウン
/ 逆ロール

まだまだありますが、あとはマニュアル参照。ポリゴンの面とかも生成できます。


2:次に、どのくらいの長さのラインを描くか、どのくらいの角度回転するかを定義するパラメータ群があるのが、Valueタブ。
この中でも角度を定義するAngleは図形の見た目に大きく影響します。

lsystem_03


3:最後に、Geometryタブにある”Generations”で反復回数を決めます。ここで指定した回数、Rulesの処理を繰り返します。

Random ScaleやRandom Seedでランダムさを追加することもできます。


またノードに入力が4つあり、そのうち左側の3つはジオメトリの挿入に使用します。
左からJ,K,Mの文字に対応しており、ジオメトリをコネクトしてRule#に対応した文字を記述することで、ルール状の対応した場所にジオメトリを配置することができます。これを使って植物を作ってるのを見かけます。


あと、Lsystem(SOP)には、プリセットがいくつか組み込まれています。
パラメータのギアアイコンから表示されるメニューの下の方にプリセットはあります。
例えば、↓のようなプリセットがあります。

ざっくりでしたが、L-Systemの概要は以上!


 

ここからは、標準プリセットにはない作例をどんどん載せていこうと思います。

Sample001 – Hilbert curve 2D

2次元のヒルベルト曲線

lsystemsample_v001t04-hilbert_2-0001

 Permise  A
 Rule 1  A = -BF+AFA+FB-
 Rule 2  B = +AF-BFB-FA+
 Angle  90
 Generations  3

Sample002 – Hilbert curve 3D

3次元のヒルベルト曲線(ポリゴンの厚み付けてます)

lsystemsample_v001t04-hilbert_3-0001

 Permise  A
 Rule 1  A = ^/AF^/AFA-F^\\AFA&F+\\AFA-F\A-\
 Angle  90
 Generations  3

Sample003 – Sierpinski gasket01

シェルピンスキーのギャレット

lsystemsample_v001t04-sierpinski01-0001

Permise A
 Rule 1 A=BF-AF-B
 Rule 2 B=AF+BF+A
 Angle 60
 Generations  7

Sample004 – Sierpinski gasket02

シェルピンスキーのギャレット その2

lsystemsample_v001t04-sierpinski02-0001

Permise S-F-F
 Rule 1 F=FF
 Rule 2 S=F-S+S+S-F
 Angle 120
 Generations  7

Sample005

名前ありそうだけど知りません。

Permise FA
Rule 1 A=A+BF
Rule 2 B=FA-B
Angle 90
Generations 12

Sample006

Permise F++F++F
Rule 1 F=F=F+F–F+F
Angle 60
Generations 2

Sample007

再帰性が面白い。

Permise F++F++F
Rule 1 A=!”[B]////[B]////B
Rule 2 F=F+F–F+F
Angle 60
Generations 5

Sample008 – ぐるぐる

カーブのぐるぐる

lsystemsample_v001t04-curve01-0001

Permise A
 Rule 1 A=!”FFFB-A
 Rule 2 B=[C]
 Rule 3 C=!F+”C
 Angle 30
 Generations 30

Angleの値を変えてアニメーションさせると面白い。

lsystemsample_v001t04-curve01

Sample009 – 四角

四角い奴。Generationsをアニメーションさせた。

lsystemsample_v001t04-box

Permise A
 Rule 1 A = [B]+A
 Rule 2 B = F+B
 Angle 90
 Generations 0 -> 7

Sample010 – パイプ

パイプっぽいやつ。

Permise F
Rule 1 F=FF/F+F^
Angle 90
Generations 5

Generationsをアニメーションさせて、動かすと面白い。

 

つづく!

関連記事

  1. 2017.04.24

    Houdini:Now Loading
  1. 匿名 2016.12.15 9:09am


    Sample005にはドラゴン曲線という名前があるそうです。

    • 0
    • 0
    • kitagawa 2016.12.16 1:32am


      教えていただいてありがとうございます。そんなカッコいい名前があったのですね。

      • 0
      • 0

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

アンケート

記事の難易度についてどう思いますか?

View Results

Loading ... Loading ...

言語切り替え

  • English (United States)
  • 日本語

Archives

  • 2017 (11)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (54)

スポンサードリンク