Flowmapの仕組み
フローマップとは、水などの流体の方向と速度を格納したテクスチャです
動かないニュートラルなベクトルを(Rチャンネル128,Gチャンネル128,Bチャンネル0)とし、
RチャンネルがX軸方向、GチャンネルがY軸方向のベクトルを表したものです。
色の強さが速度になります。
タイミングをずらしたものをフェードでLoop処理するなどして使用します。
以前のゲーム開発ではポリゴンを細分化して、UVの配置の工夫で流れを表現していましたが、
近年はFlowMapを使うことが多いようです。
フローマップの作り方をチュートリアル形式で解説します。
(Houdini FX Version 18.0.287)
完成モデル
障害物に見立てたスフィアに沿って水の流れが変わっています。
これがフローマップの効果です。
ネットワークの全体図
ネットワークの全体図です。
流れとしては、Gridが水面オブジェクトに、
Shpereが障害物となるオブジェクトになります。
水面オブジェクト表面上にSphereを複製配置し、
水面Gridにフローマップを適用させます。
各ノードの設定値
Grid
水面となるグリッドをPrimitiveType [polygon]で作ります
Row、Columnsに50を入れるなど、ある程度細分化しておきます
Sphre
障害物となるSphereを作る
Scatter
グリッドからScatterで点郡を取得
CopyToPoints
Copytopointで障害物のSphereをコピー配置する
UVTexture
グリッドにはYAxisでUVを貼る
Flowmap
flowmapを適用
VisualizeFlowVectorにチェックを入れるとY+にVectorが向いているのが確認できる
Line
おおまかな流れをLineで指定
本来は川の流れに沿ったSplineなど、
Transform
Transformで位置を調整して、
FlowmapGuide
・FlowMapGuideを適用、Input2に先程作った流れのガイド用Curveを繋ぎます。
Strength(強さ)
EffectWidth(幅)
Falloff(エッジ周りの減衰)
GuideSampleCount(ガイドサンプル数)
の指定が出来ます。
Velocityがガイド用のラインに沿って傾きました。
FlowmapObstacle
・FlowMapObstacle(障害物)Input2にコリジョンジオメトリを繋ぎます。
コリジョンに合わせて流れの方向が変更されます。
Strength(強さ)
DivisionSize 分割サイズ
DilateVolume コリジョンのボリュームを拡縮
BlurStrength ぼかし強度
の指定が出来ます。
FlowmapToColor
・FlowmapToColorでカラーをつけて、
Unityは逆なので、Unityで使うときにはFligGreenChannelにチェックを入れてGChannelを反転させます
FlowmapVisualize
・FlowmapVixualizeでビジュアル化
確認用のテクスチャの流れを見ながら、
DiffuseTiling,Speed,DistortionAmount,FlowmapModeの指定をします。
Merge
・最後にMergeノードで、障害物とまとめて、パラメーターを調整します。
Null
Flowmapを書き出すために、NullでわかりやすくOUTを作ります。
GamesBaker
out にコンテキストへ移動して、GamesBakerを配置
TargetMesh(LOW),TargetMesh(High)に水面オブジェクトを指定し、
Resolutionにテクスチャの解像度を入力
BasePathに書き出し先のパスと名前を入力
ChannelsにはBaseColorにチェック
完成
↓↓Youtubeで動画でも確認できます↓↓
以上、Houdini Flowmapの作成方法 でした。
コメント