Houdini回。Cloth系です。
忘れては調べてを繰り返すので備忘録も兼ねて。
Clothの一部分をターゲットオブジェクトの動きに完全に拘束する。
オブジェクトに”pintoanimation”というPointアトリビュートを持たせることで、そのポイントをターゲットポイントに完全拘束出来る。
この”pintoanimation”という名前がなぜだか私は覚えられない!
ここでは布に見立てたグリッドを用意。
ポイントアトリビュートpintoanimationを作り、布のはじっこは値1、それ以外は0にしている。
ここでは暫定的にpintoanimation=1に赤、0に青を割り当てて視覚化している。
ポイントアトリビュートpintoanimationの作成はAttribute Wrangleノードを使って下記のようなVEXを記述してそれを行った。事前にグリッドのX座標の最大最小値を出しておいて@min,@maxとしてます。
float value = fit(@P.z, @min, @max, 0,1); @pintoanimation = int(chramp("ramp", value));
この状態でアニメーションを付ける。こんな。
それをシミュレーションする。
シミュレーションの際、Cloth Object(DOP)の設定でTarge Deformationが設定されていないと、そもそもアニメーションの動きが反映されないので注意!私よく忘れう。
んで、シミュレーション。
pintoanimationアトリビュートの値が1の箇所は、元のグリッドの位置に完全拘束され、それ以外は布のシミュレーションの挙動になる。
pintoanimationアトリビュートはint型なので、単純な0と1での制御になる。
以上。間違い等ありましたらご指摘を!
サンプルファイルはこちら。
コメント