HoudiniでVectorField(.fga)を作成する方法(サンプルプロジェクト付き)
前書き&サンプルプロジェクト
これ↓に利用しているVectorFieldの作成方法です。ちょっといじれば他の形も簡単に作れます。
Houdiniで焼いた.fgaを3Dテクスチャに落としてSigned Distance FieldとしてVisualEffectGraphへ当ててみました。動画で利用している.fgaは、過去に作ったゴブレット型のものです。 #VisualEffectGraph pic.twitter.com/vlTAlb9JOM
— 40 (@dr40san) November 5, 2018
早速ですけどサンプルプロジェクトです。 記事ではざっくりとした解説しかできないので、サンプルプロジェクトを見てもらうとよりわかりやすいかもしれません。 .hipncで作ってあるので、無料のHoudini Apprenticeで開けるようになっています。
HoudiniのGame Development ToolSetが事前に必要です。
GameDev ROP VectorField
というノードがあって、これを使って.fgaを作成します。
作成した.fgaは、UE4などへインポートして使うことができます。 UnityのVisual Effect Graphでも使うことができるのですが、3Dテクスチャへのコンバートが必要になります。 これはまた別の記事として書こうと思います。
作り方
ゴブレットのポイントクラウドを作成する
一言で説明するなら、NURBSをResample SOPでバラしたあと、Copy SOPで回転コピーして形にします。 ついでにWrangleでAttributeへ各PointののTangentを入れておきます。 PolyFrame SOPは、Tangentを取得するために使います。
画像とてもわかりにくくて申し訳ないんですが、点の集合でゴブレット型ができました。
ポイントクラウドからVolumeの作成
Bound SOPでバウンダリボックスを作成して、Volume SOPへの引数とします。
Volume VOP内でVectorFieldの値を取得する
Volume VOPをつなげます。 第一引数はVolume、第二引数に先ほど作成したポイントクラウドを与えておきます。
VOPの中身です。 Output2を引数にPoint Cloudとして扱い、 Point Cloud Filterで各点のAttributeを取得して、Bind Exportヘ流しています。
シーンビューだとこんな感じ。
その後、GameDev ROP VectorFieldへ流せば完成です。
ノードのRenderボタンを押せば、ファイルが出力されます。やったね!