Flow Map (フローマップ / 流れマップ)は、ゲームグラフィックスのレンダリングや最適化(テクニカルアート)において極めて重要となる技術用語です。テクスチャのRGB値を2次元の『移動ベクトル(流れの方向と速度)』として利用し、水面、マグマ、ガス、雲などをUV座標の動的変形によって自在に流動させる軽量シェーダー技術の解説。

現実世界での例え:川の表面に『水流の向きと速度が書かれた矢印付きの道路マップ(ベクトルマップ)』を敷いておき、水面のテクスチャをその矢印の向きに沿って自動的に歪ませながら流し続ける流動ガイドシステム

水面テクスチャ全体をただ愚直にスクロールするのをやめ、フローマップの矢印(RGベクトル)の指示に従って、「この岩の周りは右に避けて流れろ」「ここは流れを2倍速くしろ」と、ピクセルごとにUV座標の変形(テクスチャの歪み)をダイナミックに指示し、時間経過に伴うテクスチャのブレンドフェード(のこぎり波によるリセット処理)を行うことで、ポリゴンや物理演算を1mmも使わずに、岩を避けて流れる本物そっくりの川の水流を作り出します。

Flow Map (フローマップ / 流れマップ) concept infographic diagram

図:Flow Map (フローマップ / 流れマップ)の基本的な処理フローと仕組みを日本語表記で分かりやすく図解したインフォグラフィック

詳細な仕組みと動作原理

赤(U方向の速度)と緑(V方向の速度)でベクトルの向きを描いた「フローマップ(Flow Mapテクスチャ)」を用意し、シェーダー側で毎フレームUV座標にこのベクトルのオフセットを加算してテクスチャを動的に歪ませて流します。