みつまめ杏仁

アンリアルエンジン(UE4)でGUIを作るためにゴニョゴニョしてます。UIデザイナーの皆様の助けになれば幸いです。

キャラセレを作ってみる サムネイル編

前回の続き

ちなみにサムネイルのスペルは thumbnail ですよ皆さん。

選択用サムネイルを作る

まずはサムネイルの準備をします。テクスチャにはキャラクターの顔が複数並べてあるので、このままでは使えません。そこで部分的に切り出すためのマテリアルを用意します。

 

まずはマテリアルを作る

コンテンツブラウザにあるテクスチャアセット(赤い下線)のアイコンの上で右クリックすると、

f:id:hiyokosabrey:20170528225147p:plain

コンテキストメニューが現れて、中に Create Material という項目があるので選択します。

f:id:hiyokosabrey:20170528225027p:plain

できたマテリアルアセットのアイコンに適当な名前をつけて編集開始です。

すると最初からテクスチャノードがつながった状態になっています。

f:id:hiyokosabrey:20170528225333j:plain

この仕様が地味に便利だったりします。

後からテクスチャアセットをドロップしても構いません。

 

さっそくUMGで使うための変更をします。

右端の大きな茶色のノードをフォーカスした状態で、ウィンドウ左のDetailsタブから設定をUMG専用に変更します。

f:id:hiyokosabrey:20170528231246p:plain

UMGでマテリアルを扱う場合は必ず User Interface に切り替える必要があります。

Blendモードは、アルファチャンネル(透過)を使う場合は Tanslucent を選びます。アルファチャンネルが要らない場合は、Opaque(オペイク、不透明)を選びます。

 

設定するとグラフが変化します。つながっていた線が切れているのでつなぎ直します。

f:id:hiyokosabrey:20170528231229p:plain

つぎに、テクスチャを部分的に取り出すための TextureCoordinateノード を取り出します。グラフの何もないところで右クリックして 下図のように検索するか、

f:id:hiyokosabrey:20170528232031p:plain

キーボードの [U] キーを押しながら左クリックでも取り出せます。

取り出せたら下図のようにつなぎます。

f:id:hiyokosabrey:20170528232803p:plain

赤いTextureCoordnateノードをフォーカスした状態で、左のDetailsタブから値を入力します。

f:id:hiyokosabrey:20170528233130p:plain

UTilingVTiling の値をそれぞれ 0.250.5 と入力して書き換えます。

する下図のようにTextureSampleノードのサムネイルが変化します。

f:id:hiyokosabrey:20170528233314p:plain

どうなっているかというと、TextureCoordinateノードはテクスチャのタイリングを制御するノードです。このノードが最初に持っている値は 1.0 。これはテクスチャをすべてそのまま使うという意味です。それをより小さい値にしたことで結果的に一部だけを切り出すカタチになりました。テクスチャというのはUとVという座標系で管理されています。図で見てみると以下のようになります。

f:id:hiyokosabrey:20170528234936p:plain

というわけで

TextureCoordinateノードは、テクスチャの一部分をトリミングするのに使います。

(設定する値が ”Tiling”なので、タイリングするときにも使えます。)

さてさて、 左上のUVを切り出せたら、つぎにUVを移動できるようにします。

TextureCoordinateノードから出てきた値に足し算をしたいので、Addノードを間に入れます。(キーボードの Aキーを押しながらクリック)

f:id:hiyokosabrey:20170531001340p:plain

空いている B の入力ピンにつなぐのは UとVの2つの値なのでAppendVectorノードをつなぎます。

f:id:hiyokosabrey:20170531001854p:plain

エラーがでますがほっておいて、ScalarParmeterValueノードを2つ取り出してつなぎます。(キーボードの Sキーを押しながらクリック)

f:id:hiyokosabrey:20170531002433p:plain

このスカラーパラメータバリューというノードに、0.25とか、0.5とかの値を入れるとUVが移動しているのが確認できます。

f:id:hiyokosabrey:20170531002711p:plain

これで進めてもいいのですが、せっかくなんで楽をしたいと思います。

参考までに以前書いた記事を貼っておきます。

 

limesode.hatenablog.com

 できたのがコレ。

f:id:hiyokosabrey:20170531003020p:plain

小数点の数値だけが書かれたノードは、Constant(定数)ノードです。キーボードの1を押しながらクリックすると取り出せます。固定の値を扱うときに利用します。

左端の Index と書かれたノードが、後から値を渡すための ScalarParameterValueノードです。これに値(0~7の整数)を入れてみてキャラがいい感じに切り替わったらマテリアルは完成です。左上の Applyボタン → Saveボタンと押して閉じます。

 

新しくWidgetブループリントを作る

 サムネイル用に新しくWidgetブループリントを作ります。作り方は背景と同じです。

キャンバスに置くImageパーツは サムネイルのサイズ 256x256にします。

f:id:hiyokosabrey:20170531003907p:plain

このImageパーツにさっき作ったマテリアルをセットします。

背景のテクスチャと同じ要領で、コンテンツブラウザで先にマテリアルを選んでおくと、矢印ボタンでクリックするだけでセットできてラクチンです。

f:id:hiyokosabrey:20170531004228p:plain

 

アニメーションをつくる

サムネイルが登場退場するとき、あとはフォーカスされている状態の3つのアニメーションを用意します。

UMGのエディタウィンドウ右下に、緑色の +Animation ボタンがあるのでクリックします。

f:id:hiyokosabrey:20170531005035p:plain

クリックすると、すぐ下に New Aimation というのが現れるので、わかりやすい名前に変更します。この名前をフォーカスすると右側にタイムラインがアクティブになります。その状態でキャンバスに置いたImageパーツに動きを付けていきます。

f:id:hiyokosabrey:20170531011019p:plain

今回は0.2秒で、回転しながら拡大するようにしてみました。

f:id:hiyokosabrey:20170531011004g:plain

同じ要領で退場のアニメーションも作っておきます。

 

登場と退場ができたら、最後にフォーカスアニメーションです。登場と退場は無くても困らないですが、フォーカスしているかいないかは、UIにとってはとても重要な表現になります。マウスやタッチするタイプのUIではホバーアニメーションに相当します。

フォーカスのアニメーションは、サムネイルと同じ形で動かしたいので、サムネイルを切り出すために作ったマテリアルをDuplicate(複製)します。

マテリアルの複製を作ったらさっそく編集します。ほとんどいらないのでバッサリとノードを削除します。できたのがコレ。

f:id:hiyokosabrey:20170531012623p:plain

TextureCoordinateの値はそのままです。上にあるのは Vector3 ノードです。

RGBのカラーを扱うときに便利なノードです。キーボードの 3を押しながらクリックすると取り出せます。これをUMGに戻ってセットします。

再びキャンバスに、Imageパーツを配置します。ZOrderの値はサムネイルよりも大きい数値にします。

f:id:hiyokosabrey:20170531003907p:plain

ここに作ったフォーカス用のマテリアルをセットします。

f:id:hiyokosabrey:20170531013527p:plain

この白い●をアニメーションさせます。カーソルが乗っている間ずっと点滅するので、アニメーションはループするように作ります。

f:id:hiyokosabrey:20170601015848g:plain

アニメーションが3つできたらいよいよブループリントの編集です。

f:id:hiyokosabrey:20170531013759p:plain

 

随分長くなったので、いったんここまでにします。

次回サムネイル編2でお会いしましょう!

ではでは

ステキなサムネイルライフを!