みつまめ杏仁

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

最近のツイートまとめ

f:id:hiyokosabrey:20200503093516p:plain

UE4でUI制作の何かに役に立てれば~と思って始めてみましたが、どうなんだろう。少しはキッカケになってUE4を触り始めた方がいればいいなぁとそんな妄想をしながら先週もネタをツイートしていました。この記事はそのまとめです。

 

先週のフチドリを改造

f:id:hiyokosabrey:20200503094320g:plain

 

 

前に紹介したフチドリを、一つのマテリアルで表示、非表示を切り替えられるように改造しました。

 

f:id:hiyokosabrey:20200503094609p:plain

テクスチャのカラー(RGBの方)にフチドリの色が入っているせいで、表示した際に若干フリンジが出てしまっていたのを、軽減する対策を入れてみました。

f:id:hiyokosabrey:20200503100448p:plain



 

可変できる引き出し線

f:id:hiyokosabrey:20200503101534j:plain

一見無駄に折れてるように見えて、でもなんとなくいい感じの引き出し線をメニューのフォーカスに追随するようにしてみました。

 

 

 動きはTwitter に動画を上げているので上のリンクから確認できます。

 昔スプライトでUIを作るしかなかったときに、すごく面倒な指定書をプログラマに渡して作ってもらった記憶がある。別のハードではポリゴンで作ったりして、当時頂点を触ることができなかったので長さの違うのを数タイプつくって切り替えてもらってた。

 

 今はUMGで、一人でさくっと作れてしまう時代。

f:id:hiyokosabrey:20200503102233p:plain

f:id:hiyokosabrey:20200503102302g:plain

 

f:id:hiyokosabrey:20200503111253p:plain

ただこの方法には欠点があって、サイズがマイナスになると見た目がおかしくなる。

f:id:hiyokosabrey:20200503102848g:plain

 

一応アレンジしたやつも作ってました。

f:id:hiyokosabrey:20200503114246j:plain

ワールドに置いたオブジェクトの座標をスクリーン座標に変換して、あとはラインにマテリアルでアニメーションを付けました。動きは以下のツイートから確認できます。

 

 

 

 

2Dだけどテキストの影で3Dっぽく見せる

f:id:hiyokosabrey:20200503114705j:plain

 

 

 動きはTwitter に動画を上げているので上のリンクから確認できます。

 普通に3Dでつくればいいんですけどね。

 最初、マウスカーソルのホバー演出でダイナミックに開閉するメニューを作ろうとしたんですが、VerticalBox内での表示順を制御する方法が見つけられなくて、いろいろキャンバスをいじっているうちにこうなりました。

 せっかくなので、テクスチャとかUMGのアニメーションを使わないでやってやろうという謎の使命感で仕上げました。

 

 影がぴょんぴょんするのはこんなマテリアル。

f:id:hiyokosabrey:20200503115435p:plain

移動量を加算する直前で、0.0 か 1.0 をかけると動きをOn、Offできる仕様。

 

 

 

ディゾルブを作ってみた

f:id:hiyokosabrey:20200503120006j:plain

 

 

 動きはTwitter に動画を上げているので上のリンクから確認できます。

 Epicのおかずさんがツイートされてるのを見て、気になって公式のPVを見てたらふと作りたくなった表現です。

 

 

  0:20 付近から漫画のコマ割りを活かした2Dのデモが入るのですが、絵パーツごとに動いてるので、汎用的に使えるマテリアルを作れないかと試してみたものです。

 

f:id:hiyokosabrey:20200503121407p:plain

 ふるふる震える動きは、下のようなノイズテクスチャを用意して頂点に加算しています。

f:id:hiyokosabrey:20200503121540p:plain

 TexCoodinate の Tiling の値を小さく( UVの範囲を小さく)して、各頂点がバラバラに動かないようにしています。

 あとはWidgetブループリントで出現アニメーションとディゾルブの量を制御してます。

f:id:hiyokosabrey:20200503121926p:plain

 きっちり1画面に収まったのが気持ちよかったです。

 私が少年期に出会った雑誌に1画面プログラムというコーナーがあったのを思い出しました。1画面に収まるようにテキストベースでぎっちぎちにプログラムのコードを書くチャレンジングな企画で、ブループリントでもやってみたら面白いかもしれません。

 変数名やら関数名、ピン名を極限まで少なくして可読性なんて気にしない、とにかく動けばいいんだ的なやつ。ノードの重なりはNGということで。こういうミニマムでも面白いことができるというハックみたいなのに憧れます。

 

 

あつ森のUIが気になるシリーズ スマホ

『あつ森』とは Nintendo Switchのソフト、『あつまれ どうぶつの森』 のことです。

f:id:hiyokosabrey:20200503123339j:plain

 

 

 動きはTwitter に動画を上げているので上のリンクから確認できます。

 実際に遊んでて動きが気になってよく見てると、波打った表現が入ってたので真似してみました。完全再現が目的ではないので、それっぽくしてるにとどめています。

 ただできそうというだけが動機で、やってみたらそれっぽくなったというやつです。

 

 ちょっとテクスチャを節約したかったので、1/4だけ作って並べてます。

f:id:hiyokosabrey:20200503123741p:plain

 これを4枚並べると、Imageパーツそれぞれに Get Dynamic Material するか、別にCreate Dynamic Materialしたものを、あとから4つのImageパーツにセットすることになるので、なんかなーと思っていたら、マテリアルパラメーターコレクションがあるじゃないかと、閃いたわけです。

f:id:hiyokosabrey:20200503124223p:plain

f:id:hiyokosabrey:20200503131234p:plain

 サイン波をタテ方向のUVに足してやることで、ピクセルを波型に引き伸ばしています。

 今回UMGのアニメーションと同期させたかったので、見えないパーツを一つ追加してそのアニメーションさせた値をTickで拾って流しこんでます。

f:id:hiyokosabrey:20200503132309p:plain

 

いやほんと、細かい動きが実装されてますね。

 

 

 

あつ森のUIが気になるシリーズ カーソル編

f:id:hiyokosabrey:20200503132646j:plain

 

週末ネタ切れ感ハンパないですね。またしてもアツ森からいただきです。

 

 

 文字列の長さに合わせて、カーソルの長さも可変してて、さらに決定ボタンを押したときはカーソルの端にパターンアニメーションのような演出が入ります。

 これもUMG使いとしてはやってやれるとこを見せないわけないはいけません。(謎の使命感)

 まずカーソルのパターンアニメーションを用意。

 

f:id:hiyokosabrey:20200503133659g:plain

 

これをテクスチャにする。128x512 ちょっと贅沢かも。
 f:id:hiyokosabrey:20200503133642p:plain

表示した際に左側は位置が固定なので、反転したパーツを置いてもよかったかも。

そうするとテクスチャ半分で済むな。と、今この瞬間この記事を書きながら思いました。

 

色とUVはマテリアルでコントロール

f:id:hiyokosabrey:20200503134956p:plain

これを Box にすることで可変する長さに対応。

f:id:hiyokosabrey:20200503133850p:plain

 

選択肢用の子Widgetを用意しています。

f:id:hiyokosabrey:20200503134537g:plain

ヒエラルキーは、CanvasPanel を親にして、カーソルとテキストブロックをひとつづつ配置。

カーソルは親キャンバスにフィットするようにアンカーを設定。

親キャンバスは、子に配置したテキストブロックに対して、Size to Content を設定しておくだけ。

 

あとは、フォーカスの切り替えと決定時のアニメーション再生をWidgetブループリントで制御。

f:id:hiyokosabrey:20200503135848p:plain

UMGのアニメーションでスプライトシートとかUVシーケンスみたいなのが使えたらこういうパターンアニメーションを仕込むのラクになると思うんだけど、もっといい方法があるのかな。

一定のパターン数を表示したら、イベントディスパッチャーで通知して、ウィンドウそのものを消す流れにしています。

 

 

 

今回はここまで

 やることとデザインが決まっていればサクッと作って表示するとこまでは簡単なのですが、やっぱりUI制作の一番の難しさは、未来との折り合いの付け方です。

 ゲーム制作に慣れてくればある程度の 読み ができるのですが、船を作ってる途中で、陸上も走れるようにしようとか言いだすと、設計の見直しは必須。

 なので、いろんな作り方で臨機応変に対応できるよう日頃から脳筋の柔軟体操をしておくのが大切だなと改めて思う次第。

 UIを研究するにはいい機会なので、みなさんぜひ目コピしましょう。ゴールがある分作りやすいはず。そこから機能性や有用性を広げるアイデアが生まれることを期待して、まず作ってみる。そしてアレンジ。うまくBADケースやユーザーテスト案件に気づけばそれはそれでお宝GETです。

 

 来週はちょっと状況次第なとこがあるので、引き続き、というわけにはいかない気配ですが、余裕があれば続けていきたいと思います。

 

ではでは

すてきな目コピライフを!