HoudiniでVectorField(.fga)を作成する方法(サンプルプロジェクト付き)

前書き&サンプルプロジェクト

これ↓に利用しているVectorFieldの作成方法です。ちょっといじれば他の形も簡単に作れます。

github.com

早速ですけどサンプルプロジェクトです。 記事ではざっくりとした解説しかできないので、サンプルプロジェクトを見てもらうとよりわかりやすいかもしれません。 .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を取得するために使います。

f:id:fortysan:20181106234832p:plain

画像とてもわかりにくくて申し訳ないんですが、点の集合でゴブレット型ができました。

f:id:fortysan:20181106234946p:plain

ポイントクラウドからVolumeの作成

Bound SOPでバウンダリボックスを作成して、Volume SOPへの引数とします。

f:id:fortysan:20181106235225p:plain

Volume VOP内でVectorFieldの値を取得する

Volume VOPをつなげます。 第一引数はVolume、第二引数に先ほど作成したポイントクラウドを与えておきます。

f:id:fortysan:20181106235344p:plain

VOPの中身です。 Output2を引数にPoint Cloudとして扱い、 Point Cloud Filterで各点のAttributeを取得して、Bind Exportヘ流しています。

f:id:fortysan:20181106235438p:plain

シーンビューだとこんな感じ。

f:id:fortysan:20181106235641p:plain

その後、GameDev ROP VectorFieldへ流せば完成です。

f:id:fortysan:20181106235736p:plain

ノードのRenderボタンを押せば、ファイルが出力されます。やったね!

f:id:fortysan:20181106235822p:plain