見出し画像

[UE4] [UMG] UIデザイナーのマテリアル中級。動かす2「位置」

UIデザイナー向けの、UMGのデータの作り方を紹介しています。

今回の内容


使用する主なノード

TextureCoordinate (ショートカット  [U]+クリック)
BreakOutFloat2Components

AppendVector

ComponentMask

Panner 
(ショートカット  [P]+クリック)
Time
Frac

初期状態の確認

下図はノードの初期状態です。
手前の炎の形状と、形状の塗りの色、背景の位置確認用グリッドの絵の3つの要素を Lerp で合成しています。

画像20


TextureCoordinateについて

TextureCoordinate は配置情報を内包しています。
そこに移動させたい位置の情報を足して移動させます。

画像22

まずは、TextureCoordinate ノードに、Add ノードをつなげて、
 Constant2Vector ノードに水平(U)、垂直(V)の移動したい距離を入れて足します。

値を入れると移動します。

画像21

プラスの値を入れると水平方向は左、垂直方向は上に移動します。
UE4のWidgetBluprintでプラス値は右下。方向が逆なので直します。

Add
ノードを Subtract に置き換えると 水平(U)垂直(V)ともにプラス値で右下に移動します。

画像23

位置の値を入れるノードを、UとVで別に分けるときは、
Constant ノードを2つ用意して、AppendVector でつなぎます。

画像24


丁寧な組み方

下図の組み方は、
TextureCoordinate の配置情報を、
BreakOutFloat2Components でUとVの値に分けて、
それぞれに値を足して、
それを AppendVectorで再びまとめています。

画像26

下図は、2つの ComponentMask を BreakOutFloat2Components の代わりに使っています。
上の組み方と、中身はほぼ同じです。

画像26


超簡単な Panner

画像2

Panner は移動のループアニメーションが簡単に作れるノードです。
Speedピンに Constant2Vector をつないで横方向・縦方向の移動速度入れるだけで画像が動き出します。

画像10

ちゅうい!
 Panner をアニメーションで使うときは注意が必要で...
テクスチャ設定X/Y-axisTilingMethodClamp だとピクリとも動きません
Panner でのアニメーションは画像のタイリング設定を、Wrap(もしくはMirror)にしてください。

画像11

Panner を位置の調整に使う

Panner をアニメーションをさせずに、止め絵での表示位置調整に使ってみましょう。
Time の値を 1 にして、Speed に移動させたいUV方向の値を入れます。

とても簡単ですね。

画像12

タイリング!
画像の設定が Wrap の場合、画像の端にはみ出した部分が反対側に表示されます。

画像11

そして、
位置調整として使う場合は、画像設定が Clamp でも問題ありません。

画像11

簡単便利な Panner ですが、 Clamp だとアニメーションしないので注意して使ってください。


アニメーション

Panner でのアニメーションは、画像のタイリング設定がWrapのみなので、
最初に紹介した組み方で、アニメーションを作ります。

というわけでまずは、
画像のタイリング方法を XY ともに Clamp にしてください。

画像20

今回作るアニメーションは、
左から右へ移動して右端まで行って消えたら、
再び、左から現れ右へ移動。
これを繰り返すアニメーションを作ります。

するべき事の確認です。
最初に組んだノードで、位置 U の入力に値 0.5 を入れてみました。
この状態で図柄が右端にかかって、ちょうど半分になっています。
ということで、値が 1 で図柄が右側に全部移動して消えることがわかります。逆に、値 -1 だと画像の位置は左側の端に出ます。
ということで、左端から出現して右端に移動するには、
Uの値を -1 から 1 に変化させ、これを繰り返せばよいということがわかりました。

画像22

まず、
TimeFrac という2つのノードをエリアに追加して下さい。

Time はタイマーのように時間をカウントし続けるノードです。
小数点以下も出力するので、この部分を使います。

画像20

Frac は値の整数部分を除いて、小数点以下だけにしてくれるノードです。

画像20

TimeFrac をつないで、 U の値をつないでいたピンに挿してください。
画像が中央に表示され、右端へ消えていくのがわかります。

画像22

必要な値は、-1 から 1 ですが、
Frac から出力された値は 0 から 0.9999...なので、
-1から0 の部分が足りません。

というわけで、イイ感じの値になるよう加工します。
下図をみてください。

 1. Frac から出力された値に Multiply2 を掛けます。
  これで 0 から 1 が、0 から 2 になります。

 2. それに add で -1 します。
  0 から 2 だった値が -1 から 1 になります。

画像16

こんな感じです。
上手いことアニメーションしています。

画像22

速度や方向も調整したいので、
TimeFrac の間に、Divide を挿んでスピードを調整できるようにします。

画像22


ちなみに、速度の入力欄に マイナス値を入れると反対側に動きます。
せっかくなので V にもつないでみました。

画像22


今回は以上です。
アニメーションの動き・波形の作り方については、まだまだ説明がたりないので、このシリーズの4回目にじっくり紹介するつもりです。

次回、3回目は「スケール」ついて紹介します。




この記事が気に入ったらサポートをしてみませんか?