Long distance to the dream

UE4+ゲームのお話。Bloggerからの移転です→https://ue4gaming.blogspot.jp/

【UE4】UVのスケール拡大、位置をずらす

ネットで調べてもあまり情報が出てこなかったので書いてみました。

 

テクスチャのUVを変えるのに「TextureCoordinate」というノードをよく使います。

このノードはプロパティを見ると「UTiling」と「VTiling」とあってテクスチャをタイリングするためのノードなのですが、タイリングの数を増やしたり減らしたりすることでUV、テクスチャのサイズを調整することができます。

 

またUVチャンネルををRとGチャンネルに分割してそれぞれのチャンネルに値を加えることでUVの位置をずらすことが可能です。

 

スタート時の状態

f:id:Resonant:20180112125012p:plain

 

次にキャラクターのテクスチャにTextureCoodinateノードをつなげます。

f:id:Resonant:20180112124919p:plain

TextureCoodinateを繋げてUTiling、VTilingの値を変えると(例えばUTiling 2、VTiling 2にすると)UVが分割されて画像が小さくなります。この際分割されることでもともと正面にあったキャラクターの位置が四隅にバラけてしまいました。

 

キャラクターの位置を中心に置くようにするためこのUV情報に変更を加え位置を調整します。

手順を先に述べると、最初にTextureCoodinateのUVチャンネルを分割して個別のチャンネル毎に値を変更できるようにします。この分割されたチャンネルにAddノードを加え一方のインプットにParameterで任意の数値を加えられるようにします。

このParameterは位置をずらすパラメーターなのでX_Position,Y_Positionと名付けます。

そして次にこの分割されたチャンネルをまた一つのチャンネルに統合します。

 

調整後のノードの構成は以下になります。

f:id:Resonant:20180112132049p:plain

UVチャンネルの分割には「BreakOutFloat2Components」ノードを使います。このノードはアウトプット名から分かるようにRとGチャンネルに分割します。

RとGはUとVどちらに対応しているのか確認してみて下さい。

 

そしてそれぞれのチャンネルにAddを加えScalar Pramノードを作ってそれぞれの位置を調整できるようにします。

あとは「MakeFloat2」で再度一つに統合するだけです。

 

最後に、テクスチャのスケールもパラメーターでまとめて変更できるようにノードを組んでみました。

f:id:Resonant:20180112133127p:plain

 

 おわり