K.Y.さん、しんちょくどーですか?

仕事や趣味で知ったこと、つまずいたことを書いています

【UE4】UE4.26の新機能から便利そうなものをピックアップして紹介(Blueprints, UMG周りのみ)

まえがき

UE4.26にて追加された機能の中から便利そうなものをピックアップして紹介します。といっても自分が興味あるものだけになっており、BlueprintsとUMGに絞っています。

内容としては公式のリリースノートで書かれている説明に画像を追加した程度のざっくり紹介です。それぞれの機能に使用頻度をつけていますが、あくまで自分基準になっていますのであしからず。

あと自分は英語をGoogle翻訳にかけないと読めないタイプなので、翻訳でいまいち理解できなかった機能は載せていません。ほかにもどんな機能があるか気になる方はぜひ公式のリリースノートをのぞいてみてください。 docs.unrealengine.com

確認環境

使用頻度【★★★★】

変数、関数、マクロをコピー、切り取りしたあと別のBPへ貼り付けできる

詳細で設定した内容も一緒にコピーして貼り付けられます。ただ、カテゴリの設定はコピーされない模様です。

ピンを変数へ昇格するとピンの名前が変数の名前になる

UE4.25までは"NewVar"という名前が自動でついていましたが、UE4.26からはピンの名前に合わせた変数名になります。

ピンを引っ張る > PromoteToVariable で変数へ昇格できます

関数をイベントに変換する機能が追加

この機能が追加されたことにより、関数 <-> イベントの相互変換が可能になりました!
また、関数内で追加したローカル変数は変数(メンバ変数)に変換されます。

関数を右クリック > 関数をイベントに変換 で変換できます

この機能を試していたところ、関数内のノードの配置によってはイベントへの変換がうまくいかずエディタが落ちてしまうことがありました。ただUE4.26.1で修正されますので、UE4.26.0では気を付けてお使いください。(公式のバグ報告はこちら

不明な関数の呼び出しがある場合に関数を自動生成する機能が追加

不明な関数を右クリック > マッチング関数を作成 で関数を作成できます

不明な関数をBPに貼り付けるとプロンプトが表示される

貼り付けようとしている不明な関数をどう処理するか聞かれます。
下記の選択肢から処理を選んで貼り付けを行います。

  • 何もしない -> 不明な関数のまま貼り付けられます
  • ブループリントでマッチング関数を作成 -> 関数を自動で作成して貼り付けます
  • ノードを削除 -> 貼り付けを行いません

変数と関数を親クラスのBPに移動させる機能が追加

変数 or 関数を右クリック > 親クラスに移動 で移動できます

使用頻度【★★★】

配列の要素をランダムにひとつ取得する関数「Random関数」「RandomArrayItemFromStream関数」を追加

出力ピンはランダムに選ばれた要素とその添え字になる

配列の要素を逆順に並び替える関数「Reverse関数」を追加

UMGアニメーションの現在の再生時間を設定する関数「SetAnimationCurrentTime関数」を追加

アニメーションが停止した状態だと、内部的に時間が設定されるだけでWidgetの見た目は変わらない(アニメーションに設定した値は適用されない)です。

ウィジェットリフレクタがより便利に

ウィジェットリフレクタはメニューバー > ウィンドウ > デベロッパーツール > ウィジェット リフレクタ から起動できます。レイアウトがガラッと変わり機能が増えています。(それぞれの機能はまだ試していませんが...)

ウィジェットリフレクタ

Widgetのナビゲーションをシミュレートする機能が追加

Widgetのデザイナー画面にて、メニューバー > ウィンドウ > ナビゲーション シミュレーション から起動できます。詳しい使い方はわかりませんが今後活躍しそう。

ナビゲーション シミュレーション

すべてのBPにあるノード参照を別のノード参照に置き換える機能が追加

BP編集画面にて、メニューバー > ウィンドウ > リファレンスを置換 から起動できます。

リファレンスを置換

使用頻度【★★】

ディスク上のアセットへのフルパスを取得するための関数「GetSystemPath関数」を追加

ダイナミックマテリアルインスタンスの割り当てを行うマクロ「CreateAndAssignMIDマクロ」を追加

マクロ内で重複割り当てを回避するようになっているので、重複チェック用の処理を別で書かずにすみます。

レンダーターゲットの割り当てを行うマクロ「CreateAndAssignRenderTargetマクロ」を追加

マクロ内で重複割り当てを回避するようになっているので、重複チェック用の処理を別で書かずにすみます。
またこちらのマクロはActorを継承したBPのみ使えるようになっています。

マクロ内でFormatTextノードのワイルドカード接続が可能に

注意点としてはマクロのワイルドカード入力ピンの性質上、ひとつのピンの型が決まると他のピンも同じ型に統一されてしまいます。

Value1がint型になるとValue2も自動でint型に設定される

使用頻度【★】

ArrowComponentに矢印の長さを設定できる項目を追加

アクターの向きをエディター上で確認できるようにするArrowComponent。このコンポーネントの長さを設定できるようになりました。

ArrowLengthで矢印の長さを設定する

WidgetComponentにTickMode設定を追加

TickModeは下記の中から選びます。

ListView, TileView, TreeViewに表示物同士のすきまを設定する項目を追加

EntrySpacingで設定できる

TileViewに表示物のサイズを取得する関数を追加

GetEntryHeightノードで高さを取得 | GetEntryWidthノードで幅を取得

詳細のツールヒント入力欄にカーソルを合わせるとツールチップが表示

UE4.26.0だとここだけツールチップが表示されるようになっていました。今後、変数名や関数説明の入力欄でも同じようになるかも?

マウスカーソルはスクショできていませんが入力欄の上にのっています

参考資料

あとがき

UE4.26になってBP編集機能がパワーアップしています!
今回のアップデートでBP内での相互変換(関数 <-> イベント)とBPの内容を別のBPに持っていく機能が整備されたので、これまでよりさらにストレスなく編集ができるようになりました。
こういった便利機能を実装してくださる方々にはいつも感謝しています。