【Houdini】Resampleでランダムシードを制御してみる
Verは16.5.571です
今回は、このResampleノードで、ランダムシードの調整に関する事を。
ほかの方法でいくらでも代用こそできますが、使い道の一つとして便利なのかなと思ったので。
そもそもResampleとは?
このResampleノード、よく使われる使い方としては、恐らくポイント数を増やしたり減らしたり、になると思います。
CurveのNURBSでポイント数4つで作ったカーブ。
これをResampleノードを使うと、細かく分割する事が出来ます。
ポイント毎のエッジが直線で繋がっていて、モデリングしたりする場合は基本的にこちらを使うことになります。
また、逆に増やしすぎたのを、減らしたりする事も出来ます。
赤の部分のチェックを外して(ここは距離で制御する場合に使います)
黄色にチェックを入れて、紫の下線の数値にポイント数が制御されます。
ランダムシードの制御について
ランダムシード、所謂ランダム性に関するものです、VEXで記載する場合でシンプルな例では
rand(@ptnum)
ポイント番号に対して、0~1の乱数を与えるわけです。
ポイント番号なので、ポイント番号が変われば数値を変えることができます、この制御を今回はこのノードを挟んで作ってみます。
今回のサムネにあるものを例として、複製する位置を、この輪っかから作ります。
複製する場所はここから取ります、Circleで直ぐに出てきます。
ランダムシードの調整で便利なノードとしてあるのが、Sortノード
これはポイント番号を制御したりする際に使いますが
機能の一つに、ポイント番号をランダムにする機能があります。
この機能で制御するのですが、番号がランダムに入れ替えるだけなので
ポイント数が少ない場合、制御出来る幅が非常に小さいという点です。
そこで、最初のランダムにする時のポイント数を増やしてから、Resampleで削減します。
ツリーとしてはこんな感じです。
Circle2では、複製するポイントの元を作ります
Sortで、ポイント番号をランダムに入れ替えます
attcreでは、ここでポイント番号を元に、必要な数値をアトリビュートに保存しておきます。
最後にResample2にて、ポイント数を、最終的に必要な数値に削減します。
最後のResampleを入れる前に、アトリビュートとして保存しておくのを忘れずに。
こうしておくと、元々のcircle2のノードのポイント数によって、ランダムな数値がアトリビュートに格納されていきます。
サムネの画像は、ここで入れておいたアトリビュートの数値を使って、CopyStampノードでランダム性のある複製をしたものです。
今回はここまでです。
Houdiniでのランダム性の制御はかなり色々手段あると思うので、便利そうな方法を試していきたいところですね。