2015.8.31

Unreal Engine 4.9 リリース!

作成 Alexander Paschall

今回のリリースでは、アンリアル エンジン 4 の数百のアップデートが含まれており、そのうちの 129 の改善点は GitHub のアンリアル エンジンのデベロッパーのコミュニティから寄せられたものです。アンリアル エンジン 4.9 に貢献をいただいた以下の皆様に謝意を表します (以下、敬称略)。

Andrew Zhilin (zoon), Artem V. Navrotskiy (bozaro), Artyom Sovetnikov, Ben Rog-Wilhelm(zorbathut), Ben Wiklund (bwiklund), Black Phoenix (PheonixBlack), Błażej Szczygieł (zaps166), Brad Grantham (bradgrantham), Brent Scriver (FineRedMist), Cengiz Terzibas (yaakuro), chipgw, Christian Radich (yoyohobo665), Christopher P. Yarger (cpyarger), Clay Chai (chaiyuntian), Cliff Jolly (ExpiredPopsicle), Dave Newson (dave-newson), Derek van Vliet (derekvanvliet), Dorgon Chang (dorgonman), ewirch, Felix Laurie von Massenbach (erbridge), Gabriel Hare (GabrielHare), gatools, Hakki Ozturk (ozturkhakki), HueyPark, JaredTherriault, Jason Spangler (Stormwind99), Javier Osset (Xaklse), Jeff Rous (JeffRous), JohnAlcatraz, Kitatus Studios (KitatusStudios), Konstantin Nosov (gildor2), korypostma, Lee Berger (MrCrowbar), Maarten Scholl (maartenscholl), Marat Radchenko (slonopotamus), marynate, Matthias Huerbe (MatzeOGH), Maxim (maxpestun), Michael Allar (Allar), Michael3DX, MiniTurtle, Moritz Wundke (moritz-wundke), Nako Sung (nakosung), Nari Demura (demuyan), Nastenko Michael (deM-on), Nathan Stocks (CleanCut), Niels Huylebroeck (red15), Pablo Zurita (pzurita), Patrick Flanagan (valtrain), Pedja Ljubomirovic (3dluvr), Philipp Smorygo (fsmorygo), Pierdek, Piotr Bąk (Pierdek), Quadtree, Rajko Stojadinovik (rajkosto), Rama (EverNewJoy), Rem (rveilleux), rlefebvre, Robert Khalikov (nbjk667), Russ Treadwell (trdwll), Salamanderrake, Sebastian Witkowski (witkowski-seb), Sébastien Rombauts (Srombauts), Simon Taylor (simontaylor81), Stephen Whittle (stephenwhittle), szyszq, TK-Master, Tobias Mollstam (mollstam), Tomasz Sterna (smokku), user37337, Victor Xie (FTPiano), Vladimir Ivanov (ArCorvus), Will Stahl (merlin91), yamashi, Zhi Kang Shao (zkshao)

主要機能

モバイル デバイスのサポートを拡張

モバイル プラットフォームのサポートを大幅に向上すべく作業を進めてきました。今回のリリースには多くのエキサイティングなレンダリング機能が含まれています。こうした機能は最先端のモバイル タイトルの制作を支援するでしょう。新規追加アイテムには、効率的な動的シャドウ、可動ライト、およびデカールがあります。今後も引き続きモバイルと HTML5 のレンダリング クオリティを向上させるつもりです。今回のリリースでは、iOS アプリ内課金の機能が改善し、Remote Push Notification (リモート プッシュ通知) と CloudKit のサポートを追加しました。Android については、 OpenGL ES 3.1、Immersive Mode (没入モード) のサポート、非同期オーディオの伸長 (解凍)、方向機能の改善を加えました。NVIDIA AndroidWorks も含まれ、デバイスの立ち上げと実行が簡単になります。UE4 には iOS 用の Flurry analytics プラグインがすぐに使える状態で同梱されます。モバイル デバイス用の新機能の多くが、HTML5 ゲームでもご利用いただけます。

image alt text

New:モバイル向け動的キャラクター シャドウ

Directional light (平行光源) からの動的に調整されるキャラクター シャドウが、モバイル デバイスでサポートされるようになりました!

image alt text

  • シーンが静的にライティングされていても動的調整シャドウ (dynamic modulated shadow) を利用することができます。

  • この機能を有効にするには、Directional lightで [Cast Modulated Shadows] をオンにします。

New:モバイル向け動的ポイントライト

モバイル デバイスと HTML5 で動的ポイントライトがサポートされます!

image_2.gif

  • 動的ポイントライトは、爆発、発射物、パーティクルエフェクトなどの持続時間が短いビジュアル エフェクトを高めるために使用することができます。

  • ライトが照らされる各オブジェクトで動的ポイントライトが最高 4 つまで利用できます。

  • 注意:ポイントライトからの動的シャドウのキャストには未対応です。

New:モバイルのデカール

モバイルのレンダラーでデカールがサポートされます。

image alt text

  • 透過、加算、調整のブレンド モードにも対応します。

  • 注意:現在、モバイルとウェブ上ではライティングなしのデカールのみをサポートしています。

New:VR の主なアップデート

Steam VR (HTC Vive)

アンリアル エンジンの SteamVR のプラグインには多くの主要な修正が含まれます。こうした修正は使用を簡単にし、パフォーマンスを上げるためのものです。

image alt text

SteamVR の改善点:

  • 4.8 のプレビュー 2 以降で現れたレイテンシー問題の修正。

  • 標準のモーション コントローラーの抽象化をサポートし、両方の Vive コントローラーを同じプレイヤーにルートできるようになりました。

  • C++ プロジェクトはプラグインの API によって適切にサポートされるようになりました。

  • 様々な改善点とバグ修正

Gear VR は SDK 0.6.0 にアップデートしました。

このリビジョンでは、いくつかのGear VR の0.5.0 のリリースのレンダリングの主要なバグや問題点、およびいくつかのハードウェア互換性の問題も修正しました。

image alt text

New:VR モーション コントローラーのサポート

モーション コントローラーが UE4 の共通抽象化レイヤー (common abstraction layer) でサポートされます。

image alt text

つまり、このモーション コントローラー デバイスは、すべて共通インターフェースを介して利用できるようになりました。現在、HTC Vive コントローラーがサポートされています。サポート対象は近い将来さらに増える予定です (PlayStation Move など)。入力ボタンの押下とトリガーは、モーション コントローラーのキーの抽象化を用いて、複数コントローラーから単一のプレイヤーにルーティングできるようになりました。さらに、Motion Controller コンポーネントをキャラクターに追加するだけでモーション トラックをプロジェクトに追加することが可能であり、それにアタッチされているものは何でも自動的に更新し、コントローラーの位置に従うようにします。モーション コントローラーのすべてのプラグインをこの新システムに移動し、デバイスに依存しないこのインターフェースの一部になるようにすることをお勧めします。

New:DirectX 12 の実験的サポート

DirectX 12 が実験的機能としてサポートされます! Windows 10 を使用している場合は、コマンドラインで "-DX12" を使用してエンジンを実行して試してください。

image alt text

Microsoft のエンジニアが DirectX 12 の UE4 のサポートを追加しました。彼らと協力してこの変更を 4.9 に統合しました。この機能はまだ新しく実験的なものです。DirectX12 では、はるかにローレベルのレンダリング API を提供し、一段と効率が高まり、多くのスレッドにコマンドを同時に送ることが可能です。これは、コンソール レンダリング API からアイデアを得た機能です。今後も引き続き、DirectX 12 のサポートを向上させます。エンジンの将来のバージョンでこの新しい API を活用する方法を模索します。

New:メッシュのディスタンス フィールドを用いたフル シーンのパーティクル コリジョン

ディスタンス フィールドの GPU パーティクル コリジョンでは、パーティクルが効率的にシーン全体で衝突するようにします。

image alt text

これは、 サーフェスに衝突する火花 に使用することができます。

image alt text

また、サーフェスに積もる雪 などの様々なエフェクトにもご利用いただけます。

image alt text

  • GPU パーティクル エミッタのコリジョン モジュールには、 [Collision Mode] という新しいプロパティがあります。ここで [Distance Field (ディスタンス フィールド)] を指定することができます。

    image alt text

  • パーティクルが衝突するためには、衝突面が必要です。これはディスタンス フィールドから非常に効率的に抽出することができます。ディスタンス フィールドのひとつのサンプルから最も近い衝突面への距離が得られます。ディスタンス フィールドの勾配を計算することで、そのサーフェスの方向と法線が求められます。これらを合わせて衝突面が導かれます。

  • こうした方法を用いたパーティクルのコリジョンは、既存のシーン深度コリジョンよりも信頼性が高くなります。既存のシーン深度コリジョンは画面上にあるものに対してのみ衝突し、持続時間が短いエフェクトに使用が制限されます。しかし、グローバル ディスタンス フィールドはかなり低解像であるため、パーティクルは細いオブジェクトを通り抜け、シャープな角は丸くなります。

  • すべてのディスタンス フィールド機能と同様に、[Rendering Project (レンダリング プロジェクト)] 設定で [Generate Mesh Distance Fields (メッシュのディスタンス フィールドの生成)] を有効にする必要があります。ディスタンス フィールド パーティクル コリジョンは、シェーダー モデル 5 (SM5 ) の機能です。SM5 をサポートしないハードウェアでは、パーティクルは代わりにシーン深度コリジョンに戻ります。

  • ディスタンス フィールドを用いたパーティクルのコリジョンは非常に効率的です。その負荷はシーン深度のパーティクル コリジョンとほぼ同じです。

New:Hierarchical LOD (HLOD、階層的 LOD) の高速プレビューとクラスタリング

Hierarchical Level-of-Detail (HLOD) は、4.8 で導入されたシステムです。レベル内の多くのオブジェクトを画面上で折りたたんで少数のオブジェクトにすることができます。その結果、ごく近くでオブジェクトを見る場合に非常に高品質なレベルを実現し、レベルの全体的なパフォーマンスを速めることができます。4.9 では HLOD を改善しました。今後も引き続き改善を続けます。

高速 HLOD プレビュー

Hierarchical LOD (HLOD ) のビルドで迅速なイタレーションを可能にするために、[Preview HLOD] オプションを利用することができます。このオプションでは、HLOD のメッシュ自体をマージしたり、作成することなく境界 (bound) とオブジェクトを視覚的に表したもので HLOD アクタを作成します。この境界は、特定の Hierarchical LOD レベルの LOD システム設定内のDraw Distance (描画距離) 設定に従いレンダリングされます。

image alt text

上の画像は、1 つめと 2 つめのHierarchical LOD レベルのクラスターが急に表示される様子を示しています。時間がかかるマージのプロセスや Hierarchical LOD メッシュを作成する必要なくどのようにレベルをクラスター化できるかを明確に表しています。これはプレビュー システムの初期の実装であり、時間経過に伴い変更や改善される可能性があることに注意してください。

カスタム LOD クラスタリング (HLOD ボリューム)

Hierarchical LOD のクラスタリング プロセスで一段と詳細な制御を可能にするために、Hierarchical LOD ボリュームを配置することができます。このボリュームはカプセル化するアクタに対するクラスターを定義します。これを使用してレベル内のどのエリアやオブジェクトをまとめてクラスター化するかを手動で定義します。

image alt text

New:"Arch Vis" Character Controls (Arch Vis キャラクターコントロール)

新しい "ArchVisCharacter” プラグインには、character クラスが追加されました。これは、建築ビジュアライゼーションのアプリケーションに適切な、すぐに使える制御を与えてくれます。リアルなワールド スケールの制御で快適かつ自然な感覚が得られること、またビデオやライブ デモをよりスムーズなものにすることを意図しています。

image alt text

ArchVisCharacter を直接 Pawn クラスに接続するか、ArchVisCharacter からカスタムのブループリントを作成して適切に見えるように移動の設定を微調整します。

New:ウィジェットの深度の順序

スクリーン空間の Widget コンポーネントはビューアからの距離に応じて自動的にソートされます。一番近いスクリーン空間の Widget コンポーネントが常に他のコンポーネントよりも上にくるようにします。

image alt text

カメラへの距離に基づいてすべての widget コンポーネントをソートします。これまでは、手動の Z Order に基づくか、最初にビューポートに追加したものに基づいていました。

New:エリア シャドウ (Stationary Light (固定ライト) 用)

均一な半暗部のサイズのシャープなシャドウに限定されなくなりました。ライトマスのレイ トレーサーは固定ライトのエリア シャドウもサポートするようになりました!

image alt text

この機能を使用するには、[Use Area Shadows for Stationary Light (固定ライトにエリア シャドウを使用)] オプションをオンにします。[Light Source Angle] (またはポイントライトの 'Source Radius' (ソース半径)) は、シャドウをどの程度ソフトにするかを制御します。

image alt text

パフォーマンスの詳細:

  • 解像度が低いライトマップを扱うには、均一な半暗部シャドウの方が良いため、これをデフォルトのままにします。以前は均一な半暗部のサイズはあいまいなプロジェクト設定で制御されていました。現在は、エリア シャドウと同じように [Light Source Angle] のプロパティで制御されるようになりました。例えば、ソース アングルを倍にすると、2 倍ソフトなシャドウになります。

  • マップのエリアの新しい最適化もあります。これは、単一の Stationary Light (固定ライト) チャンネルによってのみ影響を受けます (例、ひとつの Stationary Directional (固定の平行光源) ライト)。これらのシャドウ マップは、4 チャンネルのテクスチャの代わりに単一のチャンネル テクスチャにパックされ、メモリの負荷は 1/4 になります。

New:アンビエント オクルージョンのマテリアル マスク

新しいアンビエント オクルージョンのマテリアル マスク機能を使用すると、マテリアルでライトマスが計算された AO (アンビエント オクルージョン) を使用できます。これはプロシージャルなテクスチャリングで役立ちます。例えば、エージング エフェクトやエリアに蓄積される汚れを加えます。

image alt text

上のスクリーン ショットでは、AO マスクを使用して汚れのレイヤーを自動的に背景の隅にブレンドしています。

AO マスクを使用するには、 World Settings (ワールド設定) -> Lightmass settings (ライトマス設定) で [Use Ambient Occlusion] と [Generate Ambient Occlusion Material Mask] の両方を有効にする必要があります。Max Occlusion Distance などの他の AO 制御は外観を微調整するのに便利です(必ず、Direct Occlusion Fraction および Indirect Occlusion Fraction を 0 に設定し、この AO が実際のレベルのライティングに適用されないようにします)。

image alt text

次にマテリアルで PrecomputedAOMask ノードを使用して 0-1 マスクのこの AO にアクセスすることができます。このノードはオクルードされたエリアで 1、他の場所で 0 になります。

image alt text

パフォーマンスの詳細:

  • PrecomputedAOMask ノードの使用は標準のテクスチャ ルックアップと同じです。この機能を有効にすると、ライトマップのテクセル毎に 1 バイトの半分を加えます。デフォルトの使用の場合は、ライトマップのテクセル毎に約 4 バイトになります。

  • AOMaterialMask のテクスチャ メモリは、‘ListTextures' コンソール コマンドで調べることができます。

New:Mesh Distance Field Materials (メッシュの ディスタンス フィールドのマテリアル)

この機能では、空間内のどのポイントからでも最も近いソリッド (空でない) なものへの距離をマテリアルが低負荷で判断することができます。グローバル ディスタンス フィールドのプロパティを利用するために、マテリアル エディタ内に 2 つのノードがあります。

image alt text

DistanceToNearestSurface は、ワールド空間単位で符号付きの距離を戻します。この距離は、不透明なメッシュのサーフェス上では常に 0 に近い値になることに注意してください。DistanceToNearestSurface を使用して以下のようにオクルーダを避けるエフェクトを持つことができます。

UE4 ユーザーである Roel Bartstra 氏は既に面白い用途を見つけています。ひとつは、やわらかい物体の外観 です。もうひとつは、サーフェスを自動的に避ける流れのマップ です。

すべてのディスタンス フィールド機能と同様に、[Rendering Project (レンダリング プロジェクト)] 設定で [Generate Mesh Distance Fields (メッシュのディスタンス フィールドの生成)] を有効にする必要があります。ディスタンス フィールドのマテリアルのアクセスは、シェーダー モデル 5 の機能です。FeatureLevelSwitch マテリアル ノードを使用して、シェーダー モデル 4 のハードウェアへのフォールバックを設定します。

New:ディスタンス フィールド アンビエント オクルージョンの改善

スカイ オクルージョンはスカイによってライティングされるオブジェクト周りに見栄えのよいソフトなシャドウを与えます。これは雲で覆われたライティングのシナリオにおいて特に重要です。ユースケースとしては、従来、事前計算されたライティングなしには高品質でのレンダリングが難しかったものが考えられます。ディスタンス フィールド アンビエント オクルージョンは、時間帯や背景が常に変わりうる完全に動的なゲームでこうした問題に対応します。4.9 ではクオリティと技術のパフォーマンスを向上させるために多くの労力を注ぎました。現在、典型的なゲーム シーンで 4ms の総 GPU 負荷で中程度のスペックの PC や PlayStation 4 レベルのハードウェアで出荷可能な機能になりました。

これまでの方法では、適応サンプリングを行っていました。そのため、フラット サーフェスでは作業が少なくなりますが、クリーンな背景では多くの汚れも生じていました。

image alt text

AO の演算処理は適応サンプリングをなくすのに十分な速さになったため、オクルージョンははるかにスムーズになりました。

image alt text

このこの新しい方法の何点は、より長い履歴フィルターが必要になるということです。これは、特にシャドウ キャスターが移動した場合にゴーストの原因になります。将来的にはこの問題を改善したいと思います。

パフォーマンス

ディスタンス フィールド AO は、中程度のスペックの PC や PS4 で実行できるように、かなり高速になりました。負荷の信頼性も高くなり、オブジェクトの密度に若干依存しますが、ほぼ一定になりました。

静的なカメラでほぼフラットなサーフェスの場合は、この新しい方法を使用すると 1.6 倍速く なります。フォリッジや高速移動カメラを使用した複雑なシーンでは、 5.5 倍速く なります。フル ゲーム シーンに対する PS4 でのディスタンス フィールド AO の負荷は 3.7 ms になります。

技術的な詳細

主な最適化は、カメラに従うグローバル ディスタンス フィールドを使用することです。これは通常のオブジェクト毎のディスタンス フィールドの全てを、カメラ周囲を中心としたクリップマップと呼ばれるいくつかのボリューム テクスチャに合成することで作成されます。新たに見えるエリアやシーンの変更の影響を受けるエリアだけを更新する必要があります。そのため、合成の負荷はあまりかかりません。

クリップマップのテクセル サイズの視覚化です。各クリップマップは異なる色になります。

image alt text

グローバル ディスタンス フィールドはオブジェクトのディスタンス フィールドよりも低解像度であるため、何にでも使用できるわけではありません。スカイ オクルージョンでコーンのトレースを演算処理する場合、オブジェクトのディスタンス フィールドはシェーディングされているポイント近くでサンプリングされます。一方、はるかに高速なグローバル ディスタンス フィールドはさらに離れた場所でサンプリングされます。

以下は、グローバル ディスタンス フィールドとオブジェクトのディスタンス フィールドを対比するためにレイトレースしたものを視覚化しました。グローバル ディスタンス フィールドのサーフェスはぼやけて細いオブジェクトは消えました。

image alt text

New:コンテンツ ブラウザの高度な検索機能

コンテンツ ブラウザでは高度な検索シンタックスに対応するようになりました。UE4 は多くの大規模プロジェクトで使用されています。中には数百名のデベロッパーで構成されるチームもあり、コンテンツ ライブラリには数百、数千という数のアセットがあります。新しい検索機能を使用すれば、プロジェクトの規模に関わらずコンテンツ検索のワークフローが改善します。

image alt text

これは既存のシンプルな検索シンタックスを向上させます。アセットのメタデータおよび以下の特殊キーから key->value のペアをマッチさせる方法で行います。

  • Name - アセット名に対してテストします。

  • Path - アセットのパスに対してテストします。

  • Class (alias:Type) - アセット クラスに対してテストします。

  • Collection (alias:Tag) - そのアセットを含む任意のコレクションの名前に対してテストします。

New:コレクションの改善

このリリースでは、コレクションに多くの変更を加えました。コレクションのネスティング、スマート コレクション、およびタギング機能などゲーム内のアセットの管理を支援します。

コレクションのネスティング
  • アセットのコレクションを整理して階層化することができます。

    image alt text

  • このコレクションは、任意のコレクションのコンテキスト メニューから [New…] オプションを選択して作成することができます。または、ドラッグ & ドロップ操作でコレクションを親子付けすることができます。

    image alt text

Dynamic Collections (動的コレクション)
  • Dynamic collections では、Advanced Content Browser Search Syntax (コンテンツ ブラウザの高度な検索シンタックス) の威力を活用してコンテンツ ブラウザのフィルタを作成し、共有することができます。

    image alt text

  • コンテンツ ブラウザのテキスト検索でできることなら何でも、他のコレクションの参照 (静的および動的の両方) も含めて動的コレクションとして保存することができます。

  • コンテンツ ブラウザのテキスト フィルタの右側にある「Save (保存)」ボタンを使用して動的コレクションを作成することができます。

    image alt text

Quick Asset Management (クイック アセット管理)
  • 新しい [Quick Asset Management] チェックボックスを使用して、一度に多くのコレクションにアセットを素早く追加できるようになりました。

    image alt text

  • これらはコレクション ビュー内から、または選択したアセットのコンテキスト メニューから利用することができます。

    image alt text

堅牢さを向上
  • コレクションは自動的にそのリダイレクタに従います。これにより、アセットを名前変更したり、移動した場合にコレクションから消えると思われるアセットの問題を回避します。さらに、コンテンツ ブラウザ経由でリダイレクタを修正する (最終的には取り除く) 場合にコレクションが考慮されるようになりました。

ステータス レポートの改善
  • 各コレクションはその行のアイテムの右側に小さなステータス インジケータを持つようになりました。これはコレクションの現在の状態に応じて色が変わります。各色の意味は次のとおりです。

    • 赤 - このコレクションは何らかの悪い状態かリードオンリーの状態になっています。問題解決方法については、ツールチップをご覧ください。

    • オレンジ - このコレクションはソース コントロールの最新バージョンではありません。

    • 青 - このコレクションは保存されていないローカルの変更があります。これは保存または自動チェックインに失敗したり、コレクションがリダイレクタにフォローされている場合に起こることがあります。

    • 緑 - このコレクションは空ではなく最新状態です。

    • グレー - コレクションが空であり、最新状態です。

アセットのツールチップの改善
  • 任意のオブジェクトの静的コレクションが、コンテンツ ブラウザでツールチップの一部として表示されるようになりました。

    image alt text

New:プラグイン作成ウィザード

UE4 での新規 C++ プラグインの作成が簡単になりました。新しいプラグイン ウィザードをご覧ください。

image alt text

  • プラグイン ブラウザ (Window メニューからアクセス可能) では新規プラグインを作成できるようになりました!

  • 新しいプラグインに名前を付けて、いくつかのプリセット プラグインのタイプ (Blank、 Toolbar、 Standalone Window) から選ぶことができます。

  • これでプラグインをコンパイルし、エディタに読み込むために必要なすべての初期ファイルが作成されます。

New:拡張カーブ エディタ

カーブエディタに多くの改善を加えました。カーブ キーとタンジェントを簡単に操作できるようにしました。

image alt text

  • マウス中ボタンで、選択したキーフレームやタンジェントを動かせます。

  • 複数タンジェントの選択および操作をできるようにしました。

  • 選択では、コントロール (切替え) とシフト (既存の選択に追加) を使用することができます。

  • シフト キーを押すと一つの軸に動きを制限します。

  • ナビゲーション:alt-キー押しながらマウスの中ボタンを押すと、ビューをパンします。alt-キーを押しながら右クリックするとビューをズームします。

  • 新しいタンジェント表示オプション: 常にタンジェントを表示、選択したポイントに対してタンジェントを表示、タンジェントを非表示にするオプションがあります。

  • カーブ用の新しい pre-post infinity extrapolations (プリインフィニティ / ポストインフィニティ補外 (外挿)) オプションを加えました。

  • キーの追加を予測しやすいものにしました。

    • 編集対象のカーブがひとつだけ存在する場合、キーはマウスの下に追加されます。

    • 複数カーブが利用可能な場合は、あるカーブをクリックするとそのカーブ上にキーのインラインを追加します。カーブから離れてクリックするとすべてのカーブにキーを追加します。

    • メニュー アイテムのテキストを変更して何が起こるかをわかりやすくしました。

New:ブループリントの複数の Return ノード

関数は複数の Return ノードを持つことができます。実行が関数の戻りに到達すると、関数の実行は終了します。これはブループリント関数から早く戻るか、分岐および別の値を戻すために使用することができます。

image alt text

New:ブループリントでカスタム オブジェクトを構築

ブループリントでは、より基本的なオブジェクトのタイプ (アクタ / コンポーネントだけでなく) をスポーンすることができます 。Class ノードからの Construct Object は、クラスを取り、そのタイプの新規オブジェクトを作成します。Class から Spawn Actor と同様です (ただし、アクタではないタイプは除く)。

image alt text

  • この「Outer」の入力は新規オブジェクトのオーナーとして機能し、作成したオブジェクトのライフタイムを制御します。

  • Actor クラスでは、まだ Class ノードから Spawn Actor を使用します。ウィジェットでは、Create Widget ノードを使用します。今後のリリースでは、こうした様々な機能を組み合わせるかもしれません。

New:Blueprint クラスのデフォルト

ブループリントでは、新しい Get Class Defaults ノードを使用してクラスのデフォルトにアクセスできます。これはデータのみのブループリントで作業する場合に便利です。インスタンスを作成する必要なくこうしたブループリントの値にアクセスできるからです。

image alt text

  • 出力ピンが大きくなりすぎて扱いにくくなるのを防ぐには、ノードの詳細を使用して特定のデフォルトを表示 / 非表示にします。

New:Level ブループリントの通信

Level ブループリントはインターフェースを介して通信できるようになりました。Class ブループリントと同様にインターフェース関数を採用し、実装することができます。Level ブループリントにインターフェースを追加したらインターフェース メッセージ ノードを通して (ストリーミング レベルをターゲットとして使用) 呼び出しすることができます。

image alt text

  • "Get Streaming Level" ノードを使用して通信するレベルを取得します。

    • 特定のレベルをターゲットとするために "Get Streaming Level" を使用しなければならないため、これはサブ レベルに対してのみ機能します。

New:Math Expression の最適化

Math Expression ノードを最適化し、通常のノードよりもパフォーマンスを高めました。現在、同等の式を表す一連の演算 / 関数のノードに比べて、Math Expression ノードを使用すると 2 倍速くなります。

image alt text

New:ブループリント アセットの ID

ブループリントがアセットをすぐにではなく、オンデマンドでロードできるようにしました。2 つの新しいタイプのデータがブループリントにエクスポーズされました。"Asset ID" と “Class Asset ID” の 2 つです。Asset ID は、ロードされた、またはアンロードされたアセットを表し、“Resolve Asset” ノードを使用してオブジェクトに解決することができます。アセットがロードされていなければ、“Resolve Asset” ノードは無効なオブジェクトを戻します。“Load Asset” ノードを使用してアセットをロードすることができます。同様に、“Class Asset ID” はクラスに解決し、 “Load Asset Class” ノードでロードすることができます。

image alt text

New:Montage Element Timing Interface (モンタージュ エレメント タイミング インターフェース)

​モンタージュ エディタに新しいパネルを追加しました。アニメーションがランタイムに実行するときに、Montage イベントが発行する順序を制御する支援をします。

image alt text

New:非線形のアニメーションのブレンド

アニメーションのポーズと遷移の間で多様なブレンド機能をサポートするようになりました!

image alt text

これまでは、線形lまたは三次のブレンドだけがサポートされていました。以下のような様々なブレンド関数から選ぶことができるようになりました。Linear (線形)、Cubic (三次)、Hermite Cubic (エルミート三次)、Sinusoidal (正弦)、Quadratic (二次)、Circular (円)、Exponential (指数)、および Custom (カスタム) のブレンド関数があります。ほとんどのタイプで、カーブの「in」または「out」でイージングするかを個別に制御することができます。

"Custom" オプションでは“Curve Float” アセットが必要です。ひとつ作成したら、それを関連ノードの詳細パネルに割り当てることができます。

image alt text

image alt text

これで行いたいどのようなブレンドでも指定することができます。カーブの長さは指定されたブレンド時間に合うようにノーマライズされてスケールダウンされます。範囲 0-1 外の値があれば、フィットするようにクランプされます (この制約は近いうちになくしたいと考えています。この空間に注目してください)。カスタム仕様のカーブを指定しなければ、システムは線形ブレンドに戻ります。

image alt text

New:Bone-driven Animation Controllers (ボーン駆動のアニメーション コントローラ)

この機能では、"Driver" ボーンがひとつまたは複数の “Driven” ボーンのモーションに動的に影響を与えます。これは、アクセサリがアタッチされているキャラクターにとって素晴らしいことです! 多くのブレンドを使用する場合であっても、アニメーション中にジオメトリが交差するのを防ぐことができます。

image alt text

上の例ではアタッチされているアクセサリ (緑色部分) にはオーサリングされているアニメーションは存在しません。キャラクターの大腿部の骨の機能として 2 つの軸で駆動されています。これはすべてランタイムに計算されるため、手動でオーサリングされた微調整がなくてもアニメーションのブレンドはここでは非常にうまく機能します。

"Driver" 値を直接乗数で設定するか、全く新しい範囲に再マッピングすることができます。または単にカーブ アセットを使用してモーションを駆動することができます。カーブの使用は通常、最適なアプローチです。リアルタイムで変化をみながら反応を自然に定義し、ポイント / タンジェントをインタラクティブに微調整できるからです。

以下はボーン駆動のアニメーション コントローラの新しい設定です。

image alt text

New:アニメーション遷移ルール

今回のリリースでは、アニメーション ブレンディング ツリーに対する改善があります。特に、遷移ルールが機能する仕組みを改善しました。

アニメーション アセットのオーバーライドの処理方法の改善

遷移ルールの Time Remaining のようなノードは、子 Animation ブループリントでのオーバーライドされたアニメーションが原因でアニメーションの長さが変更されることに正確に反応するようになりました。つまり、遷移ルールによって参照されるアニメーションは、すべての子Animation ブループリントで同じ長さである必要はなくなりました。

最も関連性が高いアニメーション プレイヤーを参照する

ステートマシンを管理しやすくするために、ゲッターの新しいクラスを使用できるようになりました。これは将来変更されうる特定のアニメーションをターゲットにするのではなく、ソース ステートから最も重み付けが高いアニメーションを常に選びます。以下のノードをご利用いただけます。

image alt text

カスタム ブレンド グラフの改善

一回限りではなく、より多くのカスタム遷移アニメーションで使用できるようにカスタム ブレンド グラフに追加の情報がエクスポーズされました。対応する遷移ノードとソース / 目的地のステートに関する情報を提供する以下のノードをカスタム ブレンド グラフで利用できるようになりました。

image alt text

遷移ルール内と同じようにアセット プレイヤーを参照するゲッター メソッドを使用することもできます。

New:Animation Curve Evaluation (アニメーション カーブの評価) の変更

アニメーション カーブの評価はアニメーションの Update フェーズで起こるように使用されていましたが、Evaluate フェーズに移動しました。これには以下のメリットがあります。

  • カーブのウェイトはブレンドされたウェイトで適切に評価されます。

    • Cache ノード

    • Additive ノード: Additive ノードは、アニメーションのボーン変形が行うのと同じように、ベースからの加算カーブ データのデルタを現在のポーズに適用します。

    • Layered ノード:これは適切に機能させるには少々難しくなっています。どのカーブがどのジョイントのパーツに影響を及ぼしているかがわからないからです。現在は、カーブのブレンド方法のオプションがあります。

      • Max Weight (最大ウェイト): ブレンドしたポーズからカーブの最大ウェイトを選びます。

      • Normalize by Weight (ウェイトでノーマライズする): すべてのカーブに対してブレンドしたポーズのすべてのウェイトを合計し、1 にノーマライズします。

      • Blend by Weight (ウェイトでブレンド): 単に合計します (ウェイト * カーブ値)。

image alt text

  • Curve Evaluation は、並列評価を使用している場合、マルチ スレッディングに移動しました。

  • 最終的に、ボーン変形からカーブを操作およびその逆からノードを作成することができます。

  • しかし、評価されていないカーブが必要な場合 (ティックしているが評価していない場合)、最新データは取得しません。カーブ データは以前のように通知としてではなく、ボーン変形として扱われます。

New:アニメーション アセットのメタデータのサポート

アニメーションアセットに追加可能なメタデータをサポートするようになりました。メタデータは Anim Meta Data クラスから派生したブループリントで利用可能なクラスです。カスタム メタデータをアニメーション アセットに追加することができます。Anim Sequence、 Anim Montage、 Anim Composite、 および Blendspace はすべてサポートされます。

image alt text

C++ でアニメーション アセットからのこうしたデータをクエリーできます。GetMetaData() メソッドを呼び出すか、Anim Montages で GetSectionMetaData() を使用します。

New:Sound Quality (サウンド クオリティ) レベル

サウンド デザイナーがよりローエンドなマシン/デバイスのオーディオ メモリの使用とパフォーマンスを (ある程度) 管理できる新機能を追加しました。

利用可能な Sound Quality レベルはプロジェクト設定のオーディオ セクションで定義されます。各 Quality Level では、オーディオ デバイスによって作成されるオーディオ チャンネルの最大数を現在指定することができます(ただし、一部のプラットフォーム、特に Android では、この値をまだ少ない数に制限することがあります)。

image alt text

サウンド キューに、Quality Level sound ノードを配置することができます。このノードは、プロジェクト設定で定義される各クオリティ レベルに対する入力ピンを提供し、アクティブな Quality Level に接続されているブランチだけを実行します。ロードされたバリエーションの数を減らすために使用、またはフィデリティ (忠実度) を低くした wave ファイルを指定するために使用することができます。

image alt text

スタンドアローンのゲームでプレイする場合、Quality Level は Game User 設定で指定され、その Quality Level に対して必要な Sound Waves のみメモリにロードされます。デフォルト値は、適切な GameUserSettings.ini ファイル経由でゲーム毎またはプラットフォーム毎に設定することが可能であり、ゲームでは設定値のUI 経由で値を設定することができます。現在、クオリティの変更を有効にするにはゲームを再起動する必要があります。

Play in Editor では、Level Editor Play Settings からどの Quality Level を使用するかを指定することができます。プレイ セッションがアクティブなときに、この値を変更すると新しいサウンドは現在の Quality Level を使用します。

New:Custom Audio Attenuation Curves (カスタム オーディオ減衰カーブ)

サウンドを減衰するためにビルトインのアルゴリズムに制限されるのではなく、独自のカスタム カーブを定義することができるようになりました。

減衰設定で、Distance Algorithm を [Custom] に設定すると、カスタム カーブ セクションが表示されます。続いて、コンテンツ ブラウザから外部カーブ アセットを指定するか、詳細パネルでカスタム カーブを直接定義することができます。

image alt text

New:アクタのティック間隔

Tick 関数が実行される間隔を指定することができます。これにより、タイマーのオーバーヘッドや複雑さなしにフレーム毎のティック実行のオーバーヘッドを減らすことができます。

これは、Actor と Component のデフォルトのプロパティでエンド ユーザーにエクスポーズされています。プログラマは他の Tick Function プロパティと同様に C++ で設定することができます。

image alt text

覚えておくべきいくつかの実装の詳細は以下のとおりです。

  • すべての Tick 関数は、それらが登録されている最初のフレームを実行し、その時点で次のティックまでティック間隔の間、待機します。

  • 既にティックしている関数のティック間隔を変更しても、次にスケジュールされているティックがいつ起こるかは変更しません。変更をただちに有効にしたい場合は、このティックを無効にし、間隔を変更してから、ティックを再度有効にします。

  • Tick 関数は、次のティックをスケジューリングするときに、オーバーランがあれば調整することで可能な限り指定された間隔の近くで起こります。例えば、関数が 1 秒毎に起こるように設定されていて、Tick 関数が実行された最後のティックから 1.1 秒が経過した場合、あと 0.9 秒が経過したらこのティック関数が一回実行されるようにスケジューリングされます。ただし、フレーム中に複数の間隔が起こっても 1 フレーム内で 1 回より多く Tick 関数は実行しません。

  • Tick 関数の DeltaTime は、ティック間隔に関わりなく同じままです。これはこの関数が最後にティックした時からの時間ではなく、常に対象となるフレームのデルタタイムになります。

  • アクタの Custom Time Dilation (カスタムの遅延) は、ティック間隔には適用されません。個々のアクタが独自の Time Dilation を持っているかに関わりなく、ティックがディスパッチされる頻度は一定のままです。Time Dilation は Tick 関数に渡される DeltaTime だけに適用されます。

New:アクタの Encroachment (侵犯) 検知

Encroachment (侵犯) 検知は、さらに堅牢になり、多くの状況で機能するようになりました。侵犯のためのカスタマイズ オプションを新たに追加しました。

image alt text

アクタのスポーン時の "Spawn Even If Colliding" オプション (C++ では"bNoCollisionFail") が拡張されて、以下のようにスポーン ポイントでのコリジョンを処理する 4 つの方法をサポートするようになりました。

  • とにかくそこでスポーンする。

  • 可能であれば近くの適切な場所にスポーンする。そうでなければ、とにかくそこでスポーンする。

  • 近くで適切な場所が見つかった場合に限りスポーンする。そうでなければ、スポーンしない。

  • スポーンしない。

既存のブループリントは、正しい選択肢を選ぶように自動的に更新されます。一部のコードは非推奨になっていて、手動更新が必要なものがあります。

Actor クラスには新たにブループリントにエクスポーズされた Spawn Collision Handling Method という新規メンバーがあります。Spawn Collision Handling Method は、デフォルトでコリジョンのスポーンをリゾルブする方法を制御します。これは Spawn Actor ノードまたは関数呼び出しの設定でオーバーライドすることができます。

Movement コンポーネントを持つアクタでは、更新されたコンポーネントを基本的なコリジョン形状とみなし、encroachment (侵犯) に対してテストする唯一のコンポーネントになります。他のアクタについては、適切なコリジョン設定を持つすべてのコンポーネントがチェックされるようになりました。これはアップグレード後にアクタがスポーンに失敗するような状況につながることがあるので注意してください。コリジョン設定処理方法をダブルチェックして、こうした事態になったら transform をスポーンします。

New:Post Process Blending (ポスト プロセスのブレンディング)

ポストプロセスの [Blendables] を使用して異なるステート間でのポスト プロセス エフェクトを遷移させます。このシステムを改善しました。

各 Blendables のブレンドするウェイト値を設定できるようになりました。このブレンドするウェイト値はブループリントまたは C++ コードでランタイムに修正できます。そのため、ポスト プロセスの遷移で面白いことができます。

ポスト プロセスの設定をポスト プロセス ボリューム内で「インライン」で定義できるようにもなりました。または、多くのオブジェクト間で共有可能なスタンドアローンの Blendables アセット作成を選択することもできます。

image alt text

image alt text

独自のカスタムの blendable 設定の定義も簡単にできるようにしました。エンジンのビルトインの PostProcessSettings 構造を修正する必要はなくなりました。代わりに、上の画面の Light Propagation Volume Blendable 設定などで、設定を持つ新たな構造を定義することができます。

最後にブループリントを使用して、ランタイムに Blendable のウェイト値のブレンドを編集方法の例を以下に示します。

image alt text

New:Runtime Asset Cache (ランタイムのアセット キャッシュ)

一部のゲームでは、ゲームと一緒には出荷されない場合があるアセットのローカル コピーの保存に対応する必要があります。例えば、プロシージャルに作成したアセットが多数ある場合や、サーバーからのアセット (広告のグラフィックスなど) がある場合があります。この新しい Runtime Asset Cache は、汎用アセット キャッシュ システムです。ランタイム中に生成されたデータを設定可能なアセット バケットに永続的に保存するために使用できます。

image alt text

Runtime Asset Cache には、以下のような特徴があります。

  • 複数のバケットに、個別にユーザーが意図したアセットのタイプを保存します。例えば、Character Image のキャッシュや Advertisement Image のキャッシュがあります。

  • 各バケットのサイズは個別に設定可能です。

  • アセットのバージョニングでは、不要になったときにキャッシュのエントリをリビルドすることができます。

  • 同期および非同期のキャッシュのクエリができます。

  • 指定サイズよりもキャッシュが大きくなれば、一番古いエントリがキャッシュから取り除かれます。

New:Volume Decals (ボリュームのデカール) (まだ実験段階です!)

3D 関数フィールドのレンダリングはジオメトリを表すポリゴンの代替です。どちらかというと、シャドウ、ブール演算、スムージング、アンビエント オクルージョン、レイトレーシング、変形などの難しいレンダリングの問題に対処するのに適しています。2D と 3D の 距離関数はすでにエンジンの様々な場所で使用されています。例えば、フォント、ライトマップ、ディスタンス フィールド シャドウ / アンビエント オクルージョンなどがあります。この新しい Volume Decals 機能では、アンビエント オクルージョン、スクリーン空間の反射、ライティング、および被写界深度などディファード・パスで通常利用可能なすべての情報を使用して、距離関数を不透明なオブジェクトとして GBuffer にレンダリングされるようにします。以下の画像のボウル (器部分) は Volume Decal です。

image alt text

このオブジェクトは、以下の手順で作成されました (以下の画像の左から右にご覧ください)。

  • デカールの中央への距離とテクスチャ プロジェクションで球体を定義します。

  • 別の球体を定義し、2 つの最大を取ります (ブールの交差 (intersection))。

  • 球体を移動して形状を調整します。

  • 別の球体を追加してマテリアルを変更します (ブールの減算)。

  • 再度形状を調整します。

image alt text

以下の画面はこの球体の距離関数がどのように定義されたかを表しています。

image alt text

この機能は未完成です。シャドウ キャスティング、法線マップのサポート、間接ライティングがなく、パフォーマンスとクオリティの最適化が行われていません。さらに、GPU の負荷が常に高くなります (距離関数は各ピクセルについておそらく何百回も評価する必要があります)。マテリアル関数、シャドウ キャスティング、ドキュメントなどを追加してこの機能に磨きをかける予定ですが、リアルタイムの用途では十分に速くならないかもしれません。

New:UE4 ドキュメントのタブ、バージョン、スキル レベルについて

  • ドキュメントのページには、ページの上部と下部にスキル レベル、エンジンのバージョン、カテゴリのタグが表示されるようになります (更新作業中です)。タグと一致する他のページを見つけることができます。

    image alt text

  • サイトマップをフィルタリングできます。スキルレベルやエンジンのバージョン別の 展開可能なツリー ビュー があります。フィルタリングすると、ツリーが展開し、一致するアイテムを表示します。一致しないアイテムはグレイアウトされます。

    image alt text

  • ページにあるスキル レベル、エンジンのバージョン、およびタグは、サイトマップにもリンクするようになり、自動的にフィルタリングします。あるタグをクリックすると、そのタグに関するページのみを表示するようにフィルタリングします。

    image alt text

  • チュートリアル (操作方法、クリックスタートなど) へのリンクには、そのチュートリアルのスキル レベルとエンジンのバージョンが表示されます。

    image alt text

新規作成および更新された UE4 のドキュメント

New:非同期のリアルタイム オーディオ伸長 (解凍)

リアルタイムの ogg-vorbis ベースのオーディオ伸長をサポートするプラットフォーム (PC、Xbox One、Mac、Android) は、メイン ゲーム スレッドでオペレーションのブロックを回避するために、可能な場合は伸長を非同期で行うようになりました。

New:Feature Pack とテンプレートの共有リソース

テンプレートと Feature Pack で共有リソースをサポートするようになりました。これはテンプレートと Feature Pack の両方で他の Feature Pack を含むように指定できるようにして実現しました。つまり、すべてのテンプレートで共通だった多くのアセットは、一度だけ存在するようになりました。また、これはテンプレートのブループリントと C++ のバージョンとの間で共有しているアセットを複製する必要がなくなったことも意味します。

複数のターゲット プラットフォームがサポートされます。そのため、様々なアセットがモバイルとデスクトップのターゲットに対して、ひとつのテンプレートまたは Feature Pack に存在することができます。これは、あるプラットフォームで詳細度が低いモデルが必要だが、他のプラットフォームでは異なる場合などに便利です。

New:HTML5 (Easy Setup、Amazon S3 Support、Networking) を改善しました。

HTML5 での開発を開始し、ウェブ ブラウザにゲームをパッケージングするためにサードパーティの SDK をインストールする必要はなくなりました。パッケージングするには、File -> Package メニューで HTML5 を選択します。

その他の改善点としては以下があります。

  • 圧縮した javascript をエミットし、ビルドのサイズを著しく減らします。

  • パッケージング中に、圧縮されたファイルをローカル テスト用に提供する処理をする小さなウェブ サーバーがゲームに含まれます。

  • HTML5 Networking がサポートされます! 現在、Unreal Build Tool コンフィギュレーション変数があり、HTML5 クライアントをサポートするデディケイテッド サーバーを作成するために使用できます。

  • パッケージング中に Amazon S3 へのアップロードをサポートするようになりました。AWS の認証情報が入力されると、ビルドは S3 にアップロードされ、S3 から直接ブラウザにゲームを供給することができます。

    image alt text

Release Notes 「訳注: 以下は、非常に技術的な部分が含まれるため、翻訳を省略します。」

AI

  • New:A dedicated AI asset category has been created and is available in Content Browser's context menu.

    image alt text

  • New:Added log errors when EQS (Environmental Querying System) queries take longer than 0.25 seconds (cumulatively).When the query completes we also log how long each test took to perform.

  • New:Added support for trace based projection in EQS generators.

  • New:Added Z offset for circle center(s) in the On Circle EQS generator that uses data bindings.

  • New:AI Controller's Path Following Component has been exposed to blueprint and can be tweaked via blueprint-created classes' default properties.

  • New:Blackboard assets have been made blueprint types to allow blueprint users to interact with them.

  • New:Exposed filtering and scoring options for multiple contexts of EQS query.

  • Fixed "Skip Item" in EQS not always showing results in debug view.

  • Fixed "Skip Item" acting like "Pass" and in some cases like "Fail" when handling filtering.

  • Fixed crash when unregistering the Pawn Actions Component when the Controlled Pawn is pending kill pending.

  • Fixed AI stimuli never expiring which resulted in AI never forgetting perceived actors.

  • Fixed crash in pathfinding batch EQS test.

  • Fixed crash on running a EQS query without valid options.

  • Fixed EQS pathing grid generator getting stuck on points inside geometry.

  • Fixed restoring EQS query asset with multiple options.

  • Fixed crash when doing a pathfinding batch EQS Query Test when test items are not considered valid.

  • Fixed "On Circle" EQS generator crashing if its query owner is not an actor.

  • Blueprint compilation and loading are much more efficient.

Behavior Tree
  • New:Added dynamic subtree injection support for behavior trees.

  • New:Added new restart mode for behavior tree tasks, they can now ignore restart which leads back into running the same task again.Use case depends on task type and its parameters: some of them work better with restarting every time (e.g. movement), some should finish their action (e.g. animation).

  • Blueprint based behavior tree tasks will now ignore Finish Execute and Finish Abort calls depending on state of task, fixed latent blueprint actions not being cleared when task finishes execution.

  • Fixed behavior tree decorators losing blackboard observers.

  • Fixed behavior tree restarts from blackboard decorator in On Value Change mode.

  • Fixed Behavior Tree tag cooldown decorator testing the current value of the tag cooldown end time against its duration.(Duration in the Tag Cooldown decorator should only be applied when we deactivate, not used for comparison.)

  • Fixed behavior tree's search update for branch with loop decorator.

  • Fixed bug with aux nodes losing all changes in memory block during discarded search.

  • Fixed crash on pasting composite decorator node in behavior tree editor.

  • Fixed drag & drop operation for composite decorators.

  • Fixed duplicated subnodes in behavior tree editor.

  • Fixed order of behavior tree nodes when creating a new node from existing pin.

  • Fixed rare crash on aborting behavior tree task connected to parallel node.

  • Fixed Rotate to Face task getting stuck on receiving abort event.

  • Replaced Has Reached Goal decorator with Is At Location.

Debugging Tools
  • New:Added "-LogNavOctree" command line parameter, to log Nav Octree debug geometry to visual logger, on stop logging.

  • New:Added new shapes to log with Visual Logger: mesh, convex polygon, navarea / pulled convex and Nav Octree dump from given bounding box.

  • New:Minor improvements to gameplay debugger.

    • Added multiple logs selection to Visual Logger tool, to analyze all selected objects simultaneously.

    • Added debug camera to gameplay debugger, to have a way to fly around (Tab key to switch between cameras).

    • Added alternate keyboard bindings to gameplay debugger, for keyboards without numpad (can be enabled in gameplay debugger settings).It uses Alt + [regular number] shortcuts.

  • Added more data about EQS queries to vlogs.

  • EQS score for the winning item will no longer be set to 1 when picking a single item.That way, scores can be compared appropriately since none of the other scores have been normalized.They will all be on the same relative scale.

  • Fixes Gameplay Debugger's client server issues.Everything should replicate to clients correctly again.

  • Tweaked description width for EQS debug display from 200 to 312 to allow for slightly longer descriptions without overlapping the next column.Item Description Width, Item Score Width, and Test Score Width can now be tweaked in code (they are now variables rather than in-line values).

  • New:Added a dedicated blueprint-bindable event to AI Perception Component that's being triggered for every newly sensed stimulus.

  • New:Added bUseNavAgentGoalLocation to pathfinding Reached tests for moving to Actors.(Sometimes it is useful to move towards / test against the actual actor's location, rather than its location projected into the navigation system.)

  • New:Added custom navigation export for skeletal meshes.

  • New:Added navigation agent selectors to navmesh bounds volume, defining zones per agent.

  • New:Added navigation updates for destructible mesh.

  • New:Added new option to navigation link, which allows connecting to cheapest area in snap radius.

  • A bug in editor-time navigation system, resulting in removing all the saved data in static navmesh on map load, has been fixed.

  • Abstract navigation data actor will no longer be visible in scene outliner.

  • Added timeout for path following's waiting state.

  • <