みつまめ杏仁

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

アセットを作らずにWidgetを作る

Widgetで何か表示しようとすると、UMGでキャンバスにパーツを置いていきます。これはあらかじめ表示する数が分かっている場合ですが、数を必要に応じて動的に配置したいときは、別のWidgetブループリントをアセットとして用意しておいて、これをCreateWidgetノードを使って並べます。

f:id:hiyokosabrey:20160925155636p:plain

テキストを表示する際に色をつけたり、ボールドにしたりしたくなった場合にいちいちアセットから用意するのもなんだかな~・・・ と常々思っていました。

 

ありました。

ブループリントだけで自由に作る方法が。

Create Widget ノードを取り出してよく見ると、Construct NONE と書かれています。

そうか!?

 

ということで、さっそく実践。

まず変数を用意します。といっても正しくはクラスです。

Variablesのところの追加ボタンをクリックして、"text" で検索すると出てきます。

f:id:hiyokosabrey:20160925160302p:plain

上の図のように白い▲のところから Class を選択します。

Detailsタブから名前と初期値をセットするのですが、下のようになっているので焦らずにコンパイルします。

f:id:hiyokosabrey:20160925160728p:plain

適当に名前を付けて、一番下のプルダウンを TextBlock に変更します。

f:id:hiyokosabrey:20160925161009p:plain

これをグラフにドラッグ&ドロップします。

f:id:hiyokosabrey:20160925161340p:plain

ドロップしたクラスのピンからドラッグしてConstruct Object from Class ノードを取り出します。

f:id:hiyokosabrey:20160925161714p:plain

クラスからオブジェクトを作るぜ! というノードです。

f:id:hiyokosabrey:20160925161847p:plain

ノードのキャプションが Construct Text になっています。似てますね。

Outerピンに何もつながないでいると、コンパイルエラーになるので、Selfノードをつないでおきます。

f:id:hiyokosabrey:20160925162442p:plain

最後にReturnValueを適当なキャンバスパネルに Add Child to Canvas してやります。

f:id:hiyokosabrey:20160925162821p:plain

これが基本のフローです。

色とかフォントを変えるのはこんな感じ。

f:id:hiyokosabrey:20160925165225p:plain

端っこのAutoSizeは、有効にしておかないと、文字が欠けてしまってすべて表示されません。

 

この方法を使えば好きなだけ画面にテキストを表示できます。

ショットガンのヒットダメージ表示とかにも使えそうです。

 

Imageも同じ方法で大量生産できます。

 

ではでは

次回もうちょっと遊んでみます。