SubstepとInterpolateのメモ。
適切に設定してエラーを回避しよう。
これによるエラーはほぼ起きないけど…
POPなどGeoemtry
POP NetworkのSubstepsが1以上(画像はすべて4)の場合
キャッシュを取らない場合
キャッシュを取った場合
当然だが、FileCacheした時点で整数フレームしか存在しないため、Substepを上げても間が埋らない。
POP SourceのJitter Birth Timeを入れても間は埋まらないことがある。
この状態でv
を与えてエミットさせると画像のようになったりする。ちなみにv
を計算するタイミングでも結果が変わるので注意。
補完方法
これは、$FFでキャッシュを取るのでもいいが、キャッシュが重いとかなり時間が厳しくなる。
代わり、FileCacheノードのあとにRetimeノードを以下の設定でつなぐと間を自動で保管してくれる。
さらに、この方法のメリットは、Output / Input Frame RangeをFileCacheのFrame Rangeに合わせることでキャッシュがない前後フレームの処理を指定することができる。
これで一部ノードのキャッシュがなくてCookできないエラーを回避することもできる。
例:Trailノードで前フレームがないのにTrail Lengthの値を上げた場合やv
の計算をした際など
Volume
Volume(vなし)
Volumeでも同じことが一応起きる。
velでごまかせることが多いので目立つ場合以外はやらなくてもいいとは思う。
SubstepはPOPと同じ4で、Retimeのパラメーターは以下
velがない場合はby Voxel Positionで補完ができる。
Volume(vあり)
velも同時に補完した場合。velがあるだけで境界線がきれいになる。
velも保管する場合。
RetimeはfloatのFieldしか保管できないようなので、一度vをVDB Vector Splitでfloatに変換する。
変換前のvectorのvをvelにリネームしてMergeし、以下のRetimeの設定で保管する
その後補完にしようしたvectorのvelは不要なので削除し、floatになっているvをVDB Vector Mergeでvectorに再結合する。
おまけ(確認方法)
Global Animation OptionのInteger Frame Valuesをオフにし、タイムスライダをドラッグすることで確認できる。
実際にFileCache後にタイムスライダを動かして少数フレームの動きを見てみるとカクカク動いている。
実際にRetimeで保管すると以下のようになる。