アンリアル エンジン 4.13 がリリースされました!
2016.9.1

アンリアル エンジン 4.13 がリリースされました!

作成 Chance Ivey

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

alk3ovation, Allegorithmic (Allegorithmic), Alwin Tom (alwintom), Andreas Axelsson (judgeaxl), Andrew Scheidecker (AndrewScheidecker), Andrian Nord (NightNord), ArnoB (ABeekhub), Artem (umerov1999), Artem V. Navrotskiy (bozaro), Błażej Szczygieł (zaps166), Brent Scriver (FineRedMist), Cedric Neukirchen (eXifreXi), Céleste (CelPlays), Chris Conway (Koderz), Chris528, Christoph Becher (chbecher), Christopher P. Yarger (cpyarger), DanielDylan, DaveC79, Derek van Vliet (derekvanvliet), DevVancouver, Eric-Ketchum, Eugene (grisevg), Franco Salas (SupremeNinjaMaster), gameDNA (gameDNAstudio), ghost, Joel McGinnis (joelmcginnis), Jonathan Johansson (DualCoder), Jørgen P. Tjernø (jorgenpt), Joshua Kaiser (JoshuaKaiser), korkuveren, Kory Postma (korypostma), Krish Munot (KrishMunot), Kuts Alexey (krunt), Lars Jørgen Solberg (larsjsol), Lectem, Lee Reilly (leereilly), Lukasz Baran (iniside), madsystem, Manny (Manny-MADE), Marat Radchenko (slonopotamus), Markus Breyer (pluranium), Martin Gerhardy (mgerhardy), Marvin Pohl (pampersrocker), massanoori, Mateusz Polewaczyk (matii1509), Matthias Huerbe (MatzeOGH), Matthijs Lavrijsen (Mattiwatti), MaximDC, mfortin-bhvr, Michael Allar (Allar), Michael Schoell (MichaelSchoell), mik14a, Miłosz Kosobucki (MiKom), mkirzinger, Moritz Wundke (moritz-wundke), Nachtmahr (NachtMahr87), Narendra Umate (ardneran), NaturalMotionTechnology, Oleksandr Kuznietsov (Teivaz), OWIAdmin, Patryk Stępniewski (kodomastro), Paul Evans (paulevans), pfranz, Piotr Bąk (Pierdek), PistonMiner, projectgheist, Rama (EverNewJoy), Ricardo Maes (kukiric), Rick Deist (dreckard), Robert Segal (robertfsegal), RobertTroughton, Rohan Liston (rohanliston), Saffron (SaffronCR), Sajid (sajidfarooq), salamanderrake, Samuel Maddock (samuelmaddock), Sébastien Rombauts (SRombauts), Tanner Mickelson (DarthCoder117), Thomas Mayer (tommybear), tmiv, Tyler Thompson (Bogustus), Victor Polevoy (vityafx), Webster Sheets (Web-eWorks), Wesley Hearn (wshearn), yehaike, Yohann Martel (ymartel06), Yong-Quan Chen (wingedrobin), Yu He (yuhe00), Zachary Burke (error454)

新機能

アンリアル エンジン 4.13 がリリースされました!今回のリリースでは広範囲にわたる改善が行われています。

メッシュ デカールといった数多くの新しい レンダリング機能、ターゲットをレンダリングするブループリント描画、GPU モーフ ターゲット、屈折機能の改善、高品質に最適化されたノイズ機能がマテリアルに利用できるようになりました。シャドウ マップ キャッシュで、かなり多くのシャドウ キャスティング 動的ライトがシーンに作成できるようになりました!

新しい非線形シネマティック エディタの シーケンサ がアップデートされて、ハイエンド シネマトグラフィの新しい機能が豊富に利用できるようになりました。ゲームプレイからの ライブ録画 が大幅に改善されました。さらに、ショットとアニメーションを外部アプリケーションへ転送したり戻したりすることができます。これらの機能は、SIGGRAPH Real-Time Live!2016 demonstration で紹介しています。

Alembic がサポートされたため、複雑で面白い頂点アニメーションのインポートが可能になりました。モーター経由でスケルタル アニメーションを操作することで、キャラクターをリアルに物理フォースに反応させることが可能な 物理アニメーション コンポーネント が新登場です。

モバイル デベロッパー のために、動的シャドウが最適化され、完全精度のマテリアルがサポートされ、カスタム仕様のポスト プロセスが可能になりました。OpenGL ES 3.1 が Android で使用可能になり、バイナリ シェーダー キャッシュでイタレーション時間が改善されます。

VR ゲーム でカプセル シャドウが使用可能になり、ステレオ インスタンスが最適化されました。VR Template Project もチェックしてみてくださいね!VR ゲームでモーション コントローラを使ってインタラクトおよびナビゲートする方法がよく分かります。

VR 中でレベルをビルドしたい場合は、アンリアルの VR エディタ が改善され、メッシュとフォリッジのペイント、新たなトランスフォーム ギズモ、VR カラー選択をがサポートされました。VR から直接ゲームをすぐにプレイできるようになりました。[Editor Preferences (エディタ環境設定)] の [Experimental (実験的)] セクションの [Enable VR Editing (VR 編集を有効にする)] をオンにすることができます。

主要機能

新規:シーケンサーのライブ録画

シーケンサーに Siggraph Real-Time Live!2016 で紹介した新しいライブ記録機能がつきました。

image alt text

シーケンス レコーダーは、すべてのアニメーション、オーディオ、エフェクトをシーケンサーで編集可能なスタンドアローン アセットにインクルードしながら、ゲームプレイのライブ キャプチャを可能にします。今回のリリースで追加された新機能は以下のとおりです。

  • 選択したアクタをすぐに機能し、カメラが記録されている場合はカメラ カットのトラックを自動作成する機能

  • 任意のコンポーネントとプロパティを記録するように指定する機能

  • データをレベルで所有するアクタへ記録するオプション機能

  • アクタが記録されないがアタッチされている場合、ワールド空間へトランスフォームを記憶する機能

新規:Movable Light (可動ライト) のシャドウ マップ キャッシュ

移動しないポイント ライトまたはスポット ライトに対して、シャドウ マップを格納して次のフレームに再利用することができます。この機能は自動処理で、背景が通常は動かないゲームでは、シャドウ キャスティング ムーバブル ポイントライトとスポットライトの効率を上げます。

image alt text

上の画像は 33 個の動的シャドウ キャスティング ポイントライトが最小限のオーバーヘッドで表示されています。

970 GTX で 1920x1200 の場合のパフォーマンスは以下の通りです。

  • キャッシュなしの 33 個のシャドウ キャスティング ポイント ライト:シャドウ デプスのレンダリング時間は 14.89ms

  • キャッシュされたシャドウ マップを使用: .9ms (16 倍の速さ!)

  • 33 個のポイント ライトの寄与のレンダリングにあと 2ms 必要であることに留意してください。別の方法でも最適化できますが、この変更は反映されません。

  • キャッシュで使用するメモリは ‘Stat ShadowRendering’ で表示されます。このシーンの場合は 25.6 Mb でした。

  • キャッシュで使用できる最大メモリは ‘r.Shadow.WholeSceneShadowCacheMb’ で制御できます。

制限事項

  • デフォルトでは、以下の場合のみキャッシュされます。

    • プリミティブの可動性が [Static (静的)] または [Stationary (固定)] に設定されている場合

    • 使用しているマテリアルが World Position Offset を使わない場合

    • ライトの種類がポイントまたはスポットで、シャドウ キャスティングあり、可動性の設定は [Movable] で動いていない場合

  • アニメートしているテセレーションまたはピクセル深度オフセットを使用しているマテリアルは、シャドウ深度がキャッシュされるとアーティファクトを生じ得ることがあります。

新規:Voronoi (ボロノイ) ノイズ マテリアル

ノイズ マテリアル ノードで利用できる Voronoi ノイズ オプションを追加しました。Voronoi ノイズは Worley または Cellular ノイズとも呼ばれ、プロシージャルなマテリアル生成に便利な場合があります。

image alt text

Voronoi ノイズは、以下の像で分かるように、大理石などお馴染みの物理マテリアルにパターンを生成するために使用します。

image alt text

この例では、「グラディエント マッピング」という技術と Voronoi ノイズを併用して、大理石のような外見を実現しました。

image alt text

左から右の順に

1) 標準的な Voronoi ノイズ、1 オクターブ

2) "Gradient" ノイズのある Voronoi を入力位置に追加して 0.05 に設定

3) Gradient ノイズに 0.3 を乗算してから Voronoi 入力位置へ追加

4) ランダムなタイリング テクスチャのテクスチャ座標としてステップ 3 の結果を使用

Voronoi ノイズは 4 段階の品質レベルがあります。レベルが高いほどグリッド アーティファクトは減少しますが、シェーディング時間が大幅に増加します。

さらに、いくつかのマテリアル ノード機能でパフォーマンスが改善されました。機能選択ツールチップでパフォーマンスのトレードオフについて詳細を紹介しています。これらはランタイムが遅い場合が多いので、結果をテクスチャへ焼き付けることをお勧めします。

新規:レンダー ターゲットへのブループリント描画

ブループリント機能で、レンダリング ターゲットにマテリアルを描画できるようになりました。ゲーム特有の多彩なレンダリング エフェクトを、ソースコードを修正せずに実装することができます。

image alt text

これは、ブループリントとマテリアル グラフに完全に実装した流体サーフェイス シミュレーションです。キャラクターと発射物は水面を押すことができます。

image alt text

これは、発射物の衝撃時の高度値を累積して、ブループリントだけで作成したシンプルな高度フィールド ペインターです。

新機能の Draw Material to Render Target は、マテリアルの Emissive Color 入力でレンダー ターゲット先を塗りつぶすクワッドを描画します。

image alt text

ゲームを開始すると、Begin Play が呼び出され、レンダー ターゲットが青で塗りつぶされます。レンダー ターゲットを右クリックして、圧縮できるように静的テクスチャとして保存します。

image alt text

レンダー ターゲットをさらに細かく描画する場合は、 Begin Draw Canvas to Render Target End Draw Canvas to Render Target を使用します。これらを使うと、キャンバス オブジェクトフォント描画メソッドだけでなく、レンダー ターゲットの複数のサブセットを効率的に描画することができます。

image alt text

ブループリントからオフスクリーンのレンダリングが可能になったので、グラフィック プログラマーの助けを借りずに多くのレンダリング機能をすぐに実行することができます。ピクセル シェーダー処理で大きいレンダー ターゲットへのたくさんのパスを使って、GPU も保管しやすくなりました。これらの描画コールは、(WorldTick イベント配下の) デバッグ コンソールに 'ProfileGPU' と入力すると表示されます

制限事項

  • 指定したマテリアルでテクスチャとしてサンプルにしているレンダー ターゲットへの描画はできません。アルファ ブレンディングを使用してレンダー ターゲットをインプレースで修正する、あるいは異なる 2 つのレンダー ターゲット間を行き来します。

  • マテリアルの Emissive Color 出力と Opacity 出力のみ有効です。レンダー ターゲットへ描画する際、ライティングはサポートされず、WorldPosition のようなノードは期待しない値になる場合があります。

  • Emissive Color はデフォルトで正の値にクランプされていますが、マテリアル プロパティ ‘AllowNegativeEmissiveColor’ を有効にすれば負の値を出力することができます。

コンテンツ サンプル プロジェクトの BlueprintRenderToTarget マップで実際の作業の様子を見ることができます!

新規:頂点アニメーションの Alembic インポータ(実験的)

Alembic アニメーションのインポート機能がサポートされます!Alembic Importer を使うと複雑なアニメーションをオフラインでオーサリングして、UE4 内でリアルタイムでレンダリングすることができます。この機能はまだ実験的ですが、ぜひ試してみてください。フィードバックをお待ちしています。

image alt text

Alembic キャッシュをいくつかの方法でインポートできます。

  • スタティック メッシュAlembic アニメーションの単一のフレームを Static Mesh アセットとしてインポートします(アニメーションは何も適用されません)。

  • ジオメトリ キャッシュ新しいタイプのアニメーション アセットで、頂点が変化するシーケンスの再生を可能にします。インポートされた Alembic アニメーションは、フレームのフリップブックとして再生されます。パフォーマンスはメッシュの複雑度に応じて変わるので、最適にならないケースもあります。

  • スケルタル メッシュ頂点カウントが変わらない限り、Alembic アニメーションを再生する場合に最も効率が高い方法です。インポート中、アニメーション シーケンスは PCA スキームを使って圧縮されます。共通ポーズ (ベース) が抽出されて、ウェイト付けされて再生中にオリジナルのアニメーションを作成します。パーセンテージ (使用するベースの定数) も定義して、圧縮度を微調整することができます。

新規:メッシュのプレビュー シーン

スタティックメッシュとスケルタルメッシュのプレビューに使用するシーンの設定機能が追加されました。

image alt text

[Preview Scene Settings (プレビュー シーン設定)] パネルがスタティックメッシュ エディタとスケルタルメッシュ エディタに追加されました。ここで、複数のプロファイル (シーン) を設定してメッシュをプレビューすることができ、プロファイルで以下の変更が可能になります。

  • 指向性ライト (色、強度、回転)

  • スカイライト (HDRI 環境マップ、強度、回転)

  • ポストプロセス設定 (ポストプロセス ボリュームと同じ)

image alt text

ショーケース機能も幾つか追加しました。

  • 手動で背景 (K キーを長押し) と指向性ライト (L キーを長押し) を手動で回転

  • ライティング リグを自動で回転 (指向性ライトと背景)

  • フロア (O キー) と背景 (I キー) を簡単に非表示

新規:メッシュ デカール

スタティックメッシュの上に効率的にマテリアルを衝撃で平らにして、効果的に異なるマテリアルを互い違いに滑らかに重ねることができる機能です。独自のトポグラフィとマテリアルを使って、下層のジオメトリのプロファイルの上に置かれている 2 つ目のメッシュだと考えてください。

image alt text

上の画像の柱は、下画像のワイヤーフレームで示したように細かく分割した単一のメッシュで基本メッシュをオーバーレイ表示して作成しました。左側の柱はメッシュ デカールを使うことで、カラー、法線、ラフネスのスムーズなブレンドが可能です。右側の柱は、比較のためにマテリアルをマスクしています。

image alt textimage alt text

ディファード デカールとは違ってプロジェクションが一切含まれていないので、マテリアルにサーフェイス オフセットを含むためには、下層のサーフェイスとしっかり転結した典型的なデカール メッシュが必要な場合があります。メッシュ デカール ジオメトリが LOD メッシュを貫通する LOD がある場合は注意してください。

新規:Widget Interaction コンポーネント

Widget Interaction コンポーネントを使って、ワールドでウィジェット コンポーネントでハードウェア入力イベントのシミュレーションが可能になりました。

image alt text

ワールドのオブジェクトにレーザーポインタのようにアタッチして、ウィジェットとインタラクトします。ビヘイビアをカスタマイズするオプションは他にもいろいろあります。標準の入力をプレイヤー コントローラーで使う場合には、インタラクション コンポーネントをマウスのアップ / ダウンなどの特定のハードウェア入力をユーザーがその時たまたまカーソルを乗せているウィジェット上でシミュレートするように指示します。

ワールド内でマウスで直接 Widget Component をクリックすることに慣れていたユーザーの場合、そのパスはもうサポートされません。ユーザーはインタラクション コンポーネント(In Mouse Mode) をプレイヤーにアタッチして、プレイヤーが受け取る時に入力をインタラクション コンポーネントに転送する必要があります。

新規:VR プロジェクト テンプレート

仮想現実向けに作成した新規プロジェクトテンプレートを、デスクトップとコンソールに追加しました。

image alt textimage alt text

利用するには、[New Project template] の選択ウィンドウで新規の VR オプションを選びます。

このブループリント プロジェクトには、VR での実行を最高 90 fps まで最適化できる設定があります。様々なコントローラーに対応するため、テンプレートには 2 通りの移動のメソッドが、2 つの Pawn ブループリントに別々に入っています。片方はゲームパッド用、もう片方はモーション コントローラ用です。モーション コントローラを使うと、異なる位置へテレポートしオブジェクトを掴んで投げることができます。今後のアップデートでこのテンプレートの C++ バージョンを予定しています。さらに、モバイル VR テンプレートもその後に続けたいです。

新規:Custom Post-Process が利用可能 (モバイル)

Custom Post-Process マテリアルがモバイル デバイスで利用できるようになりました!これは、モバイル レンダラを使って表示した "TV Static" エフェクトです。

image alt text

  • この機能を使うためには、プロジェクト設定で [Mobile HDR] オプションを有効にしておく必要があります。

  • ブレンド可能な位置 ‘Before Tonemapping’ と ‘After Tonemapping’ を使った PostProcessInput0 (SceneColor) からのフェッチをサポート

  • この機能は、HDR レンダリングに「モザイク」モードを必要とする古い Android デバイスでは使えません。

  • ピクセル深度情報はまだサポートされていません。

新規:Custom Post-Process が利用可能 (モバイル)

ライティング チャネルがモバイル レンダラで利用できるようになりました!これにより、ライトを指定して、好きなオブジェクトだけに効果を与えることができます。シネマティックスでの高度なライティング リグに最適です。

image alt text

  • 複数の指向性ライトが様々なチャネルでサポートされます。

  • 1 つのプリミティブに影響を与えられる指向性ライトは 1 つのみです。プリミティブに設定される最初のライティング チャネルが、影響を与える指向性ライトを決定します。

  • Stationay (固定) または Movable (可動) の指向性ライト からの CMS シャドウは、一致するライティング チャネルを持つプリミティブ上にのみキャストします。

  • 動的ポイントライトはライティング チャネルを完全にサポートします。

新規:Shader Model 5 レンダリングが利用可能 (Mac)

Mac Metal で Shader Model 5 サポートがデフォルトで有効になりました。これにより、アンリアル エンジン 4 で利用できる Mac OS X 10.11.6 の Metal 機能がすべて使用できるようになりました。

image alt text

  • レンダー コマンド ディスパッチを平行して行うために、RHI スレッドと平行移動機能を実装します。

  • Metal 演算シェーダーに対するサポートを公開します。

  • AMD GPU 上での非同期演算サポートを公開します。

  • これまで Mac では利用できなかったハイエンドなレンダリング機能を有効にします。

    • 高品質動的 (別名:自動露光).

    • 演算シェーダー反射環境は、4.13 では個別の GPU でのみ利用できます。

    • ディスタンス フィールド アンビエント オクルージョンは、4.13 では個別の GPU でのみ利用できます。

    • ディスタンス フィールド シャドウイングは、4.13 では個別の GPU でのみ利用できます。

新規:物理アニメーション コンポーネント (実験的)

物理モーターでスケルタルメッシュ アニメーションを簡単に操作できる物理アニメーションを追加しました。

image alt textimage alt text

このコンポーネントは、PhAT で作成および編集可能な、予め設定された物理アニメーション プロファイルが使えるだけでなく、モーターの強度を直接設定することができます。PhAT の新機能 "Physical Animation Profiles" は、特定のアニメーションに対する微調整だけでなく、異なるゲーム コンテキストでキャラクターの物理をカスタマイズするパワフルな手段となります。

PhAT 内で様々なプロファイルを作成および編集し、ランタイム時にそれらを簡単に変更することができます。物理アニメーションのビヘイビアを劇的に変えることができるブループリントの新機能「Apply Physical Animation Profile」と「Apply Physical Animation Settings」をチェックしてください。

新規:プロシージャル メッシュのスライス

Procedural Mesh Component に、ランタイム時にプレーンを使ってプロシージャル メッシュをスライスする新しいユーティリティが加わりました。

image alt text

スライス後、必要であれば「もう半分」に対して 2 つ目のメッシュ コンポーネントを作成して、「キャップ」ジオメトリの追加をサポートします。

さらに、プロシージャル メッシュはシンプルなコリジョンをサポートするので、物理シミュレーションを有効にすることができます!最後に、スタティックメッシュからプロシージャルメッシュへデータをコピーするユーティリティを追加しました (クック済みのビルドで使うためには、‘Allow CPU Access’ フラグをスタティックメッシュ上に設定する必要があります)。

新規:VR でのメッシュ ペイント

VR エディタを使って、テクスチャとメッシュ頂点上にペイントできるようになりました。

image alt text

これにより、VR に没入しながらモーション コントローラを使ってスタティックメッシュをペイントすることができます。この機能を使うためには、VR の [Mode] ウィンドウを開いて [Mesh Paint] タブをクリックします。そしてワールドのオブジェクトを選択し、照準を合わせてトリガーを引いてペイントします!コントローラーのトリガーは圧力感受性対応です。ペイントを消去するには [Modifier] ボタンを長押しします。

新規:VR でのフォーリッジ ペイント

このリリースで、VR にいる間にモーション コントローラを使ってフォリッジ インスタンスへの色付けが可能になりました。

image alt text

フォーリッジ タイプを選択し、レーザーの照準を合わせ、トリガーを引いてフォリッジをペイントします!フォリッジを消去するには [Modifier] ボタンを長押しします。コントローラーのトリガーは圧力感受性対応です。さらに、フォリッジ エディタが改善されて、投げ縄ツールと選択ツールはまだ利用できませんが、VR の中で使える機能性が増えました。

新規:VR でのカラー ピッカー

[Color Picker] ウィンドウが VR で使えるようになりました。レベル内のライトおよび他のアクタの色のプロパティを変更できるようになりました。また、カラー ピッカーを使って VR で頂点ペイントとテクスチャ ペイントの色の選択が可能になりました。

image alt text

新規:VR エディタからのプレイ

プロジェクトを簡単にプロトタイプするために、VR エディタ内から VR でゲームをプレイすることが可能になりました。クイックメニューの [Play] ボタンを押して、VR の中でプレイを開始します! 両方のコントローラの [Grip] ボタンを押して、両方のトリガー ボタンを握ると、VR エディタに瞬時に戻ることができます.

image alt text

新規:VR トランスフォーム ギズモの改善点

VR エディタのトランスフォーム ギズモのユーザビリティが改善され、新機能が追加されました!

image alt text

オブジェクトの移動と回転がより自然に近くなり、VR でオブジェクトを均一にスケールしたり、単一の 2D プレーンに平行に移動することができるようになりました。今後も引き続き VR ギズモを改善していきます。

新規:VR エディタ - 懐中電灯

クイックメニューから懐中電灯をコントローラに追加することができます。シーンの暗い部分を照らしたり、ライトがどのように他のマテリアルとインタラクトしているかを確認できます。

image alt text

新規:VR エディタからスクリーンショットを撮る

VR で直接スクリーンショットが撮れるようになりました!

image alt text

新規:VR 編集モードの自動切り替え

VR エディタが有効の間は VR ボタンやエスケープを手で操作しなくても、VR 編集モードが切り替わるようになりました。エディタがフォアグラウンドになっている限り、ヘッドセットを装着中は自動的に VR 編集モードになり、ヘッドセットを外すと編集モードを終了します。

image alt text

[Editor Settings (エディタ設定)] の [Experimental (実験的)] セクションの VR の設定で、好みに応じて自動切り替えのオンオフができます。

image alt text

新規:シーケンサーのインポート / エクスポート

シーケンサーで、ノンリニア編集パッケージとの相互変換のため CMX EDL ファイルのインポート / エクスポートが可能になりました。

image alt text

上の画像は Adobe Premiere Pro へエクスポートされたシーケンスのスクリーンショットです。シーケンスの各ショットは、EDL ファイルで参照される別々の動画ファイルへ書き出されます。Premiere でのシーケンス処理の変更はすべて UE4 のシーケンスへインポートされます。

OpenEXR ファイルで HDR データをエクスポートするシーケンサーの機能が拡張され、ユーザーはHDR データをエンコードするために使う色域が選択できるようになりました。

image alt text

シーケンサーが FBX アニメーションをオブジェクトやトラックに直接インポートできるようになりました。アニメートされたトラックも FBX へエクスポートすることができます!

新規:レンダラでのシーケンサー バーンイン

動画シーケンスのレンダリング時に、エクスポートするイメージに「Burn-in」を設定することができるようになりました。ショットの識別とトラックに非常に便利です。

image alt text

新規:メディア フレームワークの大改修

メディア フレームワーク API を徹底的に見直しました。新機能もたくさん追加されました!メディア フレームワークのパワフルな機能をいろいろ使って、映像やオーディオをプロジェクトにライブで埋め込むことができます。

image alt text

  • 複数のメディア ソースを連続してプレイするプレイリスト アセット

  • オーディオ プレイバックのサポートが追加されました。

  • メディア ファイルのインポート ワークフローが改善されました。

  • ブループリント インテグレーションが改善されました。

  • いくつかのプラットフォームでパフォーマンスが改善されました。

  • GPU でのピクセル形式の変換

  • いくつかのプラットフォームで映像サイズの動的な変更がサポートされます。

Android

  • 複数のオーディオ トラックがサポートされます。

  • HTTP Live Streaming (HLS)

Playstation 4

  • HTTP Live Streaming (HLS)

  • 再生に関わる制御 (ポーズ、SetRate など) が改善されました。

  • メディア ファイルがメモリへ事前キャッシュできるようになりました。

  • Farchive からメディアを開く

  • 複数の映像を一度にプレイできるようになりました (メモリ プール設定を増やす必要があります)。

Windows

  • H.264 がサポートされました。

  • HTTP(S) と RTSP ストリームへのサポートの改善点

  • エラー処理とロギングの改善

  • 安定性とユーザビリティの改善

  • 標準外およびサポート対象外のコード処理方法の改善

注記

  • MacOS/iOS を実験的にサポート開始 (AvfMedia プラグイン)

  • Linux を実験的にサポート (Github の VlcMedia プラグイン経由)

  • Video-Over-IP を実験的にサポート (Github の NdiMedia プラグイン経由)

  • XboxOne (MfMedia) と HTML5 はまだサポートされていません。

  • シーケンサーと映像録画の統合は 4.14 で予定されています。

  • PlatformMediaSource アセットはまだ実装されていません。

新規:Platform SDK のアップデート

リリースの都度、プラットフォーム パートナーからの最新の SDK リリースに対応するようにエンジンをアップデートしています。そして今回のリリースでは、UE4 のバイナリ版で Windows から iOS/tvOS プロジェクトをリモートでコンパイルすることができます。

image alt text

  • iOs/tvOS:コード プロジェクトがUE4 バイナリ版 Windows 版のアンリアル エンジン ランチャーでサポートされます。(リモート コンパイルには Mac が必要になります)

  • macOS:Xcode8 と macOS 10.13 Sierra がサポートされます。

  • iOS/tvOS:iOS10/tvOS10 がサポートされます。

  • Xbox One:August 2016 XDK にアップグレードされました。

  • Playstation 4:PS4 SDK 3.508.201 にアップグレードされました。

  • Oculus RiftOculus 1.6 Runtime にアップグレードされました。

  • SteamVR:OpenVR 1.0.2 にアップグレードされました。

  • Google VR:iOS で Google VR (Cardboard) がサポートされます。

  • OSVR:v0.6-1194-g0c54f5e にアップグレードされました。

  • Android:Google Play Games native C++ SDK が 2.1 にアップデートされました。

  • Android:Google Play Services が 9.2.0 にアップデートされました。

  • Android:Nougat または Android 7.0 上での実行がサポートされます。

  • Vulkan API:SDK が 1.0.17.0 (Android と Windows) にアップデートされました。

新規:ランドスケープ テセレーションの改善点

ランドスケープでのハードウェア テレレーションが格段に速くなりました!ランドスケープは、最も高い LOD でハードウェア テセレーションのみをレンダリングするようになってので、ランドスケープが 2 つ目の LOD に近づくとフェードアウトします。次に続く LOD のテセレーションは有効になっていません。ランドスケープ テレインで変異に対してテセレーションを有効にすると、パフォーマンスが大幅に改善されます。

image alt text

テセレーションを有効にして最も高い LOD (白) をレンダリングした場合と、テセレーションなしで LOD (カラー) をレンダリングした場合。

新規:アニメーションのポーズ アセット

ポーズ アセットという新しいアニメーションのタイプを追加しました。これには指定されたボーンのポーズ一式が含まれ、頂点の形状をブレンドするのを同じ方法で付加してブレンドすることができます。

image alt text

FACS (Facial Action Coding System) または viseme (形素) カーブがポーズを操作する場合にフェイシャル アニメーションをサポートする使い方があります。ただし、このシステムを使って複数のポーズをブレンドしてアニメーションを新規作成することもできます。

現時点では、コンテンツ ブラウザのコンテキスト メニューを使って Anim Sequence から、またはペルソナの [Creat Asset (アセット作成)] メニューからポーズ アセットを作成しています。ポーズ アセットを作成する時、ポーズ名が自動生成されます。その後、手入力でポーズの名前をひとつひとつ変更するか、クリップボードに貼り付けて全部まとめてい一度に変更することができます。

ポーズは通常のアニメーション カーブで操作されます。アニメーションの中にある限り、カーブを確認することができます。ペルソナでは、ポーズをカーブからプレビューするには、現在の [Preview Pose Asset] を設定する必要があります。

image alt text

AnimGraph では、Pose Blender ノード (Pose By Name) を使って入力カーブに基づいたポーズを出力することができます。

image alt text

このシステムをサポートするために付加的なブレンドでスケールを処理する方法を改善しました。今後は、ポーズ アセットとモーフ ターゲットの操作に使われるその他のアセット (サウンドウェーブなど) でもカーブをサポートしたいと思っています。

新規:Pose Driver Animation ノード (実験的)

ボーンの移動に基づいたカーブ値 (モーフ ターゲット ウェイトなど) を操作するための Pose Driver ノードを新たに追加しました。

image alt text

このノードは RBF (Radial Basis Function) を使ってターゲット ボーンの方向に基づいた値を補間します。PoseAsset を使ってボーンのターゲット ポーズ、およびそれぞれのポーズでの望ましいカーブ値を定義しします。このノードは、ボーンの方向に基づいた補正ブレンド形状を操作するための Pose Space Deformer としても使用できます。

新規:Animation ノードの Pose Watching

ペルソナで Anim graph ノードを「ウォッチ」できるようになりました。

image alt text

このノードで、AnimGraph の任意のポイントで動的に生成されているポーズを見ることができます。一度に複数の Pose Watch をアクティブにして様々なポイントのポーズを比較して、現在のポーズでエラーが発生した正確なポイントを見つけることができます。複雑な Animation ブループリントのデバッグに非常に便利です。これまでは、見たいノードを直接ルート ノードに接続してブループリントを再コンパイルしなければ使えませんでした。

新規:シーン キャプチャの改善点

シーン キャプチャが改善されました。新しい ‘Blueprint Drawing to Render Targets’ 機能を使えばもっと便利になります!

image alt text

  • 正投影がサポートされます。

  • Capture Scene 関数でブループリントがシーン キャプチャをアップデートすると、Draw Material to Render Target を使って次の画像処理が可能となります。

  • オパシティをアルファでキャプチャできるようなったので、シーン キャプチャで行った部分的なレンダリングを後から別のシーンに合成することができます。

  • 深度をはじめ、キャプチャ関連の様々な GBuffer 属性が利用できます。

  • シーン キャプチャへのレンダリング対象を簡単に制御する ‘Hidden Actors’ と ‘Show Only Actors’ 配列が追加されました。

image alt text

メッシュを可視性のある形状で正投影のシーン キャプチャにレンダリングして、 Draw Material To Render Target で画像処理することで、戦場の煙などのゲーム特有のエフェクトを実現できます。

新規:屈折シェーダーの改善点

頂点法線を参照とし利用して、各ピクセル法線の頂点法線との差異から屈折オフセットを計算する "Pixel Normal Offset" 屈折モードが追加されました。非物理屈折ですが、フラットな水面での屈折に使用できます。

image alt text

左: 屈折なしのシンプルなシーン

中央:水面に不要なオフセットが継続的に発生するデフォルトの屈折メソッド

右:法線マップの差に基づいて変形するピクセル ノーマル オフセット屈折メソッド

image alt text

新規:ライン トレースからのテクスチャ座標

ライン トレースからのテクスチャ座標 (UV) 情報をサポートするためのプロジェクト設定を追加しました。

image alt text

このオプションは [Project Settings (プロジェクト設定)] -> [Physics (物理)] -> [Optimizations (最適化)] にあります。このオプションを有効にすると、‘Find Collision UV’ 関数を使って Hit Result を受け取り、影響ポイントで任意の UV チャネルに対する UV 情報を検索します。UV 情報のコピーは CPU メモリに格納されるため、この機能を有効にするとその分メモリを使います。

新規:スプライン編集の改善点

ブループリント エディタで Spline コンポーネント デフォルトを編集する

標準のスプライン ビジュアライザー編集機能を使って、Spline コンポーネント ポイントをブループリント エディタに設定することが可能になります。一度配置されるとインスタンス レベルごとにオーバーライドが可能ですが、ブループリントの新規インスタンスがこれらのデフォルトで作成されます。

image alt text

スプライン ビジュアライザーにて "Reset to Default" コンテキスト アクション使用で、インスタンスはブループリントのデフォルト設定に戻ります。ブループリントのデフォルトに対して行われた変更はすべて、スプライン ポイントがその後編集されていないインスタンスに継承されます。

image alt text

スプライン ポイントを詳細パネルの数値で編集する

これまではスプライン ポイントを正確に配置し、スケール、ロール、タンジェントをそれらに割り当てることができませんでした。これらのプロパティが、選択したスプライン ポイントの詳細パネルに表示されるようになります。

image alt text

新規のスプライン ポイント プロパティ

スプライン ポイントが、タンジェントの明確な出入り、および任意の入力キーで定義できるようになります。前者は連続しないスプラインを可能にし、後者はポイント間の補間速度をかなり制御します。これにより、かなり多様性に富んだスプライン パスが制作できるようになります。

スプライン ビジュアライザーには、Spline コンポーネントの詳細のコンテキスト メニューの中に、タンジェントの出入りがロックされずに別々に編集できるオプションがあります。

image alt text

ポイントごとに任意の入力キーの設定が可能になったので、クローズしたスプラインに対しても Loop Position の入力キーの指定が可能になります。

image alt text

入力キーまたはループ位置の指定がない場合は、デフォルトの開始位置は 0.0 になり、ポイントごとに 1.0 ずつ増えていきます。

ブループリントのスプライン アップデートの遅延

ブループリント コンストラクション スクリプトでプロシージャルにスプラインをビルドした方が好ましい場合があります。これまでは、スプライン ポイントで毎回演算することによりスプラインがリビルドされていましたが、最適化の目的で、スプライン ポイント演算の後にスプラインをリビルドすべきか指定できるようになります。Update Spline ノードもちゃんとあります。

image alt text

コンストラクション スクリプトへの入力スプライン ポイント

スプライン ビジュアライザーでスプラインを手作業で編集し、その後でブループリント コンストラクション スクリプトを使って仕上げる方が便利が場合があります。すべての編集済みポイントを球体のサーフェスにロックしている、以下のような状態がその例です。

image alt text

使用するには、"Input Spline Points to Construction Script" プロパティにチェックを入れます。

image alt text

新規:Sub Animation ブループリント

Animation ブループリントの ‘Sub Anim Instance’ ノードを使って、アニメーション ロジックを共有し、他の Sub Animation ブループリントへの参照が可能になります。このノードを使うと、大きい Animation ブループリントを [移動] と [物理] というように、別々のアセットに分割することもできます。

image alt text

Sub ブループリントのメンバ変数は、入力ピンとしてノードに表示されます。Sub Animation ブループリントは、外部の Animation ブループリントと同じスケルトンを使用しなければなりません。

新規:アニメーション カーブ ビューア

ペルソナから [Skeleton Curve] タブを取り除き、改善された [Animation Curves] タブへその機能を移しました。カーブ名の変更、カーブの削除、カーブ データのプレビューができます。

image alt text

現在のスケルトンに属しているすべてのカーブ、もしくは現在アクティブなカーブをプレビュー アセットで確認できます。アクティブなカーブだけを確認したい場合は、カーブの種類を指定したフィルタ表示も可能です。デフォルト カーブ名はデフォルトでは「属性」になっているので、アニメーション カーブはすべてデフォルトは属性カーブとなります。ご注意ください。

カーブ値を修正するには、自動チェックボックス オプションをオフにするか、値を直接入力します。

新規:UMG ウィジェットのスプライト

Paper2D スプライトを UMG とスレート ウィジェット用のブラシ入力として使えるようになります。スプライト シートとして開発された UI アートをユーザーが参照できるようにしただけでなく、描画コールをあまり行えないプラットフォームでより効率の良いウィジェットのレンダリングが可能になります。レンダリング時に同じレイヤーを共有しているのであれば、同じテクスチャ アトラスを構成しているスプライトはスレートと一緒にバッチ処理することができます。

image alt textimage alt text

新規:インスタンス化ステレオ レンダリングをVR 用に最適化する

インスタンス化ステレオ レンダリングを使用するためのベロシティ パスを含め、インスタンス化ステレオ レンダリングが大幅に改善されました。PS4 ではマルチビュー サポートが有効になったので、ISR パス使用でパフォーマンスが著しく改善されました。

新規:GPU モーフ ターゲット

プロジェクトが Shader Model 5 レベルのハードウェアの GPU でモーフ ターゲットを計算できるようになります。CPU に負担をかけずにこのような演算の実施が可能になります。

image alt text

新規:ランドスケープ シェーダー メモリの最適化

最初にロードされたシェーダーのコンパイル時間の短縮、エディタ イタレーションの改善、メモリ使用とシェーダー キャッシュ サイズの削減により、ランドスケープ マテリアル用にコンパイルするシェーダーの組み合わせ数が大幅に減りました。

新規:シャドウの最適化 (モバイル)

Combined Static に最適化が追加され、CSM シャドウ モードが 4.12 に追加されました。このモードでは、Stationary (固定) の指向性生徒が静的オブジェクトから静的シャドウを、動的オブジェクトから CSM シャドウをキャストします。4.13 では、CSM シャドウをキャストする動的オブジェクトのバウンスに基づいて適切なシャドウが自動選択されます。静的と CSM を組み合わせたシャドウを受け取るプリミティブをひとつひとつ手作業でタグ付けする必要がなくなりました。

新規:ランドスケープ インポート プラグイン

ランドスケープ ファイル フォーマットに新たなプラグイン API が追加されました。デベロッパーは、様々なハイトマップ / ウェイトマップ ファイル フォーマットのサポートをランドスケープに追加するプラグインの作成が可能になります。現在の raw および png のサポートはこの API に変更されます。特に Png サポートは、新たなランドスケープ ファイル フォーマット プラグインの実装のリファレンスとなります。

新規:自動化テスト (Android)

プロジェクト ランチャーで、プロジェクトを複数の Android デバイスに同時にパッケージ化および起動することが可能になります。デバイスごとに起動されて app は USB ケーブル経由でホスト PC へ戻され [Session Fronted] ウィンドウで表示されます。

その後で、すべてのデバイス上で自動化テストを起動し、[Session Fronted] ウィンドウ で結果を確認します。

image alt text

新規:OpenGL ES 3.1 (Android)

UE4 は長い間 Android の OpenGL ES 3.0 と 3.1 機能の多くをサポートしていますが、Android で ES 3.1 だけをターゲットにできるようになります。これにより、Metal と Vulkan の機能パリティがハイエンドな Android デバイスに提供され、ユニフォーム バッファを使用することで 16 テクスチャ サンプラーを利用できるだけでなく、パフォーマンスも改善されます。

同じプロジェクトに ES 2.0 と ES 3.1 の両方のシェーダーのパッケージ化も選択可能になり、デバイスは性能に応じて最も良いシェーダー プラットフォームを選択します。

image alt text

新規:モバイル パッケージング ウィザード

コンテンツなしの最小限の app を App Store にアップロードし、残りのコンテンツを Cloud からダウンロードするモバイル用のパッケージ化をサポートする、モバイル パッケージング ウィザードを追加しました。

image alt text

  • これは、定期的に DLS アップデートのある大規模なゲームで一般的なパッケージング方法です。

  • さらに、ユーザーは、デバイスに必要なテクスチャやシェーダー フォーマットなど、自分のデバイスに必要なコンテンツだけどピンポイントでダウンロードできます。

  • ウィザードは、[Project Launcher (プロジェクト ランチャー)] ウィンドウで、プロファイルの新規作成オプションとして利用できます。

新規:最大精度のマテリアル (Mobile)

マテリアルをモバイル デバイスで使用する場合、ピクセル シェーダーで最大精度を使用するオプションがつきました。例えば、マテリアルが演算処理でワールド座標を使う場合に役立ちます。

image alt text

新規:バイナリ シェーダー キャッシュ (Android)

コンパイルされたシェーダーは最初の使用でディスク上に格納され、次のアプリケーションの実行で再利用されます。

  • GL_OES_get_program_binary 拡張が必要です。

  • デフォルトでは無効です。Android デバイス上でのみ有効にできます (r.UseProgramBinaryCache=1)。

新規:ローカライズされたテキスト フォーマットの改善点

ローカライズされたテキスト フォーマットを改善して、より正確な翻訳ができるようになりました。

複数用フォーム:

  • このフォームは、テキスト フォーマットで使用する数値変数に合わせたテキストの使用を可能にします。複数用フォームには “There is 1 cat”、“There are 4 cats” などの基数、そして “You came 1st!”、“You came 2nd!” などの序数があります。

  • 複数用フォームは key->value pairs として指定します。以下のキーワードはすべてサポートされます (CLDR data でカルチャーに対して定義されている): zero、one、two、few、many など。値には、それ自体にもフォーマット マーカーを含む文字列を引用することもできます。

  • 基数フォーマットの例:"There {NumCats}|plural(one=is,other=are) {NumCats} {NumCats}|plural(one=cat,other=cats)"

  • 序数フォーマットの例:"You came {Place}{Place}|ordinal(one=st,two=nd,few=rd,other=th)!"

性別用フォーム:

  • この フォームで、テキスト フォーマット中の ETextGender 値に応じたテキストが使えるようになります。例) "Le guerrier est fort"、“La guerrière est forte”

  • 性別用 フォームは、男性、女性、中性 (中性はオプション) の順序の値で指定されます。値には、それ自体にもフォーマット マーカーを含む文字列を引用することもできます。

  • 例: "{Gender}|gender(Le,La) {Gender}|gender(guerrier,guerrière) est {Gender}|gender(fort,forte)"

ハングル文字の助詞用フォーム:

  • このフォームは、韓国語の文法を明確にし、終わりの文字が子音か母音かに応じて正しいグリフを挿入します。例) "사람은"、“사자는”

  • ハングルの助詞用フォームは、子音、母音の順序の値で指定されます。値は文字列を引用することも可能です。

  • 例: "{Arg}|hpp(은,는)"

複数用フォーム / 性別用フォームの対応に必要な数値 / 性別値をパスするために、関数の FText::Format(...) ファミリーのすべてが FText ではなく FFormatArgumentValue として値を受け取るようになりました。すべての numeric 型、ETextGender、あるいは ETextGender からでも作成することができます。

これらの value 型をブループリントに設定する機能が、"Format Text" ノードのワイルドカード ピンで表示されます。

image alt text

image alt text

FText::Format(...) への複数のコールに再利用する場合は、フォーマット パターンのプリコンパイルも可能です。FTextFormat インスタンスを作成および格納し、FText::Format(...) へパターンとしてパスします。

新規:マルチスレッド オーディオ (実験的)

エディタ外で、サウンド キュー評価とアクティブな WAVE インスタンスの決定をゲーム スレッドごとに行えるようになります。アクティブ サウンド キューの量と複雑度によって結果はゲームごとに異なりますが、初期テスティングの段階で、ゲームスレッドとオーディオスレッド上で 1 フレームにつき約 1ms の変化が確認できたケースもあります。

この機能は 4.13 ではデフォルトで無効になっていますが、BaseEngine.ini. の [Audio] セクションで [UseAudioThread][true] に変更できます。お試しください。

新規:ネットワーク リプレイの後方互換性

リプレイ記録機能で後方互換性がサポートされます。つまり、レプリケートされたプロパティをビルト、追加、削除するための変更をしてから、古いビルドで記録した新しいビルド上にリプレイをロードすることができます。

この機能をテストするには、任意のビルドでリプレイを記録して、レプリケートしたプロパティを変更してから、新しいビルドに同じリプレイをロードするだけです!

ほとんどの場合、レプリケートされたそれぞれのプロパティの低レベルのリフレクション情報で処理されます。カスタム仕様のシリアル化ネットワーク データ (UObject::NetSerialize) の場合、 ストリームの現在のネットワーク版の取得と古いデータの手作業での処理を可能にする FArchive (FArchive::EngineNetVer() and FArchive::GameNetVer()) に追加した 2 つの新規関数を使うことができます。

新規:Build Graph スクリプト (実験的)

BuildGraph スクリプトを使って、ビルド自動化のための UE4 ビルド コマンドのカスタム シーケンスを作成することができます。グラフは MSBuild、ANT、NAnt のようなシンタックスを使った XML スクリプトで宣言され、タスク から成る従属 ノード のネットワークで構成されます。

image alt text

Engine/Build/Graph/Examples/…で BuildGraph のサンプルをご覧いただけます。

新規:Installed Builds 作成用スクリプト

インストール済みの UE4 を配布するため、プロセスをもっとシンプルに、他の開発チームにより分かりやすくするためにエンジンをカスタマイズして、ビルド プロセスを BuildGraph スクリプト処理言語で書き直しました。スクリプトは Engine/Build/InstalledEngineBuild.xml にあります。以下のコマンドラインのいずれかを使って AutomationTool を呼び出して実行します。

Windows:

BuildGraph -target="Make Installed Build Win64” -script=Engine/Build/InstalledEngineBuild.xml -clean

Mac:

BuildGraph -target="Make Installed Build Mac” -script=Engine/Build/InstalledEngineBuild.xml -clean

このビルド プロセスのカスタマイズに使えるオプション リスト (ビルドされるノートのリストも併せて) をご覧になりたい場合は、 -listonly を付けます。

新規:アンリアル プロパティ TSets

TSets が自動シリアル化、ガーベジコレクション、ini 設定、詳細パネルでの編集 (例: "(1,2,3)") の入力に限定) 目的の UPROPERTY として使用できるようになります。TMap と同様に、TSet プロパティはレプリケート メンバとしては使えませんし、ブループリント内でも使用できません。

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

AI

  • New: Added two appropriately named functions to the AI Perception Component

    • The functions for "Get Currently Perceived Actors" and “Get Known Perceived Actors” have replaced the ambiguously named “Get Perceived Actors”.

  • New: Made AI Sight sense's collision channel configurable via the AI System's settings.

  • Bugfix: There was a case where EQS item score normalization where all all items had the same score. We used to normalize the score to 1, but now it's based on the shared item score.

  • Bugfix: The AI Controller was overzealously clearing out its Cached Gameplay Tasks Component on UnPossess, even if the pawn was not the owner of Game Play Tasks Component.

  • Bugfix: Blackboard Key Selectors were not being tied to the blackboard entries properly when used in Blueprint.

  • Bugfix: EQS queries were losing part of the data on asset duplication when they had more than one option branch.

  • Bugfix: The Processing of AI Messages has been fixed when a new message appears during a notify loop.

  • Made Simple Move To Location/Actor reset velocity only if the agent is already at goal.

  • Removed infinite loop protection from Gameplay Task event processing, as it was hiding source of issues.

  • Turned Graphs off by default in the Visual Logger.

Behavior Tree
  • New: Added v-logging of failures of adding dynamic subtrees to a Behavior Trees Component.

  • Bugfix: Crash fix when pasting comments over from Blueprint editor into Behavior Tree editor.

    • This makes it a partial comment-support for BT and EQS editors. You still cannot place them by using context menu, but you can copy-paste it.

  • Bugfix: Fixed a Blackboard Key Select issue where you were not able to allow more than one UObject subclass.

  • Bugfix: Fixed Behavior Tree auxiliary nodes, parallel tasks, active tasks, and aborting tasks being ticked while the Behavior tree is paused.

  • Bugfix: Fixed Behavior Tree decorator remaining relevant and observing blackboard after its subtree was removed from the stack.

  • Bugfix: Fixed Behavior Tree getting stuck on instantly finished gameplay tasks.

  • Bugfix: Fixed Behavior Tree serialization spawning duplicates of task services nodes.

  • Bugfix: Fixed missing observers in behavior tree when dynamic subtree was changed and the tree was waiting for a full restart. The search ran out of nodes.

  • Bugfix: Fixed an issue where Stop Tree was not working if at the time of the call the Behavior Tree Component was waiting for a latent task to abort.

  • Changed behavior tree node instancing to use object duplication instead of spawning new object. This fixes missing values of Blueprint properties.

Debugging Tools
  • New: Added detailed config for gameplay debugger's categories in Project Settings. Each can now define category slot, default state and input bindings. This will be moved to user settings section in a future release.

  • New: Added logging of the current Move ID to Pathfollowing Component's vlog snapshot.

  • New: Added client to server replication option for gameplay debugger's input event handlers.

  • Bugfix: Fixed Gameplay debugger extensions to now activate during Simulate in Editor.

  • Bugfix: Fixed Gameplay debugger extensions and rendering to now correctly update after tool is closed.

  • Bugfix: Fixed Gameplay debugger to no longer get stuck with outdated data packs on Client.

  • Bugfix: Fixed an issue where Gameplay debugger was sometimes not activating on clients, since it was depending on the wrong initialization order.

  • New: Added a "default navigation filter" property to AI Controller to be used in given controller's navigation queries.

  • New: Added a "meta navigation filter" that, when used, fetches the Default Navigation Filter from AI Controller.

  • New: Added more details to the information returned by path following request:

    • Result flags.

    • Fixed stacking and identifying move tasks started by Blueprint functions.

  • Bugfix: Crash fix for path update processing.

  • Bugfix: Fixed an issue where auto-repathing to world location where the path’s end was being erroneously used to perform pathfinding rather than the original move goal location.

  • Bugfix: Fixed an issue with Meta NavMesh Path doing navmesh path update without checking navigation agent if the path finding should be postponed (eg. when falling).

  • Bugfix: RVO avoidance updated for vehicles.

  • Bugfix: Fixed an issue where Navmesh obstacles were cutting corners too close when using string pulling in detour’s crowd simulation.

  • Bugfix: Fixed an issue where navigation mesh streaming was not correctly handling criss-crossed sub-levels.

  • Navigation generation conditions in Scene Component's code have been improved to avoid doing unnecessary work.

  • Removed Nav Collision from static mesh on property change and Post Load if static mesh is not supposed to have one.

  • Unified bounds tests for applying navmesh modifiers, always expanding bounds one cell height on Z axis to cover for voxelization roundings.

  • Changed the Nav Mesh projection code to use 2D distance when looking for the best point on navmesh.

Animation

  • New: Added a pin to the Montage Play node to allow choice over the return type of the node for either the length of the selected montage or its playback duration.

  • New: Added ability to override angular joint bias per-node for Anim Dynamics nodes.

  • New: Added blueprint node to allow the setting of an Animation Blueprints Root Motion Mode

  • New: Added dynamic simulation space switching to Anim Dynamics animation node, and exposed more properties as optional pins.

  • New: Added the number of morph targets to the Skeletal Mesh Content Browser info.

  • New: Added option for parent bone space to Get the Socket Transform.

  • New: Added the ability to use the spacebar as a shortcut to play/pause animation playback in Persona.

  • New: Added spherical constraints to the Anim Dynamics animation node.

  • New: Animation curve import options:

    • Remove Redundant Keys: This removes redundant keys when importing a custom attribute as a curve.

    • Do Not Import Curve With Only Zero Values: If all of values are 0, do not import. Not having the curve value is same as 0.f.

  • New: Changed animation compression settings so that they are edited in a dialog instead of directly in the Details panel. This stops animation compression settings from becoming out of sync with the actual compression used.

  • New: Import Animation:

    • Renamed the Animation Name setting to Override Animation Name.

    • Option to add suffix for importing material curves by name. By default _mat.

  • New: Animation sequences can now be marked as only being required by dedicated servers when they have root motion.

    • Animation sequences still need to be flagged in the project cooker settings as being stripped on servers for this to have any effect.

  • New: Pose Asset supports runtime Retargeting option in Skeleton for Animation, Animation Scaled, and Skeletal.

  • New: Retarget Window:

    • Automap button automatically attempts to map source skeleton to target skeleton.

    • This doesn't work well with fingers, so you'll have to make sure to set them correctly.

  • New: Updated retargeting Animation Blueprints to a new skeleton so that it now finds all references to animations (in native properties and blueprint variables) and not just on animation nodes.

  • New: 'Showdebug Animation' displays Save Cache Pose nodes and subgraphs only once to keep display short. The Save Cache Pose and Use Cache Pose names are displayed.

  • New: Added search box to Socket chooser.

  • New: Socket copying in Persona now preserves bone attachment by default.

  • New: Support Step interpolation between key frames per animation. Please check property of Interpolation in Anim Sequence.

  • New: Added a tick dependency for slave components.

    • Ensures that slave components always get ticked after master components.

    • Prevents potential main thread stall updating morph targets in slave components.

  • New: Getting a Relative Transform now supports negative scale.

  • New: Getting a Socket Transform will now prioritize the socket name over the bone name.

  • New: Getting a World From Context Object is safe to be used in another thread, however the behavior is slightly modified. It will not use GWorld as an alternative option.

  • New: Exposed source indices for transition to runtime code so we can better identify which transitions are currently running when trying to determine elapsed times for anim getter nodes.

  • Bugfix: Fixed a crash when opening a skeleton when its assigned preview mesh doesn’t use that skeleton.

  • Bugfix: Fixed a crash when a Skeletal Mesh component gets destroyed while triggering a notify.

  • Bugfix: Fixed a crash when adding a section to a zero length montage.

    • Fixed a nullptr dereference in the montage handling code and disabled the menu option to add section when zero length.

  • Bugfix: Fixed a crash when viewing an uncompressed animation.

  • Bugfix: Fixed a crash when debug drawing of some animation nodes while in PIE.

  • Bugfix: Fixed a crash when using undo/redo while editing the Animation Blueprints defaults.

  • Bugfix: There was an edge case in random sequence player where there might be an extra loop when waiting on a blend to finish. This made it impossible for a shuffle list to start with the animation that is currently playing, seemingly duplicating the animation.

  • Bugfix: Prevented an animation from restarting each time a new section is selected/inspected in the montage editor.

  • Bugfix: Updated animation initialization to now verify the mesh’s hierarchy matches with the skeleton.

  • Bugfix: Animation Retargeting:

    • Fixed an issue with Additive Blend Space/Anim Offset.

    • Fixed an issue for not making the package dirty.

  • Bugfix: Fixed a compression issue with remove linear key not working properly with additive animations.

  • Bugfix: Fixed an issue where Additive Blend Space thumbnails no longer generate single node instance warnings.

  • Bugfix: Fixed an issue when copying non-POD structs in the animation fast path has been fixed.

  • Bugfix: Fixed an issue where Root Motion for Everything would not blend correctly when using layered blend per bone.

  • Bugfix: Fixed an issue resulting in a slowdown in Anim Blueprints while dragging spin controls on default values.

  • Bugfix: Fixed abstract notify state classes to no longer show up in the create notify state menu.

  • Bugfix: Fixed Additive Animation scale to apply correctly.

  • Bugfix: Fixed Animation ‘fast path’ to now work with various corner cases (e.g. multiple inputs to array properties from structs).

  • Bugfix: Fixed Blend Spaces to no longer produce bad data when degenerate spaces are present.

  • Bugfix: Fixed an issue with animation compression caused by an uninitialized box variable.

  • Bugfix: Fixed Cached Posed Weighting to now ensure that the cached poses update with the highest weight they have been updated with, instead of just the first weight in their Animation Blueprints.

  • Bugfix: Fixed Custom Blend graphs to no longer ignore curve values.

  • Bugfix: Fixed an issue with saving recompressed animations that would cause the error Graph Linked External Object.

  • Bugfix: Fixed an issue when creating animations with additive curves that would apply the layer twice.

  • Bugfix: Fixed an issue where animation metadata was not being saved for the montage.

  • Bugfix: Fixed an issue with the Layered Bone Blend calling Update on branches with the wrong weight.

  • Bugfix: Fixed an issue where properties that were fed to a Skeletal Mesh component via the construction script were not being updated when edited.

  • Bugfix: Fixed an issue where assets were missed in Montage nodes due to the reference gathering for animation assets in an animation graph not searching the Ubergraph.

  • Bugfix: Fixed an issue with Root Motion calculation when the actor and the component transforms did not match.

  • Bugfix: Fixed some old Animation Blueprint nodes that maintained non-transactional pin links.

  • Bugfix: Fixed an issue that resulted in split pins not working as Anim Graph node inputs.

  • Improved handling of LODs for Anim Dynamics chains. Now when a leaf bone is removed from a LOD the rest of the chain continues to simulate as expected.

  • Prevented stale anim asset references from persisting in wired pins in animation blueprints.

  • Removed option to clear the compression scheme on an animation sequence as it is not valid to have no compression set.

  • Removed option to clear the default compression scheme as it is not valid to have no compression set.

  • Removed redundant copy in the Modify Bone animation node.

  • Removed Vertex Animation, and related code as they are deprecated.

    • We have procedural mesh component that can be used for that.

    • Vertex Anim Base has been removed, and replaced with Morph Target.

  • Removed various unnecessary bone container copies.

  • Renamed the Trigger Event curve to the Drive Attribute curve:

    • In the UI, it will display as Attribute Curve.

  • Sequencer Scrub will display the Morph Target correctly.

  • Standalone games now benefit from parallel anim update if possible

  • Support different Sample Rate for reimporting with Set Range of time.

Audio

  • New: Added a setting to control dialogue wave audio filenames.

  • New: Added the ability to override the subtitle used on a dialogue wave.

    • This is useful for effort sounds, plus some other cases, such as characters speaking in a foreign language not known to the player.

  • Bugfix: Fixed a crash that would occur when cooking in editor for non-xaudio platforms if a cooked sound is played during the same session.

  • Bugfix: Fixed an issue that resulted in the subtitle manager updating the wrong list of subtitles.

  • Bugfix: Fixed an issue with the output volume to make it more consistent with volumes of other PS4 games.

Automation

  • New: Added Tcp Message Transport, a connection-based message bus transport currently used for communicating with sessions launched on Android.

  • New: Added several enhancements to the automation framework and improving the UI:

    • Tests in the UI now have a link to the source and line where they originate.

    • There is now a general purpose latent lambda command you can use to run arbitrary code latently.

    • Added Inlined Add Command for regular and networked commands to the base automation class, to avoid the use of the macro, which prevents breakpoints from working in lambda code.

    • Frontend now has better column displays offering more room to the test name.

    • Changed several events to the automation controller to multicast delegates so that many could hook them.

    • The UI now refreshes the selection after tests finish so that the output log updates.

  • New: Logging ensure fails as errors. Automated tests with ensure fails will be unsuccessful.

  • Bugfix: Fixed a crash in Render Output Validation automation test when running with cooked content.

  • Bugfix: Fixed an issue that could prevent a static mesh socket from being imported with the correct rotation.

  • Bugfix: Fixed screenshots to now save locally when running an automation test and an Automation Worker Screen Message is received.

  • Bugfix: Fixed an issue where Test logic had a broken check that would cause infinite map reloads when trying to run one in game.

  • Removed Func Test Manager warnings about PIE when running on a standalone game binary.

  • UAT parameter -signedpak now no longer implies -pak.

  • Tweaking the padding to make it look more like other windows and to make everything not look so squished. Recursive expansion now works on tests.

  • Toolbar improvements:

    • Removed the search box from the toolbar. It is now inlined above the test tree.

    • Moved the filter group drop-down out of the toolbar and onto the line with the search box above the treeview and general improvements to the feeling of it.

Blueprints

  • New: Added "empty" keyword to Clear Array Node which will show the Clear Array Node in the Blueprint Graph Context Menu when searching using the word "empty."

  • New: Added "Get All Actors with Tag" blueprint node which returns an array of all actors with the given tag.

  • New: Added "negate" keyword to Boolean NOT node which will show the Boolean NOT Node in the Blueprint Graph Context Menu when searching using the word "negate."

  • New: Added a "Generate abstract class" option to Blueprint class settings.

  • New: Added a Blueprint Node to multiply a Vector2D by another Vector2D

  • New: Added Editor Preferences options in General/Appearance/Graphs to disable grid in the Blueprint and Material editor, as well as change grid colors.

  • New: Added new macro to help scale and position materials that are drawn to canvas.

  • New: Added support for emitting the Blueprint Description as tooltip metadata for the compiled Blueprint class (displayed in class pickers, etc...)

  • New: Exposed the web browser widget's ExecuteJavascript method to widget blueprints

  • New: Added Interface properties can be exposed on spawn.

  • New: Added

  • Bugfix: Fixed a crash in Graph Node widgets when handling invalid pins.

  • Bugfix: Fixed a crash when compiling Blueprints caused by Set Boolean (by ref) node.

  • Bugfix: Fixed a crash when compiling Blueprints caused by Expand Enum As Execs metadata used with an enum containing a hidden element.

  • Bugfix: Fixed a crash while loading Blueprints that are circularly referenced by their interface.

  • Bugfix: Fixed a crash that would occur after editing a Blueprint that had been opened in the diff tool.

  • Bugfix: Fixed a crash when hovering over Create Widget node in Blueprints.

  • Bugfix: Fixed a crash when opening Kite Demo.

  • Bugfix: Fixed a crash when transforming an actor after applying instances changes.

  • Bugfix: Fixed a crash for the struct editor that could occur when editing Name member variables.

  • Bugfix: Fixed a crash when loading of a Blueprint class containing an integer property tagged as a bitmask with missing enum type metadata.

  • Bugfix: Fixed a crash that would occur when attempting to display a node that was already removed.

  • Bugfix: Fixed a crash that would occur when giving an event in a child Blueprint the same name as an event in its parent.

  • Bugfix: Fixed a crash that could occur when opening the Blueprint palette window.

  • Bugfix: Fixed a crash that could occur while updating Blueprint instances on compile.

  • Bugfix: Fixed a crash that was possible when removing a corrupted Blueprint component node if it’s found to have no parent attachment.

  • Bugfix: Fixed a crash when using the Blueprint Documentation commandlet.

  • Bugfix: Fixed a crash when copying and pasting collapsed graphs.

  • Bugfix: Fixed a crash for the debug target picker when trying to access an invalid world.

  • Bugfix: Fixed a crash when breaking all links to a MakeArray node with split struct pins.

  • Bugfix: Fixed a crash for a needed component that was being garbage collected during Blueprint compilation.

  • Bugfix: Fixed a crash for modifying and hot-reloading a Blueprint superclass.

  • Bugfix: Fixed a crash for an assert when loading a Blueprint with instanced sub-objects.

  • Bugfix: Fixed a crash when opening a Blueprint with a component that has all inherited properties hidden.

  • Bugfix: Fixed a crash when breaking a link to a pin on a MakeArray node that is any array type.

  • Bugfix: Fixed a crash for dragging a component into the Event Graph in a Blueprint that inherits from a C++ class.

  • Bugfix: Fixed a crash for connection to a split struct pin in a MakeArray node.

  • Bugfix: Fixed a crash for Blueprint node to Macros that would happen sometimes.

  • Bugfix: Fixed a crash that would sometimes happen when adding unsupported pin types to a Custom Event node.

  • Bugfix: Fixed a crash for an editor-only crash that could occur during instancing of an uncompiled Blueprint class with a modified array property in the native parent classes default object.

  • Bugfix: Fixed an issue where the Get Class node would fail to appear in the Context Menu when pulling from a self reference pin into an empty space in the Blueprint Graph.

  • Bugfix: Fixed an issue with Blueprint Function Libraries not working with class/function redirectors.

  • Bugfix: "Add Component" nodes will now be fixed up at load time if they are found to not be associated with a unique template object.

  • Bugfix: Associated component template(s) are now being cloned when duplicating Blueprint function graphs containing one or more Add Component nodes.

  • Bugfix: Basic shape components (cube etc.) will now apply the correct override material to instances when they are added to the component tree in the Blueprint editor.

  • Bugfix: Functions can now be properly overridden that are nested in an Interface Inheritance Hierarchy.

  • Bugfix: Changes made to settings in the Blueprint Profiler will now persist.

  • Bugfix: Changes to string literals that only affect case are properly applied (e.g. 'Hello' can be changed to 'hello')

  • Bugfix: Component data cache template objects will now properly remain referenced during garbage collection.

  • Bugfix: Components instanced as default subobjects of and attached to components instanced by Blueprint class construction script (i.e. nested default subobjects) are no longer being included in the Level editor's components tree view, as property values on these instances currently cannot be edited properly.

  • Bugfix: Copy-and-paste of Actor instances from the current level to the components tree view in the Details panel will now add components that have been properly initialized.

  • Bugfix: Customized defaults are now fully propagated to new instances at construction time during non-Actor-based Blueprint class re-instancing.

  • Bugfix: Details panel in the Blueprint diff tool is correctly set to read only again so that the user cannot edit the values.

  • Bugfix: Compiled Blueprint class assets in the Content Browser would give an invalid ensure (warning) when force-deleting.

  • Bugfix: Phantom asset being created when ‘Accept Source’ was used in the Blueprint Merge Tool.

  • Bugfix: Child Blueprints inherited variables would not display the replication settings set in the parent Blueprint.

  • Bugfix: The Details panel Macro where the tooltip for the "Keywords" and “Compact Node Title” was displaying the same “Category” rather than their respective tooltips.

  • Bugfix: The Structure editor would collapse all values in the Default Value panel after undoing any changes.

  • Bugfix: Widget Blueprints would collapse values in the Details panel after changing the default value of any Blueprint variable.

  • Bugfix: Unsupported pin types are no longer supported for Blueprint Event Nodes.

  • Bugfix: Corrected issue that caused a compile error in CustomEvent nodes.

  • Bugfix: Corrected issue that caused a MakeArray node to assume the type of a split struct pin rather than the parent struct when pasting from a Make Array node with split pins.

  • Bugfix: The Make Array node no longer gives incorrect indices when removing elements with split pins.

  • Bugfix: Fixed an issue where copying and pasting return nodes would fail to copy links to other nodes.

  • Bugfix: Fixed an issue where an automatically generated Get Display Name Blueprint node would not be connected when connecting a self reference output pin to a string input pin.

  • Bugfix: Fixed an issue where a wildcard Output Pin of an Array type could not connect to a split pin of an array type in a Make Array Blueprint node.

  • Bugfix: Fixed an issue where Blueprint compilation logs were being cut off and not output.

  • Bugfix: Fixed an issue where Blueprint Node Comment Bubbles would not save changes when losing focus.

  • Bugfix: Fixed an issue where copying and pasting a Blueprint Event Node along with one or more linked nodes would not also copy any links.

  • Bugfix: Fixed an issue where copying and pasting a Make Array node with added values would create a wildcard Make Array node rather than a copy of the original.

  • Bugfix: Fixed an issue where cross sub-object pointers could be invalid post load.

  • Bugfix: Fixed an issue where double-clicking on a component listed in the results of a "Find-in-Blueprints" search would not select the component in the Blueprint editor.

  • Bugfix: Fixed a cosmetic issue where dragging from an input pin would cause the link to appear from an output pin if the pins share the same name until the connection is completed or cancelled.

  • Bugfix: Fixed an issue where including a period in the name of a Blueprint function would cause double clicking the function name to do nothing instead of open its Blueprint Graph.

  • Bugfix: Fixed an issue where multiple Primitive types (eg. Vector, Rotator, Transform) would not automatically type cast to Text when trying to connect them to a Text Input Pin on a Blueprint node.

  • Bugfix: Fixed an issue where native interface functions were being miscategorized.

  • Bugfix: Fixed an issue where output nodes sometimes would not be generated when collapsing.

  • Bugfix: Fixed an issue where overridden component properties could be cleared on load.

  • Bugfix: Fixed an issue where split struct pins would disconnect on load.

  • Bugfix: Fixed an issue where the Blueprint editor's initial zoom focus transition could not be interrupted.

  • Bugfix: Fixed an issue where toggling the Comment Bubble button on Reroute Nodes would not properly toggle the Comment Bubble.

  • Bugfix: Fixed an issue where the functions filter when searching with Find-In-Blueprints would list components from SCS in addition to matching Blueprint functions.

  • Bugfix: Fixed several issues that were causing a number of issues after Blueprint compilation for bad property read/writes, infinite loops, and crashes.

  • Bugfix: Fixed a minor spelling error in the tooltip for "Save On Compile" in the Blueprint Editor.

  • Bugfix: Fixed a potential data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.

  • Bugfix: Fixed a potential infinite loop when replacing variable nodes in a Blueprint graph via drag-and-drop.

  • Bugfix: Fixed a potential loss of "Get Class Defaults" node output pin links on load. This was due to a dependency load order issue.

  • Bugfix: Fixed an ensure that would fail when dragging off a self pin when another actor was selected in the Content Browser.

  • Bugfix: Updated an error message on Create Event nodes to make it more clear when signatures no longer match the delegate they are bound to.

  • Bugfix: Fixed an issue with latent nodes making Blueprint bytecode generation more deterministic.

  • Bugfix: Fixed an ensure when dragging a level from the Levels window into Blueprint event graph.

  • Bugfix: Fixed an issue with the direction of Get Overlap Info parameters.

  • Bugfix: Fixed instances where "Asterisk" was misspelled as "Asterix" when searching in the Blueprint's Event Graph Context Menu.

  • Bugfix: Fixed an issue where macro Blueprints were triggering other Blueprints to recompile every time they were loaded.

  • Bugfix: Fixed an issue where Multi Line in User Defined Structs was not working with arrays of string or text properties.

  • Bugfix: Fixed a regression in My Blueprint panel as displayed in the Blueprint Diff Tool - was not displaying any values.

  • Bugfix: Fixed a stack overflow that could occur when compiling huge blueprints.

  • Bugfix: Fixed an issue where a wrong value of an Enum literal would be used with functions from Array Library.

  • Bugfix: Updated function return nodes to be more fail-safe. You can no longer remove them in overridden/inherited functions and the function's signature is maintained even when disconnected.

  • Bugfix: Fixed an issue to immediately apply transform updates to component template instances when changing the scene component hierarchy root in a Blueprint class.

  • Bugfix: Improved "variable not found" warning messages. You can now jump to the offending node.

  • Bugfix: Fixed an issue in the Blueprint Profiler so that the nested event node is now distinguished from its top-level event with the addition of "(Entry Node)".

  • Bugfix: Fixed an issue so that moving a child component in a child blueprint does not force the parent to become dirty anymore.

  • Bugfix: Fixed an issue so that collapsing Blueprint Nodes to a function when there are multiple input execution paths is no longer allowed. The resulting function would have ambiguous execution logic.

  • Bugfix: Collapsing Blueprint Nodes to a function will no longer create a return node if there are no return values.

  • Preserved relative scale on the root scene component when converting an Actor instance to a Blueprint Class.

  • Editor Performance Updates:

    • Removed a redundant Blueprint class compilation pass after a variable type change.

    • Significantly improved PIE startup time when automatically recompiling Blueprint classes that have multiple dependencies.

    • The Ed Graph Pin is no longer a UObject, this will improve load times significantly on projects with many large blueprints. Note that content does need to be resaved in order to see the improvement in load time.

  • The "Delete Unused Variable" feature now considers the "Get Class Defaults" node.

    • Output pins representing unused properties will now be removed from the node if they're not linked.

  • The "Get Class Defaults" node will now update immediately in response to structural Blueprint Class changes.

  • The Minimum Area Rectangle function is now callable without a World Context parameter.

  • When pasting a component in to the blueprint component tree, relative position and rotation is now cleared and will not be offset to its previous world position.

  • Optimized Math Expression parsing.

Core

  • New: Improved "DumpParticleSystems" console command to now print totals for each of the categories that were already listed for each individual particle system.

  • New: Added a new "-checkpak" command line switch which will attempt to verify every chunk in a signed pak file is valid when the pak is opened.

  • New: Added more detailed message when TArray's Bulk Serialize fails

  • New: Asset registry memory optimisation:

    • Made sure all dependency node link arrays are sized exactly as they need to be.

  • New: Crash callstacks will now be output to log by default.

  • New: Crash handling on Linux saves the Crash Report Client logs in the same location as the main game/server log.

    • Helpful for easily associating CRC logs with the session that crashed on Linux game servers.

  • New: Dedicated servers will no longer use memory logging by default.

  • New: Added minor logging and debugging enhancements for signed pak files to detect corruption.

  • New: Added config file based system for marking which classes aren't required by a dedicated server or client.

    • Added class names to the new options in the project cooker settings in the editor.

    • Overridden Needs Load For Server and Needs Load For Client functions on each class will still overrule the config file.

  • New: Optimized cooked asset registry dependency node data structures to reduce memory usage.

  • New: Added Option to show warnings and errors visually on the HUD in development builds.

    • Controlled by Duration Of Errors And Warnings On HUD in Engine.Engine section of DefaultEngine.ini (0 = disable).

  • New: Split Garbage Collection cluster index and internal object flags to allow more than 8 million UObjects in editor builds.

  • New: When graphics driver crashes the engine will now assert so that we can send a crash report. The Crash Report Client will now attempt to initialize Slate Renderer multiple times before it gives up in which case it will send the crash report in unattended mode.

  • Bugfix: Fixed a crash occurring in serialization when signed paks are used with compressed packages.

  • Bugfix: Fixed a crash when editing UObject’s in a Map property box.

  • Bugfix: Fixed a crash for Automation Tool when deploying to a default PS4 devkit.

  • Bugfix: Fixed a crash in UHT where an "Ambiguous search" error when a delegate has an own class declared.

  • Bugfix: Fixed a crash when loading an empty cached asset registry.

  • Bugfix: Fixed a crash when loading two stat capture profiles simultaneously.

  • Bugfix: Fixed a crash when pasting T3D into the Content Browser from the clipboard.

  • Bugfix: Fixed a crash when selecting a different capture in the stats dump browser of the profiler when another file is still loading.

  • Bugfix: Fixed a crash when spawning an actor using a template object with instance components.

  • Bugfix: Fixed a crash when saving a package which has an unresolved dependency.

  • Bugfix: Fixed a crash for hot-reload when a USTRUCT used is used as a field has a UPROPERTY field pointing to a hot-reloaded CDO.

  • Bugfix: Fixed a crash after opening edit config data for remote build and then trying to package.

  • Bugfix: Updated Exclusive Internal Flags so that they are now respected when passing in a null Object Package in Static Find Object Fast Internal Thread Safe.

  • Bugfix: Fixed an issue with null reference exception when connecting to the Swarm Coordinator.

  • Bugfix: Fixed and improved log message when garbage collector cluster assumptions are violated.

  • Bugfix: Updated DLC pak file path mappings to be relative to Game Dir instead of Root Dir.

  • Bugfix: Fixed Enum bitflags not being hot-reloaded properly.

  • Bugfix: Fixed an infinite loop in the editor that would happen if a directory that is being watched is deleted.

  • Bugfix: Fixed an issue with leaked linkers created by blocking load requests during async loading.

  • Bugfix: Fixed an issue with leaked log archive.

  • Bugfix: Fixed an issue where there was an incomplete/missing callstacks reported by thread heartbeat when a hang is detected.

  • Bugfix: Fixed an issue where there was potentially missing log output when serializing text of length equal to the async log writer buffer size.

  • Bugfix: Fixed an issue when serializing packages over 2GB when cooking. Usually this was caused by lightmaps.

  • Bugfix: Fixed an issue with Cook-on-the-fly server asset paths when the game name differs from its folder name.

  • Bugfix: Fixed timestamp checks of uncooked files when starting up the cook-on-the-fly server.

  • Bugfix: Fixed Asset Pointer remapping issues for duplicated level packages (level Save As, level Duplicate).

  • Bugfix: Updated most Box functions to use FORCEINLINE to improve Debug Game performance.

  • Bugfix: Made Launcher Tasks have unique names so we don't end up with stat name collisions which spam the log.

  • Bugfix: Fixed FPS pop-up updates when loading new stat file.

  • Bugfix: Removed an obsolete error message about INI file case sensitivity in the Unreal Header Tool.

  • Updated exporting to silently skip creating exports from a package where the outer is also an export and has been filtered at runtime during loading.

  • Updated the engine to no longer attempt to flush log messages in Check Rendering Thread Health if a critical error has already occurred. Crash handlers flush log anyway.

  • Updated the thread heartbeat to be killed when reporting ensures so that it doesn't get triggered when the report takes a long time to generate.

  • Updated the thread heartbeat to be stopped when the engine crashes to prevent it from interfering with generating crash reports.

  • Updated the thread heartbeat to be suspended when a message box is being displayed to fix false positives in hang detection.

  • Updated Media Player objects to not be added to any Garbage Collection clusters because they can load additional assets after they had PostLoad called on them and that results in Disregard For Garbage Collection assumptions being violated.

  • Non-backup files will no longer be deleted when cleaning up the log folder.

  • You can once again specify more than one ini override on the command line.

  • Removed a few redundant Add Referenced Objects functions to speed up Garbage Collection.

  • Modified crash handling code (on Windows) to handle two threads crashing at the same time properly. Previously the second crash would force the process to exit before generating the crash report.

Editor and Tools

  • New: Updated the "Description" field for a blueprint function to be multi-line to encourage big descriptive tooltips.

  • New: Added a setting to allow recording of actors in the sequence recorder that are spawned by sequencer itself.

  • New: Added hotkey (ctrl-T) to toggle between showing frame numbers and time.

  • New: Added plugin support to the editor class wizard.

  • New: Added a "Console Variables" command under the main editor Help menu.

    • This creates a local html page with browse and search functionality for all cvars.

  • New: Added a setting to invert the Y axis in editor viewports for mouse look and orbit in Project Settings.

  • New: Added rich tooltip support to enum combo-box entries.

  • New: Added support for creating a HLOD cluster from a single actor, as long as it has two or more static mesh components in it. This improves handling when including Blueprints.

  • New: Added track for string properties.

  • New: Added UI for loading and browsing multiple stats dumps from a folder in the session frontend profiler for easy comparing of perf stats.

  • New: Changed how materials are generated by the Hierarchical Level of Detail (HLOD) system. They are now created as material instances to reduce the overall shader count

  • New: During a "Play in Editor" session, automatically regain focus after user takes over mouse control. This allows the editor to continue to process hotkeys without having to click on the editor manually to regain focus.

  • New: Added the ability to set PNG and JPG files as a Splash Image from the Project Settings.

  • New: Locking the mouse to a viewport is now determined by an enumerated value (Don't Lock, Lock on Capture, Lock Always) rather than a boolean.

  • New: Changed sRGB Preview to be the default in the Color Picker.

  • New: Changed Memory Profiler 2 to deselect current bar when clicking off the histogram. This allows the user to see the top level group data again.

  • New: Updated Interface classes to now have their own entry in the New C++ Class wizard.

  • New: Updated Obj exporter to now export all mesh components contained in Blueprint Level instance.

  • New: Refactored the way debugger commands are executed in PIE. Now they are controlled using the Editor Key Bindings, for Play/Pause/Stop...etc, rather than the Debugger Commands ini settings.

    • You can now do things like bind stop to Shift+Escape, if you wanted to test showing a menu when Escape is pressed, instead of closing PIE.

  • New: Added support to Scene Importer for rigid mesh animation.

  • New: Added substring matching for console command suggestions, with space as a wildcard.

  • New: Added support to the Scene Importer for .OBJ files.

  • New: Added a new flag to the Merge Actor settings 'Use Vertex Data for Material Merging' and renamed 'Bake Vertex Data' to 'Bake Vertex Data to Mesh'.

  • New: Updated UnrealGameSync to hide *.uprojectdirs files by default in the project file selector, to discourage their selection by accident.

  • New: Added the ability for Resave Packages commandlet to now also rebuild asset registry paths with consistent case.

    • This produces much cleaner results than using the text export method (which will use the internal names for user defined structs).

  • New: You can now package a plugin from the plugin browser.

    • Select the plugin and there's a small link at the bottom of the plugin tile letting you execute the package operation for sharing your plugin.

  • Bugfix: Fixed a crash when renaming the current level in the Content Browser.

  • Bugfix: Fixed a crash with the curve editor widget if you box selected outside of the visible area.

  • Bugfix: Fixed a crash for exporting the current level to an OBJ file and exporting materials as images.

  • Bugfix: Fixed a crash for selecting a Grid Snap size with a corresponding Decimal Grid Interval Value of 0 units.

  • Bugfix: Fixed a crash when exporting actors with non-scene components to FBX.

  • Bugfix: Fixed a crash that could potentially happen when selecting a spline point in the editor after having deleted another point.

  • Bugfix: Fixed a crash Importing a brush, so that the brush is always validated (relinked), whether it is a static or dynamic brush.

    • This fixes an occasional crash when copy/pasting BSP brushes from one level to another.

  • Bugfix: Fixed a crash when hovering over a submenu while entering a Blueprint node comment in the Context Menu. In general, issues with opening submenus while a parent menu has focus.

  • Bugfix: Fixed a crash caused by repeatedly undoing and redoing a change in a level.

  • Bugfix: Fixed a crash for clicking the Install button multiple times when creating a new code project without a compiler installed.

  • Bugfix: Made a number of fixes to spline mesh collision generation:

    • A serious issue with DDC ID generation was fixed, in that the static mesh itself wasn't forming part of the key, hence any two splines with identical properties but different meshes would yield the same cache entry.

    • Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or the end of the spline mesh.

    • Optimized physics rebuilding. A new Body Setup object is now only created when needed, otherwise it is reused.

    • Fixed Spline Mesh collision building so that geometry does not default to being auto-inflated in PhysX.

  • Bugfix: Updated Actors placed in the current viewport to no longer snap to surfaces if surface snapping is disabled.

  • Bugfix: Fixed an issue where compiling a parent Blueprint would sometimes result in all of its child Blueprint assets adding toast notifications that they require check out.

  • Bugfix: Updated the Rotator UI showing Roll/Pitch/Yaw in some places. It will always show as X/Y/Z now.

  • Bugfix: Improved the "Repaired Painted Vertex Colors" log message. This is now done once on levels at load in the editor, instead of for every component (massive log spam). Total load time caused by the fixup is reported.

  • Bugfix: Updated auto-reimport to now be disabled inside an editor running in unattended mode.

  • Bugfix: Fixed an issue where editing condition property value changes would not propagate to instances of template objects.

  • Bugfix: Updated the Fbx importer to now import static mesh socket rotation correctly.

  • Bugfix: Updated the Fbx importer to now prevent importing a mesh with a size of zero and log a message to the user.

  • Bugfix: Fixed an issue where audio was being disabled after recording a movie.

  • Bugfix: Fixed an issue with Decal Visibility so that its behavior matches other visible actors with regard to the "Actor hidden in game" flag. This also makes it possible to animate it's visibility correctly with sequencer.

  • Bugfix: Updated nodes in folders to be filtered so that other unfiltered children aren’t visible.

  • Bugfix: Fixed an issue when parsing LOD in a Static Mesh component when importing custom properties.

  • Bugfix: Fixed an issue where selecting a color with the eyedropper tool would sometimes prevent the user from being able to Play in Editor.

  • Bugfix: Fixed an issue with a localization warning that would happen when you opened the GameMode menu.

  • Bugfix: Fixed a longstanding issue where sometimes BSP geometry was not correctly rebuilt after editing vertices in geometry mode.

    • Levels with incorrectly built geometry (due to invalid poly normals) will now issue a warning in the log upon load, and can be fixed by resaving the level.

  • Bugfix: Fixed a thread metadata warning in the output log when using the project launcher in the editor.

  • Bugfix: Fixed an issue with Actor position being set to origin after using undo.

  • Bugfix: Fixed an issue where the output log was prevented from remaining anchored to the bottom of the window.

  • Bugfix: Fixed an issue where sometimes spline components were debug rendered incorrectly when not selected in the editor.

  • Bugfix: Fixed an issue where the "All Classes" tab of the mode panel would not refresh when a new class was added to the project.

  • Bugfix: Fixed an issue where the surface properties of a BSP would erroneously persist in the details panel after the BSP was deleted.

  • Bugfix: Fixed an issue where the transform gizmo would prevent a user from dragging a material onto a mesh.

  • Bugfix: Fixed an issue where stopping ‘Cancel’ from correctly ‘Cancelled’ resulted in P4 asynchronous ops.

  • Bugfix: Fixed an issue importing an array inside a JSON Data Table.

    • The JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing.

  • Bugfix: Fixed an issue when moving translation of the child when attached to the mirrored parent in viewport.

  • Bugfix: Fixed an issue when multi-selecting scaling when objects are rotated.

  • Bugfix: Fixed an issue where Post Process settings for blendable picker were not readable in the Details panel.

  • Bugfix: Fixed an issue with single player PIE so that the window position is correctly fetched and saved, even when running a dedicated server. This does not interfere with stored positions for multiple client PIE.

  • Bugfix: Fixed an issue where geometry operations were not undoable (eg. Material Placement).

  • Bugfix: Fixed an issue where foliage instances were not being included when exporting a scene to FBX.

  • Bugfix: Fixed an issue where the Launcher Profile settings window was not always showing all available maps for cooking.

  • Bugfix: Fixed Blueprint widgets "is Enabled" property to now animate properly.

  • Bugfix: Fixed the Editor Mode plugin sample to no longer provide a bad starting example for where to create your widgets.

  • Bugfix: Fixed the File menu option for "Import into level" so that it now re-imports the original blueprint instead of overwriting it.

  • Bugfix: Fixed an issue where multiple text cursors would appear when editing Keyboard Shortcuts in Editor Preferences.

  • Bugfix: Fixed a formatting issue for the error of Error_TooManyMaterials message.

  • Bugfix: Fixed Datatable select next row.

  • Bugfix: Fixed a small typo in GraphEditor.h.

  • Bugfix: Fixed missing END_OPTIMIZATION macro to SOutputLog.

  • Bugfix: Fixed issue preventing generation of JSON for nested structs in DataTable rows.

  • Bugfix: Reverted the change to the Merge Actor tool where you could not merge a single mesh.

    • This is needed if you want to have a single Actor merge multiple materials but not be merged with another Actor in the scene.

  • Bugfix: Fixed the scale widget axes to render correctly while the current viewport is in an orthographic view mode.

  • Bugfix: Fixed the Texture Editor to properly display Mip Level Count and Format for 2D Dynamic Textures.

  • Bugfix: Fixed the "Game Gets Mouse Control" setting in the preferences for the Level Editor to be correctly applied when Playing in Editor.

  • Bugfix: Fixed the names of Automation tests within the standalone Session Frontend to be displayed correctly rather than as solid white blocks.

  • Bugfix: Fixed UnrealGameSync to now exclude deleted files when searching for the editor target name, which was sometimes preventing the editor from launching.

  • Bugfix: Fixed UnrealGameSync so that syncing no longer fails if the current workspace has files open for move or add.

  • Bugfix: Updated structs to export as JSON when displaying them in the Data Table editor.

  • Bugfix: Updated the F4 debug key binding to match what is in ShowFlags.cpp.

  • Bugfix: Fixed importing a morph target so that it no longer imports textures and materials for a base mesh that has already been imported.

  • Changed the 'Merged Physics Data' flag in the Merge Actor tool to be true by default in order to match user expectation.

  • Disabled the Paste context menu action if a property in the Details panel is marked as "EditConst".

  • Updated importing assets into a level so that assets that do not come from FBX or OBJ files are no longer supported.

  • Improved the performance of the details panel when thousands of objects are selected.

  • Improved moving parent & grouped child actors so that it now does not result in deltas being applied twice.

  • Updated the Editor so that new windows will no longer open in between monitors when the primary monitor is not set to monitor 1.

  • Improved DataTable import/export.

  • Improved mesh vertex color painting:

    • Lower LODs are now automatically fixed up for instances which were created in a previous bugged version of the engine.

    • Since lower LODs cannot currently have their vertex colors edited, their vertex colors are always derived from LOD0.

    • A bug has been fixed when building lower LODs so that vertices in neighboring octree nodes are considered when looking for the nearest vertex from LOD0 which corresponds. This improves the appearance of lower LODs' vertex colors.

    • An issue has been fixed where static meshes with imported LODs would not have the lower LODs' override colors set when "Copy instance vertex colors to source mesh" was used.

    • Various crashes when using mesh paint mode have been fixed, e.g. when selecting a previously selected mesh, when deleting an asset which has an instance currently selected.

  • Improved MemoryAnalyser2:

    • Upgraded to Visual Studio 2015.

    • Clean up solution configurations. Only leave "Any CPU".

    • Switch project to build with "Any CPU" rather than "x64".

Content Browser
  • New: Added the ability to select a base Physical Material class when creating a new Physical Material.

  • Bugfix: Fixed a crash caused by the Content Browser allowing drag and drop operations to import assets while the File Picker dialog was opened.

  • Bugfix: Fixed a crash for an issue that could occur when a class and a folder have the same name.

  • Bugfix: Fixed an issue where Blueprint Actors would sometimes appear in the preview thumbnail of other assets.

  • Bugfix: Fixed an issue where a Skeletal Mesh asset was prevented from editing thumbnails in Thumbnail Edit Mode.

  • Bugfix: Fixed an issue where Material thumbnails would display an extreme close-up of the material rather than the entire preview asset.

  • Bugfix: Fixed an issue where there was a duplicate "Font" entry in the asset picker menu.

  • Bugfix: Fixed an issue with the selection of objects in the Content browser from WorldSettings.

  • Redirector objects are now deleted after selecting the "Fix Up" option from their right-click context menu.

  • Updated World thumbnails no longer cull primitives.

    • This is because the camera is very far away and if terrain pieces are culled, the level is not visible.

Landscape
  • New: Added right-click options to fill and clear landscape layers

  • New: Added support for "Max Pitch Angle" and "Random Yaw" foliage options in procedural foliage.

  • New: Automatically filled the first weight-blended landscape layer (if a layerinfo is specified at landscape creation time).

    • This stops the landscape being black when first created, and fixes problems with the first paint strokes not having proper falloff.

    • The old workaround of painting a landscape layer over the whole landscape to make painting work right is no longer necessary!

  • New: Added a Generate Overlap Events flag to Landscape Actors.

  • Bugfix: Fixed a crash when cooking landscape for mobile.

  • Bugfix: Undoing the deletion of a landscape or changes to its properties will no longer cause a crash.

  • Bugfix: PIE no longer crashes when using Landscape Splines with bPlaceSplineMeshesInStreamingLevels.

  • Bugfix: Fixed a crash that could happen when switching to the Landscape Pattern brush.

  • Bugfix: Fixed a crash with the Landscape Circle brush.

  • Bugfix: Removed all use of deferred exec commands from the landscape code.

    • This solves numerous crashes during commandlets, etc. with landscape infos not being initialized because they do not tick the engine.

  • Bugfix: Fixed an issue where after resampling or changing landscape component size, any new components that correspond to previously deleted components will remain deleted in the new landscape.

  • Bugfix: Fixed an "Object in another map" error when packaging a project containing Landscape for Android.

  • Bugfix: Fixed an "Object in another map" error when saving a Landscape streaming level after using Mobile Preview and the landscape Move to Level tool.

  • Bugfix: Fixed Global Illumination textures being visible in the content browser when r.GenerateLandscapeGIData is enabled.

  • Bugfix: Fixed that the "Rebuilding Hierarchical Instanced mesh component, please resave map" error wouldn’t go away after a resave.

  • Bugfix: Fixed an issue with foliage being placed on top of Blocking Volumes.

  • Bugfix: Fixed a hang that could happen when changing a material which is used on a Landscape.

  • Bugfix: Fixed an issue causing the incorrect UV coordinates when tessellation is enabled for Landscape.

  • Bugfix: Fixed an issue where the Landscape flatten target grid preview is displayed on the wrong Landscape when switching landscape target.

  • Bugfix: Landscape "continuous" sculpting now works in multiple viewports.

  • Bugfix: Fixed an issue with Landscape "Layer Alphamap Type" being visible when in "New Landscape" mode even though it only affects "Import".

  • Bugfix: Landscape layer import can now be undone.

  • Bugfix: Fixed an issue where Landscape spline control point meshes were being offset if "Place Spline Meshes in Streaming Levels is ticked.

  • Bugfix: Fixed an issue where Navmesh generation would use Landscape simple collision issues with Landscape Holes.

  • Bugfix: Fixed an issue where new Landscapes would render with the material’s layer preview weights instead of using the actual (all 0) weights.

  • Bugfix: Fixed an issue where Landscape Splines were not able to be extended if the current level was different to the selected spline.

  • Bugfix: Fixed an issue that would prevent selecting Landscapes from the World Outliner while in the "new Landscape" tool.

    • It will now switch to editing whenever Landscape you select.

  • Bugfix: Added the ability for Landscape Grass Type to exclude decals by using the Receives Decals member.

  • If a landscape material contains both a "Layer Blend" node and other landscape nodes referencing some of the same layers (e.g. sampling a layer for grass), the landscape editor will now use the ordering from the blend node for the target layers list.

  • Stopped Landscapes compiling so many shader combinations.

Material Editor
  • Bugfix: Fixed a crash when editing text in "Libraries Category Text" field of a material function.

  • Bugfix: Fixed a crash when pasting a material function call node from one project to another in which it is not defined.

  • Bugfix: Fixed an initial hitch when dragging around in a Color Picker opened from a Material Expression node.

  • Bugfix: Fixed undo and redo to now work correctly when making changes to Material Functions.

Matinee
  • Bugfix: Fixed an issue preventing keyframes from being added when an asset browser was opened in the same window as Matinee.

Cascade
  • New: Updated the Particle Event Receiver Spawn module to now filter collision events based on Physical Material.

    • The Physical Material of the collision is now also accessible in Blueprint.

  • Bugfix: Fixed a crash while in Cascade when enabling/disabling a module.

  • Bugfix: Fixed an issue where Instance parameters for Spawn, Required, and Typedata modules in Cascade were not being auto populated.

  • Renamed the two "Collision" choices in the Collision submenu to "Actor Collision" and "Scene Depth Collision" in the Cascade editor..

Persona
  • Bugfix: Crash fix with crash or data corruption when reverting changes to the "Event" structure in the animation notify editor for montage assets.

  • Bugfix: Fixed a crash when deleting curve keys after animation keys had also been removed.

  • Bugfix: Fixed the "Isolate" option on Skeletal Mesh materials that was not working correctly with Clothing asset sections.

PhAT
  • Bugfix: Fixed scaling widget in PhAT in some viewport modes.

World Outliner
  • Bugfix: Fixed an issue where Actors were not being removed from the World Outliner when they were added and removed on the same frame.

  • Bugfix: Fixed an issue where the Empty Level is named "NewWorld" in the World Outliner as opposed to "Untitled".

Static Mesh Editor
  • Bugfix: Fixed a crash caused from trying to import an FBX file after a previous import attempt had failed.

  • Bugfix: Fixed a crash from the FBX importer when it attempted to import a mesh only made up of degenerate faces.

    • An error is now logged if the importer tries to import a mesh with no valid faces.

  • Bugfix: Fixed a crash that would happen when reimporting a static mesh that was exported from a geometry brush asset.

  • Bugfix: Using the Material list reset button in the Static Mesh Editor now prevents the Static Mesh Component materials array from growing.

  • Bugfix: Reimporting or overriding a LOD other than the base mesh now prevents the Material list array from growing.

Source Control
  • New: Git Plugin implemented the Sync operation to update local files using the git pull --rebase command.

  • New: Git Plugin now allows you to make an initial commit when initializing a new project.

  • Bugfix: Fixed an issue where the wrong status icons were being shown.

  • If multiple assets need to be checked out, a single notification is now created for all files rather than creating one notification for each file.

  • When submitting changed assets to source control, files that were previously deleted are no longer resubmitted to source control.

World Browser
  • Bugfix: Sub-Level layers were not showing up in the Layers tab when loaded as part of the world composition.

  • Bugfix: The World Composition levels window was not correctly updated when creating or renaming levels using the Content Browser.

  • Bugfix: World Composition origin shifting was not accounting for shifting the Dynamic Directional Light shadow casting.

  • Bugfix: World composition sub-levels that had a child actor inside were becoming modified if any other sub-level was unloaded.

Foliage
  • New: Added support for Lighting Channels to Foliage and Landscape Grass.

  • New: A Foliage Type now includes all relevant fields from its Body Instance for editing.

  • Bugfix: Fixed an issue where the "Rebuilding hierarchical instanced mesh component, please resave map" warning was showing up when loading or entering PIE in maps with valid foliage.

  • Bugfix: Fixed an issue where deleting a Foliage actor from the Foliage menu did not remove actors from PIE until the editor was restarted.

Cooker
  • New: Added more options to the Cooker for selecting Garbage Collection frequency:

    • The new Cook Settings’ Max Memory Allowance setting is a percentage value which will trigger Garbage Collection if exceeded.

    • The new Cook Settings’ Min Free Memory setting allows you to set a minimum free memory value which will trigger Garbage Collection.

  • New: Added -skipcompile flag for running from Visual Studio.

    • This will skip compilation when the -multiprocess flag is used.

  • Bugfix: Fixed a deterministic cooking issue with Static Mesh Component caused by using a Static Mesh before postload was called.

  • Bugfix: Newly discovered session instances were not being added to an existing session in the Session Browser.

  • Bugfix: Selecting an instance in a session with multiple instances did not deselect the previously selected instance correctly.

  • Bugfix: Deterministic cooking issue where the shader name was stored inside the shader code for debugging purposes, but is now removed.

  • Added a minor cooking optimization to unsolicited package markup.

  • Added an optimization to string asset reference resolution to bring back performance lost from memory optimizations.

  • Prevented clients from cooking when building only server configs.

  • Improved cooking performance:

    • Allow cooker to save packages opportunistically if the current package is compiling shaders.

    • Allow cooker to load additional packages if blocked by other packages and memory is free.

  • Improved cooker peak memory usage:

    • Moved resolving string asset references to be just before package save instead of after load.

    • Provide opportunity to garbage collect more frequently.

Sequencer
  • New: Added an option to maximize the viewport when starting recording with the sequence recorder.

  • New: Added option to Convert to Possessable.

  • New: Added option to record actors in the Sequence Recorder as possessables.

  • New: Added play/pause/stop events to Level Sequence player as it was with the Matinee actor.

  • New: Added "Reverse Play" and “Change Playback Direction” functions.

  • New: Added support for exporting the scene and animation to FBX. This functionality should match the Matinee FBX export.

  • New: Added visibility options to show/hide/only when selected 3D trajectories per transform section.

  • New: Added an option to rewind the sequence when a recording is started. This defaults to 'on'.

  • New: Added hotkey (alt-R) for recording selected actors with the sequence recorder.

  • New: Added more play controls - shuttle backward, pause, shuttle forward (j, k, l).

  • New: Added arbitrary property recording to the Sequence Recorder.

  • New: Added support for additive Skeletal Animations. Evaluates all overlapping Skeletal Animation sections.

  • New: Added support for montage based animation from Sequencer

  • New: Added the ability to add burn-ins to Level Sequences.

  • New: Added a draw tracking focus debug point for Cinematic Camera actors.

  • New: Changed "Actor Name" in Sequence Recorder to be a pulldown menu so that the user can choose the actor directly rather than typing in a name.

  • New: Display name of next Sequence in Sequence Recorder.

  • New: Expose compressed EXR frames to Sequencer Capture UI and command line.

  • New: Added {shot} and {shot_frame} format args for movie captures.

  • New: Track colors have been tweaked.

    • Audio track brighter.

    • Transform, bool, event tracks less saturated.

    • Recording subsection more saturated.

    • Fade track gradient.

  • New: Added support for the named "PerformanceCapture" event which, like Matinee, calls Performance Capture in the Engine to output a screenshot when the event fires.

  • New: Added the ability to show the Context Menu for more than one selected node.

    • Certain operations (ie. Lock, Active, Label) now operate on all the selected nodes.

  • Bugfix: Fixed a crash when right-clicking on a grouped vector keyframe in the timeline.

  • Bugfix: Fixed a crash which would happen sometimes when rendering a movie in a separate process.

  • Bugfix: End any transactions on mouse down that weren't ended cleanly.

    • This fixes a bug where if you drag with the left mouse button and click with the right mouse button, the transactions are left in an ambiguous state.

  • Bugfix: Updated the Event track to no longer fire if the playback status is stopped.

    • This fixes a bug where when playback is stopped and the movie scene sequence is returned to the start of playback, we don't want all the events from the last playback position to the start of playback to fire.

  • Bugfix: Find corresponding PIE world actor for "Actor to Record".

    • This fixes a bug where if you set the actor before PIE and then record, the recording does not work.

  • Bugfix: Fixed an issue where Skeletal Animations would evaluate one frame ahead of where they were supposed to be.

  • Bugfix: Fixed an issue where Transforms would not be captured if an anim recorder exists but the skeletal mesh that the anim recorder is supposed to capture doesn't exist.

    • This fixes the first person template character not getting recorded.

  • Bugfix: Fixed the countdown timer in the Sequencer Recorder to now draw in Simulate mode as well as Play.

  • Bugfix: Fixed dragging the leading edge of a skeletal animation section to now adjust the start offset of the animation clip.

  • Bugfix: Key editor commit when user tabs away would lose focus. Key navigation buttons and track color button are no longer focusable.

  • Bugfix: Fixed an issue where the Player would stop after 60 seconds. Now assigns the player to a UPROPERTY so that it is not Garbage Collected.

  • Bugfix: Fixed an issue where the level visibility track would mark animated levels as dirty.

  • Bugfix: Updated spawnables so that they can not be deleted from the viewport.

  • Bugfix: Fixed an issue where Blueprint classes as spawnables were not being re-instanced correctly.

  • Bugfix: Fixed an issue where jitter would happen when jumping around in Sequencer.

  • Bugfix: Fixed an issue where Sequencer would redraw all viewport when in PIE.

  • Bugfix: Updated node selection so that the selected nodes now only update if they have changed.

    • This fixes a bug in the curve editor where undo re-selects and auto-frames.

  • For legacy, properties with the CPF_Interp flag can be animated in Matinee. It does not require the CPF_Edit flag as well. This makes Sequencer consistent with Matinee.

  • Optimized adding keys to rich curves to improve performance when recording data with the sequence recorder.

    • Set the times and values at once as an ordered set.

  • Removed curve editor visibility as a toggleable config.

    • It is now just a toggleable state that defaults to false.

    • This fixes unexpected behavior of staying in the curve editor when restarting the editor or switching to a different level sequence asset.

  • Renamed "Expose to Matinee" to "Expose to Cinematics" in Blueprints.

  • Select actors for corresponding selected keys or sections.

  • Set event track evaluation order to fire first.

    • This fixes some ambiguity and also a bug where transform tracks don't evaluate completely if the eval position is changed in the middle of evaluation.

  • Set relative location, rotation, scale explicitly to identity instead of calling Reset Relative Transform because we don't want overlaps to fire until after the update pass.

  • Improved recording indicator icon, text & timer.

VR-Editor
  • New: Updated foliage mode to now be fully integrated with VR Editor mode. You can paint down foliage while in VR!

  • New: Added World button to the Quick Select menu to allow access to the World Settings menu.

  • Bugfix: Fixed an issue where duplications could not be undone.

  • Bugfix: Updated laser double-click events to now be sent when the trigger is pressed rather than when it is released.

  • Bugfix: Fixed an issue where the Mesh Paint tool was not showing the Brush Preview.

  • Bugfix: Fixed an issue where Foliage tools were active even without the controller’s trigger being pressed.

    • Foliage reapply tool.

    • Foliage Lasso tool.

  • Bugfix: Fixed an issue where the laser’s hover point in the VR Editor actor wasn’t projected onto the corrected plan while rotating, translating, and scaling using gizmo.

    • This fix snaps the hover point to the nearest line or plane according to the transformation.

  • Bugfix: Fixed an issue where the brush preview was still present while using a Foliage brush and hovering on top of the UI.

  • Removed the "Simulate" button in the toolbar of the blueprint editor while in VR Editor mode because we currently cannot simulate in this mode.

Gameplay Framework

  • New: Added support for multi-jumping to Character Movement, and fixed infinite jumps when Jump Max Hold Time is set.

  • New: Added "Mixed" replication mode for active gameplay effects.

    • This will replicate active gameplay effects normally to their ability systems component's owner, but replicate a stripped down version to non-owners. This can help reduce bandwidth by as much as 2 KB per second.

  • New: Added "Get Parent Actor" convenience function.

  • New: Added Activate and Deactivate events to the Actor Component.

  • New: Added arc-tracing functions "Predict Projectile Path" and “Suggest Projectile Velocity Medium Arc” to Gameplay Statics.

  • New: Added "Relative To Initial FOV" option to Camera Anim, defaulting to true.

    • If turned off, camera anims will use the camera's current FOV as the initial FOV for the animation.

  • New: Added "Is Valid" Blueprint-exposed method for Gameplay Attribute.

  • New: Added max depenetration distance settings for the Character Movement Component. Added controls to throttle logging when character is stuck in geometry so it doesn't spam the log.

    • Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.

    • "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.

  • New: Added new "Load Level Instance" Blueprint node, which allows to create multiple transformed instances of a .umap without having to include in persistent level's list.

  • New: Added new Blueprint library math/vector functions: "Find Closest Point On Segment", “Find Closest Point On Line”, “Get Point Distance To Segment”, and “Get Point Distance To Line”.

    • Fixed comments on "Find Nearest Points On Line Segments".

    • Fixed comments on "Point Dist To Line", and renamed "Line" parameter to "Direction".

  • New: Added player Connect and Disconnect events to GameMode.

  • New: Added the ability to separate players in local multiplayer for the Keyboard and Gamepads by using the setting "Offset Player Gamepad Ids" in the Project Settings under Maps & Modes.

  • New: Added the ability to Get and Set the controller ID of a player controller from Blueprints.

  • New: Added the ability to Get and Set Tick Interval for Actor and Component primary ticks from Blueprints.

  • New: Updated Cheat Manager so it can now be subclassed via Blueprints and properties can be set for the Player Controller and Debug Camera Controller.

  • New: Exposed "Override With" and “Copy Properties” in Player State to Blueprint Children.

  • New: Made minimum quadtree size configurable in the Procedural Foliage Spawner.

  • New: Added "Is Player Controller" function to Controller. The variable already existed, but wasn’t exposed.

  • New: Added check to Post Actor Construction to avoid a Begin Play call on an Actor that is Pending Kill.

  • New: Anim Root Motion was applying too much velocity to Character Movement when framerate is low causing moves to be substepped, or when movement mode changes during root motion playback.

    • Added "Anim Root Motion Velocity" to the Character Movement Component to track last velocity extracted from anim root motion.

  • Bugfix: Fixed a crash when cancelling PIE while in the middle of a seamless travel as a client.

  • Bugfix: Fixed a crash in Game Session if the GameMode’s Player State Class has become null.

  • Bugfix: Updated Character movement to make sure the Last Update Location, Rotation, and Velocity are updated on client and server error corrections. The Force Position Update function calls Perform Movement regardless of velocity (there may be root motion or gravity effects).

  • Bugfix: Updated Child Actors in a sublevel to no longer lose customizations made by the owning Actor's construction script when hiding and then unhiding the level.

  • Bugfix: Updated Child Actors to no longer sometimes collide with objects at the origin when spawned.

  • Bugfix: Updated Data Assets to now correctly report their size.

  • Bugfix: Fixed an issue where Actor Attachment Replication was not being cleared on detachment, which would cause issues with the actor's location for clients joining in progress.

  • Bugfix: Fixed an issue with Model Component replication in client/server PIE if BSP has been rebuilt.

  • Bugfix: Updated comments on "Load Game From Slot" and “Delete Game in Slot”.

  • Bugfix: Fixed an issue where Mesh smoothing on clients was causing a popping briefly when crouching.

    • This was due to a change in 4.12 where we started smoothing from Z location rather than always zeroing it (in certain movement modes).

  • Bugfix: Fixed an issue where the Root Motion network connections were not clearing the Root Motion Data, which would cause clients to jitter.

  • Bugfix: Fixed an issue where it was not possible to stream in a sub-level whose name is a substring of another sub-level.

  • Bugfix: Fixed an issue where an Instanced Static Mesh Component would not keep its instances when copy-pasting in the Editor.

  • Bugfix: Updated the "Hidden In Game" checkbox to now be properly displayed when editing Scene Component properties.

  • Bugfix: Improved pasting multiple cells into the Property Matrix to no longer depend on your selected tiles, only your target cell.

  • Bugfix: Prevented forced drawing of the debug visualization for spline components in Test configuration.

  • Removed GWorld from the Timer Manager.

  • Updated "Remove Instances" on a Hierarchical Instanced Static Mesh Component to now properly rebuild the cluster tree, allowing “Get Instances Overlapping Box” to return correct results.

  • Updated significance to now be correctly calculated when there are multiple viewpoints and significance is being sorted descending.

  • Updated HUD so that Show HUD is no longer a config variable, but can be edited from a Blueprint.

  • Improved "Move Component To Rotation".

  • Added minor performance improvements in Player Input and Input Component by inlining and avoiding memory allocations.

  • Updated numerous HUD properties to make them readable, and most of them also writable, from Blueprints.

  • Updated Components so they can no longer be added during world tear down.

  • Improved character movement linear smoothing in the presence of low net frequency updates.

  • Improved comment about the Blocking Hit property in Find Floor Result, explaining it is a valid blocking hit that was not in penetration. Other conditions can be determined from the Hit Result itself.

  • Made up/down behaviour for console history consistent and reverted to old ordering by default

  • Moved Uninitialize Components outside (Actor Initialized) to always uninitialize components when actors gets destroyed early.

  • Updated multi-arg console commands to now accept string commands with or without quotes.

  • Optimized NaN and Infinite checks for FVector, FQuat, FRotator, FMatrix, FTransform. SIMD version "Vector Contains NaN Or Infinite" function also optimized on relevant platforms. Added startup tests for “Vector Contains NaN Or Infinite”.

    • All our "Contains NaN" tests are in fact "Is NaN or Is Infinite", which is the same as "not Is Finite", so exploited this to simplify the tests. Both NaN and +/-Inf are not finite (http://en.cppreference.com/w/cpp/numeric/math/isfinite). In the future we should rename "Contains NaN".

Learning Resources

Content Examples
  • New: Added TP_VirtualRealityBP to list of Blueprint templates

Localization

  • New: Updated the Dialogue Wave voice actor so the direction can now be localized.

    • Also, exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue.

  • Bugfix: Fixed a crash caused by bad access of shared ‘this’ when closing an active IME context.

  • Bugfix: Improved changing the loading phase of a target in the localization dashboard to now write to the default config.

  • Bugfix: Fixed an issue where game targets were not being able to depend on other game targets in the Localization Dashboard.

  • Bugfix: Fixed Issues with gathering text from Blueprint Byte code.

    • Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load).

  • Bugfix: Fixed an issue with Unicode string handling in the web browser widget’s Execute Javascript method.

  • Updated Localization compilation to now specify an Archive Name to use.

  • Made sure that en-US-POSIX is in our list of available cultures.

  • Updated PO files to now only contain a single entry in the case of a native translation being exported.

    • They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used.

Networking

  • New: Added a "-CapturePercentage" command line parameter for Oodle which sets a percentage change of a connection to generate an Oodle capture.

  • New: Added ability to amortize replay checkpoints. Use the console variable "demo.CheckpointSaveMaxMSPerFrame" to set the maximum time allowed (in ms) to spend saving checkpoints per frame.

  • New: Added ability to get network version from FArchive (for replay compatibility support). Use Engine Net Ver/Game Net Ver.

  • New: Added ability to skip over changed properties in Fast Array Serializer for replays (and will log incompatible property names).

  • New: Added ability to skip over RPC parameters that have changed in replays for backwards compatibility.

  • New: Allow Oodle captures to be generated in shipping configurations.

  • New: Improved support for streaming levels in replays.

  • New: Created a batch file, ExtractAllArchives.bat, which can pull down Oodle captures stored in Amazon S3.

  • New: Created a batch file, BuildDictionary_Generic.bat, that can generate an oodle dictionary from capture files in an arbitrary location.

  • New: Low level network code will now notify the game of two new error types to be handled (Net Guid Mismatch or Net Checksum Failures). This kind of errors occur when there are incompatibilities in between client and server, usually because different cooked data is involved. This shouldn't occur in properly shipped builds but is good during development when the possibility to mix and match builds might happen on accident.

  • New: Made some Oodle trainer commandlet improvements:

    • Added a command line parameter to many Oodle trainer commandlet tasks for a changelist number to only process capture files from a specific changelist.

    • When processing Oodle capture files, the Oodle trainer commandlet will now also look recursively in subdirectories.

    • Refactored how the Oodle trainer commandlet processes capture files to make it easier to add new command line options for different tasks.

  • New: Added some miscellaneous seamless travel cleanup + sanity checks.

    • Cleanup the naming of variables and logic used to pick which actors will transfer to new world during seamless travel to more explicitly convey intent.

    • Warn when there is no context for a world when destroying actors. It's likely that this world is the floating world during seamless travel, and if we hit this case, something is likely in a bad state

  • New: Updated Oodle packet capture file names to now contain the branch name, the changelist of the build, and process ID used to generate the capture.

  • New: The console variable "demo.AsyncLoadWorld" can now be overridden with the URL option "Async Load World Override" when playing a replay.

    • When this setting is true, the engine will use seamless travel to load the replay map instead of using the default non-seamless travel method.

  • New: The stat for the number of network actors (STAT_NumNetActors) is now tracked on both the server and client.

  • New: Updated Oodle compatibility to version 2.1.5.

  • New: When properties are incompatible in replays, they will now be shown in the log.

  • Bugfix: Fixed a crash that could occur when using "open" command in a PIE window.

  • Bugfix: Fixed a crash that would occur when opening a project from a network drive.

  • Bugfix: Fixed assert in channel cleanup code that could occur if the connection was cleaned up, and there were "Keep Processing Actor Channel Bunches Map" in-flight still.

  • Bugfix: Fixed incorrect warning when Received Bunch fails for replays.

  • Bugfix: Fixed a memory leak when recording a replay on a client that was built using a client-only executable configuration.

  • Bugfix: Fixed an issue causing improper http header parsing when one or more of the headers are empty.

  • Bugfix: Fixed an issue that could cause character movement to be saved incorrectly in replays.

  • Bugfix: Fixed an issue that could cause the spectator controller for a client-recorded replay to incorrectly report that it was local controller during recording.

  • Bugfix: Fixed an issue that was causing RPCs to be missing from replays that were recorded on clients.

  • Bugfix: Fixed several issues and playback artifacts with character positions in replays.

  • Deprecated the "Engine Net Version", “Engine Min Net Version”, and “Engine Negotiation Version” (use the Network Version struct instead).

  • Disabled the ability to use hot-reload while PIE windows are open.

  • Added extra logging in the form of "UPendingNetGame::InitNetDriver: Sending hello: 127.0.0.1" to help diagnose connection issues.

  • Highly optimized replay checkpoint recording to take about 50% less time.

  • Improved playback quality of character movement for replays that are recorded on a client.

  • Keeping track of the number of actors stat (STAT_NumActors) is now more efficient.

  • Improved 'Too many calls to RPC' log message informativeness.

  • Removed unused "In Bunch" constructor.

  • The Oodle trainer commandlet will now only process capture files that end with the .ucap file extension.

Online

  • New: Added PS+ check to account privilege check.

  • New: Move Curl and PS4 HTTP request processing to a separate thread. HTTP manager will now start and tick HTTP requests on its own thread, removing the processing from the game thread. Hitches in HTTP requests no longer impact the game thread, and HTTP requests can be ticked more frequently by adjusting [HTTP] Http Thread Tick Rate in .ini config files.

  • New: Online Subsystem modules have been moved to Plugins, out of Engine/Source. Engine's dependency on OnlineSubsystem modules have been removed, in some places replaced with a new interface UOnlineEngineInterface for a small subset of features Engine requires. UOnlineEngineInterface is implemented in UOnlineEngineInterfaceImpl. FUniqueNetId and FUniqueNetIdWrapper have been promoted to a basic type in core, but they are still opaque types and must be created by online subsystems.

  • New: Added -port command line option for the Steam Online Subsystem.

  • Bugfix: Fixed a rare bug in the Build Patch Tool that would cause a manifest to not contain a chunk's information.

  • Bugfix: Fixed shutdown crash in HTTP request completion delegate.

  • The "Cancel Find Sessions" function in Online Session did not null out search result for LAN results. Future Find Session calls would fail with "search in progress".

Other

  • New: Changed the Gameplay Ability Actor Info's Anim Instance property to a Skeletal Mesh Component.

  • New: Game window titles now show only the project title by default in shipping builds.

    • The default window title for non-shipping builds remains unaltered.

    • If there is a value stored in the Project Displayed Title setting, it will be displayed for all configurations.

    • If there is a value stored in the Project Debug Title Info setting, it will be appended to the window title in non-shipping builds.

  • Bugfix: Fixed a crash after clearing Sound Wave Asset and Deleting Media Player from Content Browser.

  • Bugfix: Fixed a crash and incorrect re-initialization of media texture resource.

  • Bugfix: Fixed failing to load Precached Media Source.

  • Bugfix: Fixed Local file paths without file:// open when pressing Enter, but not when clicking Go button.

  • Bugfix: Fixed Media player does not play the second item in the playlist on PS4.

  • Bugfix: Fixed media source asset cannot be inherited in other modules.

  • Bugfix: Fixed memory leak in the Wmf Media source resolver.

  • Bugfix: Fixed packaged game does not load in Windows XP due to Wmf Media.

  • Bugfix: Fixed problem where users couldn't close the Crash Report Client without sending the crash report.

  • Added code in Auto Populate Instance Properties to populate vector and scalar parameter data.

  • Allow symbol files to be skipped when staging build products as they are not essential for the staged project to run.

  • Increased maximum compressed payload size for crash reports from 16MB to 32MB.

  • Made PDBs optional build products for Cs Compile Build Graph task and added .dll.mdb check for Mono equivalent.

Paper2D

  • New: Exposed Paper Tile Map and Paper Tile Set as Blueprint Types to make it easier to work with tile maps in Blueprints.

  • Bugfix: Fixed a crash when mutating grouped sprite components at runtime, and cleaned up how collision rendering is done for grouped sprite components addressing some other issues as well.

  • Bugfix: Fixed a bug that caused the tabs in the Flipbook, Sprite, and Code Project editors to show the editor name rather than the asset name.

  • Bugfix: Fixed an issue causing incorrect normals (and therefore lighting) on tilemaps in a number of circumstances including standalone or cooked builds.

  • Bugfix: Fixed BP-created tile map components being incapable of having collision generated for them (still requires calling Set Layer Collision with rebuild=true or Rebuild Collision).

  • Bugfix: Fixed inconsistent normals / lighting on lit grouped sprites.

Physics

  • New: Added option to allow skeletal mesh simulation to NOT affect component transform.

  • New: Added support for 'teleport' option when changing the Instanced Static Mesh transform.

  • New: Allowed access to the Enable Gravity flags on individual bones within a Skeletal Mesh Component using Bone Name.

  • New: Allowed 'show collision' console command to work in Test configurations.

  • New: Brought back cone constraint visualization, but with some improvements like colors and free vs locked. Turned on constraint visualization when drawing a skeletal mesh with constraint show flags.

  • New: Changed constraint warnings to now show up in Message Log to be more visible when testing.

  • New: Introduced a default shape complexity project setting (Complex As Simple vs Simple As Complex vs Simple And Complex).

  • New: Updated physics blend weights to now only affect rendering data.

  • Bugfix: Fixed crash that could occur when the Phys Scene pointer was null (the world has no Physics Scene) in the Skeletal Mesh Component’s Term Articulated function. That could happen when loading a world without fully instantiating it, such as when right-clicking a world in the context browser rather than opening the world directly.

  • Bugfix: Fixed crash when using very large simulation meshes for clothing - limits have been increased and it is no longer possible to import a simulation mesh that is too large.

  • Bugfix: Fixed a crash in sub-stepping by limiting skeletal mesh bodies to be in either the sync scene or the async scene, but not both. Simplifies a lot of code and improves performance.

  • Bugfix: Fixed hit events on a skeletal mesh component not respecting the AND between a skeletal mesh component and the ragdoll bodies.

  • Bugfix: Fixed the case where physics hit events were passing the wrong component's bone info to the hit event.

  • Bugfix: Fixed vehicle drag adding instead of removing energy when in reverse.

  • Bugfix: Fixed "Add Impulse At Location" for destructible meshes not using the correct location.

  • Bugfix: Fixed "Angular Rotation Offset" properly disabling when motion for axis is Free or Locked.

  • Bugfix: Fixed bug with overlap queries against welded bodies.

  • Bugfix: Fixed bug with physics body welding resulting in duplicate collision shapes.

  • Bugfix: Fixed clothing association sometimes using stale references to sections.

  • Bugfix: Fixed collision rendering in level editor when mesh was mirrored.

  • Bugfix: Fixed destructible meshes always appearing to change when generating patches.

  • Bugfix: Fixed "Max Angular Velocity" setting being reset unintentionally.

  • Bugfix: Fixed memory churn during PhysX simulate calls by providing per-scene scratch space for the simulation to use.

  • Bugfix: Fixed the Paper Grouped Sprite not updating physics bodies.

  • Bugfix: Fixed physics bodies of an Instanced Static Mesh Component not moving when the mesh is updated.

  • Bugfix: Fixed Physics Constraint Component not being editable on instances (only on defaults).

  • Bugfix: Fixed race condition in clothing code if cloth is cleared between Pre and Post Physics Tick.

  • Bugfix: Fixed rare contact pre-filter crash when invalid shapes were passed to pre-filter callbacks.

  • Bugfix: Fixed warning about using CCD on kinematic bodies.

  • Added more information when convex cooking partially succeeds (fails initially but succeeds with inflation) indicating the full path of the mesh that failed.

  • Corrected Convex Hull 2D so that it returns an empty set of indices when passed an empty points array.

  • Ensure that skeletal mesh components do NOT teleport unless explicitly asked to.

  • Removed call to set a frame decay constant on destructible shapes in PhysX. This was used to better settle large piles but was slower to process. PhysX can now handle this better so it is no longer necessary.

Platforms

  • New: Added a setting to make the game window preserve its content's aspect ratio while being resized by user. This is on by default.

  • New: Added support for encrypting .ini files from the Project Settings and the Project Launcher.

  • New: Added support for the Unreal Front End to launch to multiple devices at once.

  • New: Generalize Android Plugin Language to Unreal Plugin Language for modifying plug-in package data during packaging process

    • iOS plist data can now be transmogrified during packaging with UPL.

  • New: Added "Get Game Bundle Id" Blueprint function.

  • New: Added support to UAT for building target platforms with multiple cook flavors ex: -targetplatform=Android -cookflavor=ETC1+ETC2

  • Bugfix: Fixed a crash when entering the Games App ID into the Android Project Settings menu before clicking "Configure Now" in the APK Packaging section.

  • Bugfix: Fixed Android device rule for Alcatel Pixi 3.

  • Bugfix: Analog input for Gamepad is now properly mapped on iOS.

  • Bugfix: Browser protocol used will continued to be used and canvas focus especially when inside an iframe.

  • Bugfix: Resolved issue with reflection environments on Intel Macs running Mac OS X El Capitan and using Metal Shader Model 5 by disabling tiled reflections for Intel GPUs on this version of Mac OS.

  • Bugfix: Resolved an issue where iOS Movie Player can't handle videos at resolutions that aren't multiples of 16.

    • Movies that are not multiple of 16 will report a runtime error.

  • Bugfix: Issue where a movie wasn’t played on iOS occasionally.

  • Bugfix: Error Message displays as Unknown Error when failing to supply a Remote Build server for iOS on Windows has been fixed.

    • A user friendly error is now provided.

  • Bugfix: Reduced the number of buffers used per-frame in Metal when updating textures by pulling the buffers from the pool rather than allocating them each time.

  • Bugfix: Message box could not be closed after accessing the home screen on iOS.

  • iOS improvements

    • Fix an issue where invalid dsyms could be produced on shipping builds.

    • Added Bitcode support.

    • Add full support for producing XCArchive packages including debugging support for bitcode.

  • Change Mac OpenGL shader version at runtime to 3.30 to support more intrinsics such as asuint(), asfloat() used in some materials.

Android
  • New: AAR and JAR files from repositories is now supported which allowed updating the following libraries:

    • Google Play Games native C++ SDK to v2.1

    • Google Play Services to 9.2.0

    • android-support-v4 to 23.0.0

  • New: Added the ability to set thread affinity for a device in the Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01).

  • New: Added detection of Amazon Fire TV to disable requiring virtual joysticks.

  • New: Added Harfbuzz texture shaping compiled libraries for all Android platforms.

  • New: Added optional log spew filtering callback to Run

    • This is used with the new adb with percentage completed indicator which spammed the logs.

  • New: Added the ability to specify the desired install location for Android packages in Project Settings

  • New: Return player ID and handle auth token for Google Play Games on Android.

  • New: You can now package and launch on multiple connected Android devices simultaneously.

    • Select multiple devices in the Project Launcher.

    • It is recommended that you use the Android_Multi target and enable a set of texture formats to support all of your devices.

  • New: Added additional scope (plus.login) to Google Play Games builder.

  • New: Added "r.AndroidDisableThreadedRendering" console variable and added device profiles for some devices that need threaded rendering disabled due to crash bugs when an application regains focus

    • This fix was specifically applied to the following devices

      • Lenovo S939

      • Lenovo A7600

      • Wiko Highway Signs

      • Alcatel Pixi 3

  • New: Added handling of OnTextChanged for virtual keyboard input on Android.

  • New: Added HUAWEI Mali device recognition for Vulkan.

  • New: Added missing error check of the response code returned from consuming in app products.

  • New: Allocated Optional Shadow Depth Color Surface to match Depth Stencil dimensions (allow up to 4 resolutions for now) for mobile shadows.

  • New: Downloader Backgrounds can now be set for both landscape and portrait orientation on Android.

  • New: Enabled Google Play Games for ARM64.

  • New: Android Vulkan now include path checks.

  • Bugfix: Fixed a crash on device when playing sounds when packaged using Android_Multi.

  • Bugfix: Fixed a crash with Vulkan on Nexus 6P with Android N enabled extensions.

  • Bugfix: Fixed an issue with the Android string implementation for finding a WIDECHAR string within another WIDECHAR string.

  • Bugfix: Fixed an issue where the application could become unresponsive on some devices if the Game Activity is paused while an Alert Dialog is showing.

    • Hid the active AlertDialog on pause and show it again on resume after the render thread is restarted.

  • Bugfix: There was an assumption in Unreal Plugin Language that caused it to only look in Engine Configs for Project Settings.

  • Bugfix: Fixed an issue with iterative deploy for new ADB.

  • Bugfix: Fixed an issue with linker warning (mismatched function/variable for gl Map Buffer OES and gl Unmap Buffer OES).

  • Bugfix: Fixed an issue with proguard entry for Android mediaplayer tracks classes that are used in the new media framework.

  • Bugfix: Handle Android media prepare failure that could happen (eg. URL without internet connection).

  • Bugfix: Fixed an issue where launching to an Android device from a computer that has not been authorized by the device would hang during deployment.

  • Bugfix: Fixed an issue where setting Anti-Alias to true in the Draw Line function in a Blueprint Widget would cause the line to not be drawn on Android.

  • Bugfix: Fixed an issue where taking a screenshot on Android using the command console would result in an upside-down screenshot.

  • Bugfix: Fixed multiple Vulkan extensions for Android.

  • Removed unused methods from the Android JNI header.

  • Renamed some functions with "Error" in the name to prevent false coloring in the logs.

  • Use Malloc Ansi instead of Malloc Binned on Android ARM64 for now.

  • Use mmap/munmap for Android Binned Alloc From OS.

  • Cleaned up AndroidProperties.h (removed old platform types).

  • Deal with missing Android movie frame rate by defaulting to 30 if not available.

  • Device Tilt values on Android will now be consistent with values on iOS.

  • Disable Oculus stress tests on Android (for now) to remove shader dependency unhandled on Mac editor.

  • Disabled default engine crash handler on Android. System crash handler works more reliably across different Android versions and devices.

i