No More Retake

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

メニュー

Houdini:Damping V&W

Houdini回!
Geometry Wrangle(DOP)で強制的に、アトリビュートvとwを減衰させる方法です。

「RBD PackedでPOP Drag Spin(DOP)使うとおかしなことになる」、というので、代わりになるものはないかと調べたらodforceに減衰についてのスレッドが立ってました。ありがたや。

何もしないのとの比較動画を作ってみました。上が通常、下がWrangleでのDamping有効。

DOPネットワークは標準的なRBDの組み方。

赤く色付けたノードGeometryWrangle(DOP)に以下のようなVEXコードを書いて、減衰させているそうな。

v@w *= 0.98;
v@v *= 0.98;

毎処理ごとに、v(速度)とw(回転)の値に0.98がかけられていきます。
24FPSの場合1秒後には、0.98の24乗=0.615…、とおよそ6割になります。
なかなか減りますね。減衰させすぎると不自然な動きになるので注意が必要です。

odforceのスレッドでは、最終的に次のようなコードが紹介されていました。

float d = 0.5;
v@w *= pow(d, @TimeInc);
v@v *= pow(d, @TimeInc);

頭いいなと思いました。
変数dの値で、1秒後にどのくらいvとwの値を減衰させられるか指定できるようになっています。ここでは0.5なので、1秒後にそれぞれvとwの値は半分になります。2秒後にはさらにその半分と、どんどん半分になっていきます。

以下、式についてもうすこし解説。

つまり変数dの値によって1秒後の減衰率をコントロールできると。あたまいいなと思いました。

これはサブステップ1のときなので、1以上サブステップを切った祭は、それを考慮した式にしないといけない・・・たぶんね。

でも、あたまいいなとおもいました。

以上、また次回!

サンプルファイル RbdDamping_Sample.hiplc


参考

https://www.sidefx.com/forum/topic/57357/#post-256852

関連記事

  1. The 2023.09.21 8:22pm

    お疲れ様です。
    こちらのHip拝見させていただきました。
    PreSolveにWrangleをつながれておりますがPostとの使い分けのようなものを教えていただけませんか?

    • 0
    • 0
  2. kitagawa 2019.11.17 6:42pm

    @TimeIncにsubstepの数を掛け算すればOK

    • 0
    • 0
  3. s 2019.11.16 11:21pm

    サブステップが1以上(例えば2)になった場合は、この場合どうすればいよいのでしょうか?

    • 0
    • 0

このサイトについて

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

RSS

follow us in feedly

Archives

  • 2024 (4)
  • 2023 (2)
  • 2022 (9)
  • 2021 (14)
  • 2020 (46)
  • 2019 (17)
  • 2018 (33)
  • 2017 (29)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (55)

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

Houdiniを使えるようになる本