【Houdini HDA 講座】#5.5 実践編

技術共有
2024-07-25 ツノ

今回の目標

今回は実践編として、家にディテールを加える課題に取り組んでみましょう。

どのようにノードを組んで解決しても良いですし、自分で課題を設定しても大丈夫です。

課題をすべてこなすと、以下のようになります。

5_5_008.png

注意点

基本的にどのように改造を行っても #6 の講座(Houdini Engine for Unreal)の内容には影響がありませんが、注意点として HDA の内部から入力ピンやパラメータ以外の手段で HDA の外部にあるデータに直接参照を持たせるのは避けてください。

HDA 単位で Unreal Engine に持ち込むので、 HDA の外部のデータが剥がれ落ちてしまいます。

(ドアなどのパラメータを介して参照したデータは別データとして Unreal Engine に持ち込みます。)

※これを行ってしまった場合、 HDA を保存する際に警告ウィンドウが出ます。

課題① 家の基礎

家に以下のような基礎(土台)を付けてみましょう。

(分かりやすいように赤色にしています。)

※家を安定して固定するための、半分地面に埋めるコンクリートの部分です。

土台の厚さや縦方向の大きさを HDA のパラメータにしておくと後から変更しやすくて便利です。

5_5_005.png

ヒント

poly extrude SOP (押し出し)を 2 回用いて作ることができます。

押し出す箇所を指定するためには Group をあらかじめ設定しておいて、 SOP の Group パラメータで指定をします。(poly extrude SOP に限らず、多くの SOP では Group パラメータで操作箇所を指定できるようになっています。)

5_5_006.gif

課題② 屋根の層

屋根に層を作ってみましょう。

※実際に屋根を観察するとこのように屋根の上部と下部は総構造で別パーツになっていることが多いです。

層の飛び出し幅や分厚さを HDA のパラメータにして変更できるようにしておくと便利です。

5_5_009.png

ヒント

課題①とほぼ同じで、押し出しを 2 回行います。

以下の画像では①とは少しだけ違う手段で行っています。

5_5_007.gif

画像では初めの押し出しは poly extrude SOP の Inset パラメータを用いて外側方向に押し出しをしてから2回目は法線方向に押し出しを行っています。

課題③ 屋根のフレーム

以下の画像のように、屋根の縁の部分(赤)や棟の部分(青)にフレームを追加してみましょう。

5_5_001.png

フレームの幅や厚み、縁・棟のフレームを有効にするかどうかなどを HDA のパラメータにすると便利です。

こちらは今まで講座では使用したことのない SOP も利用しますので、難易度が上がります。

必要に応じてヒントを利用してください。

ヒント

基本的には、以前講座でも利用した poly expand 2D SOP を軸として利用します。

poly expand 2D は"縁取り"のように利用することができるので、屋根の縁の部分や棟の部分を縁取りするという発想です。

ただ、 poly expand 2D はその名の通り同一平面上に存在するジオメトリにしか適用することができないので、工夫が必要です。

まず、屋根の棟の部分を平面的に作成した部分(「lift_ridge」と名付けた wrangle で行った部分の手前の部分)のジオメトリを Labs Edge Group to Curve SOP を用いて Curve に変換します。

5_5_001_2.png

そして、 この Curve に対して poly expand 2d を用います。

5_5_002.png

すると、このように平面的なフレームを作ることができます。

次に、このフレームを立体化します。

まず、 poly extrude SOP で以下のように押し出しを行います。(底は閉じてください)

5_5_003.png

そして、この形をフレームの切り出し範囲として、これと屋根のポリゴンを boolean SOP で処理することで、以下のように屋根からフレームになる部分を切り出すことができます。

5_5_004.png

boolean (ブーリアン)はモデリングでは一般的な処理ですが、立体的な形状で A + B や A - B 、 A かつ B や A または B といったような演算を行うことができるノードです。

今回は、先ほどの形状と屋根の形状を Intersect で処理します。

注意として、boolean SOP の左の入力(A)と右の入力(B)のそれぞれの Treat As パラメータに注意してください。

今回の屋根のポリゴンのように体積の無いモデルの場合は Surface (表面)に設定し、体積を持つフレームの切り出し範囲の場合は Solid (固体、中身のあるもの)に設定します。

最後に、切り出したフレームを poly extrude SOP で押し出して少し厚み付けをします。

課題④ 窓

窓の HDA を家の HDA とは別で作成してみましょう。

パラメータによって以下のようなバリエーションで形状を変えられるような窓を作ってみましょう。

  • 横と縦の大きさ
  • フレームの幅
  • はめ込み窓(ガラス1枚)とスライド窓(ガラス2枚)を変更できる

5_5_010.gif

UV 展開も行っておきましょう。

この HDA は House HDA と同じ場所に作りましょう。(別の場所でもいいですが、 house HDA の内部に作らないように注意してください。)

5_5_011.png

作成した窓は、ドアを設置した仕組みを使ってパラメータから設置することができます。

5_5_012.png

こちらはヒント無しです。

今まで学習した知識を応用すれば作成できるはずなので、ぜひ挑戦してみてください。

さいごに

今回も保存を忘れずに行ったら、今回の内容はこちらで終わりです。

この講座自体かなりの情報量なので、ここまでを完璧に理解できていれば色々な形状が作れるようになっているはずです。

WEB 上のチュートリアルも理解しやすくなっていると思います。

Houdini の HDA 構築はあとはほとんど、ノードの使い方をどれだけ知っているかの勝負です。

なので、色々なチュートリアルを見ればさらに成長することができると思います。

時間があれば雨どいやエアコンの室外機などを作って家をさらに発展させてみたり、好きなものを作ってみたりしてください。