【Unreal Engine 5】円形に UV スクロールする方法3選

この記事では、Unreal Engine 5 で円形に UV スクロールする方法を紹介します!
処理の大枠は Unity など他ツールでも同様ですので、Unreal Engine に触れたことない方も読み進めていただけますと幸いです。

対象読者

・エフェクトデザイナー
・マテリアルに興味があるデザイナー

環境

・Unreal Engine 5.6.1

平面を円形に変換

【全体像】

  1. 『VectorToRadialValue』で平面の UV を 円形にする。
  2. 『Time』 ノードで V 軸をオフセット。
  3. U 軸の切れ目が発生しないよう、極座標前の UV で『DDX』『DDY』を算出。

『VectorToRadialValue』で平面の UV を 円形にする

ざっくりいうと “極座標 (Polar Coordinate) ” 処理をしています。
『TexCoord』をそのまま『VectorToRadialValue』に入力すると円の中心が左上になってしまいます。
円の中心をもともとの UV の中央にするために、『Subtract』で “-0.5 ~ 0.5” のベクトルにしています。

『Time』 ノードで V 軸をオフセット

定番の処理です。一定速度で UV スクロールさせています。

U 軸の切れ目が発生しないよう、極座標前の UV で『DDX』『DDY』を算出

【切れ目の例:わかりやすいように滑らかなテクスチャを使用】

極座標だけの場合、上記のように切れ目が見えてしまいます。
これは MipMap の問題です。
「MipMap を使用しない」or「DDX, DDY を設定」で解消でき、今回は後者の処理を組んでいます。

【『Texture Sample』の設定】

DDX, DDY は「隣接ピクセルの UV 座標との差分」であり、これをもとにミップマップの値が決まります。
極座標したときの “U = 0” と “U = 1” のつなぎ目において、「ピクセル UV 座標が 1 動いた」と判定されることがあり、これが切れ目(ミップが極端に低い部分)です。

DDX, DDY は極座標前の UV を渡せば、切れ目が発生する原因がなくなりきれいになります。

FlowMap

【全体像】

  1. FlowMap(外から内側への方向ベクトル)を作成
  2. 内側に引き伸ばされた UV を作成
  3. 『FlowMaps_Simple』に必要な情報を入力

FlowMap とは

主にRとGの値で「どの方向へ、どれくらい動かすか」を指定して行う、UV アニメーションです。
テクスチャ A と UV をずらしたテクスチャ A′の遷移を繰り返し、滑らかにアニメーションがループします。

【『FlowMaps_Simple』の最小構成】

処理としては上記のようになっています。

FlowMap(外から内側への方向ベクトル)を作成

  1. 『TexCoord』で “0 ~ 1” の RG 情報を取得。
  2. 『Subtract』で 0.5 減算し “-0.5~0.5” に変換。
  3. 『Length』で中心からの距離を算出し、『1-x』で中心が大きくなるように反転。
  4. 2 と 3 を乗算し、内向きのベクトルを算出。
  5. 『Normalize』で 4 を正規化。
  6. 後の処理で『FlowMaps_Simple』の規格に合うよう、X に -1 を乗算。
    ┗ 関数内で -1 乗算されているため、それを打ち消す。

今回は一定速度で UV スクロールさせたいため、5 の処理を行っています。
4 のままだと外側ほど遅い速度のスクロールになります。

内側に引き伸ばされた UV を作成

『TexCoord』と 内向きの方向ベクトル を合成しています。
「Stretch_Intensity」で UV の引き伸ばしを調整できます。

Stretch_Intensity = 0.2

Stretch_Intensity = 0.5

Stretch_Intensity = 0.8

『FlowMaps_Simple』に必要な情報を入力

今回は Diffuse, Flow Vector Map, Time, UVs を使用しています。

Swirl

【全体像】

  1. 回す角度を決める。
  2. 『Sine』『Cosine』で U,V それぞれどれだけ回転するか算出。
  3. 『Dot』で回転後の位置を算出。

UV を渦巻き形状に歪め、テクスチャを流しています。
厳密に “外側から中心” のように UV スクロールしているわけではありませんが、それに近い動きをしているように見えます。

回す角度を決める

中心から外側に行くにつれて大きく回転するようにします。
『Swirl_Intensity』で回転の最大値を調整できます。

『Sine』『Cosine』で U,V それぞれどれだけ回転するか算出

U, V それぞれの回転後の U’ , V’ の向きを計算しています。
例えば U の場合、以下のようなイメージです。

① 元々の U
X 方向。

② 回転後の U
(cosθ, sinθ)。 ← 回転後の「X」という方向。

『Dot』で回転後の位置を算出

「もともとの UV」 と「回転後の UV」を比較し、その変化量を算出しています。
これを U, V それぞれ行うと、渦巻き状の UV ができます。

まとめ

今回は Unreal Engine 5 で円形に UV スクロールする方法を紹介しました。
紹介した方法を使うことでビルボードでも Circle 系のメッシュ のような UV の動きができます!

また、Unreal Engine に限定した処理ではないため、ご使用の環境でお試しいただけますと幸いです。

VFX_Haku

3Dエフェクトデザイナー。たまに社内向け勉強会やってます。
興味がある分野は業務効率化やワークフロー整備、シェーダー開発。Python学習中!

投稿者記事

  1. READ MORE

    【Maya : Bifrost】Vector Field を書き出して UE5 の Niagara で使用する

    2026-01-06

  2. READ MORE

    【Maya : Bifrost】Dual Mesh(バリア形状)ノードを自作しよう

    2025-11-12

  3. READ MORE

    【Houdini】エフェクトテクスチャ作成にコペルニクスを使ってみよう

    2025-10-14

  4. READ MORE

    【Substance 3D Designer】Spline でライン状のテクスチャを作成しよう

    2025-09-08

関連記事

  1. READ MORE

    【Unreal Engine 5】リアルな爆発エフェクトの作り方&解説 Part②

    2024-02-15

  2. READ MORE

    【Unreal Engine 5】エフェクト撮影で使える簡単な背景の作り方

    2025-07-09

  3. READ MORE

    【Houdini】ポイントアルファをカーブで制御しよう

    2024-04-17

  4. READ MORE

    【Maya : Bifrost】スパイラルカーブ(ストランド)作成方法

    2024-11-14

ページ上部へ戻る