波形からシェイプを生成するフローを紹介しましたが、逆にシェイプから波形(アニメーションデータ)を生成する方法も、もちろん、あります。「シェイプからアニメーションを生成?」ちょっとイメージしにくいかもしれませんが、この使い方をマスターすると、 アニメーションのアプローチが増えますし、CHOPを活用する機会が増えると思います。
この例では、Particle SOPをアサインして、変形したサーフェースのポイント位置情報をSop to CHOP でアニメーションチャンネルとして取得しています。取得したポイント情報にSpring CHOPでフィルタをかけて、元のサーフェースに戻しています。Particle SOPだけではパーティクルのパラメータに基づく動きしかコントロールすることができませんが、パーティクルの計算結果を一度、アニメーションデータ化することで、まったく異なるアプローチで動きをさらに調整することができます。Touch077では実装されていませんが、Houdiniならば物理シミュレーションや流体シュミレーションで使うと面白いと思います。
SOP to CHOPの設定は簡単です。SOPパラメータで参照するSOPオペレータ名を設定します。GROUPを設定しておけば、一部の要素のみを取り出すことも可能です。今回は動的にポイント位置情報を取得するために、MethodをAnimatedに設定しています。Attributeはポイント情報を取得するためのローカル変数 P を設定します。ポイント位置以外に以下のようなアトリビュートを取得することができます。
Pw – Point weight – 1 value
Cd – Point color (red, green, blue) – 3 values
Alpha – Point alpha – 1 value
N – Point normal (X, Y, Z) – 3 values
uv – Point texture coordinates (U, V, W) – 3values
アニメーションをサーフェースに戻すフローは、前回紹介したChannnel SOPを使用します。ここで、注目したいのが、ポイントの位置情報のアニメーション化からサーフェースに戻るまでのプロセスで、「ポイント情報」という概念だけで、複数存在するポイントの何番目といったレベルの管理を一切考えなくても良いことです。部分的にコントロールする場合でも、グループを設定するだけです。ポイント番号は特に気にしなくても一連の流れの中で保持されているということです。逆にCHOPで意図的にポイント番号を操作することもできるので、いろいろと面白い表現ができると思います。