例えば、Twitter アカウント @LSystemBot が紹介しているこのような式を目にして、Houdini の L-System で実装したい場合の方法を紹介する。
使用したビルド: Houdini 15.5.717
1. Houdini の L-System
Houdini での L-System は以下の方法で作成する。
- Create シェルフで L-System ツールを Ctrlキーを押しながらクリック。
- Network エディタで lsystem_object1 ノードを選択し、ダブルクリックするなり、I キー押すなりして中に入る。
- lsystem1 ノードを選択。
- Geometry, Tube, Values、Funcs, Rules の4つのタブがある。まずは、
- Geometry タブ以下に Generation (世代)
- Values タブ以下に Angle (角度)
- Rules タブに行く。
- デフォルトでの設定は以下の通り。
つまりこの式のセットが、Geometry タブや Values タブの設定と併せて、ビューポートの樹木形状を定義している。
ただしこれは Twitter で見た式とは書式が大きく異なる。次にその変換方法を紹介する。
2. 式の変換
上記画像にある Houdini のデフォルトのL-System の式設定を LsystemBot の書式にすると大体以下のようになる。
{"start":"FFFA","rules":{"A":"!"[B]////[B]////B","B":"&FFFA"},"a":28,"iter":7}
つまり
- start のあとに定義されているのが Premise。
- rules 以下の括弧({から})の中 、コンマで区切られた式がそれぞれ Rule 1, Rule 2, ... となっていく。
- '"'(二重引用符) は不要、':' (コロン)を '=' で置き換える。
- a が Angle (Valuesタブ)、iter が Iteration (Geometry タブ)。
よって、LSystemBot の一行の式
{"start":"F","rules":{"F":"-FFFF","N":"-++FFF-"},"a":173,"iter":7}から Houdini 形式に変換する場合、次の要領になる。
- まず、最初と最後の括弧({ })を削除、コンマを改行で置き換える。
"start":"F" "rules":{"F":"-FFFF" "N":"-++FFF-"} "a":173 "iter":7
- '"'(二重引用符) を削除、':' (コロン)を '=' で置き換える。
start=F rules={F=-FFFF N=-++FFF-} a=173 iter=7
- rulesの前後のの括弧({ })を削除、各行をぞれそれ Rule 1, Rule 2, ... とみなし、Houdini の UIラベルで置き換えれば以下のようになる。
Premise: F Rule 1: F=-FFFF Rule 2: N=-++FFF- Angle: 173 Iteration: 7
- それぞれ Houdini のUI に挿入してみる。
Angle (Values タブ)と Iteration (Geometry タブ: この場合デフォルトのままなので変更不要)も忘れずに。
3. おまけ
Wikipedia にある式も同じ要領で使うことが可能。
例えば、Example 5 の Sierpinski triangleは、以下の要領で実行可能。
Premise: FG Rule 1: F=F-G+F+G-F Rule 2: G=GG Angle: 120 Iteration: 7
- 注意: Wikipedia からコピペする場合、'-' (マイナス) がハイフンになっているので置換する必要あり
ただし、ズームインすると一筆書きで書かれていることがわかり、面を作ってはいない。
面を作成するにはまったく別の処理が必要。これはまた別の機会に。
3. おまけ-2
- Houdini:L-system概要と作例01 (No More Retake)
- Houdini:L-system 作例02 (No More Retake)
- 14. L-Systems ノード (Houdini Kitchen for Games)
最終更新: 2021-11-20
0 件のコメント:
コメントを投稿