概要
今回、卒業制作で使用する組木細工のアニメーションに使った手法について質問が多かったので記事にします。
硬く書こうと思ったんですが無理なんで適当に行きます。
組木細工
日本の伝統技能で、主に障子や小物に使用される、木を組み合わせて作られる形状。六角形の形が多い。
この画像は去年Mayaで作ったものです。
六角形で出来ているがほとんど正三角形を組み合わせて出来ているので、正三角形で幾何学形状を作成します。
L-system使うと簡単。
方法
まず、Remesh等を使用して望んだ濃度の三角形を作成します。
その三角形それぞれにこの今作った形状を添わせればいいだけです。仕組みとしてはそれだけ。
じゃあそれをどうやるのか、ポリゴン中心点と方向合わせてコピーする、VDBにしてコピー等色々考えましたが、一番簡単に出来たのは「Point deform」を使用した方法でした。
point deformはその名の通りポイントをデフォームしてくれるノードです。
変更するオブジェクト、ガイドするオブジェクト、移動先で入力し、ガイドと移動先は同じポリゴン数である必要があります。
こんな感じに別で作ったアーマーをアニメーションする人に着せたりすることができます。
ちなみに佐久間先生の授業で知りました感謝。
method studioのMVも多分コレかxyzdist使って作ってるんじゃないかな。重いけど応用が結構効く楽しいノード。
添わせる
では、まず敷き詰めたい三角形状のオブジェクトを作ります。
今回、僕はこれで行きます。
まず、ForEachPrimitivノードでプリミティブ1つ1つに処理が出来るようにします。
次に、それで取り出した3角形をデフォームしたい形状と同じ形にします。
自分はVEXで書きました。
@P=point(1,"P",@ptnum);
で添わせることができます。
これでpoint deformに必要な変更するオブジェクト、ガイド、移動先が出来ました。
これらを繋いで完成です。
ね?簡単でしょう?
応用
応用でアニメーションタイミング変えるとこんなのが出来る。
コレは評判が良かったり、気が向いたら書きます。
質問や意見があれば遠慮なく。