Unreal Engine 4.25 リリース ノート

Unreal Engine 4.25 のリリースノート

Windows
MacOS
Linux

新機能

Unreal Engine 4.25 のリリースでは引き続き、完璧さ、柔軟性、パワフルさ、実績において最高ランクの 3D 作成ツールが提供されています。ゲームおよびビジュアライゼーション開発において、より多くの分野でのコンテンツ作成と編集 に対応するため、ツールセットを拡張しました。リニア メディア ツールを改善し、よりイマーシブかつ効率的にリニアおよびシネマティックス コンテンツの制作 ができるようになりました。既存プラットフォームのサポートもさらに改善され、次世代ゲーム コンソール向けに最高レベルのサポートが追加されました

最終製品に関わるデザイナーとクリエイターが少なくなるほど、ビジョンの実現は難しくなります。新しいシステムとツールの追加および改善が行われた Unreal Engine 4.25 を使用することにより、クリエイターはこれまで以上に快適にエディタでコンテキストで最終コンテンツを直接作成、修正、イタレートできるようになりました。Niagara ビジュアル エフェクト システムおよびケイオス物理システムが改善および拡張され、高い品質とパフォーマンスのダイナミクス シミュレーション を提供するようになりました。リグ キャラクターのインエディタ アニメーション を可能にするために、リグとシーケンサーが一緒に動作するようになりました。ビューポート内での背景のビルドおよび更新 を容易にするために、モデリング ツールおよびスカルプト ツールが追加されました。

Unreal Engine を使用することで、デジタル要素を混じえたシネマティックスおよびリニア コンテンツを最新の、そしてわくわくする方法で制作することができます。新機能の Quality Media Export は、どんなパイプラインにも統合できる合理化されたワークフローを備え、高品質のレンダリング出力 を実現します。NDisplay の複数ディスプレイへのレンダリング技術は、設定しやすく、これまで以上にパワフル です。事実上、製品を問わず、LED ウォールと広い会場でのディスプレイが利用できるようになりました。さらに、インカメラ視覚効果、放送およびライブ イベント用ツール、3D テキスト アニメーションによるモーション グラフィックスなどの改善点、Unreal Editor 内での表とグラフの直接生成へのサポート が追加されました。

毎回リリースでは、作成したプロジェクトがプラットフォームに関係なく誰でも体験できるようにするために、すべてのプラットフォームに対応するための改善作業を重点的に行っています。今回のリリースでは、Microsoft Xbox Series X および Sony PlayStation 5 を含む 次世代ゲーム コンソールに対するサポート が追加されました。さらに、iOS および Android では レンダリングと開発ワークフローが大幅に拡張 されました。HoloLens 2 および Magic Leap などの拡張現実デバイスは、開発ワークフローの改善だけでなく新機能も追加されました。

今回のリリースには、GitHub の Unreal Engine の素晴らしいデベロッパー コミュニティから 114 の改善点が寄せられました。Unreal Engine 4.25 に貢献していただいた以下の皆様に謝意を表します (以下、敬称略)。

Filippo Tarpini "Filoppi", Doug Richardson "drichardson", Daniel Marshall "SuperWig", Doğa Can Yanıkoğlu "dyanikoglu", "projectgheist", Artem V. Navrotskiy"bozaro", "KieranNewland", "sturcotte06", "ohmaya", Morva Kristóf "KristofMorva", Kalle Hämäläinen "kallehamalainen", Eric Spevacek "Mouthlessbobcat", "mattpetersmrp", "doublebuffered", "SaltyPandaStudios", "Fi",Charles Alexander "muchcharles", Kristján Valur Jónsson "kristjanvalur", "solasin", "zzgyy123", Alex Stevens "MilkyEngineer", Artem Gurevich "glcoder", Konstantin Heinrich "kheinrich188", Jørgen P. Tjernø "jorgenpt", "CA-ADuran", Muhammad A.Moniem "mamoniem", Paul Greveson "moppius", Cristiano Carvalheiro "ccarvalheiro", "farybagj", Robert Khalikov "nbjk667", "ecolp-improbable", "unrealTOM", "fuchuanjian2016", Ilya "Neo7k", Mikhail Zakharov "real-mikhail", Cameron Angus "kamrann", Sam Bonifacio "Acren", Michael Kotlikov "mkotlikov", "Yaakuro", "dbaz", "kshokhin", Joe Best-Rotheray "cajoebestrotheray", Selivanov Artem "broly", Toru Hisai "torus", Lucas Maldonacho "Maldonacho", Maxim Marinchenko "mmarinchenko", Matan Shukry "matanshukry", Ben Hetherington "BenHetherington", "No-Face-the-3rd", Jeong ChangWook "hoiogi", Geordie Hall "geordiemhall","jessicafolk", Franz Steinmetz "Kartonfalter101", "fieldsJacksonG", Rune Berg "1runeberg", "DCvipeout", Nick Edwards "NEdwards-SumoDigital", "harshavardhan-kode-sb", Lukas Tönne "lukastoenneMS", Noah Zuo "NoahZuo", Chris "minimpounminimpoun", Viatcheslav Telegin "vstelegin", Ryan "RyanyiNF", smallshake "smallshake", Sergey Igrushkin "shkin00", Punlord "Punlord', Andrey Chistyakov ,"roidanton", Vasilii Filippov "DrizztDoUrden", Yi Qingliang "Walkthetalk", HugoLamarche "HugoLamarche", Gerke Max Preussner "gmpreussner", "RPG3D", Zak Strange "StrangeZak", "heavybullets", Alexander "DecoyRS", Martin Nilsson "ibbles", Peter Giuntoli "petergiuntoli", Torsten Raussus "Getty", Evan Hart "ehartNV", Arvid Hansen Díaz "DonHansonDee", Gregory Hallam "greghs".

主要機能

新規:次世代プラットフォームのサポート

image alt text

Unreal Engine 4.25 は最新のプラットフォームとして Sony の PlayStation 5 および Microsoft の Xbox Series X の初期サポートを提供します。また、年間を通して、次世代コンソールをシッピングするデベロッパーをサポートするために、最適化、修正、認証要件を 4.25-Plus ブランチで更新します。新しいオーディオの進化、オンライン サブシステムの初期サポート、TRC および XR 認証要件に対する初期サポートなど、プラットフォーム固有の機能が含まれています。

新規:Unreal Insights の改善

Unreal Insights の UX およびアーキテクチャが改善されました。これには、個別のトレース ブラウジングとレコーディング、新しいビジュアライザ プロセスのサポート、トレースの整理に使用するチャンネルが含まれます。このリリースでは、Timing Insights の検索とビジュアリゼーションが改善され、ユーザーがネットワーク トラフィックを最適化およびデバッグするのに便利な新しい Network Insights ウィンドウが追加されました。

image alt text

Unreal Insights UX の改善 (ベータ)

このリリースでは、Unreal Insights の UX およびアーキテクチャに対して次のような改善が施されました。

  • トレースを表示すると、個別の Insights プロセスが起動して、ブラウジングとレコーディングが明確に区別できるようになりました。

  • 新しいトレースを取得するとき、Unreal Insights で新しいビジュアライザ プロセスの自動スポーンがサポートされるようになりました。

  • トレース イベントはチャンネルに編成され、Insights 内からライブ セッションのオン / オフを切り替えることができるようになりました。

  • コマンドラインからチャンネルを選択できるようになりました。

Timing Insights

タイミング イベント フィルタを使用できるようになり、検索時のエクスペリエンスが改善されました。また、グラフのサポートも改善され、データ相関のメトリックのトレースおよび視覚化が可能になりました。

詳細については、「Animation Insights 」を参照してください。

Networking Insights (実験的機能)

使用するには、Unreal Insights を入手し、使用方法を学びましょう。

Unreal Insights に、ネットワーク トラフィックを最適化、分析、そしてデバッグするための Networking Insights が追加されました。次の機能を用いて、トレース情報を記録しネットワークのビヘイビアを視覚化できます。

  • 記録されているネットワーク セッション中に表示可能なマシンを画面に出力する Game Instance (ゲーム インスタンス) コントロール

  • 発信または着信データを視覚化する Connection Mode (接続モード) コントロール

  • ゲーム中に送受信されるパケットのタイムライン (およびサイズ) を表示する Packet Overview (パケット概要) パネル

  • レプリケートされたオブジェクト、プロパティ、リモート関数呼び出しなど、パケットのコンテンツを表示する Packet Content (パケット コンテンツ) パネル

  • 合計、最大、排他的な平均、包括的な平均など、選択されたパケットに対するイベント トレースを表示する Net Stats パネル

詳細については、「Animation Insights 」を参照してください。

Animation Insights (実験的機能)

image alt text

エディタに、ゲームプレイの状態とライブ アニメーションの動作を視覚化する Animation Insights が追加されました。トレース情報を記録し、次の機能を用いてアニメーションの動作を視覚化することもできます。

  • チャンネル フィルタリング。記録されたデータ セットに書き出されたトレース データを選択できます。

  • トレース データを出力するゲームプレイ オブジェクトを選択するためのソース フィルタリング

  • ポーズ、カーブ、ブレンド ウェイト アニメーション、アニメーション グラフ、モンタージュ、アニメーション通知トラック

  • 「showdebug アニメーション」システムに代わる、ライブ アップデートを含む概略アニメーション グラフ ビュー

詳細については、「Animation Insights 」を参照してください。

Trace Sessions (トレース セッション) と Trace Recorder (トレース レコーダ) の詳細については、「Unreal Insights Overview 」を参照してください。

新規:実際の制作作業で使用可能な段階に入った Niagara

Niagara ビジュアル エフェクト (VFX) システムが実際の制作作業で使用できる段階になりました。Niagara VFX システムは Fortnite で使用するエフェクトの生成からハイエンドな技術プロジェクトおよびテレビ/映画向けのバーチャル プロダクションに至る幅広いシナリオでの使用するために実際の環境で使用されています。新しいユーザー インターフェースは使いやすく、パフォーマンスとスケーラビリティが改善され、オーディオ データ インターフェース、パーティクル間での通信など新機能が追加されました。

Niagara の Particle Attribute Reader

新しく追加された Particle Attribute Reader データ インターフェースから、他のパーティクルのプロパティ に直接アクセスできるようになりました。エミッタまたはシステムは、他のパーティクルのパラメータ (位置、色、年齢など) を直接読み取れるようになり、フロック加工、距離コンストレイント、軌跡などのさまざまなエフェクトや動作が可能になります。

Particle Attribute Reader データ インターフェースは、使用されている同じエミッタまたは同じシステム内の他のエミッタからパーティクル属性を読み取ることができます。独自のエミッタから読み取る場合、前のティックまたはシミュレーション ステージからのデータを返します。Particle Attribute Reader が別のエミッタから読み取る場合、Niagara は最初に、Particle Attribute Reader のエミッタの前に読み取るエミッタをシミュレートします。これは、データ インターフェースが同じティックから結果を返せるようにするためです。

Niagara のパラメータ パネル UI の改善

Niagara スクリプト エディタのパラメータ パネルのレイアウトが更新され、Niagara スクリプトで使用されるパラメータがよりわかりやすくなりました。この新しいレイアウトは、ブループリントのパラメータ パネルのレイアウトに似たものとなっています。パラメータは名前空間 (System、Emitter、Particle など) ではなく、スクリプトでどのように使用されるのかを説明する機能ラベル (Input、Reference、Outputs、Local) で分類されるようになりました。ドロップダウン メニューを使用して、パラメータのターゲットの名前空間を選択することもできます。

image alt text

image alt text

パラメータ パネル:以前のバージョン

パラメータ パネル:4.25 バージョン

Input カテゴリのパラメータは、スクリプトのユーザーによって構成することができます (これは以前、Module 名前空間に記述されるパラメータに対して有効でした)。Reference カテゴリのパラメータは構成できません。Output カテゴリにあるパラメータには、スクリプトが変更するものがすべて含まれます。Local カテゴリのパラメータはスクリプトで定義され、そのスクリプト内でのみ有効です。

Audio Oscilloscope と Audio Spectrum データ インターフェース

新しく追加された Niagara データ インターフェースの Audio OscilloscopeAudio Spectrum を使用することで、Niagara システムを Unreal Audio エンジンに接続できます。Audio Oscilloscope は、オーディオ信号の波形に直接アクセスできます。Audio Spectrum は、特定の周波数でのオーディオ音量に応じて変化するビジュアリゼーションを作成できます。これらは音楽の視覚化に最適です。

これらのインターフェースは、レイテンシーとパフォーマンスのオーバーヘッドができるだけ少なくなるように作られています。デフォルトでは、これら 2 つのインターフェースはゲームの最終的なオーディオを使用しますが、特定のオーディオ サブミックスのみを使用するように設定することもできます。

Niagara の Effect Type アセット

Effect Type アセットを使用すると、特定のタイプのすべてのエフェクト間で共有されるスケーラビリティおよびパフォーマンス関連の設定のデフォルト値を設定して、プロジェクト内のさまざまなタイプのエフェクト間で一貫性を維持し、パフォーマンス割り当ての制限を適用することができます。

プラットフォーム別のパフォーマンス スケーラビリティ

Niagara エフェクトのパフォーマンス スケーラビリティをプラットフォームごとに指定できるようになりました。これにより、従来どおり必要に応じてパフォーマンスを微調整できる一方で、プラットフォームのスケーラビリティをシンプルかつ明確に制御することが可能になります。

エフェクト品質が LowMedium に設定されているデバイスに対してのみエミッタを有効にするなど、品質レベルを使用してエミッタを有効にするプラットフォームを制御できます。各品質レベルのデバイス プロファイル ツリーでプラットフォーム セットに特定のデバイスプロファイルを含めたり除外したりすることで、より細かく制御することも可能です。

image alt text

エフェクト品質が Low のプラットフォームのドロップダウン

プラットフォーム ベースのスケーラビリティは、Effect Type アセットのスケーラビリティ設定でも指定できます。詳細については、「Niagara の Effect Type アセット」セクションを参照してください。

エミッタ継承の再ペアレント化

作成後に Niagara の継承を使用してエミッタの親を変更できるようになりました。それにより、さらに柔軟性が高まり、エミッタのルックアンドフィールを維持しながらプロジェクト内のアセットを再構築できるようになりました。親が変更されると、新しい親に一致する子エミッタのモジュールが更新されます。ただし、新しい親エミッタと一致しないものはすべて子エミッタに保持されます。

エミッタが選択されると、設定メニューに [Update Parent Emitter (親エミッタを更新)] というオプションが表示されるようになりました。このオプションを選択すると、新しい親エミッタを選択できるメニューが表示されます。新しい親エミッタが選択されると、子エミッタが自動的に更新されます。

image alt text

歯車アイコンをクリックしてエミッタ設定を開きます

モジュール作成用の Niagara のスコープ

Niagara に、シミュレーション実行の開始から終了までの情報フローを定義する スコープ と呼ばれるモジュール作成の新しい概念モデルが追加されました。例として、System スコープEmitter スコープと Particle スコープに流れます。Emitter スコープParticle スコープ などに流れます。Namespace (名前空間) という概念をスコープに置き換え、カテゴリ (Inputs、References、Outputs、Local) と組み合わせることで、Niagara スクリプト エディタでパラメータを使用する際に標準化を更に進めたり、明確さを向上させたりできます。

4.25 に更新すると、既存のパラメータは新しいパラダイムに更新されます。

Niagara スクラッチパッド

Niagara システム エディタとエミッタ エディタの新しいスクラッチ パッドを使用すると、エフェクトのモジュールまたは動的入力の開発を試みて、エミッタまたはシステム アセットに含まれるモジュールおよび動的入力を作成することで、結果をリアルタイムで確認できます。既存のスクリプト アセットからモジュールおよび動的入力スクリプトをインポートできます。また、スクラッチ パッドで作成したものを既存のスクリプト アセットまたは新しいスクリプト アセットにエクスポートすることもできます。スクラッチ パッドを使用して、作成しているシステムまたはエミッタに特に固有なものを作成することもできます。スクラッチ パッドでは、エミッタまたはシステム内で機能するスクリプト アセットを作成できます。他の用途に使用が制限されている別のスクリプト アセットを作成する必要はありません。

Niagara の選択パネル UI の改善

Niagara システム エディタと Niagara エミッタ エディタにいくつかの改善が加えられました。右クリックのコンテキスト メニューから、モジュール、モジュール入力 (動的入力を含む)、レンダラのコピー、切り取り、貼り付けができるようになりました。また、モジュールの表示名をカスタマイズする機能が追加され、モジュールのハイライトが改善されて、Set Variable (変数の設定) モジュールの名前付けを行いやすよう UI が改善されました。さらに、System Overview のエミッタ ノードに、これらのエミッタで使用されるマテリアルのサムネイルが表示されるようになりました。

新規:シェーディング モデルの改善

今回のリリースでは、異方性プロパティをサポートしたマテリアルシェーディング モデル、物理的に正確なプロパティを使用した true tinted 透過マテリアルに大幅な改善と追加が行われました。また、Clear Coat シェーディング モデルが改善されて正確なライトに対して物理的に正確なレスポンスが示されるようになりました。

これらの改善は、自動車と建築向けビジュアライゼーション、メディアとエンターテイメント向けのマテリアル作成に理想です。

image alt text

異方性マテリアルのサポート (ベータ)

GGX 異方性定式化を使用した適切な異方性マテリアルのサポートが始まりました。このリリースから、これらのマテリアルでクリア コートおよびデフォルトのライト シェーディング モデルの厳密な IBL ライトと反射がサポートされます。エリア ライトの場合、BRDF は使用されている等方性応答へフォールバックします。

Anisotropic (4.25)

Isotropic (4.24)

異方性マテリアルをサポートするために、BasePass がベロシティを出力しない場合は GBuffer が拡張されてタンジェント バッファが可能となりました。そして、オプションが公開され、マテリアルを介した頂点の歪みが速度パス中にオブジェクトをトリガーしてレンダリングできるようになり、BasePass 中に速度を出力する必要がなくなりました。つまり、機能を失うことなく、BasePass 中にタンジェント バッファを有効にし、速度を無効にすることができます。

プロジェクトで異方性マテリアルを有効にするには、[Project Settings (プロジェクト設定)] の [Use Anisotropic BRDF] を true に設定します。マテリアルでは、メイン ノードに [Anisotropic] 入力があり、そのサーフェスに沿って光の方向性を制御します。

詳細については、「シェーディング モード 」を参照してください。

物理ベースの透過処理

新しい物理ベースの透過処理シェーディング モデルである Thin Translucency が追加されました。これにより、単一パスで処理される色ガラスや着色ガラスなどのマテリアルがサポートされるようになります。これを使用することで、マテリアルは物理ベースの透明なマテリアルの正確な表現が可能になり、ガラス シェーダの品質とパフォーマンスも以前の方法より向上します。

image alt text

例えば、着色ガラス マテリアルを作成する場合、白いスペキュラ ハイライトを追加しそれを背景に色付けする必要があります。従来は、白いスペキュラ ハイライトを処理する個別のオブジェクトでのみこの効果を作成できましたが、すべて正しい順序でブレンドするために複雑な設定を行う必要がありました。Thin Transparency シェーディング モデルは、空気からガラスとガラスから空気への光のバウンスを考慮した物理ベースのシェーダを使用して、単一パスでレンダリングします。

マテリアルの Thin Transparency を有効にするには、次を実行します。

  • [Shading Model][Thin Translucent] に設定します。

  • [Lighting Mode (ライティング モード)][Surface ForwardShading] に設定します。

  • テクスチャまたはカラー式を Thin Translucent Material Output 式にプラグインします。

詳細については「透過処理を使用する 」を参照してください。

クリア コート シェーディング モデルの改善

このリリースでは、クリア コート シェーディング モデルの物理的精度が特に改善されています。モデルの変更と、それら変更とパス トレーサーを最初に実装することにより、エンジンで生成されたグラウンドトゥルース画像 (正解画像) から、従来のラスタとレイ トレーシングの両方の手法で品質を向上させることができました。

4.25 Clear Coat

4.24 Clear Coat

さらに、Unreal Engine のクリア コート モデルは、環境ライティングを考慮して設計されています。環境ライティングはそのままで、減衰とフレネル項が主に指向性のあるライトに対して発せられる正確なライトに正しい方向のレスポンスが得られます。

詳細については、「ライトマップ UV を生成する 」 を参照してください。

新規:Chaos (ケイオス) 物理システムの更新

image alt text

Chaos (ケイオス) 物理システムが Fortnite の現在リリースされているシーズンにおいて実際に使用されています。以下の機能をサポートしています。

  • 破壊 - これを使用するとシネマティック品質のレベルで破壊をリアルタイムで実現できます。

  • コリジョンによるスタティックメッシュ ダイナミクス - シーン内の動的オブジェクトに対する剛体シミュレーション

  • クロス - 衣類、旗、その他の布の動的クロス シミュレーション

  • ヘア - ストランド ベースで物理的に正確なヘアのシミュレーション

  • 剛体スケルタル コントロール - ポニーテールなどのアイテムのシミュレーションの簡素化

  • シーン クエリ - シーンへのトレースを実施します。

新規:High-Quality Media Export (ベータ版)

シーケンサーのレンダー ムービーの後継機能である High-Quality Media Export は、高品質、プロダクション パイプラインへの統合、および容易なユーザー拡張を意図して作成されています。High-Quality Media Export を使用することで、複数のレンダー サンプルをまとめて蓄積して最終的な出力フレームを作成できます。そのため、質の高いアンチエイリアシング、ラジアル モーション ブラー、レイトレーシングでのノイズ削減が可能になります。

また、GPU メモリとデバイス タイムアウトの制限を受けないタイルベースのレンダリングを可能にする新しい高画像設定など、質の高いレンダリングを生み出す新機能もサポートしています。さらに、(正しいプロジェクト/シーン設定による) 透過画像のエクスポート、リニアデータでの 16 ビット HDR 画像の作成、アセットへのレンダリング設定の保存およびデベロッパー間での共有も可能になります。最後に、バッチが新しいレンダー キューで管理されるようになり、Adobe After Effects のレンダリング プロセスと同様に、複数のシーケンスを簡単にバッチ レンダリングすることが可能になりました。

最終的には、既存のシーケンサーのレンダー ムービー機能は High-Quality Media Export に置き換えられる予定です。現在のところ、High-Quality Media Export を使用するには、[Window] > [Cinematics] > [Movie Render Queue] を選択し、レベル シーケンスをレンダー キューに追加します。現時点では High-Quality Media Export にレンダー ムービーのすべての機能が備わっているわけではありませんので、シーケンサーはデフォルトでレンダー ムービーを使用します。

image alt text

High-Quality Media Export の詳細については、「High-Quality Media Export の概要 」を参照してください。

新規:オーディオ システムの更新

Unreal Audio Engine に新機能の Convolution Reverb 処理と Soundfield レンダリングが付きました。デザイナーは自分のプロジェクトに、真に迫った音響空間をシミュレーションしながらリスナーを包み込む、よりイマーシブでリアルなオーディオ体験を利用することができるようになりました。

Convolution Reverb

新しく追加された Convolution Reverb (コンボリューション リバーブ) エフェクトを使用すると、物理的空間または設計空間からのサンプルを使って、仮想環境において、より現実的な残響に対する現実的な音響特定をデジタルにシミュレートできるようになりました。

  • Convolution Reverb は従来のリバーブ技術に対してデータ駆動型の技術です。遅延バッファ、フィルタ、およびその他のさまざまな DSP トポロジの組み合わせを使用して残響をシミュレートするのではなく、Convolution Reverb は実際の部屋と環境の音響をシミュレートするために、現実または設計された空間の音響計測となるオーディオ サンプルを取り入れています。

  • Convolution Reverb は、セット外またはスタジオで録音した音と会話の「ワールダイジング」を高めて、豊富で実物そっくりのミキシングを作成するために、映画およびテレビ制作で広く使用されます。

ネイティブな音場での Ambisonics レンダリング

Unreal Engine では音場の Ambisonics (アビソニックス) レンダリングがネイティブでサポートされ、没入感のある 3 次元サウンド エフェクトを作成できるようになりました。サラウンド サウンド アセットは、静的な音のベッドをフェアに表現する一方で、アンビソニック アセットはリスナーを包み込みこみ、リスナーが音場内で回転できるようにし、インタラクティブな環境でよりリアルな今ーションを作成するため、音場は従来のサラウンド サウンドとは異なります。

image alt text

現実の球体調和関数の最初の 4 バンドの視覚表現青の部分は関数が正、黄色の部分は関数が負 (画像提供:Inigo.Quilez 。本ファイルは Creative Commons Attribution-Share Alike 3.0 Unported により使用権を認められています。)

  • 音場表現は、Spherical Harmonics (球面調和関数) を使用して位置情報を持つオーディオの球体への投影です。エンジン内での音場レコーディングをオーディオの「スカイボックス」として使用すると、音場をリスナーとソースの方向に合わせて回転させることができます。

  • ユーザーのスピーカー設定に関係なく、ネイティブの音場は環境音によって空間深度が大幅に改善されました。

  • 音場は専用のマイクロフォンを使用してフィールド レコーディングからキャプチャできるため、これらの音場をレンダリングすると環境的な現実感が大幅に向上します。

新規:LiDAR 点群

レーザー スキャンされた点群が Unreal Engine にビルトインでサポートされ、現実世界のものをこれまで以上に簡単にリアルタイム ビジュアリゼーションに取り込めるようになりました。

image alt text

image alt text

LiDAR Point Clouds プラグインがマーケットプレイスから入手できるようになり、大幅に改善されてパフォーマンスとスケーラビリティが向上しました。また、新しい設定と機能も追加され、Unreal Editor のプラグイン ウィンドウで直接利用できるようになりました。

インポート

  • ASCII (.txt、.xyz、.pts) および .las ファイルを含むいくつかの主要な点群形式をサポートしています。

  • ファイルをコンテンツ ブラウザにドロップするか、ランタイムにブループリント API を使用してエディタにインポートできます。

  • 非同期インポートで、コンテンツ ロード中のエンジンのロックを回避できます。

レンダリング

  • 点群は動的シャドウをキャストしたり受けたりすることができます。これは、太陽やライティングを調べる際に便利です。

  • ファイルからのデータのオンデマンド ストリーミングと GPU ストリーミングを備えた非常に大きなデータ セットがサポートされるようになりました。動的な詳細度システムでは、ビューポートの中心にある点に優先順位を付けることで、視覚的な結果を損なわずに高いパフォーマンスを維持できます。

  • 単純な点またはカスタム マテリアルを使用してデータをレンダリングできます。

  • 複数の色分け方法 (RGB、強度、高度、分類など) を使用できます。

  • 広範な色の調整が可能です。

  • 付属のポスト プロセス マテリアルにある Eye-Dome Lighting (EDL) テクニックを使用すると形状を強調できます。

操作

  • エディタのビューポートで個々の点を非表示、削除、マージ、および抽出できます。

  • 点データからコリジョン メッシュを作成できます。

  • ブループリント API を使用して、エディタまたはランタイムに新しい群を構築し、ポイントを追加できます。

新規:HoloLens 2 の改善

Unreal Engine での HoloLens 2 のサポートが大幅に改善されました。それにより、AR プラットフォームをターゲットとするアプリケーション開発がより効率的になり、より魅力的で没入感あふれるものを作成できるようになります。

image alt text

画像提供: Microsoft

  • Unreal で、Unreal Editor を実行せずにデスクトップ アプリケーションから App Remoting がサポートされるようになりました。

  • また、HL2 または後期ステージでの再投影でピクセルを表示できる OpenXR のサポート (実験的機能) が追加され、サードパーティー カメラ ビューからの MR のキャプチャが可能になり、フレーム、深度、および 3 番目のカメラ レンダー バッファのレンダー ターゲット コピーが削除されました。これにより、レイテンシーがフレームあたり 2 ミリ秒短縮できます。

Azure Spatial Anchors (ベータ)

Unreal Engine で Hololens 2 の Azure Spatial Anchors がサポートされるようになり、セッション間で現実世界の空間にホログラムを保持できるようになりました。

Mixed Reality UX Tools

  • Unreal 用の Mixed Reality Toolkit UX Tools プラグインがサポートされるようになりました。複合現実デベロッパーは一連の UX ツール (ボタン、マニピュレータ、近隣および遠方での相互処理、挙動の観察) を使って、GitHub 上のオープンソース プラグインにより開発を高速化することができます。

  • また、Unreal において UE4 プレイ イン エディタ ビューポートで手のシミュレーションがサポートされるようになりました。デベロッパーはアプリケーションをエミュレータやデバイスにデプロイせずに、シミュレートされた手を使って複合現実をテストすることができます (Mixed Reality UX Tools プラグインにはハンドメッシュが必要です)。

新規:レイ トレーシングの更新および実際の制作作業での使用

このリリースでは、Unreal Engine のレイ トレーシング機能がリリース可能な状態になりました。過去のリリースを通して開発を進めて現状に至りました。引き続き、安定性とパフォーマンスを維持しつつ、新機能の追加および既存機能の改善に努めます。

image alt text

左上:Fortnite | Epic Games; 右上:Senua's Saga:Hellblade II | Ninja Theory; 左下:A5 Cabriolet model (提供:Audi)、 HDR (提供:HDRI Haven); 右下:Archviz Interior Rendering sample | Epic Games

このリリースでは、次の追加や改善が行われています。

  • CPU および GPU で Niagara メッシュ エミッタがサポートされるようになりました。

  • 新しい異方性シェーディング モデルのサポートが追加されました。

  • レイ トレーシング機能と併用すると、クリア コート シェーディング モデルの品質が大幅に向上します。

  • グラウンドトゥルースの比較を生成するため、パス トレーサーにクリア コート BRDF マテリアルがサポートされるようになりました。

  • サブサーフェス プロファイル マテリアル用に光の伝達のサポートが追加されました。

詳細は、「リアルタイム レイトレーシング 」を参照してください。

新規:ナビゲーションの改善 (ベータ)

Unreal Engine 4.25 の NavMesh の操作について、柔軟性と最適化に重点を置いていくつかの改善が施されています。

オフラインでのナビ メッシュ のビルド

-BuildNavigationData を ResavePackages コマンドレットに追加して、ナビ メッシュをオフラインで再ビルドできるようになりました。これにより、デベロッパーはカスタム ビルド パイプラインでナビ メッシュのビルドをより簡単に扱えるようになります。

FindPath クエリの CostLimit パラメータ

FPathFindingQueryData 構造に CostLimit 変数が追加されました。CostLimit は、ナビゲーション中にオープン リストに追加できるノードの集合コストに制限が設けられました。これにより、特に長いパスを処理する場合にパス検索プロセスを早期に終了できるようになりました。

CostLimit のデフォルト値は「FLT_MAX」ですが、FPathFindingQueryData で制限を手動で定義したり、ComputeCostLimitFromHeuristic で制限を計算したりできます。

ナビ メッシュの下にコリジョンを満たす

UStaticMeshComponent に bFillCollisionUnderneathForNavmesh というプロパティが追加されました。このプロパティを設定した場合、スタティック メッシュの下の空間をコリジョンで満たすエミュレーションを行います。オブジェクトが Nav Mesh Bounds Volume (ナビメッシュ バウンズ) 内にある場合、ブジェクトのサーフェスの下にナビ メッシュは生成されません。ナビ メッシュを生成すべきでない領域を除外することで、複数のコリジョン レイヤーでレベルの最適化が可能です。

Recast Navmesh Generator と Time Sliced Navmesh Regeneration

リアルタイムでナビ メッシュの再生を行うとパフォーマンスに対して非常に高い負荷がかかる可能性があり、多くの場合、ネットワーク ゲームでサーバーのスパイクが長くなります。Time Sliced Navmesh Regeneration は、ナビ メッシュ タイルの再生成プロセスを必要な期間にわたって分散し、非同期ナビ メッシュ生成でスパイク処理が行われる可能性を大幅に下げます。

新規:アニメーション タイムラインのリファクタリング (ベータ)

image alt text

アニメーション アセットのアセット エディタは、アニメーション データを処理するときに、より一貫したルックアンドフィールであるシーケンサのようなタイムラインを使用するようになりました。アニメーション モンタージュ セクションの編集は、ブレッドクラム リストとドロップダウン メニューのある専用タブで実行されるようになりました。さらに、アニメーション カーブは、カーブ エディタのような完全な機能を備えたシーケンサを使用するようになりました。

新規:アニメーション圧縮の改善 (ベータ)

柔軟性と生産性を高めるためにアニメーション圧縮システムが見直されました。プラグインでアニメーション圧縮スキームと圧縮データ構造を指定できるようになりました。アニメーション シーケンスは、「自動圧縮」をハードコード化するという以前の方法から、アニメーション シーケンスに適用する 1 つ以上のコーデックが含まれている圧縮設定アセットを参照する方法に置き換えられました。アニメーションの圧縮は非同期になり Unreal Editor 内で非ブロッキング操作として実行されるため、圧縮プロセスの実行中も作業を続けることができます。

新規:コントロールリグの改善 (実験的機能)

image alt text

コントロールリグが最適化され、最大 20% 速くなり、メモリ使用量は最大 75% 削減されました。さらに、以下の機能の追加により、全体的なユーザー エクスペリエンスが改善されました。

  • 値の視覚的なデバッグと直接操作。

  • コントロールがリグへの 3D ユーザー インターフェースを表すボーン、スペース、およびコントロールのツリーを階層がサポートするようになりました。

  • ユーザー インターフェース設計の柔軟性が向上し、ワークフロー タスクを自動化する Python のスクリプト作成が完全にカバーされるようになり、シーケンス内のコントロールリグのサポートが拡張されました。

新規:インエディタ アニメーションでのコントロールリグの使用 (実験的機能)

コントロールリグを使用すると、レベル エディタでリグされたキャラクターをアニメートし、ゲームで使用するアニメーション シーケンスとしてアセットをエクスポートできます。Unreal Editor でアニメーションを作成、保存、視覚化できます。これらのアニメーション アセットをエンジンで直接作成すると、外部のサードパーティ プログラムも不要になります。

image alt text

新規:Soundfield とエンドポイント サブミックス (ベータ)

Soundfield とエンドポイント サブミックス (ベータ) を使用すると、Unreal Engine に空間音声形式を実装するときの開発時間を短縮し、没入型ゲームプレイの空間定位をより適切に制御できます。

新規:デフォルトのサブミックスのアセット化 (ベータ)

オーディオ設定でデフォルトのサブミックスを定義できるようになり、他のサブミックスアセットと同様に扱われるため、イテレーション時間が短縮されます。これまで、デフォルトのサウンド サブミックス (マスター、アンビソニックス、リバーブ、EQ、およびリバーブ プラグイン サブミックス) は UE4 でハードコード化されていました。つまり、これらのサブミックスにエフェクトを追加することには制限がありました。

新規:マスター / サイドチェイン コンプレッション (ベータ)

マスター / サイドチェイン コンプレッション (ベータ) が改善されました。このメソッドは、特定のサウンドにリスナーの意識を集中させたいときに、環境サウンドをダッキングします。例えば、敵が近づいたときに手榴弾が爆発してその音が敵の足音より大きかったとしても、爆発音が遠くの場合は、足音がかき消されることはありません。サウンド デザイナーは、サウンド ミックスのダイナミック レンジをより詳細に制御できるので、実際のオーディオ特性を考慮できるようになります。

新規:子アクタを持つブループリントへの変換

レベル エディタの Convert to Blueprint を使用して、複数のアクタを子アクタを持つ単一のブループリント アセットに変換 できるようになりました。新しく追加された [Child Actors] オプションを使用すると、選択されたすべてのアクタ (および変更されたプロパティ値) のコピーが子アクタ コンポーネントによってアタッチされたクラスのマスター アクタを含む、単一のブループリント アセットを作成できます。このブループリント アセットをレベルにドロップすると、選択したすべてのアクタがグループとしてスポーンされます。

新規:UObject プロパティの最適化

  • これは API の更新です。リファクタリングはソースコードを使用していないエンドユーザーには気づかれないで実行されます。

  • プラグイン デベロッパーは Uproperty マイナー リリースノート を確認してください。

UProperty は FProperty にリファクタリングされました。つまり、UPROPERTY マクロでマークされたプロパティは、UObject のオーバーヘッドが追加されません。このリファクタリングによる改善点は以下のとおりです。

  • ロード パフォーマンスの向上 (特に多数のブループリントをロードする場合)。

  • ガベージ コレクションのパフォーマンスの向上 (特にプロジェクトに多数のブループリントがある場合)。

  • メモリの節約 (『フォートナイト』でのテスト結果では 30 MB を超えるメモリの節約)

  • 以下の項目におけるパフォーマンスの向上

    • UObject のイテレーション (チェック対象のオブジェクトが減りました)

    • FProperty のキャスト。UObject の 3 倍の速度でキャストできます

    • FProperty のイテレーション速度。UProperty のイテレーション速度のほぼ 2 倍です

新規:Visual Dataprep の改善 (ベータ)

Visual Dataprep システムは、初心者にとってより使いやすく、パワーユーザーにとってはより柔軟なものになりました。

グラフ エディタのルックアンドフィールが明確になり、実行とデータフローがより適切に反映されるようになりました。

image alt text

ワイヤーで接続されたブループリント スタイルのノード グラフではなく、アクションのリニア シーケンスを強調するようになりました。ビジュアル キューがより明確になり、ユーザーがアクションに新しいステップを追加しやすくなりました。また、色分けによってフィルタ ブロックとオペレーター ブロックの区別が楽になりました。

加えて、次の変更点があります。

  • 最も一般的な Dataprep アクションがブループリントと Python に公開されました。カスタム エディタ スクリプトは、Visual Dataprep システムを介してインポートを実行し、アクション、フィルタ、および演算子を含む新しい dataprep グラフを設定することもできるようになりました。

  • レイヤー、頂点数、または三角ポリゴン数でオブジェクトをフィルタ処理する新しい Select By ブロックが追加されました。

  • 新しい Operator ブロックがいくつか追加され、シーンとアセットの設定の幅が広がりました。例えば、アクタの 3D 位置にランダム オフセットを追加したり、スタティック メッシュの三角ポリゴンの向きを反転したり、アセット参照を置き換えたりすることができます。

詳細は、「Visual Dataprep 」を参照してください。

新規:PLM XML 向けの Datasmith のサポート

大規模な CAD プロジェクトは、特殊な 3D アプリケーション間での相互運用性が高いことから Siemens PLM XML に依存しています。そして、その 3D アプリケーションの中に Unreal Engine のリアルタイム ビジュアリゼーションも追加されました。

Datasmith CAD インポータで PLM XML ファイルをインポートできるようになりました。他のデータ形式に対して提供される機能もすべて提供されます。インポート プロセスでは、参照ファイルからジオメトリを自動的にインポートし、シーンの階層と位置を保持して、Unreal で行った変更を保持する非破壊的な再インポートを行います。さらに、PLM XML のユーザー データを Datasmith メタデータに変換し、Variant Manager で使用可能な PLM XML プロダクト ビューごとにバリアントを作成します。

Datasmith の使用の基礎、およびインポート プロセスで可能な操作については、「Unreal Datasmith 」を参照してください。

新規:Datasmith の相互運用性の改善

Epic では毎回のリリースで、Datasmith のサードパーティ アプリケーションおよびファイル形式との動作方法について改善を行っています。

Rhino

  • Rhino ファイルのパラメトリック サーフェスをレンダリングするための、Unreal で使用される三角ポリゴン メッシュの制御がしやすくなりました。Rhino ファイルからシーンをインポートする際に、いつでもファイル内のパラメトリック サーフェスに次の 2 つの異なるテッセレーション方法を選択できるようになります。

    • インポート オプション ダイアログで指定したテッセレーション設定を使用して、Datasmith にすべてのパラメトリック サーフェスをテッセレーションさせることができます (4.24 ではこれが唯一のオプションです)。

    • Rhino によって以前に作成され、Rhino シーンに保存されている三角ポリゴン メッシュを再利用できます。Rhino レンダラで作成したテッセレーションが満足のいくものだった場合、この方法によって同じテッセレーションを保持して、Unreal Engine のリアルタイム ビジュアリゼーションに活用することができます。

  • Datasmith は、Rhino ポイントを空のアクタとしてインポートするようになりました。これにより、シーン階層内での配置を保持したり、Rhino シーンにプレースホルダーや関心のあるポイントを配置してリアルタイム ビジュアリゼーションに持ち込んだりできます。

  • Datasmith で、Rhino オブジェクトに関する技術的なメタデータをアクタのタグとしてインポートするようになりました。

詳細については、「Rhino で Datasmith を使用する 」を参照してください。

Revit

Datasmith エクスポートが Dynamo スクリプトに統合され、設計のリアルタイム ビジュアリゼーション生成プロセス自動化をより詳細に制御できるようになりました。Revit 用 Datasmith エクスポート プラグインに DatasmithDynamoNode.dll という Dynamo 用プラグインが追加されました。このプラグインには、DatasmithDynamoNode.Export3DViewsToDatasmith ノードが新しく追加されています。このノードを使用して、Revit から「.udatasmith」ファイルに複数の 3D ビューをバッチ エクスポートできます。

エクスポートする Revit ドキュメント、生成される「.udatasmith」ファイルのパス、エクスポートする 3D ビューの ID、および Revit で生成される三角ポリゴン メッシュのテッセレーション レベルを指定できます。

また、次のとおり、他にも多くの修正と改善を行っています。

  • 壁、手すり、パイプ、配線など、Revit で開始点を持つエンティティのピボットが Unreal の正しい位置に配置されるようになりました。

  • Revit プロジェクト ファイル (.rvt) に加えて、Revit ファミリ ファイル (.rfa) を「.udatasmith」ファイルにエクスポートできるようになりました。

  • インポートされたテクスチャは、コンテンツ ブラウザで Revit ソースに対応したラベルが正しく付けられるようになりました。同様に、カーテン ウォール パネルなどのオブジェクトのスタティック メッシュ コンポーネントの名前もわかりやすくなっています。

  • Revit の PBR マテリアル クラスの色が一律してグレーとならず、ビジュアルに関するプロパティをそのままインポートするようになりました。

  • Unreal のアクタは、Revit の対応するオブジェクトが反転またはミラーされているかどうかを示すタグを保存するようになりました。これにより、反転またはミラー化されたオブジェクトに特別な処理を適用する必要がある dataprep 操作を自動化できます。

詳細については、「Revit で Datasmith を使用する 」を参照してください。

新規:Variant Manager の改善

Variant Manager は、複数の異なるレベルのバリエーションを事前に設定し、ランタイムにこれらのバリエーションを切り替えるのに便利です。このリリースでは、Variant Manager の操作性を次のとおり改善し、バリアントが希望どおりに設定できるようになりました。

image alt text

  • バリアントのサムネイルとして外部画像ファイルを設定できるようになりました。

  • バリアント内のバインドされたアクタを交換し、代わりに別のアクタへ置き換えられるようになりました。

  • アクタをキャプチャして新しい位置にドラッグすることで、キャプチャしたプロパティを並べ替えられるようになりました。これにより、最も重要なプロパティを簡単に表示できます。

  • カラー プロパティをキャプチャする場合、カラー ピッカーを使用して値をより簡単に設定できるようになりました。

  • Cine カメラ アクタからより多くのカメラ設定をキャプチャできるようになりました。

  • アクティベーションの際にブループリント関数を呼び出すようにバリアントを設定すると、関数は Level Variant Set アセット、アクティブ化されるバリアント、およびアクティブ化されたバリアントを所有するバリアントセットを、コンテキストの追加の引数として受け取ります。複雑な応答を設定するには、このコンテキストが便利です。例えば、依存関係を考慮する他のバリアントをアクティブ化したりできます。

Variant Manager の詳細については、「シーンのバリアントを操作する 」を参照してください。

新規:Live USD の改善 (ベータ)

Pixar の Universal Scene Description (USD) 交換形式に対する Unreal Editor のサポートが強化され、選択したシーン構築ツールとアニメーション ツールからのアセット管理パイプラインを構築しやすくしました。このリリースでの変更点は以下のとおりです。

  • マルチスレッド インポートと向上したレンダリング パフォーマンスにより、USD データをより高速かつ応答良くライブで USD Stage にインポートできるようになりました。

  • 各 USD レイヤーが独自のシーケンサ トラックに取り込まれ、各レイヤーのオブジェクトとアニメーションを個別に操作できるようになりました。

  • インポータで、シーン オブジェクトの USD で行いたいことを Unreal でも行うことができます。エディタでは、USD でサポートされているさまざまな目的 (デフォルトレンダリングプロキシガイド) の間でシーンの視覚的表現を切り替えることができるようになりました。

  • インポータで USD Point Instancer がサポートされるようになり、Point Instancer によって作成された各オブジェクトに一致するように、スタティック メッシュ インスタンスで Unreal Engine シーンが自動的に設定されます。

  • Unreal マテリアルを USD プリミティブに割り当てられるようになりました。

  • USD Python API が Unreal Editor で公開されました。これを使用すると、Python エディタ スクリプト内から USD シーンを制御できます。

  • カスタム USD スキーマを使用する場合、カスタム C++ コールバック関数をフックして独自のデータ構造を処理できるようになりました。

概要と使用方法については、「UE4 の Universal Scene Description (ユニバーサル シーン デスクリプション) 」を参照してください。

新規:エディタのパフォーマンスの改善

エディタのパフォーマンスはリリースごとに大幅に向上しており、非常に大きなシーンを扱うケースではこれが顕著に現れます。Unreal Engine 4.25 では、以下のパフォーマンスの改善が行われました。

  • Incredibuild を使ったシェーダー コンパイル効率が 90% を超えたケースがありました。その結果、配布されたシェーダーを内部セットアップを使ってコンパイルした結果、コンパイル時間が 1/5 に短縮されました

  • プロキシ メッシュ作成プロセスにおける CPU 数でのスケールが改善し、複雑な設定に対して処理時間が 1/3 になりました。

  • 大きなシーンにおける一括凸包演算がこれまでと比べて 100 倍速くなり (使用メモリが 1/4 になることもある)、1 時間費やしていた処理が数分で完了するようになりました。

  • マテリアルの焼き付けが改善され、これまでと比べて速度が 14 倍、使用メモリが 1/3 となりました。パフォーマンスの改善は使用する GPU バックエンドによって異なります。

  • Datasmith のデータ再インポートの処理方法が改善され、再インポート時間とメモリ使用量の両方が確実に減少しました。

  • Datasmith CAD シーンの保存方法の見直しが行われ、新しい CAD シーンの保存と取り込みが分から秒単位で実施されるようになりました。

  • Datasmith VRED と DeltaGen FBX インポート ワークフローが大きな FBX ファイル上で素早く進むように感じられます。

  • 多くのコア CPU 上におけるディスタンス フィルールドの計算がかなり効率的に実施されるようになり、処理時間が 1/5 になりコアの使用量が改善されました。

  • 映像作品の PNG ファイルへのエクスポートがこれまで以上に速くなりました。コンピュータ上で検知されると AVX-2 のような新しいインストラクション セット機能を使用することができます。4K 映像をエクスポートして 16 コア CPU でリアルタイムで PNG ファイルを解放することができるようになりました。

新規:Disaster Recovery の改善

最新バージョンの Disaster Recovery では少ないメモリ使用で大容量のアセット (2GB 以上) を高速で処理します。既存のリカバリ セッションを削除するために、新しいリカバリ ハブ ([Windows] > [Developer Tools] > [Recovery Hub]) を追加しました。リカバリ セッションは非常に大きくなる場合があるので、新しい設定を追加して、リカバリ セッションを格納するための場所をユーザーが選択できるようにしました。

新規:エディタ ペイント モードの改善

よりスムーズなワークフローを提供し、高度な作業を行うチームの生産性と拡張性を高めるために、メッシュ ペイント システムが全面的に見直しされました。メッシュ ペイントの以前のバージョンからあったツールセットの機能はそのままで、次の点が改善および追加されています。

  • すっきり見やすい UI

  • 物理トレースへの非依存

  • (上級ユーザー向け) 頂点ペイントの拡張、他の頂点データのペイントを可能にする機能のの追加

モード選択はツールバーで行います。パネルのタブではなくなりました。メッシュ ペイント モードでは選択ツールがペイント ツールから分離されました。

image alt text

これらの機能は VR モードではサポートされていません。

新規:ビューポート内のモデリングとスカルプティングの改善 (実験的機能)

Unreal Editor ビューポート内でジオメトリの直接操作を行うツールセット (実験的に追加) が大幅に改善され、リリースごとにジオメトリ モデリングとアダプティブ メッシュ スカルプティングの完全なエンドツーエンド ワークフローを達成するという目標に向かって前進しています。

このリリースでは、インポートされたアセット、特に CAD アプリケーションからのアセットに関する小さな問題の修正を目的としたいくつかのメッシュ修復ツールも導入されました。これらツールを使用することで、穴を埋めたり、ピボット ポイントをジオメトリに対して移動したり、UV マッピングをインタラクティブに生成および調整したりできます。

新規:モバイルのデフォルトのレンダリング機能レベル

OpenGL ES3.1 および Metal 2.0 は、それぞれ Android および iOS プロジェクトのデフォルトの機能レベルとなりました。Vulkan、ES3.1、および Metal 2.0 はすべて同様の機能を備えているため、モバイル プラットフォーム間でより優れたパリティ (機能の同等性) を確立できます。また、進歩したモバイル技術を活用して、デスクトップ / コンソールと同等の機能も確立できるようになりました。

OpenGL ES3.1 および Metal 2.0 は、新しい Android および iOS プロジェクトでデフォルトで有効になり、Unreal Editor でプレビュー機能レベルとして設定できます。以前のバージョンの Unreal から移行するプロジェクトは、デフォルトでこれらの機能レベルにアップグレードされます。

OpenGL ES2 および Metal 1.2 のレンダリング機能レベルは、Unreal Engine から削除されました。

新規:Android NDK 21b のアップデート

4.25 では Unreal Engine を Android NDK 21b にアップデートします。この更新では Android ツールチェーンの最適化とバグ修正が数多く行われており、最近の NDK バージョンを使用する Android ライブラリは Unreal Engine と互換性を持つようになります。

この変更を簡単に行うために、Unreal Engine では Android プロジェクトの新しい設定プロセスが必要になりました。Android 用 Codeworks を使用するのではなく、Android デベロッパー ページから Android Studio 3.5.3 をダウンロードしてインストールする必要があります。インストールが完了したら、「Engine/Extras/Android」フォルダで「SetupAndroid」スクリプトを見つけて実行し、プロセスを完了します。このスクリプトは、Windows、MacOS、および Linux の形式で利用できます。

Unreal Engine の以前のバージョン用に CodeWorks をインストールした場合は、「SetupAndroid」スクリプトを使用する前にそれをアンインストールすることをお勧めします。これを行うには、CodeWorks アンインストーラを実行し、CodeWorks がインストールされたディレクトリを削除します。

Unreal Engine の以前のバージョン用に NDK の古いバージョンをサポートする必要がある場合は、Android Studio を使用して NDK 14b をインストールし、対象の Android プロジェクト設定に合わせて手動で NDK パスを指定します。対応方法に関する詳細は、NDK 21 アップデートに関する「ブログポスト 」を参照してください。ただしこれは、4.25 と以前インストールした Unreal Engine を同時にサポートする必要がある場合のみ必要となります。4.25 に移行しない場合は、引き続き Codeworks installations を安全に使用することができます。

4.25 プレビュー バージョンでは NDK 21 を使用しましたが、4.25 リリースでは NDK 21b を使用します。すでに NDK 21 をセットアップしている場合は、4.25.0 にアップデートして SetupAndroid を再度実行すれば、必要なコンポーネントをダウンロードすることができます。

新規: iOS Launch Storyboards

Unreal Engine は、iOS の起動画面に iOS Launch Storyboard を使用するようになりました。Launch Storyboard はアニメーションをサポートしており、ユーザーの画面サイズに合わせたコンテンツの動的なスケーリングも可能です。それにより、より洗練されたエクスペリエンスを起動時に提供できます。

Launch Storyboard Options

iOS Launch Storyboard を使用するには、XCodeLaunchScreen.storyboard を作成し、プロジェクトの「Engine/Build/IOS/Resources/Interface/」フォルダに配置します。その後、[Project Settings (プロジェクト設定)] > [Platforms (プラットフォーム)] > [iOS][Storyboard]オプションを有効にします。なお、作成した静的な起動画面は、iOS ビルドにパッケージ化されなくなります。代わりに、ストーリーボードが起動画面として機能するようになります。

プレースホルダーを必要とするプロジェクトにとって便利になるように、Unreal Engine は Use Custom Storyboard を有効にしていないゲームに対して、自動でデフォルト ストーリーボードをパッケージ化します。このストーリーボードの静的なローンチ画像は Launch Screen Image フィールドに置くことで変更が可能です。アルファ チャンネルなしの PNG です。さまざまなアスペクト比とレイアウトで互換性を最大にするためにスクエア ディメンションです。

iOS 13 の時点で、Apple はデベロッパーに Launch Storyboard の使用を要求し、静的な起動画面は受け付けなくなりました。詳細は、『Apple 社の起動画面およびストーリーボードに関するドキュメント 』 を参照してください。

新規:Android App Bundles

Android App Bundle は、Google Play ストアの新しいアップロード形式です。ユーザーは、ターゲット デバイスの仕様ごとに個別の APK を作成、署名、管理しなくても、単一の AAB ファイルをアップロードするだけで済むようになります。Google Play の動的配信システムは、アップロードした AAB からエンドユーザーのデバイス構成に最適化された最終 APK を自動的に生成します。これにより、Google Play ストアのビルドを準備するプロセスが大幅に簡素化されます。さらに、Android App Bundle を通じて配布される最終的な APK の最大サイズは、以前の制限であった 100 Mb から 150 Mb になっています。Android App Bundle を使用しないプロジェクトでは、引き続き 100 MB に制限されますのでご注意ください。

Android App Bundle を使用するには、[Project Settings (プロジェクト設定)][Platforms (プラットフォーム)] > [Android] > [App Bundles][Generate bundle (AAB)] を有効にします。Android 用にプロジェクトをパッケージ化すると、APK ではなく AAB としてパッケージ化されます。Unreal Engine は、Android App Bundle のビルドとともに、テスト目的でユニバーサル APK ファイルも自動的に生成します。

App Bundle では現在、Android 拡張ファイル (.OBB) をサポートしていません。

新規:Swappy Frame Pacer for Android (ベータ)

Unreal Engine で Google の Android Game SDK から Swappy フレーム ペーシング ソリューション が統合され、Unreal Engine ゲームのレンダリング プロセスと Android のディスプレイ パイプライン間の同期が改善されました。この機能を有効にすると、Android ゲーム用タッチスクリーン入力のフレームレートがより安定し、レイテンシーが少なくなります。

Android プロジェクトで Swappy を有効にするには、コンフィグ変数 a.UseSwappyForFramePacing=1 を使用対象のデバイス プロファイルに追加して、r.setframepace [value] を使ってフレーム ペーシングのリフレッシュ レートを希望のフレームレートに設定します。

新規:モバイルでの仮想テクスチャリング (実験的機能)

仮想テクスチャリング が、モバイル デバイスの実験的な機能として利用できるようになりました。デスクトップ プロジェクトと同じ手順で仮想テクスチャリングの利用が可能です。詳細は、「仮想テクスチャリング 」を参照してください。

現在、ランタイム仮想テクスチャにはテクスチャ圧縮がない、つまり、予想される約 4 倍のメモリを使用することに留意してください。仮想テクスチャを使用するための必要なリソースを確実に確保するため、ES3.1 または Vulkan と互換性のある Android デバイスと iPhone 8 以降をターゲットにすることを現段階ではお勧めしています。

新規:モバイルでの明暗順応 (ベータ)

明暗順応 または 自動露出 が、デスクトップおよびコンソール プラットフォームに加えて、モバイル プロジェクトでも利用可能になりました。この機能により、デベロッパーは明るさの変化に順応する人間の目の仕組みを再現できます。

明暗順応を使用するには、MobileHDR を有効にしてモバイルでポスト プロセスを有効にする必要があります。これは、[Project Settings (プロジェクト設定)][Engine (エンジン)] > [Rendering] > [Mobile] で設定できます。

また、明暗順応自体を有効にするには、r.EyeAdaptationQuality と r.Mobile.EyeAdaptation の両方の [Console Varieables (コンソール変数)] を「0」より大きい値に設定する必要があります。r.EyeAdaptationQuality 変数は、「BaseScalability.ini」の [PostProcessQuality] セクションにある sg.PostProcessQuality スケーラビリティ設定を通じて構成されています。r.Mobile.EyeAdaptation 変数は、「BaseDeviceProfiles.ini」にあるデバイスプロファイルで直接設定されます。Android_Low and Android_Mid デバイス プロファイルおよび幾つかのローエンド iOS デバイスにおいては、デフォルトで無効にすることが望ましいです。

明暗順応はパフォーマンスに対して大きな負荷をかけませんが、何らかの理由で無効にしたい場合は、r.Mobile.EyeAdaptation を「0」に設定します。

新規:Niagara シミュレーションおよびイテレーション ステージ (実験的機能)

シミュレーション ステージを使用すると、次のステージのモジュールの前に、一連のモジュールですべてのパーティクルを評価できます。これにより、コンストレイントの解決、高さフィールドの流体シミュレーション、位置ベースのダイナミクスなど、次のアルゴリズム ステップを開始する前にすべてのパーティクルを更新する必要があるシミュレーションを使用できるようになります。

イテレーション ステージは、ディスパッチ カウントがパーティクル カウントではなく特定のデータ インターフェースで駆動される新しい概念です。2D 流体といったようなシミュレーション用に 2D グリッドデータを変更する Grid2D コレクションなど、このコンセプトを利用するデータ インターフェースもいくつかあります。

シミュレーション ステージとイテレーション ステージは実験段階であり、現在は GPU シミュレーションを使用するエミッタに制限されています。

新規:明暗順応 (自動露出) の改善

ユーザー フレンドリーにするために、明暗順応 (自動露出とも呼ばれます) は既存のパラメータと設定が統合されました。

image alt text

追加機能と改善点は以下のとおりです。

  • ヒストグラムに個別の収束点を持たせるのではなく中間のグレーの点に収束させるために、ヒストグラムと基本の測光モードを統合しました。

  • テクスチャ マスクを使用して画面上のピクセルの影響を制御する新しい露出測光マスクが追加されました。

  • 測光モードに手動を設定して明示的にカメラのポストプロセス設定を使用する場合の、物理カメラの露出を調整するトグルが追加されました。

  • 明示的なポスト プロセス設定情報とヒストグラム情報を追加するための HDR (明暗順応) ビジュアリゼーション モードが改善されました。

    • 非常に明るいピクセルと暗いピクセルを識別して HDR 計算から除外する新しいデバッグ ビジュアリゼーション モードが追加されました。

  • HDR (明暗順応) ビジュアリゼーションの露出補正曲線の改善による、曲線の X 軸と Y 軸の値の発生位置が明確化されました。

  • 曲線を上下に移動する速度が同じ速度になるように、露光速度の感知が変更されました。

これらの変更により、Unreal Engine の以前のバージョンを使用しているプロジェクトとの下位互換性が破壊されます。アップグレード パスはありますが、プロジェクトの 外観 の維持は保証されません。これらの変更とプロジェクトへの影響の詳細については、当社の技術ブログ「Unreal Engine 4.25 での自動露出の処理方法の変更 」を参照してください。

詳細については、「ライトマップ UV を生成する 」を参照してください。

新規:ヘアとファー毛皮のレンダリングの更新 (ベータ)

ベータ機能開発に移行したことから、髪のレンダリングおよびシミュレーション機能の改良が継続されます。このリリースでは、ワークフロー、パフォーマンス、ライティングなどに多くの改善が加えられています。

image alt text

ワークフローの改善点:

  • メッシュが同じ UV 空間を共有している限り、グルームがメッシュ間で転送可能になりました。

  • ルートとチップのスケール、およびヘア クリップの長さを制御するためのグルーム コンポーネント オプションが追加されました。

  • Niagara のシミュレーション パラメータが、グルーム コンポーネントから直接編集できるようになりました。

    • ストランドに沿って Niagara のパラメータ値を制御できるいくつかの曲線ベースのプロパティも追加されました。

  • 複雑なグルーム アセットをインポートするときに、アセットの検証とインポート時間の見積もりが行われるようになりました。

  • ボディに対するコリジョン検出の質を高めるため、物理アセット補間の処理が改善されました。

  • 補間に関して、三角ポリゴンの剛体の変換の代わりに動径基底関数を使用する方法が追加されました。

パフォーマンスの改善点:

  • 髪のシミュレーションとレンダリングでは、レイ トレーシング機能の使用を含め、全体的な安定性と速度が向上しました。

  • スクリーン カバレッジの縮小に伴い、グルームを間引く継続的な詳細度 (LOD) システムを使用するようになりました。

  • クラスタ カリングを使用して、グルームを小さなクラスタに分割し、階層化された深度バッファに対してオクルージョン カリングを行うようになりました。

  • グルーム アセットは、Derived Data Cache (派生データ キャッシュ) をサポートするようになり、レベルのロード時間が短縮されました。

ライティングの改善点:

  • 髪システムでは、GPU 駆動のスパース ボクセル化構造を使用することにより、深いオパシティ マップなしでより正確なライティングが可能になりました。また、より薄くボクセル化することもできるようになります。

  • グルーム コンポーネントでライティング チャンネルがサポートされるようになりました。

新規:Sky Atmosphere の改善

Sky Atmosphere コンポーネントは進歩し続けており、物理ベースの大規模な大気を作成できる強力な機能が追加されました。

Per-pixel transmittance (4.25)

No per-pixel transmittance (4.24)

このリリースでは、次の改善が加えられました。

  • ピクセルごとに光の透過率を評価できるようになり、宇宙から見た惑星表面の正確な輝度を確保できます。

  • 惑星の大気は、近くの月などの近くの惑星オブジェクトにシャドウをキャストできるようになりました。

  • レベル内で大気を自由に移動できるようになりました。

詳細については、「Sky Atmosphere 」を参照してください。

新規:マテリアル レイヤーの改善 (ベータ)

マテリアル レイヤーが更新され、ランタイムにブループリント関数でマテリアル レイヤー パラメータを変更できるようになりました。また、ベース マテリアルから派生マテリアルにレイヤーの変更を伝えるときの動作も改善されました。

詳細については、「マテリアル レイヤー 」を参照してください。

新規:メモリ シェーダのロード時間のリファクタリング

新しいリフレクション システムを使用すると、シェーダ関連のリソースがフラット メモリのイメージに変換され、CPU を関与させることなくディスクからメモリに直接シリアル化の解除を行えます。これにより、リフレクション システムがコンパイラ間のメモリ レイアウトの違いを堅牢性の高い方法で処理できるようになるため、エンジン全体のロード時間のパフォーマンスが大幅に向上する可能性があります。

新規:シーケンサへの Spatialized Master Audio (空間マスター オーディオ) の追加

指定した時間にオーディオ セクションを個々のトラック コンポーネントにアタッチすることで、空間マスター オーディオをシーケンスに追加できるようになりました。空間化を視覚化するために、ビューポートの接続点にオーディオ アイコンが描画されます。

新規:Camera Cut ブレンド

Camera Cut トラックでブレンドがサポートされるようになりました。これにより、シネマティックを簡単にブレンドしたり、さまざまなシネマティック カットをブレンドしたりできます。ブレンドを有効にするには、Camera Cut トラック ノードを右クリックして [Can Blend] をオンにします。

新規:Take Recorder の機能強化

Take Recorder (テイク レコーダ) の全体的な画像代替テキストユーザー エクスペリエンスを改善するため、いくつかの合理化が行われ、新しい拡張機能も追加されました。

フレームレートの指定

特定のシーケンスに対して記録するフレームレートを選択できるようになりました。サポートされるフレームレートの範囲は、12 fps (アニメーション) から 240 fps です。デフォルトのフレーム レートはタイムコード プロバイダーのフレーム レートに基づきます。

記録中に、記録されたデータはタイムコードと一致するように移動するようになりました

キーフレーム データがキャプチャされると記録されたシーケンスがタイムコードを表示するようになりました。サンプル別のタイムコードを含む Live link ソースは、これらのタイムコードでシーケンスに直接マップされるようになりました。レイヤード テイク レコーディングの場合、前の録画から記録すると、既存のトラックは記録を開始する新しいタイムコードへ移動します。これにより、例えば、前の録画に対する新しいカメラ移動を記録することができます。さらに、データを直接シリアライズすることで、すべてのフロート チャンネルに対する保存時間が 5 倍改善されました。複数のアクタで長時間録画をする場合にこれは特に重要です。

新規:Template Sequences (ベータ版)

テンプレート シーケンスを使用すると、複数のオブジェクトトラックを簡単に再利用できます。また、アセットの重複を減らし、全体的な時間を節約できます。スケルタル アニメーションに似た単一のルート バインディングを使用することにより、テンプレート シーケンスを別のシーケンスのトラックに追加し、他のアニメーションのように操作できます。

新規:HoloLens 2 および「Collab Viewer」テンプレート

Collab Viewer テンプレート 」で、HoloLens 2 でのデザイン コンテンツの表示をサポートするようになりました。

新規:Product Configurator (製品コンフィギュレータ) テンプレート

新しいテンプレートでビルドすることで、次回のための製品コンフィギュレータの作成を容易に開始できます。このテンプレートには、複数のシーン構成で設定された Variant Manager を示すサンプル コンテンツと、UI を自動的に構築してランタイムにユーザーが制御できるように構成を公開する UMG ウィジェットの再利用可能なセットが含まれています。

Product Configurator」テンプレートは、[Automotive, Product Design, and Manufacturing (自動車、プロダクト デザイン、製造)] カテゴリにあります。

新規:インカメラ VFX の更新 (ベータ)

当社のインカメラ VFX ツールが最初に導入されて以来、当社では数多くのパートナーと協力して、Unreal Engine を現実世界の映画およびテレビ開発プロジェクトで使用して、LED スクリーンの前でライブ アクション シーンを撮影するための努力を重ねてきました。そうした経験をすべて反映し、既存のワークフローとツールに次のような改善を加えました。

  • 複数の Unreal のカメラで錐台を LED の壁の異なるセクションにレンダリングすることで、同じスクリーンに対して複数のカメラから同時に撮影できるようになりました。

  • カメラ錐台の内側と外側の両方の領域の解像度を制御できるようになりました。物理的なカメラのビュー外にある領域の LED の壁の解像度を下げることにより、カメラ ビュー内の領域のレンダリング品質を損なうことなくパフォーマンスを向上させることができます。

  • グリーン スクリーン トラッキング マーカーの設定が簡単になり、ポスト プロダクションでの作業がさらに安定的に行えるようになりました。これらのマーカーが画面上で移動することがなくなりました。

  • 現実世界の演者またはセットに合成された仮想フォアグランドの要素を使用した 3 レイヤー コンポジションの設定が容易になりました。また、Unreal Engine のどのレイヤーを LED の壁から非表示にするのかをより簡単に制御できるようになりました。

  • 新しいカラー修正ボリュームをレベルに配置し、局所的な色補正をシーンに適用することで、仮想セットを現実世界のセットに一致させ、より細かく芸術的な制御を行えるようになりました。

  • nDisplay によって生成されたレンダリング出力を回転させて、LED の壁を構築するためのオプションを増やすことができます。

新規: nDisplay の改善

nDisplay マルチディスプレイ レンダリング テクノロジーは、インカメラ VFX システムの重要な部分であり、上記の改善を支えています。ただし、下記のとおり、すべての nDisplay ユーザーにとって役立つ改善も加えられています。

  • 特定の GPU を使用してレンダリングする各 nDisplay クラスター ノードを割り当てることができるようになりました。

  • nDisplay で NVIDIA ハードウェアによって提供されるフレーム同期サービスを使用して、クラスタ ノードのネットワーク全体で連続する各フレームのプレゼンテーションを同期することができます。

  • サーフェスにレンダリングを行う nDisplay の設定が簡単になりました。カーブしたサーフェス上に投影するために、PFM または MPCDI を使用して nDisplay によるワープ (ねじり) を設定するのではなく、nDisplay ブループリント API で指定したメッシュに従ってレンダリングされた出力を自動的にワープする新しい投影ポリシーが実装されました。

新規:モーション グラフィックスの改善

外部のデザイン ツールに切り替えることなく、魅力的なモーション グラフィックスを Unreal Editor で直接簡単に作成できるようになりました。画面上のグラフィックスをより高速に処理でき、仮想ワールドでそれらを適切に設計できます。

  • 3D Text Animation (ベータ):新しく追加された Text 3D Character Transform コンポーネントを使用すると、テキストの行全体を 1 つの単位としてアニメートせず、シーケンサを使用して 3D テキスト オブジェクトの変換、スケーリング、回転を文字ごとにアニメートできます。

  • チャートとグラフ (実験的機能):Unreal で統計データのビジュアリゼーションを直接設定できるようになりました。新しい Data Charts プラグインでは、データ テーブル アセットから統計を抽出し、数値を棒グラフ、円グラフ、またはグラフとして視覚化する事前作成済みのブループリントを提供します。

新規:ブロードキャスト、ライブ イベント用のツール

このリリースでは、ライブ ブロードキャストに関して、バーチャル セット、合成ビデオ フィード、拡張現実 (AR) の開発と操作を容易にするいくつかの新機能と改善点が追加されています。

追加機能と改善点は以下のとおりです。

  • Composite Plate は、シーン内の平面または一連のスタティック メッシュ オブジェクトにビデオ フィードを投影できるカメラのブループリントです。これにより、ブロードキャスターはタレントを任意の深さの 3D シーンにバーチャル的に配置できるため、オブジェクトをフォアグランドまたはバックグラウンドとしてタグ付けする必要がなくなります。この手法を使用して、特定の角度から実世界の場所を撮影してその画像またはビデオ フィードをシーン ジオメトリに投影することにより、完全な環境をシミュレートすることもできます。Composite Plate は、カメラの視点から 3D 空間のジオメトリに投影されるため、これらの手法はいずれも有効です。

  • グリーン スクリーン キーヤ が改善され、既存のクロマキー システムの品質が向上しました。

新規:DMX のサポート (実験的機能)

このリリースでは、DMX プロトコルを使用する外部コントローラーおよびデバイスに Unreal Engine を接続するためのサポートが実験的に導入されています。ArtNet および aSCN ネットワークを介した双方向の通信とインタラクションにより、ステージ ショーと照明器具を Unreal から制御し、設計段階で仮想環境でショーを事前に視覚化できます。

新規:Magic Leap の改善

Magic Leap をターゲットとするデベロッパー向けに、新しい GameMode、PlayerController、および GameState クラスを使用して共有ワールド エクスペリエンスを設定するためのサポートが追加されました。API 側では、コンテンツを永続化するユーティリティ API がさらに追加され、接続およびカメラの組み込みを行う API も統合されました。また、AugmentedReality インターフェースが改良され、ハンドヘルド AR プロジェクトの Magic Leap への移行が容易になり、ゼロ イテレーションのパフォーマンスと安定性が改善されました。デバッグと最適化をサポートするために、ブループリント専用プロジェクトの Visual Studio デバッガのサポートが追加され、コンフィグ変数を介してスレッド アフィニティを変更できるようになりました。

新規:SteamAudio 向けの動的ジオメトリ サポート

Unreal Engine において Steam Audio の動的ジオメトリ サポートを使用できるようになりました。個々のスタティックメッシュ コンポーネントを独立して移動、回転、スケールすることができるようになり、Steam Audio が音響効果を適切に更新されます。SteamAudio プラグインの新機能および映像によるデモは、こちら をご覧ください。

新規:プラットフォームの SDK アップグレード

Unreal Engine のリリースの際には、毎回プラットフォーム パートナーからリリースされる最新の SDK に対応するよう Unreal Engine を更新しています。

image alt text

  • Windows

    • 推奨:

      • Visual Studio 2019 v16.5

    • 最小:

      • Visual Studio 2017 v15.6

    • Windows SDK 10.0.18362

    • NET 4.6.2 Targeting Pack

  • ビルドファームによるコンパイルの対象である IDE のバージョン

    • Visual Studio - Visual Studio 2017 v15.9.4 ツールチェーン (14.16.27023) および Windows 10 SDK (10.0.18362.0)

      • 最小サポート バージョン

        • Visual Studio 2017 v15.6

      • NET 4.6.2 Targeting Pack が必要

    • Xcode - Xcode 11.1

  • Android

    • Android Studio 3.5.3

    • Android NDK r21

      • UE 4.25 もまた幾つかのローエンド デバイスでの互換性問題に対応するために NDK r20b をサポートします。

  • ARCore

    • 10.5

  • ARKit

    • 10.5

  • Linux "SDK" (クロス ツールチェーン)

  • Oculus

    • 1.44

    • API Level 23

  • OpenXR

    • 1.0

  • Google Stadia

    • 1.44

  • Lumin

    • 0.23

  • Steam

    • 1.46

  • SteamVR

    • 1.5.17

  • Switch

    • SDK 9.3.1 + optional NEX 4.6.3 (Firmware Version: 9.0.1-1.0)

    • サポートされている IDE:Visual Studio 2017、Visual Studio 2015

  • PS4

    • Orbis SDK 7.008.001

    • System Software 7.008.021

    • サポートされている IDE:Visual Studio 2017、Visual Studio 2015

  • XboxOne

    • XDK:July 2018 QFE-9

    • ファームウェア バージョン:Recovery February 10.0.18363.9135

    • サポートされている IDE:Visual Studio 2017

  • macOS

    • SDK 10.15

  • iOS

    • SDK 13, 12, 11

  • tvOS

    • SDK 13, 12, 11

アップグレード ノート

クック済みデータの互換性

Unreal Engine 4.25 ではロード時間を改善するためにシリアライズが大きく変更されました。これらの変更の結果、クック済みデータは Win32 と Win64 の実行ファイル間で互換性がなくなりました。両方のビルド タイプでプロジェクトをサポートするには、2 つのデータセットをクックする必要があります。ただし、64bit Windows は引き続き Win32 実行ファイルを実行するので、32 bit Windows のサポートが望まれるプロジェクトの場合は Win32 版のみをシッピングする選択もあります。

ロード時間の改善

Uobject の最適化、一般的なレンダリングおよび物理の最適化、マテリアルとシェーダーに対する低オーバーヘッドでのシリアライズによって、ロード時間が 10 - 20% 短縮されるプラットフォームもあります。

Win32 のサポート

Win32 のサポートを公式に非推奨としています。 Unreal Engine 4.25 および Unreal Engine 4.26 に含まれますが、32-bit Windows OS に対するサポートは今後のリリースで廃止されます。

GitHub Release Branch

GitHub を利用して Unreal Engine のソースコードにアクセスする場合、4.25 と 4.25-Plus という 2 つの別のブランチが表示されます。

タイトルに 4.25-Plus を使用するように Epic から特別に助言を受けている場合を除き、 4.25 ブランチ の使用を推奨します。

モバイル

  • OpenGL ES2 および Metal 1.2 のレンダリング機能レベルは削除されました。

XR

  • モーション コントローラー キーは 4.24 で非推奨となり、4.25 で完全に削除されました。

リリース ノート

AI

  • Bug Fix: UAIDataProvider_QueryParams:ブーリアン値に対するデータ バインディングが修正されました。

  • 新規: ネイティブ コードで EQS テスト クラスをサポートするために UEnvQueryTest_GameplayTags.SetTagQueryToMatch が追加されました

  • 新規: AI Perception System に、Max Age 時間以降の感覚をもったアクタを忘れるように支持するためのプロジェクト オプションが追加されました。

  • 新規: AIPerceptionComponent:ForgetAll をブループリントから呼び出し可能にすることで、感覚データをクリアする機能が追加されました。

  • 新規: GetOnQueryFinishedEvent 関数を呼び出すことで、UEnvQueryInstanceBlueprintWrapper.OnQueryFinishedEvent がネイティブ コードでアクセス可能になりました。

  • 新規: SpawnAIFromClassnow によって、スポーンされた AI エージェントを呼び出し元が特定できるようになりました。

ビヘイビアツリー

  • Bug Fix: Behavior Tree restarts that were caused by execution requests queued for branches getting deactivated while applying search data can now be prevented.

  • 新規: ブループリントを実装したビヘイビアツリーは、ビヘイビア ツリー エディタのノード上に表示されるカスタム名を指定できるようになりました。

  • 新規: カスタム BrainComponent の実行を可能にする機能、およびBrainComponents を AIController 上のコンポーネントとして設定し、アクタが AIController に所有されると自動的に実行する機能が追加されました。

  • 新規: UBlackboardKeySelectoroutside Behavior Tree Editor の使用をサポートする機能が追加されました。

デバッグ ツール

  • 新規: パス方向を示す矢じりを描画するためにナビゲーション パスのデバッグ描画がNavTestRenderingComponent を使うようになりました。

  • 新規: Gameplay Debugger ユーザー インターフェースの小さなタイポを修正しました。

  • 新規: Simulate in Editor の使用時に、UGameplayDebuggerLocalController にフィルタリングされるアクタの non-Pawn AActor 選択が可能になりました。

  • 新規: 新しい GameplayDebugger コンソールコマンドが追加されました。

    • EnableGDT(レガシー サポート用)

    • gdt.Toggle

    • gdt.SelectPreviousRow

    • gdt.SelectNextRow

    • gdt.ToggleCategory

  • 新規: クエリの開始と停止ようの Verbose ロギングが EnvQueryManager に追加されました。

ナビゲーション

  • Bug Fix: UPathFollowingComponent::RequestMoveWithImmediateFinish and UPathFollowingComponent::AbortMove were made consistent in terms of handling given move requests' bStopMovementOnFinish value.

  • Bug Fix: Fixed how ARecastNavMesh.DefaultMaxSearchNodes gets applied to make it consistent.

  • Bug Fix: Fixed FNavAgentProperties::IsNavDataMatching to make it respect null-navigation-data properly.

  • Bug Fix: Fixed how NavigationSystem rebuilds Static and DynamicModifiersOnly NavData in Play in Editor and Game modes, if bAutoCreateNavigationDatais set to False.

  • Bug Fix: Fixed ARecastNavMesh::ReplaceAreaInTileBounds to properly apply the requested new area type.

  • Bug Fix: Fixed a navigation filter bug resulting in it not blocking null-area navigation links.

  • Bug Fix: Fixed navmesh polygons so they can connect diagonally across tile boundaries.

  • Bug Fix: Fixed a bug in NavigationSystem so that registration of CustomNavLink from a different world is now prevented while in Play in Editor.Multiple NavigationSystems may coexist (For example, Editor, Client Game, and Server Game worlds) so now any given NavigationSystem instance performs a single flush of the global pending queue to register the links associated with their outer World.

  • Bug Fix: Fixed a navmesh rasterization issue, where a wrong offset on the vertical axis caused some voxels to be rasterized outside of their source geometry.This also addresses a side effect where a NavModifier aligned with geometry would not mark the navmesh, even when taking cell height into account.

  • Bug Fix: Fixed Chaos convex mesh indices winding so that triangle normals point outward for nav collision.

  • Bug Fix: Fixed rasterization area merging when adding new spans.Navmesh now generates correctly on a slope.

  • Bug Fix: Fixed a NavigationTestingActor path reset issue when toggling bSearchStart.

  • Bug Fix: Fixed updateSlicedFindPath not behaving like findPath (missing check for DT_UNWALKABLE_POLY_COST).

  • 新規: Detour パスフィンガーの負荷限度に対するサポートが追加され、p ナビゲーション クエリ DetourNavMeshQuery にパラメータが追加されました。

  • 新規: FPathFindingQuery::ComputeCostLimitFromHeuristic に最小の CostLimit 値が追加されました。NavigationTestingActor で最小の CostLimit パラメータが公開されました。

  • 新規: テレインの下に navmesh の生成を防ぐためのオプションが追加されました。

  • 新規: ログに基本的なビルド サマリを出力するための LogNavigationDataBuild が追加されました。

  • 新規: ナビゲーション データを再ビルドするための ResavePackagesCommandlet が追加されました。このオプションはダーティなパッケージのみチェックアウト、保存、チェックインを行います。

  • 新規: NavLinkProxy のシンプルなリンクからエンドポイントをスマート リンクへコピーするためのエディタ内呼び出し可能な関数が追加されました。

  • 新規: NavMesh リンク のデバッグ描画が整理されて、アクティブでないデバッグ描画との区別が容易になりました。

アニメーション

  • Bug Fix: BeginPlay() is now called appropriately on Anim Instances linked to Anim Notifies.

  • Bug Fix: Curve compression now prevents curves from collapsing into a single value when using all constant keys.

  • Crash Fix: Control Rig nodes are no longer evaluated twice in Animation Tracing.

  • Crash Fix: Initialization of linked layer/graph nodes no longer crashes when the Anim Instance is re-used.

  • Crash Fix: Anim Instances using linked Anim Instances no longer crash on re-use.

  • Crash Fix: Calling undo after adding a slot in Anim Montage Editor no longer crashes.

  • 新規: リンクされた Anim Graph/Layer ノード用の継承オプションを使って、アニメーション通知がリンクされたアニメーション インスタンスへオプションで双方向への継承が可能になりました。グループ化されたレイヤー ノードは全体として継承するので、グループ化されたノード レイヤーのいずれかが継承すると、グループ内のすべてのノードも同じように継承されます。

  • Crash Fix: Removed use of AllSortedComponentData in Animation Budget Allocator Debug HUD that was causing a crash.

  • Bug Fix: Added extern keyword to VirtualBonePrefix declaration to prevent it from ending up in every .cpp file.

  • Crash Fix: Remapping an additive animation no longer crashes.

  • Bug Fix: Deleting virtual bones no longer displays the "GetBoneMatrix(x) out of range of Spacebases" message.

  • Bug Fix: Linked instances are now cleaned up properly on unlink and reset, ensuring that Anim Notify states are fired off correctly and any playing Anim Montages are correctly terminated.

  • Bug Fix: Scrubbing an Animation in Sequencer no longer crashes.

  • Bug Fix: Fast-path is no longer incorrectly disabled for array properties.

  • Bug Fix: Const transform accessors in FAnimInstanceProxy are now correctly marked.

  • Bug Fix: Reloading Skeleton with unsaved virtual bone changes no longer causes an ensure.

  • Bug Fix: Stepping through a geometry cache now shows the frame corresponding to the time set in sequencer.

  • 新規: アニメーション圧縮がプラグインへ公開され、Compression Scheme の代わりに Compression Asset を使用するようになりました。

  • 新規: Unreal Editor を開いた場合、アニメーション圧縮は非同期で実施されるようになりました。シェーダーと同様です。

  • 新規: ゲームプレイ アビリティはモンタージュをプレイするアニメーション インスタンスを指定できるようになりました。

  • 新規: コントロール リグ内のライブリンク アニメーションとトランスフォーム データの読み取りをサポートするプラグインが追加されました。

  • 新規: Linked Animation Layer を始めて初期化するときに呼び出される新しい Animation Blueprint イベント コールバックが追加されました。

  • 新規: CSV アニメーション統計が更新および拡張されました。

  • 新規: デフォルトのカーブ圧縮アセット関連のエラーメッセージが改善されました。

  • 新規: Windows、Linux、Mac、Android プラットフォーム向けアニメーション用の ISPC 最適化が追加されました。

  • Bug Fix: Cooking of conformed-on-load interface graphs is now deterministic.

  • API Change: Anim Nodes now name their node properties without using the node GUID.

アニメーション アセット

  • Crash Fix: Calling undo after editing a curve no longer crashes.

  • Crash Fix: Deleting a Pose before base Pose no longer crashes.

  • Crash Fix: Removing a curve through an Animation Modifier no longer crashes.

  • Bug Fix: Loading cooked Animations in Unreal Editor no longer causes an ensure.

  • Bug Fix: Cooking with smart names on USkeletons is now deterministic.

  • Bug Fix: Montage Sections panel now scrolls when it gets too large.

  • Bug Fix: Right-click dragging to scroll on Anim Notify tracks now works correctly.

アニメーション ブループリント

  • Crash Fix: Doing a fast-path copy of FName values in FExposedValueHandler no longer crashes due to differing size of the type between compile and run time.Ensure that non-compatible types always skip the fast copy path.

  • Crash Fix: Moving or renaming an Anim Blueprint no longer crashes.

  • Bug Fix: Fix compilation crash after adding an animation blueprint interface with duplicate names

  • Bug Fix:Implemented several fixes for the RandomPlayer animation BP Node:

    • Fixed a problem where we would advance twice during the update loop if we both exceeded the loop count and blending had finished, resulting in a possible double play of the same animation in shuffle mode.

    • Related to the double-advance problem, changed the shuffle generation so that it's done after popping the last shuffle value, to hint to it directly which value was the last one to be used so that the permutations are non-contiguous.

    • Ignore empty play entries and entries with zero play chances in random mode.

    • Ensure we play each sequence fully, instead of just the portion from blend stop to end.This eliminates the "popping" effect when transitioning between animations.

  • Bug Fix: Derived classes of FAnimNode_StateMachine no longer fail to compile in Animation Blueprints.

  • Bug Fix: Changing the Widget Mode on a bone in the Anim Blueprint Editor no longer causes an infinite loop.

  • Bug Fix: State machine recorded weights are now correctly reported.

  • Bug Fix: Split pins now work correctly in Animation State Machine states.

  • Bug Fix: The Control Rig Anim Node ticking no longer ticks the sub tree multiple times.

  • Bug Fix: Control Rig now initializes correctly from Sequencer.

  • Bug Fix: There are no longer duplicate Hide Unrelated nodes in the Animation Blueprint Editor.

  • 新規: Pose リンクのための Reroute ノードが Pose アイコンを使用するよになりました。

  • 新規: ApplyMeshSpaceAdditive のアルファ サポートが拡張されました。ブーリアン値とカーブで制御されたアルファ クランプもサポートされます。

  • 新規: デバッグ中に Blend Space の現在のサンプルを表示するために Blend Space ノード デバッグ ウィジェットが追加されました。

  • API Change: The interpolating solver is available as a templated helper class, called TRBFInterpolator in RBF/RBFInterpolator.h.It can be used to smoothly interpolate any N-dimensional target value for any M-dimensional input values, assuming a suitable distance metric exists.

アニメーション ツール

  • Crash Fix: Deleting curve keys in Animation Curve Editor no longer causes a crash.

  • Crash Fix: Interacting with the Animation Insights transport controls when a session is tracing to an external application no longer crashes.

  • Crash Fix: Calling undo after adding an Anim Montage segment no longer crashes.

  • Bug Fix: PostUpdateAnimation is now called on linked instances if NeedsUpdate on the main instance returns false.

  • Bug Fix: Animation Curve Editor auto-zoom now works consistently.

  • Bug Fix: Renamed curves displaying now display the correct name when edited directly.

  • Bug Fix: Highlight of Loop button in Anim Editor is no longer triggered by Reverse button.

  • Bug Fix: Linked-instance asset players are no longer ticked twice when a post process graph is enabled.

  • Bug Fix: Undo/redo no longer closes Details panels for Anim Notifies

  • Bug Fix: Renaming curves in the Animation Timeline now marks the asset as dirty and can be undone/redone.

  • Bug Fix: Reverse playback of an Anim Montage now sets the play rate of the Anim Montage instance correctly.

  • Bug Fix: Sync marker selection has been improved. \

  • Bug Fix: Reported number of frames in the Montage Editor is now accurate.

  • Bug Fix: Anim Notifies can no longer be dragged outside of the notify area.

  • Bug Fix: Editing the section time of an Anim Montage no longer crashes.

  • Bug Fix: Anim Montage sections now refresh correctly when edited via the Details panel.

  • Bug Fix: Anim Sequence frames can now be added from the Curve Editor view.

  • Bug Fix: Anim timeline now allows access to times outside the Anim Sequence range.

  • Bug Fix:

    • Right-click dragging on an Anim Notify track to scroll no longer flickers.

    • DPI scaling is now correct when drag/dropping Anim Notifies.

  • 新規: Unreal Insights チャンネルのフィルタリング プラグインに "Trace Data Filtering" タブが付きました。これにより、個々の Trace Channel ステータスを設定したり、Preset やまとめて有効にすべきチャンネル グループを指定できるようになりました。

  • 新規: ControlRig Track を使ってシーケンサーのレイヤー化をサポートするために ControlRigLayerInstance が実装されました。

  • 新規: アニメーションのレイヤー化/微調整のためにシーケンスで使用する Additive Control Rig が実装されました。

  • 新規: シンプルなマルチ エフェクタ FABRIK リグ ユニットが追加されました。

インポート/エクスポート

  • Bug Fix: Bones metadata from FBX are now transferred to the Anim Sequence at import.

スケルタル メッシュ

  • Crash Fix: Calling USkinnedMeshComponent::SetSkeletalMesh() after destroying its ChildPoseComponent no longer crashes.

  • Bug Fix: The SetVertexColor engine test no longer fails when skin cache is enabled.

  • Bug Fix: The AlternativeSkinWeights engine test no longer fails when using skin cache mode.

  • 新規: スケルタルメッシュ セクションあたりで許可されるボーン インデックスの最高数が 255 から 65535 に増えました。

  • 新規: 頂点あたりのボーン影響最高度が 12 になりました。

  • 新規: 頂点あたりの変数影響に対するサポートが追加され、デフォルトで 8 以上のボーン影響度でメッシュに対して使用されます。

  • 新規: 元のタンジェント間でブレンドする場合に頂点カラーが係数として使用されるようになり、スケルタル メッシュをスキン キャッシュでレンダリングする時に再度レンダリングされるようになりました。

  • 新規: スケルタルメッシュ レンダリングの場合、頂点あたりのボーン影響度が無制限になるように Niagara のサポートを追加しました。

オーディオ

  • Crash Fix: Fixed a crash that occurred when attempting to set a delay line for a submix effect length beyond a statically allocated maximum length.

  • Crash Fix: No longer crashes when the maximum for audio sources is reached and stopping sources are enforced but not observed by spatialization/modulation plugins.

  • Crash Fix: Fixed a memory scribble/crash in the OSC plugin when passing empty strings as a payload in message members, or when sending messages larger than 1024 bytes.

  • Crash Fix: Fixed a rare crash due to a race condition when stream caching is enabled and stat audio streaming is turned on.

  • Crash Fix: Fixed a crash that occurred when FAudioCaptureAndroidStream::CloseStream was called on a stream that was already opened.

  • Crash Fix: Fixed a rare crash in the Google Resonance plugin due to a race condition.

  • Crash Fix: A PGO crash in NonRealtimeAudioRenderer has been fixed.

  • Crash Fix: If a USoundWave has the Is Ambisonics flag set to true but is not a four-channel file, this will no longer cause a crash.

  • Bug Fix: Removed a shadow variable that could cause XAudio2 to go silent if in an extreme performance-heavy state.

  • Bug Fix: Fixed a bug that occurred when importing audio files that caused playback of out-of-date audio or no audio play at all.

  • Bug Fix: The sound file importer no longer prompts for a template update if reimporting a sound, and no longer logs to the display if a sound is stopped due to reimport.

  • Bug Fix: Audio engine no longer goes silent when swapping from a null device.

  • Bug Fix: Fixed a hang when using -deterministicaudio during PIE (Play in Editor) shutdown.

  • Bug Fix: Fixed the SoundCue Undo feature that resulted in SoundWavePlayers being left in a state where sound wave data would stop loading in the editor.

  • Bug Fix: Overflow is now prevented in audio output by clamping before converting from float to PCM on a master output.

  • Bug Fix: Changed the default value of the audio underrun timeout value from 0 ms to 5 ms to be generally more defensive against platforms requesting audio at too high of a rate.

  • Bug Fix: Added an optional config to wait for audio to be rendered before falling back to submitting an underrun buffer.

  • Bug Fix: Fixed a race condition between USoundWave being garbage collected and the AudioMixerSourceBuffer destructor.

  • Bug Fix: Fixed a race condition with rapid stop() then start() calls on a procedural sound.

  • Bug Fix: Fixed an issue with the buffer read/write in audio renderer.

  • Bug Fix: Fixed iOS issues with audio playback and iOS notifications such as a user's Alarm Clock.

  • Bug Fix: Moved StopLowestPriority/StopLowestPriorityThenPreventNew to use culling logic instead of eviction so it would no longer require evaluation of priority via a call to the SoundBase parse.

  • Bug Fix: Fixed an issue with modulation output curves reordering incorrectly when modifying output curve values in the editor.

  • Bug Fix: The output curve is now hidden when the respective sound control modulation patch is bypassed.

  • Bug Fix: Various bug fixes were made for Time Synth.

  • Bug Fix: Incorporated Microsoft's replacement DLL files for XAudio2_9 to fix missing audio on Win8 when running in Win7 backward-compatibility mode.

  • Bug Fix: Memory usage of the VoIP system has been greatly optimized.

  • Bug Fix: Fixed a minor leak that would occur when multiple audio components tried to play the same USoundWaveProcedural.

  • Bug Fix: Fixed an issue in cook for some short assets when stream caching was enabled for iOS/Switch.

  • Bug Fix: Changes to the Compression Quality slider while stream caching is turned on no longer leads to aberrant playback behavior.

  • Bug Fix: Fixed an issue that would occur in priority sorting if an audio source was set to bAlwaysPlay and had an overall volume greater than 1.0f.

  • Bug Fix: Various issues that would occur if a server were cooked with stream caching enabled have been fixed.

  • Bug Fix: Made a fix for an audio hang at exit, such as during a PGO build, when using the NonRealtimeAudioRenderer.

  • Bug Fix: Fixed a regression issue in the SoloSound console command.

  • Bug Fix: There was an issue where the Preselect At Level Load field on the Random sound node would sometimes not actually cull child nodes.This has been fixed.

  • Bug Fix: Sounds failing to cull on priority by the concurrency system has been fixed.

  • Bug Fix: Fixed a rare COM initialization failure.

  • 新規: 動的ボリューム ミックス機能がサウンド クラスで使用できるようになりました。

  • Bug Fix: Fixed the stub issue for source descriptions in stat sounds when running the audio mixer.

  • 新規: オーディオ デバッグ用にデバッグ ボディ テキストのカラー オプションが追加されました。

  • 新規: アプリケーションをバックグラウンドで実行しながら IDE でデバッグをするための CVAR (au.DisableAppVolume) が追加されました。

  • Bug Fix: For Natural Sound attenuation falloff, when dBAttenuationAtMax is set to a value larger than the default minimum of -60 dB, it no longer causes looping sounds to virtualize even though volume doesn't go to 0.

  • 新規: 減衰形状の境界を越えた場合に、サウンドを減衰し続けるのか、サイレントになるのか、最高値を維持するのかを指定する機能が追加されました。

  • 新規: 失敗したのか、または値が新しいかを判断するため OSC API 内のメッセージ ペイロード 配列リクエストに bool return が追加されました。

  • 新規: オブジェクト パスと OSCAddress 間でコンバート処理するためのブループリント関数が追加されました。

  • 新規: OSC コンテナをインデックスで取り除く機能が追加されました。

  • 新規: コンテナ/メソッドの間においてワイルドカードを使用するためにパターン マッチングが修正されました。

  • 新規: オーディオ調整を制御するために、ゲームを再クックすることなくゲーム ミックスを設定するためのオーディオ調整プラグインを使って .ini ファイルのシリアライズが追加されました。

  • 新規: バスがまだアクティブでない場合、ミックスは動作する任意のバスを有効にすることができるようになりました。

  • 新規: SteamAudio への更新が統合されたことにより、動的ジオメトリへのサポートと数多くのバグ修正が行われました。

  • 新規: OSC クライアント/サーバー接続の操作およびテストのために、CVARs osc.servers、osc.server.connect、osc.server.connectById、osc.clients、osc.client.connect、osc.client.connectById が追加されました。

  • 新規: マスター サブミックスとマスター サブミックス エフェクトをユーザーが制御しやすくするために、すべてのマスター サブミックスにサブミックスのアセット化が追加されました。

  • 新規: 減衰設定で定義されたサブミックスの配列に対し、ユーザーが距離ベースでの送信を設定できるようになりました。

  • 新規: ブループリントからサブミックス エフェクト チェーンを修正する機能が追加されました (追加、除去、置換)。

  • 新規: Synthesis プラグインが新しいプロジェクトに対してデフォルトで有効になりました。

  • 新規: 音場形式用の拡張可能なインターフェース、オーディオ エンジンの外部となるオーディオ エンドポイントに加えて、音場サブミックス、エンドポイント サブミックス、音場エンドポイント サブミックスがエンジンに追加されました。

  • 新規: 減衰設定において距離に応じてサウンド優先度を減衰するための機能が追加されました。

  • 新規: FAudioDevice の寿命が UWorld から完全に切り離されました。つまり、コードでオーディオ エンジンのインスタンスを任意にスポーンし使用することができます。プロファイルのバインド、または任意のシステム用のオーディオのレンダリングに便利です。 \ Example usage: \ FAudioDeviceParams DeviceParams; \ DeviceParams.Scope = EAudioDeviceScope::Unique; \ MyAudioDeviceToRecord = AudioDeviceManager->RequestAudioDevice(DeviceParams);

  • 新規: 送信される VoIP オーディオに CVAR voice.MicNoiseGateThreshold で制御することができるノイズ ゲートが追加されました。サイレンスの探知とは別に制御することができるので便利です。

  • 新規: 現在送信されているマイクロフォンの大きさをプリントするための voice.debug.PrintAmplitude が追加されました。

  • 新規: VoIP システムで CPU の最適化を行いました。

  • 新規: Added voice.playback.ResyncThreshold が追加されました。これは、受け取る VoIP を他のシステムとうまく同期させるために任意のオーディオ レイテンシーをターゲットにするために使用できます。

  • 新規: ステレオ VoIP 入力/出力に対するサポートが追加されました。

  • 新規: ユーザーは Sound Class プロパティを使って減衰設定の距離減衰範囲をスケールできるようになりました。

  • 新規: ほとんどのプラットフォームでオーディオをストリーミングするためにデフォルト チャンク サイズをオーバーライドするオプションが追加されました。

  • 新規: オーディオ ストリーム キャッシュをフラッシュするためのコンソール コマンド au.streamcaching.FlushAudioCache が追加されました。統計オーディオ ストリーミング デバッグ ビューに対して各種更新も行われました。

  • 新規: au.streamcaching.ResizeAudioCacheTo コンソール実行を使って、実行時にストリーム キャッシュを安全にサイズ変更できるようになりました。

  • 新規:PS4 の場合は、AudioCapturePS4Voice は AudioCaptureSonyVoice に名前変更されています。

  • 新規: 明確にするために、Oculus Audio プラグインはログの前に「Oculus Audio」という単語を付けるようになりました。

  • 新規: 送信する VoIP オーディオの大きさとパンを調整するために voice.MicInputGain と voice.MicStereoBias CVARs が追加されました。

  • 新規: デフォルトで、VoIP はすべての他のオーディオ ソースに優先されるようになりました。エンジンの中で VoIP ソースに他のオーディオ ソースと同じ優先度を持たせるには、au.voip.AlwaysPlayVoiceComponent=0 に設定します。

  • 新規: FVoiceInterface::GetMicrophoneOutput() and FVoiceInterface::GetRemoteTalkerOutput() を使用して、送信するマイクロフォン オーディオと受信する VoIP オーディオの両方を VoIP エンジンからパッチする機能が追加されました。

  • 新規: 抜けていた Solo/Mute アイコンが追加されました。

  • 新規: AudioCaptureModuleName スペックが .ini setting に移され、関連するすべてのファイルが更新されました。

  • 新規: stat サウンド用の優先度ソート機能が追加されました。任意のフィールドでソートする場合、関連情報のみが表示されるようになりました。

  • Improvement:You can now disable the full path for a debug.

  • Bug Fix: The MaxDistance calculation is now correct for box attenuation.

  • Improvement: There is now a debug draw CVAR (au.3dVisualize.Listeners 1) to help debug if a listener is in or out of bounds for third person.Previously it was off by default with au.3dVisualize.Enabled 1).

  • Improvement: Upgraded XAudio2_7 to XAudio2_9 to improve audio device-swapping support on a PC, and for general stability improvements.

  • Improvement: Improved XAudio2Device logging; reduced log spam by adding a log-once behavior.

  • Deprecated: Moved fast reverb to default and removed the fast reverb asset.

  • 新規: デバッグ実行コンソール コマンドが更新され、廃止された "Audio" の代わりに "au" がプレフィックスとして新たに使用されるようになりました。

  • Deprecated: The "Audio" prefix has been replaced by the new "au" prefix.

オートメーション

  • Bug Fix: Fixed Gauntlet support for 32-bit Android builds.32-bit builds are considered but discarded if 64-bit versions are also present.

  • Bug Fix: Fixed issue where new/changed screenshots could not be approved in the editor on some platforms (Mac/Xbox/Switch).

  • 新規: すべてのテスト メソッドにおいて、テストの合否結果の表示にブールを返すようになりました。これらのメソッドで実行される新しいマクロが実装されました。false が返された場合、コードに「return false」を挿入すれば、現在のテストが直ちに終了します。これによりプログラマーは自動化テストをさらに速く書くことができます。

    • Core/Public/Misc/AutomationTest.h のコメントと例を参照してください。

  • Improvement: EngineTest runtime caps the number of threads used in System.Core.Misc.LockFree to reduce the run time on machines with many processors.

Blueprints

  • Bug Fix: Reused the default scene root node when creating a blueprint from an actor that has a root node named the same as default scene root (most likely an "empty actor")

  • Bug Fix: Removed a legacy "always compile on save" code path for LSBPs.

  • Bug Fix: Fixed an editor crash caused by leaking Blueprint context menu actions for new sublevel script actors.

  • Bug Fix: Removed an inconsistent tool tip from the interface list on BP editor.

  • Bug Fix: Now allowing an interface function graph to be converted in the case where the interface function has changed and should now be placed as an event.

  • Bug Fix: Fixed duplicated default scene root when creating a new blueprint subclass from an actor in the level.

  • Bug Fix: Deferred the serialization cost of unloaded Blueprint asset search data versioning info from editor startup.

  • Bug Fix: Fixed improper context menu options.Blueprints now conform to an interface when it refreshes to ensure you cannot make graphs with the same name as an interface.

  • Bug Fix: We now clear any existing reference to a class object on a new connection to the 'Class' input pin for the 'GetClassDefaults' node.

  • Bug Fix: Fixed the nativized Blueprint class code output debugging tool to include interface types.

  • Bug Fix: Reduced the overall time spent constructing search result nodes during a global Blueprint search.This should significantly improve the overall Find-In-Blueprint search speed in large-scale projects with lots of content.

  • Bug Fix: Optimized Blueprint compilation dependency checking when large numbers of blueprints are loaded.

  • Bug Fix: Fixed a Blueprint compilation error that would result when a custom event was bound to a server-only delegate.

  • Bug Fix: Changed blueprint editor tab history to work across the entire blueprint.

  • Bug Fix: Fixed a typo in code that's emitted for properties that reference explicitly-mapped 'noexport' struct fields in nativized Blueprint code.

  • Bug Fix: Fixed an invalid cast in nativized Blueprint code for converted user-defined enum fields.

  • Bug Fix: Fixed incorrect target platform names for some client/server configs that led to an ensure at cook time with Blueprint nativization enabled.

  • Bug Fix: Updated menu item labels for the native AttachToActor/AttachToComponent APIs to better tell them apart in the Blueprint editor context menu.

  • Bug Fix: Removed the clearing of keyboard focus when showing the details panel because it caused errors when undoing while a property edit still had keyboard focus.Clearing the keyboard focus during the process of the undo would cause another transaction to start, breaking the current undo transaction.

  • Bug Fix: Fixed an incorrect platform name being used in manifest lookup for some cook targets during Blueprint nativization.

  • Bug Fix: Fixed blind reinstancing of natively-constructed nested subobjects during class-owned sub-object initialization in nativized Blueprint C++ code.

  • Bug Fix: UCLASS metadata now supports a 'CustomThunkTemplates' class so that CustomThunk nodes can be nativized.

  • Bug Fix: Updates force deleting to also replace references on Actors with no owning World (previously these actors were just ignored).This ensures in the correct results of objects created in actor components such as Child Actor Component and in Sequencer.

  • Bug Fix: Updated blueprint graph to cancel ZoomToFit on nodes when panning with the middle mouse button.

  • Bug Fix: Self pins are now properly automatically converted to soft object references when required.

  • Bug Fix: Viewing a blueprint actor in the Blueprint Editor Viewport no longer changes a custom thumbnail zoom level when the zoom level is really close to the actor.

  • Bug Fix: Fixed asset registry discovery slowdown caused by logic that was trying to build up a cache of component type information.

  • Bug Fix: Fixed bug that would cause blueprint default values to be lost after a blueprint member variable was renamed

  • Bug Fix: CompileAllBlueprints commandlet now re-instances, ensuring that it does not later crash during garbage collection.

  • Bug Fix: Fixed deterministic cooking issue with multicast delegates on components bound in actor event graph.

  • Bug Fix: Fixed issue where blueprint compilation errors trigger a modal dialog in unattended mode.

  • Bug Fix: Fixed bug that would cause references in UI code to be updated to point at the child blueprint after compiling the child blueprint (or blueprint that resulted from duplication.)

  • Bug Fix: BlueprintDisplayName and BlueprintDescription now get cleared on the new copy when duplicating a Blueprint asset.

  • Bug Fix: Prevented deprecated async action factory methods from showing up in the BP context menu (unless the show deprecated functions setting is enabled.)

  • Bug Fix: Toggling the 'Expose Deprecated Functions' setting now takes effect immediately rather than requiring an editor restart.

  • Bug Fix: Fixed native struct-typed variables on spawned Blueprint instances not being initialized to the modified default value of any non-reflected field of the struct exposed for edit through a details customization.

  • Bug Fix: When checking for zombie members in a user defined struct, now ensure that container types get checked as well.

  • Bug Fix: Using "Assign selected Actor" in the context menu of an event node in a level blueprint to assign an event to an unrelated type of actor will no longer cause a crash.

  • Bug Fix: Fixed bug where subobjects of blueprint classes that were async loaded in the editor would stick around forever as phantom objects, which could cause crashes or corruption when changing maps.

  • Bug Fix: Ensured that the RF_DefaultSubobject flag now persists when copying an object in the level editor.

  • Bug Fix: Fixed the cause of NewClass != OldClass assertion failure when async loading blueprints in the editor.

  • Bug Fix: Fixed a crash in the blueprint debugger when hovering over container types inside a function call.

  • Bug Fix: Fixed non-functional collision in a nativized Actor Blueprint containing one or more components set up to use a custom collision profile.

  • Bug Fix: Fixed a bug introduced in 4.24 where soft object and class references on blueprint pins were not being properly tracked for cooking/reference viewer.Any assets that were saved in a 4.24 version of the engine and are missing references can be resaved to fix this.

  • Bug Fix: Changed duration of a notification toast in the Blueprint Editor to improve visibility.

  • Bug Fix: Added compilation validation for pin connections on tunnel nodes, allowing the proper display of error messages when changing input pin types on macro graphs.This additional validation may point out errors that were previously undiscovered in blueprints.

  • Bug Fix: Fixed graph pin default values being editable even when set to read-only/

  • Bug Fix: Fixed issue introduced in 4.24 where breakpoints or navigation could cause multiple tabs to be open at once for the same function.

  • Bug Fix: Updated Unreal Header Tool to properly support int64 variables that are marked with with ExposeOnSpawn metadata.

  • Bug Fix: UBlueprintGeneratedClass::GetAuthoritativeClass() returns itself as the authoritative class when it's cooked and therefore has no source UBlueprint.

  • 新規: Create イベント ノードで Select Function ドロップダウンがスケール可能になりました。

  • 新規: FIntPoint にブループリントのサポートが追加されました。

  • 新規: int64 から int32 への変換、および uint8 (byte) への変換が追加されました。

  • 新規: マルチプロセスを活用するためにサーチスレッドからブループリントのインデックスを切り離し、インデックス中の Find-In-Blueprints 体験が改善されました。

  • 新規: GetPlatformUserDir が Kismet 関数ライブラリに追加されました。

  • 新規: "Format Text" ノードにサポートの種類 (bool, string, name, , Object) が追加されました。

  • 新規: IsEmpty 関数が KismetStringLibrary の String 型に追加されました。

  • 新規: コンテナが Visible/Editable にマークされていれば、TArray、TSet、TMap 要素がSCS ツリーに表示されるようになりました。

  • 新規: "My Blueprint" ウィンドウで、ユーザーが関数と変数へのアクセス指定子の表示を選択できるようになりました。この機能を有効にするには、"My Blueprint" の表示オプションから "Show access specifiers in My Blueprint view" を選択します。

  • 新規: Runtime Virtual Texture アセットをブループリントへ公開しました。

  • 新規: コンストラクション スクリプトの再実行時に、コンポーネント インスタンスのデータの判定と適用が最適化されます。User Construction Script の AddComponent ノードを使うと、コンストラクション スクリプトの再実行が大幅に速くなります。

  • 新規: ブループリント用の可変長引数関数が実装されました。

    • 可変長引数関数は CustomThunk である必要があります。パラメータ リストの最後で任意の引数を受け取るために カスタム ブループリント ノードから使用することができます (メイン関数定義に属していないノードに追加されたピンは可変長ペイロードとなります)。

    • 可変長引数はチェックされるタイプではないので、要求数を伝えてくれる他の関数入力が必要になります。Nativize された関数の場合も、処理している引数のタイプを伝えてくれる他の関数入力が必要になります。。

  • 新規: 静的関数として TransformVector4 がブループリントに公開されました。これにより、ブループリントでベクターを 4x4 マトリックスで変換できるようになります。

  • 新規: ファイル システム演算子を公開するために BlueprintFileUtils プラグインが追加されました。

  • 新規: クラスリテラルを使用する場合、GetAllActorsOfClassWithTag の出力配列が入力クラスのタイプを使用するようになりました。

  • 新規: "make" ノードのコンテナ ピンと構造体をデフォルトで空にできるようになりました。none が指定されている場合、デフォルト値が自動生成されます。カスタム Ustructs の使用体験をより滑らかにし、コンパイラ エラーのあるノードが含まれることをデフォルトで防ぎます。

  • 新規: Blueprint diff ツールに水平ビュー モードが追加されました。

  • API Change: Removed unused variable UBlueprint::SearchGuid.

Core

  • Crash Fix: Fixed a crash when a sparse multicast delegate gets destroyed mid-execution.

  • Crash Fix: Fixed UAnimCurveCompressionCodec serialization crash when loading cooked content in the editor.

  • Crash Fix: Fixed a server crash when an asset file exists but can't be read.

  • Bug Fix: Fixed GDB pretty printers for FString, FName, FMinimalName, FNameEntry and TWeakObjectPtr.

  • Bug Fix: FString::Mid now gracefully handles negative start and negative count inputs. \ FString::RemoveAt can no longer leave an unterminated string.

  • Bug Fix: Ensure that unsaved and unused Blueprint classes are removed from the class hierarchy cache when deleted.

  • Bug Fix: Added the name of failing struct to the bad alignment assert message in UScriptStruct::InitializeStruct.

  • Bug Fix: Fixed FName number parsing from unterminated strings—copy the number to a temporary buffer until we have an overload of Atoi64 that takes the input length.The generic implementation of Atoi64 for TCHAR converts the input to ASCII then converts that to an integer.For unterminated strings, this could cause an access violation or convert an obscenely large input to ASCII.

  • Bug Fix: Fixed a race condition in FOutputDeviceRedirector that was corrupting logs.Calling EmptyBufferedLines() before serializing the buffered lines was allowing their memory (owned by FLogAllocator) to be reused by buffered lines from other threads before the main thread had consumed them.

  • Bug Fix: Added support for passing "abscrashreportclientlog" and "nullrhi" command line arguments to crash reporter monitor.

  • Bug Fix: Fixed ensure messages disappearing in editor log.Calls to PanicFlushLog should only happen on crashes, and not ensures.For ensures on any thread other than the main thread the editor log, which is not thread safe, the editor will lose these messages.On crashes we don't care about, like on non thread-safe output devices since we will not recover, we are only interested in the log file.

  • Bug Fix: Fixed incorrect sandboxed paths.When the argument is an already sandboxed path, ConvertToSandboxPath was adding another copy of the path to the end.We need to test if the path is inside the full sandboxed path before testing if it's inside the project directory (since the former is inside the latter).

  • Bug Fix: Fixed incorrect callstack in crash reports.When a ensure was reported before a crash, the callstack from the crash was added to the ensure stack frames.This is because the debug helper instance used to analyze the minidump is a singleton and not designed to be reused.Use the GetNew method to create a new instance of the helper, and delete the old one.

  • Bug Fix: Fixed TIndirectArray::operator=(TIndirectArray&&) The default version of the move assignment operator fails to free the pointed at data in the existing array before assigning, and thus the current contents were all leaked.

  • Bug Fix:Implemented a faster version of FRandomStream::GetFraction that doesn't require a type conversion to integer and back to float.This fix affects any use of FRandomStream::GetFraction, which will now return a different value for the same seed.

  • Bug Fix: VS2019 v16.5.0 compilation fixes.

  • Bug Fix: Changed logic in FArchiveFileReaderGeneric::InternalPrecache to avoid buffer shrinking.Previously, the buffer could potentially be shrunk to a very small size if you read data at the end of a file before seeking to the beginning and continuing to read other data.

  • Bug Fix: Fixed VS2019 compilation issues with int32 to bool implicit conversions.

  • Bug Fix: The engine will now skip Collecting Garbage during initial load because it's not safe since garbage collection token streams may not be assembled yet.

  • Bug Fix: When cooking by the book, the engine will now check if the specified target platforms are editor platforms and reject them if so.This is to prevent common mistakes when manually entering cook command lines that result in crashes when cooking.

  • Bug Fix: Fixed TFastReferenceCollector not setting the serializing object when processing TMap and TSet references that resulted in issues with finding all references.

  • Bug Fix: Changed how the engine detects trashed user structs—instead of looking at field lists, it's now going to be using dedicated functions.

  • Bug Fix: Fixed FAsyncPurge::TickGameThreadObjects not respecting Garbage Collector time limit that could lead to bigger hitches on the game thread (regression).

  • Bug Fix: Reduced stack size usage by LogTrace in debug builds.

  • Bug Fix: Change the cached World reference in ULandscapeInfoMap to a TWeakObjectPtr to safeguard against order or destruction issues on World unload.

  • Bug Fix: Fixed incorrect UObject archetype caching when the object's Outer is still pending load.

  • Bug Fix: Fixed a crash when accessing TSubclassOf default object when its class is null.

  • Bug Fix: Fixed Tickable objects sometimes failing to register when re-allocated with the same address as previously destroyed ones.

  • Bug Fix: Fixed application hanging in MapProperty serialization.

  • Bug Fix: FORCEINLINE functions that were made virtual in FAsyncLoadingThread.

  • 新規: _VTABLE define が削除され fvisibility-ms-compat が使用されます。これにより、デフォルトとしてタイプを視覚化しながら記号 (シンボル) を非表示にすることができます。タイプをエクスポート済と明示的に示す必要がなくなります。

  • 新規: TResizableCircularQueue が non-trivial 型とデフォルト コンストラクタしかもたない pod 型をサポートするようになりました。

  • 新規: 小さなキーと値に対して最適化された Robin Hood ハッシュ テーブルの実装が追加されました。

  • 新規: 最下位の単位の数に応じて float を比較する (絶対許容値を使用するのではなく) float/double 比較関数 (FMath::IsNearlyEqualByULP) が追加されました。

  • 新規: FMath::IsNaN および FMath::IsFinite の double 版が追加されました。

  • 新規: AddAnnotation 関数 (各種アノテーション クラスにおける) が移動して入ってくるアノテーション データを絶えずサポートするようになりました。

  • 新規: FString::Left, LeftChop, Right, RightChop, Mid, ConvertTabsToSpaces, TrimQuotes にインライン バージョンが追加されました。

  • 新規: FStringLeft, LeftChop, Right, RightChop, Mid に rvalue バージョンが追加されました。

  • Left, LeftChop, Right, RightChop, Mind に対する rvalue オーバーロードが追加されました。

  • TrimQuotes のインライン バージョンが追加されました。

  • 新規: FPaths::ProjectSavedDir が const FString& を返すようになりました。

  • 新規: CSV プロファイルが -csvDemoStopAfterProfile を完了した後でデモを停止する機能が追加されました。

  • 新規: エンジンのデフォルトを使用するのではなく、ゲームが FCsvProfiler::BeginFrame と EndFrame を呼び出すことができるように CSV_PROFILER_USE_CUSTOM_FRAME_TIMINGS プリプロセッサ マクロが追加されました。

  • 新規: 追加の開発メモリをクエリするために新しい API が追加されました。CSVProfiler においてメタデータとしてレポートされ、空きメモリー統計から dev メモリをデフォルトで差し引きます。

    • csv.AdjustPhysicalFreeForExtraDevMemory CVar で制御することができます。

  • 新規: FStringView と FStringBuilderBase を使用するr FPaths 用のアナログとして FPathViews が追加されました。これには、以下の実装とテストが含まれています。

    • GetCleanFilename

    • GetBaseFilename

    • GetBaseFilenameWithPath

    • GetPath

    • GetExtension

    • GetPathLeaf

    • Split

    • Append

  • 新規: 一時割当の使用を除外するために FFileHelper::BufferToString が最適化されました。Converting UTF-8 入力は出力と同じサイズのテンポラリ TCHAR バッファを使用していました。変換は直接ターゲット文字列への割り当てに行われます。

  • 新規: 作成およびポールするストリーマブルなハンドル数を減らすことでエンジンの起動時間が最適化されました。これは AssetManager::ChangeBundleStateForPrimaryAssets() をターゲットとしています。

  • 新規: CsvToSVG 3.31 に対して、一定数のピクセル間に現れる場合、重複イベントをグループ化することで以下を含むイベント スパムを減らしました。

    • カウントの表示

    • イベント行の頻度の削減

    • スパム発生時のアルファの削減

  • 新規: パフォーマンスが重大なコードに対して、実験的機能の Robin Hood ハッシュ テーブル コンテナが実装されました。

  • 新規: Windows 上でファイルの最後から先を読みとろうとすると、サイレントに切り捨てる代わりに再度 false が返されます。すべてのプラットフォームにおいて、これはエラーとみなされます。

  • 新規: -LLM を有効にして実行すると、これまで以上にメモリ アロケートを処理します。

  • 新規: 複数のスレッドから一度に pak ファイル データの読み込みを試みるとデッドロックになる可能性 (稀ですが) が修正されました。

  • 新規: メモリを前もってアロケートするよりもメソッドにバッファをアロケートさせた方が早いケースを強調するために、FBulkDataBase::GetCopy に警告が追加されました。

  • 新規: 文字列ビルトと文字列ビュー宣言用に StringFwd.h が追加および使用されました。前方宣言の代わりとなる StringFwd.h では、これらの型をより柔軟な方法で宣言することができます。

  • 新規: 他の実装への拡張を容易にするために FQueuedThreadPool インターフェースを整理しました。

  • 新規: 別のストリームから後に robo-merge されている認識されていない変更とうまくインタラクトしないため、TInterval::ToString() に対するプル リクエスト (CL10610795 ) を取り消しました。

  • 新規: 標準では VS2019 は #include のみをサポートするため #include に対する VS2019 コンパイルをが修正されました。

  • 新規: Added TryMalloc() が追加されました。メモリ アロケーション リクエストが実行されないと nullptr を返す場合があります。

  • 新規: refcount validation が条件付きとなりました (デバッグまたは slow check が有効の場合のみ)。

  • 新規: クッカ ベンチマークの mimalloc よりもパフォーマンスのよい mimalloc アロケータが https://github.com/microsoft/mimalloc から追加されました。詳細に至るまで動作確認をするまでは、引き続き TBB malloc がデフォルトとなります。

    • mimalloc を選択するには、コマンドラインで mimalloc を指定します。

  • 新規: コマンドラインを設定する前にフラグのワンタイム初期化が原因で正しく動作しなかった nothreading ロジックが修正されました。

  • 新規: SCOPE_MS_ACCUMULATOR が追加されました (画面上の統計を使ってロード時間の追跡に使用されるようになりましたが、普通の用途にも使用できます)。

  • 新規: AsyncPreload stuff がプラットフォームごとにオプトインに変更されました。

  • 新規: クラスタが有効で実際のクラスタがアロケートされている場合、ガーベジ コレクタはクラスタリング コードのみを実行するようになります。

  • 新規: 暫増的にハッシュを元に戻す場合、ログ出力を減らすためにガーベジ コレクションはイタレーションごとのログは取らなくなります。

  • 新規: UAsset の再保存後、resave コマンドレットが P4V でコミットできなくなる問題が修正されました。

  • 新規: イベント タグ 抑制が OutputDeviceMemory に追加されました。

    • 境界が交わる時のリングバッファ描画が修正されました。

  • 新規: データ重複を減らし API を簡素化するために、Garbage Collector Token Stream 生成コードを整理して、トークン デバッグ情報をトークン ストリームにマージしました。

  • 新規: -iostore を指定するバッチファイルを使うために -skipiostore UAT オプションが追加されました。

  • 新規: 提供されたオブジェクトのリストを参照するすべてのオブジェクトを見つける FReferencerFinder ヘルパ クラスが追加されました。FArchiveHasReferences と似ていますが、16 倍の速さです。

  • 新規: エディタ ビルドで pak ファイルを使用する場合、ファイル名拡張子の排除が無効になりました。

  • 新規: モジュール マネージャの追加検索パス設定を FModuleManager::Get() からプラットフォーム ファイルの作成後にエンジン起動ループから呼び出される別の関数にに移動します。これにより、pak ファイルを使用するエディタ ビルドが、データ駆動型プラットフォーム *.ini ファイルのスキャン開始前に pak を確実に実装できるようになります。

  • 新規: Pak プラットフォーム ファイルがエディタで pak ファイルの実装をサポートするように変更されました。

    • プラットフォーム レイヤーを作成すべきか判断するために、標準位置の pak ファイルを常に確認します。

    • 暗号解除キーを探すときに、空も含めてすべての GUID に対する登録リストを確認します。埋め込みキーのない非モノリシック ビルドでの pak 実装をサポートを望みます。

    • 暗号化されたインデックスを持つ pak ファイル用の暗号解除キーが存在する初期化時間チェックを取り除きます。エディタでの pak 実装なのでテスト条件はより複雑です。意義あるエラーがすぐに出ると思います。

  • 新規: エディタ ビルドでプラグイン マニフェストの使用やロードはしないでください。

  • 新規: キャッシュ化されたアーキタイプを再利用して、GetArchetypeFromRequiredInfoImpl が最適化されました。

  • 新規: IsGarbageCollectionWaiting がインライン化されました。プロファイルには表示されません。

  • 新規: Kismet の再インスタンス化コードは、再インスタンス化のパフォーマンス改善のために FArchiveHasReferences の代わりに FReferenceFinder を使用するようになります。

  • 新規: Garbage Collector Clustering が無効の場合、ガーベジ コレクターは不必要なチェックを避けるためにクラスタ処理のみを対象とするコードで実行されます。

    • クラスタリング全般が無効の場合、アクタ クラスタリングが無効になります。

    • 過去において可能だったようにアクタ クラスタリングをアセット クラスタリングとは独立して有効にできるように、クラスタリング汎用アセット (gc.AssetClustreringEnabled) 用に別の設定が追加されました。

  • 新規: 'obj overhead' コマンド レポートの中にグローバル UObject 配列メモリが含まれました。

  • 新規: UObject ハッシュ テーブルとマップの合計メモリ オーバーヘッドを出力するために 'obj overhead [-detailed]' コンソール コマンドが追加されました。

  • 新規: パフォーマンス ホットスポットを修正するための FORCEINLINE IsCollectingGarbage が追加されました。

  • Improvement: Extended FStringView to make it easier to use as a drop-in replacement for FString where appropriate The family of functions that return a slice of the view has been mirrored from FString, including the variants of Left, Mid, Right, and Trim.Like FString, Equals and Compare are now available and case-sensitive by default.View literals are now available, such as TEXT("Value"_SV).A string view is now treated as a contiguous container of characters which makes it compatible with many algorithms.

  • Improvement: Fixed up some code for C++17 compilation ( std::binary_function, std::unary_function and register keyword are all deprecated).

  • Improvement: Fixed missing vtable for FActorTickFunction.

  • Improvement: Garbage Collector optimization where class reference will now be completely ignored by the Garbage Collector for instances of native classes.Additionally, the Outer reference will not be processed for Packages. \

  • Deprecated: Deprecated fixed string builders for 4.25.Fixed string builders are difficult to use correctly in many cases, and when used correctly, offer no performance or memory improvement over an extendable string builder of the same size.

  • Deprecated: Removed FGenericPlatformMisc::HandleIOFailure since it's no longer in use.

  • Deprecated: Removed rollup support from DDC interface since it is no longer useful.

  • Deprecated: Added deprecation warnings when using the old (non-EDL) loading path in cooked builds and when cooking.Toggling EDL off in Project Settings will also result in a deprecation pop up in the editor.Deprecation warnings can be disabled by adding the following lines to DefaultEngine.ini in the project's config folder:

    • [/Script/Engine.StreamingSettings] s.DisableEDLDeprecationWarnings=True

  • Removed: Removed deprecated TWeakObjectPtr operator=.

  • Removed: Removed FAsyncUncompress.

  • Removed: Deleted deprecated functions from UnrealString.h

  • Removed: Removed FPaths functions marked as deprecated for 4.18.

  • Removed: Removed deprecated Histogram functionality.

  • Removed: Removed (miscellaneous) deprecated functions from:

    • App.h

    • AssertionMacros.h

    • MonitoredProcess.h

    • Serialization/CustomVersion.h

  • Removed: Removed deprecated functions from Compression(.cpp/.h).

  • Removed: Removed deprecated functions from OutputDevice(.cpp/.h)

  • Removed: Removed redundant UPackage::AddReferencedObjects function.

クッカ

  • Bug Fix: Fixed a crash in the cooker difference check caused by FArchiveProxy not forwarding on calls to SetSerializedProperty() and SetSerializedPropertyChain().

  • Bug Fix: Fix to make sure SandboxDirectory is always absolute.

  • Bug Fix: Fix to handle an invalid platform passed to the cook commandlet without a fatal assert.

  • Bug Fix: Fixed extra DDC puts when DDC logging is enabled on the command line.

    • Before the fix, enabling verbose DDC logging with -ini:Engine:[Core.Log]:LogDerivedDataCache=Verbose was causing extra idempotent puts because of checks for the DerivedDataCache commandlet that checked for "DerivedDataCache" anywhere in the command line.

    • Check for "Run=DerivedDataCache" avoids the problem.

  • Bug Fix: Fixed path prefix comparison when cooking with ErrorOnEngineContentUse.This is a fix for not being able to cook plugins content.

  • Bug Fix: Fixed iterative cooking on Windows when the project is outside of the root directory but on the same drive.

  • Bug Fix: Fixed the following cook performance and correctness issues in UPackage::Save.

    • Cook Performance:

      • Avoid performance cost of calling CreateTempFilename() for cases where we don't actually need a temp filename (cost involves a FileSize check with the file system).

      • Avoid the performance cost of calling FileSize() to get the saved size of packages and use the recorded buffer size instead (which gives uncompressed sizes).

    • Correctness:

      • When saving packages asynchronously, the UPackage::FileSize field was populated with the filesystem size of the package, but since that may not have been written yet by the async writer, it was often set to (uint64)-1.

      • When computing the MBWritten cook stat, make sure that bulk data is included in the accumulated total and that the stat isn't calculated incorrectly in DiffOnly modes.

      • Temporary files would be left lying around if the package was determined to have no exports or to have been completely nativized.

  • Bug Fix: If chunk size is too small, abort generation of streaming install manifest.

  • Bug Fix: To fix log spam (of about 1.8 GB in cook logs), changed ShaderPipelineCacheToolsCommandlet's log to verbose.

  • 新規: パッケージ保存中の書き出しスレッド上の MD5 計算を移動しました。

  • 新規: MaterialInstance を有効にして、キャッシュ化されたパラメータ値を格納し選択された範囲で再利用することで、FMaterial::CacheShaders への呼び出し中の 2 回の静的パラメータ値の再計算 (FMaterialResource::GetShaderMapId への呼び出しとFMaterialResource::GetStaticParameterSet への呼び出し ) を避けることで、クック時間が改善しました (現時点では FMaterial::CacheShaders への適用のみですが、他への適用が可能な場合もあります)。テストノートには以下が含まれます。

    • (非決定の問題を含むメタデータがなければ) この変更に関係なく、QAGame は同じ WindowsNoEditor クック データを生成しました。

    • クック データの有無に関係なく、Win64 では InfiltratorDemo は視覚的に正しく見えました。

  • 新規: 現在の CookByTheBookSession または CookOnTheFly リクエストでクック中のプラットフォームを記録するために SessionPlatforms が追加されました。これにより、エディタでのクック時に使用していないプラットフォームに対して必要のない AssetRegistries が生成されるパフォーマンス上の問題が修正されます。

  • 新規: クッカなどのコマンドレット用の IsEventDrivenLoaderEnabledInCookedBuilds が最適化されました。

  • 新規: 基本の API に複数のパラメータに対するルックアップを同時に実施するように変更することで、UMaterialInstance::GetStaticParameterValues のマテリアル関数でのイタレーションを削減しました。古いコード パスからのパラメータ値と表現 ID 出力が新しいコードのそれらと等しいかどうか確認する (check() を使用) デバッグ コードを使った完全クックによってテスト済みです。

  • 新規: サンドボックス ディレクトリに削除するファイルが多数あるときの時間短縮のために、他のクックを進めながらサンドボックス ディレクトリを非同期に削除します。

  • 新規: GetDepen GetDependentFunctions dentFunctions on UMaterialFunction の負荷が減りました。以下が変更点です。

    • 依存関数の計算時の一時的なアロケーションを減らすため、IterateDependentFunctions をメソッドそして導入します。

    • FunctionExpressions をイタレートし、それをキャストして依存関数を取得先にできるタイプか確認するために費やす時間を短縮するために、依存関数を置く関数表現式タイプのみを使って (PostLoad と PostEditChangeProperty で計算された) 一時的な UMaterialFunction::DependentFunctionExpressionCandidates フィールドを追加します。

  • 新規: 大容量データのクック時間を 4 分短縮するために、 FMaterialUpdateContext と RecacheMaterialInstanceUniformExpressions の負荷を減らしました。以下が変更点です。

    • FApp::CanEverRender が true の場合を除き、FMaterialUpdateContext は FGlobalComponentRecreateRenderStateContext インスタンスを作成しません。

    • FGlobalComponentRecreateRenderStateContext は FComponentRecreateRenderStateContext インスタンスを TIndirectArray ではなく TArray に格納します。これは個々のアロケーションとフリーが必要以上の数にならないようにするためです。

    • FGlobalComponentRecreateRenderStateContext は登録されていない、またはレンダーステートが作成されていないコンポーネントに対しては FComponentRecreateRenderStateContext インスタンスを作成しません。これらはデストラクタ内では役に立つ動作はしないため、コードの解析によりこれらのコンテキストの構築はアロケータに無意味に打撃を与えている (または Tarray を膨張させている) ことを示します。

    • FApp::CanEverRender() が false を返す場合、コードの静的解析イタレーション内での役に立つ動作を示さないため、FApp::CanEverRender() が false の場合、RecacheMaterialInstanceUniformExpressions は TObjectIterator の負荷を受けません。

  • 新規: FName::ToString の重要な呼び出し元が最適化されます。大きなタイトルのクック時間が約 30 秒短縮されます。

  • 新規: デバッグ コンテキストがキーをパラメータとして受け取る DDC リクエストに追加されました。既存の GetSynchronous、GetAsynchronous、Put 関数は DebugContext オーバーロードを優先して廃止されます。

  • 新規: FindTargetPlatform およびクック中の負荷が最も高い呼び出し元が最適化されました。大きなプロジェクトをクックするときの実時間が 42 秒短縮されます。

  • 新規: ShaderPipelineCacheToolsCommandlet が最適化されたことにより、大きなタイトル上でのビルド コマンドの実行時間が 90 パーセント短縮されました。この時間短縮は full、iterative、single でのパッケージ クックに影響します。

  • 新規: プロファイリングを改善するために、名前を付けられたイベントがパッケージ保存に追加されました。

  • 新規: 現在のステートに対するコンフィグ システムをクエリせずに、そのコンフィグ システムが書き出すグローバル crav 変数のみ使用するために IsEventDrivenLoaderEnabledInCookedBuilds() が最適化されました。

  • 新規: クッカーでは、マテリアルを更新するためにプリミティブ コンポーネントをトラバースしないでください (少しだけ速度が速くなります)。

  • Improvement: Major update which makes -DiffOnly cooks 20x faster to help find non-deterministic cooking issues.Testing on a large title showed a 99.6 percent reduction in the cost of FindAssetInPackage and a 95 percent reduction in the overall -DiffOnly cook time.

  • Improvement: Made the following API change:

    • A type that derives from FDerivedDataCacheInterface will need to change to the new API for GetSynchronous, GetAsynchronous, and Put that have a DebugContext parameter.

  • Improvement: Improved DDC error when no backends are available.

CsvCollate

  • Bug Fix: Fixed an out-by-one bug with -avg for CsvCollate 1.31.The stats were being divided by csvCount-1 instead of csvCount.

  • 新規: -searchpattern による検索パターンに対する CsvCollate サポートが追加されました。

    • ロギングを使って 1 つずつエラーを修正しました。

    • 再帰をオプションにするために-recurse 引数が追加されました。

    • ログのために CSV ファイルがリスト化されました。

  • 新規: CsvCollate 1.32- メタデータ フィルタリング サポートが追加されました。

    • -metadatafilter "key0=value0,key1=value1,..."

メモリ プロファイラ

  • Crash Fix: Fixed crash if UEngine::AddOnScreenDebugMessage was called in threads other than the Game thread.This fix secured the usage of UEngine::PriorityScreenMessages and UEngine::ScreenMessages.

  • Bug Fix: Fixed a bug occurring in scenarios where reporting ensures to the Crash Report Client would overrun a fixed size string buffer.This issue appeared after two ensures fired, since the dynamic string buffers lifetime was equal to the crash reporting thread, and only reset on initialization.

  • Bug Fix: Added back stats instrumentation of local Blueprints function calls.

  • Bug Fix: Fixed FName batch loading check (OldUsedSlots == UsedSlots) in EngineTest.

  • Bug Fix:Prevented use of Hidden enum entries as default values for UHT exposed functions.These enum entries aren't exposed to Blueprints and Python, so they were causing UI issues or script syntax errors.

  • Bug Fix: Crash report client doesn't need full access handle to runtime when monitoring.This behavior triggered anti-cheat warnings in some cases.Use a limited access flags instead.

  • Bug Fix: Made StaticFindObject handle "any package" search with specific package name supplied in object path, fixing the ambiguous search warning.

  • Bug Fix: Fixed issues with plugin stack traces not resolving correctly.Disabled on demand symbol loading due to an issue where modules that are not in the main binary directory would not have symbols loaded correctly.This manifested as "UnknownFunction" entries in the logged stack trace.External crash reports were not affected.

  • Bug Fix: Fixed unterminated number parsing for new FName constructors with fixed length.

  • Bug Fix: Made StaticFindObject handle nested subobjects when searching for any package without a package pointer.

  • Bug Fix: Fixed LevelStreaming when changing desired level between request and completion with a loaded level.Pending unload is never processed and the state machine stays indefinitely in the LoadedNotVisible state.

  • Bug Fix: Fixed file helper utilities not returning failure when closing/flushing fails.

  • Bug Fix: Fixed FMacPlatformProcess::GenerateApplicationPath to prevent searching applications anywhere on the machine (anything indexed by Spotlight) rather than just looking under the Engine directory (as specified by the function's documentation).

  • Bug Fix: Enable TStrongObjectPtr to be created during static initialization.

  • Bug Fix: Added static assert to TPointerIsConvertibleFromTo to stop it from being instantiated with incomplete types and giving wrong answers.

  • Bug Fix: Fixed error message in FMatrix::ErrorEnsure().

  • Bug Fix: To handle Presaves that cause a circular reference that loads the package being saved again, moved ResetLoaders after Presave.

  • Bug Fix: Fixed WriteTableAsJson to enable writing utf8 so that FillDataTableFromJSONFile and applications other than Unreal can recognize and parse the file type.

  • Bug Fix: Changed FConfigFile::UpdateSections to preserve relative location of modified sections in the ConfigFile.

  • Bug Fix: Fixed transient properties being written out during JSON object serialization.

  • Bug Fix: Fixed TArray and FString assignment ignoring previously reserved memory.

  • Bug Fix: Fixed PURE_VIRTUAL containing code with commas in it.

  • Bug Fix: Fixed WindowsPlatformFile not handling greater-than 32bit read and write sizes correctly.

  • Bug Fix: Improved argument type deduction for TLess and TGreater.

  • Bug Fix: Fixed various LLM scope counters, added some missing texture scopes, and removed the explicit RHIMisc scopes from uniform and structured buffers so the parent scope is used.This makes tracking down buffer memory much easier (and more correct), as the various calling scopes will inflate rather than a single large RHIMisc scope containing all uniform and structured buffer allocations.

  • Bug Fix: Added GetTypeHash() support to TWeakObjectPtr properties.

  • Bug Fix: Fixed StaticFindObject() search for any package with substring package. names

  • Bug Fix: Fixed FName construction to avoid stomping the stack for long names.

  • Bug Fix: Fixed CString::Strspn and Strcspn.

  • Bug Fix: Fixed value FGenericPlatformMemoryConstants::TotalPhysical, which wasn't being set on Windows.Before the fix, it was initialized to zero without being set.

  • Bug Fix: Use UsedPhysical memory stats in LLM captures for memory allocated like on mobile devices to provide more accurate data.

  • Bug fix:FLazyName handles literals with "_[number]" suffix and ASCII literals, which unintentionally created an eager FName and converted that to a FLazyName.

  • 新規: FCustomVersionContainer::GetRegistered を削除し、新しいスレッドセーフな API に置き換えました。以下の変更が含まれます。

  • 一般的なユースケース:

    • 単一の登録バージョンを取得する最も一般的なユースケースでは以下が変更されました。

      • 旧:CustomVersionContainer::GetRegistered().GetVersion(Guid);

      • 新規:FCurrentCustomVersions::Get(Guid).GetValue();

  • 上級向けのユースケース:

    • 複数のカスタム バージョンを比較するさらに上級向けのユースケースでは、バージョンをループしルックアップを行うのではなく新しいFCurrentCustomVersions::Compare を使います。

  • 新規: 範囲から重複を取り除くために、一意の Algo が追加されました。 (std::unique と似ています)。

  • 新規: サポートされているプラットフォームで TruncToFloat intrinsics が使用できるようになりました。PC、MAC、Linux で利用性を指定することができるように SSE と AVX の定義が追加されました。

    • SSE と AVX の定義は、cpuid を確認せずにコンパイルに使用可能と実行に使用可能の間を区別するために ALWAYS_HAS and MAYBE_HAS バリアントがあります。

  • 新規: シッピング ビルドでの不正な入力から保護するために既存の check() に加えて FName 長さ境界チェックが追加されました。

  • 新規: バージョニングされていない配列プロパティ ローディングが最適化されました。

  • 新規: 再帰的にサブアクタを調査するために GetActorBounds と GetComponentsBoundingBox にパラメータが追加されました。さらに、コンポーネントの配列を正しくビルドしなくても済むように、汎用の ForEachComponent ユーティリティ関数をアクタにして、GetComponent/GetActorBounds/GetComponentsBoundingBox/ ... のコードをマージしました。コンポーネントのリストを修正することは禁止されています (C++ range-based iterators など)。ユーザーは GetComponents を使ってローカル リストのコンポーネントを抽出してその後で変更することができます。

  • 新規: DrawCoordinatesSystem の別のバリアントが追加されました。

  • 新規: ハードウェアの I/O を最大限に活用するために常にバッファ サイズが 2 のべき乗にそろうように FArchiveFileReaderGeneric が修正されました。

  • 新規: フレームを持たない ue4stats ファイルをうまく処理できるようになりました。

  • 新規: さらに多くのコンパイラ バージョンで 'if constexpr' サポートが有効になりました。support on more compiler versions.

  • 新規: Type が完了していないとコンパイラ エラーを引きおこす UE_STATIC_ASSERT_COMPLETE_TYPE(Type) マクロが追加されました。

  • 新規: モニターモードで Crash Report Client を実行する時に bImplicit 送信設定変数に対する機能が追加されました。これにより、ユーザーとやりとりせずにゲームが自動的にクラッシュ レポートを送信し、完了するとネイティブな OS ダイアログが表示されます。

  • 新規: TArray/TArray を数字の配列ではなくバイト ストリームとしてエンコードするために FCborStructSerializerBackend (MessageBus/UdpMessaging で使用される) を最適化したことで、メッセージ サイズを 2 の倍数分短縮できました。

  • 新規: 異なる幅のヒープ アロケータ (TArray から TArray64 など) をもつ Tarray 間に移動構造が追加されました。

  • 新規: C++ 型の据え置き型静的文字列表現を作成する GetGeneratedTypeName() が追加されました。

  • 新規: FPrimaryAssetId FString コンストラクタを明示的にして、さらに新しい速い構造パスと StringBuilder << サポートが追加されました。

  • 新規: TSharedPtr::ToSharedRef、TWeakPtr::Pin、TSharedFromThis::AsShared に対して rvalue サポートが追加されました。

  • 新規: EDL を有効にした時のプロパティのシリアライズ中の必要のない circular dependency ロード ディファリング作業を取り除きました。

  • 新規: FInteractiveProcess の作業ディレクトリが公開されました。

  • 新規: FMonitoredProcess と FInteractiveProcess に ProcessHandle getter が追加されました。

  • 新規: Algo::ForEach が追加されました。

  • 新規: LoadFileToStringArray の述語バージョンが追加されました。コンテンツに基づいて行をフィルタ処理します。

  • 新規: 最終の仮想ディストラクタがすでにある場合、以下のクラスを最終としました。

    • TGraphTask

    • FD3D12StagingBuffer

    • FOpenGLGPUFence

    • FOpenGLStagingBuffer

    • FD3D11StagingBuffer

  • 新規: FArchiveState を FArchive から切り離し、基本 FArchive の全体にアクセスせずに FStructuredArchive からクエリできるようなりました。

  • 新規: PLATFORM_COMPILER_HAS_FOLD_EXPRESSIONS 機能チェック マクロが追加されました。

  • 新規: Added operator for TOptional の operator が追加されました。

  • 新規: 頻繁なアロケーションを避けるために、FStructuredArchiveFromArchive の pimple に対して固定サイズのインライン バッファを使用しました。

  • 新規: FName バッチ シリアライズを追加して IoStore チャンクが 16B にそろえました。バッチ シリアライズは新しい IoStore と AsyncLoading2 で使用されます。

  • 新規: プロパティ シリアライズの最適化がタグ付けされました。

  • 新規: TUniquePtr にステートフルなデリーター サポートが追加されました。さらに、ことなるデリーターを持つ TUniquePtr を受け取る TUniquePtr の代入演算子が修正されました。

  • 新規: MSVC と Clang の両方で動作する UE_ASSUME マクロが追加されました。

  • 新規: TCHAR* -> FString コンストラクション中にアロケートされる無駄なスラックが修正されました。

  • 新規: プリミティブ タイプ用に FStringView から LexFromString が実装されました。

  • 新規: MSVC と Clang で提供される特殊なコードを使うためにバイト スワップを最適化したことで、MSVC でのパフォーマンスが 6 倍向上しました。さらに、Clang は汎用の C++ コードを特殊なコードに最適化することも可能でした。

  • 新規: FString を入出力として要求しない UE::String::BytesToHex と UE::String::HexToBytes が追加されました。

  • 新規: ほとんどの名前は広くないので、最適化として FName::TryAppendAnsiString が追加されました。

  • 新規: 以下のエンジン init 最適化および新しい文字列変換パスが実装されました。

    • 追加:

      • コアとなる文字列変換パス

      • C 文字列を追加するときの無意味なテンポラリを避けるための FString::Append() および += 演算子オーバーロード

      • UTF32 <-> TCHAR 文字列変換マクロ

    • 最適化:

      • QuotedString parsing

      • Property parsing

      • PackageName

      • SoftObjectPath

  • 新規: 引数を等しく比較するために TEqualTo がバイナリとして追加されました。

  • 新規: 以下のページでは、

    • 文字列ビルダのビューなど文字の配列ビューに対して FString::ReplaceCharInline の代わりに Algo::Replace を使用することができます。

    • UE::String::ParseLines を使って、空ではない行をビュー内で見つけるために行の最後で文字列ビューを分割することができます。FString::ParseIntoArrayLines および FFileHelper::LoadFileToStringArray などの関数の置換が目的です。

    • UE::String::ParseTokens[Multiple] を使って、1 つ以上の単一文字または複数文字の区切りで文字列ビューを分割することができます。FString::ParseIntoArray の置換が目的です。

    • Algo::CompareByPredicate を拡張して、入力範囲を異なるタイプにし、ユニバーサル参照によってそれらを適用できます。

    • TArrayView と MakeArrayView を拡張して、配列ビューがイニシアライザ リストから作成できます。

  • 新規: FString 結合の繰り返しの代わりに使用するために StringBuilder を使いやすく拡張しました。新機能には以下が含まれます。

    • AddUninitialized

    • Appendf

    • Join Session (セッション参加):

    • JoinQuoted

    • RemoveSuffix

    • Reset

    • operator<< を使って Integers を文字列ビルダに書き込めるようになりました。

  • 新規: 文字列ビューと文字列ビルダ用に FSHAHash が拡張されました。

  • 新規: 文字列ビュー コンストラクタと文字列ビルダ append 演算子が FName に追加されました。

  • Improvement: This major improvement includes unversioned property serialization disabled by default, resulting in 2x faster loads and 6x more compact compared to tagged property serialization.The most important differences to tagged properties are the following :

    • Assumes code and data schema matches

    • Only used in unversioned (cooked) packages

    • Doesn't store field types nor converts values when field types change

    • Does't handle name or GUID redirects

    • Doesn't store memory-wise zero properties

    • It's based on property indices instead of property names/tags

    • The metadata is placed in a compact header instead of tags/metadata being interleaved with data

  • Improvement: Optimized iteration-heavy StreamableManager functions.

  • Improvement: Optimized FPackageName::GetShortFName.

  • Improvement: Optimized FPackageName::TryConvertFilenameToLongPackageName to save 13 seconds of wall time when cooking a large project.

  • Improvement: Added initial capacity for container allocators so containers can start with inline allocator capacity.Speeds up TBitArray, TMap and TSet construction and initial insertion.

Natvis

  • Bug Fix: Fixed TArrayView Natvis sometimes not working correctly.

  • 新規: 引用符なしですべての名前を常に表示するように FNameEntryId ビジュアライザが変更されました。

  • 新規: 非デバッグ ビルドで FStatMessage を視覚化するために FStatNameAndInfo ビジュアライザが追加されました。

PerfReportTool

  • Bug Fix: Fixed PerfReportTool issue when adding numeric and non-numeric metadata to summary metadata columns.When this happens, we just convert the column to strings instead of throwing an exception.

  • Bug Fix:Fixed collated/email display when there are missing values.Instead of displaying nothing for that entry, compute min/max/avg only for values that exist.

    • Added support for map overlay summaries

    • Added support for limiting decimal places for CSV graphs

    • Reduced report size by limiting decimal places for CsvToSVG graphs.

  • 新規: 2 つのイベント間の特定の統計を設定可能なカラムを使って視覚化するために boundedstatvalues サマリタイプが追加されました。

    • 各カラムには以下の式のいずれかを使って計算された統計値が表示されます。 sum, percentoverthreshold, percentunderthreshold, average または streamingstressmetric (後者は File I/O に使用)。

    • 共有サマリに対するサポートが追加されました (1 度の設定で複数レポートにおいて使用)。

    • snapToPeaks プロパティがグラフに追加されました。場合に応じて (スムーズ グラフにおいてなど) 無効にできます。

  • 新規: PerfReportTool で一括グラフ生成がサポートされるようになりました。これにより、以前のマルチプロセス メソッドと比べてパフォーマンスが 30% 改善し、CPU およびディスク使用が大幅に減りました。

    • レポート生成に関する決定論的問題が修正されました (テストケースは実行間で一致しました)。

    • -batchedgraphs で有効になります。

    • CsvToSVG に対してレスポンス ファイルによるバッチスレッドとマルチスレッドのサポートが追加されました。

  • 新規: PerfReportTool 4.01 の場合、一括グラフ生成はデフォルトで有効です。

    • -nobatchedgraphs で無効になります。

    • レポート生成は 33% 速くなり、CPU 全体を使用しなくなります。

Unreal Insights

チャンネル
  • 新規: イベントを名前の付いたグループに分類する「チャンネル」という新しい概念ができました。これにより、ユーザーは生成したトレース データ量を管理できます。チャンネルはデフォルトで無効です。ライブ セッション中での切り替えが可能になりました。

  • 新規:"Developer/TraceDataFilters" プラグインには Unreal Insights および Gameplay Insights でチャンネルを制御する UI が含まれています。

  • Improvement:Unified command line argument to control events, "-trace=channel1,channel2,...".This replaces the previous arguments.For example "-trace=cpu,frame,bookmark" enables cpu profiler events, frame markers and bookmarks.

Session Info
  • 新規: 新規の [Session Info (セッション情報)] タブには、分析中のトレース セッションに関する全般的な情報が表示されます。

  • 新規: 表示される情報:セッション名、URI、分析の状況、セッション期間、解析モジュール。

Store Browser Start Page
  • 新規: 別のプロセスでセッション分析が開始されるたびに、起動画面が表示されるようになりました。

  • 新規: 新規ライブ セッションに対するセッション分析を自動的に開始するための [Auto-start (自動開始)] 切り替えオプションを追加しました。また、プラットフォームやアプリケーション名でフィルタリングを設定することもできます (自動開始が有効なライブ トレース セッションの場合)。

  • Improvement:Changed Unreal Insights workflow to start in "Browser mode" (the old "Start Page").Trace session analysis is now started in a separate process ("Viewer mode"), for each session being analyzed.A single Browser window can be open at a time.

  • Improvement: Improved tooltip for traces in the Trace Sessions list.

  • Improvement: Renamed the "..." button to "Explore" (Explore the Trace Store Directory).

  • Removed: Removed Start/Stop recorder functionality.

Asset Loading Insights
  • Crash Fix:Fixed crash when selecting Object Type Aggregation Tab on second open of a trace session.

その他
  • Bug Fix:Fixed Timing Insights to have the layout persistent.

  • 新規: 「-OpenTraceFile=file.utrace」および「-OpenTraceId=id」コマンドライン パラメータを追加して、Unreal Insights が指定されたトレース ファイルまたは ID の分析を強制的に開始できるようにしました。この場合、Unreal Insights は直接「ビューア モード」で開始されます。

  • 新規:「-Store=address:port」コマンドライン (または「-StoreHost=address -StorePort=port」) を追加して、ブラウザと特定のトレース ストアを接続できるようにしました。

  • 新規: Unreal Insights で「デフォルト」のフェーズ プラグインをロードするようになりました。プライグインは次の場所にあります。

    • Animation/GameplayInsights

    • Developer/TraceDataFiltering

  • 新規:分析:書き込みロックを維持しながら、セッションからの読み取りを実装しました。再帰的なセッション読み取り / 編集の範囲と、複数の同時セッション リーダーに対するサポートを追加しました。

Networking Insights
  • Improvement: Changed the Networking Insights tabs to open automatically only if the trace has net events.

Networking - Packets view
  • Crash Fix: Fixed rare crash (trying to use an invalid ConnectionIndex).

  • Bug Fix: Fixed infinite loop if zooming in (vertically) too much.

  • Bug Fix:Fixed package selection being reset if selection is made too soon.

  • 新規:選択したパッケージ / パッケージの範囲に対する次のショートカット キーを追加しました。

    • 左 / 右 --> 前の / 次のパッケージを選択

    • Shift + 左 / 右 --> 選択範囲 (複数のパッケージ) を左 / 右側に拡大

    • Ctrl + Shift + 左 / 右 --> 選択範囲 (複数のパッケージ) を左 / 右側に縮小

  • 新規: (NetId および / または Event Type による) フィルターに一致するイベントを少なくとも 1 つ含むパケットが強調表示されるようになりました。フィルターに一致するイベントがないパケットは淡色表示されます。

ネットワーキング - パケット コンテンツ ビュー
  • 新規:パケット ブレークダウン ビジュアリゼーションに次のパケット検索 (Find Packet) オプションを追加しました。

    • P[Previous (前へ)] / [Next (次へ)] ボタン + [PacketIndex (パケット インデックス)] 編集ボックス

  • 新規:次のイベント検索 (Find Event) オプションを追加しました。

    • [First (最初)] / [Previous (前へ)] / [Next (次へ)] / [Last (最後)] ボタン --> (フィルタリングされた) イベント間を移動します。

    • [By NetId (ネット ID)] チェックボックス + [NetId] 編集ボックス --> NetId によるフィルタリングを有効にします。

    • [By Type (タイプ)] チェックボックス + [EventType (イベント タイプ)] 編集ボックス (読み取り専用) --> EventType によるフィルタリングを有効にします。EventType は、NetStats でダブルクリックするか、[Packet Content (パケット コンテンツ)] ビューにあるイベントをダブルクリックすることで設定できます。

    [Highlight (ハイライト)] チェックボックス --> [Packet Content] ビューで、フィルタリングされたイベントのみを強調表示します。それ以外のイベントは淡色表示されます。

  • Bug Fix: Fixed sorting of net stat groups (always by name).

ランタイム
  • Bug Fix: Fixed issue where scope IDs of zero could sometimes be traced out from dynamic scopes.

  • 新規: ロード時のプロファイリング インストルメンテーションを整理し、主に内部 EDL イベントの追跡と報告を削除しました。複数の非同期ローディング スレッドに対するサポートを追加しました。AsyncLoading スループット グラフを追加しました。

  • 新規:Unreal Insights へのネットワーク トラフィックのトレースを実装しました。これにより、新しい [Network Insights (ネットワーク インサイト)] タブで視覚化可能なゲーム ネットワーク トラフィックをすべてキャプチャできるようになります。

Timing Insights
Timing view
  • Crash Fix: Fixed a rare crash where a log message had a null category name.

  • Crash Fix:Fixed a rare crash when trying to display a timing event having no name (invalid timer).

  • Bug Fix: Fixed the vertical scrolling issue with track being discovered on the fly (for example, total vertical height of all scrollable tracks is now properly computed all the time).

  • Bug Fix: Fixed "auto snap to limits" for vertical scrolling to allow "any position inside view" when the total height of all tracks is less than the height of the view.

  • Bug Fix: Fixed the tooltips not showing the hovered timing event correctly in some situations (when a previous event has EndTime equal with StartTime of hovered event).

  • Improvement: Improved performance by using draw state caching for each track.

Graph tracks
  • Bug Fix: Fixed high-DPI issues with graph tracks.It fixes issues when Unreal Insights runs inside the UE4Editor.Support for high-DPI is still disabled in Unreal Insights standalone application.

  • Bug Fix:Fixed issues arising from tracks being zero-size when they 'scale-in' at first.

  • 新規:コンテキスト メニュー内で相関関係を明確にするために、各シリーズの隣に色付きの記号を追加しました。また、シリーズのリストをコンテキスト メニュー内でスクロールできるようになりました。

Timers view
  • Bug Fix: Fixed tooltips not appearing on Linux when the trace session is first opened.

  • 新規: 選択したタイマーに対するハイライト / フィルタリング モードを追加しました。タイミング ビューでタイミング イベントをダブルクリックするか、タイマー リスト内のタイマーをダブルクリックすると、同じタイプ (タイマー) のタイミング イベントがすべて強調表示されます。それ以外のタイミング イベントは淡色表示されます。タイミング ビューで空白のスペースをダブルクリックするか、タイマー リスト内で同じくフィルタリングされたタイマーをダブルクリックすると、フィルターがリセットされます。

  • 新規:Ctrl キーまたは Shift キーを押しながらルーラー トラックをスクラブすることで、タイム マーカー (ログ ビュー内のメッセージをクリックして設定するオレンジ色の垂直のライン) をスクラブできるようになりました。また、タイム マーカーに現在の時間表示に似た形式で時間が表示されるようになりました。

  • 新規: ショートカット キー (Ctrl + 左 / 右 / 上 / 下) または Shift + マウス ホイールを使って過度にスクロールしようとすると、タイミング ビューの横に警告を示す赤色のラインが表示されるようになりました。

  • 新規:選択した (ピン付けした) トラック名の前に「>」を追加しました。

  • 新規:フレーム タイミング トラック (ゲームおよびレンダリング フレーム用) を追加して、各フレームのフレーム インデックスと期間を GPU/CPU タイムラインと相互に関連付けできるようにしました。R キーをショートカット キーとして使用するか、[Tracks (トラック)] メニューを使用することで、2 つのトラックを同時に表示することができます。

  • Bug Fix: Fixed auto vertical zoom to allow bigger value ranges (was initially limited to around 10^6, now should be around 10^18 -- for a 100px height graph).

  • 新規:ヘッダの状態を切り替える機能をフレーム タイミング トラックに追加しました。これを展開すると、関連するトラックの各フレームの端に、全体のビューを遮るように垂直のマーカー ラインが表示されます。

  • Improvement:Improved navigation by using a pinned track for vertical position reference when scrolling or zooming.Ex.:Pinned track will remain at a stable vertical position relative to mouse pointer while panning.Also, the pinned track will remain at a fixed vertical position when scrolling horizontally using the scrollbar.

  • Bug Fix: Fixed Ctrl + Double Click in Timing view not keeping the selected timer visible in Timers view.Ctrl + Double Click action selects a new timing event (and the corresponding timer in the Timers list), but also selects the time range of the selected event.When time selection is updated the aggregation stats is re-computed and timers list is re-sorted, so the selected timer needs to be made visible again.

Counters view
  • Improvement:Changed double click on a counter to also turn on visibility of the Graph track when adding a graph series for the respective counter.

UnrealPak

  • 新規: 1 つの pak ファイル内に圧縮されているすべてのファイルを強制的に圧縮するためのオプション (-forcecompress) を UnrealPak に追加しました。このオプションでは、圧縮によってファイルのサイズがより大きくなる場合でも強制的に圧縮を行います。

  • 新規: メモリ フリージング ターゲット プラットフォーム レイアウトを (TargetPlatform から削除して) DataDrivenPlatformInfo に追加して、UnrealPak でこれを取得できるようにしました。ただし、インデックスのフリージングが無効な場合、UnrealPak ではこれが不要になります。

  • 新規: デルタ パッチングを使用するプラットフォームでのフラグメンテーションを削減するために、UnrealPak のセカンダリ オーダーを無効化できるようになりました。

Datasmith

  • Crash Fix: Fixed a crash when switching Variant Manager Variants during Standalone Game mode.

  • Crash Fix: Fix a crash when importing a VRED variants file with invalid transform variants data.

  • Crash Fix: Fixed several crash issues around the MDL Importer.

  • Bug Fix: Resolved many issues related to SubLayers when using the USD Stage window.

  • Bug Fix: Fixed SubLayers disappearing when reloading a stage with the USD Stage window

  • Bug Fix: Fixed translucent VRED materials not importing with Translucency Blend Mode override.

  • Bug Fix: Fixed object metadata not importing correctly from Cinema4D scenes.

  • Bug Fix: Fixed behavior of Variant Manager Enum property captures so that the widgets now behave similarly to the Details panel.

  • Bug Fix: Fixed imported animations ignoring source framerate when importing VRED and DeltaGen FBX files.

  • Bug Fix: Fixed an issue where the string shown when dragging an editor Actor onto a Variant Manager Variant.

  • Bug Fix: Fixed animations imported from DeltaGen FBX files behaving incorrectly when multiple animations per Actor are present on the same timeline.

  • Bug Fix: Fixed some Cinema4D files not being imported completely due to allocation issues.

  • Bug Fix: Fixed missing objects and scene hierarchy when importing some Cinema4D scenes.

  • Bug Fix: Fixed an issue where the wrong transformation was applied on some parts.These parts have a transform with a pitch component of +/-90 deg (Rotation around the right axis (around Y axis)).During the import process, a lot of conversions of the transforms are done:World transform to Local transform to World transform and these repeated conversions generate numerical errors.A fix is now in place to avoid this problem.

  • Bug Fix: Fixed additional internal Cinema4D import options being exposed to Blueprint and Python scripting.

  • Bug Fix: Fixed Actors with zero scale being discarded when importing Cinema4D scenes.

  • Bug Fix: Fixed materials properties not being captured when enabling auto-expose on the Variant Manager.Fix additional Actors being captured when dragging Actors to the level with auto-expose enabled.

  • 新規: バリアント アセットの IsActive 関数へのブループリントのランタイム アクセスを可能にしました。

  • Bug Fix: Fixed animations not resetting properly when reloading the USD stage from the USD Stage window.

  • Bug Fix: Fixed light/fog color property captures in the Variant Manager not correctly detecting when they differed from the current values.

  • Bug Fix: Resolved an issue with Variant Manager Actor selection clearing when selecting through the editor Actor's components on the Details panel.

  • Bug Fix: Fixed objects not referenced by any IFC project being ignored importing IFC files.

  • Bug Fix: Fixed extra geometry being imported from Cinema4D scenes with Connectors and Atom Arrays.

  • Bug Fix: Fixed texture tags not being propagated from parent Actors when importing Cinema4D scenes with Datasmith.

  • Bug Fix: Resolved incorrect transform when importing VRED or DeltaGen FBX scenes with Actors that have 90 degree rotations on the Y axis.

  • Bug Fix: Applied fixes for materials being imported from Alias Wire files.

  • Bug Fix: Fixed the reimport of GLTF scenes not recognizing asset changes in some circumstances.

  • Bug Fix: Fixed errors when using the Construct Object from Class node with some Variant Manager classes on Editor Utility Blueprints.

  • Bug Fix: Fixes for nested SwitchActors overriding each other's effects.

  • Bug Fix: Fixed DeltaGen SwitchVariants targeting the wrong objects on imported scenes in some circumstances.

  • Bug Fix: Fixed warnings when importing IFC scenes without lightmap generation.

  • Bug Fix: Fixed incorrect SpecularGlossiness to MetalRoughness conversion when importing GLTF files.Also fixes all textures being imported as sRGB mode.

  • Bug Fix: Fixed primitives not animating after their visibility was toggled from the USD Stage window.

  • Bug Fix: Fixed some shader compilation errors in the MDL Importer.

  • Bug Fix: Fixed an issue about duplicates in scene hierarchy from a Revit Datasmith export.

  • Bug Fix: Fixed mesh collapsing mechanism incorporating prims that were invisible, when using the USD Stage window.

  • Bug Fix: Fixed an issue with Rhino import for UV orientation and UV mapping transform.

  • Bug Fix: Fixed reimport of Datasmith materials.

  • Bug Fix: Fixed incorrect location of spawned Actors using Spawn Actors At Location operation.

  • Bug Fix: Fixed an issue with the glTF Importer for importing materials with an ambient occlusion map.

  • Bug Fix: Fixed an issue with the AxF Importer for the import of materials with a period (".") in their filenames.We now provide better error/warning messages.

  • Bug Fix: Fixed rounding errors on LevelSequence section sizes for animations created with the USD Stage window.

  • Bug Fix: Fixed wrong normals orientation on wall entities exported from Revit Datasmith.

  • Bug Fix: Fixed illegal characters in texture name don't survive datasmith export.

  • Bug Fix: Fixed an issuer where Dataprep Merge and Proxy Mesh Operators leave empty mesh Actors in the hierarchy.

  • Bug Fix: Fixed an issue where importing a new LOD on a StaticMesh asset imported with Datasmith would prevent that asset from being reimported.

  • Bug Fix: Fixed an issue during a DatasmithScene reimport where the parent material of a material instance would change and cause incorrect results.

  • Bug Fix: Fixed a bug where reimporting a Datasmith scene with different import options would not have any effect on the imported asset.

  • Bug Fix: Fix importing of linearly-interpolated animations from Cinema 4D scenes.

  • Bug Fix: Fix Relative Location, Rotation and Scale properties not being captured by the auto-expose feature of the Variant Manager when the Actor is manipulated via the viewport handles, in some situations.

  • Bug Fix: Fixed an issue during a DatasmithScene reimport where the user's changes would not be reapplied properly to the lights in the scene after the reimport.

  • Bug Fix: Fixed some situations producing empty dummy rows on the USD Stage window primitive tree view.

  • Bug Fix: Fixed imported DeltaGen materials being shared when they have different AO textures.

  • Bug Fix: Fix incorrect camera transform correction when opening z-up USD stages with the USD Stage window.

  • Bug Fix: Fixed an issue with Rhino that resulted in incorrect use of mapping channel id.

  • Bug Fix: Fixed missing export timing information in datasmith files exported from revit.

  • Bug Fix: Fixed an issue with glTF that resulted in geometry normals imported when degenerate triangles present.

  • 新規: バリアント アセットの IsActive 関数へのブループリントのランタイム アクセスを可能にしました。

  • 新規: DatasmithCore モジュールをランタイムに使用できるようになりました。

  • 新規: DeltaGen FBX ファイルからのアニメーションのインポート時に、カーブ補間の「Smooth」、「EaseIn」、「EaseOut」の各モードをサポートするようになりました。

  • 新規: IFC シーンのインポート時に、インポートされるスタティック メッシュ アセットの名前にメッシュ ラベルを使用します。

  • 新規: Variant Manager のプロパティ キャプチャの行を並べ替えることができるようになりました。

  • 新規: Variant Manager のアクタ バインディングの選択内容が、エディタのアクタの選択内容と同期されるようになりました。

  • 新規: Cinema4D シーンのインポート時に、同一のスタティック メッシュを再使用するようになりました。

  • 新規: インポートされた Datasmith テクスチャ要素向けに sRGB フラグ コントロールを追加しました。

  • 新規: Variant Manager でアクタを既存のアクタ バインディングに再バインドできるようになりました。

  • 新規: [USD Stage (USD ステージ)] ウィンドウでインポートされたプリミティブの USD の目的をロードできるようになりました。また、目的の表示を迅速に切り替えることもできます。

  • 新規: [USD Stage] ウィンドウを介して USD ステージを開いたときに、ロードおよび表示する目的とペイロード ビヘイビアを制御するためのオプションを追加しました。

  • 新規: Variant Manager のキャプチャしたカラーと線形カラーのプロパティ用にカラー ピッカー ウィジェットを追加しました。

  • 新規: 予備ファイルには、シーンのファイル名と完全に一致する場合に、VRED および DeltaGen シーンの [Import Options (インポート オプション)] ダイアログでのみオートコンプリートが適用されます。

  • 新規: VariantManager FunctionCaller で Variant、VariantSet、LevelVariantSets アセットへのアクセスが提供されるようになりました。

  • 新規: Variant Manager で CineCamera プロパティをキャプチャするためのサポートを追加しました。

  • 新規: アクタのバインディングとプロパティ キャプチャを追加するためのボタンを、Variant Manager のウィンドウ上部にさらに追加しました。

  • 新規: ジオメトリ ツールで再使用するために、CAD パッチをスタティック メッシュ ポリゴン グループに保存します。

  • 新規: FBX ファイルからの DeltaGen アニメーションのインポート時におけるアニメーションとトラックの遅延に対するサポートを追加しました。

  • 新規: [USD Stage] ウィンドウと Python スクリプト間で、共通の USD ステージ キャッシュが共有されるようになりました。

  • 新規: DeltaGen FBX ファイルからインポートする Shininess テクスチャをサポートするようになりました。

  • 新規: シーケンスおよびサブシーケンス トラックを使用することで、[USD Stage] ウィンドウを使ってインポートする際に、SubLayer アニメーションのオフセットとスケールを USD ステージから制御できるようになりました。

  • 新規: [USD Stage] ウィンドウに、プリミティブ Kind と Purpose を編集するためのコンボ ボックスを追加しました。

  • 新規: USD Importer. モジュールを使用する際の、USD SDK からのすべてのエラーと警告のロギングおよび表示が向上しました。

  • 新規: インポート対象の Rhino サブオブジェクト マテリアルに対するサポートを追加しました。

  • 新規: インポート対象の Rhino 押し出しレンダラ メッシュに対するサポートを追加しました。

  • 新規: [USD Stage] ウィンドウの使用時に、ほとんどのアクションのアンドゥとリドゥをサポートするようになりました。

  • 新規: PLMXML インポータを追加しました。

  • 新規: ジオメトリ bbox center に設定された Rhino ピボットに対するサポートを追加しました。

  • 新規: Datasmith でインポートされるサブコンポーネントの誤った名前を修正しました。

  • 新規: Dataprep (データ準備) 操作の「Spawn Actors At Location (特定の場所でアクタをスポーン)」を更新して、ブループリント ベースのアクタをサポートするようになりました。

  • 新規: Revit の Structural Steel Connection (構造用鋼接続) をエクスポートするためのオプションをサポートするようになりました。

  • 新規: マルチコア CPU でのインポートを高速化するために、フォルダ インポートでマルチプロセス インポートを使用するオプションを Dataprep に追加しました。

  • 新規: Revit ビューを一括エクスポートできるようになりました。

  • 新規: Dataprep 用にレイヤーによるフィルタリングを実装しました。

  • 新規: エンティティの適切なピボット位置を Revit でエクスポートできるようになりました。

  • 新規: Revit.DB.FamiliyInstance.Mirrored/Handflipped/Facefliiped をタグとしてエクスポートします。

  • 新規: Revit PBR マテリアルのエクスポートに対するサポートを追加しました。

  • 新規: Datasmith シーンを設定 / 入力するために TranslateScene メソッドを追加しました。

  • 新規: Dataprep のアクタ / コンポーネントにタグを追加する操作を実装しました。

  • 新規: 三角ポリゴン / 頂点の数に基づいてアクタ用のフィルターを実装するオプションを Dataprep に追加しました。

  • 新規: メタデータをアセット / アクタ / コンポーネントに追加するための操作を実装するオプションをデータ準備に追加しました。

  • 新規:Rhino モデルからポイントをインポートするためのサポートを追加しました。

  • 新規: Rhino にエンティティ タグを追加しました。

  • 新規: Dataprep に「Randomize Transform (ランダムなトランスフォーム)」操作を実装しました。

  • 新規: Dataprep に統合操作を実装しました。

  • 新規: Linux の MDL Importer に対するサポートを追加しました。

  • 新規: インポート時に Datasmith ですべてのパラメトリック サーフェスをテッセレーションするか、Rhino で作成されて Rhino シーンに保存されている三角ポリゴン メッシュを再使用するかを選択できるオプションを、Rhino のインポート機能に追加しました。

  • 新規: レベル エディタのコンテンツ ブラウザとの一貫性を高めるために、アセット プレビュー ウィジェットを修正しました。

  • 新規: シーン アウトライナーに対してアクタを表示 / 非表示する機能を Dataprep Editor (データ準備エディタ) に追加しました。

  • 新規: Pipe/Duct Insulation and Lining を正しい階層でエクスポートできるようになりました。

  • Improvement: We redid how Variant thumbnails are stored in the Variant Manager allowing setting thumbnails from file and fetching. thumbnails via Blueprint at runtime.Also fixes bugs with thumbnails sporadically disappearing.

  • Improvement: Improved Rhino import to avoid cracks in the mesh.

  • Improvement: Improved performance of datasmith CAD scene save/reload.

  • Improvement: Improved performance of some Datasmith reimport.

  • Deprecated: Previous versions of VRED and DeltaGen FBX importers have had their Blueprints cleaned up.To upgrade, scenes that used those Blueprints need to be imported again, or those old Blueprints need to be copied over from a previous Unreal Engine version.

  • API Change: The python import API for Datasmith now reflects the internal processing.To now access the scene representation, you can call "translate_scene" method on the scene, and the workflow looks like this:

    • call construct_datasmith_scene_from_file()

    • Edit options...

    • call translate_scene()

    • Edit scene...

    • call import_scene()

  • API Change: The DatasmithCore module has been moved from "Engine\Source\Developer\Datasmith\DatasmithCore" to "Engine\Source\Runtime\Datasmith\DatasmithCore".

DevTools

AutomationTool

  • Bug Fix: AutomationTool now looks for the IsBuildMachine environment variable set to 1 to set an implicit -buildmachine argument, rather than inferring it from uebp_LOCAL_ROOT being set.The uebp_LOCAL_ROOT variable is set at runtime, which was causing the IsBuildMachine flag to be set incorrectly for child instances.

  • 新規: AutomationTool スクリプトに対するサポートを追加し、外部プロジェクトを使用する際やゲーム プロジェクトにおいて、それぞれのプロジェクト ディレクトリ内にバイナリを出力できるようにしました。「*.Automation.csproj」ファイルのコンパイル時に $(EngineDir) プロパティが適切なエンジン ディレクトリに設定され、プロジェクトで正しい位置へのアセンブリ参照を解決できるようになりました。

  • 新規: UAT の ini キー ストリッピングをコンフィグ設定で駆動するようリファクタリングしました。プロジェクトのパッケージ設定に公開されます。また、ステージング時にストリッピングの対象となる一連のコンフィグ セクションを設定する機能も追加しました。

  • Improvement: Improved startup time when running the BuildCookRun command by lazily constructing metadata for every project in the branch.

BuildGraph

  • 新規: インストールしたエンジンを、VS2017 ではなく VS2019 でビルドするオプションを追加しました。

    • -set:VS2019=true

UnrealBuildTool

  • Crash Fix: Fixed UnrealBuildTool crashing (rare) on launch.

  • Bug Fix: Fixed issues where overriding the Visual Studio version from the command-line would not be used in targets, resulting in errors when an option like setting the compiler version was also used.Some command-line arguments are now passed to target creation (specifically, Visual Studio version).Also fixed so that HololensTarget is actually getting configured from setting sources, including command-line and BuildConfiguration.xml which we added attributes to match how Windows targets can be configured.

  • Bug Fix: Fixed Rider projects failing to generate when a program was defined in the game projects folder—this is similar to how VS project generation works.

  • Bug Fix: Added the engine version as a dependency for checking that the module rules assembly was up to date, fixing issues where a new UBT version can attempt to use an old version of the modules rules assembly.

  • Bug Fix: Fixed issue with installed projects trying to use VSCode and getting incorrect IntelliSense for engine source code.

  • Bug Fix: Added detection of all .NET Framework versions, throwing BuildException if none are found.

  • Bug Fix: Fixed issue in UBT *.ini parsing not combining multiple escaped newlines into a single line.

  • Bug Fix: Fixed log file being written to the Engine directory (even in installed builds).The log is now written to AppData/Local on Windows.

  • Bug Fix: PVS Studio intermediates are now stored in a separate directory to avoid cloberring intermediates for regular builds.

  • Bug Fix: The makefile is now invalidated if resource files or other leaf prerequisites are removed.

  • Bug Fix: Read-only files are now removed when cleaning a target.

  • Bug Fix: Any targets that can't be built on the current host platform are ignored when generating Intellisense data for project files.

  • Bug Fix: Prevent writing compiled assemblies to installed engine directory.Write them to the AppData folder instead.

  • Bug Fix:The C++ standard version is now propagated to the generated project files in order to use the correct environment for intellisense.

  • Bug Fix: Fixed missing UAT/UBT log output on Mac.Standard macros set through the DefineConstants property (for example, "TRACE") were being overwritten by MonoCS, causing TraceLog() function calls to be compiled out.

  • Bug Fix: - Removed extra Engine directory under the UE4 project above the Platform extension directory.

  • 新規: UnrealBuildTool コンフィグに Thread_UseAllCpuGroups を追加して、UBT によって両方の CPU グループをハイコア システム (64-core ThreadRippers など) で使用できるようになりました。

  • 新規: ソリューションとプロジェクトのリロード回数を減らすために、Visual Studio のソリューション ファイルとプロジェクト ファイルが、必要な場合にのみ UnrealBuildTool によって生成されるようになりました。

  • 新規: 不一致の中括弧や条件付きプリプロセッサ マクロ ブロックに対する IncludeTool エラー出力を改善しました。

  • 新規: プラグインをターゲットごとには有効にせずに、そのリストを作成するオプションを追加しました。

  • 新規: 生成したプロジェクト ファイルに含まれる一連のターゲット コンフィギュレーションを BuildConfiguration.xml で構成できるようになりました。

    • ProjectFileGenerator/Configurations

  • 新規: Visual Studio 2019 が Windows でのデフォルトのコンパイラおよび IDE になりました。

  • 新規: UBT をデバッグ コンフィギュレーションで強制的にビルドするための BuildConfiguration 設定を追加しました。

    • VCProjectFileGenerator/bBuildUBTInDebug

  • 新規: 単一ファイルのコンパイルが、生成した「*.cpp」ファイルと正しく機能するようになりました。

  • 新規: プロジェクト ファイルの生成時に、JetBrains Rider を IDE としてエディタで使用できるようになりました。

  • 新規: 最新のエンジン モジュールではない場合、エディタの起動時に、UBT によるビルドが原因の共有違反エラーではなく、明示的なエラーが発生します。

  • 新規: Windows で出力パスが MAX_PATH より長くなるかどうかを調べるための明示的なチェックを追加しました。

  • 新規: PVS ツールチェーンのさまざまな分析モードに対するサポートを追加しました。デフォルトは全般的な分析ですが、TargetRules.WindowsPlatform.PVS.ModeFlags を設定するか、TargetRules.WindowsPlatform.PVS.UseApplicationSettings を「true」に設定して PVS コンフィグ ファイルから読み取るようにすることで、その他のオプションに設定することもできます。

  • 新規: Unreal Engine ルート ディレクトリの下の中間パスが 200 文字より長い場合は警告が出力されるようになり、これよって長い基本ディレクトリからエンジンを実行した場合に発生する MAX_PATH 問題をトラップします。

  • Deprecated: Generating project files by passing -2017 or -2019 is discouraged—this is due to the lack of visibility this provides to other engine tools that generate project files.

UnrealGameSync

  • Bug Fix: Fixed a problem with auto-update not working correctly if the application is run directly (such as via a pinned start menu icon).

  • Bug Fix: The editor is built with the selected project file even when running a content only project.This ensures that any non-default plugins are enabled.

  • Bug Fix: The latest checked-in version of the UGS config file is now used to determine sync filter and stream settings, rather than the local version.

  • 新規: パラレル同期に対するサポートを追加しました。UGS では同期する複数のスレッドを内部でスポーンして、これらの間で同期コマンドを均一に分散することを試みるようになりました。デフォルトでは 2 つのスレッドを使用しますが、この値は [Options (オプション)] > [Application Settings (アプリケーション設定)] メニューから変更できます。

  • Bug Fix: Fixed syncing of individual changes ignoring selected sync filters.

  • 新規: プロジェクト コンフィグ ファイル内のカスタム同期カテゴリ エントリで「Enable=false」とパラメータを設定することで、デフォルトで同期カテゴリを無効に設定できるようになりました。

  • 新規: 最近使用したプロジェクトのリストに最大 10 件のエントリが表示されるようになりました。

  • 新規: 各プロジェクト タブは、そのブランチのエディタ フレームに設定されている色合いと一致する色で表示されるようになりました。

UnrealHeaderTool

  • Bug Fix: Exposed the new 'UncookedOnly' UnrealBuildTool module type to UnrealHeaderTool and added 'PKG_UncookedOnly' as the corresponding package flag.

  • Bug Fix: Fixed skipping over PURE_VIRTUAL macros in UnrealHeaderTool.

  • 新規: UnrealHeaderTool のエラー報告をサポートするために、Windows 向けに Clang でビルドする際の例外サポートを有効にしました。

  • 新規: AllowPrivateAccess メタデータ タグで「= true」に設定する要件を取り除きました。

  • Improvement: UnrealHeaderTool no longer exports Z_Construct_UFunction declarations.

UnrealVS

  • Bug Fix: SingleFileCompile mode now works when compiling with PVS static analysis.

  • Improvement: XAML changes to the UnrealVS batch builder panel:

    • Columns are now resizable

    • Label colors come from VS themes and are visible with the dark theme

    • Alignment fixed and dead space reduced

エディタ

  • Crash Fix: Fixed an issue where DisasterRecovery crashed if the recovery session database could not be open or was corrupted.Fixed an issue where DisasterRecovery was freezing the Editor if the new session database could not be created successfully.

  • Crash Fix: Fixed a crash that occurred when undoing the painting on a Skeletal Mesh.

  • Crash Fix: Fixed a crash that occurred on certain files when using the speed tree importer.Mainly it occurred with those that had multiple assets with the same name.

  • Crash Fix: Fixed a crash occurring with skeletal mesh bake material, and incorrect ID remapping.

  • Crash Fix: Disabled input in Level Editor Viewports when a map is being torn down.Speculative fix - the call stack in the bug looks like we think we have a valid actor pointer, but it is probably getting garbage collected.The log is outputting level unload messages right before the crash.

  • Crash Fix: Fixed a crash that occurred when a selected spline point was removed from the Details panel.

  • Crash Fix: Fixed a crash that happened when compiling a running Editor Utility Blueprint that contained a Details view.Rebuilding the Details view widget after a compile is now a synchronous operation.Compiling multiple times caused the underlying widgets to be cleaned up on the main thread from the compile.The asynchronous Details view task created widgets that were then destroyed by the main thread's compile before finishing the task.

  • Crash Fix: Crash fix for trying to open the Asset editor for an invalid Asset.

  • Crash Fix: Fixed a crash occurring when a user deleted an actor from the level.

  • Crash Fix: Fixed a crash occurring in the Static Mesh Editor after copy-pasting primitives.

  • Crash Fix: Fixed a crash occurring during garbage collection when UObject references a SAssetViewItem().

  • Crash Fix: HISM: fix crash when manually setting a instancing random seed to zero.

  • Crash Fix: Fixed a crash occurring with SPropertyEditorInteractiveActorPicker.

  • Crash Fix: Fixed a crash occurring when saving over an existing level and pressing the ESC key.

  • Crash Fix: Fixed a random crash observed when enabling or disabling disaster recovery during a Multi-User session because 'compiled in' or 'memory only' packages were hot-reloaded.

  • Crash Fix: EditConditions no longer crash when their parent object gets deleted from under them, such as when editing a blueprint CDO and then compiling.

  • Crash Fix: Fixed a crash that occurs when trying to get SlateApplication in ShouldThrottleCPUUsage if called from a commandlet.

  • Crash Fix: Fixed a crash that occurred after clicking launch if failed and message log was open to 'Packaging Results'.

  • Bug Fix:Fixed the Disaster Recovery to prevent prompting the user to recover a session only containing non-recoverable activities (Multi-User activities).

  • Bug Fix: Editor now logs an error if there is an issue importing a collision model.

  • Bug Fix: Fixed an issue occurring when a static mesh is re-imported with the "Combine Mesh" option off.If the FBX has many different static meshes, it can pick the wrong mesh when re-importing one of them.

  • Bug Fix: Fixed an issue with custom LOD workflow; the Insert LOD into the base mesh function was not updated to work with the latest skeletal mesh build refactor.

  • Bug Fix: Made FBX Import accessible using Blueprint and Python.

  • Bug Fix: Fixed some issues in the proxy merge tool.Static parameters of materials instances are now properly used.In some cases, the tool would only use the first section of a mesh when backing the texture of the merged mesh.

  • Bug Fix: Made sure post-build refactored skeletal mesh has its dependent LODs regenerated after importing the base mesh.

  • Bug Fix: When building a skeletal mesh, Editor now forces the Tangent and Normal options to True if the source data does not have the tangents or normals data.

  • Bug Fix: The mesh click tool now uses hit proxies to find initially clicked Actors.

  • Bug Fix: Fixed an issue in the Node Graph where a deferred Zoom to Fit would be lost due to deferred UI updates.

  • Bug Fix: Added opacity texture to FBX Material instance imports.When importing an FBX, you have the option to import Materials as instances of a base Material, as opposed to creating new Material Graphs for each FBX Material.This change adds the option to import anything connected to the TransparencyColor.

  • Bug Fix: Added support for content plugins in content-only projects.These were not being staged due to a unique target receipt for the project being generated.

  • Bug Fix: When importing animation from FBX files, Editor now only merges Anim layers as needed.Unreal Engine requires all animations be merged to a single layer, so you cannot skip the merge entirely.This change only performs the merge when necessary, keeping the curve fidelity as long as it is part of an AnimStack with a single member.FbxCurveAPI is now using the same code as the FBX animation curve importer.The curve import now supports "tangent break" and "User tangent".Removed bad unit conversion for curve tangent.

  • Bug Fix: Fixed an issue with HLOD Volumes and meshes' offset from origin.

  • Bug Fix: The paint tool and current/next texture is turned off if there are not any paintable textures on the mesh.

  • Bug Fix: Fixed skeletal mesh conversion so that it uses the LODMaterialMap when converting to a static mesh.

  • Bug Fix: Fixed the mesh painting tools to allow navigation if the user is not clicking or painting on a paintable component.

  • Bug Fix: Fixed an issue that prevents shadows from being rendered for dynamically-built static meshes.Added an option to build simple collisions when building static meshes.

  • Bug Fix: Fixed an issue with spline component visualizer regression, which was preventing interaction with spline points in certain circumstances.

  • Bug Fix: Fixed an issue where LoadLevelInstance location offset was not affecting the BSP geometry in a dynamically loaded level.Now a level's ModelComponents also have the same transform applied.This fixes their rendering, physics and static lighting.

  • Bug Fix: Fixed an issue with propagating vertex color to a custom LOD.

  • Bug Fix: Editor no longer tests against zero; instead it tests against nearly zero when computing the tangents for skeletal mesh.

  • Bug Fix: Added missing shutdown/tool ending code to Mesh Paint tools and Mesh Paint mode.

  • Bug Fix: Added a configurable threshold for Morph Target position delta.Also makes the other threshold available in the skeletal mesh build settings.

  • Bug Fix: Fixed the static mesh re-import override of complex collisions.

  • Bug Fix: The asset registry tags are now restored properly after a static mesh re-import.

  • Bug Fix: Moved RawSkeletalMeshData into a private uasset in order to reduce the skeletal mesh asset size when there are a lot of morph targets.

  • Bug Fix: Class View no longer loses selection when losing focus.

  • Bug Fix: Fixed a bug where combo boxes could affect the wrong field when choosing the type for map variables.

  • Bug Fix: Removed Editor Modes are also removed from the set of default modes for a mode manager.Speculative fix for an issue where Activate Mode was attempting to activate an invalid Editor Mode.When modes are destroyed, they may not be removed out of the default modes for the manager, which may cause an Activate after a deactivate to fail.

  • Bug Fix: Mesh Texture Painting no longer allows painting on source textures with more bytes per pixel than the created render target data.

  • Bug Fix: When using the "asset import tasks" in Python or in Blueprints, if you import multiple assets, the result can now return more than one asset per factory import.

  • Bug Fix: Fixed an issue with starting the editor with "-vulkan".

  • Bug Fix: Fixed verbosity of Multi-User/DisasterRecover endpoint discovery/timeout to prevent spamming the log.

  • Bug Fix: Fixed transaction buffer being cleared when hiding Levels.

  • Bug Fix: Updated the look and feel of the lock icons displayed on top of an Asset in the Content Browser when a user in a Multi-User session locked the asset.

  • Bug Fix: Fixed some sub-optimal UV layout packing on some geometries.

  • Bug Fix: Perforce Plugin:Use -P4Passwd cmd argument value when connecting to Perforce.

  • Bug Fix: HideCategories on components in an actor now correctly hides the categories when the actor is selected.

  • Bug Fix: Fixed dynamic tool menu entries appearing at the end of a section.

  • Bug Fix: The New Project dialog no longer shows a second redundant Open button.

  • Bug Fix: Updated session front end to properly hold on to log messages, even if they are currently filtered out.

  • Bug Fix: Fixed a bug with HighResScreenshot arguments being parsed incorrectly.

  • Bug Fix: Fixed validity checks not firing anymore and displaying an error when creating/removing project files on disk with the New Project dialog wizard open.

  • Bug Fix: Fixed an issue where Editor 'SessionSummary' analytic event was not being sent.

  • Bug Fix: The AttachToActor menu is no longer allowed to shrink.

  • Bug Fix: "Snap Pivot to Vertex" now works by holding Alt+V.

  • Bug Fix: Fixed a memory leak in SOutputLog.

  • Bug Fix: The AssetEditorSubsystem now handles windows again, fixing "Restore Open Assets Tabs on Restart".

  • Bug Fix: Fixed an ensure that was generating with the input binding editor panel.

  • Bug Fix: Added a message when there are no Recent Projects available, because it was unclear what was wrong when there were none showing.

  • Bug Fix: Fixed source control errors occurring during rename of file open for add.

  • Bug Fix: Fixed issues where a temporarily set realtime state is saved between editor sessions causing users to be unaware that their viewport is not realtime.Shutting down the editor during PIE or remote desktop were two such cases.

  • Bug Fix: The Component menu in the Actor Details view now filters out allowed classes based on UClassViewerSettings AllowedClasses.

  • Bug Fix: Fixed analytics to emit the Editor SessionSummary event using the correct AppId, AppVersion, SessionId and UserId when emitted from another instance or process.

  • Bug Fix: When you add an entry to an array in a component that is being edited in a locked Details view, it no longer generates asserts.

  • Bug Fix: Fixed an issue where disaster recovery remote endpoint was not re-registering with MessageBus UDP transport layer restarts or auto-repairs.

  • Bug Fix: Added tooltips to Save As error labels.

  • Bug Fix: Fixed VS accessor to make sure source files are placed in the precise module that was selected, and not just a module beginning with the same name.

  • Bug Fix: HideCategories on components in an actor now correctly hides the categories from the Details panel when the Actor is selected.

  • Bug Fix: Font editor monitor DPI scale fixes.

  • Bug Fix: Edit conditions no longer show themselves as duplicate inline toggles when shared between multiple properties.

  • Bug Fix: Fixed Disaster Recovery plugin to prevent reapplying changes that were discarded during the session.

  • Bug Fix: Disable "Hide Folders Containing Only Hidden Actors" for now.

  • Bug Fix: Unregister all delegates when shutting down FEditorSessionSummaryWriter.This is necessary because Shutdown() is called even when the app is not shutting down, but rather when we are only shutting down analytics such as when toggling the sending of analytics in the editor settings.

  • Bug Fix: Set texture render target 2d's default size to 1x1 so that reset to defaults tooltip will say 1 instead of 0.

  • Bug Fix: Changed utility widgets to rebuild on compile instead of on reinstance, because the BlueprintReinstanced delegate fires when unrelated blueprints are reinstanced as well.

  • Bug Fix: Empty implementations of IPropertyTypeCustomization::CustomizeHeader() will no longer break containers by hiding the header row of a customized struct when the struct is viewed in a container.

  • Bug Fix: Game default map is now correctly set to Minimal_Default when creating a project with Include Starter Content set.

  • Bug Fix: Typo fix: changed PersistenWorld to PersistentWorld.

  • Bug Fix: Fixed a bug where the 'Cancel' button sometimes couldn't be clicked on popup windows.

  • Bug Fix: Fixed issue where the color picker wouldn't update color properties on components after the mouse was released for the first time.

  • Bug Fix: Fixed an assertion occurring when clearing Disaster Recovery widget search field entry.

  • Bug Fix: Source Control:Unattended package save now handles adding new files to source control in more situations.

  • Bug Fix: We now use the display name for asset thumbnails.

  • Bug Fix: Fixed the Multi-User active session widget so that it displays the client location as "N/A (-game)" if the client is in -game, because clients in -game do not emit their presence/level.

  • Bug Fix: When you create a Blank project with starter content enabled, it now opens the Minimal_Default map.

  • Bug Fix: Memory stomp detection in FTickableEditorObject.

  • Bug Fix: Moving a folder with a numeric name (eg."1", "1234") to another level in the hierarchy no longer causes an infinite loop.

  • Bug Fix: Duplicate names for preview assets should no longer appear on the "Close Asset Editors" dialog. #No longer add preview type "assets" which return false to IsAsset() call as opened assets.

  • Bug Fix: Fixed uncommon scenario which caused some assets to be duplicated when renaming.

  • Bug Fix: We now clamp the Niagara parameters menu to 700 to avoid a flickering bug.

  • Bug Fix: Trying to reload an in-memory-only no longer unmarks it as dirty.

  • Bug Fix: Fixed an issue where pasted arrays would not perform deep copies of instanced objects, because children properties were not being rebuilt.

  • Bug Fix: Combo boxes for enum bitflags will no longer display enum values that have been marked with UMETA(Hidden).

  • Bug Fix: The Class Viewer now scrolls to the selected item on refresh.

  • Bug Fix: When starter content is not available because the user's FeaturePacks folder is missing or empty, the option will not be selected by default in the New Project settings panel and then disappears when trying to reselect it.

  • Bug Fix: Fixed StaticMeshActor losing the root component scale when placed with Surface Snapping enabled in Editor Viewport. #The inverse of the entire matrix was being applied for surface rotation snapping.This caused the scale to be reduced when the value of the transform was used in PlaceActor to multiply with the default transform information.

  • Bug Fix: New Project wizard now correctly lists a Blank project when the Templates folder has not been synced.

  • Bug Fix: Fixed an issue where GUIDs wouldn't be generated properly when they belong to a component attached to a child BP class.

  • Bug Fix: Fixed an issue where the object selector UI was not working if the object was not loaded and had the same name as another object, such as 'Texture'.

  • Bug Fix: Updated package autosaver to suppress the restore dialog when running in unattended mode.

  • Bug Fix: - Added a small version of map check image brush so it shows up properly when using small icons.

  • Bug Fix: Selected text is discernible in the Output log with default settings.Reverted the default setting for the selected text background color to what it was before.

  • Bug Fix: Fixed the Disaster Recovery logs that could spam many 'lost server', 'discovered server' or 'timeout' logs.

  • Bug Fix: Eliminated the need to archive a Disaster Recovery session after a crash or normal exit to ensure the recovery system exit and release all resources in a timely manner, ensuring the crashed session is immediately available for restoration on Editor restart.Added routine to clean up temporary files left over by Disaster Recovery in the project intermediary folder after a crash.

  • Bug Fix: Fixed Multi-User/DisasterRecovery client not canceling in-flight connection task when Connect()/Disconnect() were called in a very short interval.

  • Bug Fix: Fixed the Disaster Recovery service using a dangling reference when unmounting a repository.Fixed the Disaster Recovery service to unregister all request handlers on shutdown.Fixed the Disaster Recovery service to report a repository as mounted if the requesting client already mounted it in a previous request.Fixed Disaster Recovery service to clean up its repository database when a repository doesn't exist anymore on disk.

  • Bug Fix: Fixed potential Disaster Recovery service name collision on the network that could happen if two Editor instances on two different machines get the same Editor process ID.

  • Bug Fix: PIE sessions which launch a new standalone window no longer double render debug safe zones and all PIE options are more consistent with handling r.DebugSafeZone.XXXX cvars.

  • Bug Fix: Reordered instanced components are no longer set to transient and disassociated from the current world.

  • Bug Fix: With SPropertyEditorNumeric, if the value has changed using a slider then set the value without flags to ensure that all the callbacks are called.

  • Bug Fix: Now the unique name is created from the same outer the object will be spawned into.

  • Bug Fix: Stylus input plugin usage of Windows Ink API has been changed, to prevent an occasional deadlock that occurred when moving a mouse or stylus between open windows in the editor.

  • Bug Fix: Fixed an issue where actor picker mode's tooltip was only present on first use.

  • Bug Fix: Fixed analytics to compute session duration and idle time consistently.

  • Bug Fix: Fixed an issue where Place Actor was not showing up in the Level Editor viewport context menu.

  • Bug Fix: Changed the delta on the Number of Players slider so it does not get stuck on the max value.

  • Bug Fix: Changed FAssetEditorToolkit to log invalid saved Assets instead of crashing, because individual Asset editors may not be checking for Asset validity.

  • Bug Fix: Now the mesh adapter is checked to make sure it is valid before using it for mesh paint.

  • Bug Fix: Fixed an issue where Lightmap UV channel was not set to correct index after import.

  • Bug Fix: Fixed an issue on Linux where the EditCondition on a UProperty would sometimes not evaluate properly.

  • Bug Fix: FSoftObjectProperty now correctly respects CanEditChange for properties when edited from the Details panel.

  • Bug Fix: Fixed an issue where Message Bus UDP Messaging static endpoints were not being properly sent when the unicast endpoint was forced to a specific interface.Modified the Multi-User Server launch to bind a different port on the unicast endpoint if the port of the editor is set when it transfers its settings to it.Also added a way to explicitly choose a Multi-User server port for its unicast endpoint when launching it from the editor.

  • Bug Fix: Fixed an issue that occurred during a FBX Skeletal Mesh import, where custom properties on imported skeletons would be applied on unrelated skeletal meshes.

  • Bug Fix: Fixed an issue where the FBX import option "Material Search Location" was sometimes being ignored.

  • Bug Fix: Fixed an invalid material baking result that occurred when "Reuse Mesh Lightmap UVs" is used with a mirrored (negative scale) mesh.

  • Bug Fix: Fixed a race condition in Editor analytic code.Fixed an issue with idle time returned by Editor analytic when Slate did not register any user interaction since the Editor started.

  • 新規: オブジェクトが構築時に登録し、破壊時に登録解除する共通のケース向けに、自己登録のアンドゥ / リドゥ クライアント Reduces ボイラーテンプレートを追加しました。

  • 新規: メッセージ ダイアログに表示されるテキストと結果が記録されるようになりました。

  • 新規: SInlineEditableTextBox と同様に、SEditableTextBox にテキスト検証を追加しました。

  • 新規: システムをホワイトリスト コマンドに追加しました。

  • 新規: FSlowTask の改善点

    • ShouldCancel がゲーム スレッドで 1 秒あたり最大 5 回まで UI をティックするようになったため、EnterProgressFrame を人工的に呼び出さなくてもキャンセル ボタンのインタラクションをチェックできるようになりました。

    • EnterProgressFrame と ShouldCancel がゲーム スレッドからのみ呼び出されることを確認するチェックを追加しました。

  • 新規: Perforce ソース コントロール プロバイダーでログインの有効期限切れを検知して、レベル エディタのツールバーにエラーの状態を表示するようになりました。

  • 新規: アクタの詳細ビューで Niagara のオーバーライド パラメータを検索できるようになりました。

  • 新規: OpenMsgDlgInt への呼び出しで、代わりに FMessageDialog::Open を使用するようになりました。

  • 新規: エディタをシャットダウンした際に DDC による長いファイル システムのスキャンが原因でシステムがハングする問題を修正しました。

  • 新規: グラフ ノードのタイトルの一番右側にウィジェットを追加できるようにするために、バーチャル CreateTitleRightWidget() メソッドを SGraphNode に追加しました。

  • 新規: 全般的なブラックリスト フィルターを使用するよう [Tool (ツール)] メニューを更新しました。

  • 新規: タブ マネージャーでタブをプラグインで無効にできるようになりました。

  • 新規: コマンドライン ファイルをプロジェクト内およびプロジェクト プログインのディレクトリ内で検索するためのサポートを追加しました。

  • 新規: ツール メニューの高さを制限するオプションを追加しました。

  • 新規: 高 DPI モニターで UI スケーリングを使用する際に、ビューポートで表示されていないノードのピンに接続されているワイヤーが正しく描画されるようになりました。

  • 新規: プロキシ メッシュ作成のパフォーマンスが向上しました。

  • 新規: エンジンにより異常シャットダウンが発生したことが検知された場合、クラッシュ レポートが偽装されて CrashReportClientApp から送信されるようになりました。「異常シャットダウン」とは、特定の終了パスに沿わずに実行されたシャットダウンです。

  • 新規: TransactionSystem:TransactionSystem:SnapshotTransactionBuffer を SnapshotObject としてブループリントに公開しました。

  • 新規: Multi-User:マルチユーザー:インメモリの変更 (ダーティ パッケージ) によりマルチユーザー セッションへの参加に失敗した場合に、その原因であるパッケージを表示します。

  • 新規:ディザスタ リカバリ ウィジェットの改善点:

    • [View (表示)] オプションに [Show Unrecoverable Activities (復元不能なアクティビティを表示)]、[Show Package Activities (パッケージ アクティビティを表示)] および [Show Transaction Activities (トランザクション アクティビティを表示)] を追加しました。

    • [Recover Through (一括回復)] ボタンが復元不能なアクティビティの上部と重なる問題を回避しました。

    • 回復されるものとされないものを明確に示すよう、[Recover All (すべて回復)] および [Recover Through (一括回復)] ボタンのツールヒントを改善しました。

  • 新規: マテリアル ベイクのパフォーマンスが向上しました。

  • 新規: エディタのビューポートの「ビュー モディファイア」に対するサポートを追加しました。これらは、プラグインとその他のサードパーティ コードでビューポートのトランスフォームに影響を与えるようにするためのデリゲートです。CalcSceneViewUpdateViewForLockedActor への呼び出しは削除されました。これは、このメソッドが現在のトランスフォームや FOV などに基づいて一部のビュー情報のみを計算するという想定に反するものであるためです。

  • 新規: マルチユーザー:コンフィグ ファイル内のベース トランザクションの一時的なプロパティ フィルターのパスを調整しました。

  • 新規: 凸包計算のパフォーマンスが向上しました。

  • 新規: EditCondition で列挙型を使用するビットフラグをサポートするようになりました。例:MyIntProperty & MyEnum::Flag (取り消す場合は「== false」を追加)

  • 新規: AsyncTaskNotification を変更して、プロンプトの状態とスレートベースの通知のハイパーリンクを追加しました。保留中の基本的な通知を特定の目立つ色で表示する関数を追加しました。

  • 新規: Multi-User:マルチユーザー:異なる接続検証モードの設定を追加して、ハードウェアではなく接続の障害時にプロンプトを表示できるようにしました。ソース コントロールの検証では、チェックアウトされたことだけでなく、チェックアウトされたファイルが変更されたかどうかを確認するようになりました。検証モードが「ソフト」であれば、進行中のマルチユーザー接続は許可されます。接続時のダーティ パッケージに対してホット リロードが可能になりました。

  • 新規: Multi-User:マルチユーザー:マルチユーザー デフォルト接続と、接続エラーに対するクエリを実行する方法をブループリントに公開しました。

  • 新規: パラメータをサムネール レンダラの Draw 関数に追加して、レンダラに対してレンダー ターゲットをクリアするかどうかを指示できるようになりました。これは、複数のサブサムネールを同じレンダー ターゲットにレンダリングするサムネールを修復するための処置です。

  • 新規: 正弦波デフォーマを DisplaceMeshTool に追加しました。

  • 新規: パーリン ノイズのオプションを DisplaceMeshTool に追加しました。

  • 新規: CoreDelegates::FCrashOverrideParameters に SendUsageData と SendUnattendedBugReports の値が含まれるようになりました。これらの値は、値がそれぞれ UAnalyticsPrivacySettings と UCrashReportsPrivacySettings で変更される際に設定されます。

  • 新規: Incredibuild を使用した際のシェーダ コンパイルのパフォーマンスが向上しました。

  • 新規: UObject ポインタの処理を追加して、次の形式で、UObject ポインタの同一性、非同一性、そして null ポインタのチェックを有効にする条件を編集できるようにしました:MyProperty != nullptr、または MyProperty == OtherProperty

  • 新規: カスタム StarterContent 機能パックをテンプレート内に設定するためのオプションを追加しました。これにより、プロジェクト タイプごとに異なる内容のスターター コンテンツを指定できるようになりました。[New Project (新規プロジェクト)] ウィザードでは、常に空の「Content」ディレクトリが作成されます。

  • 新規: DataTable 向けに AssetView フィルタリングを最適化しました。

  • 新規: ブループリントのアクタ選択ノードを更新し、選択内容の状態に Modify を呼び出して、有効なトランザクションで選択可能にしました。

  • 新規: [Prompt When Adding To Level Before Checkout (チェックアウト前にレベルに追加する際にプロンプト表示)] を更新して、アクタが追加されるたびに新しいクエリを実行するのではなく、キャッシュ済みのソース コントロールの状態を使用するようにしました。

  • 新規: [New Project] ウィザードで表示されない設定については、コンフィグ ファイルに書き込まれないようになります。これによってテンプレートの作成における負担は増加しますが、表示されない設定によってテンプレートの設定が上書きされることはなくなります。

  • 新規: EditorViewportClient では現在の EngineShowFlags のオーバーライドを一時的にサポートするようになり、特定の EdMode 内にある TAA やモーション ブラーなどのレンダリング機能が一時的に無効になります。

  • 新規: 無効な資格情報インデックスが原因で発生する PIE (プレイ イン エディタ) エラーについて、ユーザー名やパスワードの問題と勘違いされがちな一般的な「Login Failed (ログイン失敗)」ではなく、より適切なエラーがロギング・表示されるようになりました。

  • 新規: オーバーラップを削減するために、アクタの [Details (詳細)] パネルにある、スロットの高さの最小設定を「20」から「80」に増加しました。

  • 新規: リクエストビューポートの [View Mode (表示モード)] メニューに対して、JIRA UE-81469 からの機能要求を含む複数の改善を行いました。これらの改善点のほとんどは、[View Mode] のサブメニューである [Buffer Visualization (バッファの可視化)] に関連するものです。

    • 問題点 1/6 (JIRA):表示モードの UI が選択したカテゴリまたはユーザーによって選択されたサブカテゴリ上に (またはデフォルト) タイトルとして名前を表示しました。ただし、この挙動は異なるカテゴリ間で整合していませんでした。[Buffer Visualization] カテゴリの場合、サブカテゴリのどれかが選択されると、表示モードには選択されたそのサブカテゴリではなく "Buffer Visualization" がタイトルとして表示されました。これはその他の 2 つのカテゴリでは起こりませんでした ("Level of Detail" と "Optimization Viewmode")。解決策 1:表示名 "View Mode" は、カテゴリに関係なく ("Buffer Visualization", "Level of Detail", "Optimization Viewmode")、選択された (サブ) カテゴリ名になりました。

    • 問題点 2/6:選択した表示モードの表示名は、それぞれのカテゴリ / サブカテゴリを表すボタンの表示名と並行して割り当てられていました。一部のカテゴリおよびサブカテゴリについては、[View Mode] のラベルとは異なる名前がボタンに割り当てられることがありました。また、この動作は [View Mode] 内の他のメニュー間で統一されていませんでした。解決策 2:選択したラベルの表示名は、そのボタンの表示名と一致するように強制的に設定されるようになりました。

    • 問題点 3/6:[Optimization Viewmodes] カテゴリにはアイコンがありませんでした。解決策 3:アイコンがそのサブカテゴリのアイコンの 1 つに割り当てられました。具体的には [Quad Overdraw (クワッドの概要)] のアイコンです。

    • 問題点 4/6:[Buffer Visualization] カテゴリには適切なツールヒントが設定されておらず、ユーザーにとってわかりやすい FText ではなく、FName が表示されていました。解決策 4:DisplayedName の FText フィールドにツールヒントを割り当てました。

    • 問題点 5/6:[Buffer Visualization] カテゴリの [Overview (概要)] サブカテゴリを選択した場合、生成された個別の各サブウィンドウの表示名として、ユーザーにとってわかりやすいテキストではなく、制限付きの FName が使用されていました。解決策 5:これらの値が DisplayedName の値に対応する FText に割り当てられるようになりました。

    • 問題点 6/6:潜在的な「バッファの可視化」マテリアル内で、LightingModelShadingModel がコード全体で混同されて使用されており、一致しないケースやユーザーを困惑させる結果となっていました。例えば、UMaterialInterfaceUMaterialLightingModel を使用し、FBufferVisualizationData (つまり FBufferVisualizationMenuCommandsFEditorViewportClient) が ShadingModel を使用する、などです。

  • 新規: ディザスタ リカバリのスケーラビリティ、メモリ使用量、パフォーマンスが向上しました。

  • 新規: ユーザーがツールからスワップする際のインタラクティブ ツール フレームワークのデフォルトの動作を、自動キャンセルではなく自動承諾に変更しました。

  • 新規: メッシュ ペイント ブラシが、選択したメッシュのサイズに順応するようになりました。

  • 新規: FBX の自動インポート時に誤ったタイプのオプション クラスが渡された場合に、利用可能なオプションを無視するのではなく、警告が発せられるようになりました。

  • 新規: FBX ファイルの再インポート時にマテリアルの競合が発生した場合に、競合を解決するための [Reset to FBX (FBX にリセット)] オプションが追加されました。自動再インポート時の競合を解決するための UI は存在しなかったため、「bResetToFbxOnMaterialConflict」という新しいオプションを自動インポート プロセスに追加しました。これを有効にすると、自動再インポート時に発生したマテリアルの競合に [Reset To FBX] の処理が自動的に適用されます。

  • 新規: リモート デスクトップにおけるハイプレシジョン モードのマウスの動作に関連する多数の問題を修正しました。

  • 新規: ウィンドウの解像度をコンパクトに設定するために、「Res=1280x720wf」形式のコマンドライン引数を追加しました。

  • 新規: ボリュメトリクス:EXR テクスチャをディスクにエクスポートする機能を加えることで SubUVMaker を更新しました。シミュレーション中のブループリントの編集を可能にしたことで、再キャプチャの際は自動的に新しい設定が使用されます。

  • 新規: ボリュメトリクス:モーション ベクター、ベイクされたライティング、温度、法線をサポートするよう、SubUV Maker ツールを更新しました。Flipbook_MotionVectors 関数です。Flipbook_MotionVectors Function.

  • 新規: ボリュメトリクス:ボクセル化 BP では、MeshComponent を含むすべてのアクタ タイプがサポートされるようになりました。WPO を含むメッシュをフォースとして使用する例をいくつか含めました。

  • 新規: OnEnginePreExit() デリゲートを主要なデリゲートの一つに加えました。このデリゲートは、AssetTools、WorldBrowser、AssetRegistry モジュールを閉じる前に、これらを必要とするシャットダウン タスクを処理するために実行されます。

  • 新規: UPROPERTY の FString および FName にメタデータを追加できるようになりました。このメタデータでは、[Details] パネルでユーザーが利用可能なオプションを取得するために動的に呼び出す関数を指定します。

    meta=(GetOptions="FuncName"), UFUNCTION() TArray<FString> FuncName() const;
  • 新規: エディタのメニュー ([Window (ウィンドウ)] > [Developer Tools (デベロッパー ツール)] > [Recovery Hub (回復ハブ)]) からディザスタ リカバリ ハブの UI にアクセスできるようになりました。[Recovery Hub] では、リカバリ セッションの検索やインポート、さらに調査を行うことができます。ディザスタ リカバリのユーザー設定を追加して、リカバリ セッションが含まれるルート セッション レポジトリ フォルダを設定できるようにしました。ディザスタ リカバリのユーザー設定を追加して、履歴に何件の「最近のセッション」と「インポートされたセッション」を維持するかを設定できるようにしました。

コンテンツ ブラウザ

  • Bug Fix: Fixed ensure that occurred while scrolling in the Content Browser.

  • Bug Fix: Columns in the Content Browser's column view can no longer be resized until they are uneditable.

  • Bug Fix: Relaxed project name assumptions when estimating the cook length for an asset.

  • Bug Fix: Fixed an issue where thumbnail editing mode was not responding to mouse drags.

  • Bug Fix: Fixed IsValidFolderPathForCreate so it uses the path on disk for maximum length check.

  • Bug Fix: We now hide dynamic collections from the reference viewer list, as they require frontend filters.

  • Bug Fix: Updated "Submit to Source Control" to include plugin content.

  • Bug Fix: Pressing the delete key now deletes a folder when the folder sources view is focused, even if assets are also selected in asset view.

  • Bug Fix: Text properties now write as basic strings when exporting a Data Table to CSV for diffing.

  • Bug Fix: Fixed an isee where Show Engine Content was a disabled option in debug builds.

  • 新規: コンテンツ ブラウザのフィルター リストに [Remove All But This (次を除くすべてを削除)] コンテキスト メニュー オプションを追加しました。

  • 新規: コンテンツ ブラウザ内でフォルダが削除された後に、削除のポップアップ ダイアログにそのフォルダが最後に選択したフォルダとして表示される問題を修正しました。

  • 新規: 長さに関するルールについてより明確なメッセージをユーザーに提供するために、アセット パス検証を 2 つのチェックに分割しました。

  • 新規: コレクション ビューに「ドッキング」モードを追加しました。

フォリッジ

  • Bug Fix: Fixed cook non-determinism in UFoliageTypes.

  • Bug Fix: Fixed foliage non-deterministic cooking by removing unused UProceduralFoliageSpawner::bNeedsSimulation that can change depending on the cooking order.

  • 新規: アクタのトランスフォームを考慮しなかった HISM クラスタ ツリー ディスプレイを修正しました (UDN で報告)。

ランドスケープ

  • Bug Fix: Fixed a crash that occurred after moving a Landscape Actor to another Level.

  • Bug Fix: Fixed a bug that occurred for NaN in Landscape when zero scale is set.Also clamped bounds to avoid hitting a check.

  • Bug Fix: Landscape now obeys the Render in Main Pass setting correctly.

  • Bug Fix: Previously, there was a problem with bad index buffer generation on mobile landscape.Vertex Key generation was not unique for a 255*255 grid.Removed this, and replaced it with a simpler array lookup.Also removed its use as a TMap key.

  • Bug Fix: There was a copy-paste typo that broke landscape tessellation in 4.24.This is now fixed.

  • Bug Fix: Fixed a crash occurring when using RVT and tessellation together in a landscape material.

  • Bug Fix: Fixed an issue with FTriangleRasterizer DrawTriangle division by zero case.

  • Bug Fix: Fixed a SimpleCollision null DominantLayer crash.

  • Bug Fix: Reimport Tiled Landscape Layer Weightmaps now has the same behavior as Import (no more forcing a normalization of layer weightmaps).

  • Bug Fix: Fixed an issue with landscape simple collision returning incorrect physical material.

  • Bug Fix: Fixed a crash that occurred when entering Landscape Mode with Mirror Tool enabled and mirror point set to 0,0 but without any landscape.

  • Bug Fix: Fixed lost landscape data when opening/making visible a level with non-edit layers data only while the main landscape level has been converted to edit layers : moved copy from old data to layers in PostRegisterAllComponents, which is executed upon making the level visible.Also fixed the logic for detecting data conversion is needed and fixed a crash when cleaning up weightmap layer allocations.

  • Bug Fix: Fixed a crash that occurred when creating a landscape from scratch with edit layers enabled.

  • Bug Fix: Fixed some places in landscape code where the editor LOD override is not respected.

  • Bug Fix: Fixed a crash that occurred when creating a layer info on a list of layers with none assigned yet.

  • Bug Fix: Fixed an issue with ALandscape::PostEditChangeProperty not properly handling transform changes.Fixed an issue where ALandscapeProxy::PostEditChangeProperty was not properly handling Z-scale changes.

  • Bug Fix: Fixed an issue with the update of Physical Material not being propagated properly.

  • Bug Fix: Fixed bad index buffer generation on mobile landscape with subsection vertex count of 256x256.

  • Bug Fix: Fixed an issue with flickering landscape when using edit layers in D3D12.

  • Bug Fix: Landscape Visibility Painting:Fixed the tool so Visibility can be painted even if some Landscape actors do not have a Hole Material set (check per component).

  • Bug Fix: Fixed a crash occurring with landscape grass mesh when there are more mips than the landscape currently has.

  • Bug Fix: Fixed Add Ramp landscape tool debug display when landscape is rotated.

  • Bug Fix: Fixed a crash occurring when unloading a level with a landscape actor being displayed in the details view and both the details and level tools on-screen.

  • Bug Fix: We now support use of grayscale textures for landscape image brushes.

  • Bug Fix: Fixed an infinite loop that occurred when undoing a landscape change.

  • Bug Fix: Fixed a crash that occurred when importing Landscape layers in the New Landscape Tool.

  • Bug Fix: Fixed an issue with landscape component ForcedLOD option.

  • 新規: ランドスケープ スプライン制御点の「Width (幅)」パラメータの表示名を、実際に制御するものに合わせて「Half-Width (半幅)」に変更しました。

  • 新規: ルーズ グローバル パラメータをランドスケープ頂点ファクトリから削除しました。

  • 新規: ランドスケープ レイヤー:UI でレイヤーが逆順になりました。

  • 新規: 草マップのレンダリングで修正済みのグリッド頂点ファクトリを使用するようになりました。これにより、表示 LOD には依存しなくなります。

  • 新規: ランドスケープ VirtualTextureNumLods のデフォルト値を「0」から「6」に変更しました。この新しいデフォルト値により、仮想テクスチャへの書き込み時に、ランタイム仮想テクスチャ ページ レンダリング パスでの頂点数の増加と引き換えに、頂点の補間で生じるアーティファクトを削減することができます。

  • 新規: ランドスケープ レイヤー:折りたたみ機能。

  • 新規: タイル化されたランドスケープのインポート時に、再インポート ウェイトマップ パスがタイルごとに保存されるようになりました。

  • 新規: それぞれのボリュームに対して最適なプレシジョンを提供するために、ランタイム仮想テクスチャ ワールドの高さパッキングがボリュームの度合いに応じるようになりました。

マテリアル エディタ

  • Bug Fix: Added additional validity checks before pinning a weak pointer.

  • Bug Fix: Fixed back facing plane in default camera view in Material Editor.

  • Bug Fix: The Defer Compression default arrow is hidden after compressing a texture.

  • Bug Fix: Fixed an issue where pin names on SetMaterialAttributes node would not match Material input names.

  • Bug Fix: Added a null check when copy/pasting Material nodes.This prevents a rare crash, but it could cause nodes to be pasted improperly when the same crash conditions are met.

  • Bug Fix: Removed MaterialFunction expressions from the list of types that allow parameter conversion.

  • Bug Fix: Fixed an issue where grid lines appeared not to draw in the Material Editor on initial launch.

  • Bug Fix: Updated material editor to save and restore metadata when updating materials.

  • Bug Fix: Fixed the Material Instance Editor to properly respect Undo.

  • Bug Fix: When deciding what to recompile after changing an MF, look at all Material Instances instead of stopping after the first match.

  • Bug Fix: Fixed an issue with layer parameters being inherited from one MIC to another MIC.

  • Bug Fix: Set the stats message log to use a fixed size font, and removed tooltip text that was duplicated.

  • Bug Fix: Channel names for the channel mask parameter are no longer allowed.

  • Bug Fix: The Material layer Parameter Preview panel will no longer crash in the Material Editor.

  • Bug Fix: Added more validity checks to LinkMaterialExpressionsFromGraph.

  • Bug Fix: The visibility of the Material layer parameter is now correctly impacted by static switches.

  • 新規: スタティック メッシュのマテリアル スロット数を取得するために、GetNumberMaterials 関数を UEditorStaticMeshLibrary に追加しました。

  • 新規: マテリアル エディタでは、ベース マテリアル内のレイヤーに加えた変更を、派生したマテリアル インスタンスにも反映するようになりました。

  • 新規: マテリアル ビューポートの UI にあった不要な [Realtime (リアルタイム)] チェックボックスを削除しました。

  • 新規: 物理マテリアル マスクをマテリアルに追加しました。これは、複数の物理マテリアルをマスクに基づいて単一のマテリアルに関連付ける際に使用されます。これは、ケイオス物理が有効な場合にのみサポートされます。[Material (マテリアル)] で [Physical Material Mask (物理マテリアル マスク)] にマスクを設定し、[Physical Material Map (物理マテリアル マップ)] に物理マテリアルの配列を設定します。スタティック メッシュのプロパティでは [Support Physical Material Masks (物理マテリアル マスクをサポート)] を有効にする必要があります。追加のデータはランタイムに保存されます。

メディア フレームワーク

  • Bug Fix: Added code to WmfMediaPlayer to avoid a deadlock during shutdown between a tickable thread asking for player time and the player actually shutting down.

  • 新規: FMediaTicker スレッドに対してより短い有効期間を導入し、閉じた後にプレイヤーを破壊する新しいオプションの機能を追加しました。この機能を使用するには、プレイヤーは GetPlayerFeatureFlag を実装し、AllowShutdownOnClose が渡された際にこの関数で True を返すよう設定しておく必要があります。

スタティックメッシュ エディタ

  • Bug Fix: Fixed the Reset Camera toolbar button in the Static Mesh Editor.

  • Bug Fix: In the Static Mesh Editor, fixed a bug causing the lightmap coordinate index to be stuck at 0 when there were generated LODs in the Static Mesh.

  • Bug Fix: Fixed a bug that could sometimes crash the Editor when trying to visualize convex collision in the Static Mesh Editor.

  • Bug Fix: In the Static Mesh Editor, the "Remove UV Channel" option now supports Undo/Redo.

  • Bug Fix: Fixed a bug that sometimes crashed the Editor when modifying values in the Static Mesh Editor.

  • Bug Fix: Fixed a crash that sometimes occurred when opening the Static Mesh Editor.

  • Bug Fix: Fixed a bug that could prevent the user from using the LOD picker after the number of LODs was changed in the Static Mesh Editor.

  • 新規: Python またはエディタ ユーティリティで SetEditorProperty を使用する際に、値が変更されない場合でも変更通知を強制的に発信する方法を加えました。

スクリプト処理

  • Bug Fix: Ensured that start-up scripts run when using Python in commandlet mode.

  • Bug Fix: Ensured that Python-wrapped objects have a valid internal state before attempting to nativize them.

  • Bug Fix: PySlate now checks that Slate is available rather than crashing.

  • Bug Fix: Emit RuntimeError (rather than a generic Exception) in Python for Blueprint execution errors.

  • Bug Fix: The OnPythonInitialized notification is now deferred until after start-up scripts have run.

  • Bug Fix: Fixed const-ref parameters passed to Python overridden functions losing their value.

  • Bug Fix: The Alembic Importer now uses the import settings provided by the user script.

  • 新規:Python またはエディタ ユーティリティで SetEditorProperty を使用する際に、値が変更されない場合でも変更通知を強制的に発信する方法を加えました。

    • この方法は、インスタンスでデータを間接的に編集し (例: オブジェクトの配列参照を変更)、それに依存するデータの更新のために変更通知を発信する状況などで必要になります。

    • Python では、unreal.PropertyAccessChangeNotifyMode.ALWAYS を notify_mode 引数として set_editor_property に渡すことでこれを行うことができます。エディタ ユーティリティでは、「Change Notify Mode (変更通知モード)」を設定するための新しい詳細ピンを使用できます。

    • いずれの場合でも、デフォルトは実際に値が変更された場合にのみ通知する設定です。

  • 新規: Ge/SetEditorProperty 関数をブループリントに公開しました。

  • 新規:列挙型アセット タイプを Python に公開しました。

    • アセットの名前が固有のものとは限らないため、これらのタイプにはunreal.get_blueprint_generated_types(...) を介してアクセスし、unreal モジュールに追加されないようにする必要があります。

    • タイプが Python 用に生成されると、そのアセットが変更された場合にこれが更新されます。アセットが削除されると Python のタイプはクリーンな状態にリセットされ、ほとんどの場合は使用できなくなります。

    • また、この変更により、Python で参照されている Unreal タイプのポインターが確実にガベージ コレクションに正しく参照されます。Python で使用されているタイプを持つアセットを削除しようとすると、警告が発せられます。

  • 新規:引数付きで Python を呼び出すためのブループリント ノードを追加しました。

    • これにより、Python スクリプト内で使用するワイルドカードの入力と出力を含め、Python スクリプトを定義可能なブループリント ノードを作成できます。

    • このノードでは Python スクリプトに入出力するデータのマーシャリングが処理され、ブループリントからカスタムの Python を起動することができます。

  • 新規: 複数のプロパティを設定して、単一の事前 / 事後の変更通知を発信することができる set_editor_properties を追加しました。

  • 新規: LevelSequenceFactoryNew を BlueprintType としてマークし、エディタ ユーティリティ ブループリント / ウィジェットでレベル シーケンス アセットを作成できるようにしました。

  • 新規: FBX アニメーション シーケンスの再インポートをスクリプト化するためのサポートを追加しました。

  • 新規: FBX アニメーション シーケンスの再インポートをスクリプト化するためのサポートを追加しました。

  • 新規:変更通知を発信する、プロパティの取得と設定の共通ロジックを含めるための PropertyAccessUtil を追加しました。既存の Python コードはこれを使用するよう移植済みで、ブループリント (または他の C++ 設定プロパティ) でもこれを使用して、変更通知の発信を伴うプロパティ変更を行うことができます。

  • 新規:別のコンテナに直接ネストするコンテナ プロパティを Python で作成しようとする際に発せられるエラー メッセージが向上しました。これはリフレクション システムではサポートされておらず、許可もされていませんが、このエラー メッセージは明確ではありませんでした。これが Unreal Header Tool のようなエラー メッセージとなり、直接のネスティングの代替方法として構造体の使用を提案するようになりました。

  • 新規:Python プロパティをコンテナ タイプから直接作成する際に発せられるエラー メッセージが向上しました。コンテナ要素のタイプを発することはありがちな誤りであり、この場合に、その原因と修正方法を示したエラー メッセージが表示されるようにしました。

シーケンサー

  • Crash Fix: Fixed a crash that occurred when displaying keys in the cinematic viewport with a large view range.

  • Crash Fix: Sequencer now closes if any of the sequences were reloaded/replaced.This fixes a crash that could occur if subsequences were reloaded while viewing the Master Sequence.

  • Crash Fix: Resolved a crash occurring when using "Store Curves" in Curve Editor.

  • Crash Fix: Creating an actor with a duplicate name no longer results in crashing Editor.

  • Crash Fix:Accessing a child folder after postloading a movie scene folders no longer crashes Editor.

  • Bug Fix: Fixed a Return Early event triggering incorrectly when and event is specified by an object binding, but there aren't any bound objects (ie. spawnable hasn't been spawned).

  • Bug Fix: You can now visit key areas from track, key area, and category nodes only.This prevents selecting keys when object binding nodes are collapsed.

  • Bug Fix: Fixed an issue with transform baking for rig rails.The current position on rail is updated per tick, so the actor needs to be ticked on each baked frame.

  • Bug Fix: Added protection against assigning a sequence that would produce circular dependencies.For example, if the current level sequence is named NewLevelSequence, this fix prevents the user from naming a subsection the same thing (NewLevelSequence, in this example).

  • Bug Fix: Autoscrub now only occurs if you are in a scrubbing state.This fixed double evaluations occurring when autoscroll is enabled during play.

  • Bug Fix: Setting the end range is now exclusive instead of open.This fixes an issue where if you tried to set the end range through the Properties menu, it would be inconsistent with dragging the end range.

  • Bug Fix: Added reentrant guards to prevent starting and stopping recordings while recording is in progress with Take Recorder.

  • Bug Fix: AddGivenTrack now allows for tracks with the same name, and the duplicate check is only done on copy/paste.This resolved an issue that occurred with a previous bug fix.

  • Bug Fix: Fixed an issue with adjusting the animation start time during resizing, and the start time is now clamped to the beginning of the clip.

  • Bug Fix: Viewports are now redrawn after restoring state on close().This fixes a bug where if Realtime is not enabled in the viewport, closing Sequencer leaves objects drawn in a Sequencer animated state before the next redraw.

  • Bug Fix: A spawnable's object template is now copied so that it is not limited to the given transient outer.This fixes a bug where the DefaultSceneRoot for an empty actor would be lost on a copy/paste.

  • Bug Fix: Fixed the "Transform Selected Sections" tool so that now sections and their keys are transformed.

  • Bug Fix: Expanded the track node if row indices were changed.This fixes an issue where if a multi-row track is regenerated, it shows the multiple rows rather than displaying collapsed rows.

  • Bug Fix: Fixed upper playback range for subframes so that keys that lie beyond the integer frame are evaluated.For example, [400, 800.5] now returns an upper bound frame of 801 so that a key at 800 will be evaluated.This includes tests for frame number range.

  • Bug Fix: Fixed spawnable particles not firing by setting force particles as inactive on spawn by default, as opposed to "not autoactivate".

  • Bug Fix: Fixed subframe end playback range conditions so the playback range excludes flooring and tests the stop condition with GetLastValidTime() rather than with DurationFrames.

  • Bug Fix: Sequencer now only restores pre-animated states on actors that are being removed from the binding.Otherwise, all actors would be restored unnecessarily.

  • Bug Fix: Bake transform now refreshes the skeletal mesh the object might be attached to (just like export fbx performs updates).

  • Bug Fix: Added check for bound component when exporting 3D transform data to properly support applying rotations when exporting camera components in a Blueprint.

  • Bug Fix: Fixed an issue where the name check allowed more characters than the limit when renaming sequencer folders and object bindings.

  • Bug Fix: Return early in GoToEndAndStop now triggers correctly if the sequence player is already stopped and at the end of the sequence.

  • Bug Fix: Fixed an issue where changing levels with ClientTravel was breaking the ability to activate a sequence when using Play In Editor.

  • Bug Fix: Fixed Mute/Solo incorrectly applying to parent binding instead of selected track.

  • Bug Fix: Spawnable objects no longer fall in streamed levels during Play in Editor.

  • Bug Fix: Fixes several usability issues when dragging tracks or sections between rows.

  • Bug Fix: Fixed many special cases when using text search.

  • Bug Fix: ProRes/DNX now defers file creation until after the sequence updates.This allows file format tokens like {sequence} to be replaced with the name of the rendered sequence.

  • Bug Fix: Thumbnails no longer display over blending areas of the Camera Cut track.

  • Bug Fix: Camera bindings now correctly auto-create camera cuts.

  • Bug Fix: Fixed a zooming issue with mouse wheel in CurveEditor while panning with mouse dragging.

  • Bug Fix:Adding a key to a blueprint component now correctly uses the existing value of the component.

  • Bug Fix: The geometry cache now evaluates correctly from Sequencer when the cache is not visible.

  • Bug Fix: Fixed sections not being visible on some pinned tracks.

  • Bug Fix: Dropping assets onto an object binding now allows the drop to occur below so an asset can be moved to last in the tree.

  • Bug Fix: When building a menu in Sequencer, the common base class now correctly passes to the selected object bindings.

  • Bug Fix: Made several fixes to prevent reentrant play/evaluation during stop.

  • Bug Fix: Sequencer now forcibly ticks if the animation pose has already ticked this frame.This fixes first frame discrepancies if a sequence is played after actors have ticked on a particular frame.

  • Bug Fix: The active animation instance on a skeletal animation component now correctly clears when stopping a sequence.This results in the anim-notifies stopping as expected.

  • Bug Fix: Sequencer now only renders the waveform preview for assets that are currently visible on an audio track section.

  • Bug Fix: BeginSlipSection now calls correctly in Sequencer.

  • Bug Fix: GetUniqueName now returns correctly if the name is already unique.

  • Bug Fix: The Local Time is now set as Looped by default so the evaluation is Play To instead of Jump when autoscrolling.

  • Bug Fix: Fixed an issue where the sequence was not playing again if the world is unloaded and reloaded.

  • Bug Fix: Section easing now updates the section correctly when it is moved or resized through property editing.

  • Bug Fix: Loop markers in audio tracks now render correctly.

  • Bug Fix: The "Add a Camera" button now always displays on the transform track's object binding edit button.This fixes an issue where looking at the spawnable template isn't enough to determine whether a camera exists because the camera component might not exist at the time the button is created.

  • Bug Fix: Resolved an issue that allowed cyclic inclusions within template sequences.

  • Bug Fix: Replicated sequences now increase their sync threshold by client ping.You can verify hitch correction through the "Correcting de-synced play position for sequence..." message in the log.For more information more often, enable "log LogMovieSceneRepl VeryVerbose".

  • Bug Fix:Sequences not considering TimeScale or DemoPlayTimeDilation during playback now functions correctly.

  • Bug Fix: Implemented manual checks for broken tangents on FBX imports to avoid incorrectly passing broken tangents through the import.

  • Bug Fix: Track count display on sub-sequences now functions correctly.

  • Bug Fix: Copying and pasting tracks with multiple subtracks now functions correctly.

  • Bug Fix: Exporting a transform in FBX now correctly exports the combined, whole blended track, instead of just exporting the first section.

  • Bug Fix:Custom Cinematic Camera film back text now correctly receives values for focal length and aperture.

  • Bug Fix: The Director Blueprint is now renamed whenever a Level Sequence is renamed.This resolves an issue where Event Tracks stopped working when Level Sequences were renamed.

  • Bug Fix: Set curve attributes now operate on all curves, rather than just the selection in Curve Editor.

  • Bug Fix: transient flags on spawnable template components now clear correctly.This resolves a bug where components added to an empty actor were not saved.

  • Bug Fix: Prevented a crash that occurred when loading a sequence that has broken data.

  • Bug Fix: UnfocusedVolumeMultiplier should be fixed at 1.0f during movie rendering so that audio doesn't cut out during movie rendering.

  • Bug Fix: Curve Editor:Fixed an issue where the Filter window was not opening for standalone curves; this was caused because no tab manager was provided when creating the curve asset editor's SCurveEditorPanel in FCurveAssetEditor::SpawnTab_CurveAsset, which is needed to create the Filter Window.

  • Bug Fix: Sequencer:If you change a skeleton on a skeletal mesh while its sequence is playing, and then do a restore state the Editor could crash.This is because the Anim Instance is referencing an old skeleton which has a different number of bones.Now Sequencer uses InitalizeAnimScriptInstance so bones/morphs/curves get recalculated.

  • Bug Fix: Sequencer:Import onto objects with the focused template ID. This fixes an issue preventing importing onto an object in a subsequence.

  • Bug Fix: Timecode:Fix crash in details customization when data is empty.

  • 新規: 「時間ワープ」をシーケンス ループにおける新しい時間変換のオプションとして追加しました。これにより、時間をルート シーケンスからシーケンス ループにトランスフォームできます。現在のループ番号が判明していれば、ローカル / サブシーケンス時間をルート時間に変換し直すこともできます。

  • 新規: シーケンサとシーケンス API コンパイラが、ループを含む可能性のある時間トランスフォームに対応するようになりました。この API のほとんどの部分は下位互換性がありますが、時間トランスフォームを反転することはできません。

  • 新規: Python を介した FBX のエクスポート時に、スクリプト化されたシーケンスにスポーン可能なオブジェクトを作成できるようになりました。

  • 新規: PostProcessingMaterial コマンドライン引数を追加して、ムービー シーンのキャプチャのカスタム レンダリング パスに使用するポストプロセス マテリアルを指定できるようにしました。

  • 新規: トラックの入出力イージングをカスタマイズするための新しい API を追加しました。

  • 新規: Take Recorder における数値のパディング (02 や 002 など) のための桁数タイプ インターフェースを更新しました。

  • 新規: シーケンサ クロックがタイムコード プロバイダに基づくグローバル タイムコードを使用するようになり、「Timecode」ではなく、「Relative Timecode」と呼ばれるようになりました。

  • 新規:サブシーケンスとシネマティック ショットにループを示すインジケーターが表示されるようになりました。

  • 新規: モジュール演算子をフレーム時間に追加しました。

  • 新規: トラック名に加えて、チャンネルおよびフォルダの名前を検索するためのサポートを追加しました。

  • 新規: カーブ エディタのキーとチャンネルがコピー / 貼り付け可能になりました。

  • 新規: SetReadyOnly と IsReadOnly をレベル シーケンスに含めるよう、シーケンサのスクリプティング オプションを更新しました。

  • 新規: 更新された FPS オプションを反映するよう、Live Link ログ ファイルをデフォルト設定値 30 FPS で更新しました。この情報は VeryVerbose ログ ファイル内にあります。

  • 新規: Live Link レコーディングでは、開始フレーム外のサンプルを破棄するようになりました。

  • 新規: シーケンサのスクリプティングを更新して、ルートまたはローカル空間内にバインディングを作成できるようにしました。

  • 新規: 所有可能なオブジェクト バインディングを複製した場合、所有されたオブジェクトが現在のレベル内で複製されて、複製されたバインディングに割り当てられるようになりました。

  • 新規: シーケンスを Clean Playback Mode (クリーン再生モード) で実行できるようになりました。これにより、ゲーム内でシーケンスを実行する際にゲーム ビューを切り替えて、ビューポート UI を隠すことができます。クリーン再生モードは自動的にデフォルトで On (オン) になります。

  • 新規: ツールチップにセクション タイトルを表示することを指定できるようになりました。セクション タイトルがセクションの幅より長い場合に便利です。また、これによってショットやアニメーション、カメラ カットなどのセクションにツールチップが表示されるようになりました。

  • 新規: ムービー シーン キャプチャのための {date}、{month}、{day}、{year}、{time} 形式の文字列を追加しました。

  • 新規: フレーム範囲の評価により Python スクリプティングを介してスポーン可能なオブジェクトにアクセスできる GetBoundObjects() を追加しました。

  • 新規: シーケンサ オーディオ テンプレートでは、オーディオの予測時間と実時間の間の 0.2 秒の「同期ずれ」 (cvar Sequencer.Audio.MaxDesyncTolerance) をチェックするようになりました。これにより、再生を開始した後、特にリプレイ、巻き戻し、早送りをする際にオーディオ再生時間を検出しやすくなりました。

  • 新規: 見やすいようにテイク時間の桁数をデフォルトで 2 桁にしました。Take Recorder でも、ファイル名およびテイク メタデータを作成する際にはこのシーケンサ プロジェクト設定を使用します。

  • 新規: カーブ エディタで、ロードされたカーブをレベル シーケンスに保存できるようになりました。

  • 新規:シーケンサとのインターフェースに外部クロック ソースを指定できるようになりました。これは、フレーム精度の高いオフライン再生ではなく、リアルタイム再生を通じてマルチプレイヤー PIE をサポートするためのメディア プレーヤーとテクスチャを制御する、新しいメディア コンポーネントによってサポートされています。

  • 新規: ネット再生同期しきい値を制御するための cvar を追加しました。Sequencer.NetSyncThreshold のデフォルト値は 200 ミリ秒で、同期ずれが許容範囲を超えて、強制同期が必要になるとみなされる時点を定義します。

  • 新規: Take Recorder:スポーンされたパーティクル システムのレコーディングに関する問題を修正しました。パーティクル システムがスポーンされると、World Settings (ワールド セッティング) アクタにアタッチされます。これらはルート コンポーネントではなく、アクタ上のシーン コンポーネントであるため、新しく作成されたコンポーネントの収集時には選択されません。また、プレレコーディング中に World Settings アクタを新しいアクタ ソースとして追加する際に、プロパティ マップを再生成する必要がある問題も修正しました。

  • 新規: 「Play Rate (プレイ レート)」トラックの名前を「Time Dilation (時間拡張)」トラックに変更しました。

  • 新規: コマンドライン レンダリングでは、CaptureGammut コマンドライン引数で列挙型エントリの名前と数値をパースするようになりました。

  • Improvement: ImageWriteTask now uses a TUniqueFunction instead of TFunction to store PixelPreProcessors.This allows storing unique pointers in the PixelPreProcessor tasks.

  • Improvement:Changed the following Curve Editor hotkeys to remove conflicts with other shortcuts in Editor:

    • Transform:Ctrl-T

    • Retime:Ctrl-E

    • Multi:Ctrl-M

  • Improvement: Updated Sequencer to use other minor behaviors in Editor, such as drag/drop and layout/access of menus and toolbars.

  • Improvement: The TRange LexToString now uses "," to split the upper/lower bounds instead of "-" to avoid confusion with negative upper bound values.

  • Improvement: Updated the Cinematic Camera's ratios:Changed 16:9 Digital Film SensorWidth and SensorHeight to 23.76 x 13.365 to match Arri Alexa, and changed 16:9 Film SensorWidth and SensorHeight to 24.00 x 13.5.

  • Improvement: There are several updates to the Sequencer toolbar:

    • Added Save As to the Toolbar

    • Added an Actions menu for operations that manipulate data or selection;

    • Renamed General Options to View Options;

    • Moved Auto Scroll and Show Range Slider to View Options;

    • Removed Go to Time from the menu (it is already in the UI);

    • Removed Show in Content Browser from the menu (it is already in the top Toolbar).

  • Improvement: In Take Recorder, the Animation Asset Name in the Project Settings now defaults to {actor}{slate}{take}.

  • Improvement: Updated Take Recorder settings to the selected Actor is always listed first.

  • Improvement:The Sequence Level Actor now supports RewindForReplay, which stops a sequence when seeking starts in a replay.

  • Improvement: Modified Sequencer network playback so it takes the ping of a player into account when jumping forward in time.This prevents players' systems from constantly needing to resynchronize with the server when playing under high latency situations (resynchronizing with the server causes audio and visual hitches).

  • Improvement: Locked sequences now display a visual indicator with a red border and dims display node text.

  • Improvement: Added tick marks in the audio track display to show audio loop points.

  • Improvement: Improved processing frame rate when outputting video frames as PNG.

  • Improvement: Added keys to the snap field when the user is resizing sections so that resizing sections can snap to keys.

  • Improvement: Added channel extensions for MovieSceneObjectPath.

  • Improvement: Updated marked frames so they are based on the hit index, rather than finding it by the FFrameNumber.Renamed "Clear Marked Frame" to "Delete Marked Frame".

  • Improvement: Dragging and dropping sequences into the tree view now moves items to the root.

  • Improvement:You can now save animations in a Skeletal Mesh track as an AnimSequence.This is also supported by Python.

  • Improvement: You can now change the min/max playback, view, and working values outside of the current range.

  • Improvement: Updated the Cinematic Camera so the Depth of Field method is now Do Not Override to more accurately describe the functionality, as opposed to None.You can also Disable the depth of field completely by overriding the post process settings.

  • Improvement: Sequencer now saves times with FMovieSceneFloatChannel through a serialized buffer, which will significantly speed up Live Link data orders.

  • Deprecated: NewTake in Take Recorder is now deprecated in favor of ClearPendingTake.This lets users simply clear the pending level sequence rather than also clearing out the sources.

  • Removed: Removed the Label Browser option because it was not used.

VR-Editor

  • Bug Fix: Fix for crash on exiting VR mode from the taskbar.

  • Bug Fix: Adding a check that we are using the default interactors before warning about legacy UI. This prevents unneeded warnings for Virtual Production.

  • Bug Fix: Fixed a bug causing smooth scrolling with the HTC Vive touch pad in the Unreal Editor VR Mode to be less than smooth, and somewhat erratic.

  • Bug Fix: Fix out-of-date view uniform buffer for selection rendering post-process (broken selection highlights in VRMode).

  • Bug Fix: Changed "Toggle VR" hotkey to add 'Shift' modifier (now Shift+V).

  • Bug Fix: Removed direct null of slate widgets on the VR Editor floating UI because the UI is in the middle of shutting down.

  • 新規: VR エディタでは、VR モードにおいて Simulate から Play in Editor へのトランジションができなくなりました。

  • 新規: VR モードがアクティブの時は、コンテンツ ブラウザでのアセットの強制削除が防止されます。強制削除は VR におけるユーザー体験に悪い影響を与える強いタスクです。

ワールド ブラウザ

  • Bug Fix: Move WorldTileInfo from old to new package when renaming in the editor: this makes sure to propagate WorldComposition settings for this level.

  • Bug Fix: Prevent double selection notifications when selecting via the Scene Outliner.

ゲームプレイ フレームワーク

  • Crash Fix: Fixed a crash in FStreamableManager::OnPreGarbageCollect that happened when deletion of one FStreamable caused other FStreamables to be removed from the manager.

  • Crash Fix: Fixed a crash that happened when passing null to SaveGameToMemory.AsyncSaveGameToSlot now properly handles SaveGameToMemory returning false.

  • Crash Fix: Fixed a crash when adding a gameplay tag without a valid tag source selection.

  • Crash Fix: Fixed a crash related to party members not being local players.

  • Crash Fix: Fixed warning messages and a potential crash when adding a component to an instance in the world if the default mobility of the new component was incompatible with the component it would be attached to.

  • Crash Fix: Removed a few ways for attackers to crash a server through the ability system.

  • Crash Fix: We now make sure we have a GamplayEffect definition before checking tag requirements.

  • Bug Fix: UCameraComponent::OnRegister no longer creates editor-only components when running a commandlet.

  • Bug Fix: The Default Physics Volume is now marked as transient to avoid a failure in CheckForWorldGCLeaks.Because it is transient, it will not be saved or loaded.

  • Bug Fix: Actors that have pending latent actions will no longer be automatically destroyed if bAutoDestroyWhenFinished is true.

  • Bug Fix: Local variables in the user construction script now show up in the details panel.

  • Bug Fix: Fixed the oscillation blend out time for camera shakes.Previously, the blend out's OscillationDuration was not used in the calculation, which led to the camera shake ending earlier than it should have.

  • Bug Fix: Fixed an issue with gameplay tag categories not applying to function parameters in Blueprints if they were part of a function terminator node.

  • Bug Fix: TActorIterator and GetAllActorsOfClass will no longer return actors from a level that is in the process of being incrementally removed from world, unless you are in the RemoveFromWorld scope for that level.

  • Bug Fix: UWorld::Async* trace functions will now assert when run outside of the game thread, as this will result in memory corruption.

  • Bug Fix: Fixed incorrectly set social user on a party member when we have multiple local players.

  • Bug Fix: The InvertedAxis array in the input system no longer grows unbounded.

  • Bug Fix: Fixed an issue with gameplay effects' tags not being replicated with multiple viewports.

  • Bug Fix: Fixed an ensure that could occur when a streaming level was removed as a side-effect of updating the streaming state of another streaming level.

  • Bug Fix: Child actors spawned by child actor components now correctly update their positions when moving the component on a per-instance basis.

  • Bug Fix: The split screen game view port client now has higher precision float values when creating the split screen info in order to remove unwanted black bars at higher resolutions.

  • Bug Fix: "ke " console commands no longer attempt to execute commands on Archetype Objects which belong to CDOs.CDOs were already excluded from "ke " commands, but not default subobjects created by a CDO.

  • Bug Fix: The engine no longer attempts to get the NetMode on server worlds before the world is fully set up.

  • Bug Fix: Fixed cooking to remove non-determinism in FStaticMeshLODResources.

  • Bug Fix: Fixed a bug where a gameplay ability spec could be invalidated by the InternalTryActivateAbility function while looping through triggered abilities.

  • Bug Fix: Instance components are no longer lost after undoing an apply to Blueprint transaction.

  • Bug Fix: Children of added instanced components now appear in the details panel without requiring the user to deselect and reselect the actor.

  • Bug Fix: Child actors no longer lose properties set in the parent construction script when changing properties on the child actor component instance.

  • Bug Fix: Fixed crouching clients observed from a listen server popping up briefly before interpolation corrects the location down.Applied the same fix as for simulated proxies on the listen server.

  • Bug Fix: Added smoothing to replicated server world time delta This ensures that spikes in the perceived server world time caused by delayed replication updates are not directly and immediately reflected in the client calls to AGameStateBase::GetServerWorldTimeSeconds() which would be problematic for systems that want to work relative to server world time.

  • Bug Fix: Prevented NaNs (or excessively large input values causing later NaNs) from entering AController::SetControlLocation.

  • Bug Fix: Filled in ServerLastTransformUpdateTimeStamp for simulated proxies with the value of ReplicatedServerLastTransformUpdateTimeStamp, for code paths that may try to read that value instead.Added client and server timestamps to "p.NetVisualizeSimulatedCorrections" output.

  • Bug Fix: We now call UpdateCharacterStateBeforeMovement and UpdateCharacterStateAfterMovement for simulated proxies during simulation.However, the base implementations avoid the crouch state changes in those functions because those are replicated from the server.This is more for overrides to be able to run custom behavior to match the server simulation.

  • Bug Fix: Changed how we handle updating gameplay tags inside of tag count containers.When deferring the update of parent tags while removing gameplay tags, we will now call the change-related delegates after the parent tags have updated.This ensures that the tag table is in a consistent state when the delegates broadcast.

  • Bug Fix: Added location and current client base (if any) to logging in ClientAdjustPosition if the client does not resolve the movement base.

  • Bug Fix: Fixed cases where FMod and VectorMod would fail to return a result within the expected output range for very large input values.This could in turn result in NaN/Inf propagation if for example those values are used with SinCos during Rotator/Vector/Quat conversion.Added some additional ensures during development to catch similar overflow and uninitialized variable issues sooner.

  • Bug Fix: Fixed a bug that caused some per-class properties to read incorrect data in the editor.

  • Bug Fix: We now ensure that per-class properties, if they exist, will be available as Blueprint variable get nodes.

  • Bug Fix: Fixed actor names of user construction script child actors not reflecting the child actor class if the child actor class is changed on the add component node.

  • Bug Fix: Properties inside sparse class data now respect the AssetRegistrySearchable flag.

  • Bug Fix: Rotating movement component now works as expected in standalone.

  • Bug Fix: Modified SetBaseAttributeValueFromReplication to take the old value as an input parameter.Previously, it was reading the attribute value to try to get the old value.However, if called from a replication function, the old value had already been discarded before reaching SetBaseAttributeValueFromReplication so we'd get the new value instead.

  • Bug Fix: We now make a copy of the spawned target actor array before iterating over it inside when confirming targets because some callbacks may modify the array.

  • Bug Fix: Fixed a bug that was causing properties that were marked as asset registry searchable not to be included with asset data in the asset registry.

  • Bug Fix: Fixed a bug where stacking GamplayEffects that did not reset the duration on additional instances of the effect being applied and with set by caller durations would only have the duration correctly set for the first instance on the stack.All other GE specs in the stack would have a duration of 1 second.Added automation tests to detect this case.

  • Bug Fix: Fixed a regression causing actor overlaps to not properly trigger during initial level load even if bGenerateOverlapEventsDuringLevelStreaming was enabled.Fixed some incorrect related comments in the header.

  • Bug Fix: Fixed a bug that could occur if handling gameplay event delegates modified the list of gameplay event delegates.

  • Bug Fix: Fixed a bug causing GiveAbilityAndActivateOnce to behave inconsistently.

  • Bug Fix: Reordered some operations inside FGameplayEffectSpec::Initialize to deal with a potential ordering dependency.

  • 新規: SpawnActor では、要求された名前を SpawnActorParameters で受け入れるようになりました。要求された名前が使用できない場合、SpawnActor では null を返してエラーを報告するか、使用可能な固有の名前を生成することができます。

  • 新規: SceneCaptureComponent のコンポーネントを表示 / 非表示にする際に、子アクタのコンポーネントを含めるためのオプションを追加しました。

  • 新規: UChildActorComponent::SetChildClass では、目的のクラスのデフォルト インスタンスの代わりに使用するテンプレートを指定できるようになりました。archetype で使用する場合、保存されたテンプレートは供給されたテンプレートのコピーとなります。ワールド内のインスタンスで使用する場合はそのテンプレートを使用した一回限りの子アクタのスポーンとなりますが、その子アクタが破壊されて再作成されると、再び元のテンプレートを使用するようになります。

  • 新規: Added GetManagedObject のバージョンを、const であり、const パラメータを受け入れる SignificanceManager に追加しました。

  • 新規: UGameplayAbility に OnRemoveAbility 関数を含めました。OnGiveAbility と同じパターンを辿り、その機能のプライマリ インスタンスまたはクラスのデフォルト オブジェクトでのみ呼び出されます。

  • 新規: カメラ振動に「振動のソース」を定義する新しいアクタ / コンポーネント タイプと、減衰設定の一部を含めました。ユーザーは、一部の新しいブループリント関数を使ってこれらのソースに「固定」されたカメラ振動を開始することができます。その振動の強度は、関連するソースと現在のカメラとの距離に基づいて動的に変化します。

  • 新規: 現在プレイ中のカメラ振動のリストを取得する GetActiveCameraShakes 関数を追加しました。

  • 新規: ブロックされた機能タグを表示する際に、ブロックされたタグの総数がそのデバッグ テキストに含まれるようになりました。

  • 新規: 2 つのブロードキャスト デリゲートを GameViewportClient に追加しました。これらのイベントでは、UGameViewportClient::InputKey と UGameViewportClient::InputAxis イベントをそれぞれリッスンします。これらへの参照には、OnInputKey および OnInputAxis 関数を使ってアクセスできます。

  • 新規: レベル内での選択内容からブループリントを作成する機能が、ブループリントの名前、パス、作成モード、親クラスを指定するモーダル ダイアログボックスで提供されるようになりました。使用可能な作成モードは、Harvesting コンポーネント (以前はブループリントのメイン ツールバーのドロップダウンから使用可能)、Subclassing (以前は単一アクタの選択時に [Details] パネルから使用可能)、そして Child Actor (選択した各アクタの子コンポーネントを使ってアクタ ブループリントを作成する新しいモード) を介して提供されます。

  • 新規: 複数のアクタからコンポーネントを収集する際に、収集されるコンポーネント名にアクタの名前が含まれるようになりました。

  • 新規: UAbilitySystemComponent::InternalServerTryActiveAbility の名前を UAbilitySystemComponent::InternalServerTryActivateAbility.Code に変更し、さらに、InternalServerTryActiveAbility ではなく InternalServerTryActivateAbility を呼び出すようにしました。

  • 新規: スパース クラス データ タイプに対するデータ検証が向上しました。UHT では次のことをチェックするようになりました:

    • クラスごとに最大 1 つのスパース クラス データ構造体が含まれること

    • スパース クラス データ構造体が親クラスのスパース クラス データ構造体からの継承であること

    • すべてのスパース プロパティが BlueprintReadOnly および EditDefaultsOnly であること

    • ブループリントで割り当て可能なデリゲートはスパース プロパティにできないなこと

  • 新規: タグの追加 / 削除時に、ゲームプレイ タグの表示に引き続きフィルター テキストを使用します。以前の処理ではフィルタがクリアされていました。

  • 新規: 新しいタグをエディタで追加した際はタグ ソースをリセットしないでください。

  • 新規: 特定のタグ セットを含むすべての有効なゲームプレイ エフェクトの機能システム コンポーネントに対し、クエリを実行する機能を追加しました。この新しい関数 GetActiveEffectsWithAllTags には、コードまたはブループリントを介してアクセスできます。

  • 新規: ルート モーションの移動に関連する機能タスクが終了した際に、移動コンポーネントの移動モードが、タスクの開始前に設定されていた移動モードに返されるようになりました。

  • 新規: SpawnedAttributes を一時的なものにして、古くなる可能性のあるデータや間違っている可能性のあるデータが保存されないようにしました。現在保存されている古いデータが伝播されることを防ぐための null チェックを追加しました。これにより、SpawnedAttributes に不正なデータが保存されることで生じる問題を回避できます。

  • API Change: AddDefaultSubobjectSet has been deprecated.AddAttributeSetSubobject should be used instead.

ローカライゼーション

  • Bug Fix: String Table find/load is now deferred until the internationalization system is initialized.

  • Bug Fix: Correctly updated in-memory String Table asset references when a String Table asset is renamed.

  • Bug Fix: Translation Editor now shows stale translations as "Needs Review" rather than "Untranslated".

  • Bug Fix: Fixed an issue where Blueprint components instanced into a Level could lose their localization data.

  • 新規: 「除外クラス」のローカライゼーション収集オプションをローカライゼーション ダッシュボードに公開しました。

  • 新規:クック時にローカライゼーション データを個別の PAK チャンクに分割するためのサポートを追加しました。

    • 新しいパッケージ化オプションの LocalizationTargetsToChunk が追加され、これによってクック時にどのローカライゼーション ターゲットをチャンクにするかを指定できます。

    • これを有効にすると、アセットに対応するすべてのローカライゼーション エントリが、そのアセットを含むチャンクの個別の LocRes ファイルに分割されて、そのアセットを含まないすべてのチャンク (プライマリ チャンクも含む) からは削除されます。これは、ローカライズされたテキストをそのテキストに対応するアセットを含むチャンクに制限する場合に有用で、チャンクのルールに基づいてローカライゼーション データが選択的に暗号化されるようになります。

    • ランタイムでは、チャンクのロード時にこのチャンク データがテキスト ローカライゼーション マネージャーに自動的にロードされます。

  • 新規:フィールドとフィールド オーナー タイプで収集したメタデータをフィルタリングする機能を追加しました。これにより、アクタに属するすべてのプロパティを収集したり、関数以外のものをすべて収集したりすることが可能になります。

ネットワーキング

  • Bug Fix: Added support for IsEncryptionEnabled for child connection objects.

  • Bug Fix: Modified the network driver's accumulated time to use double precision.This changes the format of the stateless connection handshake packet used to negotiate a client to server connection.

  • Bug Fix: Added support for non-default allocator in the TArray passed to SafeNetSerializeTArray utility functions.Incoming array size is clamped if it is too large.Issues with bOutSuccess and return values have been fixed.

  • Bug Fix: Fixed a potential underflow error in the AES packet handlers.

  • Bug Fix: Fixed infinite recursion in UIpConnection::HandleSocketSendResult when SocketSend failure occurs with a PendingNetGame.

  • Bug Fix: Only limit the net tick rate if it's lower than the engine tick rate.

  • Bug Fix: Changed UActorChannel::ProcessQueuedBunches to better respect timeslicing.This addresses issues with over-logging warnings regardless of whether or not the channel was simply ignored for processing.

  • Bug Fix: Fixed an edge case in PackageMapClient where the NetGuidCache could return a partially loaded Package.

  • Bug Fix:ServerFrameTime sends the current frame's time instead of the previous frame.PacketInfo payload for ServerFrameTime and Jitter will now only be sent on the first packet of the frame.This reduces overhead when sending large data chunks in a single frame.

  • 新規: フル アドレス プロトコル解決とラウンド ロビン接続試行が IpNetDriver/IpConnection クラスで自動的に行われるようになりました。これによって IPv6 と IPv4 の両方のネットワークで接続できるようになるため、両方のネットワークを使用できるプラットフォームでは、その利点を活用してサーバーへの最良の接続方法を見つけることができます。

    • この動作が望ましくないプラットフォームでは、あらゆる基本クラス機能を呼び出す前に、接続クラス コンストラクタまたは InitLocalConnection および InitRemoteConnection のいずれかで DisableAddressResolution を呼び出す必要があります。これにより、継承された IpConnection クラスに対して解決が適切に無効になります。

    • テスティングの際は、完了したすべてのアドレス解決に常に値を追加する net.DebugAppendResolverAddress や、将来的に確立される接続でアドレス解決を無効にする net.IpConnectionDisableResolution などの CVAR を活用できます。

  • 新規: クライアントまたはサーバーでアクタの切り取りが発生した際に、有効なすべてのネットワーク ドライバーに通知するよう、アクタの切り取りを変更しました。

  • 新規: アクタ プロパティをネットワーク ドライバおよびレプリケーション グラフ内でレプリケートする際に、ローカルとリモートの役割をスワップする機能を追加しました。

  • 新規: 初期に休止状態のアクタに対する処理を最適化して、これらが単一フレームの有効なネットワーク オブジェクトのリストに追加されないようにしました (追加しても瞬時に削除されるためです)。

  • 新規: 他のモジュールで使用できるよう、FScopedActorRoleSwap をエクスポートする機能を追加しました。

  • 新規: NetConnection では、StatPeriod ごとにパケット損失のサンプルを取り、その現在の値をローリング平均値とともに InPacketsLossPercentage および OutPacketsLossPercentage 変数に保存するようになりました。

  • 新規: IPv6 サポートがすべてのデスクトップ プラットフォーム ビルドにデフォルトで含まれるようになりましたが、無効に設定されています。デバイス OS レベル サポートがあれば、CVAR net.DisableIPv6 を「0」に設定することで IPv6 を有効にできます。

    • ネットワーク アドレスは、可能な限り最良の状態で表現できるように、GetAddressInfo などの解決メソッドを介して渡すようにしてください。

    • SetIp および GetAddressFromString はいまだ使用可能ですが、接続プロトコルがどこにも定義されていない環境で使用するには、アドレスを変換しなければならない場合があります。

  • 新規: GetLocalBindAddresses は、最初の結果に依存するか、空のアドレスを返すのではなく、ソケットのバインド先としてマシンで使用可能なすべてのアドレスを取得する場合に使用できます。この新しい関数では自動的にマルチホーム要件を確認し、これらを適切に使用します。

  • 新規:GetLocalAdapterAddresses の新しい実装が導入され、現在のマシンに紐付けられているすべてのネットワーク アドレスをすべてのプラットフォームで取得できるようになりました。

  • 新規: レプリケートされたネイティブ プロパティに、RepIndex 値を使って列挙型を生成します。これらの列挙型をシンプルなマクロ展開と併用すると、UProperty ポインターをルックアップしなくてもプロパティの RepIndex を取得できます。

  • 新規: コマンドラインで「-NetTrace=[VerbosityLevel]」を指定すると、Net TraceChannel が暗黙的に有効になります。

  • 新規:ジッター計算を NetConnection に追加しました。ジッターとは、各パケット間のレイテンシーにおける差異を意味します。その値が「0」に近いほど、レイテンシーがより安定していることを示します。これをサポートするために、パケット ヘッダにはジッターの計算に使用するローカル クロック データが含まれて、パケット ヘッダ内の新しいジッター クロック時間を把握するために EEngineNetworkVersionHistory がより高く設定されました。

    • これによって事前と事後のエンジン ビルド間で接続が失敗します。

  • Improvement: Added configurable IMessageBus and Debug Name to Messaging RPC to improve encapsulation.

  • Deprecated: The RemoteSaturation variable has now been deprecated, and the InBytesPerSecond value will no longer be sent in every packet header.

  • Deprecated: NetConnection's BestLag variable is now private since it is just a mirror of AvgLag.

  • Removed: Deleted IPv6 specific classes, as they've been deprecated for several engine versions.

Replays

  • Bug Fix: Fixed incorrect use of a non-squared value in AActor::GetReplayPriority.

  • Bug Fix: Fixed a crash while using Play In Editor replays related to replicated level script actors.

  • Bug Fix: Fixed a race condition where replay events that are added immediately after beginning recording would be immediately discarded.

  • Bug Fix: Fixed incorrect scale on replicated level actors after scrubbing a replay.

  • Bug Fix: Fixed several warnings related to level script actors of streaming levels in PIE replays.

  • Bug Fix: Custom Delta Tracking state will not be created when recording or playing back replays. )

  • 新規: ユーザー文字列を受け取っていた、複数の非推奨リプレイ ストリーマー呼び出しを削除しました。

  • 新規: ゲームで任意のフレームごとのデータを記録できる機能をリプレイに追加して、再生時に FNetworkReplayDelegates::OnWriteGameSpecificFrameData および FNetworkReplayDelegates::OnProcessGameSpecificFrameData を使ってこのデータにアクセスできるようにしました。

  • Deprecated: Deprecated UNetConnection's InternalAck flag to eventually make it private.

レプリケーション グラフ

  • Bug Fix: Fixed debug actor counting towards the bandwidth budget in the replication graph.

  • Bug Fix: Fix ReplicationGraph ignoring traffic for the saturation calculations when ActorDiscoveryMaxBitsPerFrame is set to 0.This caused the ReplicationGraph to send more data than was budgeted by the MaxInternetClientRate.

  • Bug Fix: Upgraded ReplicationPeriodFrame to uint16 to fix an overflow error when the NetUpdateFrequency is very low.

  • Bug Fix:Fixed a bug with implicit cast of ReplicationPeriodFrame from uint32 to uint8.

  • 新規: 距離カリング テストを無視する FActorDestructionInfo にフラグを追加しました。

  • Improvement:DestructionInfo is now always sent to connections that are aware of AlwaysRelevant Actors.

  • Improvement: Optimized ReplicateDestructionInfo by not testing the destroyed actors list every frame.Instead, it will test if viewers are near destroyed objects only after they travel far enough from the previously tested location.

    • You can set Net.RepGraph.OutOfRangeDistanceCheckRatio to 0 to disable this optimization and test the destroyed Actor list every frame.

ソケット サブシステム

  • 新規: 有効なネットワーク アダプタ アドレスのみを返すよう、Windows GetLocalAdapterAddresses フィルタリングを改善しました。

  • 新規: ソケット サブシステムでは、割り当て時に特定のプロトコルに事前設定される FInternetAddrs の作成をサポートするようになりました。これによって、任意 / ブロードキャスト / ループバック アドレスを取得 / 作成する際の曖昧さが軽減されます。

  • Bug Fix: Fixed MULTIHOME command line argument in SocketSubsystemUnix.

オンライン

  • Crash Fix: Fixed a crash if a log message is emitted during vivoxclientapi initialization.

  • Bug Fix: Fixed Steam OSS initializing a server when starting a client build.This is an outdated initialization flow that was never meant to be a feature and is no longer necessary to perform at startup.To restore this behavior, set OnlineSubsystemSteam.bInitServerOnClient to true in any Engine*.ini file.

  • Bug Fix: Fixed the error messages in various online latent Blueprint actions to mention the correct action.

  • Bug Fix: Fixed a buffer overrun in FVoiceEngineImpl::ReadLocalVoiceData

  • 新規: Steam でのフレンド メッセージの表示と送信を実装しました。また、ユーザーのカートに商品を自動的に追加するためのストア オーバーレイと機能も実装しました。さらに、新機能をサポートするための既存の外部 UI ハーネスに関するテスト ケースも更新しました。

  • 新規: 複数のプレイヤーの同時参加をサポートするために、パーティー参加の承認フローを変更しました。

  • 新規: Pixel Streaming の設定において、"UseMatchmaker" フラグが true の場合に、Signalling Web Server が "matchmakerRetryInterval" 設定で指定された間隔 (デフォルトは 5 秒) で Matchmaker Server への接続を試みるようになりました。これは、Signalling Web Server と Matchmaker Server を起動する順序はいずれでも良いことを意味しています。

  • 新規: 「LastOnline」フィールドを OnlineUserPresence に追加しました。

  • 新規: 検証チェックによって以前のデータ値へのロールバックが求められた場合に、パーティー メンバー データのコピーを PostReplication に提供するようになりました。

  • 新規: NotifyPartyInitialized を PARTY_SCOPE 外に移動して、SocialManager のゲーム サブクラスでこれをオーバーライドできるようにしました。

  • 新規: HTTP/WSS/XMPP トラフィックをキャプチャするための OnlineTracing インターフェースを追加しました。

  • 新規: VivoxVoiceChat プラグイン - 「DefaultEngine.ini」ファイルの「VoiceChat.Vivox」セクションにある RtpConnectTimeoutMs と RtpTimeoutMs を介して rtp タイムアウト設定を公開するようにしました。

  • 新規: SocialToolkit に On(X)Complete スタブを追加して、関連する Handle(X)Complete ハンドラ内部から呼び出すようにしました。これにより、堅牢な API を維持しながら、ゲームでこれらの通知に対応できるようになりました。

  • 新規: 複数のローカル ユーザーに対するサポートを VivoxVoiceChat プラグインに追加しました。

  • 新規: リーダーボードへのクエリ実行時に追加のパラメータを使用できるようにするために、Leaderboards Interface をリファクタリングしました。コマンドの新しい構文は次のようになります:\ ONLINE TEST LEADERBOARDS LeaderboardName SortedColumn NColumnName NColumnFormat ...UserId UserId

  • Improvement: Updated the Online Subsystem to use SteamSDK 1.47.

  • Deprecated: Deprecated Steam voice packet classes.Steam no longer requires any platform-specific functionality as of UE 4.23.

BuildPatchServices

  • Bug Fix: BuildPatchServices will no longer call GLog->FlushThreadedLogs() when not on the main thread during directory chunking.

  • Bug Fix: Failing to load a file during chunking no longer causes an assert.

  • Bug Fix: Fixed an issue where a generated optimised delta between two binaries will break an installation if the destination binary is re-processed as different data, replacing the original manifest at the same version string.

  • Bug Fix: MergeManifests preserves the original, newly generated buildid rather than clobbering it with one of the input manifests.

  • Bug Fix: Extended the life of the IOptimisedDelta instances to match the FBuildPatchInstaller to avoid race conditions for destruction that occurred when finishing FBuildPatchInstaller::Initialize.

  • Bug Fix:Removed an unnecessary, explicit delete of resume data when completing an EInstallMode::StageFiles installer.

  • Bug Fix: Fixed a possible shutdown crash when packaging chunks.When processor classes complete quickly, the IBuildManifestSet instance will no longer be deallocated before other systems that are using it.

  • 新規: ビルド時に生成された ID を保存するために EFeatureLevel::UsesBuildTimeGeneratedBuildId を追加しました。

  • 新規: EFeatureLevel::UsesBuildTimeGeneratedBuildId またはそれより上位のもののマニフェストの保存時に、ビルド ID フィールドがマニフェスト メタデータ ブロックの一部としてシリアル化されるようになりました。このフィールドは FManifestMeta コンストラクタの一部として生成されるので、新しいマニフェスト オブジェクトが作成されると一意的に保存されます。

  • 新規: マニフェスト オブジェクトのロード時に、ビルド ID がシリアル化されるか、マニフェスト オブジェクトのバージョンに基づいてランタイムで生成されるようになりました。

  • 新規: 最適化されたデルタのダウンロード時に合理的な SHA1 とファイル リストを検証し、問題が検出された場合はエラーとともに拒否するようにしました。

  • 新規: BuildPatchTool の ChunkDeltaOptimise モードでは、供給されたソースと出力先のマニフェスト ファイルに基づいて、パッチ データに適切な出力 FeatureLevel を選択するようになりました。

  • 新規: 検証統計情報からファイル検証エラー カウンタを公開するようにしました。

  • 新規: メタ フォルダをステージングに追加して、「Install」ステージング フォルダにインストール ファイルのみが含まれるようにしました。「$resumeData」ファイルが以前の場所にある場合は新しい場所に移動しました。

  • 新規: シリアル化エラーの発生時にすぐに検出できるよう、FBuildPatchFileConstructor エラー ハンドリングをリファクタリングしました。

  • API Change: Renamed EFeatureLevel::StoresUniqueBuildId to EFeatureLevel::UsesRuntimeGeneratedBuildId.

HTTP

  • Bug Fix: The hotfix manager now informs the HTTP module when any HTTP section is updated (for example, [HTTP.Curl]).

  • Bug Fix: [HttpServer] Request query parameters are now correctly parsed with the "&" delimiter.

  • 新規: seek 関数を libcurl に実装しました。現時点では、接続の再試行時に生じる完全な巻き戻し用にのみ実装されています。

オンライン サブシステム

  • Bug Fix: Fixed an invalid cast of TSharedRef to FUniqueNetIdPS4& in FOnlineSessionPS4::StartMatchmaking.

  • Bug Fix: Fixed get user profile process returning failure on all paths.Fixed soting pointer to local user profile object leaving dangling pointers.

  • Bug Fix: Moved bShowBrowserPointer variable getter before ShowWebPageArg->SetPointerEnabled in order to set this using the boolean as expected.

  • Bug Fix: Fixed an inconsistency with the tests where we returned platform IDs instead of UE4 IDs, then passed them back in to the interface expecting UE4 IDs.

  • Bug Fix: Added propper state tracking for the Async task.

  • Bug Fix: Added error handling for individual achievement-setting tasks and fixed error reporting for batch achievement-writing tasks.Note that these tests are only valid for 2017/title-managed achievement format.2013/event-based achievements will correctly fail the write tests.Read succeeds.

  • 新規: インスタンス名を保存して、オンライン サブシステムを直接キャッシュしないように、ベース音声エンジンの実装を変更しました。

  • 新規: OnlineSubsystem のメソッド GetFirstSignedInUser では、完全にログインした最初のユーザーを検出して返すようになりました。それ以外の場合は、元の動作にフォールバックして最初のローカル ユーザーを返します。

  • 新規: Store および Purchase OSS インターフェースの使用に関するテストを追加しました:「online sub= test store」 - 例:ShooterGame ストアのオファー 9MWBK8Z14MXD の商品詳細を取得するための 「online sub=live test store 9MWBK8Z14MXD」 「online sub= test purchase」 - 例:ShooterGame ストアのオファー 9MWBK8Z14MXD のチェックアウトを開始するための 「online sub=live test purchase UNUSED 9MWBK8Z14MXD」

  • 新規: セッションに関連する変更の最初のパス。ユーザーはセッションをホスト、検索、参加することができます。

  • API Change: Updated FOnControllerPairingChanged (in OnlineIdentityInterface) to provide the number of controllers now assigned to the New and Previous user in the event.If New or Previous user is null, they will be considered to have 0 controllers.Updated the comment about LocalUserNum to be more clear that it describes a person, not a device.Anyone subscribing to FOnControllerPairingChanged will have to update the signature of their handler to take in the extra information.

WebSockets

  • 新規: OnWebSocket を追加し、デリゲートを作成しました。OnMessageSent デリゲートを追加しました。

XMPP

  • Crash Fix: Fixed a crash in FStropheWebsocketConnection::OnRawMessage when dealing with multiple XMPP connections.

  • Bug Fix: We now properly clean up closed XMPP connections by calling ProcessPendingRemovals through a new Tick function in XmppModule.

  • 新規: 実装に依存しないスタンザ データ ゲッターを公開するために、IXmppStanza アブストラクト インターフェースを追加しました。FStropheStanza は、これから継承されてオーバーライドするようになります。OnXmppConnection を追加し、デリゲートを作成しました。OnStanzaSent および OnStanzaReceived デリゲートを追加しました。これらは Strophe のみに実装されます。

Paper2D

  • Crash Fix: Updated Paper2DEditorModule to check the validity of GEditor before registering for OnAssetReimport.This prevents a crash when running a commandlet with IsEditor=false.

  • Bug Fix: The Sprite List window in the Sprite Editor now correctly shows all Sprites that come from the same texture as the one being edited.

  • 新規: プラグインからのチュートリアル アセットの登録に対するサポートを追加しました。さらに、Paper2D チュートリアル アセットを Paper2D プラグインに移動しました。

物理

  • Crash Fix: Generating a levelset from an empty triangle mesh no longer crashes the editor.

  • Bug Fix:Resolved a cloth binding issue that occurred when applying a cloth that has been created with the Remove-from-Mesh box checked.

  • Bug Fix: Resolved a debug issue by splitting symbols from PhysX/APEX for Linux Add PhysX/APEX and running the symbols as a DebugNonUFS runtime file for dependencies.

  • Deprecated:The Get Default Simulation Factory Class in Clothing Simulation Factory Class Provider is now deprecated.This is replaced by the Get Simulation Factory Class.

Platforms

  • Bug Fix: - Fixed the platform extension config location checks in C# to match C++

  • Bug Fix: Platform - When calculating screen density, we no longer fallback to 0.We instead report unknown, but we use 96 dpi as our default when returning screen density if we don't know it.This is both the default Windows assumes, and what we use internally for fonts in Slate.This allows us to at least do something reasonable on platforms that can't know the physical size of their screen.

  • 新規: Xcode 11 からの Apple Development および Apple Distribution 証明書に対するサポートを追加しました。

  • 新規: DDSPI を bSupportsGPUScene で更新し、さらに .inl プラットフォームのものもリファクタリングして、設定の追加を容易にしました。

すべてのモバイル

  • Bug Fix: Addressed a case in Mobile Patching Utilities where UMobilePendingContent object could be GCed while content download is in progress.

  • Bug Fix: Packaging will attempt to enforce the correct casing for project file paths to avoid problems when packaging/running builds from the editor to target platforms that are case sensitive (eg:Android & iOS).

  • 新規:モバイル デバイス プロファイルを見直しました。これらはすべてのユーザーに対して機能するわけではありませんが、高品質のモバイル ゲームをシッピングする上でより適切なものとなっています。

    • サポートされなくなった iOS および Android デバイスのデバイス プロファイルを削除しました。

    • 最小要件以上の Android デバイス (Adreno 4xx/Mali T6xx) は Android_Low、Android_Mid、Android_High、そして Scalablity Group 0、1、2 にそれぞれマッピングされました。

    • Vulkan はデフォルトで無効になり、Adreno 6xx Android 9+、Adreno G72/G76/G77、PowerVR 9xxx デバイスでのみ有効にできます。

    • 一連の iOS デバイスでは、スケーラビリティ グループを使ってポスト プロセスとシャドウ品質をマッピングします。

  • 新規: PIE の詳細オプション メニューで指定したセーフ ゾーンが、モバイル スタンドアローン PIE に適用されるようになりました。モバイル スタンドアローン PIE のデフォルト設定は ES3_1 機能レベルになります。

Android

  • Crash Fix: Fixed a crash that can occur when audio manager properties are missing.

  • Bug Fix: IsAllowedRemoteNotifications will now return false if GCM or Firebase plugin is not included for Android.

  • Bug Fix: Added a missing extension to HLSLcc to enable GL_EXT_texture_buffer for atomic imagebuffer operation.

  • Bug Fix: Added an option to force use of legacy ld instead of lld.

  • Bug Fix: Launch notification events will now be verified before registering them.

  • Bug Fix: Added an extra condition to check for 64-bit ABI support.

  • Bug Fix: Provided NDK20 fallback tool paths for some architectures.

  • Bug Fix:Disabled ld.gold for ARM64.

  • Bug Fix: Fixed an issue with Stratus XL triggers not appropriately firing input events on Android.

  • Bug Fix: Fixed bindings for DualShock controllers on Android devices running version 10 or greater.

  • Bug Fix: Empty AAR directories on Android will now be ignored.

  • Bug Fix: Fixed an issue with attempting to acquire WRITE_EXTERNAL_STORAGE when we already have it granted on non-shipping builds.

  • Bug Fix: Fixed a potential error in detection of needed install batch files for Android.

  • Bug Fix: Threshold trigger button pressed events are now optional by device type on Android.Some controllers do not need this functionality and will send double input events.

  • Bug Fix: Fixed issue with PLATFORM_USED_NDK_VERSION_INTEGER.It will now show the proper NDK level used to compile.

  • Bug Fix: Added AndroidRelativeToAbsolutePath to AndroidPlatformFile.

  • Bug Fix: Fixed an input issue that can occur with floating keyboards on Android due to improper Y offsets.

  • Bug Fix: Fixed an issue with the Android virtual keyboard interacting incorrectly with emoji when using backspace.

  • Bug Fix: Fixed linker warnings with libvrapi.so.

  • Bug Fix: Added bDisableFunctionDataSectionsoption for Android.Add this to DefaultEngine.ini under AndroidRuntimeSettings if you see an issue with R_AARCH64_JUMP26 being out of range with the linker.

  • Bug Fix: Fixed a compile error with bUseNEONForArmV7=true for Android where vqtbx1q_u8 is an A64 instruction.Now has a fallback to use FPU version for VectorContainsNanOrInfinite.

  • Bug Fix: Fixing readonly check for PlatformFile.

  • Bug Fix: Now using libc++_shared STL on Lumin to match rebuilt Android libraries.

  • Bug Fix: Deleted problematic copy constructors on named pipe.

  • 新規: 起動時に Java から OBB 用のパスとファイル名のオーバーライドを選択できるようになりました。

  • 新規: 新しい NDK 21 で必要なコンポーネントをインストールし、 Android 用の環境変数を設定するために Engine/Extras/Android スクリプトを追加しました。

  • 新規: Android メディア プレーヤー向けの WEBM を有効にしました。

  • 新規: Android 用に bDisableFunctionDataSectionsoption を追加しました。R_AARCH64_JUMP26 がリンカで範囲外になる問題が発生した場合は、これを AndroidRuntimeSettings にある「DefaultEngine.ini」に追加してください。

  • 新規: カーソル アセットをサポートしないプラットフォーム上での、カーソル アセットに対する再帰的なファイル システム検索を取り除きました。

  • 新規: QueuedThread を変更して、作業待機中に 10 ミリ秒ごとに起動しないようにしました。このような起動は意味のないコンテキストの切り替えを引き起こし、CPU 時間を無駄に消費します。この変更により、切り替え時に 0.3 ミリ秒が節約されます。

  • 新規: Gradle プロジェクトに対してより多くのコントロールを追加しました。UPL では次を使用できます。

    • — gradle.properties の ANDROID_TOOLS_BUILD_GRADLE_VERSION を設定します

    • — settings.gradle を追加します

  • Improvement: Updated small OBB limit to 1 Gb.

  • Improvement: Improved the Network Changed Manager's ability to detect offline networks that are incorrectly identified as having a connection by the Android system.

iOS

  • Bug Fix: The iOSReplayKit plugin's blueprint functions are now allowed to be used in the editor and on other platforms as stub functions.

  • Bug Fix: Prevents an error being displayed in the log before staging if the bundle is not already installed.

  • Bug Fix: GameCenter popup no longer appears on iOS even when GameCenter is deactivated.

  • Bug Fix: Fixed issue with iOS remote build ssh command failing for some Windows users.

  • Bug Fix: Made a change to prevent iOS provisioning parse failure when remote building on a Mac without internet access.

  • Bug Fix: Re-enabled iOS Metal GPUtime by removing any overlaps between commandlists, including overlaps across frames.GPUtime is counted as close to the expected end of pipe time as possible.

  • Bug Fix: Fixed FMetalShaderPipeline initresourcemask.

  • 新規: iOS のサムスティック ボタンと左のスペシャル ボタンに対するサポートを追加しました。

  • 新規: Client ターゲットに対する tvOS のパッケージ化が失敗する問題を修正しました。

  • 新規: より多くのブレンド モードを事前に初期化するため、PSO キー内のメタル ブレンド状態のビット数を 5 から 7 に増加しました。

  • 新規: UE4 で作成したファイルを iOS デバイスのファイル アプリで表示するためのプロジェクト設定を追加しました。

  • 新規: 手動コマンド バッファ内部リソース トラッキングとデバッグ グループの関連付けを削除しました。

    • これでトラッキングしていたデータは Xcode ツールから使用できます。

    • 手動リソース トラッキングではメタル検証レイヤーとの補間がうまく行われず、開発 / デバッグ環境では終了時にクラッシュしていました。

Linux

  • Bug Fix: Fixed issue that prevented editor windows from restoring when minimized.

  • Bug Fix: Added PLATFORM_LINUXAARCH64 to Platform.h

  • Bug Fix: Set UserTempDir for Linux to $TMPDIR or fallback to /var/tmp

  • Bug Fix: Added missing space to SanitizerInfo string.

  • Bug Fix: Implemented module path name for Unix to avoid hard coded default path.

  • Bug Fix: Disabled ispc for Linux AArch64 Currently using ispc v1.12 which has add "experimental AArch64" support.

  • Bug Fix: Addref Vulkan memory allocation so it's released when not used by framebuffer and surface FrameBuffer ctor was creating a view directly onto a texture surface, but was not holding the allocated memory.If the texture was freed before the framebuffer was destroyed, we could run into use after free type issues.

  • Bug Fix: Fixed Linux address sanitizer builds.

  • Bug Fix: Reduced NullRHI static buffer size by using dynamic buffer Reduces allocation size & fixes potential silent buffer overrun.

  • Bug Fix: Fixed issue with shell script not being able to handle quoted arguments.

  • Bug Fix: Default LinuxAArch64 platform in binary now builds to the same default as Linux platform.

  • Bug Fix: Don't add local launch device for Linux AArch64 platform Local device right now will never be an Arm64 device.

  • Bug Fix: Set PrecompileForTargets to None for AArch64 builds of SoundVisualizations and Kiss_FFT.

  • Bug Fix: Send 127.0.0.1 by default for Linux/Mac as well for UnrealInsights.Since there's no Event to close dont need to check for this.

  • Bug Fix: Added win64 platform check for VisualStudioDTE.

  • Bug fix: Fixed Linux build break with case sensitive headers.

  • Bug Fix: FixedLinux build break (SEnumComboBox.h -> SEnumCombobox.h)

  • Bug Fix: Fixed race when two threads are trying to create a folder on Linux.

  • Bug Fix: Fixed command quoting in Linux chmod command.

  • Bug Fix: Override GetPortableCallstack to avoid 1MB allocations in crash signal handler.

  • Bug Fix::Removed VulkanLinuxPlatform RenderOffScreen logging.

  • Bug Fix: Fixed Linux build break (includes paths with backslashes)

  • Bug Fix: Fixed UnrealBuildTool unused variable warnings.

  • Bug Fix: Fix for ISPCTexComp dll not loading on projects on a different directory.Fixes this warning on UE4Editor startup:LogCore:Warning: dlopen failed: /epic/UE4.git/Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so: cannot open shared object file:No such file or directory LogTextureFormatIntelISPCTexComp:Warning:Unable to load ../../../Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so

  • Bug Fix: Ensures start time for events is now greater than last end time for all nodes.

  • Bug Fix: GpuProfilerEvent times now clamp to valid values, SanitizeEventTree was not clamping start times to be >= to previous root start times, so we were hitting asserts in TraverseEventTree() for: lastStartTime >= GpuProfilerEvents[Root].GetStartResultMicroseconds().Also removed unused variables.

  • Bug Fix: Now using secure_getenv() instead of getenv().

  • 新規: ツールチェーンが不足している場合の警告は Linux と Win64 でのみ表示されるようになりました。

  • 新規: Linux のサニタイザー情報をビルド詳細に追加しました (設定されている場合)。

  • 新規: nvTriStrip および ForsythTriOptimizer を UE Clang ツールチェーン (libstdc++ とのリンク) でビルドし、MeshBuilderCommon の stdc++ 依存を削除しました。

  • 新規: LinuxAArch64Server および LinuxAArch64Client ビルド ターゲットが追加されました。

  • 新規: VULKAN_ENABLE_DUMP_LAYER を「VulkanLinuxPlatform.h」に追加しました。

  • 新規: Linux では、システム コンパイラはデフォルトのフォールバックではなくなりました。「-ForceUseSystemCompiler」コマンドラインが渡された場合にのみ、システム コンパイラに対するチェックを行って使用するようになりました。「-ForceUseSystemCompiler」が指定されていて、システム コンパイラが見つからない場合、Epic コンパイラはデフォルトとしては使用されなくなります。

  • 新規: Linux アーキテクチャを Linux の [Package Project (プロジェクトをパッケージ化)] サブメニューに移動しました。PlatformSubMenu ini エントリを DataDrivenPlatformInfo セクションに追加し、これらを FPackageProjectMenu::MakeMenu() で結合しました。

  • 新規: Linux SDK の「Toolchain Not Found (ツールチェーンが見つからない)」問題に対するエラー メッセージに、より詳細な情報を追加しました。次の 3 つのケースがあります。

    • .$ LINUX_MULTIARCH_ROOT=/tmp/foobar make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames.Setting up Mono Building BlankProgram...Unable to locate Linux SDK toolchain at /tmp/foobar/x86_64-unknown-linux-gnu.ERROR:GetBuildPlatform:No BuildPlatform found for Linux make: ***[Makefile:183: BlankProgram] Error 5

    • make BlankProgram ARGS="-forceusesystemcompiler" bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development -forceusesystemcompiler Fixing inconsistent case in filenames.Setting up Mono Building BlankProgram...Unable to locate system compiler (-ForceUseSystemCompiler specified). Error GetBuildPlatform:No BuildPlatform found for Linux make: ***[Makefile:183: BlankProgram] Error 5

    • LINUX_MULTIARCH_ROOT= make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames.Setting up Mono Building BlankProgram...Unable to locate Linux SDK toolchain.Please run Setup.sh.ERROR GetBuildPlatform:No BuildPlatform found for Linux make: ***[Makefile:183: BlankProgram] Error 5

  • 新規: Linux AArch64 FreeType2 ライブラリが追加されました。

  • 新規: Linux のオフスクリーン Vulkan レンダリングに対するサポートを追加しました。これは -RenderOffScreen フラグを使って有効にできます。これにより、オフスクリーンのレンダリング時に発生するスレート関連のいくつかの問題が修正されます。

  • 新規: Linux AArch64 向けに Neon Iinstrinsics を有効にしました。

  • 新規: 新しい llvm clang 9.0.1 v16 ツールチェーンに移行しました。

  • 新規: bGdbIndexSection Bool を LinuxToolChain に追加しました。

  • 新規: FreeType2 v2.10.0、ICU 64.1、HarfBuzz 2.4.0 向けの Linux AArch64 ライブラリを追加しました。コンパイル スクリプト間に「BuildForLinuxAArch64.sh」を含めて、インストールされたエンジン ビルドに LinuxAArch64 を追加し直します。

  • 新規: Linux では常に lld リンカを clang v9 以降と併用するようになりました。

  • 新規: .debug_pubnames と .debug_pubtypes セクションを、GDB インデックスへの変換に適した形式で生成できるようになりました。このオプションは、GDB インデックス バージョン 7 を作成可能なリンカでのみ有用です。

  • 新規: bGdbIndexSection Bool に protected を追加しました。

  • 新規: Python2.7 for Linux の新しいビルドでは zlib、bz2、ssl をサポートするようになりました。

  • 新規: インストールされたコピーを使用しており、Mono が >= 5.0 である場合は、Linux の Mono で MSBuild を使用します。

  • 新規: ini ファイルの一括書き込みが可能になりました。

Mac

  • Bug Fix: Move GetTickableObjects() and GetPendingTickableObjects() definitions to cpp to ensure there's only a single instantiation.This fixes editor objects not ticking and updating sometimes.

  • Bug Fix: Fixed a path encoding issue when drag-dropping files containing non-ASCII characters on macOS

  • Bug Fix: Re-enable FMacPlatformProcess::IsSandboxedApplication.

  • Bug Fix: Moved a couple of Cocoa calls that hide the window on Mac before it's destroyed to the main thread.This should solve a rare game hang at exit.

  • Bug Fix: Fixed crash at exit on shutting down the PSO cache

  • 新規: Metal RHI ランタイム仮想テクスチャ サポートを有効にしました。

  • 新規: Linux 実装に基づいて、Mac 向けに FPlatformMisc::GetCPUBrand() を実装しました。また、__cpuid intrinsic を使用するよう FMacPlatformMisc を切り替えました。

  • 新規: MacOS 向けの Metal RHI ランタイム仮想テクスチャ サポートを有効にしました。

Windows

  • Bug Fix: Reset Windows key mappings when input language changes

  • 新規: リモート デスクトップではマウスの移動イベントで絶対マウス位置を使用するため、Windows のリモート デスクトップに Raw 入力シミュレーションを追加しました。これにより、RDP でカーソルが停止する問題を回避できます。

レンダリング

  • Crash Fix: Wait for streaming Virtual Texture transcode to complete before deleting file handles.Fixes a rare race condition crash when destroying then recreating a streaming Virtual Texture.

  • Crash Fix: Fix import crash with low guide count for hair grooms.

  • Crash Fix: Disabled render to Virtual Texture on primitives with no Static Mesh, which fixes a crash when inadvertently adding a render to Virtual Texture on a scene primitive component that doesn't support it such as a Brush component.

  • Crash Fix: Fixed a crash due to giving a negative MipCount to "RHICalcTextureCubePlatformSize" from various engine Texture classes.

  • Crash Fix: Fixed a crash when trying to ray trace the sky light prior to generation of sky light importance sampling data.

  • Crash Fix: Fixed crash in Pixel Streaming Signaling Web Server when some users disconnected.

  • Crash Fix: Fixed Vulkan crash on shutdown in TEST/SHIPPING.

  • Crash Fix: Don't transition single mip individually.This is not needed, and also causes inconsistent layouts across the different mips, which fixes a crash when enabling edit layers on landscape.

  • Crash Fix: Fixed crashing that could occur in Vulkan on exit in certain circumstances.

  • Crash Fix: Fixed the handling of "FRHITextureReference" in Vulkan that could cause a crash when importing UDIM textures.

  • Crash Fix: Fixed crashes that could happen in D3D12 when indirect argos buffer can be a previously pending UAV, which becomes a PS\Non-PS read.ApplyState will flush pending transitions, so enqueue the indirect arg transition and flush afterwards.

  • Crash Fix: Fixed a crash that could happen when "OnWorldCleanup" is called with "NewWorld == this".This happens when loading levels through the Content Browser and modifying the "Levels".In this case, do not clean up the persistent uniformbuffers of the FScene, as it will not be deleted

  • Crash Fix: Applied a fix for editor crashes when pressing Build.

  • Crash Fix: Fixed a D3D12 crash where it initialized over garbage data in the StreamOut section of D3D12_GRAPHICS_PIPELINE_STATE_DESC. This also initialized D3D12_COMPUTE_PIPELINE_STATE_DESC and added missing validation code to PSO creation.

  • Bug Fix: Added fix for incorrect vertex indexing in canvas tile renderer.

  • Bug Fix: Fixed a missing barrier in "RenderUnderWaterFog."The pass was not calling "CopyToResolveTarget" and therefore the render target was left in a writable state.

  • Bug Fix:Fixed an issue with a nullptr vertex buffer being passed in with "FSkinWeightLookupVertexBuffer".The "GetNeedsCPUAccess" check was overriding the check for valid "VertexBufferRHI", when setting bSRV, in FSkinWeightLookupVertexBuffer's "InitRHI" function.

  • Bug Fix: Added debug names to Distance Field lighting resources to aid debugging.

  • Bug Fix: Fixed the creation of cube array resources in the reflection environment.The old code was clamping the minimum number of cubes in the reflection environment cube array to 2.This would force that the RHI resource was always an array, rather than a single cube.This is no longer necessary.

  • Bug Fix: Fixed incorrect barriers in Light Propagation Volumes.Auto-write was enabled on the LPV targets despite the LPV system handling the required barriers manually.

  • Bug Fix: Fixed missing resource barriers in "PrecomputedVolumetricLightmap.cpp."

  • Bug Fix: Resolved an issue that was causing negative draw call counts.

  • Bug Fix: Fixed a validation error in "FVulkanResourceMultiBuffer" to store the size explicitly when using BUF_Volatile when updating buffers larger than the default MaxSize.

  • Bug Fix: Moved Vulkan indirect draw barriers into Transition Resources making it impossible to transfer a resource used as a normal shader resource, which is rarely done in practice.A transition refactor will fix this.

  • Bug Fix: DX12 bulk data texture upload now works properly with mipmapped texture arrays and compressed textures.

  • Bug Fix:Fixed an issue with FRHIGPUFence by adding a thread safe counter to prevent "Poll" from returning wrong values while "Enqueue" hasn't yet been processed.

  • Bug Fix: Fixed an incorrect check for usage of scene depth by a material.

  • Bug Fix: Fixed a tangent space computation for Material Billboard component.

  • Bug Fix: Fixed "CopyToStagingBuffer" implementations on D3D12.Other platforms apply the Offset parameter to the source buffer address only.

  • Bug Fix: Applied a fix for case when "MAX_SRVS == 64" and "CurrentShaderSRVCounts == 64".

  • Bug Fix: Added a fix for textures accidentally not getting any inlined mips.

  • Bug Fix: Added vertex buffer debug names to DX11 RHI.

  • Bug Fix: Some 64-bit fixes for "FTextureSource" that fixes import of large UDIMs.

  • Bug Fix: Standardize "-novendordevice" on D3D11, D3D12, and Vulkan.

  • Bug Fix: Fixed compiler warnings in MCPP and made main arguments a dynamic array when "MAX_OPTIONS" is exceeded.

  • Bug Fix: Fixed incorrect calculation of tangent space in landscape vertex shader.

  • Bug Fix: Fixed incorrect calculation of Runtime Virtual Texture volume bounds when copying from a component with zero volume bounds.

  • Bug Fix: Fixed calculation of footprint offset for DX12 texture copy.The previous logic was only correct if copying a mip or slice range starting at zero.

  • Bug Fix: Fixed an issue computing wrong sizes for mips of non-power of two UDIM texture when computing Virtual Texture address wrapping.

  • Bug Fix: Fixed issues with the Virtual Texture Streaming property in the Texture Editor that would be hidden if the project has Virtual Texturing disabled.This also includes a fix for the Thumbnail/editor text that reflects the actual VT state of the texture, not just the property being set.

  • Bug Fix: Fixed lifetime issues with VulkanShaders deleting themselves while still needing to be used.

  • Bug Fix: Fixed DiaphragmDOF on data driven platforms.

  • Bug Fix: Added shader index to FD3D12RayTracingShaderTable's "FShaderRecordCacheKey."This fixes a problem where same resources may be bound at the high level to records that have potentially different local root parameter layouts.

  • Bug Fix: Making overlay menu button transition on click from + to x when menu is opened/closed.

  • Bug Fix: Fixed the wrong atmosphere being applied on opaque objects in front of it.

  • Bug Fix: Fixed rare validation error issues with transition textures that are not render targets or depth targets to GENERAL initially.This makes Vulkan work as D3D reading uninitialized textures used to create a validation error.

  • Bug Fix: Fixed unity test breakage caused by Vulkan global function by fixing a typo inside "DumpMemory".

  • Bug Fix: Added option to do a single renderpass for shadows which fixes flickering on some devices and improves performance.

  • Bug Fix: Fixed a sample out-of-bounds issue in single layer water pass.

  • Bug Fix: Fixed potential denormalized quaternion when manipulating atmospheric lights.

  • Bug Fix: Fixed hair strand bounding box when attached to Skeletal Mesh.

  • Bug Fix: Moved Abstract specifier out of "HideCategories" list in "SceneCaptureComponent".

  • Bug Fix: Removed hair from environment capture and Planar Reflection capture.

  • Bug Fix: Fixed HISM not updating scale and rotation in the game mode.

  • Bug Fix: Fixed the wrong hair width being displayed into the group option in the Details Panel.

  • Bug Fix: Applied fixes to DX12 for potential erroneous transition when using "ReadSurfaceData/GetStagingTexture:.Also, fixed "ReadSurfaceData" of DXGI_FORMAT_R8_UNORM render targets.

  • Bug Fix: Fixed non-determinism in cooked UMapBuildDataRegistry.

  • Bug Fix: Fixed dummy texture being overwritten in some cases.

  • Bug Fix: When computing instances dithering LODs, offset instances by the mesh pivot to match CPU LOD logic more closely.

  • Bug Fix: Wait for Streaming Virtual Texture transcode to complete before deleting file handles.

  • Bug Fix: Fixed responsive TAA on translucent materials.

  • Bug Fix: Applied fix for FConditionalScopeResourceBarrier-related assert to not trigger a resource transition for resources that don't have state tracking enabled when the source and destination state are identical (in the case of the landscape edit layers :CPU readback resource, whose state is always D3D12_RESOURCE_STATE_COPY_DEST) This could be handled on the client side by not using a FConditionalScopeResourceBarrier object in the first place but this would require the client to do pretty much what the scope object does internally.

  • Bug Fix: Added a workaround for corrupt instancedata.

  • Bug Fix: Applied fix for FXSystem being reused across level changes.

  • Bug Fix: Added Option to prevent multithreaded PSO creation.Temporarily disabled multithreaded PSO creation on some problematic devices.

  • Bug Fix: Fixed an issue where bHasInputAttachments was never initialized.

  • Bug Fix: Release uniformbuffers when the world is cleaned up.This releases a lot of render target references.

  • Bug Fix: Release FXSystem GPU resources "onworldcleanup."This frees some lingering render resources that are not free until the UWorld is released, which it might never be.

  • Bug Fix: Fixed two validation issues in Vulkan caused by the Track Editor Thumbnail.

  • Bug Fix: Fixed computation of miss shader table size.

  • Bug Fix: Added missing Vulkan pixel formats.

  • Bug Fix: Fixed an issue with "RHIReadSurfaceData" not allocating a large enough buffer.Fixes an issue with texture painting.

  • Bug Fix: Fixed Vulkan shutdown issue that could happen when refcount from pending state would hit 0.It would end up modifying the array being iterated on.

  • Bug Fix:Fixed Vulkan "RHIReadSurfaceData" when reading back mip levels other than 0.Added missing transition back to Readable in LandscapeEditLayers and added VULKAN_EXTERN_EXPORT for VULKAN_ENABLE_IMAGE_TRACKING_LAYER.

  • Bug Fix: Fixed an issue with Sky Light triggering a check when set to 0 ray traced samples per pixel.

  • Bug Fix: Fixed more incorrect NEE Pdf calculations due to not taking exact material determination and ordering into account.

  • Bug Fix: Fixed erroneous calculation of NEE Pdfs for environment contribution off of diracs.

  • Bug Fix: Fixed HitT not set on full payload.PackedPayload is overwritten at the end of the shader.

  • Bug Fix: Fixed incomplete tool tip for building static lighting, that was giving misleading information on the reasons building lighting could be disabled.

  • Bug Fix: Fixed mip sky light pdf texture and solid angle texture defines set in the incorrect location for sky light direction sampling.

  • Bug Fix: Fixed shader compile fails when 'GBUFFER_HAS_TANGENT' is enabled.

  • Bug Fix: Applied a fix for Background Blur in UMG being filled with black when UI.CompositeMode is used in HDR.

  • Bug Fix: Shader compile log messages now appear during shader compile instead of after all shaders compiled.

  • Bug Fix: Updated debug name of render targets when they are recycled.

  • Bug Fix: Disabled "r.Vulkan.UploadCmdBufferSemaphore" to fix a validation error on shutdown.

  • Bug Fix: Added a fix to prevent overwriting perv cloth xform since cloth xforms are written multiple times per frame.

  • Bug Fix: Fixed pixel depth offset invariance between depth pass and base pass that was causing z-fighting in some cases.

  • Bug Fix: Write out 0s instead of FLT_MAX when morph target LOD's bounds are absent (lower LOD isn't using full morth target buffer).

  • Bug Fix: Fixed a typo for initial layout transition wasn't actually using the intended layout type.

  • Bug Fix: Fixed inverted V component when using hair root UV.

  • Bug Fix: Do not perform project setting based validation on engine visualization materials during DDC warming.

  • Bug Fix: Make AO decals respect meshes that disable receiving decals.

  • Bug Fix: Refactor RT selection during base pass into a single function.Expose helpers to retrieve used RT for specific systems.

  • Bug Fix: Exposed pre-skinned vertex buffer to local vertex factory so that pre skin vertex position is available to material nodes that use it when derived vertex factories generate position buffers that are post skinned.This is particularly relevant for GPUSkinCache.

  • Bug Fix: Removed applying decal fade all the time in the shader.It is by design that the fade parameters are exposed to the material and it will decide how "fade" is applied to the material.

  • Bug Fix: Fixed decals reading GBufferA.It cannot be always indiscriminately set as a RT.Packing active RT together as we do with base pass shading.

  • Bug Fix: Handle RT bindings for decals that write or read to Gbuffer.normals.

  • 新規:PS ステージの UAV が通常のリソースとしてバインドされ、「SetRenderTargets」との関連がなくなりました。

  • 新規: 髪の束向けのスパース ボクセル化機能を追加しました。これにより、ライトで「ディープ シャドウマップ」が有効になっていない場合に、髪と毛皮に関してより詳細な設定を行うことができます。

  • 新規: "FrameIndex" オーバーライドを "FSceneView" に追加しました。

  • 新規: 仮想テクスチャ用のデフォルトのストリーミング優先度を調整して、標準的なテクスチャ ストリーミングの優先度と一致するようにしました。

  • 新規: ランタイム仮想テクスチャ ストリーミング ミップを BMP 画像形式にエクスポートするためのサポートを追加しました。

  • 新規: グルーム コンポーネントにソース メッシュ スロット (オプション) を追加して、グルーム コンポーネントがアタッチされているスケルタル メッシュとは異なるメッシュに対して髪を投影できるようにしました。ソース メッシュとターゲット メッシュは同じ UV 空間を共有している必要があります。

  • 新規: ランタイム仮想テクスチャ ストリーミング ミップの Crunch 圧縮のサポートを追加しました。

  • 新規: スケルタル メッシュにグルームのバインディング情報を格納するグルーム バインディング アセットを追加しました。

  • 新規: CPU バージョンから完全に同じ投影マトリックスおよび視線マトリックスをビルドする関数を提供する「Matrices.ush」を追加しました。

  • 新規: 「FFileCache」(仮想テクスチャ システムで使用されるファイル キャッシュ) のサイズを 32MB から 16MB に縮小しました。サイズ設定を変更できるようにするには、コンソール変数 "fc.NumFileCacheBlocks" を使用します。

  • 新規: DX12 の SRV 制限を 48 から 64 に増やし、50 SRV のシェーダが適合するようになりました。

  • 新規: パフォーマンスを向上させる髪のレンダリングの可視性パスを追加しました (デフォルトで有効です)。

  • 新規: 髪の束があるときにライト チャンネルがサポートされるようになりました。

  • 新規: コンポーネントを登録するときに、「CaptureOnMovement」が考慮されるようになりました。これにより、"CaptureOnMovement" が無効になっているときにエディタでレンダー ターゲットが更新されなくなります。したがって、もしそれが無効になっている場合、レンダー ターゲットを初期化し、必要に応じて更新する必要があります。

  • 新規:UPrimitiveComponent の「Set Custom Primitive Data Internal」が 0 未満の無効なインデックスを送信しないように、ガードを追加しました (上限に対するガードはすでに存在します)。

  • 新規: 髪の幅といったようなグルーム インスタンスと髪コンポーネントに髪のグループ情報を追加しました。ルートとチップはオーバーライドできます。

  • 新規: マルチスレッド レンダリング モードで実行しているかどうかに依存するフラグを使用した、テクスチャをステージするストリーミング仮想テクスチャを作成しました。これにより、非常に遅い D3D11 非マルチスレッド モード時のパフォーマンスが改善されます。

  • 新規: 画像書き込み API を TArray から TArray64 データに変更しました。それにより、20 億ピクセルを超える画像を扱えるようになります。

  • 新規: 新しいランタイム仮想テクスチャ形式「BaseColor_Normal_Specular_Mask_YCoCg」を追加しました。これにより、RVT マテリアルで一般的に使用される 8 ビットの「マスク」チャンネルが使用できるようになります。

  • 新規: グルーム アセットをインポートするときに、検証と時間の見積もりが行われるようになりました。

  • 新規: 「ClearUnusedGraphResources」のマルチシェーダ バリアントを追加しました。

  • 新規: "CanCreateNew" 関数を "UTexture2DArrayFactory" に追加しました。

  • 新規: 「GRHIMinimumWaveSize」を追加しました。これは、現在の GPU で可能な最小の GPU SIMD 幅をクエリするために使用できます。値は、GPU アーキテクチャに応じて「4」から「128」の間になります。

  • 新規: "bSupportsWaveOperations" を "FDataDrivenShaderPlatformInfo" に追加しました。

  • 新規: jpeg および EXR ファイルの書き込みについて、64 ビットのサポートを追加しました。

  • 新規: FD3D11DynamicRHI::RHIBlockUntilGPUIdle 関数を実装しました。

  • 新規: DXC を Vulkan シェーダ コンパイラに統合しました。Vulkan の DXC パスは、コンソール変数「r.Vulkan.ForceDXC」で有効にできます。現在、これは Windows プラットフォームでのみサポートしています。

  • 新規: 「"r.DumpSCWQueuedJobs"」の名前を「"r.ShaderCompiler.DumpQueuedJobs"」に変更しました。

  • 新規: 「"r.SkipShaderCompression"」の名前を「"r.Shaders.SkipCompression"」に変更しました。

  • 新規: オプションとして、インスタンス スタティック メッシュのインスタンスごとのカスタム データを追加しました。これには、インデックスによってカスタム データをサンプリングするマテリアル ノードが付属しています。また、データ用のブループリント セッターも追加しました。このデータは、InstanceStaticMesh コンポーネントでシリアル化されます。デフォルトでは、カスタム データの浮動小数点値の数は 0 であり、これは追加のデータを割り当てません。アロケートする

  • 新規: sRGBテクスチャに「VkImageFormatListCreateInfoKHR」を使用できるようになりました。

  • 新規: SkyAtmosphere コンポーネントが、アクタ インスタンスからアクセスできるようになりました。

  • 新規: レンダー グラフを介して初期 CPU データで構造化バッファと頂点バッファを作成できるようになりました。

  • 新規: "FRHIAsyncComputeCommandList" を "FRHIComputeCommandList" に変換しました。また、 "FRHIComputeCommandList" から継承するために "FRHICommandList" を移動しました。

  • 新規: ピクセルごとの SkyAtmosphere 透過率を計算するオプションを追加しました。これは、コンソール変数「r.SkyAtmosphere.TransmittanceLUT.LightPerPixelTransmittance」で制御できます。

  • 新規: コンソール コマンド「r.Vulkan.GPUValidation」を用いて、GPU 支援の検証ができるようになりました。

  • 新規: AMD D3D12 ベンダー拡張サポートを実装しました (カスタム UAV ルート署名バインディングを備えています)。

  • 新規: RHI に Global Uniform Buffer のサポートを追加しました。

  • 新規: "DataDrivenPlatformInfo" の bSupportsUInt64ImageAtomics、"COMPILER_SUPPORTS_ULONG_TYPES" と "COMPILER_SUPPORTS_UINT64_IMAGE_ATOMICS" のコンパイラ定義、および汎用の "ImageInterlockedMaxUInt64" 抽象化を実装しました。

  • 新規: RHI ビューポートが浮動小数点パラメータを受け取るようになりました。

  • 新規: \DataDrivenPlatformInfo に bSupportsRTIndexFromVS を追加しました。

  • 新規: プリミティブ シェーダをサポートするため、汎用フックを追加しました。

  • 新規: GRHISupportsPrimitiveShaders 機能フラグを実装しました。

  • 新規: コマンドライン "-NumAFRGroups=" は、AFR グループの数の設定に加えて、AFR を指すようになりました。したがって、単純に "-AFR" と指定した場合、以前と同様に "NumAFRGroups" は "MaxGPUCount" に設定されます。

  • 新規: データ ドリブン プラットフォームで、一時的な履歴のアップスケールのサポートを追加しました。

  • 新規: AGS を 5.4 にアップグレードしました。これにより、AMD 製ハードウェアと (他の機能の中でも) D3D12 のカスタム UAV バインド スロットで、64 ビットのアトミックがサポートされるようになりました。

  • 新規: Windows 専用の全画面表示拡張機能の Vulkan サポートを追加しました。

  • 新規: SkyAtmosphere のトランスフォームに従うため、大気用の SkyAtmosphere コンポーネント オプションを追加しました。

  • 新規: SkyAtmosphere にピクセルごとの透過率をサンプリングする際の、仮想惑星のシャドウを追加しました。透過率 LUT には惑星のシャドウが含まれていないため、スペース ビューではある惑星から別の惑星へのシャドウは完全に表示できませんでした。現時点では、これは単純なレイ / スフィアを交差させることで表示できます。将来的には、透過率 LUT (mu の最後のテクセル データ) に統合する予定です。

  • 新規: 詳細な RHI コマンド プロファイリング イベントを制御するコンソール変数を追加しました。イベントのトレースを有効にするには、「r.RHICmdTraceEvents=1」を使用します (デフォルトではオフです)。

  • 新規: Buffer Visualization (バッファの可視化) をマテリアル インスタンスで設定できるようになりました。

  • 新規: シェーダのカテゴリとシェーダ クック統計がサポートされるようになりました。また、いくつかのツールヒントを含む「CompileTime」統計を追加しました。

  • 新規: Vulkan オブジェクトからのメモリリークをデバッグする際に役立つトラッキング コードを追加しました。これはデフォルトでは無効になっています。有効時にダンプするには、「r.vulkan.dumpmemory」を使用します。

  • 新規: 「MinBitrate」コンソール変数が追加されました。これにより PixelStreaming は、MinBitrate の値を下回った場合に WebRTC が推奨するビデオ エンコーダ ビットレートを無視します。これは、インタラクティビティを犠牲にして低ビットレート接続でのビデオ品質を向上させたい時に便利です。デフォルトでは無効になっています。

  • 新規: マテリアルによってコンパイルされたシェーダの統計を追加しました。

    • 「CookByTheBook」は、.csv ファイルを Saved/MaterialStats に出力するようになりました。

    • 統計ビューに、そのフォルダのすべての .csv ファイルが一覧表示されるようになりました。

    • ロードをゆっくり行うようになりました。

    • コンテンツ ブラウザにショートカット キーを追加しました。

    • MaterialPath がシェーダ マップにシリアル化されました (デバッグ情報が許可されている場合)。

  • 新規: Vulkan Graphics PSO キャッシュの書き換え / クリーンアップを行いました。

    • PSO のマルチスレッド作成が可能になりました。これにより、ヒッチが削減され、シェーダの最適化が速くなります。

    • 1 つのマップとロックのみを使用するようになりました。また、タイプは 1 つとなりました。

    • バイトコード シェーダ ハッシュではなく UE4 シェーダ キーを使用するようになりました。

    • 並列 PSO の作成が可能となりました。

    • 「VulkanPSO」統計グループを追加しました。

    • LRU がコンパイルされるようになりました。しかし、これはすべての Vulkan プラットフォーム上で無効になっています。

  • 新規: Linux の Vulkan 向けに仮想テクスチャ ストリーミングのサポートを追加しました。

  • 新規: 前面の深度ではなく透過率を評価するために、髪に不透明型のシャドウ マスク順列を追加しました。これは、髪の束が小さい、もしくは細いときに、グルームによるシャドウ キャストを減衰させるのに便利です。

  • 新規: Bcrypt ノード モジュールをネイティブ js バージョンにスワップし、npm コンソール コマンドを追加して使いやすくしました。

  • 新規: 仮想テクスチャ カテゴリは、UMeshComponent 以外では非表示になりました。

  • 新規: レンズ エフェクトの主点を画面の中央から外すパラメータを追加しました。これは、オーバーラップ レンダリングに必要です。

  • 新規: シネマティック品質に使用される髪の透過率の評価にスーパー サンプリング順列を追加しました。

  • 新規: ワールド ウィジェットの Z 順序を無効にするオプションを追加しました (Slate.WorldWidgetZOrder = 0)。Z 順列を無効にすると、ウィジェットのバッチ処理とレンダリングのパフォーマンスは向上しますが、オーバーラップするウィジェットのレンダリング順序が正しくなくなる可能性があります。ワールド ウィジェットの Z 順序はデフォルトで有効になっています。

  • 新規: 有効なシェーダに対して、常に事前露光が強制されるようになりました。

  • 新規: PIE セッションを開始し、指定された数のフレームをキャプチャする RenderDoc の「CapturePIE」コマンドが追加されました。PIE セッションの最初のフレームをキャプチャできるため、初期化の問題をデバッグするときに役立ちます。

  • 新規: スケルタル メッシュ コンポーネントでスキンキャッシュを選択的に行えるようになりました。スキンキャッシュは LOD ごとに指定できます。また、USkinnedMeshComponent は、スケルタル メッシュ コンポーネントが指定するものを LOD ごとにオーバーライドできます。スキンキャッシュの使用を包括的または排他的にするかどうかを指定するプロジェクト設定もあります。

  • 新規: オプションとして、インスタンス スタティック メッシュのインスタンスごとのカスタム データを追加しました。これには、インデックスによってカスタム データをサンプリングするマテリアル ノードが付属しています。また、データ用のブループリント セッターも追加しました。このデータは、InstanceStaticMesh コンポーネントでシリアル化されます。デフォルトでは、カスタム データの浮動小数点値の数は 0 であり、これは追加のデータを割り当てません。アロケートする

  • 新規: Win64 用の nvTextureTools ライブラリを更新しました。

  • 新規: EnumAdapterByGPUPreferences の DX11 サポートを追加しました。これにより、GPU に対する OS 支援が選択できるようになりました。選択するには、コマンドライン「-gpupreference=[n]」を使用します。設定を 1 にすると最小電力になり、2 (デフォルト) は最高電力になります。他の値を指定すると、古いコードにフォールバックします。また、DXGI が最新版にアップグレードされました。

  • 新規: Vulkan デスクトップで「SingleLayerWaterIndirectDraw」が有効になりました。

  • 新規: 「r.Shaders.SkiCompression」でシェーダ圧縮をスキップするコンソール変数が追加されました。これを有効にすると、デバッグ シェーダを使用するときに大幅な時間の節約が可能です。

  • 新規: 髪の束のレンダリングのフォワード レンダリングのサポートを制限付きで追加しました。

  • 新規: アクタが移動していないときでも、WPO およびテッセレーションが速度パスにレンダリングできるようになりました。このビヘイビアは、コンソール変数「r.BasePassOutputsVelocity」で切り替えることができます。デフォルトでは 0 に設定されており、有効になっていません。

  • 新規: 「"TexCreate_ShaderResource" がない」エラーがダウングレードされ、致命的なものとして扱われなくなりました。

  • 新規: 「AllowShaderWorkers」をコンソール変数に公開しました。それにより、「CansoleVariables.ini」から設定できるようになりました。

  • 新規: シェーダ コンパイラの警告を DDC に保存し、クック中に再出力できるようにしました。ログは「r.ShaderCompiler.EmitWarningsOnLoad」でゲートされます (デフォルトではオフになっています)。

  • 新規: レンダラ設定が定義の後ろに隠れなくなりました。また、レイ トレーシングのテクスチャ LOD コンソール変数を移動しました。この修正は、すべての非レイ トレーシング プラットフォームで適用されます。

  • 新規: Metal コンパイラの呼び出し方、DDC キーのバージョン、およびツールチェーンの検索方法を更新しました。変更したのは以下の通りです。

    • 「xcrun」を使用して xCode ツールを呼び出すようになりました。

    • ShaderPlatform に基づいて SDK を選択するようになりました。

    • Metal から正しいバージョンをフェッチするようになりました。

    • コマンドライン「-v」で、Metal を介するバイナリ パスとヘッダ パスを決定するようになりました。

    • コマンドライン「-print-search-dirs」は、Metal-ar および metallib に xcrun を使用するようになりました。これにより、metalfe、metal-ar、metallib (およびヘッダ) のバージョンの混在を防ぐことができます。

  • Improvement: improved Vulkan LLM support to track render target and spare memory usage.

  • Improvement: Improved Clear Coat shading model to support directional sources.

  • Improvement:Added code for Vulkan to prevent overlap of upload and graphics buffers.

  • Improvement: RenderDoc plugin improvements:

    • In the plugin options, we can now set a delay before the capture takes place after hitting the button, either in seconds or in ticks.The default delay is still 0.

    • In the plugin options, we can choose the number of frames to capture.The default is still 1.This implies the capture turns into a "capture all activity" as we cannot selectively capture a single viewport across frames.As before, the options are accessible with the command line so that this also works in PIE mode.

    • Fixed the notification that stayed on screen forever in PIE mode.The notification shows when a delayed capture will start as well as which frame is currently being captured.

  • Deprecated: "BUF_UINT8" and "BUF_UAVCounter" have been deprecated.

  • Deprecated:Added "RHIClearUAVUint" and "RHIClearUAVFloat" functions and deprecated "UAV" global functions in ClearQuad.h:

    • The ClearUAV implementation for structured buffers was not correct and would lead to D3D debug layer validation errors.This is because it is not allowed to bind a structured buffer UAV to a type RWBuffer<> shader parameter, as found in the clear replacement CS.

    • Use of "NumBytes" was also not correct.The ClearUAV functions using this would assume the UAC format is R32_UINT and divide the NumBytes parameter by 4.For example, if the format was R8_UINT, the divide by 4 means only ¼ of the resource was cleared.

  • Deprecated: "ViewCustomData," "CustomLOD," and "StaticMeshBatchVisibility" are now deprecated and will be removed in the next engine release.

  • Removed: Deleted "SRGBO_ForceEnable" flag, and replaced the one usage of it with "SRGBO_ForceDisable".

  • Removed: Removed "Default Virtual Texture Material" as this was creating unnecessary shader compilation overhead from being a special engine material.

  • API Change: With the new functions, rendering code should call either the "Uint" for Float version depending on what the underlying format of the UAV is.Everything the UAV covers is cleared, so there is no need to pass "NumBytes" anymore.

    • Structured buffers are treated as "R32_UINT" in both the Uint and Float implementations.The X component of the value vector is copied directly into the buffer with no format conversion.This matches D3D11 semantics.

    • It is invalid to call "RHIClearUAVFloat" on an integer-format UAV, or "RHIClearUAVUint" on a float-format UAV. This leads to D3D debug layer validation errors due to mismatched RWBuffer type binding.

    • The caller is also responsible for handling appropriate resource transitions.The underlying resource must be writable when calling "RHIClearUAVFloat" or "RHIClearUAVUint."

レイトレーシング

  • Crash Fix Fixed potential crash when ray tracing Instanced Static Mesh with invalid render data.

  • Crash Fix: Fixed a driver crash when scrubbing in the Sequencer with ray tracing enabled with geometry cache.The index buffer was modified by the render thread while the RHI thread was reading it for building the ray tracing acceleration structure.

  • Crash Fix: Fixed a crash when creating ray tracing geometry if any section has a null vertex buffer.

  • Crash Fix: Fixed a crash when isolating materials in the Static Mesh editor with ray tracing enabled.

  • Crash Fix: Fixed a crash when in Path Tracing or Ray Tracing Debug view modes when "r.raytracing.forceraytracingeffects" is set to 0.

  • Bug Fix Clear Coat custom data channels are correctly populated in the ray tracing payload.

  • Bug Fix: Fixed light's "Affect Global Illumination" flag being ignored by ray traced global illumination.

  • Bug Fix: Ray Tracing Reflections bounces are clamped to a minimum of 1 to avoid artifacts if there were no bounces.

  • Bug Fix: Changed geometry tolerance of primary rays in translucency pass to avoid artifacts due to transparent objects contacting opaque objects.

  • Bug Fix: Applied a small fix in ray tracing reflections where "AccumulateResults" early return was missing.

  • Bug Fix: Fixed incorrect usage of Indirect Irradiance in packed ray tracing payload.Renamed members of FPackedMaterialClosestHitPayload to avoid accidental use of packed members instead of using accessors.

  • Bug Fix: Fixed missing GPUSkinCache barrier transitions when ray tracing is disabled.Basically we would queue up back-to-readable transitions after updating the cache, but only flush this list if ray tracing was enabled.This change reworks the logic to make skin cache barrier flushing independent of ray tracing.

  • Bug Fix: Fixed reflection captures were not working properly in ray tracing because material bindings were incorrect due incorrect views handling in WaitForRayTracingScene.Fixed ray tracing translucency alpha channel in Composure.

  • Bug Fix: Fixed resource state tracking and transitions for ray tracing resources.

  • Bug Fix: Fixed ray tracing was not taking into account layer visibility to add and exclude objects from the ray tracing world.This was affecting Composure layers with ray tracing.

  • Bug Fix: Forbid ray tracing shaders in the landscape thumbnail render.

  • Bug Fix: Fixed an uninitialized out parameter causing undefined behavior in the spot light estimator.Fix other similar instances through path and ray tracing shaders to prevent similar issues in the future.

  • Bug Fix: Fixed Sky Light Color not being set properly in ray tracing global illumination.

  • Bug Fix: Fixed Static mobility in Sky Lights not generating required information when ray tracing is enabled.

  • Bug Fix: FGenerateReflectionRaysCS is not compiled when ray tracing is disabled.

  • Bug Fix: Fixed incorrect throughput calculation path tracing specular reflection material sampling.

  • Bug Fix: Initialized the path tracer's previous material payload to fix validation errors.

  • Bug Fix: Fixed old path tracing regression where the payload was expected to carry previous material hit information upon a miss (for MIS with next-event estimation).

  • Bug Fix: Fix Path Tracer specular transmission material over and under contribution due to incorrect throughputs and pdfs.

  • Bug Fix: Fix checks for setting Sky Light related parameters to rely on what they require rather than if the sky light should be ray traced to allow proper functionality in path tracing and other passes.

  • 新規: レイ トレーシング ジオメトリに対するネイティブのインスタンス化を実装しました。これにより、固有のトランスフォームを持つジオメトリの多数のコピーに対して、同じシェーダ バインディングを使用できるようになりました。これにより、GatherRayTracingWorldInstances、BindRayTracingMaterialPipeline、SetRayTracingHitGroup において、CPU 処理時間を大幅に節約することができます。

  • 新規: バッチ レイ トレーシング マテリアル バインディングを実装しました。したがって、マテリアルが非同期タスクを使用してレイ トレーシング シーンにバインドされるようになりました。これにより、「Infiltrator」シーンのレンダリング スレッドのクリティカル パスが約 1.6 ミリ秒速くなります。

  • 新規: パック化されたレイ トレーシング ペイロードが、レイ トレースされたメインの反射のレンダリング中に使用されるようになりました。同じペイロードのインスタンスが、メイン マテリアルのレイ トレースと、直接ライティング中のシャドウ レイで使用されます。これにより、ライティングの評価に誤ったシェーダを使用していない限り、通常のコード パスに対するパフォーマンスが大幅に改善されます。

  • 新規: 反射と半透明のシャドウ レイ トレーシング中に呼び出されるミス シェーダを使用したライティング計算を実装しました。これにより、レイ生成シェーダからかなりの量のコードが削除され、多くのシーンで反射レンダリングが最大 2 倍速くなります。ミス シェーダ コード パスはデフォルトで有効になっており、「r.RayTracing.LightingMissShader」で制御できます。また、いくつかの一般的なライティング リソースの初期化をエフェクトごとからビューごとに変更しました。

  • 新規: 並列の GatherRayTracingWorldInstances を追加しました。これにより、マルチコア CPU 上の一般的な大きなシーンで、この関数のクリティカル パス時間が約 2 倍速くなります

  • 新規: レイ トレーシングにおける GPU Niagara メッシュのサポートを追加しました。インスタンスは、Niagara GPU フロート バッファから、コンピューティング シェーダを介してレイ トレーシング インスタンス記述子 GPU バッファに直接コピーされるようになります。

  • 新規: レイ トレーシングにおける、動的メッシュの無効なセクションに対するサポートを追加しました。

  • 新規: BlueprintReadOnly から BlueprintReadWrite に変更されたレイ トレーシング用の「bEvaluateWorldPositionOffset」を追加しました。

  • 新規: レイ トレーシング反射は、一番上のレイヤーよりも先に一番下のレイヤーを評価するようになりました。これは、バウンスが計算されるまでは一番上のレイヤーのデータがライブ状態となっている必要があるからです。したがって、一番下のレイヤーが最初に実行できるようにすると、全体的なライブ状態の時間を削減することができます。

  • 新規: レイ トレーシング デバッグ表示モードでのみ不透明型オブジェクトをレンダリングするオプションを追加しました (r.RayTracing.DebugVisualizationMode.OpaqueOnly。デフォルトで有効です)。

  • 新規: レイ トレーシング シェーダの「SV_InstanceIndex」エミュレーションを実装しました。

  • 新規: 反射でレイ トレースされたスカイ ライトの寄与を可能にするオプションが追加されました。また、既存のスカイ ライト機能がリファクタリングされました。それにより、レイ トレースされたスカイ ライティング サンプリングを使用する際に、コードがより効率的に再利用されるようになりました。

  • 新規: レイトレーシング シェーダ向けのテクスチャ LOD の設定がプロジェクトごとになり、デフォルトでは無効になりました。

  • 新規: レイ トレーシング ジオメトリ セグメントごとの異なる頂点バッファのバインドに対するサポートが実装されました。スキン キャッシュの頂点バッファをマージする手順が削除され、GPU パフォーマンスが向上しました。スキンキャッシュの VB マージにのみ必要だったことから、RHICopyBufferRegion/s が廃止されました。最下位レベルのアクセラレーション構造のビルドおよび更新 API を統合しました。

  • 新規: スタティック メッシュ アセットのレイ トレーシング フラグで "Force Opaque" を公開しました。

  • 新規: レイ トレーシング ヒット グループのシステム パラメータにベース インスタンス インデックスを追加しました。これは、ヒット シェーダで SV_InstanceID をエミュレートするために使用できます。

  • 新規: ネイティブのレイ トレーシング インスタンスが使用されている場合、インスタンスごとに一意のカスタム ユーザー データを提供できるようになりました。以前は、固有のトランスフォームのみが許可されていました。

  • 新規: 複数のレイ トレーシング ミス シェーダをカスタム ローカル リソースとバインディングできるようにしました。

  • 新規: レイ トレーシング シェーダ バインディングの配列サイズは、D3D12 RHI の制限に一致するように増やしました。

  • 新規: レイ トレーシング反射におけるフラグ作成での重複除去を行い、レイ トレーシング反射関連の consol 変数と追加のフラグ生成を適切なファイルに移動しました。

  • 新規: レイ トレーシング マテリアルの最も近いシェーダまたは任意のヒット シェーダのコンパイルをオフにするオプションを追加しました。ります。 これは、カスタム シェーダを使用するタイトル、または完全なマテリアル評価を必要としないタイトル (例えば、シャドウまたは AO のレイ トレーシングのみを使用するもの) に便利です。これにより、新しいコンソール変数 "r.RayTracing.CompileMaterialCHS" (デフォルトは 1) と "r.RayTracing.CompileMaterialAHS" (デフォルトは 1) が追加されました。値は読み取り専用であり、クック タイムとランタイムで一致している必要があります。

  • 新規: ヒット深度を必要としない可視性レイにおけるレイトレーシングのパフォーマンスを改善するためにフラグが追加されました。

  • 新規: 単純化されたレイ トレーシング マテリアル ヒット シェーダを実装しました。これにより、すべてが強制的にディフューズされ、静的ライトの評価は行われなくなります。

  • 新規: 汎用の TraceRay ヘルパー関数を改善し、既存の汎用 TraceRay 呼び出しを置き換えて、設置されたマテリアルと可視性レイのパターンに適合させました。

  • 新規: レイ トレーシング反射レイが「Unlit」シェーダ モデルを持つピクセルからトレースされなくなりました。

  • 新規: レイ トレーシングがメッシュごとにサポートされているセクションの最大数に達したときに表示されるメッセージを改善しました。

  • 新規: インターフェース トラッキングからのマルチ バウンス屈折を有効にして、レイ トレーシング透過処理における全反射をモデル化しました。

  • 新規: 天球に当たらないように、RTGI のシャドウ レイがデフォルトで短縮されました。それにより、GI に影響を与えずに望み通りの空の反射を得られるようになりました。

  • 新規: エンジンがレイ トレーシング モードのときに髪のレイ トレーシングを無効にするオプションを追加しました。

  • 新規: 想像の最大解像度のミップ キューブマップではなく法線ベースの SH 放射を使用するために、パス トレーシングのスカイ ライト サンプリングを改善しました。

  • 新規: パス トレーサーにタイル化された mGPU サポートを実装しました。

  • 新規: 現在の画像出力をパス トレーサーと比較するワイパー モードを実装しました。コンソール変数「r.pathtracing.wipermode」で有効にできます。これを使用するには、パス トレーシング表示モードがアクティブである必要があります。

  • 新規: DefaultLit マテリアル モデルをパス トレーサーに追加しました。

  • 新規: ClearCoat マテリアル モデルをパス トレーサーに追加しました。

  • Improvement: Improved multi-sample ray tracing reflections.

    • Multi samples per pixel is now handled from a high level loop.

    • The reflections shader adds an extra stage that reads the current accumulated color/hit distance on anything beyond pass 0, and only applies the final weighting on the final pass.

FX - Cascade and Niagara

  • Crash Fix: Fixed crashes that were occurring when a user performed an Undo/Redo in the system and emitter editor.

  • Crash Fix You can now access the Niagara shader compilation manager through a static Get() function instead of through a globally initialized variable.This stops the compilation manager from crashing in monolithic builds, where it attempts to access FCommandLine during global construction where FCommandLine has not been initialized.

  • Crash Fix: Fixed a crash that occurred when the user duplicated an emitter through the right-click menu.

  • Crash Fix: Fixed crash that occurred when shutting the engine down if Niagara shader compiles were still in process.

  • Crash Fix: Fixed a difficult to reproduce shut down crash.

  • Crash Fix: Fixed a problem with random crashes that occurred when closing the Niagara system and emitter editor.

  • Crash Fix: Fixed crashes that occurred when the user loaded broken data.

  • Crash Fix: Fixed a crash that occurred when adding an Event Handler.This was caused by system instances being active, and the event handler modifying the cached data.

  • Crash Fix: NiagaraDataInterfaceVectorField was crashing when trying to bind a vector field texture with a null render thread representation (likely a timing or init order problem).This is now fixed.

  • Crash Fix: Fixed a bug that could lead to a crash when a variable default value was not initialized.

  • Crash Fix: Fixed a bug where changing the type of a static switch could result in a crash.

  • Crash Fix: Fixes system/emitter editor crashes when creating a circular reference in the Niagara Graph.

  • Bugfix: Fixed distortion of velocity-aligned particle sprites at low velocities.

  • Bugfix: Fixed issue where a Particle System Component would not tick with its owner's time dilation when using the Particle System Component Manager.

  • Bug Fix: Added support for uint32 vertex indices when using Niagara ribbons.Fixed a bug occurring with Niagara ribbons when requiring more than 16-bit indices.

  • Bug Fix: Fixed issues that were causing compile messages to show up inconsistently in the system and emitter editors.

  • Bug Fix: Fixed an issue with GPU fences so that Clear() will result in Polls failing until the fence has actually been hit.

  • Bug Fix: New user parameters now correctly enforce having a unique name.Fixed a bug occurring in the use of Undo/Redo that caused the preview system to stop running.

  • Bug Fix: StaticMesh interface is now more stable when no mesh is provided, or when CPU access is not enabled on the mesh provided.

  • Bug Fix: Fixed a bug that could prevent the SimulationTarget static switch to work for GPU emitters.

  • Bug Fix: Reset system simulation when setting fixed bounds, so the Preview panel shows the new bounds even when paused.

  • Bug Fix: Cleaned up the registering of Niagara emitter events to resolve multithreaded access.

  • Bug Fix: Made Niagara material loading correctly pass the "loaded from cooked material" parameter around, so that we can load cooked data.

  • Bug Fix: Removed the "Simulating" overlay from the Niagara System Overview Graph and the Script Editor Graphs since modifying Niagara graphs in real time is supported.

  • Bug Fix: Fixed an issue with the CPU async collision queries within Niagara.

  • Bug Fix: Updated the compile error for disconnected numeric pins in module scripts, so that the error tells the user how to fix the issue and provides links which navigate to the issue.

  • Bug Fix: Allocated space in Niagara ParameterStore for missing parameters, to fix potential memory overwrite.

  • Bug Fix: Fixed a problem where Niagara curves were not rendering in the Curve Editor if the curves are linear (all keys have the same value).

  • Bug Fix: Matrices now default to the identity matrix by default when they are added.

  • Bug Fix: Updated force and velocity solvers to ensure that Drag stays entirely framerate independent, even at extremely high values.

  • Bug Fix: The Scale Color and Scale Color by Speed modules now properly stack with each other and with duplicates in the stack.

  • Bug Fix:The Curl Noise Force module is now correctly deterministic when it is used in "Pan Curl Noise" mode.

  • Bug Fix: Fixed simulation inconsistency issues when enabling and disabling emitters.

  • Bug Fix: Fixed ownership of FNiagaraParameterStore when dealing with hierarchies of Blueprint.

  • Bug Fix: Fixed major performance problems in the system editor when editing systems with a large number of emitters (8 or more).

  • Bug Fix: Fixed an issue where dependencies were not refreshing correctly in emitter scripts.

  • Bug Fix: Added the "Library Only" option to the module and dynamic input reassignment menus, which are used when assigning new scripts to modules, and also for dynamic inputs with missing scripts.

  • Bug Fix: Fixed an issue where redundant Niagara GPUComputeShaders were being saved into cooked builds, resulting in non-deterministic cooked builds.

  • Bug Fix:Data Interface functions which need per-instance data can now be called from custom HLSL on CPU emitters.

  • Bug Fix: It is no longer possible to rename emitters to reserved names: [Emitter, Engine, User, Local, Module, NPC, Particles, System, Transient].Doing so could cause a compiler failure in the system.

  • Bug Fix: You can now undo Niagara module deletions after using the Trashcan button.

  • Bug Fix: Fixed a barrier error in NiagaraEmitterInstanceBatcher::SortGPUParticles.Need to reissue a ComputeToCompute RW barrier after each simulation dispatch (at least until UAV overlap is implemented instead).

  • Bug Fix: Removed premature error logging from a step in the enum loading process.Real errors are handled after both methods are tried.

  • Bug Fix: When you focus the selected emitter in the Niagara Preview viewport, it no longer disables the orbit camera.

  • Bug Fix: When you delete an isolated emitter, it now clears the isolated status of the system itself.

  • Bug Fix: Fixed bool access to NiagaraParameterCollection.

  • Bug Fix: Fixed a "No mesh assigned error" being erroneously reported when using the Sample Skeletal Mesh Skeleton module.

  • Bug Fix: Fixed an issue around destroying a Niagara Component on the same frame as a tick group promotion has been requested.You can reproduce this issue if you have the instance change tick group during system sim ticking, to a tick group before the current one, and then removing the instance before post-actor tick (such as DestroyComponent being called on the owner).

  • Bug Fix: Fixed a deadlock that occurred if TickDataInterfaces destroys the system instance; it will still flag for async work and finalize even though it is complete.

  • Bug Fix: Mark Niagara Component parameter stored UObjects as dirty after reachability analysis; this fixes an issue where instances can reference stale UObjects.We may be able to refactor this later, but for the moment this fixes a pretty nasty GC related issue.

  • Bug Fix: Fixed a race condition where unbinding parameters could be modified while the instances are still ticking.

  • Bug Fix: Cleaned up ExecIndex and implemented Engine.ExecutionCount for GPU systems.

  • Bug Fix: Fixed an issue with races in Volume / Texture data interfaces; it was reading from data set by the RT when determining if the texture is valid.

  • Bug Fix: Fixed an issue with having a RenderTarget still bound that is going to be used as an SRV during Niagara's compute pass.

  • Bug Fix: Fixed an issue that occurred if a GPU emitter was disabled on the first frame and never ticked.

  • Bug Fix: Fixed mesh renderer stats so we do not increment each section.

  • Bug Fix: Fixed a bug where renaming a parameter lost the default value settings for that parameter.

  • Bug Fix: Static switches are now prevented from receiving drag and drop inputs, because it leaves them in a permanently broken state.

  • Bug Fix: Fixing memory problems with the shader compiler jobs being either leaked or prematurely deleted by using TShadredRefs instead of raw pointers.

  • Bug Fix: Fixed a bug with integer type static switches that had exactly two input values.

  • Bug Fix: Fixed a bug where particle attribute reads could be referenced from the wrong namespace.

  • Bug Fix: Fixed a bug where an actor with a Niagara components on autodestroy could be destroyed before the system was finished.

  • Bug Fix: Fixed a bug where modifying a static switch node could cause the loss of all its parameter metadata.

  • Bug Fix: Fixed the matrix access in the spline data interface.

  • Bug Fix: Fixed a bug where the Static Mesh DI did not return the correct transform for a mesh.

  • Bug Fix: Fixed concurrency problems of the export data DI by moving the callback to a separate task graph call.

  • Bug Fix Making it impossible to make attributes as numeric.Numeric is a generic conversion type, not a physical storage type.

  • Bug Fix Fixing issue where particle vector random instance parameters were incorrectly using VRand, causing unit vector sizing instead of a box for certain assets.A new unit vector sizing option was added to allow data created under the incorrect implementation to have the same behavior.

  • Bug Fix No longer using FNiagaraVariable names in UNiagaraScriptVariable names as periods can lead to bad behavior.

  • Bug Fix Fixes for Niagara vector field resources being accessed on the gamethread without it being necessarily initialized.

  • Bug Fix Fixed bug where killing particles on spawn wasn't being honored.

  • Bug Fix Making texture sampling DataInterface emit an error if used in CPU sims.

  • Bug Fix Fixed if multiple instances of a DI were used in a script, the HLSL translator produced all function combinations for each instance.

  • Bug Fix Fixed world time in level editor viewport.Niagara and Cascade culling behavior that works via the component's LastRenderTime will now function correctly in the Level Editor Viewport.

  • Bug Fix Fixed several issues with Particles.UniqueID.

  • Bug Fix UEdGraphPin BreakAllPinLinks and MakeLinkTo don't by default notify the owning node that changes have happened.In some cases, this means that we don't detect that the graph has changed out from underneath us and so we don't recompile.

  • 新規: 抜けていたデバッグ名を Niagara バッファに追加しました (バリアトラックとデバッグが容易になります)。

  • 新規: スプライト / メッシュ カスケード頂点ファクトリの動的パラメータは定数であり、補間を必要としないことから、補間を無効にしました。

  • 新規: GPU および CPU スクリプトのコンパイルを、shadercompile ワーカー プロセスに移動しました。

  • 新規: Niagara メッシュ パーティクル レンダリング:

    • Niagara メッシュ レンダラに、ロックされた軸とカメラ オフセットを追加しました。

    • 速度方面のメッシュ パーティクルとカメラ方面のメッシュ パーティクルの回転に関する問題を修正しました。

    • Niagara メッシュ パーティクル レンダリングの修正により、既存の速度方面またはカメラ方面の Niagara メッシュ パーティクル エミッタにわずかな違いが生じる場合があります。

  • 新規: エラー メッセージがパネルの幅よりも長い場合、システム エディタの [Selection (選択)] パネルにある [Fix issue (問題を修正)] ボタンと [Dismiss issue (問題を却下する)] ボタンが次の行に折り返されるようになりました。

  • 切り取り、削除、名前変更など)。

  • 新規: 非推奨のモジュールまたは動的入力を推奨されているものに置き換えたときに、モジュールの名前を変更して、以前にそのモジュールで設定されていた動的入力または入力値の保持を試みるようになりました。

  • 新規: オプションがデフォルト以外に設定されている場合、[Selection (選択)] パネルの [Niagara View Options (表示オプション)] コンボ ボタンがオレンジ色の背景で強調表示されるようになりました。

  • 新規: モジュールに Experimental Message (実験的なメッセージ) フィールドを追加しました。これにより、モジュール作成者が Niagara スクリプトが実験的であるとマークされた理由を入力できるようになります。

  • 新規: Niagara レンダラごとにモーション ブラーを有効 / 無効にするフラグを追加しました。メッシュ / スプライト パーティクルのローカル空間モーション ブラーを修正しました。リボンの速度が正確でなかったことと、テッセレーションが原因でその速度を正確にするのが難しいことから、リボンの速度を無効にしました。

  • 新規: 必要ないため、データ インターフェースからディファード削除を取り除きました。また、TSharedPtr も不要になったため、DI プロキシから削除しました。

  • 新規: Niagara モジュール、動的入力クラス、関数を実験的機能としてマークする機能を追加しました。これにより、[Selection] パネル、System Overview (システム概要) ノード、[Parameters (パラメータ)] パネルで、名前の横に情報アイコンが表示されるようになります。

  • 新規: エミッタに [Create Asset from This (これからアセットを作成)] コンテキスト メニュー オプションを追加しました。これにより、Niagara システムで選択したエミッタが複製され、エミッタが新しいアセットの親になります。

  • 新規: エミッタのコンテキスト メニューに[Edit (編集)] セクションを追加しました。F2 を押してエミッタの名前を変更できるようになりました。

  • 新規: コンソール変数「fx.MaxNiagaraGPUParticlesSpawnPerFrame」を追加しました。これで、GPU のフレームごとのスポーン可能な量を制御できます。

  • 新規: マトリックス関連の機能に対してさまざまな修正を施しました。次の通り、転置されたものとそうでないものがあります。

    • ブループリント内でマトリックスを生成して、それをベクターを Niagara システムに渡して、CPU と GPU の両方で想定どおりに機能させられるようにしました。

    • MatrixToQuaternion を追加しました。これは内部でファストパス ライブラリを使用しますが、VM 内にあるマトリックスのアクセスの問題に対処した後の置き換え場所を提供します。

  • 新規: Niagara スクリプトに非推奨メッセージを追加しました。これにより、モジュール作成者が「モジュールが非推奨である理由」と「ユーザーがモジュールに対して何ができるか」を伝えられるようになりました。

  • 新規: Niagara にある [Selection] パネルの [Dismiss issue] ボタンが、エミッタを複数選択したときに特定のエミッタを順番に繰り返し表示するようになりました。

  • 新規: Niagara メッシュ レンダラに SubUV のサポートを追加しました。補間を必要としないさまざまな属性に対して nointerpolation を追加しました。

  • 新規: Niagara エミッタに [Create Duplicate Parent (重複する親を作成)] を追加しました。これにより、選択したエミッタが複製され、それが新しく作成されたエミッタの親になります。これにより、エミッタの継承チェーンに親を挿入できるようになります。

  • 新規: 分離トグルを Niagara エミッタ ノードの [Render (レンダリング)] セクションに移動しました。親を持つエミッタに [Go to Parent (親に移動)] ボタンを追加しました。

  • 新規: NiagaraScript のさまざまなところでメモリ使用量が減りました。簡単なテスト レベルで最大 33% 節約できます (713.61kb -> 478.70kb)。

  • 新規: Niagara でスプライトおよびメッシュ レンダラの並べ替えをデフォルトで無効にしました。既存のシステムは、以前のデフォルトを使用して望ましくない動作を回避します。

  • 新規: Niagara の [Selection] パネルからモジュールの名前を変更できるようになりました。名前を変更しても、モジュールで元の名前が括弧内に表示されます。これは、エミッタ / システム スクリプトのコンパイルには影響しません。

  • 新規: Niagara の動的入力の [Selection] パネルにツールチップが表示されるようになりました。

  • 新規: 選択した Niagara エミッタを [System Overview] パネルに分離するボタンを追加しました。システムが分離されているときに表示されないエミッタは、[System Overview] パネルでグレー表示されます。

  • 新規: [System Overview] パネルの Niagara エミッタ ノードにコンテキスト メニューを追加しました。

  • 新規: 問題のあるモジュールのみを表示するため、[Selection] パネルをフィルタリングするオプションを追加しました。[Selection] パネルのヘッダの [Issue (問題)] アイコンをクリックすると、ビュー内のすべての問題が順番に表示されるようになりました。

  • 新規: Cascade パーティクル システムのビューごとに VertexFactory 配列を追加しました。これにより、分割画面でパーティクルがビュー 0 のカメラなどの方向に向いてしまう問題が修正されます。

  • 新規: Niagara の System Overview ノードの [Issue] アイコンを右揃えにしました。アイコンをクリックすると、問題を抱えている選択したエミッタ内のモジュールが順に表示されます。

  • 新規: FriendlyName を Niagara Shader Compile Jobs (ナイアガラ シェーダ コンパイル ジョブ) と一緒に使用できるようになりました。

  • 新規: Niagara が GPU パーティクル メモリを追跡するようになりました。

  • 新規: Niagara が、すべてのシミュレーション パスで必要なインスタンスの最大数を計算するようになりました。これにより、シーケンサがタイムラインをスクラブし、一度に多くのシミュレーション ティックを強制している場合のメモリの負荷が軽減されます。これは、バッファを徐々に増やしていくのではなく、前もって一度に行うようになったことから達成できました。

  • 新規: パーティクル テレポーテーションを使用したサーフェスの相互侵入補正を削除しました。それにより、Niagara の [CPU] - [Ray Traced (レイ トレース)] および [GPU] - [Scene Depth (シーン深度)] のコリジョンの安定性が向上しました。また、Pure Roll コンポーネントも、任意のサーフェスの角度を処理するように改善しました。

  • 新規: Niagara で、「real time disabled (リアルタイム無効)」という警告をオプションで表示できるようになりました。

  • 新規: Niagara パラメータの Map Get ノードと Map Set ノードにカーソルを合わせると、ドロップするターゲットが強調表示されるようになりました。

  • 新規: Niagara の Set Variable (変数の設定) モジュールで、設定している変数の名前と、括弧で変更した追加の変数の数が表示されるようになりました。

  • 新規: エミッタのプロパティ行に、CPU または GPU のシミュレーション ターゲットを示すアイコンを追加しました。

  • 新規: システムが変更前に破棄されたり、変更後に再初期化されたりする PreEditChange/PostEditChange を使用する場合に役立つように、FNiagaraUpdateContext が破棄フェーズと再初期化フェーズを分割できるようになりました。

  • 新規: 円形または長方形のパターンで深度バッファをサンプリングするオクルージョン クエリ データ インターフェースを追加しました。これにより、サンプル領域でどれだけオクルージョンされるかを推定できます。これで、画面に表示されるスプライトまたはメッシュの量を確認したり、パフォーマンスの最適化かレンズ フレアなどのエフェクトの作成を行ったりできます。このデータ インターフェースは深度バッファを使用していることから、GPU パーティクルに対してのみ機能し、CPU パーティクルに対しては機能しません。

  • 新規:CPU と GPU パーティクルの両方について、位置などの一般的なカメラ プロパティの取得に使用できるカメラ クエリ データ インターフェースを追加しました。GPU では、ビュー トランスフォームなどの高度なプロパティの取得に使用できます。カメラ データ インターフェースには次の制限があります。

    • 分割画面またはステレオ レンダリングで使用すると、データ インターフェースは、最初に使用可能なビューの情報のみをパーティクル シミュレーションに返します。

    • 深度バッファまたは距離フィールド (コリジョンなど) を必要とするデータ インターフェースと組み合わせると、パーティクル シミュレーションのカメラ情報が潜在フレームとなります。

  • 新機能:

    • パーティクル エミッタのメモリ割り当ては、最大パーティクル数のランタイム時の推定に基づくようになりました。

    • エディタのビューポートに現在の推定パーティクル数を表示するオプションを追加しました。

  • 新規: {float,int} 比較の動的入力からのブール値を最適化しました。「Less Than (未満)」演算子が追加され、使いやすくなりました。

  • 新規: Niagara の SetBoolByFloatComparison モジュールが更新されました。これにより、「Less Than (未満) /Less Than or Equal (以下)」の選択肢が追加され、使いやすくなりました。

  • 新規: スタック表示のスタティック スイッチ パラメータをデフォルト値にリセットできるようにしました。

  • 新規: 2 つのノードが連携して機能することをビジュアル的に表示するために、LOD ハイライト カテゴリを追加しました。

  • 新規: スタティック スイッチを使用するために Niagara SetBoolByFloatComparison をスワップしました。

  • 新規: PolarToCartestiaCoordinates の導関数計算を修正しました。

  • 新規: SetBoolByIntComparison 動的入力が追加されました。

  • 新規: モジュールが古いモジュールを非推奨にするときに、カスタム アップグレード パスを定義できるようになりました。例については、Emitter State (エミッタの状態) モジュールを参照してください。

  • 新規: ライブ オーディオ パーティクル エフェクト用の Audio Spectrum Niagara データインターフェースを追加しました。

  • 新規: システム エディタ内でワールドへの参照を設定することは不可能であるため、AActors または UActorComponent 派生クラスを参照するすべてのプロパティがシステム エディタで無効になりました。

  • 新規: カスタム HLSL ノードが修正され、DataInterfaces をサポートするようになりました。データ インターフェースに名前を付けると、サポートされている任意のデータ インターフェース メソッドをピリオド (.) で呼び出し、その後に関数を呼び出すことができます。そして、Niagara はこの動作をバックグラウンドで検出し、必要な接続をすべてセットアップします。また、ピンを作成するときに、ピンの名前を変更できるようにしました。

  • 新規: SetEmitterEnable パラメータのロギングは、Niagara コンポーネントには実装されなくなりました。

  • 新規: 複数の異なるイベント読み取りがあると、コンパイル エラーが発生するようになりました。

  • 新規: 整数および浮動小数点の乱数を生成するために、UNiagaraNodeOp ノードの 2 つの新しいペアを追加しました。これは、整数と浮動小数点の乱数が、時間間隔範囲の上限の処理方法の違いにより意味的に異なるためです。以前の「Random (ランダム)」と「Seeded Random (シードありランダム)」は、CPU モード、GPU モード、Determinism (決定論) モードの間で、この事に関して一貫性がありませんでした。浮動小数点の乱数範囲は通常、半開です。つまり、上限は含まれません。一方で、通常、整数の乱数範囲は上限が含まれます。この追加により、同等のブループリント関数と一致する以下の操作も可能になりました。

    • Random Integer:非決定論的で、0 から Max (最大値) -1 までの数値を生成します。

    • Random Float:非決定論的で、0 から Max までの数値を生成しますが、Max は含みません。

    • Seeded Random Integer:決定論的で、0 から Max-1 までの数値を生成します。

    • Seeded Random Float:決定論的で、0 から Max までの数値を生成しますが、Max は含みません。

    さらに、これには 2 つの新しいヘルパー関数が含まれており、次の同等のブループリント関数とも一致します。

    • Random Range Float:Min (最小値) と Max (最大値) の間の数値を生成しますが、Max は含みません。

    • Random Range Integer:Min と Max の間の数値を生成します。

    古い Random Range 関数と古い Random と Seeded Random 操作は触れられません。

  • 新規: スクリプト エディタ内で選択した [Details (詳細)] パネルにあるドロップダウン メニューを使用した、使用可能な互換パラメータにバインドできる新しいデフォルトの初期化モードを Niagara 変数に追加しました。[Parameter (パラメータ)] パネルで変数を選択すると、新しい DefaultMode ウィジェット、[Value (値)]、[Binding (バインディング)]、[Custom (カスタム)] が表示されます。

    • [Value] を選択すると、その下に適切なウィジェットが表示され、デフォルト値が設定されます。値は、その変数がグラフで参照されている場合にのみ定義できます。

    • [Binding] を選択すると、バインド可能な名前のドロップダウン リストが表示されます。ここに表示されるのは、ビルトインの名前と、グラフまたはパラメータ リストに明示的に追加された名前のみです。

    • [Custom] を選択すると、どちらのウィジェットも表示されず、サブ グラフを使用して初期化が行われたことが示されます。これは、別の初期化ノードを優先してデフォルトのピンを削除すると、後で合理化されます。バインディングは、サブグラフと Begin Defaults ノードでデフォルトを設定する古いバージョンと機能的に同等である必要があります。

  • 新規: Niagara パラメータ マップのピンは、BP exec ピンのようになりました。将来のリリースでフロー制御サポートが追加される際に、これを拡張する予定です。

  • 新規: UMaterial ユーザー変数を使用するスプライトとリボンの BP で設定されるマテリアルがサポートされるようになりました。

  • 新規: ユーザーに警告 / キューを提供する機能をレンダラに追加しました。

  • 新規: GPU シミュレーションに固定の境界が設定されていない場合に警告を表示されるようになりました。

  • 新規: Niagara スクリプト グラフ ノードのコンテンツがハッシュされ、DDC の候補データをより確実に識別できるようになりました。作成された「Engine\Plugins\FX\Niagara\Shaders\Private\NiagaraShaderVersion.ush」は、現在 FNiagaraCustomVersion::LatestScriptCompileVersion と連携して機能しますが、これは、適切なコンソール コマンドが設定されている場合、ソース ファイルの編集と更新に関するエディタ内の望ましいワークフローに必要となります。また、.InvalidateCachedShaders と同様のコンソール コマンド fx.InvalidateCachedScripts および fx.RebuildDirtyScripts を追加して、recompileshaders を変更しました。

  • 新規: スタック表示の情報、警告、エラー メッセージで異なる色が使用されるようになりました。

  • 新規: Niagara モジュール、動的入力、関数を更新して、古い RandomRange ヘルパーではなく、CL # の新しい明示的な RandomRangeFloat 関数と RandomRangeInteger 関数を使用するようになりました。

  • 新規: VectorVM パターンが最適化され、インデックスを取得し、属性データのストリームを出力するようになりました。

  • 新規: コリジョン チャンネル列挙型をパラメータ タイプとして追加しました。

  • 新規: CPU および GPU エミッタは、[System Overview] モードのアイコンで区別できるようになりました。

  • 新規: Niagara CPU パーティクルの境界の計算を最適化しました。それにより、100 個のスプライトのエミッタを使用した際のパフォーマンスの負担が 40% 減りました。

  • 新規: 複数のセクションを持つメッシュを使用する GPU メッシュ エミッタのサポートを修正しました。

  • 新規: GLSL ES3.1 を対象とする場合に、Niagara システムで使用されるマテリアルのパーティクル単位のマテリアル パラメータが有効になりました。

  • 新規: エンジン ドリブンのナイアガラ変数を保持する一連の定数バッファを追加しました。それにより、スクリプト実行パイプラインを介してパラメータを管理する負担を軽減できます。

  • 新規: PrimitiveComponent の BoundsScale のサポートが NiagaraComponent に追加されました。

  • 新規: Location モジュールは、オプションで (Spawn Rate (スポーンレート) や Spawn Burst Instantaneous (スポーン瞬間バースト) などのスポーン モジュールで定義されているように) SpawnGroup によってマスクできるようになりました。これにより、単純な形式のグループ化が可能になります。つまり、すべて 1 つのエミッタにあるさまざまなバケットのパーティクルを簡単に配置および制御できるようになります。

  • 新規: システムまたはエミッタ エディタでスクリプト コンパイル エラーが発生すると、[System Overveiw] と [Selection] パネルにエラーが表示されるようになりました。これらのエラーは、表示可能な場合、発生したモジュールまたは動的入力に表示されます。また、表示可能な場合、ナビゲーション リンクも表示されます。

  • 新規: より完全な機能が使用でき、さらにパフォーマンスが発揮できるように、スケルタル メッシュ サンプリングを完全に書き直しました。古いサンプリング / 適用モジュールを非表示にして (非推奨となったわけではありません)、Skeletal Mesh Location に置き換えました。新しいモジュールはより一貫性があり、使いやすく、属性をサンプリングして書き込むためのオプションが多く備わっており、パフォーマンスに対する負担がはるかに軽くなります。

  • 新規: Niagara コリジョン GPU/CPU 列挙型をコリジョン モジュールから削除しました。自動的に値を設定できるようになったためです。

  • 新規: Uniform Ranged Linear Color が強化され、カラー チャンネルのランダムな選択方法をより詳細に制御できるようになりました。これにより、アーティストは RGB チャンネルを単一のランダム値 (例えば、黒と白の間のランダム値は灰色の濃淡となります) に接続したり、チャンネルを切断して独自のランダム値 (例えば、黒と白の間のランダムな値は虹色全体となります) で各チャンネルを操作したりできます。

  • 新規: モジュールと関数スクリプトのデフォルトの使用ビットマスクを変更して、パーティクル シミュレーションのステージ フラグを含めました。

  • 新規: 基になるベクター フィールドまたは関数評価の品質に基づいてメモリ使用量とパフォーマンスがどのように変化するかを表示するために、Curl Noise Force (カール ノイズ力) モジュールにコメントを追加しました。

  • 新規: スポーン モジュール (Spawn Rate、Spawn Burst Instantaneous) にオプションのスポーン確率を追加しました。これは、モジュールがそのフレーム中にパーティクルを生成する確率です。これにより、Spawn Count (スポーン カウント) 入力で複雑なロジック チェーンを用いることなく、スポーン時にもっと不規則でランダムな動作が可能になります。

  • 新規: Scale Sprite Size (スケール スプライト サイズ) および Sprite Size Scale by Speed (速度によるスプライト サイズのスケール) モジュールは、一時的なスケール係数を累積するようになりました。これにより、複数のスケール モジュールがスケール オフセットを適切に累積できるようになったり、LOD レベルのスプライト サイズ スケーリングでそれらスケール モジュールを機能させたりすることもできます。

  • 新規: Niagara のグラフ ノードは、デフォルト以外の値または他のノードへのリンクを持つ、無効な (公開されなくなった) ピンを保持するようになりました。これらの無効なピンは赤くなり、コンパイルの警告を生成します。この警告は、エミッタとシステム エディタに表示されます。警告には、無効なピンを探して修正するためのナビゲーション リンクも含まれています。

  • 新規: Apply Initial Forces モジュールは、まるで時間が 0 未満であるかのように、スポーン モジュールに配置された力を適用できるようになりました。これにより、ユーザーは、カール ノイズ、風、ランダム ベクター オフセットなどの力を使用して初期スポーン位置を分割できます。

  • 新規: エミッタの実行順序でイベントが考慮されるようになりました。そのため、イベントを消費するエミッタは、それらのイベントを生成するエミッタの後に実行されます。これにより、イベントはそれが生成されたときと同じフレームで配信されるようになり、ほとんどの場合、外挿の必要がなくなります。

  • 新規: カメラが動き回るときのランダムなちらつきを防ぐために、Niagara リボンがマルチ リボンの順序を保持するようになりました。不透明型マテリアルを使用するときのマルチ リボンの順序付けも無効になりました。また、Niagara でマルチ リボンを使用しているときのランダムなちらつきも修正しました。

  • 新規: さまざまな GPU ソートタスクを処理する FGPUSortManager を追加しました。現在のクライアントは、Cascade と Niagara です。

  • Deprecated: Set volumetric scattering default for light renderer to 0 (same as Cascade).

  • Deprecated: Removed fast path implementation from Niagara.This feature was only visible by setting a cvar, so this deprecation should not affect any users.

ライティング

  • Bug Fix: Applied a fix for rendering both Capsule Indirect Shadows and SSAO in the Foward renderer.Previously the SSAO would overwrite the results of the capsule shadows.

  • Bug Fix: Fixed Virtual Texture encoding of BC4 textures which fixes lightmap AO material mask when using VT lightmaps.

  • Bug Fix: Fixed the specular highlight in lighting-only mode that was accidentally introduced in the last release.

  • Improvement: Updated GTAO to improve spatial and temporal filters to bleed better across discontinuities.Added a Thickness Heuristic to bias AO around smaller objects that can be controlled using "r.GTAO.ThicknessBlend."Also added console variables to control the falloff so it is not hardwired which can be controlled using "r.GTAOFalloffEnd" and "r.GTAO.FalloffRatio."

マテリアル

  • Crash Fix: Removed various UMaterialExpression::NeedsLoadForClient impl, and instead it always returns true for UMaterialExpression::IsEditorOnly, as we no longer want any expressions in aMaterial non-editor build.MaterialCachedData now checks for nullptr expressions and avoids updating if any are encountered.This fixes a crash occurring with the editor loading cooked/non-editor data.

  • Bug Fix: Fixed an issue in shader complexity that prevented materials using depth pixel offset from rendering.

  • Bug Fix: Fixed an issue with SSS specular when checkerboard is off.

  • Bug Fix: Fixed an issue with the scene color node in translucent shaders.

  • Bug Fix: Scalar type now correctly propagates through a vertex interpolator material node.

  • Bug Fix: Fixed a race condition that resulted in duplicate shadermaps for material instances.

  • Bug Fix: Made "GDefaultMaterialParameterCollectionInstances" a TMultiMap instead of TMap.This makes it possible for the same MPC to be loaded multiple times.If this happens, it will get added to this map multiple times.If it's not a multimap, the first instance that's destroyed will remove the ID from the map, which will cause further lookups against the map to fail.

  • Bug Fix: Update the runtime Virtual Texture contents after any relevant Material Instance parameter change.

  • Bug Fix: Applied a fix for Deferred Decals after base pass not being rendered when GTAO is enabled.This was due to them not being registered in the render graph as a dependency when rendering the GTAO.

  • Bug Fix: Updated "CopyMaterialUniformParametersInternal" to work without requiring a FMaterialResource.

  • Bug Fix: World Position Offset can be affected by not only regularly connected nodes (Current WPO), but also using Previous Frame Switch nodes (Prev WPO).Take that into account when setting compilation output flags.

  • Bug Fix Prevent forcing low or medium quality usage for platforms that cannot lower the shader quality.This reduces the number of shaders to compile.

  • Bug Fix Fixed unnecessary recompilation of the material when simply clicking on its textual and numeric parameters.

  • Bug Fix Fixed the "Failed to find material attribute, PropertyType:28" warnings happening during the cooking process.

  • 新規: オフライン レンダリング用の Burley サンプル オーバーライドを追加しました。

  • 新規: デュアル ブレンディングで透過処理を調整して、被写界深度 (DOF) パスの後にレンダリングできるようにしました。

  • 新規: カスタム ノードに対して追加定義とマクロのインクルードを可能になりました。

  • 新規: UTexture2D アセットのストリーミングされたミップをユーザーがオーバーライドできるようにするフレームワークを追加しました。これにより、カスタム実装で (クックしたミップ以外のソースから) ミップ データを入力できるようになります。その際、ユーザーは、UTextureMipDataProviderFactory からクラスを派生させ、UTexture の「AssetUserData」に追加する必要があります。また、これは FTextureMipDataProvider のカスタム実装を割り当てて、ストリーミングされたミップをそのミップ独自の方法によって満たす必要があります。

  • 新規: 標準のマテリアル属性を介してランタイム仮想テクスチャに書き込む場合、ワールド空間法線がデフォルトになりました。

  • 新規: オプションのワールド位置オフセット入力をランタイム仮想テクスチャ サンプル ノードに追加しました。これにより、サンプルの座標を操作できるようになります。これは、マテリアルのワールド位置オフセットが適用される前にワールド位置を用いたサンプリングを行う場合などに使用できます。

  • 新規: Material Instance Dynamics (動的マテリアル インスタンス) にレイヤー パラメータを設定するためのブループリント API を追加しました。

  • 新規: テクスチャ グループ TEXTUREGROUP_Project11 を TEXTUREGROUP_Project15 に追加しました。

  • 新規: カメラが水面の上にあるか下にあるかに応じて、透過処理パスを水のレンダリング前に移動できるようになりました。これにより、シーン ビューに水深状況が追加され、例えば IsUnderwater() を呼び出すといったようなことがビューで可能になりました。

  • 新規: シェーダのデバッグ情報の一部として出力ハッシュを書き込むようになりました。

  • 新規: 多数のパラメータを持つ「マスター」マテリアルの編集を高速化するために、UI のマテリアル パラメータの取得を最適化しました。

  • 新規: マテリアル シェーダ コードの共有がデフォルトになりました。

  • 新規: シェーダ コード ライブラリの安定したマップ内でシェーダ パイプラインのサポートが追加されました。

  • Improvement: Minor time savings during shader compilation by not including the preprocess defines.

モバイル レンダリング

  • Crash Fix: Fixed an assert in PreparePrimitiveUniformBuffer with Skeletal Meshes when ES3.1 Preview mode is enabled.

  • Crash Fix: Fixed a crash related to Reflection Captures when running DirectX mobile emulation.

  • Bug Fix: Fixed HQreflection on mobile.The first empty spot in the ReflectionCubeMapTextures (if there is any) will be taken by the Sky.

  • Bug Fix: Updated Graphics Resources for Indirect Commands; this fixes Niagara for OpenGL.

  • Bug Fix: Fixed roughness clamp causing IBL mip0 never to be used.

  • Bug Fix: Try to update all PassUniformBuffers before start rendering to avoid GPU flush.

  • Bug Fix: Fixed a precision issue at mobile base pass pixel shader.

  • Bug Fix: Fixed an issue with Spot Lights not working in the mobile renderer when not enabling cast shadow.

  • Bug Fix: Fixed a problem that movable objects never get reflection captures updated in Forward renderer.

  • Bug Fix: Fixed a Software Occlusion issue that Landscape does not generate correct VB and IB data for multi-sections components.

  • Bug Fix: Added an option to promote 16bit index buffers to 32bit on load, which is needed for some Android devices (Mali T8X series).Activate it by setting "r.Android.MaliT8Bug" to 1.

  • Bug Fix: Fixed a mismatched depth/stencil buffer access type when adding a scenecapture2d in the scene on mobile preview.

  • Bug Fix: Niagara GpuSim fixed for Android.Disabled overlap compute on Android.Workaround for Mali Compiler bug that assumes a texture index is warp invariant.

  • Bug Fix: Moved mobileDepthPrepass Uniform buffer update to the start of the frame.

  • Bug Fix: Fixed an issue where the global shader is not recompiled after turning MobileHDR on or off.

  • Bug Fix: Fixed an issue with "Render in main pass" component option now works correctly on mobile.

  • Crash Fix: Resolved occasional crashes on iOS devices while using scene captures.

  • Crash Fix: Fixed a crash in Post Process Visualize Complexity when in ES3.1 preview mode.

  • Bug Fix: Disabled Vulkan support for Android devices with Mali-G72 GPUs that use Android 8 or older version.Those devices can't create a PSO with a compute shader that uses texel buffers.

  • Bug Fix: A8 textures are not writable in Metal.This change switches the backing to R8 and leverages Texture2DSample_A8 so we sample the correct channel.

  • Bug Fix:Fixed a small issue that local light's diffuse color was not correctly cosine-weighted.

  • 新規: GPU シーン モバイル デバイスの場合、テクスチャ バッファが 2D テクスチャより大きくなりました。64kb テクスチャ バッファの MALI GPU 制限のために行われました。64kb テクスチャ バッファの MALI GPU 制限のために、演算シェーダーのデフォルトを高精度にしました。GPUSceneUseTexture2D はすべてのシェーダーの再コンパイルが必要となりました。

  • 新規:Android プロジェクトでは、デフォルトで SensorLandscape 方向と没入型フルスクリーン オプションを使用するようになりました。以前のエンジンのバージョンは、ランドスケープと非没入型がデフォルトでした。以前の設定を使用したい場合は、[Project Settings (プロジェクト設定)] から元に戻すことができます。

  • 新規: iOS の MSAA でライトシャフトのサポートを追加しました。それにより、ポストプロセスのマテリアルを含むすべてのポストプロセス パスが iOS 上の MSAA で適切に動作するようになりました。

  • 新規: Niagara GPUSim iOS/Android glGenVertexArrays、glBindVertexArray、glMapBufferRange、glCopyBufferSubData、glDrawArraysIndirect、glDrawElementsIndirect がコンテキストごとに 1 つの VAO バインドを追加するようになりました (デフォルトの VAO とは異なり、間接 ES が必要です)。

  • 新規: マテリアルのフォワード シェーディング (モバイルを含む) に、EnvBRDFApprox ではなく EnvBRDF を使用して IBL エフェクトを向上させるオプションを追加しました。

  • 新規: ImageBasedReflectionLighting が、モバイルと PC 間で一貫性を保つようになりました。

  • 新規:LightMapPolicyType が、モバイルと PC 間で選択の一貫性を保つようになりました。

  • 新規: 位置、時間、方向のパーティクル関連のマテリアル プロパティが追加され、モバイルで使用できるようになりました。

  • 新規: OpenGL ES3.1 で、エミュレートされたユニフォーム バッファがデフォルトで使用されるようになりました。これらのバッファは、シェーダのメモリ使用量を大幅に削減し、多くの場合でレンダリング パフォーマンスも少しだけ向上させます。プロジェクトの「DefaultEngine.ini」ファイルに「OpenGL.UseEmulatedUBs=0」を追加すると、以前の動作に戻すことができます。

  • 新規: 両面プリミティブの固定スカイ ライトの寄与を修正しました。

  • 新規: SHCoefficients の不一致により生じる、可動オブジェクトの不正な間接ライティングを修正しました。

  • 新規: 新しいモバイル カスタム深度の実装に基づくモバイル プラットフォームでのポスト プロセス マテリアル ステンシル テストのサポートを追加しました。

  • 新規: モバイル カスタム ステンシルの形式を B8G8R8A8 から G8 に変更しました。これにより、深度が R16F カラーターゲットに保存され、深度ターゲットに使用されるメモリが少なくなり、モバイル プラットフォームのメモリ使用量も減ります。Half-Res (半分の解像度) のカスタム深度を使用するためのコンソール変数を追加しました。

  • 新規: モバイル プラットフォームのハードウェア オクルージョン クエリがデフォルトで有効になりました。「r.AllowOcclusionQueries=0」を対応するプラットフォームのデバイス プロファイルに追加することにより、特定のモバイル デバイスでオクルージョン クエリを無効にすることができます。

  • 新規: モバイルとコンソールのコード パスを統合するために GpuScene と UniformBuffer をリファクタリングしました。

  • 新規: モバイル レンダラ用の ClearCoat シェーディング モデルを追加しました。

  • 新規: MobileBasepassPixelShader をリファクタリングして、シェーディング モデルの拡張をさらに容易にし、保守しやすくしました。

  • 新規: RT を R16FG16FB16FA16F から R11G11B10 と R16F に分割して、モバイル ポスト プロセス用の帯域幅を節約しました。

  • 新規: モバイル向けの明暗順応を実装しました。

  • 新規: モバイル向けにマテリアル グラフからの明暗順応ルックアップのサポートを追加しました。

  • 新規: Android デスクトップ フォワード レンダリング (実験的機能) を追加しました。

  • 新規: なるデバイスで見られる RandomSeed の違いを修正しました。関数の引数の順序の評価は未定義です。

  • 新規: モバイル用の 3x3 PCF シャドウと ES 3.1 での texGather のサポートを追加しました。

  • 新規: モバイル プラットフォームでの仮想テクスチャの実験的サポートを追加しました。これには、iPhone8 以降の iOS デバイスが必要です。Android デバイスでは、Vulkan を推奨します。ランタイム仮想テクスチャ圧縮はまだ実装されていません。モバイルの仮想テクスチャはデフォルトで無効になっているため、[Project Settings] で有効にする必要があります。

  • Improvements:Improvements to Mobile Custom Depth:

    • Added a console variable "r.Mobile.CustomDepthDownSample" which if set to 1, will use a half-resolution custom depth texture.

    • Changed stencil format to G8, and depth format to R16F, both memoryless color targets to reduce memory cost on mobile platforms.

  • Deprecated: Removed ES2 support.See blog post on www.UnrealEngine.com for more information.

  • Deprecated: Removed ATC/ETC1 and Android PVR texture formats.

最適化

  • 新規: Vulkan RHI のビューポートを反転することにより、HLSLcc の「gl_Position.y」座標の反転を置き換えました (VK_KHR_maintenance1 拡張を使用します)。これは、主に DXC によって生成された SPIR-V モジュールの使用を簡素化するために使用されます。

  • 新規: Intel での UAV オーバーラップのサポートを追加し、コンソール変数 "r.D3D11.NVAutoFlushUAV" の名前を "r.D3D11.AutoFlushUAV" に変更しました。

  • 新規: GPU リードバック フレームワークの使用時に CPU ストールが発生する問題を修正しました。

  • 新規: DXR 実装でのリソース常駐の追跡と記述子テーブルの重複排除には、"TMap/TSet" ではなく "TSherwoodMap/Set" を使用するようになりました。

  • 新規: 距離フィールド シャドウの低品質設定を追加しました (20 ステップ、SSS なしを使用します)。

  • 新規: ランタイム距離フィールド GPU ダウンサンプリングを追加しました。

ポストプロセス

  • Crash Fix: Fixed a crash in shader complexity pass when visualizing complexity in a cooked build.

  • Bug Fix: Added a fix for bloom application in split screen.The "PostProcessTonemap.usf" now properly accounts for a restricted ViewRect on the Bloom input texture.

  • Bug Fix: Applied a fix for debug draw pass using MSAA depth instead of resolved depth.

  • Bug Fix: Fixed an issue with bloom being sampled incorrectly in tonemap pass.

  • Bug Fix: Fixed the visualizer for motion blur to accept the last pass override.

  • 新規: 自動露出のデフォルトの露出バイアスを 1.0 に変更しました。

  • 新規: 自動露出が無効になっている場合、明暗順応露出を 1.0 にロックするようになりました。

  • 新規: Added ShaderComplexity support in cooked coクック済みのコンテンツで ShaderComplexity のサポートが追加されました。これを使用するには、.ini ファイルでコンソール変数「r.ShaderComplexity.CacheShaders=true」を設定する必要があります。

Tools

  • Bug Fix: Passed through the DepthPriority parameter in PrimitiveDrawingUtils instead of hardcoded value.

ツール

  • Crash Fix: Fixed a crash in CrashReporterClientEditor occurring if the user closed the windows before the call stack was resolved, preventing the crash reporter from sending the crash report.

  • Bug Fix:Fixed FArchive not properly writing when byte swapping is enabled.The written value was swapped after being written and the swapped value was returned to the user.

  • Bug Fix: Fixed FString not swapping the bytes when the archive was written byte swapped.

  • Bug Fix: Fixed an issue where the HLOD Outliner would stop updating while Play-in-Editor was running.

  • Bug Fix: Fixed the HLOD MergeSetting for "LOD Selection Type" that was being overridden on load when saved to level instead of Blueprint Asset.

  • Bug Fix: Fixed DMX Gobo Rotation effect and added a texture mask.

  • Bug Fix: Actions are no longer posted to the right-click menu for the Curve Editor if the curve/key's parent curve is set to "read-only."

  • Bug Fix: Fixed an issue when importing a Skeletal Mesh that would sometimes cause the material slots to not be properly assigned.

  • Bug Fix: Renamed "UnrealDisasterRecoveryService" as "UnrealRecoverySvc" to shorten several build/install paths on Windows.

  • Bug Fix: Fixed an issue with SN-DBS compilation with precompiled headers.This change restores generation of the dummy include file of PCHs.

  • Bug Fix: Applied fixes for various custom debugger object views (from natvis).

  • 新規: VTune 2019 ITT Notify ライブラリを更新しました。

  • 新規: SN-DBS コード ビルドの詳細出力を有効にしました。問題の発生を把握するために、これはデフォルトで有効になっています。それにより、サポートされているプラットフォームで問題なくコンパイルできるようになります。

  • 新規: framepro キャプチャのデフォルトの最小スコープ時間を 25us から 50us に変更しました。これは、framepro Windows クライアントのライブ キャプチャのデフォルトのスコープ時間です。この変更により、キャプチャのレコーディング時にスコープ「FramePro Start Frame」からのヒッチが大幅に削減されます。

  • 新規: 新しい DMX フィクスチャコンテンツを追加し、古い DMX 器具コンテンツを削除しました。

  • 新規: UDP メッセージのエンコードに使用されるメッセージ形式を変更する新しい UDP メッセージング オプションを追加しました。「CBOR (標準エンディアン)」と「CBOR (プラットフォーム エンディアン)」から選べます。

  • 新規: Mac にマルチユーザー サーバー ウィンドウを閉じる [Quit] メニューを追加しました。このショートカットは CMD と Q の同時押しです。

  • 新規: HLOD アウトライナー用に HLOD レベル ドロップダウン メニューに [No HLOD (HLODなし)] という選択肢を追加しました。

  • 新規:汚れていないことから、HLOD 再ビルド コマンドレットに「Do not resave BuildData.assets (BuildData.assets を再保存しない)」を追加しました。

  • API Change: This change list added a minor feature along with 2 bug fixes discovered while adding the feature.

アニメーション ツール

  • 新規: UAT:デフォルトの「"DeployFolder"」名を「"ShortProjectName-RootFolderName-UserName"」に変更し、50 文字で切り捨てるようになりました。これにより、異なるストリームまたはユーザーからの同じプロジェクトが、異なるワークスペースにデプロイされます。また、すべてのプラットフォームで、"ShortProjectName" ではなく "DeployFolder" を使用します。既存の "-deploy=DeployFolder" 引数は、カスタム ワークスペース名の指定に使用できます。

  • API Change: Make sure to use the new "DeployFolder" location in any command line parameters or debugger options when launching a deployed game.

UnrealVS

  • 新規: 「TArray<*,FMemoryImageAllocator>」および「TMemoryImagePtr <>」ビジュアライザーを追加しました。

  • Bug Fix: Fixed the project file generator to put the proper Engine PlatformExtension directory in the solution.

バーチャル プロダクション

3DText

  • 新機能:

    • UStaticMesh ベースのコンポーネントに切り替えました。

    • キャラクターはインスタンス化されたメッシュになりました。それにより、テキスト生成と変換ベースのアニメーションが高速化されました。

    • キャラクターが、再利用目的で実行時にキャッシュされるようになりました。

    • Text3DCharacterTransform を使用したテキスト アニメーション ツールを追加しました。これにより、位置、スケール、回転ベースのキャラクター アニメーションが可能になります。

    • カーニング、行間、単語間のスペースの速度を最適化しました。

    • サードパーティ ライブラリ (FTGL、GLU-Tessellate) を削除しました。

  • 新規: データ テーブルに基づいて 3D グラフを作成できるプラグインを追加しました。このプラグインは、現在、棒グラフ、円グラフ、折れ線グラフの3 種類を出力できます。すべてのグラフで完全なカスタマイズが可能です。また、イベントを通じたトリガー可能なアニメーションの表示と非表示をサポートしています。なお、このプラグインはまだベータ版です。

Composure

  • 新規: 2 パスの Color Difference キーヤを Composure に追加し、RGBtoHSV マテリアル関数を置き換え、それへのすべての参照を更新しました。

  • 新規: カラー チャンネルの違いに基づく、新しいキーヤを追加しました。これは、特に髪や透明なオブジェクトにキーを設定するときに、より良い結果を出力できます。マテリアルには、Alpha Erosion (アルファ浸食) や Despill (スピル除去) などの追加機能が含まれており、コンポジット平面のシングルパス セットアップと Composure の 2 パス セットアップをサポートするように構成されています。

  • Bug Fix: Fixed a bug when interpolating SceneTime from LiveLink frames to now use linear interpolation.

  • Bug Fix: Fixed incorrect background color of LiveLinkClientPanel when docked.

  • Bug Fix: Fixed default LiveLink preset to load when depending on other modules.Moved to PostEngineInit instead.

  • Bug Fix: Initialized the LiveLink source setting when connecting via Blueprint.

  • Bug Fix: Changed the name of LiveLinkMessageBusDiscoveryManager thread.

  • 新規: MobuLiveLinkPlugin の参照時間を読み取る方法を変更しました。そのため、これはシステム時間の差を調整せず、参照時間プロバイダによって設定された値を読み取るようになりました。

  • 新規:Create LiveLink Timecode プロバイダで、LiveLinkBaseFrameData に GetLiveLinkTime を追加しました。また、FOnLiveLinkSubjectFrameDataReceived の名前を FOnLiveLinkSubjectFrameDataAdded に変更しました。

  • New: [LiveLinkComponent]

    • Subject Role (サブジェクトの役割) を階層に分割して、各役割クラスにコントローラーを割り当てました。

    • ユーザーが、特定のコントローラーを役割に選択できるようになりました。

    • 役割クラスごとに、デフォルトのコントローラーを設定するためのプロジェクト設定を追加しました。

  • 新規: LiveLinkSubjectKey のピッカーを追加しました。

  • 新規: 拡張する際の柔軟性を向上させるために、複数の仮想サブジェクト ソースのサポートを追加しました。

  • 新規: 変換単位を切り替えるための新しい LiveLink Axis Switch オプションを追加しました。

  • 新規: LiveLink プリセットがコマンドからロードできるようになりました。

その他

  • 新規:選択したオブジェクトに Cine カメラがテクスチャとビデオを投影できるプラグインを追加しました。アルファはテクスチャとともにカットアウトとして使用できます。アルファは、新しいカラー チャンネル差分キーヤを使用して生成できます。なお、このプラグインはまだベータ版です。

nDisplay

  • Crash Fix: Fixed cluster event packing from a slave node that could lead the engine to crash during a second Play in Editor session.JSON data was being generated in a wrong way.

  • Crash Fix: Fixed a crash when a non-nDisplay StereoRendering device is used with nDisplay active.

  • Crash Fix: Fixed a bug when nDisplay is used with instanced stereo enabled that could crash the engine.

  • Crash Fix: nDisplay sync components now unsubscribe from the replication process on EndPlay.This fixed some unexpected issues and crashes.

  • Bug Fix: Fixed the 32K limit in networking.The networking buffer size for nDisplay internal communication and cluster events is now a UINT (32 bits).

  • Bug Fix: Fixed a bug where DisplayClusterRootActor could not be found when located in a sublevel.

  • Bug Fix: Fixed synchronization issue.All replication data on a master node is now acquired on game thread.

  • Bug Fix: Fixed several issues with receiving/emitting nDisplay cluster events during Play In Editor.

  • 新規: nDisplay マスター ノードは、MessageBus インターセプター設定をクラスタに送信するようになりました。それにより、すべてのノードが同じ設定を使用するようになり、マルチユーザー同期のバグを回避できます。

  • 新規: nDisplay クラスタ全体で同期された Live Link データを提供する LiveLinkOverNDisplay プラグインを追加しました。

  • 新規: メッシュ ベースのワープ レンダリングが追加されました。クロマキー マーカーが追加され、複数のクラスタ ノードでの連続レンダリングが可能になりました。

  • 新規: 新しいアクタ タイプ DisplayClusterTestPatternsActor を作成しました。これにより、コンソール イベントとクラスタ イベントの両方を使用して、キャリブレーション パターンの外観を制御できるようになりました。また、これはカスタム パターンをサポートしています。

  • 新規: Quadro および RTX Pro カード用の NVIDIA ハードウェア ベースのフレーム ロックおよびスワップ同期を統合しました。

  • 新規: コンフィギュレーション ファイルから利用可能な GPU をnDisplay インスタンスに割り当てるオプションを追加しました。

  • 新規:コンフィグのパスにスペースが含まれている場合、一時的に警告を表示するようになりました。そして、パスにスペースが含まれている nDisplay コンフィギュレーション ファイルは一時的に無効となります。

  • 新規: 単純な投影ポリシーの親コンポーネントが見つからない場合、RootNode がデフォルトとして使用されるようになりました。単純な投影ポリシーの画面に存在しない親ノードがある場合は、nDisplay の原点が使用されます。

  • 新規: カメラ内 VFX の 3 レイヤー コンポジションを変更しました。この変更には、カメラ内 VFX レンダリングでアクタを無視する機能の追加も含まれています。

Take Recorder

  • Bug Fix: Recorded data in Take Recorder is now smoother.

Timecode

  • Bug Fix: Updated code to directly access FApp::GetTimecode instead of using the engine's timecode provider.

  • Bug Fix: Updated TimecodeSynchronizer to use the FApp flags instead of the GEngine flag.

  • 新規: TTimedDataMonitor プラグインが追加されました。これにより、新しい方法で LiveLink や MediaIO データなどのさまざまな時間制限データ入力を構成および監視できます。また、ユーザーが拡張可能なインターフェースも追加しました。それにより、データをモニターによって自動的に取得できます。エンジンの評価ポイントと比較すると、これはさまざまなデータ ソースのアライメントを一カ所で視覚化することができます。最初にこのツールを使用することが意図されており、TimecodeSynchronizer の使用を検討するのはその後です。

  • 新規: システム タイムコードでサブフレームを生成できるようになりました。

  • 新規: 要求時に SystemTimecodeProvider を作成できるようになりました。これにより、[Project Settings] で CustomTimeStep と TimecodeProvider が変更できるようになります。

  • 新規:TC プロバイダと LiveLink のサブフレーム遅延を追加しました。

  • 新規:

    • FApp で FTimecode を FQualifiedFrameTime に置き換えました。

    • TCProvider がない場合は、Fapp で TOptional を使用してフレーム時間を無効にできるようになりました

    • LiveLink と nDisplay の計算用 FTimecode を削除しました。表示にはタイムコードのみを使用します。

    • FTimecode::IsDropFormatTimecodeSupported を使用して、FrameTime から Timecode に変換できるようになりました。

    • タイムコードが設定されていないときに、デフォルトのタイムコード値を生成できるようにしました。デフォルトで有効になっており、フレームレートは 24 fps です。

    • タイムコードが 29.97 または 59.94 の場合に、DropFrame または NonDropFrame でエンジンを設定する CVar を追加しました。また、これら 2 つから選択するシーケンサ オプションを削除しました。

  • 新規: タイムコード パネルでフレーム遅延を設定できるようになりました。

  • 新規: Blackmagic のカスタム タイムステップでドロップされたフレームを報告するオプションを追加しました。

  • 新規: ARKit フェイス プロトコルに小数値タイムコードのサポートを追加しました。

USD

  • Crash Fix: Fixed a bug when reading normals that were not varying per vertex on a USD geometry Actor.

  • Bug Fix: USD instances are now processed correctly when using the Import Into Level command.

  • 新規: USD プリミティブの [Details] パネルに、選択したプリミティブのすべての属性とその値がリストされるようになりました。

  • 新規: USD ステージ アクタを介して USD ステージをロードする際の USD MetersPerUnit メタデータのサポートを追加しました。

  • 新規:ユニバーサル シーン デスクリプション (Universal Scene Description:USD)

    • より良いパフォーマンスを実現するために、コンポーネント タイプの下にあるすべてのジオメトリ アクタの自動折りたたみが追加されました。

    • USD アセットから生成された派生データが派生データ キャッシュに保存されるようになったため、USD ステージの再読み込みがより高速になりました。

    • USD プリミティブから生成されたスタティック メッシュに物理ボディが追加され、VR スカウトを使用してそれらを操作できるようになりました。

  • 新規: Linux エディタに USD のサポートを追加しました。使用するには、エディタでランタイムタイプ情報 (RTTI) を有効にしてコンパイルする必要があります。

  • 新規: USD スキーマ変換フレームワークを拡張して、スキーマ トランスレータをオーバーライドし、カスタム USD スキーマのサポートを追加できるようにしました。

  • 新規: USD ステージ アクタを介した SD Point Instancer のサポートを追加しました。Point Instancer は HISM コンポーネントとして変換されます。

  • 新規: USD ステージをロードしている時のスタティック メッシュの作成がマルチスレッド化され、ロード時間が大幅に短くなりました。

  • 新規: USD ステージによってスポーンされたアクタに追加されたマテリアルは、現在の USD 編集ターゲットにカスタム アセットとして保存されるようになりました。USD ステージを再ロードすると、USD データにあるカスタム UE4 マテリアルが他の USD マテリアルに置き換わります。これにより、ユーザーは Unreal のマテリアル アセットを使用してエンジンの外観を設定できます。

Video IO

  • Crash Fix: Fixed a bug the could cause the engine to crash when trying to use the HAP video codec with DX12

  • Crash Fix: A bug was fixed so that inputting a negative size in the Media Capture panel could no longer cause the engine to crash.

  • Bug Fix: Fixed incorrect category name for Avid DNxHD encoding.

  • Bug Fix: - Fixed AJA output timecode overriding timecodes of other channels.

  • Bug Fix: When outputting with AJA, a ready frame is no longer used when no frame is available.Frame capture is skipped when the gameplay thread is not executing.

  • Bug Fix: When outputting with AJA, the correct number of drop frames are now reported.

  • Bug Fix: The AJA Timecode provider frame rate is now capped to 30 when read from the reference pin.

  • Bug Fix: Fixed how the engine detects if an AJA card is already used, to better handle when Unreal Engine 4 crashes and leaves the card in an unpredictable state.

  • Bug Fix: Fixed InlineEditCondition for FileMediaOutput.

  • 新規: AJA プラグインを追加しました。

  • 新規: AJA SDK を 15.5.1.2 に更新しました。

  • 新規: AJA 自動検出ボタンを追加しました。

  • 新規: Blackmagic Media プラグインを追加しました。

  • 新規:

    • MediaIO を更新して、時間制限データモニターと連携できるようにしました。

    • LiveLink の ValidEngineTime および ValidTimecodeFrame 設定をデフォルトで無効にしました。

    • LiveLink MessageBusSource をデフォルトでタイムコードに設定するオプションを追加しました。

  • 新規: AJA メディアカードを使用する場合、使用されているデバイス アプリ タイプの名前を出力できるようにしました。

バーチャル カメラ

  • Bug Fix: Fixed log spam when using a custom tracker in VirtualCamera.

  • Bug Fix: Fixed incorrect string comparison that stops RemoteSession from finding the correct channel.

VirtualProduction Utilities

  • Bug Fix: Teleport to bookmark now takes the headset offset into account.

  • Bug Fix: Fixed flying feature in VR scouting.Replaced action type string TrackpadPositionX and TrackpadPositionY with TrackpadPosition_X and TrackpadPosition_Y in related blueprints.

  • Bug Fix: Fixed camera grabbing when snapping is on.

  • Bug Fix: Fixed crashing when in VR and Multi-User, where other machines may crash when one starts VR Mode.

  • 新規: Unreal Motion Graphics をさまざまなゲームモードで全画面表示する方法を制御するアクタを作成できるようになりました。

  • 新規: VirtualProductionUtilities プラグインに Color Correction Volumes/Regions を追加しました。これらは、実際のセットを LED の壁の延長とブレンドするために使用されます。球、円柱、円錐などの 3 次元形状は、編集可能なフェードアウト領域を使用して、それらの内部にある正しいピクセルに色を付けることができます。

XR

  • 新規: XR レンダリング オプションを再整理しました。また、シングルパス ステレオ オプションを統合しました。

    • モバイルを対象とする場合、サポートされるプラグインにマルチビュー ダイレクトが自動的に使用されるようになりました。

    • インスタンス化されたステレオが有効な場合、マルチビューが自動的に使用されるようになりました。

    • モバイル HDR は XR レンダリング オプションに移行されました。これは、モバイルマルチ ビューでは無効にする必要があります。

  • Improvement: Improved logging for remote connection failures.

  • Improvement: Scene capture and reflection capture in VR Mode use Grow rather than Resize in select cases to improve performance.

  • Removed: Leap Motion plugin removed from engine as it is no longer supported.

HoloLens

  • Crash Fix: The camera can be explicitly turned on or off at runtime, and defaults to off.This fixes a crash that only shows in newer HoloLens flashes and generally reduces power consumption for all HoloLens apps.

  • Bug Fix: HoloLens now uses its device profile rather than creating a default device profile.

  • Bug Fix: Fixed a crash while changing the IP address of the remote device.

  • Bug Fix: Added a warning if developers run with the wrong XRSystem active and trying to remote to HoloLens.

  • Bug Fix: Updated default minimum Windows 10 SDK for HoloLens packaging to version 10.0.17763.0.

  • Bug Fix: Fixed issues that would cause packaging plugins on HoloLens to fail due to incorrect architecture string.

  • Bug Fix:Interop projects now handle spaces in the path for custom build step.

  • 新規:HoloLens のモバイル マルチビューのサポートを追加しました。

  • 新規: HoloLens の HandMesh を公開しました。

  • 新規: HoloLens QR トラッカー プラグインを最新版に更新しました。

  • 新規: コントローラーとハンド トラッキングのステータスを WMRFunctionLibrary に公開しました。

  • 新規: ゲームからのリモート処理を実装しました。

  • 新規: リモート設定ウィンドウでリモート接続ステータス (接続中、接続済み、切断) を表示するようになりました。

  • 新規: HoloLens に Web カメラのサポートを追加しました。

  • 新規: C++ に手の状態を公開しました。

  • 新規: 手の関節の半径を公開し、指の中央ではなく、指先にポインターを表示できるようにしました。

  • 新規:ハンド トラッキングがサポートされているかどうかをブール値で返すようにしました。

  • 新規: Microsoft Spatial Audio の HoloLens のサポートを有効化しました。

  • 新規: HoloLens にある 3 番目のカメラの MRC のサポートを追加しました。

  • 新規: コントローラー トラッキング ステータスの HoloLens 入力シミュレーション インジェクションを HMD クラスに移動しました。

    • SpatialInput クラスは IMotionController インターフェースだけを実装するようになりましたが、WMR 関数ライブラリを介した入力シミュレーション データの提供は行わなくなりました。関数ライブラリは HMD 関数を直接呼び出すため、そのレベルでの実装は両方のコード パスをカバーすることになります。

  • Improvement: Changed failure reason on HoloLens Remoting connect logs from a numerical int to the enum value name.

AR

  • Bug Fix: Fixed a typo in a log message for attempting to start an AR session without a session config object.

  • Bug Fix: Fixed issue with converting UnrealTargetPlatform to string when parsing command line options Added a TypeConverter for UnrealTargetPlatform.

  • 新規:コマンドライン引数をパースするときにタイプコンバーターが存在するかどうかチェックするようになりました。

ARKit

  • Bug Fix: Changed ARKit to use the material-based method for camera image color space conversion and rendering.

    • The material based code path is enabled by MATERIAL_CAMERAIMAGE_CONVERSION=1 in the Build.cs file.

    • The CIContext based method can still be enabled with MATERIAL_CAMERAIMAGE_CONVERSION=0 but is reserved for testing purposes

Magic Leap

  • Crash Fix:Fixed vertex normal calculation for Magic Leap hand meshing, as using incorrect normals was crashing on low poly meshes.

  • Crash Fix:UpdateTrackedGeometry is called in FLuminARTrackedPointResource::UpdateGeometryData even if we couldn't get a valid position and orientation to update to.This addresses a crash that occurs within certain Blueprint functions (GetLocalToWorldTransform, for example) if Point does not have a valid ARSystem pointer during scene transitions.

  • Bug Fix: Added hooks into input focus callbacks for Lumin

  • Bug Fix: Fixed an error where legacy button code would send home button taps twice, resulting in behavior tied to home tap toggling on and off immediately.

  • Bug Fix:Fixed hand mesh winding order.

  • Bug Fix: Exposed mic mute state getter and setter.

  • Bug Fix:Fixed bugs with flushing audio buffer when device goes in standby.

  • Bug Fix:Updated deprecated functions in MLAudio and MagicLeapAudioCapture

  • Bug Fix:Fixed multiple input tracker creation and disabling mouse / keyboard input during VRPreview.

  • Bug Fix: Export Vulkan Command Wrappers FWrapLayer methods imported for Magic Leap and OpenXR plugins to avoid build breaks when VULKAN_ENABLE_IMAGE_TRACKING_LAYER is enabled.

  • Bug Fix: Fixed AndroidRelativeToAbsolutePath() for Lumin.

  • Bug Fix: Depth target is no longer rendered to MLGraphics in Zero Iteration.

    • Only reallocate the depth target if the requested size matches the expected size.This workaround is required because this depth allocation function can receive requests for targets other than the one for eye stereo render, such as when using a SceneCaptureComponent.

  • Bug Fix: Fixed ImageTracking not working on consecutive VRPreview launches.

  • Bigfix:Fixed an issue preventing light estimation from working when ARSession is restarted on the device.

  • Bug Fix: Fixed a Vulkan validation layer error for missed layout transition.

  • Bug Fix: Fixed planes not working on consecutive VRPreview runs when using the AugmentedReality interface.

  • Bug Fix: Added a workaround fix MRMesh flickering on Vk desktop renderer.Enable mesh occlusion when the MRMesh is connected to the MagicLeapTrackerComponent.Since this happens after the MRMeshProxy is created, modify SetEnableMeshOcclusion so that it updates the proxy's value as well.

  • Bug Fix:Fixed flickering caused by garbage data being used for the bounds in a frustum/bounds visibility check.

  • Bug Fix:During tangent generation, normals are now generated by adding the normal of each triangle that a vertex is part of and then normalizing the result.This removes the need to add a separate iteration over the mesh just to do normalization.

  • Bug Fix:Hands now support one-sided materials.

  • Bug Fix: Reset worker thread setup for image tracking so it restarts on consecutive VRPreviews.

  • Bug Fix: Fixed file permissions on Mac binary builds to replace existing artifacts for lumin.

  • Bug Fix:Added a missing config property to allow developers to manually call the lifecycle set ready notification function.

  • Bug Fix:Re-install app on device if it is uninstalled outside of Unreal context during consecutive LaunchOn iterative deployments.

  • 新規: Magic Leap の PLATFORM_SUPPORTS_VULKAN プリプロセッサ フラグを定義しました。

  • 新規: ユーザーがコントローラーを手に持っているかどうかを示す関数を公開しました。

  • 新規:モーションのソースと手のキーポイント列挙型の間を変換するヘルパー メソッドをいくつか追加しました。

  • 新規:ターゲットがバックエンドに追加された時を通知するために、MagicLeapImageTracker にイベントを追加しました。それにより、モジュール内で直接 C++ 呼び出しを行いすべての機能を公開します。

  • 新規:MagicLeapOpenGL モジュールに PLATFORM_SUPPORTS_VULKAN を追加しました。

  • 新規: Magic Leap SDK を .23 に更新しました。この更新には、新しい外部で所有されている Vulkan セマフォをサポートするための変更が含まれています。

  • 新規: コンフィギュレーション ファイルを介した Lumin スレッド アフィニティの設定を実装しました。

  • 新規: MagicLeapConnections プラグインを追加しました。

  • 新規: MagicLeapContacts プラグインを更新しました。

  • 新規:0.23 Magic Leap SDK の権限を更新しました。

  • 新規: MagicLeapARPin インターフェースを MagicLeapPassableWorld という独自のプラグインに移動しました。これは ModularFeature として再実装され、iOS および Android の Magicverse プラグインで使用されます。MagicLeapPassableWorld には、MagicLeapSharedWorld ヘルパーも含まれています。

  • 新規: 深度バッファを MLGraphics に渡すようにしました。また、MagicLeapMetalCustomPresent のフレーム同期を改善しました。

  • 新規: MagicLeapLocation プラグインの LocationServicesBPLibrary インターフェースを実装しました。

  • 新規: AppEventHandler での権限管理の更新、0.23 SDK で利用可能な権限の更新、MagicLeapMedia プラグインの見た目の更新を行いました。

  • 新規: MagicLeapAR モジュールのリファクタリングを行い、FLuminARFrame、FLuminARSession、および FLuminARDevice を FLuminARImplementation に組み込みました。

  • 新規: MagicLeapAR に LightEstiamtion、ImageTracking を実装しました。これには、AugmentedReality インターフェース自体のマイナー アップデートを行う必要があります。

  • 新規: 新しく MagicLeapMovement プラグインを追加し、MagicLeapMusicService プラグインにある非推奨の関数の使用方法を更新しました。

  • 新規: ローカライズされたアプリ名とアイコンのサポートを追加しました。

  • 新規: Magic Leap:MagicLeapPlanes への永続的なプレーン クエリを実装しました。コマンドラインを介してマップの移動が要求された場合、Lumin に LocalAreaNetwork 権限を強制的に要求します。

  • 新規: Magic Leap:MagicLeapCVCamera モジュールを追加しました。

  • 新規: Visual Studio を介して Lumin でブループリントのみのプロジェクトをデバッグできるようにしました。

  • 新規:Lumin のデフォルトのデバイス プロファイルとランタイム設定の構成を更新しました。

  • 新規: LuminApplicationLifecycleComponent の露出フォーカス イベントを公開しました。

  • 新規:MLGraphics API によって付与された生のパフォーマンス値を公開しました。

  • 新規:プラットフォーム API レベルをクエリするための関数を追加しました。

  • 新規:MeshTrackerComponent に「MagicLeap」プレフィックスを追加しました。

  • 新規:頂点法線を計算するときにトライアングルの重みを使用するかどうかを設定する、ブループリントで呼び出し可能な関数を追加しました。これはデフォルトでは False となっています。また、これを使用しても、パフォーマンスに対する負担はわずかで大きな影響はありません。

  • 新規:RemoveHandleIf は、ジオメトリ タイプが一致する場合、保存されているすべてのハンドルに適用される高次関数を受け取るようになりました。適用された関数が true を返すと、追跡されたハンドルは追跡を停止し、内部で削除されます。追跡システムを使用すると、入力関数を介して適切と思われる追加の削除ビヘイビアを実行できます。

  • Improvement:Supplied a box based on the HMD position and orientation.

  • Removed:Deleted unused TextureReader class.

  • Removed: Removed GetTrackableHandleMap from the ARTrackingSystem interface.Instead, a new function RemoveHandleIf is used to set the StoppedTracking state and remove the handle.

  • Removed:Removed FLuminFileMapper, as it was returning the same names without case changes.

  • Removed:Removed deprecated fixation comfort api from MagicLeapEyeTracker.

  • Removed: Removed explicit caching and re-sending of the current mesh data.This is not required because MRMesh keeps a local cache of the current data to be rendered.We only need to send new data when we want to update the mesh.

VR

  • Crash Fix: Fixed resource transition with SteamVR on Vulkan to avoid an assert on SteamVR startup.

  • Crash Fix: Addressed a crash that occurs during Ovr Avatar shutdown due to delay load helper throwing an exception when the module has been unloaded.

  • Crash Fix: Fixed a crash that occurs during Oculus room invites

  • Crash Fix: Fixed an assert on ending PIE or closing an app using D3D12 and SteamVR.This also fixes other potential issues around lifetime with D3D12 and Vulkan textures with the XrSwapChain class and resource aliasing.

  • Crash Fix: Fixed out-of-order shutdown crashes with Oculus Avatar plugin.

  • Bug Fix: Fixed a bug preventing developers from mapping actions to the Oculus Touch's menu button.

  • Bug Fix:Switched XrSwapchain and SteamVR to use the new RHICreateAliasedTexture API. This prevents a redundant/dummy texture creation during initialization.

  • Bug Fix: Added D3D12 renderbridge implementation, including a SteamVR bUseExplicitTimingMode flag to ensure thread-safety in DX12.

  • Bug Fix: Fixed Vulkan timer query buffer overflow.

  • Bug Fix: Removed redundant swapchain re-creation when switching modes (Example:VRMode/PIE and back).

  • Bug Fix: Addressed an issue where fragment density map in Vulkan (when using Vulkan foveation) is added in the renderpass, but not in the renderpass attached to the graphics pipeline.

  • Bug Fix: Fixed a bug where default bindings weren't correctly generated for SteamVR if the manifest file didn't exist, causing packaged games to have no bindings and motion controllers not to be tracked.

  • Bug Fix: Fixed hitching that occurs on Oculus when a level contains uninitialized or hidden stereo layers when entering VR preview.

  • 新規: プラグイン固有のステレオ レイヤー形状を実装することにより、SteamVR 高品質ステレオ レイヤーを追加しました。

  • 新規: OVRPlugin をバージョン 1.45 に更新しました。

  • 新規: Oculus Audio の更新を実装し、Quest で Arm64 のサポートを追加しました。

Windows 複合現実

  • Bug Fix: Changed status text delegate binding from BindRaw to BindSP to fix an occasional AV on ExecuteIfBound.

  • Bug Fix:Updated status text to use a non-deprecated SetText override.

  • Bug Fix: Disabled rendering when headpose is lost.In these cases the system dialog takes over.

  • Bug Fix:Fixed audio cutting out when VRPreview window is not in focus.

  • Bug Fix: Fixed use of finger transform buffer that will be freed rather than the local copy we make for one hand.

  • Bug Fix: Fixed a bug in SpatialStageFrameOfReference that would cause camera height to decrease when tracking is lost.

  • 新規: Windows Mixed Reality HMD のボタン押下状態のシミュレーションを実装しました。

  • 新規: WindowsMixedReality プラグインの新しい入力シミュレーション モジュールを実装しました。このモジュールは、HMD が接続されていない場合にデバイス入力を置き換えるために生成されたデータを格納するエンジン サブシステムを提供します。

プログラミング

  • Deprecated: The MeshDescriptionOperation module has been deprecated.It's utility functions are being moved over to the StaticMeshDescription module.

  • Bug Fix: Removed the duplicated object name from output paths when performing an Advanced Copy operation.

  • Bug Fix: FXmlFile now supports the ">" character within attribute strings.It doesn't need to be escaped in a valid xml file.

  • 新規: スタティック メッシュとキャッシュされたメッシュ描画コマンドが並行して生成されるようになりました。ダウンストリームで呼び出されるコードで競合状態が発生することがあるため、ご注意ください。

アップグレード ノート

アニメーション

Animation Blueprints
  • Changed AnimNode Layer Blend Curve Options to:

    • Override

    • DoNotOverride

    • NormalizeByWeight

    • BlendByWeight

    • UseBasePose

    • UseMaxValue

    • UseMinValue

  • "MaxWeight" is now called "Override".

ブループリント

  • Merged UK2Node_LatentOnlineCall into UK2Node_AsyncAction, and moved it from the Kismet module into BlueprintGraph.If you have a custom K2 node derived from either you may need to update your module dependencies or remove your subclass and add a redirector to your DefaultEngine.ini.

Core

UProperty

API の重大な変更です。

  • Converted UProperties to FProperties.つまり、UClasses のメンバ変数を表す内部エンジン オブジェクトは UObjects そのものではなくなります。これにより、メモリ オーバーヘッドの減少 (プロパティにつき平均 123 バイト)、プロパティ オブジェクトの構築および破壊時、ガーベジ コレクションとすべてのオブジェクトのイタレート時のパフォーマンス向上につながります。プロパティ キャストおよびプロパティ イタレーションも高速になりました。

    • U*Property クラスは名前が F*Property クラスに変更されました。したがって、プロジェクト コード内の UProperties へのすべての参照を更新しなければなりません。

    • FProperties は別の Cast 関数 (CastField / CastFieldChecked) を使用するので、すべてのキャストをプロジェクト ゲーム コードで更新しなければなりません。

    • UPROPERTY() UProperty* MemberVariable; 宣言を UPROPERTY() TFieldPath<FProperty> MemberVariable; に置き換えなければなりません。It still is a Garbage Collector exposed hard reference with PendingKill support (becomes null if the owner UStruct is PendingKill) and automatically serialized with SerializeTaggedProperties with automatic conversion on load for all existing saved references to UProperties in packages.

    • TFieldIterator<UField> はプロパティをイタレートせずに TFieldIterator<FProperty> を使用するようになりました。

    • FindFieldFindUFieldFindFProperty の 2 つの関数に分割されました。FindUField はメンバ関数または列挙型変数を見つけるために、FindFProperty はメンバ変数を見つけるために使用します。

    • FPropertiesNewObject で構築されず、C++ new を使用するようになりました。

    • UStruct::Children 連結リストにプロパティが含まれなくなりました。その代わりに UStruct::ChildProperties を使用します。

    • FArchive derived classes that collect UObject references now need to override virtual FArchive&amp; operator &lt;&lt; (FField*&amp;) to catch FProperty references.All existing cases that needed it should already support it.

    • FProperty::GetOuter() がなくなりました。代わりに FProperty::GetOwner() を使用してください。理由は Outers は UObject だからです。FProperties はより明示的な方法でそれらの親によって所有されるようになりました。

    • UObject または FProperty であるコンテナとして機能する`FFieldVariant というヘルパ構造体があります。ほぼ同一バージョンの既存の別々の関数を作成しなければいけない場合に、 FProperties` への変換を簡素化するためにコードベースのいくつかの場所で使用されます。ただし、影響を受けるシステム オーナーがコードをアップグレードする時にそれをいずえrは除去することが目的です。

    • エディタ ビルドに、FProperty 参照を渡すために Details Panels によって使用されるヘルパ UPropertyWrapper クラスがあります。これらは、数多くの場所で FProperties を編集可能なオブジェクトとして処理するだけのシステムに対して広範囲にわたる変更を行うことを防ぐための方法です。

DevTools

AutomationTool
  • 新規: CMake を使用するサードパーティ ライブラリをビルドするための BuildCMakeLib UAT 自動化スクリプトを追加しました。これを使用してプラットフォーム拡張のサポートおよびエンジンが提供しているサードパーティ ライブラリの再ビルドを行います。

    For example, if the binary library output is located in Engine/Source/ThirdParty/ExampleLib/examplelib-0.1/lib/PlatformName/Release/ExampleLib.a

    • You could run the following command to build that lib:

      RunUAT.bat BuildCMakeLib -TargetLib=ExampleLib -TargetLibVersion=examplelib-0.1 -TargetConfigs=relase+debug -TargetPlatform=PlatformName -LibOutputPath=lib -CMakeGenerator=Makefile -CMakeAdditionalArguments="-DEXAMPLE_CMAKE_DEFINE=1" -MakeTarget=all -SkipSubmit
    • The -LibOutputPath command line is to override the directory that libraries are stored in, the default is to not place the output inside an additional directory.

    The script is currently intended to be run once for each platform, as the expected CMakeGenerator may differ per platform.

    The script will attempt to find the CMakeLists.txt in a number of locations, first in the root of the library directory for example, Engine/Source/ThirdParty/ExampleLib/examplelib-0.1/then in BuildForUEinside that root and then a per platform BuildForUE,which may either be inside the platform extension's source e.g. Engine/Platforms/PlatformName/Source/ThirdParty/ExampleLib/examplelib-0.1/BuildForUE or inside the third party root's directorye.g. Engine/Source/ThirdParty/ExampleLib/examplelib-0.1/BuildForUE/PlatformName.

    -TargetLibSourcePath= can be used if the source for the library is external to the engine and only the binaries are stored with the engine. In that case the path should be to the root where the CMakeLists.txt is stored.

UnrealBuildTool
  • Changes to child plugins and platform extensions:

    • Added support for white-listing additional plugins in the child plugin.

    • Added support for adding additional modules to child plugin extensions.

    • Child plugins can now override SupportedTargetPlatforms if it is not defined in the parent.

    • Monolithic programs inside platform extensions can now output to the Binaries directory in the extension instead of the main Engine binaries directory.Previously, if SupportedTargetPlatforms was not defined in the parent plugin but was defined in the child plugin, it would have been ignored, meaning all platforms would be supported.Child plugins can now override SupportedTargetPlatforms, which means that if SupportedTargetPlatforms is not defined in the parent plugin, it will start from a base list of no platforms being supported for that plugin.Child plugins cannot remove SupportedTargetPlatforms from other child plugins.If you have child plugins where the parent plugin does not use SupportedTargetPlatforms, you will need to make sure to remove the SupportedTargetPlatforms from the child to return to the original functionality.

Editor

Sequencer
  • The IMovieScenePlayer interface's UpdateCameraCut method was changed: it now takes the new camera object, and a parameter structure.The parameter structure contains what was previously passed as loose arguments, plus some new blending information.

Gameplay Framework

  • Replicated properties in AActor, UActorComponent, and USceneComponent are no longer marked deprecated, but are now private.Replace direct usage of these variables with calls to accessor functions.

  • AActor::bAutoDestroyWhenFinished is now private.Replace direct references to this variable with calls to AActor::GetAutoDestroyWhenFinished and AActor::SetAutoDestroyWhenFinished.

Networking

  • Moved ResizableCircularQueue.h from Engine/Net to Core/Net.Anywhere that you have included this file, change "Engine/Net/ResizableCircularQueue.h" to "Core/Net/ResizableCircularQueue.h".

Socket Subsystem
  • The commandline flag "-PRIMARYNET" has been dropped due to its obsolescence; GetLocalHostAddr will perform the same operation without the flag specified.

Online

  • The Steamworks build script now supports updating or changing the SteamSDK to specific versions.In Steamworks.build.cs, the variable SteamVersionNumber now controls all the versioning for the SteamSDK.

  • Changes to IVoiceChat interface:

    • VoiceChat.h has moved from Engine/Source/Runtime/Online/Voice/Public/Interfaces to a new VoiceChat header-only plugin in Engine/Plugins/Online/VoiceChat/VoiceChat/Source/Public.This header can be included by adding "VoiceChat" to the PublicIncludePathModuleNames/PrivateIncludePathModuleNames in Build.cs files as necessary.

    • The variable FVoiceChatResult::bSuccess has been replaced with the function FVoiceChatResult::IsSuccess.

    • Added an enum called FVoiceChatResult::ResultCode, providing a success value and a variety of error values.

    • FVoiceChatResult::ErrorCode changed from an int to an FString.This avoids collisions, and allows for both shared error codes (such as errors.com.epicgames.voicechat.not_initialized), and implementation-specific ones (such as errors.com.epicgames.voicechat.vivox.missing_config).The intent is that errors will be mapped to one of the common error categories in EVoiceChatResult if possible (or EVoiceChatResult::ImplementationError if none apply), and to one of the common error codes in VoiceChatErrors.h.If no common error codes apply, then the implementation can provide its own error codes (see VivoxVoiceChatErrors.h for reference).

    • FVoiceChatResult::Error has been renamed to ErrorDesc.The intent is for this to provide additional information for logging.

  • Changes to VivoxVoiceChat plugin:

    • Errors originating from the plugin (not the SDK) which were previously reported with a small negative integer and FString (for example, -2 and "Not Connected"), have been changed to provide error categories and string codes (for example, EVoiceChatResult::NotConnected and errors.com.epicgames.voicechat.not_connected).

    • Numeric errors originating from the Vivox SDK itself were previously reported directly in the ErrorCode.These are now mapped in the following ways:

      • Where possible, some errors, e.g. VX_E_NOT_INITIALIZED are mapped to common error categories and codes, in this case EVoiceChatResult::NotInitialized and "errors.com.epicgames.voicechat.not_initialized".

      • Some errors are not mappable to common error codes and are therefore mapped to vivox specific error codes, with the error category EVoiceChatResult::ImplementationError.For example, VX_E_CALL_TERMINATED_KICK is mapped to the error code "errors.com.epicgames.voicechat.vivox.kicked_from_channel".

      • Any errors that are not mapped to specific error codes are reported as EVoiceChatResult::ImplementationError and "errors.com.epicgames.voicechat.vivox.".

      • The actual numeric error code and status string sent by the SDK are provided in FVoiceChatResult::ErrorDesc in the format "StatusCode=%d StatusString=[%s]" \ Please look in VivoxVoiceChat.cpp and especially FVivoxVoiceChat::ResultFromVivoxStatus to see the current mapping.

  • USocialManager::bLeavePartyOnDisconnect has moved to USocialSettings.Config files referencing the old location will need updating.

Platforms

All Mobile
  • Renamed the mobile "Support Distance Field Shadows" setting to "Support Pre-baked Distance Field Shadow Maps" and improved the tooltip to reduce confusion with the desktop Distance Field Shadows feature.

Android
  • Updated Android toolchain to NDK 21 (20 is also supported for x86_64).See the new Android setup documentation using Android Studio and Engine/Extras/Android/SetupAndroid scripts.

  • Refactored com.epicgames.ue4.network.NetworkChangedListener to com.epicgames.ue4.network.NetworkConnectivityClient.Listener.The NetworkChangedManager now conforms to the com.epicgames.ue4.network.NetworkConnectivityClient interface.Existing calls to NetworkChangedManager.addListener(Listener listener) and NetworkChangedManager.removeListener(Listener listener) will supply the above updated Listener class instead of the old NetworkChangedListener.

  • The NetworkChangedManager now determines the connectivity through a combination of Android system network callbacks to determine connectivity, then verifies connectivity by performing an empty HEAD request to "https://example.com/ ".Should this request fail, the manager will indefinitely continue to retry against this URL with an exponential back-off up to the NetworkChangedManager.MAX_RETRY_SEC. This constant defaults to 13 seconds.

  • OpenGL on Android will now use a separate thread (RHIT) for graphics commands submission.Older engine versions had RHIT disabled by default.To disable RHIT in 4.25, add r.OpenGL.AllowRHIThread=0 into your project DefaultEngine.ini.

Rendering

  • HLOD proxy meshes can now cast dynamic shadows.If you want to keep the old behavior without adjusting your data, you can set the r.HLOD.ForceDisableCastDynamicShadow cvar to 1

FX - Niagara
  • Niagara now features the Niagara Platform Set, a new feature for controlling which platforms use certain aspects of Niagara.Current users include:

    • Emitter Enabled/Disabled switch

    • System-level scalability settings in EffectType, and overrides in System

    • Emitter-level scalability settings in EffectType, and overrides in Emitter This entirely replaces the previous Detail Level feature.Users now select from Quality levels as a basic use case for scaling across platforms.Further fine grained control can be achieved by setting per device profile overrides to this.For example, all Quality levels could be enabled but Android, iOS, or some subset of mobile devices could be specifically disabled.Quality Level is controlled by fx.Niagara.QualityLevel.Emitters are optionally pruned from cook when disabled by fx.Niagara.PruneEmittersOnCook.Old projects that had custom setup for Niagara Detail Level will have to update their systems to the new setup.Projects using default detail levels will automatically update.

  • Updated module graph UI to better support parameter default modes.Changes:

    • "Value" mode variables do not allow connections to their input pins

    • "Binding" mode variables are hidden completely

    • Changing the default value in the details panel automatically updates all the graph nodes

    • Existing graphs are validated and updated on PostLoad Old assets should automatically be updated to the new schema.If the default value pins are connected to a subgraph to initialize the value, then the default mode is automatically set to "Custom", otherwise it is set to "Value" and the pins are marked as read-only.

  • Data Interface functions which need per-instance data can now be called from custom HLSL on CPU emitters.This required changing the order in which parameters are passed to DI functions on the CPU.Specifically, the instance data pointer is now the first input parameter, instead of the last.If you have custom data interfaces which use per-instance data, you need to update the code to read the user pointer first instead of last, for example: ``` VectorVM::FExternalFuncInputHandler FirstInput(Context); VectorVM::FExternalFuncInputHandler SecondInput(Context); VectorVM::FUserPtrHandler InstData(Context); // last input VectorVM::FExternalFuncRegisterHandler Output(Context); ``` becomes: ``` VectorVM::FUserPtrHandler InstData(Context); // first input VectorVM::FExternalFuncInputHandler FirstInput(Context); VectorVM::FExternalFuncInputHandler SecondInput(Context); VectorVM::FExternalFuncRegisterHandler Output(Context); ```

  • Updated Niagara modules, dynamic inputs and functions to use the new explicit RandomRangeFloat and RandomRangeInteger functions from CL # instead of the old RandomRange helper.This might have breaking changes for non-deterministic CPU-side random numbers, as the upper bounds will be off by one compared to earlier for integer based types (booleans, enums, regular integers).

  • Added FGPUSortManager that handles different GPU sort tasks.The current clients for it are Cascade and Niagara.Added a framework to allow any system to send GPU sort tasks (like sorting particles).

  • The emitter execution order takes into account events, so that emitters which consume events run after the emitters which produce those events.This makes it possible for events to be delivered in the same frame as they are generated, removing the need for extrapolation in most cases.Set "Gap Correction Amount" to 0 on any "Generate Location Event" modules you are using.If you are performing manual position extrapolation on received events, disable it and verify that the values are correct.Manual extrapolation may still be necessary for spawn events if the source emitter is using interpolated spawning, since there's no equivalent for interpolated spawning on event scripts.

  • Niagara ribbons are now preserving multi-ribbon ordering, in order to prevent random flickering when the camera moves around.Disabled multi-ribbon ordering when using opaque materials.Fixed random flickering when using multi-ribbon in Niagara.

  • Added support for uint32 vertex indices when using Niagara ribbons.Fixed a bug with Niagara ribbons when requiring more than 16-bit indices.

Known Issues

For a complete listing of known issues affecting Unreal Engine 4.25, please see the Unreal Engine Public Issue Tracker .

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信