【Houdiniおすすめノード2選】Labs Tree Generator/Mask by Feature

# はじめに
こんにちは、株式会社GENEROSITYの奥田です。
今回はクリスマスに向けたアドベントカレンダーということで、Houdiniの便利なノードを用いて簡単にクリスマスツリーを作成してみました。
このクリスマスツリーを作るのに使用したノードが大変便利であったためその中から2種類紹介したいと思います。

<img width="400" alt="ChristmasTree (0-00-00-29).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3906724/71a1f1ab-a4f1-c02d-79cb-fe9481c7ae82.png">




### 作品制作の流れ

今回制作したクリスマスツリーは下記手順で制作しました。

1. Labs Tree Generatorを用いて木の作成
1. Mask by Featureを用いて雪の作成
1. レンダリングしてAfter Effectsを用いてコンポジット

といった簡単なステップになります。


この中から紹介するノードは
- <font color="rgb(107, 142, 35)">**Labs Tree Branch Generator geometry node**</font>
- <font color="rgb(107, 142, 35)">**Mask by Feature**</font>
こちらの2つです。

使用したHoudiniのバージョンは20.5.370です。

# ノードの紹介
今回使用したノードをSideFXの公式サイトを参考にしながら説明していきます。

## Labs Tree Generator

まずは1つ目のLabs Tree Generatorについて。

https://www.sidefx.com/ja/tutorials/tree-generator/

詳しくは公式サイトをご覧頂きたいのですが、
 Labs Tree Generatorを使用するとこのように手軽に木をジェネレートすることができます。

<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3906724/17b5e075-2952-48bf-ee54-58dd62e4edcb.png">

上のモデルを作るのに使用したノードはこれだけです。
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3906724/f562fc21-8ba5-8288-f705-2cef620f71c0.png">

上から順番に
- <font color="rgb(107, 142, 35)">**Labs Tree Controller geometry node**</font>

https://www.sidefx.com/ja/docs/houdini/nodes/sop/labs--tree_controller.html

このノードで他のtree系ノードを制御することができます。
このノード一つですと機能しないものの、
Labs Tree Trunk Generator geometry node（幹）とLabs Tree Branch Generator geometry nod（枝）を繋げることで、木の形を制御することが可能になります。


- <font color="rgb(107, 142, 35)">**Labs Tree Trunk Generator geometry node**</font>

https://www.sidefx.com/ja/docs/houdini/nodes/sop/labs--tree_trunk_generator.html

次につなぐのが幹を生成するノードです。このノードでは幹の長さや太さなど幹の形状について細かく制御することができます。

- <font color="rgb(107, 142, 35)">**Labs Tree Branch Generator geometry node**</font>

https://www.sidefx.com/ja/docs/houdini/nodes/sop/labs--tree_branch_generator.html

そして枝となるのがこちらのノードです。
このノードは連続して繋ぐことが可能で、幹から伸びた枝をさらに枝分かれさせていくことができます。
枝別れの数や太さや角度など細かく設定できます。


ここまでが木の部分の生成です。

--------

ここから葉の生成です。

- <font color="rgb(107, 142, 35)">**Labs Tree Controller geometry node**</font>

https://www.sidefx.com/ja/docs/houdini/nodes/sop/labs--tree_leaf_generator.html

こちらのノードでは葉をどこの位置にどのように設置するかを制御することができます。
右側の青のインプットは葉のモデルを読み込む場所です。
生成されるそれぞれの葉の重力の受け方などもLoop処理で行っているためランダム性のあるリアルな葉を再現することができるようです。

- <font color="rgb(107, 142, 35)">**Labs Tree Simple Leaf geometry node**</font>

https://www.sidefx.com/ja/docs/houdini/nodes/sop/labs--tree_simple_leaf.html

今回は葉っぱにはこちらのノードを使用しました。
実際どのようなモデルを繋いでも良いのですが、こちらのノードは葉の形状などもrampパラメータを使用して調整できるため、任意の葉を再現しやすいのではないでしょうか。


ここまでで木のジェネレートは完成です。

-------

## Mask by Feature
 続いて紹介するのはMask by Featureノードです。

 https://www.sidefx.com/ja/docs/houdini/nodes/sop/maskbyfeature.html

 今回は雪を簡単に積もらせるために使用しました。
 こちらのノードはジオメトリの特定の特徴を元にマスクを生成するためのツールです。
 雪を積もらせるにあたって、上から見たときの木のジオメトリをマスクとして使用しました。

 <img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3906724/ed2d4cf8-8b47-c3ee-28ce-4e365343a7ec.png">

赤い部分がマスクの部分であり、画像のようにグラデーションがかかるようにコントラストの調整をすることもできます。また、赤い部分にdensityアトリビュートを付与することで、マテリアルの透明度や雪のpscaleに使用することができました。

<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3906724/c5947192-5c9c-63d9-2c55-560945b908a6.png">

今回は使用しませんでしたが、
ノードのインプットにジオメトリを複数個接続して、マスクを抜くことも可能です。
詳しくはこちらのYouTubeがわかりやすかったため、興味のある方はご覧ください。


<iframe width="560" height="315" src="https://www.youtube.com/embed/GZxo0TGD4DE" title="Houdini | Mask By Feature | Node Bible Quick Tip" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>


こちらのノードはかなり汎用性が高いと思いますので、ぜひ使用してみて欲しいです。

# まとめ

今回は簡単に作ったクリスマスツリーをもとに、2つのノードを紹介しました。
私自身Houdini勉強中の身ですので、他にこんなノードがおすすめ等ありましたらコメントいただけると嬉しいです。

長くなりましたが、みなさんのHoudiniライフに役立てたら幸いです。