ナレッジ

TexCoord - テクスチャ座標について

UE5マテリアルの TexCoord(テクスチャ座標)の仕組みと、移動・タイリング・歪み・UVアニメーションへの応用

TexCoordとかいう赤いノードは何をしているのか。

TexCoordノード

0. TextureSampleと画像の表示

Texture Sample をベースカラーに繋いだシンプルなマテリアル。

Texture Sampleをベースカラーに繋いだマテリアル

UVs とは

Texture SampleのUVsピン

UVs は表示するテクスチャの位置を指定するピン。
「画像のこの部分の色を表示してね」みたいな感じ。

UVs に float2 の値を繋ぐことで、その位置の画像の色を表示してくれる。

Texture Sample に指定した画像

UV座標図

UV値を変更した結果

U で横方向の位置、V で縦方向の位置を指定している。

UとVの方向

UVs の初期値は?

TexCoord を繋いだマテリアルと見た目がまったく同じになる。

UVs未接続とTexCoord接続の比較

つまり UVs に何も繋がっていない場合は TexCoord が使われている

1. テクスチャ座標について

TexCoordノード

TexCoord = Texture Coordinate(テクスチャ コーディネート)の略。
日本語でテクスチャ座標

ベースカラーに繋ぐとカラフルなグラデーションが表示される。

TexCoordをベースカラーに接続

TexCoordのグラデーション

横方向に赤のグラデーション、縦方向に緑のグラデーションを合わせたもの。
逆に言えば R に横方向の情報、G に縦方向の情報が入っている

Mask で色ごとに分けて確認できる。

R のみ(横方向)

Rのみのグラデーション

G のみ(縦方向)

Gのみのグラデーション

横グラデーションと縦グラデーションの構成

2. テクスチャ座標の考え方

TexCoord を Texture Sample の UVs に繋ぐと画像がそのまま表示される。

TexCoordをTexture Sampleに接続

グラデーションだと理解が難しいので、一旦モザイク化して考える。

テクスチャ座標の各ブロックの値が、画像のどの位置を表示するかを表している。

テクスチャ座標と画像の位置の対応

モザイクを細かくしていくと、表示される内容もどんどん細かくなる。

モザイクを細かくすると表示も細かくなる

モザイクの座標参照

Important

メッシュに画像を貼るというより、メッシュのテクスチャ座標で表示する画像の位置を選択している

ちなみにMayaでも同じことをしている。

Mayaでも同じ仕組み

3. テクスチャ座標の利用

テクスチャ座標の値が画像の位置を表すので、
テクスチャ座標の値が変わると表示されている内容も変わる

足す → 移動

TexCoord に値を足すと表示が横にずれる。

TexCoordに値を足した結果

ブロック状にして考える。足す前はそのままの位置。

足す前の状態

数字で表すと、例えば真ん中が (0.5, 0.5)。

真ん中が(0.5, 0.5)

U(横)に値を足すと (1.0, 0.5) になる。

Uに足して(1.0, 0.5)

画像を表示してみると、足した分ずれている。

足した分ずれた表示

掛ける → 大きさ(タイリング)

TexCoord に 3 を掛けると 01 だったものが 03 になる。

3倍でタイリング

同じように画像を参照するので、繰り返し(タイリング)になる。
1 を超しても繰り返して画像が表示される。
繰り返すか繰り返さないかは設定で変えることができる。

0から3の範囲の参照

Tip

移動は 足す・引く / 大きさは 掛ける・割る

4. テクスチャ座標の応用

模様でずらす

テクスチャ座標に模様(テクスチャ)を足すことで、模様の形にずらすことができる。

模様でずらすアニメーション

シンプルにずらすノード

TexCoord にずらす量を加算している。

シンプルにずらすノード構成

模様でずらすノード

ずらす量が Texture Sample になっても同じようにずれる。

模様でずらすノード構成

時間でアニメーション

Time ノードを足すことで、時間で流れるアニメーションになる。

時間で流れるアニメーション

Timeノード

時間を取得することができる。おそらくゲームを起動してからの時間。

Timeノード

時間でずらすノード

ずらす量が Time ノードになっている。

時間でずらすノード構成

中心で拡大・回転

中心で拡大は Scale UVs By Center

中心で拡大するアニメーション

Scale UVs By Centerノード

回転は Custom Rotator

回転アニメーション

Custom Rotatorノード

Tip

ノード名は検索で出てくるのですべて覚えなくてもよい。
Scale UVs By Center の場合、「拡大(scale)」と「中心(center)」さえ覚えていれば検索できる。

ノードの検索例1

ノードの検索例2