Copy to Points で 配置ジオメトリの時間オフセット

ひさびさのHoudiniの記事です。

業務内で Copy to Points SOP を使用して、アニメーションがついたジオメトリを配置する際に、時間オフセットをして配置を行いたい場合がありました。

ネットでいろいろ調べたところ、海外の記事しか出てこなかったので、自分へのメモも含めて書いていこうと思います。

今回、最終的に出来上がるのは、下記のようなものになります。



・配置用のジオメトリの準備

まずは、Copy to Points SOP で配置する用のジオメトリを作成します、今回は上のような火花っぽいものを配置していきます。


Fileノードの設定

配置用ジオメトリの作成が終わりましたら、キャッシュを作成し、Fileノードで読込む必要があります。

Fileノード、キャッシュのパスの指定が完了したら、「Load」を「Packed Disk Sequence」に、「Display As」を「Full Geometry」に、「Frame Range」をキャッシュのフレームレンジに変更してください。



配置先のPointの仕込み

Point発生フレームのアトリビュート格納

配置先のPointは、Popでランダムに発生させているのみですが、発生フレームをオフセット調整時に使用したいので、POP Wrangle を使用してアトリビュートを作成します。

if(@has_pprevious == 0){
    f@startFrame =@Frame;
    }
    






Copy to Points Sop 適用後の調整

配置用ジオメトリの作成が終わりましたら、Copy to Points Sop に繋ぎます。

繋いだだけでは、上の動画のように、すべてのジオメトリの再生フレームが同じになってしまっているので、調整を行います。


Wrangleでオフセット調整

オフセットを行うには、Intrinsicアトリビュート「Index」の調整をWrangleを用いて行います。
こちらの「Index」の値が、配置ジオメトリのキャッシュ再生フレーム番号になりますので、先ほど格納した配置先のポイントの発生フレームのアトリビュートを使用して、発生フレームにIndexの値が「0」になるように調整します。

setprimintrinsic(0,"index",@ptnum,@Frame-@startFrame,"set");




調整を行いますと、上のように、時間のオフセットが行われたジオメトリが配置されます。



以上、短いですが、Copy to Points SOPで 配置ジオメトリの時間オフセットの方法になります。
今回のサンプルのデータもアップしましたので、よろしかったらどうぞ。(Houdini 18.5.351で作成)

サンプルファイル

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です