copy stamp

ここでは Houdini では頻繁に利用する Copy ノードとその Stamp 機能を以下の3つ分けて紹介する

  1. Houdini で Copy ノードと Stamp 機能の基本的な使用法 (このページ)
  2. 頂点カラー によるコントロール (別ページ)
  3. マテリアル設定によるコントロール (別ページ)

使用したバージョン: 15.0.377
参考シーンファイルへのリンクはパート3の一番下にあり。

パート1: Houdini で Copy ノードと Stamp 機能の基本的な使用法

1. 元シーンファイルの作成

Houdini ではおなじみの Torus と Grid を Copy ノードに接続し複製する手法。

  1. Grid (grid1)を作成
    • Size を48 x 48
    • Rows と Columns はそれぞれ 12
  2. Torus (torus1)を作成。設定はデフォルトのまま。
  3. Copy ノードを作成
    • 左側の入力に torus1 を、右に grid1 を接続。
    • Transform Using Template Point Attribute をオフにする。 これで Torus が正しい方向に向く。
    出来たノードネットワークは以下の通り。
ここまでが 00_initial_setup.hip。

2. Box と Switch ノードの追加

複製された Torus の 一部を Box に入れ替えるため、Box と Switch ノードを追加する。

  1. 同じネットワーク (grid_object1) の中で TAB-> Box で Box ノード (box1) を作成。設定はデフォルトのまま。
  2. Switch ノード(switch1)を作成
    • torus1 と copy1 をつなぐ線の上に挿入。
    • box1 の出力を switch1 の入力に挿入。
    ここまでで出来たノードネットワークは以下の通り。
  3. switch1 ノードの Select Input の値を 0 から 1 に変更すれば、Torus がすべて一括で Box に置き換わる。 0 に戻せば Torus に戻る。

    これを一部を Torusに、残りを Box にしたい。

3. Stamp の使用

複製の条件を変えたり、Copy ノードから Switch ノードの挙動を制御するには、Copy ノードの Stamp の機能を使う。

  1. Copy ノードの変更
    • copy1 ノードの Stamp タブに行き、Stamp Inputs をオンにする (忘れることが多いがこれをオンにしないと有効にならない)。
    • その下のタブ群に行き、1-10 タブ以下、
      Variable 1 にrand (実際のところは何でも良いが後で別の場所に記述する)
      Value 1 に

      $PT%2

      と入力。
  2. Switch ノードの変更
    • switch1 ノードの Select Input のフィールドに以下のエクスプレッションを入力。

      stamp("../copy1", rand, 0)

      ここの "rand" は、copy1 の Variable 1 で指定たものと同一である必要がある。

      ビューポート上の結果は以下の通り。

      Torus と box が交互に配置されている。これは、 $PT%2 によって、grid1 のポイントインデックス番号 ($PT) を2で割った時の余り(% が剰余算)を求め、0 であれば Torus、1 であれば Box としているから。
  3. エクスプレッションの変更
    • copy1 ノードの Stamp タブに戻り、Value 1 に記述したエクスプレッションを

      rand($PT)

      と変更する。ビューポートの結果は以下の通り。rand() 関数により、分布がランダムになる。

      このように $PT を元にしたエクスプレッションを変更すれば、それに応じた配置結果を得られるし、オブジェクトの数を増やすことも可能。
    ここまでが 01_end_of_copy_stamp.hip。

パート2に続く。

0 件のコメント:

コメントを投稿