No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

Houdini:ForLoop and TimeShift

Houdini勉強回。取り上げるのはForループとTimeShift(SOP)。
ここで言うForループとは、Block Begin/End(SOP)ノードによる繰り返し処理のことを指しています。
これとTimeShift(SOP)の併用についてがメインテーマです。

上図のように、Forループ内にTimeShift(SOP)を組み込んだ場合、大抵TimeShift(SOP)が機能しないのですが、まれに機能している例を見かけ、はて?と思いリサーチしてみた次第です。

結論から述べると、現状Forループ内でTimeShift(SOP)が機能するのは、以下の2パターンのみ。
・・・たぶん、・・・おそらく、・・・めいびぃ。
ひとつはカウント系のループ。
もうひとつの方はひとことで説明するのが難しいので、それについては後述します。

 

カウント系ループとTimeShift(SOP)の併用について

ここで言うカウント系ループとは、”n回”処理を繰り返す、というように回数を指定するループ処理のことを指します。
Tabメニューからだと”For-Each Number”。
Block End(SOP)ではパラメータのIteration Method=”By Count”の設定のループ処理です。

この設定であれば、特に難しいことを考えずにForループとTimeShift(SOP)の併用が可能。
ためしに、こんなのを作ってみました。


ネットワークはこんな。

シーンファイルはこんな。forloop_Sample01.hiplc

基本は入力のジオメトリを複製しながら時間をずらすため、瓦礫など複数あるものに適用するとなるとちょっと難しいです。
またカウント回数を指定しなければならないので、プロシージャルに作ろうとするとひと工夫必要。

しかし、確実にTimeShift(SOP)が機能するという点、手法として分かりやすいという点では重宝するかと。

別解

先に述べた、もうひとつの設定。
解説用として、こんなのを作ってみました。

これは本来、下絵のように一斉に落下する破片のシミュレーションですが、この各破片に対してForループでTimeShift(SOP)を適用して1フレームずつ落下のタイミングをずらして作成しています。

ネットワークはこんな。

手法のイメージはこんな感じ。わかる?
一旦、全部Forループ内に取り込んで、処理したい破片だけ残して他削除、TimeShiftを適用。これを破片の数だけ繰り返して、結果を統合する。少々強引な印象も受けるが、ともかくこれならTimeShiftが効く。
あとはシーンファイルを見てくれ。forloop_Sample02.hiplc

他の設定のForループはどうなのか?

上記の2つ以外にもForループの設定はいろいろあるが、それらはどうなんだというと・・・試した結果ダメ。

詳しく知りたい人はシーンファイルを見てくれ。forloop_Sample03.hiplc


Forループ処理が現在の仕様になって今は昔。このTimeShift(SOP)との併用だけが、前のが使いやすかったなと感じていたのですが、現在の仕様でもやりようはあると分かりました。
調べてみるものですね。

他にうまくいく設定や組み合わせがあったら教えてください。

以上! また次回!!

参考 https://www.sidefx.com/forum/topic/53471/

関連記事

  1. 2014.12.03

    Houdini:FluitDrop

コメントをお待ちしております

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

言語切り替え

  • English (United States)
  • 日本語

Archives

  • 2021 (4)
  • 2020 (46)
  • 2019 (16)
  • 2018 (33)
  • 2017 (29)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (55)

スポンサードリンク