Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4.18で追加されたブループリントの新機能について

UE4.18がリリースされてからしばらく経ちましたが、まだまだ検証情報が少ないので、今回はブループリントの新機能についてを解説します。

UE4.18のリリースノート自体は以下にありますので、そこから拾ってきた情報をもとに独自に調べました。

docs.unrealengine.com

それでは早速見ていきましょう。


New: Find-in-Blueprints is now hosted in a global tab by default. This tab can remain open even if the Blueprint Editor window is closed.

ブループリントの情報をグローバルに検索可能なタブが追加されました。メニューから"ウィンドウ"→"Find in Blueprints"でウィンドウをどこでも開くことが可能です。

f:id:alwei:20171102215032p:plain

New: Added MakeMap Blueprint node. New: Added MakeSet Blueprint node

通常の配列と同様に、直接MapやSetのコンテナを作成できる"MakeMap"と"MakeSet"ノードが追加されました。配列と同様の使い方が可能です。

f:id:alwei:20171102215427p:plain

Added Blueprint functions for getting vectors from cones using random streams, to complement the existing non-stream variants.

指定した単位ベクトルからラジアンとデグリーの角度内の円錐上からランダムなベクトルを取得します。Stream版と非Stream版があります。4.17までは"Random Unit Vector in Cone with Yaw and Pitch"という名前のノードになっており、少々理解しづらいものとなっていたので、今回統一されたようです。

f:id:alwei:20171102215804p:plain

Blueprint input nodes for key, action, and axis can now be subclassed from other modules.

詳細不明。アクションやアクシズ入力ノードを別のモジュール上でサブクラス化することができるようになったそうです。

Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols

内積(dot product)と外積(cross product)のノードが単に"."と"x"という表記になっていて、見た目にわかりづらかったのが修正されてわかりやすくなりました。ちなみにマテリアルの方は以前からDotとCrossという表記でした。

f:id:alwei:20171102220938p:plain

Improved the visual styling of user disabled nodes and development-only nodes (still an experimental feature, but this is a step towards removing that label)

ノード自体の無効化機能と開発時オンリーで処理されるノードを指定した場合、ビジュアル上でわかりやすく表示されるようになりました。この機能自体はまだ実験的な機能ですが、近いうちに正式機能となるようです。"Print String"ノードなどは標準で開発時オンリーとなっています。

f:id:alwei:20171102221318p:plain

Made it easier to pick a specific actor in the level as the Blueprint instance to debug by adding "(selected)" after the label in the 'debug filter' dropdown in the Blueprint editor

ブループリントエディターでデバッグ時にデバッグフィルターでデバッグ対象を探す際に、ゲームからイジェクト(F8などで)した状態で選択していると、ドロップダウンの中で"(selected)"となり、対象を探しやすくなった。以前は数十体いる場合でも一体一体調べて探す必要がありました。

f:id:alwei:20171102222223p:plain

Allow adjusting the font size for each individual comment box node in Blueprint graphs (also works in Material graphs)

コメントボックス内のコメントのフォントサイズを調整できるようになりました。ブループリントだけでなく、マテリアル内でも同様に可能です。

f:id:alwei:20171102222756p:plain

Allow specifying a description for user defined enum assets (shown in the content browser)

ユーザー定義の列挙体(enum)に対してコメント(説明文)を追加し、コンテンツブラウザー上で表示させることができるようになりました。

f:id:alwei:20171102223033p:plain

Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint

ブループリントコンポーネントのアセットをブループリントのグラフ上に直接ドラッグ&ドロップすることで、そのコンポーネントの"Add Component"を直接追加することが可能となりました。もしエラーが出る場合にはドロップすることができないようになっています。

f:id:alwei:20171102223253p:plain

Added a tooltip field for each value in a user defined enum

列挙体の各値ごとにツールチップ表示のための説明文を追加することができるようになりました。

f:id:alwei:20171102223905p:plain

Added a key binding for Find References (Shift+Alt+F)

ノードを選択した状態で"Shift + Alt + F"キーを押下することで、自動的に検索タブで開いて、検索結果を表示させることができるようになりました。

f:id:alwei:20171102224245p:plain

Improved the implementation of Goto Definition, allowing any node to implement it by overriding CanJumpToDefinition or JumpToDefinition

"定義へ移動(Goto Difinition)"の実装が改善され、より正確にC++ネイティブコードの定義が表示されるようになりました。これまではファイルを開くだけだったようなものも、正確に関数行までジャンプしてくれるようになったようです。

f:id:alwei:20171102225321p:plain

Added a key binding for Goto Definition (Alt+G)

上記機能"定義へ移動(Goto Difinition)"をノード選択時に"Alt+G"キーを押すことで呼び出すことができるようになりました。

Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint

デバッグ時にブレークポイントでストップしている際にも"定義へ移動(Goto Difinition)"と"参照を検索(Find References)"が利用可能となりました。

Added an option to disable the comment bubble on comment boxes that appears when zoomed out

グラフをズームアウト時にコメントバブル(吹き出しコメント)を無効化にさせる設定が追加されました。詳細から設定可能です。

f:id:alwei:20171102225753p:plain

Added the full name of the type, container type, and value type (for maps) to the tooltips for the type picker on Blueprint variables, so long names can be read in full

変数の型名がとても長かった場合、枠内に型名が収まらなくて確認不能だったのが、ドロップダウン上にカーソルを合わせることで、ツールチップ表示が行われて、完全な型名を表示してくれるようになりました。これで余計な手間が減ることになります。

f:id:alwei:20171102225929p:plain

Remove deprecated CustomMapParamValue code

詳細は不明ですが、非推奨だった"CustomeMapParamValue"というコード部分が削除されました。

Add InRange (int) to Blueprint math library

値が範囲内かをチェックする便利な"InRange(int)"ノードが追加されました。float版は以前からありました。

f:id:alwei:20171102230519p:plain

Added Blueprint node for swapping entries in arrays.

配列内の2つの指定した要素を交換する"Swap"ノードが追加されました。これまでなぜなかったのか不思議なくらいでしたが、配列内の要素交換が簡単にできるようになります。

f:id:alwei:20171102230753p:plain

KismetRenderingLibrary: Added EditorOnly Blueprint function for creating static textures from Render Targets. Has options for Mip and Compression Settings

エディター時オンリーで使用可能な、Render Targetから静的なテクスチャーを生成可能な"Render Target Create Static Texture Editor Only"ノードが追加されました。圧縮やMipMap用の設定も指定可能です。

f:id:alwei:20171102231037p:plain

The VirtualReality Blueprint template is now available on Mac.

これまでWindowsオンリーだったVRテンプレートがMac上でも利用可能となったようです。

Blueprint compilation manager now skips compilation of dependent Blueprints when no function signatures are changed. This can greatly speed up compilation of Blueprints with large numbers of dependent Blueprints

関数のシグネチャが変更されていない場合、ブループリントコンパイルマネージャは依存するブループリントのコンパイルをスキップします。これにより、多数の依存するブループリントを持つブループリントのコンパイルを大幅に高速化できるようになります。

Fixed various issues with both UAT-driven and manually-configured code/data build workflows with respect to enabling Blueprint nativization.

Unreal Automation Toolと手動構成でのブループリントのネイティブ化時のデータフローの様々な問題を解決し、より実用的に利用できるようになったようです。

Added new Editor Only Plugin called Blueprint Material Texture Nodes. This plugin adds Blueprint nodes for reading texture and render target data as well as the ability to create and modify MIC assets.

"Blueprint Material and Texure Nodes"プラグインというものが追加され有効にすると、エディター時オンリーでレンダーテクスチャーを読み込み、そのテクスチャーからマテリアルインスタンスデータを生成可能となります。マテリアルのデータフローを大幅に改善可能できそうなプラグインです。

f:id:alwei:20171102231802p:plain

細かいところで大きな改善あり

大きな変更は少なめですが、細かいところで色々な改善点があります。ブループリントネイティブ化の問題や依存ブループリントのコンパイルスキップは実務で触っておられる方に大きな影響がありそうです。またレンダーターゲットからテクスチャーを生成可能な"Render Target Create Static Texture Editor Only"など面白そうな機能が色々と追加されています。

ブループリントは毎度のバージョンごとに大きな改善があります。まだまだよくなる余地があると思うので、もっと進化していってもらいたいですね。