2021-12-14

Match Size only on the first frame

Match Size を使うと、直感的にオブジェクトの位置合わせが行える。 このノードの使い方は、Paul Esteves 氏のチュートリアル の5番目が詳しい (楽しい)。

例えば、スモークシミュレーションを原点以外で行ったものの結果や、別パッケージからキャッシュファイルに対し Match Size を使って原点に移動しようとすると、最初のフレームだけでなく、その後のフレームすべてで再計算が行われるため、スモークのようにバウンディングボックスがだんだんと大きくなるものであれば、その都度移動してしまう。ここでは、その回避方法を紹介する。

なお、これは Houdini Apprentice Advent Calendar 2021 の 10日目の記事です。



使用したビルド:

  • Houdini 19.0.460 (Windows 10)
シーンファイルへのリンクは一番下にあり。

1. 元シーンの作成

Houdini を起動し、

  1. Simple FX シェルフから Simple Billowy Smoke ツールを Ctrl クリック。
      ビューポートでは原点にスモークが現れ、ネットワークエディタには、billowy_smoke ノードが出来る。
  2. billowy_smoke ノードをダブルクリックなり I キーを押して中に入り、一番上の smoke_base を選択。Center の値を 10, 0, 0 なり、100, 0, 0 なり、好きな値に変更。
  3. Object レベル (/obj) に戻り、Geometry ノード(geo1) を一つ作成。
  4. geo1 ノードをダブルクリックなり I キーを押して中に入る。この時、ビューポート右上のメニューの一つで Hide Other Objects を選択し、他の階層のオブジェクトがビューポートに表示されないようにする。
  5. ここ (geo1) 内に Object Merge ノード (object_merge1 ) を作成、
    1. Object 1 の右端の '+' に似た Choose Operator パネルで、 /obj/billowy_smoke/RENDER_Billowy_Smoke を選択。
    2. Transform を Into This Object に設定
  6. この状態で再生すれば、シミュレーションが原点以外で作られたことになる。
これを元データとみなす。

2. Match Size の使用: 問題点

  1. object_merge1 の出力に Match Size ノード (matchsize1) を接続。
  2. 原点に移す場合は、
    1. Justify Y のみ None にする。
    残りはデフォルトのまま。
これで再生すれば、最初のフレームでは原点にスモークの発生源があるものの、シミュレーションが進んでバウンディングボックスの大きさが変われば、毎フレーム移動してしまう。

これを次に修正する。

3. Match Size の使用: 修正

  1. matchsize1 のパラメータビューの一番下にある Stash Transform を有効にする。
      使用するアトリビュートは xform のまま。
  2. matchsize1 の出力に、Time Shift (timeshift1) を接続、
    1. Frame パラメータのレベル上で RMB-> Delete Channels を実行して既存のエクスプレッションを削除。
    2. 代わりに 1 を入力、常に1フレーム目が評価されるようにする。
  3. Attribute Copy ノード (attribcopy1) を作成。
    1. 左側の入力に object_merge1 を接続
    2. 右側の入力に timeshift1 を接続
    3. Attribute Name をデフォルトの Cd から xform で置き換える。
  4. attribcopy1 の出力に Transform by Attribute ノード (transformbyattrib1) を作成。
    • Transform Attribute が xform (デフォルト) である必要がある。
  5. 表示フラグを transformbyattrib1 に移し、再生すれば、今度はスモークが原点固定になったことがわかる。
この方法を使えば、持ち込んだシミュレーションデータがどのくらい原点から離れていたとしても、どんなパッケージから来たとしても対応可能。

リンク

0 件のコメント:

コメントを投稿