Point Cloud Building

ここでは、ポイントクラウドを使ったビルアセットを紹介する。ポイントクラウドにビルのパーツをインスタンスすることで、通常コピーよりも軽いビルアセットの作成が可能。

使用したバージョン: 15.5.588
HDA ファイルへのリンクは一番下にあり。

1. アセットのインストールおよび確認

  1. pc_building.hda を (Windows の場合) My Documents/houdini15.5/otls に格納。
      .hda のインストール先の詳細はこちらにあり。
  2. Houdini を起動。
      pc_building.hda が正しく認識されている場合、ビューポートで TAB キーを押せば、Digital Assets サブメニュー以下に PC Building というメニュー項目があるはず。

2. ビルの作成

  1. このアセットである PC Building を実行、Enter キーを押して確定。
      ネットワークビューに<ユーザ名>_pc_building1 というノードが出来るが、ビューポートには何も表示されない。
      このノードは以降 pc_building1 とする。
  2. Create シェルフの Curve ツールを使い、カーブを出来るだけ大きめに描く。
  3. Enter キーを押して確定。
      ビューポート上部のツールバーの中央部にある Close のトグルを押してカーブを閉じても良い。
  4. ネットワークビューで pc_building1 ノードを選択、パラメータビューに pc_building1 のパラメータが表示されるようにする。
  5. 上記の状態で curve_object1を掴んで、pc_building1 の Object1 パラメータフィールドにドラッグ&ドロップする。

    結果ここのパラメータは /obj/curve_object1 となり、ビューポートには、ビルが出現する。

    ズームアウトした状態。
  6. pc_building1 の Length パラメータを 10 にした状態。

    20にすればさらに伸びる。
  7. Create シェルフから Circle を実行。ビューポート上部のツールバーで、
    • Primitive Type を NURBS に
    • Orientation を ZX Plane に
    • Radius を 10 と 10 に
  8. この /obj/circle_object1 を pc_building1 ノードの Object1 パラメータに接続。ビルは以下のように変形される。

    他のノードを接続したり、カーブを編集したりすれば、編集に応じてビルの形が変わる。

まとめ

  1. ネットワークビューの pc_building1 ノード上で RMB->Allow Editing of Contents を実行。ノードをアンロックする。
  2. ダブルクリックするなり、i キーを押すなりして pc_building1 ノード内に入る。
      中には以下の8つのノードがある。
  3. ノードの配置通り、大まかに3つに分けることが出来る。
    • 左側: 各パーツ、すべて非表示状態
      • LowerWindow (1階部分の窓)
      • UpperWindow (2階以上の窓)
      • Crown (ひさし)
    • 中央: ビル生成のための主要要素、非表示状態
      • input_curve (入力カーブをとってくるノード)
      • PointGenerator (ポイントクラウド生成ノード)
    • 右: ビルの表示要素、表示されている
      • Corners (ビルの角になる部分)
      • Roof (屋根)
      • instance1(窓2種類、ひさしを、ポイントクラウドを元にインスタンスした結果)
  4. 左側の各パーツは、それぞれモデリングされたジオメトリ。Houdiniでプロシージャルにモデリングされていても良いし、他で作った形状データを File ノードを経由して持ってきても良い。
  5. 中央の PointGenerator がこのアセットの肝。入力カーブを元にポイントクラウドを縦に生成、line2 ノードが高さを決定している。それぞれのポイントに対し name 文字列アトリビュートを作成。高さによって、アトリビュートの値を LowerWindow, UpperWindow, Crown のいずれかに設定している。
  6. 右側の instance1 ノード内の attribwrangle1 が name アトリビュートの値を元に、どのパーツがインスタンスされるかを決定している。
      Corner は元カーブの頂点付近を (carve ノード)で切り離し、それを単純にビルの高さに PolyExtrude している。

0 件のコメント:

コメントを投稿