新機能
Unreal Engine 5.4 には、コアの UE5 ツールセットに改善が加えられています。今回のリリースでは、レンダリング、ワールド構築、プロシージャル コンテンツ生成 (PCG)、アニメーション ツールとモデリング ツール、バーチャル プロダクション、シミュレーションなど、さまざまな領域で改善を実現しています。
今回のリリースには、GitHub の Unreal Engine デベロッパー コミュニティから寄せられた改善点が含まれています。Unreal Engine 5.4 に貢献いただいた以下の皆様に謝意を表します (以下、敬称略)。
AGTomasz、alasher、amuTBKT、aschulz90、AtariDreams、avudnez、batlam987、BenVlodgi、berry0511、BigBirdSDP、BinaerBoy、BioXide、BlueMountainsIO、bovesan、brasky、bstegerESRI、ChetRippo、DannyGoodayle、DanteSSS333、dclyde-brg、DecoyRS、devhyper、disseminate、djbozkosz、djethernet1、DomCurry、dorgonman、DoubleDeez、dpull、DreamSworK、duyaokun、dyanikoglu、EchoRed-3D、erebel55、ericdrobinson、Eyesiah、f3db43f4g443、fahhem、FattyMieo、FlyAndNotDown、foobit、fpwong、gameltb、gaspardpetit、gaurang-ingale、geordiemhall、GregB-WG、Gusten、hcarrikerriot、hellokenlee、hnrqbaggio、hooni7440、igor-kondratiev、ilkeraktug、ill、intvoker、JakubZbikowski、jamespark-unreal、jeremywhite2k、jiaqiaoyou、jkorpian、jorgenpt、juliancao、Jungle178、Kalmalyzer、KaosSpectrum、KarimLUCCIN、karlingen、kdada、kdbn、KeithRare、kissSimple、klukule、KristofMorva、kyoilkim、ldisthebest、LennardF1989、lightbringer、Lithel、lolisia、losjun、LtRandolph、MagForceSeven、MalikuMane、MarcoAltomonteMilestone、MarcusSvensson92、MartinWickhamFB、mastercoms、Maxime、obinot、meglinge、midgen、MihailPreis、Mystfit、najmm01、nchapmantimberline、negril、nickdarnell、originomeg、PhDittmann、phebert74、phisko、PICO-XR、pierricgimmig、projectgheist、Promesis、psketi、RandomInEqualities、Rideron85、RiotJoshuaGlazer、Ronsenval、rqgbx、RVillani、saim80、sapayne、scahp、shchavinskyi、Sigma-Erebus、slonopotamus、splatxman、SRombauts、SungJJinKang、sunluchang、Szmyk、TaaviVarjo、Tanc-ANT、teddemunnik、tehpola、thomasvanta、thraidh、tilongzs、tmcguire-meta、tnam、TroutZhang、Vaei、Victov、vorixo、wouter140、wwKevinS、Xertor、xuelongmu、zenoengine、zgrapher、zhaojunmeng
キャラクターとアニメーション
アニメーション オーサリング ツールの拡張
ユーザーがアニメーション オーサリング向けにカスタマイズ可能なツールを作成できるように、ブループリント/Python API 内で機能がさらに拡張されました。
- 選択スクリプトの改善 - 選択したキーフレームを取得し、シーケンサー内でオブジェクトを選択できるようになりました。
レイヤー コントロール リグ
新しいレイヤー コントロール リグ システムでは、破壊可能なキャラクターの編集のためにデータをベイクする必要がなくなりました。多くのワークフローでコントロール リグのすべての機能を利用できます。
アニメーション オーサリング

新しいギズモ
このアップデートでは、平行移動、回転、スケール用に再設計されたギズモが導入されました。使い慣れた直感的なインターフェースでポーズやアニメーションを操作できます。
-
外観とスタイルの改善
-
間接操作の最適化
-
アークボールの改善
-
ポーズ中のビューポートにおける親スペース オプション。以前は、ワールドとローカルのオプションのみが利用可能でした。
コンストレイント 2.0
レベル シーケンス ワークフローをより適切に処理できるように、コンストレイント システムの多くが書き直されました。
-
アニメートされたコンストレイントがレベル シーケンスに完全に保存されるようになりました。
-
評価エンジンが改善されました。サイクルを起こさずに、より多くのコンストレイント設定をより適切にサポートできるようになりました。
-
UX に取り組み、ツール使用中のエクスペリエンスが改善されました。
アニメーション詳細 2.0 / チャンネル ボックス (モックアップ)
アニメーション チャンネル ボックスが全面的に改良されました。他の一般的な DCC ツールのユーザーにとってよりなじみのあるエクスペリエンスになりました。
ポスト リターゲティング フェーズ
IK リターゲッタからのリターゲティング結果の後に一連の操作を処理する、新しいリターゲット フェーズが追加されました。これらの操作は、FK リターゲティング チェーン マップまたはフル ボディ IK リターゲットでは困難または完全に解決できないリターゲットの問題を解決することを目的としたスタック順序に対して適用されます。
これにより、ソース アニメーションまたはリターゲティング結果のいずれかに一致するように IK ボーンを適切に割り当て、リターゲット アニメーションでルート モーションを生成し、アニメーション カーブを再マッピングできるようになります。
シーケンサーの可読性
シネマティック空間でより魅力的なエクスペリエンスを創出し、幅広いオーディエンスにアピールできるようになりました。つまり、より高速で、より優れた、より複雑なシネマティック エクスペリエンスを作成できるようになりました。
-
トラック状態のアウトライナー列 - シーケンサーの階層ツリーの左側に、アイコンを使用してトラックのピン / ミュート / ロック / ソロ状態を表示およびアクセスが可能な新しい列が追加されました。
-
キーフレーム ステータス インジケータ - シーケンサーで作業中、プロパティの現在のキーフレーム ステータスに基づいて、アニメート可能なプロパティのキーフレーム アイコンが変化するようになりました。ユーザーは、プロパティがキー付きか、キーなしか、部分的にキー付きか、または変更されているかを簡単に判断できます。
-
シーケンサー ツリーの外観と色の改善 - シーケンサー ツリーの外観と色に大幅な変更を加えました。これにより、シーケンサー ツリー内のコンテンツを簡単に表示できるようになりました。
シーケンサーでのアニメーション マテリアルの拡張
シーケンサーでのマテリアル アニメーションのオーサリングが拡張されました。レイヤー マテリアル パラメータ、オーバーレイ マテリアル、ボリュメトリック クラウド コンポーネント、カスタム プリミティブ データ サポートがサポートされるようになりました。マテリアル スロットは、インデックスではなくスロット名から参照されるようになり、メッシュ コンポーネントの更新時にシーケンサー内で再バインドできるようになりました。
この機能拡張により、ユーザーはシーケンサー内であらゆるマテリアル ベースのアニメーションを作成できるようになります。
バインディング存続期間トラック

すべてのバインドに対して「バインディング存続期間トラック」と呼ばれる新しいトラックが追加され、シーケンサーでオブジェクトがいつバインドされるのかがわかるようになりました。セクションを追加して、シーケンサーが制御するバウンドされたオブジェクトの時間の分量を決定できるようになります。
ゲーム内シネマティックスの場合、これは、ゲームプレイまたはシーケンサーがプレイヤー キャラクターなどの動的オブジェクトを制御するかどうかを判断する際に便利です。
モジュラー コントロール リグ (実験的機能)
モジュラー コントロール リグ は、コントロール リグのフレームワーク全体を活用して、あらゆるスケルトン上で即座にアニメートできる堅牢なアニメーション リグをビルドするようになりました。
モジュールでリグするためのツール
-
新しい モジュラー リグ アセットとエディタが追加されました。
-
ビューポートで即時フィードバックが得られる新しい ビジュアル設計図 が追加されました。
-
ネイティブ モジュール ライブラリ が追加されました。
モジュールをオーサリングするためのツール
-
あらゆるコントロール リグを即座にモジュールに変換できるようになりました。
-
モジュールを接続するための コネクタ と ソケット を作成できるようになりました。
-
モジュール間の接続を自動化する新しい コネクタ イベント が追加されました。
-
Get/Set Metadata ノードを使用してモジュールにメタデータを追加できるようになりました。
-
プリ/ポスト フォワード ソルブ イベントで、モジュール間のリグ ロジックが可能になりました。
デフォーマー グラフ ライブラリ (ベータ版)
デフォーマー グラフを 関数化 できるようになりました。デフォーマーを関数にカプセル化して連結することで、新しい変形スキームを作成できます。これにより、デフォーマー グラフが大幅に簡素化されました。従って、デフォーマー ライブラリ からプリビルドされたデフォーマーを組み合わせることで、アニメーション用のカスタム変形スキームを作成できます。
-
デフォーマー ノードをループする
-
グラフを折りたたんで関数を作成する
-
デフォーマー関数ライブラリ (ベータ版)
- リニア ブレンド スキニング、DQ スキニング、ベンド、ツイスト、スカッシュ & ストレッチ、フレア、ツイスト、ラティス
スケルタル エディタ (ベータ版)

コンポーネント編集の拡張 - 頂点ごとのボーンおよびウェイトの編集と選択が簡単になりました。
-
コンポーネント エディタ
-
ボーンのコンポーネント スナップ (頂点、面、エッジ)
-
コンポーネント選択スキームの追加
-
ポリグループを生成し、ポリグループをペイントすると、クワッド メッシュの表示が可能に
アニメーション インサイト - アニメーションのコンテキストに合わせてボーンやウェイトを作成します。
-
ペイントしながらボーンを変形する
-
参照アニメーションにボーンの変更を反映する
キャラクター化 - 開始点が改善され、デフォルトが便利になりました。従って、ボーンおよびウェイト作成ツールの操作がさらに簡単になりました。
- ボーンのコピー / 貼り付け / 複製
コントロール リグの直接操作

直接操作 を使用すると、ビューポート内でリグ要素を直接操作しやすくなります。コントロール リグ エディタとのインターフェースに関する利便性に関しても、数多くの点が改善されています。
ビューポートで リグ要素 (コントロール、ボーン、Null) のポーズを視覚化 し、実装されたノードのグラフの値を更新できるようになりました。
- グラフ内のノードを選択して T、R、S ホットキーを使用すると、ビューポートで即座に操作できます。
操作に関する利便性 の向上。
-
マーキー選択が有効になりました。
-
コントロール リグ AnimBP ノードでコントロール リグを交換できるようになりました。
-
AnimBP 関数が、Control Rig AnimBP ノードに接続できるようになりました。
-
関数のプロファイルを作成できるようになりました。
-
プロファイルの統計情報がグラフに直接表示されるようになりました。
-
より正確なフィードバックを得るため、プロファイルがフレームの移動平均になりました。
-
グラフ ノードを選択してプロファイリングを分離できるようになりました。
-
メタデータ ノードが 20% 高速化しました。
-
リグ階層でメモリの使用量が少なくなりました。
二足歩行キャラクターの自動アニメーション リターゲット

このワークフローにより、一般的な二足歩行スケルトンのアニメーション リターゲットが、Unreal Engine 内でよりアクセスしやすく、一貫性のあるものになります。
一般的な二足歩行スケルトンの場合、リターゲティング チェーンの作成とフル ボディ IK のセットアップが、ボタンをクリックするだけで完全に自動化されるようになりました。リターゲッタでは、新しいポーズ アライメント ツールにより、リターゲットのソースとターゲット間のマッチングが向上します。
自動化プロセスを組み合わせた新しいシンプルなダイアログにより、迅速なバッチのリターゲティングや、追加編集用の自動化アセットの生成が可能になります。
チューザーとプロキシ テーブル (ベータ版)
チューザーとプロキシ テーブル で、複雑なロジックを記述しなくてもゲームのコンテキストに基づいて再生するアニメーションを選択できるフレームワークを利用できるようになりました。これらは現在、Unreal Engine 5.4 でベータ版として提供されています。
モーション マッチング

モーション マッチングが、Unreal Engine 5.4 で正式版として使用可能になりました。ゲームプレイ アニメーション用のアニメーター中心のワークフローを提供するツール スイートとともにシッピングされます。Unreal Engine のモーション マッチングは、フォートナイト チャプター 5 で検証済みです。システムのスケーラビリティのおかげですべてのプラットフォームにシッピングされており、100 人のプレイヤー キャラクターすべてと NPC で実行できます。
レンダリング
ニューラル ネットワーク エンジン
インエディタとインゲーム、CPU と GPU の両方でニューラル ネットワーク アプリケーションの需要が高まっています。UE 内のニューラル ネットワーク推論エンジンにより、開発者は事前トレーニング済みのニューラル ネットワーク モデルを読み込んで効率的に実行できます。 NNE は既存の RHI レイヤーに類似した共通 API を提供することで、こうしたさまざまなニーズに対応しています。これにより、各アプリケーションの具体的なニーズに合わせたバックエンドの交換が簡単になります。
ユース ケースの例としては、ツール、アニメーション、レンダリング、物理などがありますが、個々のユース ケースごとに必要なプラットフォームとモデルは異なる場合があります。数十種類の異なる ML バックエンドがあり、すべてを実装するのは現実的ではありません。従って、外部の開発者が独自のランタイムを提供するプラグインで NNE インターフェースを実装できるようにする拡張フックを提供しています。
Nanite - テッセレーション (実験的機能)

動的にプログラム可能なディスプレイスメントにより、ディスプレイスメント マップまたはプロシージャル マテリアルを使用して実行時に Nanite メッシュを変更できます。元のメッシュ頂点に対してのみ操作できるワールド位置オフセットとは異なり、Nanite ディスプレイスメントは、実行時にメッシュを追加の三角ポリゴンにテッセレーションして、ディスプレイスメント マップの詳細に適合させます。Nanite は、現在のピクセル密度に必要な三角ポリゴンのディテールだけを生成します。
利点は次のとおりです。
-
オーサリング パイプラインでより軽量なソース メッシュを使用可能。
-
マテリアル主導かつアニメートしたディスプレイスメントを使用可能。
-
詳細な Nanite のランドスケープを作成可能。
詳細については、「Nanite 仮想化ジオメトリ」を参照してください。
Nanite - シェーディングの最適化
Nanite の計算ベースのシェーディングは、Nanite マテリアルを従来のラスタ シェーディングからコンピュート シェーダーに移行することに重点を置いた長期プロジェクトです。ラスタ手法に必要となる多くの複雑なコードのクリーンアップだけでなく、さまざまな最適化と新機能を実現するためです。
最終的な目標は、ピクセル シェーダー パス全体を完全に置き換えることにあります。これにより、CPU と GPU の両方のパフォーマンスを向上させ、コードの保守性を改善し、他の方法では不可能だった高度な Nanite マテリアル機能を実装できるようになります。
詳細については、「Nanite 仮想化ジオメトリ」を参照してください。
Nanite - スプライン メッシュ
スプライン メッシュは、たとえばランドスケープ テレイン上の道路をモデル化する場合など、スプラインの形状に沿ってスタティックメッシュを変形する際に使用されます。UE のシーンでは、特に Lumen と仮想シャドウ マップのパフォーマンスを向上させるためにより多くのシーン コンテンツに Nanite を使用する傾向にあることから、スプライン メッシュは重要ですが、まだ正式にはリリースされていません。
Nanite スプライン メッシュのサポートは、UE 5.3 で実験的機能としてリリースされました。残りの作業としては、パフォーマンスとメモリの最適化、クラックの防止、レベル ストリーミングや変換キャッシュなどの領域の修正があります。
詳細については、「Nanite 仮想化ジオメトリ」を参照してください。
正投影カメラ レンダリング (ベータ版)
正投影レンダリングは建築や製造のプロジェクトの視覚化の一般的な方法で、独特なスタイルのカメラの選択肢としても使用されます。Unreal 5.4 では、正投影レンダリングがベータ ステータスに達しました。ディファード レンダリングは現在ほとんどの側面でサポートされていますが、まだ十分に検証されていないエッジケースが存在する可能性があります。
正式版ステータスとしてリリースするために作業を行う必要のある領域は、次のとおりです。
-
アンビエント オクルージョン
-
デカール
-
ボリュメトリック
詳細については、「正投影カメラ」を参照してください。
テンポラル スーパー解像度 (TSR)
テンポラル スーパー解像度 (TSR) は、UE のビルトインのクロス プラットフォームのアップスケーリング テクノロジーです。高い負荷のかかるレンダリングの演算処理を多数のフレームに分散することで、フル解像度の一部のコストで画像をレンダリングすることができます。
Unreal の次のバージョンでは、TSR に次の変更が加えられます。
-
履歴復活 - 高品質でシネマティックなアンチエイリアス スケーラビリティを実現する新しい機能です。以前に蓄積されたディテールは、オクルージョン、シェーディングの変化、画面外への移動といったさまざまな理由で破棄される可能性があります。これらのディテールが画面に再び表示されると、TSR はそれらの詳細を再度蓄積する必要があります。その結果、ノイズやトレイル アーティファクトが発生する可能性があります。履歴復活 機能では、最近のフレームではなく、以前に表示したすべてのものから再投影する際にマッチしやすいディテールを持つ、古い TSR 履歴を保持します。
-
「ピクセル アニメーションがある」マテリアル フラグ - マテリアルに、オブジェクトのモーション ベクトルでは表されないアニメートされたテクスチャまたはパターン モーションがあるかどうかを示す新しいマテリアル オプションです。このフラグにより、TSR は、モーション ベクトルの不足によりゴーストが発生する可能性のある、アンチフリッカー ヒューリスティックを無効にすることができます。
-
TSR 表示フラグのビジュアライゼーション:このモードで視覚化すると、TSR の動作をよりよく理解したり、TSR の問題を Epic に報告したりしやすくなります。
詳細については、「テンポラル スーパー解像度 (TSR)」を参照してください。
異種ボリューム - デファード レンダリング (実験的機能)

異種ボリューム レンダリングを使用すると、Niagara Fluids または Open VDB ファイルによって操作されている火、煙、流体などのボリュメトリックな現象を統合的にレンダリングできるようになります。
5.4 では、異種ボリュームのシャドウ キャスティング サポートと、半透明オブジェクトなどの既存のレンダリング パスとの統合に重点が置かれました。
ディファード レンダラの残りの作業の多くには、グローバル イルミネーションのサポートの追加や、機能とパフォーマンスの改善が含まれます。
異種ボリュームとそのプロパティの詳細については、「異種ボリューム」と「スパース ボリューム テクスチャ」を参照してください。
シェーダーのクック タイムの最適化
クックとは、メッシュ、テクスチャ、マテリアルなどのアセットを、パッケージ化されたゲームをデプロイメントするためのプラットフォーム固有の形式に変換するプロセスです。大規模なプロジェクトでマテリアルをクックするには、非常に長い時間がかかります。多くの場合、何時間もかかります。
5.4 では、シェーダーのコンパイル作業の実行方法が大幅に改良され、並列化が向上し、冗長な作業が削減されました。この最適化の取り組みの結果、コンパイルされるシェーダーが約 30% 減少し、シェーダー コンパイル タスクのゲーム スレッド作業が軽減され、シェーダー プリプロセシングが大幅に高速化されました。 これらすべての要素を組み合わせることで、特にシェーダーの無効化を伴うプロジェクトのクック時間が大幅に改善されます。
RHI - レンダリングの並列化
レンダリング スレッドのパフォーマンスが、UE タイトルの性能の足を引っ張る要因となることがよくあります。これは、現在のプラットフォームとグラフィックス API では並列実行が可能であっても、一部の操作がこの特定のスレッドに制限されているためです。目標は、レンダラ ハードウェア インターフェース (RHI) API をリファクタリングしてこれらの制約を取り除き、ターゲット ハードウェアのマルチスレッド機能を最大限に活用することでパフォーマンスを向上させることです。
5.4 ではレンダリング システムが大幅にリファクタリングされ、ワークロードのオーバーラップが大幅に増え、ターゲット フレーム時間が短縮されました。CitySample テストでは、レンダリング スレッドのパフォーマンスは 5.0 と比較して 5.4 で約 2 倍高速化しました。
RHI - バインドレス レンダリング (実験的機能)
バインドレス リソースは、DX12、Vulkan、Metal などの最新のレンダラ ハードウェア インターフェース (RHI) のテクスチャやその他の種類のデータ バッファの管理に関連する低レベルの機能です。バインドレス リソースがサポートされることにより、GPU プログラミング パラダイムがより柔軟になり、レンダラ内の機能がさらに増えます。また、バインドレス リソースは Vulkan での完全なレイ トレーシング サポートの要件でもあります。
5.4 リリースでは、この機能が SM6 対応のほとんどのプラットフォームでサポートされます。ただし、この機能は最近実装されたため、まだ実験段階です。従って、修正すべきバグがいくつかある可能性があります。
Vulkan - レイ トレーシング (実験的機能)
5.4 では、Linux プラットフォームを含む、DX12 と同等の Vulkan レイ トレーシング機能が実験的機能としてリリースされます。これにより、Lumen の Hit Lighting モードやパス トレーシングなど、レイ トレーシング機能の完全なスイートを使用できるようになります。実験的機能としてのリリースであるため、バグやその他のエラーが発生することが予想されます。そのため、本番環境では使用しないでください。
プログラムによる PSO 事前キャッシュ
PSO 収集とキャッシュの自動化は、ゲームに必要なすべての PSO の組み合わせを収集するために手動で行っていたプロセスをすべて排除することを目的としています。PSO にとって最も重要なのは、シェーダー自体の状態です。実行時の遅延を回避するには、これらの各組み合わせを適切に事前キャッシュする必要があります。そのため、シェーダーの事前キャッシュの目標は、有効で潜在的に使用される可能性のあるすべてのシェーダーの組み合わせを見つけて保存することです。
ハードウェア レイ トレーシング
ハードウェア レイトレーシング (HWRT) に大幅な改善が行われました。 これらの改善により、プリミティブの場合に速度が 2 倍向上し、HWRT を使用する 60Hz エクスペリエンスを提供しやすくなります。
-
GPU インスタンスのカリング、インスタンスとプリミティブの並列化。
-
プリミティブ型の追加。
-
パス トレーサーが最適化され、リリース 5.3 と比べて速度が約 15% 向上しました。さらに、機能の削減やさらなるシェーダー順列の導入を行わなくても、リリース 5.2 とほぼ同等になりました。
-
HWRT はパス トレーサー ライト グリッドを使用するため、非常に多数のライトをサポートしています。
詳細については、「ハードウェア レイ トレーシング」を参照してください。
GPU 上の Large World Coordinates
UE の Large World Coordinates (LWC) では、倍精度の変換とデータ型のサポートが導入され、最大ワールド サイズが 21 km から 88,000,000 km に拡大されました。GPU 上の LWC レンダリング サポートはタイル表現に基づいていましたが、これだとタイル境界付近での不正確さやジッタなど、いくつかの制限がありました。
LWC レンダリングでは、GPU 上で完全な倍精度表現をサポートするためにリファクタリングを行っています。これにより、カメラが原点から離れている場合でも、大規模なワールドをより確実にレンダリングできるようになります。次の作業を行っています。
-
拡張 GPU 浮動小数点表現を変更して、重要な部分でより高い精度を実現します。
-
LWC でのマテリアルの取り扱いがより簡単になるユーザー向けツールを作成します。
-
LWC 計算が、パフォーマンスの節約に実際に必要な場合にのみ実行されるようにします。
詳細については、「Large World Coordinates レンダリング」を参照してください。
デベロッパーのイテレーション
ローカル DDC としての Unreal Zen ストレージ
UE 5.4 では、データ調整パフォーマンスの向上、エディタの読み込みの高速化、および「Play In Editor」(PIE) ワークフローの時間の短縮を実現する新しい Unreal Zen ストレージ サーバー アーキテクチャの導入が行われました。Zen は、以前のリリースの「ルース ファイル (loose file)」ベースの DDC を置き換えるものです。これにより、ローカル ファイル システムにおけるパフォーマンスのボトルネック回避や、キャッシュ書き込み、削除、データ重複排除に関するより細かい制御が可能です。
Unreal Cloud DDC
分散型 / ハイブリッド スタジオおよびチーム向けのセルフホスト型クラウド インフラストラクチャにデプロイするように設計された、Unreal 派生データキャッシュおよびコンテンツ アドレス指定可能なストレージ ソリューションです。アクティブ / パッシブ リージョン レプリケーション、最も近いリージョンへの自動接続、エンタープライズ ログインと認証を使用して、クック済みデータをチーム メンバー間で効率的に共有できます。
ソース、Docker イメージなど、AWS で実稼働テストが行われ、サポートされています。
Azure のソースおよび Docker イメージなどでデプロイするための手順も用意されています。
マルチプロセス クック
マルチプロセス クックが UE 5.4 で正式版となりました。マルチプロセス クック を使用すると、使用可能なすべての CPU コアおよびメモリのリソースを利用することで、ビルド ファーム サーバーまたはローカル ワークステーションからクックされた出力を取得するのにかかる合計時間を大幅に短縮できます。
パフォーマンスの向上度合いは、プロジェクトの規模やデータの分割方法によって異なります。最良の結果を得るために、プロジェクトおよび使用可能なハードウェア仕様に応じた CookProcessCount 値をテストすることをお勧めします。
Unreal Horde - 継続的インテグレーション (ベータ版)
あらゆる Unreal Engine 開発チーム向けに設計された、すぐに使用可能な継続的インテグレーション ソリューションです。Horde は、Perforce に接続された水平方向にスケーラブルな分散型継続的インテグレーションおよびビルド プラットフォーム システムです。Unreal Engine 開発者のイテレーション ツールおよびワークフローと緊密に統合されています。
Unreal Build Accelerator (ベータ版)
Unreal Build Accelerator (UBA) は、Unreal Build Tool や Horde のリモート ビルド (計算タスク) システムと組み合わせて使用する、C++ コンパイル用のローカルおよび分散コンパイル ソリューションです。Horde はヘルパー リソースを割り当てるコーディネーターです。UBA はローカル データを送信し、リモート タスクを実行して結果を返します。
Unreal Engine 5.4 リリースでは、UBA は「ベータ版」ステータスであり、Windows OS 上の C++ コンパイル ジョブで動作します。同じ物理ネットワークまたはプライベート ネットワーク上のインフラストラクチャで UBA を試すことをお勧めします。UBA は有効な仮想ネットワークまたは外部ネットワーク、あるいはクラウド コンピューティング インスタンスで動作することもあります。しかし、今回のリリースではこのパスの使用はお勧めしません。
ネイティブ macOS および Linux サポート、プロセス アイドル検出、シェーダー コンパイルは実験的機能です。今後のリリースで改善予定です。
共有 DDC としての Unreal Zen ストレージ (実験的機能)
DDC ストレージとしてのネットワーク ファイル共有の使用を、新しい Unreal Zen ストレージ サーバー アーキテクチャに置き換えました。
このアーキテクチャは、よりレイテンシー耐性が高く、リモート マシンへの DDC 操作のネットワーク通信用に最適化されています。しかし、以前のシステムからのファイル システム操作用には最適化されていません。従って、操作の際に DDC ストレージ レベルで同期 IO が実行されなくなりました。
モーション グラフィック
モーション グラフィック モード
Unreal Engine モーション グラフィック モードを導入しました。細心の注意を払って特別に開発され、モーション グラフィック デザイナー向けにカスタマイズされたツールを備えた、画期的なモードです。シームレスな形での作業や生産性の維持が可能なように、慎重にレイアウトが設計されています。モーション グラフィック モードは、2D キャンバス用の専用ツールと、直感的な階層構造を備えた強化されたワールド アウトライナーを備えており、3D シェイプ、クローナ、エフェクタ、モディファイヤ、アニメーター、非線形アニメーション機能を含む包括的なツール スイートを提供します。この専用モードは、モーション グラフィックのデザイン エクスペリエンスを向上させるように設計されています。従って、デザイナーがクリエイティブなビジョンを実現するための強力で使いやすいプラットフォームとなります。
ビューポート:ルーラーとガイド

画面デザインの世界では、精度がすべてです。コンテンツは、意図した場所に正確に配置されなければなりません。そうした理由から、モーション デザイナーにとって画期的なモーション デザイン ビューポートを導入できることをうれしく思います。
モーション デザイン ビューポートの機能
2D グリッドとルーラー:2D グリッドとルーラーを使用すると、キャンバスを自信を持って操作できます。これを参照することで視覚的にわかりやすくなるため、正確なコンテンツの配置がしやすくなります。
スナップ:スナップ機能を使用すると、シームレスな位置合わせが可能です。要素を簡単に所定の位置に固定できるので、位置ずれが発生しにくくなります。
パンとズーム:パンとズーム機能を使用すると、ビューがより使いやすくなり、特定の詳細に焦点を合わせやすくなります。デザインをさらに近くから確認することで、微調整が可能です。
キャンバスの境界をカメラ ビュー外に拡張:カメラ ビュー外にキャンバスを拡張できるようになりました。この機能を使用するとデザイン全体を視覚化できるため、要素の見逃しを確実に防ぐことができます。
2D 形状のドラッグアンドドロップ ワークフロー:2D 形状でユーザーフレンドリーなドラッグアンドドロップが可能になりました。従って、設計プロセスがより簡単になりました。直感的なビルドが可能です。
トランスフォーム パネルへのクイックアクセス:[Transform (トランスフォーム)] パネルで、要素の効率的な管理と調整を行えます。重要なコントロールに素早くアクセスして、シームレスな変更が可能です。
ビューポートで背景画像またはソリッド カラーを設定:ビューポートで背景画像またはソリッド カラーを使用して、デザイン環境をカスタマイズできます。ワークスペースを好みに合わせてカスタマイズできます。
RGBA - プレビュー モード:RGBA モードを使用すると、デザインを正確にプレビューできます。正確な表現が可能となるので、それに応じたコンテンツの微調整が可能です。
クローナとエフェクタ
ダイナミックな創造性を解き放ちましょう。直感的なクローナとエフェクタ システムを通じて、デザイナーは形状やパターンに簡単に命を吹き込めるようになりました。コア機能として、クローナは Unreal Engine の強力な Niagara パーティクル システム上にビルドされています。この強力な組み合わせにより、プラットフォームでシームレスにデザインをアニメートできるようになりました。デザイナーは、無限のバリエーションを簡単に試すことができます。
クローナ

クローナのオプション
-
グリッド
-
均一な球体
-
ランダムな球体
-
円、線
-
メッシュ
-
スプライン
-
ハニカム
機能
-
ステップ - クローンごとに位置とスケールを変換する
-
ランダム - 最小値と最大値とバリエーションを追加する
-
マスク - テクスチャに基づいてパターンを制限する
-
進行度 - クローン全体の進捗状況をアニメートする
エフェクタ

エフェクタの機能
-
半径とフォールオフ システム内でクローンをプロシージャルにアニメートする
-
位置、スケール、回転をアニメートする
-
円、ボックス、平面、バインドなしの図形
-
カスタム フォールオフとイージング
- イーズ イン、イーズ アウト、バウンス イン、バウンス アウトなど
-
マグニチュード
-
フォース
-
オリエンテーション (向き)
-
ボルテックス (渦)
-
カールノイズ
-
重力
-
エフェクタ フォース

デザインにおいては、プロシージャル アニメーションが不可欠です。最新のアップデートでは、それがさらに強化されました。エフェクタ システムにボルテックス、オリエンテーション、ノイズ、重力のフォースを導入しました。これにより、デザイナーはツールを用いて無限のバリエーションを簡単に試せるようになりました。多数のクローンを同時に操作することが簡単になったので、新たな可能性を試して素早く斬新な結果を得られます。
フォース
-
オリエンテーション
-
ボルテックス
-
カールノイズ
-
重力
マテリアル デザイナー
マテリアル デザイナーに、直感的でユーザーフレンドリーなレイヤー スタックを導入しました。これにより、複雑なマテリアルを即座にビルドするためのシームレスな体験を提供できるようになりました。効率性を重視して設計されており、ユーザーは使い慣れたブレンド モード、オパシティ コントロール、マスキング機能にアクセスできます。このツールにより、ユーザーは複雑なマテリアルを素早く簡単に作成できるようになりました。従って、プロセスがアクセスしやすく効率的なものとなります。
マテリアル デザイナーの機能
-
ドッキング可能な UI パネル
-
テクスチャを重ねるレイヤー システム
-
デザイナー フレンドリーなブレンド モード
-
共通 UI からのテクスチャのパン、スケール、回転
-
クランプ、ミラーリング
-
再コンパイルなしでのオプションの切り替え
-
動的マテリアルの作成とエクスポート
-
キーフレーム可能なプロパティ
マテリアル デザイナーの FX レイヤー
マテリアル デザイナーを進化させる上での私たちの目標は、レイヤー エフェクトを組み込み、ブラー、色補正、歪みエフェクトなどの機能の可能性を広げることです。この取り組みの目的は、Unreal Engine 内でさまざまなシェーダー エフェクトを構築できるようにして、プラットフォームのクリエイティビティを強化する多目的フレームワークを確立することにあります。
フィルタと FX
-
ブラー / 拡張 / 縮小
-
色:色相 / 彩度 / 輝度
-
レベル
-
歪み
-
ピクセル化
-
シャープネス強化
アクタ アライメント ツール
デザイナーは、グラフィックスをグリッド ベースのシステムに適合させる作業をよく行います。従って、信頼性の高いアライメント ツールが重要となります。こうしたツールで、デザイナーはレイアウトの精度と一貫性を維持できるためです。
アクタ アライメント ツール
-
配置:左、中央、右
-
分散:左、中央、右
-
スタック:前面、中央、背面
-
回転:カメラに合わせて回転する
-
サイズ:画面に合わせてコンテンツのサイズを調整する
2D および 3D プリミティブ

デザイナーは、プロシージャルな形状をデザインにシームレスに組み込むツールがあると、クリエイティブな作業の中核となるプロセスがしやすくなります。さまざまなユニークな形状を生成できる、多用途のツール セットです。デザイナーにとって、直接ビューポート内でリアルタイムに調整できる動的なツールは非常に便利です。それにより、ライブでインタラクティブにデザインを変更してワークフローを強化できるためです。
3D 形状:
-
球体 - 開始緯度、終了経度、開始緯度、緯度度、側面のオプション
-
シリンダー - 側面、トップ半径、角度、開始角度
-
キューブ - ベベル、ベベル数
-
コーン - 側面、トップ半径、角度、開始角度
-
トーラス - スライス、側面、内側サイズ、角度、開始角度
-
ギア - スライス、側面、内側サイズ、角度、開始角度
各形状にはベベルとキャップがあり、ベベルのエッジにはマテリアルを適用することができます。
2D:形状:
-
長方形 - 左スラント、右スラント、グローバル ベベル サイズ、グローバル ベベルの滑らかさ、TL、TR、BL、BR
-
ポリゴン - ポイント、内側サイズ量、ベベル、ベベルの滑らかさ
-
線、円、星、矢印、シェブロン
ジオメトリ モディファイヤ

デザイナーから、設計内のジオメトリをプロシージャルに変更する機能が欲しいという要望がありました。このシステムで、ブール演算といった操作のために、基本ジオメトリにプロシージャル モディファイヤを簡単に追加できるようになりました。これらのモディファイヤは、簡単に有効または無効にしたり、順序を変更したりできるため、多様にカスタマイズされたデザインを作成できます。ジオメトリ モディファイヤは、Unreal Engine の Geometry Scripting 機能の上にビルドされています。つまり、将来的にはシステムをさらに拡張できます。
ジオメトリ モディファイヤ
押し出し - ジオメトリの一部を深さ方向に押し出します。フロント キャップ、バック キャップ、周囲、側面にわたって UV をスケーリングできます。
ベベル - 動的なジオメトリの任意の部分にベベルを追加します。
ブール演算 - チャンネルに基づいて減算、加算、結合します。
アウトライン / ストローク - 0 ピクセルから 20 ピクセル以上のさまざまな幅のアウトラインまたはストロークを任意の 2D 形状に追加します。デザイナーからの要望により実装されました。
ミラー - モディファイヤを使用してジオメトリの一部を簡単に反転またはミラーリングします。ピボットを考慮しながら、X、Y、Z の任意の軸に沿ってジオメトリをミラーリングできます。
パターン - グリッドや円などのパターンでジオメトリを複製 (レプリケート) します。
法線 - 法線を再計算します。
変形:
曲げ - ジオメトリの一部を曲げたり変形したりできます。
テーパー - オブジェクトの長さに応じてジオメトリを先細りにできます。
SVG インポータ
グラフィック デザインやブランディング情報を作成するプログラムでは、SVG 形式が広く使用されていることから、デザイナーも同ファイルをインポートする必要があります。SVG インポータを使用すると、マテリアルの色をそのまま維持しながら、あらゆる SVG ファイルから 3D ジオメトリをシームレスに生成できます。
-
SVG アクタ
-
SVG を即座にスワップ
-
SVG のコピーアンドペースト - ジオメトリを生成するための XML
-
押し出し
-
ベベル
-
キャップ
-
UV
テキスト 3D の改善
デザインに個性と表現力を追加するには、堅牢なフォント機能が必要です。フォントの検索とテストのプロセスを簡素化することで、全体的なデザイン効率を高めることを目指しています。
機能
-
インポートせずにフォントをプレビュー
-
お気に入りのフォント
-
フォント カテゴリ
-
プロジェクトにフォントをインポート
-
最大幅
-
最大高さ
-
比例でスケーリング
-
動的マテリアル
-
動的グラデーション
-
カスタム マテリアル
アウトライナーの機能強化
細かく階層を作成できるようになりました。これにより、モーション グラフィック ワークフローに重要なアイテムのグループ化がしやすくなります。また、ワールド アウトライナーとは別のタブになりました。従って、デザイナーはニーズに合わせてシーンの整理、表示、管理をより細かく制御できるようになります。ワールド アウトライナーに関連するこのバージョンに対するフィードバックをお待ちしております。Unreal Engine の UX をより良いものにするには、皆様からのフィードバックが不可欠です。
アウトライナーの機能
-
アルファベット順でないアクタ
-
Null オブジェクト下のアクタの簡単なグループ化
-
アクタごとの可視性ステータス
-
整理のためのレイヤー カラーリング
-
ジオメトリ、アニメーション、リモート コントロール用のモディファイヤ システム
-
必要なアクタやモディファイヤだけを簡単に表示できるフィルタリング システム
-
アクタ階層を自動で展開しないオプション
-
ジオメトリ、アニメーション、リモート コントロールでのコピーアンドペースト
-
ホットキーを使用してピボットとグループ アクタを移動
-
アクタの名前を一括変更
名前変更ツール
デザイナーやその他のユーザーにとって、ワールド アウトライナーで適切な命名規則を維持することを含めたワークフロー合理化が重要となります。繰り返し要素を多用する制作現場向けに、アクタとアセットの名前を一括変更できるツールを導入しました。このツールには、プレフィックス、サフィックス、検索、置換機能が搭載されています。ワークスペースを整理した状態を維持するための効率的なソリューションとなります。
アウトライナー
-
選択したアクタの名前を変更
-
アクタが選択したクラスの名前を変更
コンテンツ ブラウザ
-
アセットが選択したアセットの名前を変更
-
アセットがアセット クラスの名前を変更
機能
-
ベース名を変更
-
プレフィックス - 追加、削除、数値化
-
サフィックス - 追加、削除、数値化
-
検索と置換
アニメーション モディファイヤ システム

モーション グラフィック アーティストが、ほぼすべてのプロパティにプロシージャルなアニメーションを簡単に追加できる強力な機能にアクセスできるようになりました。これにより、アーティストは揺れ、跳ね返り、振動、ランダム アニメーションなどの動的なエフェクトをシームレスに組み込むことができるようになるため、創造性が無限に広がります。このツールは効率性を高めるだけでなく、クリエイティブな表現の新たな領域を切り開きます。これにより、アーティストは魅力的でダイナミックな背景でモーション グラフィックを向上させることができます。
アニメーション モディファイヤ
アニメーションのターゲット プロパティ
プロシージャル ウェーブ関数を追加してプロパティを操作する
アニメーション関数
正弦波、余弦波、方形波、逆方形波、のこぎり波、三角波、バウンス波、パルス波、パーリン波
トランジション ロジック
ライブ テレビでは、画面上の複数の要素をシームレスに表示し、スムーズに切り替えることが最も重要です。トランジション ロジックは、ライブ ショー中に要素の開始と終了を正確に制御する上で重要な役割を果たします。この機能により、デザイナーはグラフィック システムをインテリジェントに構築できるようになります。従って、各要素を確実に画面上で意図したとおりに表示および非表示にでき、インパクトのあるライブ ブロードキャストに不可欠なレベルの精度を実現できます。
トランジション ロジックの機能:
-
トランジションを決定するためのステート マシン
-
レイヤーに複数の要素を追加する
-
トランジション ステートの設計
ブロードキャスト ランダウン
ブロードキャスト デザイナーにとって、グラフィックをオンエアでライブ実行する機能は重要です。オペレーターは、レベルのライブ出力を容易にするツールであるブロードキャスト ランダウンを利用します。このランダウンにより、グラフィックのテストが可能になるだけでなく、SDI または IP ビデオ ストリームを介したライブ再生も容易になります。リモート コントロール システムにより、オペレーターは複数のページやコンテンツのバリエーションを作成できるようになり、シームレスなライブ ブロードキャストのための包括的なソリューションが提供されます。
機能
-
ページごと - プレビューとプログラム
-
ページごとにテキスト、画像、ビデオ、プロパティを変更する
-
簡単に呼び出せるようにページ番号を保存する
-
ドラッグ アンド ドロップによる並べ替え
-
アルファ チャンネルのプレビュー
-
堅牢なプレイリスト API
-
フィルタされたビュー
-
マクロ
-
複数チャンネル出力
-
MRQ を使用してディスクにレンダリングする
スタッガー アニメーション

デザイナーの作業効率を高めるために、アニメーションの時間的なオフセットを効率化する機能を導入しました。このツールを使用すると、複数のレイヤー バーの選択と時間オフセットの適用が簡単になります。従って、動的なポップアップ アニメーションを素早く作成できます。
マスキング モディファイヤ
デザイナーにとって、マスキングは特にシーンにマスキング要素が必ず組み込まれるモーション グラフィックの分野では必須です。私たちの目標は、パフォーマンスとシンプルさをシームレスに融合し、最適なデザイン体験のためにスピードと効率を優先するマテリアルをベースにしたさまざまな形式のマスキングを提供することにあります。
オパシティ:オパシティ コントロールを使用すると、画面上の要素を簡単にフェードアウトできます。マテリアル デザイナーにシームレスに統合されています。ネイティブでサポートされており、それによりスムーズなトランジションを簡単に実現できます。
テクスチャ:3D モデルの特定の部分をマスクするためのソースとして、テクスチャを適用できます。
ジオメトリ マスク:ジオメトリのソース ピースを利用して、明確に定義されたエッジのマスクを作成できます。マスクのニーズに合った、シンプルかつ効果的なソリューションです。このユーザーフレンドリーなツールを使用すると、洗練されたデザインの可能性を探ることができます。
グリッド配置モディファイヤ
グリッド配置モディファイヤで、階層内の任意のアクタを均等に分散できるようになります。とりわけグリッド システムを利用するテキスト ベースのレイアウトで役立ち、さまざまなサイズ要件に合わせてレイアウトを動的に調整できます。
グリッド配置機能:
-
水平方向のアライメント:(デフォルトでは中央)
-
垂直方向のアライメント:(デフォルトでは中央)
-
水平アイテムの最大数:0 は最大値なし、4 は 5 番目のアイテムが 2 行目に表示されることを意味します
-
パディング:アイテム間のスペース
-
サイズ (XY):アイテムのサイズ
バーチャル プロダクション
マルチプロセス インナー フラスタム
歴史的に、ICVFX カメラのインナー フラスタム レンダリングでは、Unreal Engine/nDisplay のレンダリングに制限があることと、少なくとも一部のリソースを他の外部ビューポートと共有する必要があることから、mGPU を利用することができませんでした。SMPTE 2110 サポートの導入により、nDisplay レンダリング ノード全体をインナー フラスタム専用にできるようになりました。これにより、カメラで表示するオブジェクトに対して利用可能なハードウェア数を増やせるようになりました (つまり、GPU を 1 つではなく 2 つ利用可能になります)。マルチプロセス インナー フラスタム により、インナー フラスタムを最高品質でレンダリングできるようになります。
新しいカメラの解像度が向上し、ボリュームのサイズが大きくなるにつれて、システムはこれらの制作のニーズに合わせて拡張できるようになります。
被写界深度推定
被写界深度 (DOF) はシネマティックな描写には不可欠で、撮影監督が視聴者の注意を向けるための重要なツールとなります。しかし、LED ボリュームでインカメラ VFX シーンを撮影する場合、厳密にはシーン内の一部のオブジェクトが他のオブジェクトよりもカメラから遠いにもかかわらず、nDisplay によってレンダリングされるすべてのものに同じ被写界深度が適用されることから、真に正確な被写界深度を実現することは不可能でした。
被写界深度推定は、下記の Unreal Engine が「適切な」被写界深度を計算するために必要なすべての情報を把握しているという事実を活用し、この問題を解決します。
-
Unreal Engine シーン内のステージ ボリュームの位置と方向
-
LiveLink を使用したカメラの位置、絞り、レンズの焦点距離、および焦点距離
-
Unreal Engine シーン内のすべてのオブジェクト間の距離
その結果、上記の情報と、現実世界の絞り/レンズの組み合わせに基づいてレンズがすでに適用している焦点ぼけを考慮した計算に基づいて、Unreal Engine シーン内のオブジェクトの焦点をぼかすという新たな機能が実現しました。
バーチャル スカウティング ツールセット (実験的機能)

新しいバーチャル スカウティング ツールを使用すると、リニア コンテンツ クリエイターは VR でシーンを表示、注釈付け (アノテーション)、編集できます。
新しい XR Creative Framework を活用するために、バーチャル スカウティングの UX を完全に作り直しました。ツールはより使いやすくなり、開発者がツールを拡張するのもはるかに簡単になりました。
これにより、次のことが可能になります。
-
マルチユーザー エディタ セッションで VR のレベルを表示および編集
-
測定
-
注釈付け
-
スクリーンショットをキャプチャし、カメラを配置
-
レベル シーケンスを再生
-
ローカル ライトを作成
-
環境照明を制御
このツールセットは、PIE セッションでの実行と実行ファイルへのパッケージ化もサポートしています。
XR Creative Framework
XR Creative Framework は、チームがエディタ内 XR (VR およびヘッドセット内 MR) ツールを作成するための開発フレームワークを提供します。それにより、最新の OpenXR 対応 HMD およびコントローラーを使用してカスタム ワークフローを簡単に作成できるようになります。
この新しいフレームワークは、更新されたバーチャル プロダクション スカウティング ツール セットの基礎となります。これらのツールは、XR Creative Framework 内で開発する方法の例として役立ちます。
Android 向け Live Link VCam
エディタ内のバーチャル カメラ システムのコンパニオン アプリである Live Link VCam が Android に登場しました。ARCore 対応の Android デバイスを持つバーチャル カメラ ユーザーは、プロジェクトで完全なバーチャル カメラを使用できるようになりました。
Mac 向けバーチャル カメラ
バーチャル カメラが Mac で完全サポートされるようになりました。ユーザーは、x86/ARM でのソフトウェア Pixel Streaming と ARM ベースの M シリーズ Mac デバイスでのハードウェア アクセラレーションを活用できます。
LiveLink ハブ
ICVFX、ライブ コンポジット、フル CG モーション キャプチャ撮影、ブロードキャスト スタジオなど、マルチユーザー編集セッションで複数の UE インスタンスが実行されているステージまたはセットアップでは、エディタ セッションごとに LiveLink ソースを設定する必要があります。場合によっては、セットアップによって各エディタ セッションの構成が若干異なる必要があるため、以前の LiveLink のデフォルトのロード時プリセット ワークフローでは不十分になります。
より複雑なワークフローを可能にするために、実行中のエディタ セッションを監視し、LiveLink ソースに接続して視覚化し、各エディタ セッションに再ブロードキャストする外部アプリ (マルチユーザー スレート サーバーに類似) を作成しました。エディタ セッションは LiveLink ソースをサブスクライブする必要がなくなりました。アプリは各 UE インスタンスに、受信する LiveLink ソースとその解釈方法 (プリプロセッサ、軸スワップ、ロールの変更) を指示します。
初期サポートは LiveLink ワークフローを対象としています。開発ロードマップには DMX、OSC、デバイス制御も予定されています。
nDisplay Cine カメラ フラスタム フィット
アクティブなカメラの FOV アニメーション内に収まるように、nDisplay フラスタム (錐台) のサイズを動的に変更できるようになりました。nDisplay Cine カメラ フラスタム フィット を使用すると、あらゆる業界の nDisplay ユーザーが、Cine カメラを使用して一般的な UE コンテンツを任意の形状と構成の物理ディスプレイに適切にマッピングできるようになります。
-
定義されたディスプレイのセットの周囲にバウンディング ボックスを計算します。
-
nDisplay フラスタムをアクティブまたは選択された UE Cine カメラ フラスタムに適合させて拡大縮小するメカニズムを提供します。
-
アスペクト比の不一致を適切に処理するために、「塗りつぶし」や「フィット」などのオプションを公開します。
シミュレーションと VFX
Niagara アセット ブラウザ
新しい Niagara アセット ブラウザを使用すると、簡単に Niagara エミッタと Niagara システムに基づいて新しいエフェクトを作成できます。タグ別にコンテンツを閲覧できるため、さまざまなエフェクトを簡単に探せます。
次のとおり、以前よりもワークフローが簡素化されました。
-
複数ステップを踏む必要のない、単一ページの UI によるワークフロー。
-
これまでは不可能だった、すべてのエフェクトの一度での確認が可能となりました。
-
Niagara アセット ブラウザはコンテンツ ブラウザに似ており、より直感的に使用できます。
ユーザーは独自のタグを定義してアセットにタグ付けできるため、コンテンツのグループを簡単に設定できます。マーケットプレイスのクリエイターといった外部コンテンツ プロバイダーは、独自のタグとタグ定義を使用してアセットをシッピングできるため、コンテンツをより簡単に整理できます。
Niagara データ チャンネル (実験的機能)
Niagara データ チャンネル (NDC) は 5.4 で実験的機能として使用できるようになりましたが、コンテンツのシッピングへの使用はまだお勧めしません。
NDC は、Niagara システム間、および Niagara と UE の他のパート間でデータを渡すメソッドです。重要なユースケースの 1 つとしては、NDC を使用して大規模な共有 Niagara システムにイベントを挿入し、インパクト FX といった機能のパフォーマンスを向上させることが挙げられます。これは、ユーザーから希望のあった重要な領域の 1 つです。
5.4 の更新内容は次のとおりです。
-
GetNDCSpawnData:NDC リーダー データ インターフェースの新しい関数。これにより、パーティクルは、NDC データを読み取るときにパーティクル スクリプトの Read 関数で使用するために、スポーンした NDC インデックスと関連データを取得できるようになります。
- これは、パーティクルの SpawnGroup をオーバーライドする代わりのメソッドとして推奨されています。これにより、NDC のスポーンを内部的に単一の生成イベントに統合できるようになりました。また、はるかに高速に実行でき、以前はフレームあたり 8 個に制限されていた NDC 生成を GPU 上で任意の数だけ実行できるようになります。
-
Emitter.ID:NDC リーダー ID 関数は、呼び出し元から Emitter.ID を受け取り、どのエミッタにスポーンするかを選択するようになりました。これにより、DI 上の直接バインディング セットが置き換えられます。したがって、各エミッタがそれぞれ独自のものを用意しなくても、単一のシステム レベルの NDC リーダー DI が Niagara システム内の多数のエミッタにスポーンできるようになります。
-
ブループリントの UX の改善:ブループリントに、NDC にエントリを書き込むための単一のノード パスが追加されました。それに伴い、該当する NDC のピンが自動的に入力されるようになりました。
-
いくつかの UX と QOL の改善。
-
安定性とパフォーマンス の向上。
詳細については、Niagara データ チャンネルのドキュメント を参照してください。
Niagara 軽量エミッタ (実験的機能)
軽量エミッタが 5.4 で実験機能としてご利用いただけます。これらはまだ開発中です。今のところ、これらを使用してコンテンツをシッピングすることはお勧めしません。
目標は、コンテンツ作成速度を向上させ、軽量エミッタを使用する際に最適化が必要となる場面を減らすことにあります。プロジェクト設定を有効にした後、システム内に軽量エミッタを作成し、さまざまなタイプを組み合わせて使用できます。軽量エミッタはコンパイルする必要がありません。したがって、ワークフローが高速化され、システム内のエミッタの量がパフォーマンスに与える影響が少なくなります。
パーティクル状態がなく、データは表示されるときにのみ生成されるため、基盤となるテクノロジーはまったく異なるものの、Niagara ユーザーにとっては見た目も操作感も馴染みのあるものになるはずです。これらは、機能セットにより大きな制限があります。軽量化されているモジュールの数は限られており、一部のレンダラのみに互換性があります。コンテンツからプログラムすることはできません。つまり、スクラッチパッド / モジュール / 動的入力を作成することはできません。C++ を使用して機能セットを拡張し、新しいモジュールとテンプレートを導入できます。しかし、実験的機能であることから、リリース間で API で大きな変更が行われる可能性があります。
詳細については、Niagara 軽量エミッタのドキュメント を参照してください。
Niagara - CPU VectorVM (実験的機能)
VectorVM は、Niagara が CPU 上でスクリプトを実行するために使用する仮想マシンです。CPU スクリプトの処理パフォーマンス向上のため、VectorVM インタープリタが書き直されました。次の最適化処理が元のバイト コードに追加されました。
-
必要な一時レジスタの数を大幅に削減することで、メモリ使用量も最高水準で削減
-
デッド コードの削除
-
多くの一般的な操作のペアを単一の操作に組み合わせる
-
メモリ使用量削減のためにバイト コードを再フォーマット
有効にすると、VectorVM への最適化がシームレスに行われます。CPU スクリプトがコンパイルされると、結果のバイト コードが最適化され、使用可能な場合は新しいインタープリタが使用されます。
VectorVM CPU スクリプトのこれらの改善により、ユーザーは処理速度が大幅に向上することを実感できるはずです。CPU のワークロードは大幅に削減されました (一部のスクリプトではサイクル数が 4 倍向上しました) が、実行がメモリ スループットによって大幅に制限されるため、実質的な効果はそれほど大きくありません。実際は、実行時間が 10% 短縮される程度です。
Chaos パネル / パターン クロス エディタ (ベータ版)
Chaos クロス は、Unreal Engine 5.4 でもクロス エディタの継続的な開発が行われました。これには、実験段階からベータ段階への更新も含まれます。
5.3 から 5.4 への変更
-
ファブリック サポート付きの USD インポート ノードの追加
-
デフォルトのデータフロー テンプレートの追加
-
新しいデータフロー ノードの追加、ジオメトリ再メッシュ ノードの更新
-
選択ノードとワークフローの更新
-
新しいコリジョン システムの追加、セルフコリジョンの更新
-
スキン ウェイト転送の更新
-
LOD のサポートの追加
-
プロキシ (ラップ) デフォーマーをデータフロー ノードとして公開
-
ディスプレイのビジュアライゼーションとデバッグの更新
-
利便性の向上
Chaos Visual Debugger (ベータ版)
Chaos Visual Debugger は、デバッグ目的で、特定のゲームやアプリケーションの物理シミュレーションの状態を記録して再生できる新しいツールおよびフレームワークです。
UE 5.4 では、Chaos Visual Debugger には 2 つの主要な部分があります。
-
デバッグ データ生成:物理シミュレーションの状態を記録するシステムです。
-
デバッグ データのビジュアライゼーション:独自のエディタ ワールド、ビューポート、アウトライナー、詳細パネル、記録再生コントロールを備えたエディタ ツールです。トレース ファイルをツールに読み込むと、シミュレーションの状態をフレームごとに (またサブステップごとに) 再生して視覚化し、オブジェクトを選択して任意のフレーム (またはサブステップ) の状態を確認できます。
将来のバージョンで、このツールは任意の記録されたフレームからの再シミュレーションを行う機能が追加される予定です。
詳細については、Chaos Visual Debugger のドキュメント を参照してください。
物理ベースのキャラクター移動 (実験的機能)

物理ベースのキャラクター移動 は、Character Mover 2.0 に追加された新しい実験的機能です。これにより、キャラクターとその環境の間で物理ベースの双方向のインタラクションが可能となります。
-
このシステムは、Character Mover 2.0 で作成された移動モードを使用し、出力された移動をキャラクターの物理表現のターゲット モーションとして受け取ります。
-
キャラクターは、インタラクションしている物理世界の部分に力を伝えます。この際、物理的な力と制約がキャラクターの動きに対して影響を与えます。
-
ネットワーク対応物理によるロールバックと再シミュレーションを備えたマルチプレイヤー物理ベースのモーションがサポートされました。
Niagara Fluids (ベータ版)
5.4 では、Niagara Fluids に次の改善が行われました。
-
2D 液体:サーフェス処理とレンダリングの改善
-
2D 気体:FFT ベースの圧力ソルバとキュービック補間
-
3D 気体/液体:有限体積法による高精度な境界条件
-
3D 液体:GPU パーティクルによる双方向結合シミュレーション
-
2D 気体:キャッシュのサポート
Chaos Destruction
Chaos Destruction が、Unreal Engine 5.4 で正式版としてリリースされました。このリリースでは、次の改善が行われました。
-
ジオメトリ コレクションのパフォーマンスとメモリ
-
ジオメトリ コレクション インスタンスあたりのメモリ コストが大幅に削減
-
数多くのパフォーマンス最適化
-
-
Chaos キャッシュ マネージャー
- レコーディングされたトラックが、シンプルな圧縮方式を用いるようになりました。つまり、ディスクとメモリ上のキャッシュ コレクション アセットがより小さくなります。
-
ジオメトリ コレクション レンダリング
- ルート プロキシ メッシュがカスタム レンダラの有無にかかわらずサポートされるようになりました。
ML 服装 (ベータ版)
ML 服装 が 5.4 でベータ版になりました。
-
スケルタルメッシュ上の複数のセクションを定義するためのユーザー インターフェースを改善
-
モーフィング ターゲットを学習する新しいトレーニング モードを追加
-
最近傍データセットを自動的に作成するツールが改善
詳細については、機械学習シミュレーションのドキュメント をご確認ください。
ネットワーク対応物理 (ベータ版)
ネットワーク対応物理が 5.4 でベータ版となり、次の 2 つの主要機能が提供されるようになりました。
-
予測補間 (ベータ版) は、「補間」タイムラインで実行しながら物理のローカル予測を処理する新しい物理レプリケーション モデルです。一定の制限内で応答性と精度の高い物理レプリケーション結果を提供します。
-
物理再シミュレーション (実験的機能) は、物理レプリケーションが予測補間で処理できるものよりも、さらに応答性と予測性を高める必要がある場合に使用するソリューションです。これにより、マルチプレイヤー ゲームでポーンを物理ベースにすることも可能になります。新しい NetworkPhysicsComponent を使用すると、カスタム物理ポーンの実装が可能になります。これにより、カスタム入力や状態の処理、ネットワークのレプリケーション、入力の物理ティックに対するリンク、物理再シミュレーション中に入力と状態の適用、必要に応じた入力の減衰および予測など、さまざまな処理の実行が可能です。
詳細については、ネットワーク対応物理のドキュメント を参照してください。
ワールド構築
3D グリッドを使用した World Partition ランタイム ハッシュ
さまざまなタイプを持つ、プロジェクト固有の要件に合わせて簡単に拡張できるパーティション オブジェクトのリストを含む、新しい World Partition ランタイム ハッシュ ソリューションです。各パーティション オブジェクトには、HLOD レイヤー設定が保持されます。ランタイム ハッシュは、引き続きデータ レイヤー (アクタごとに 1 つのファイル) をサポートしており、ストリーミング ソース コンポーネントに依存します。新しい World Partition レベルは、デフォルトでランタイム ハッシュになります。レベルで新しいランタイム ハッシュを選択すると、以前の空間ハッシュにあったアップグレード パスが利用可能になります。
ランタイム ハッシュは、緩やかな階層グリッド パーティション タイプを使用します。これは、アクタの範囲によりストリーミング セルの境界を変更し、ストリーミング グリッド レベルの昇格を削減する完全な 3D ストリーミング グリッドです。
エディタの HLOD
ワークフローが改善されました。以前はエディタでのプレイ (PIE) とクックされたビルド中にのみ表示されていた生成された HLOD が、エディタ内で直接表示され、個別に更新できるようになりました。
エディタの HLOD の最小および最大描画距離は、メイン ビューポートの [Show (表示)] オプションで調整可能です。
レベル インスタンス ソフト オブジェクト参照
World Partition では、親レベルのアクタとオブジェクトからレベル インスタンス内のアクタとオブジェクトへのソフト オブジェクト パス参照がサポートされるようになりました。
World Partition を使用すると、レベル インスタンス内のアクタがストリーミング レベル セルに埋め込まれ、その結果としてランタイム オブジェクト パスが変更される可能性があります。これらのアクタへの新しいエディタ ソフト オブジェクト パス参照が、実行時に解決され、機能するようになりました。
サーバー ストリーミング
World Partition で、ストリーミング ソースの位置レプリケーションに基づいたサーバー ストリーミング (入出力) がサポートされるようになりました。複数のプレイヤーがいるゲームにおける大規模なワールドを考慮して、サーバーのバランス改善と最適化が行われました。
Sub World Partition (実験的機能)
コードまたはブループリントを通じてレベル内に複数の Sub World Partition を作成できるようになりました。
Level Behavior プロパティがスタンドアロンに設定され、ストリーミングが有効な World Partition レベルを参照するレベル インスタンス アクタは、自動的に Sub World Partition レベルと見なされます。
Sub World Partition の HLOD は親ワールドからはサポートされておらず、スタンドアロンのレベル インスタンス アクタがストリーミングされた場合にのみ表示されます。
ランタイム データ レイヤー論理演算子
ランタイム ステートを定義するデフォルトのランタイム データ レイヤー「OR」論理演算子は、以前はハードコードされていました。
[Project Settings (プロジェクト設定)] の [New Maps Data Layers Logic Operator (新しいマップデータレイヤー論理演算子)] オプションを使用すると、プロジェクトで、新しく作成されたマップのランタイム データ レイヤーのデフォルトのランタイム ステート論理演算子として「OR」または「AND」を選択できるようになりました。
これは、[Data Layers Logic Operator (データレイヤー論理演算子)] オプションで [World Settings (ワールドセッティング)] でレベルごとに設定することもできます。
ランドスケープ Nanite 自動非同期ビルド
Nanite を有効にしてランドスケープを編集する場合、編集されたタイルの Nanite 表現を再ビルドする必要があります。5.4 では、このビルド操作が、エディタの応答性を維持しながらバックグラウンドで自動的かつ非同期的に処理され、最新のランドスケープ Nanite データが即座に提供されます。
大規模で GPU メモリを大量に消費する Nanite ランドスケープの場合、次の CVAR を使用して、並行してトリガーできるランドスケープ Nanite ビルドの量を調整することをお勧めします。
landscape.Nanite.MaxSimultaneousMultithreadBuilds 値
水のスケーラビリティ

動的にテッセレーションされた水メッシュと、ビュー位置の周囲の定義された領域内で実行時に水情報テクスチャをローカル処理することにより、非常に大規模な環境における水のスケーラビリティが向上しました。このエリアの外側の水は、水域の形状に一致するスタティックメッシュにフォールバックします。
ウォーター ゾーン アクタの [Local Only Tessellation (ローカルのみのテッセレーションを有効化)] オプションは、実行時の水情報テクスチャ処理をアクティブにし、スライディング ウィンドウは [Local Tessellation Extent (ローカルテッセレーション範囲)] で調整できます。
プロシージャル コンテンツ生成 (PCG)
実行時の階層生成

実行時の階層生成により、ユーザー定義のグリッド サイズとグリッドごとの生成距離を組み合わせ、PCG 生成ソース コンポーネントを追加し、順序、優先順位、更新頻度の生成ポリシーを調整することで、実行時の PCG グラフ実行を最大化できます。
これにより、より豊富な動的環境、ライブで生成される複雑なルール、および自動パーティション分割ランタイム実行ソリューションとしてのより大きなプロシージャルなワールドを作成できます。
さらに、PCG 生成ソースを使用してカメラやその他のアクタの周囲のみを生成することで、エディタのみのワークフローとイテレーションを大幅に改善することもできます。
ノードグラフ UX
UE 5.4 では、PCG ノード グラフを操作する際の UX の改善が複数行われました。これには次のものが含まれます。
-
名前付き再ルーティング:名前付き再ルーティングを宣言して、それを同じグラフ内の任意の場所で使用できます。
-
デバッグ オブジェクト ツリー:デバッグ オブジェクト ツリー ウィンドウを通じて、デバッグ オブジェクトの選択が行われるようになりました。これにより、イテレーションとサブグラフのループ、関連するグラフ間における全体的な操作が改善されました。各デバッグ オブジェクトに警告やエラーがあるかどうかも表示されます。グラフ内のノードを検査するには、デバッグ オブジェクトを選択する必要があります。
-
グラフの更新がよりスマートに:イテレーション速度を上げるために、接続されていないノードを追加したり、使用されていないノードを削除したりしても、コンパイルされた出力は同一であることから、グラフが更新されなくなりました。
-
複数のデータと空のエッジの表示:PCG 内のノードからノードに流れるエッジに、複数のデータを保持したり、空にしたりできるようになりました。複数のデータが流れているときはエッジ表示が太くなり、空のときは薄くなります。エッジの太さが通常である場合、データが単一であることを表します。これは、デバッグ オブジェクトを選択して実行した後にのみ確認できます。
-
複数の属性リストと詳細ビュー:最大 4 つの属性リストと詳細ビューを開いたりロックしたりできるようになりました。ノードとデータを比較するのに最適です。
-
入力ピンと出力ピンの設定:ピンの動作 (通常、ループ、フィードバック) を設定したり、IN/OUT は削除または編集したりできるようになりました。
-
ランドスケープ トラッキング モード:ランドスケープ編集コールバックは、Get Landscape Data を使用してグラフの PCG 更新をトリガーしますが、ワークフローの問題を引き起こす可能性があります。この問題に対処するため、プロジェクト設定で、ランドスケープ トラッキングの時間遅延を設定したり、ランドスケープ編集モードでのみ無効にしたり、ランドスケープ トラッキングを完全に無効にしたり、グローバル更新を完全に無効にしたりできるようになりました。
-
必須ピン インジケータ:実行カリングに関連付けられた必須のインジケータが追加されました。必須のピンが接続されていないノードは、グラフ実行から自動的にカリングされます。
-
属性リスト ビューのコピー / 貼り付け:属性リスト ビューのコンテンツを選択し、コンマ区切りのコンテンツとして任意の外部アプリケーションにコピー / 貼り付けできるようになりました。
-
複数行のノード タイトルのサポートと、名前変更が作業の邪魔になりにくいように改善:明確な情報を提供するためにノード タイトルが完全に再設計されました。ノードの名前変更は右クリック メニューまたは F2 キーを押すことによってのみ可能になりました。
-
パフォーマンス ウィンドウ:パフォーマンス ウィンドウにウォールタイム情報が追加されました。プロファイリング時に特定のノードを分離するための検索フィルタ ボックスも追加されました。
-
検索ウィンドウ:検索ウィンドウが再帰的になり、サブグラフ内のノードを返すようになりました。
-
コンテンツ ブラウザからのグラフ インスタンス:PCG グラフ インスタンスは、右クリック メニューからコンテンツ ブラウザ内で直接、既存のグラフまたは他のグラフ インスタンスから作成できるようになりました。
ノードと演算子
5.4 では、次のような複数のネイティブ PCG 要素が導入されました。
-
Match and set attributes:ポイント データと属性セット テーブルなどの 2 つのデータ エントリ間で属性値を一致させます。一致したエントリでは、一致データ入力のすべての属性がコピーされます。複数のエントリが一致する場合はランダムで選択されるか、追加の重み属性を設定することで選択をより適切に制御できます。
-
Get property from object path:配列、構造体、配列内のサブ構造体を含むオブジェクト パス属性からプロパティを取得できるようになりました。各オブジェクト パスは、解決されるとフラットな属性セット テーブル データを返します。
-
Multi switch and select nodes:動的に設定可能な整数値から、選択された構成可能な入力 / 出力を持つノードを選択して切り替えます。
-
Runtime quality branch and select:必要なレベルで拡張可能な、ランタイムのみの PCG 品質レベル ブランチと選択ノードです。無効な品質レベル ピンにはデフォルトの入力 / 出力が使用されます。有効な品質レベル ピンでも、接続されていない場合はその品質レベルのデータを生成しません。動的ブランチ カリングで動作します。
-
データ タグ操作:タグ別にデータを追加、削除、またはフィルタリングできるようになりました。
-
属性キャスト ノード:可能な場合は、目的の型 (Boolean、Double、Float、Integer、Name、Vector など) にキャストします。
-
ロジック ノード:Data Count、Point Count、Filter data by Attribute、Filter Data by Index、Get Loop Index です。
-
テクスチャ サンプラ:Get Texture Data の後、テクスチャ サンプリングが簡単になります。Get Texture Data は、Tex2DArray と CPU テクスチャ サンプリングもサポートするようになりました。
-
Sort points by attribute:密度、スケール、または任意の属性別にポイントを並べ替えるのに便利です。属性パーティション ノードの前に特定の順序を強制するのに役立ちます。
-
Native Create Points、Create Points Grid、Point Neighborhood:複数の例や早期導入ロジックで頻繁に使用されていた、初期のブループリント要素の高速なネイティブ バージョンです。
-
ポイント操作 (Duplicate Point、Split Points、Apply Scale to Bounds、Combine Points、Reset Point Center):ポイント データを操作するための複数の新しいノードです。
-
Print String:属性値を画面、ログ内、またはノード上に直接出力します。グラフをデバッグするときや、編集中にサポートされていないツールの動作やデータについてユーザーに警告するときに役立ちます。
-
Visualize attribute:属性値をポイントの位置にワールド内に直接出力します。ノード上で、カスタム プレフィックス、ポイント インデックス、属性名、オフセット、色、および期間を設定できます。
属性セット テーブル
PCG 属性セット テーブルを、グラフ パラメータ、ブループリント構造、およびアクタ プロパティ ゲッターを介した配列から作成することも、PCG グラフ内の複数の属性セットからビルドすることもできるようになりました。
これにより、バイオームなどの公開されたパラメータとそのアセット セットから、より複雑なロジックを操作できるようになります。
フィルタ、属性の追加、コピーなどの概念属性テーブルをサポートするために、複数の属性操作が更新されました。Attribute Set to Points と Points to Attribute Set 変換ノードも追加されました。
フィードバック ループ
PCG グラフの入力 / 出力ノードに、ピンごとに設定可能な [Usage] オプションが新しく追加されました。これにより、ループ サブグラフは、フィードバック ピンからの各ループ イテレーション データを再入力できるようになりました。
親グラフのループ サブグラフ ノードに表示される外部フィードバック入力ピンは、最初のイテレーションのデータで初期化する一方で、出力フィードバック ピンは最後のイテレーションの結果を返します。
ループとフィードバック ループをさらに改善するため、新しく Get Loop Index ノードも追加されました。
再帰サブグラフ
PCG グラフは、サブグラフとして自身を再帰的に実行するようになりました。従って、親グラフの実行から子の再帰にデータを渡すことで階層ロジックを作成できるようになりました。再帰サブグラフにデータが提供される限り、再帰は発生します。
PCG Biome Core プラグインはこの概念を活用しており、例として使用できます。各プライマリ ポイントには、同じ再帰サブグラフを通じて処理される独自の子階層を設定できます。
この機能を使用するには、無限再帰を防ぐためにグラフ ロジックを通じて安全策を講じる必要があります。
Biome Core プラグイン (実験的機能)

PCG Biome Core プラグインは、完全に PCG フレームワークを使用してビルドされたデータ駆動型の体系的なバイオーム ジェネレータです。今回のリリースでも改良が行われ、プロダクションのためのワールド ビルド ツールの高度な例として機能します。スタンドアロンで、そのまま使用することも、開始点として使用することも、カスタマイズすることもできます。
Biome Core は、アセットとバイオームの定義を使用する固定パイプラインですが、サンプリング、変換、フィルタリングなどの主要コンポーネントを個別の問題のある領域に分割することにより、非常に柔軟に設計されています。PCG フレームワークを使用することで、プロジェクトの制約やニーズに合わせてこれらをそれぞれ完全にカスタマイズできます。
初期設定が完了すると、アーティストやデザイナーはグラフや複雑なロジックを編集することなく、ワールド内のバイオームを簡単に定義できます。
PCG Biome Sample プラグインは、PCG Biome Core の初期設定例です。このプラグインを使用すると、定義データアセットをどのように提供しているのか、提供されたクラスをどのように使用するのか、ジェネレータ、フィルタ、グラフの変換をどのようにビルドするのかを理解しやすくなります。
ネイティブ レベルから PCG データ アセットへ
Level to PCG Data Asset アクションは、選択したレベル内で見つかったすべてのスタティックメッシュとインスタンス化されたスタティックメッシュを表すポイント データを含む PCG データ アセットを出力します。エクスポートされたデータの各ポイントには、トランスフォーム、メッシュ、マテリアル、境界、アクタ階層、相対トランスフォーム、およびすべてのユーザー設定アクタ タグが書き込まれます。PCG データ アセットにエクスポートするための新しいメカニズムを使用しており、拡張可能です。
新しい Load PCG Data Asset ノードを使用するか、エクスポートされた PCG Data Asset を PCG グラフにドラッグ アンド ドロップすると、ソース レベルのビジュアルを表す含まれるポイント データは、スポーンに使用できるだけでなく、タグ フィルタリング、階層、または任意のロジックを通じて、生成前に変更および操作することもできます。これにより、アセンブリを手動で制御して好みの形にして、その後、アセンブリをプロシージャル的に使用および変更するといったことが可能となります。
PCG アセンブリ ワークフローは、Electric Dreams GDC デモとサンプルで初めて紹介され、レゴ フォートナイトのワールド作成システムでも使用されています。このネイティブ バージョンにより、以前の Asset Action Utility ブループリントが、より優れたエクスポートおよび更新オプション、独自の PCG データ アセット クラス、および特定の Load PCG Data Asset ノードに置き換えられます。
Dynamic Attribute Tracking

Dynamic Attribute Tracking により、外部参照データが変更されたときにグラフの更新をトリガーできます。自分自身、親、特定のアクタ タグを持つアクタ、またはクラスとランドスケープをターゲットとするゲッターからトリガーされる変更だけでなく、データ アセット、データ テーブル、ブループリント公開変数、グラフ パラメータ、グラフ インスタンス設定、PCG 設定の変更をトリガーできます。
ブランチ実行カリング
不要な処理が削除されたことにより、静的および動的なグラフ実行ブランチのカリングのパフォーマンスが大幅に向上しました。
実行カリングは、下流の要素にブランチ ノードを使用する場合に自動的に適用され、実行時に動的に設定されたブランチ条件で機能します。
PCG ノードも、必要なピン インジケータとともに更新されました。カリングは、接続されていない必須ピンを持つノードにも適用される一方で、ゲッターなどの入力のないノードは常に実行されます。カスタム ブループリント要素の入力ピンも、必要なピン オプションを使用して構成できます。
動的なサブグラフ
サブグラフ ノードは、サブグラフ オーバーライド ピンを通じて、既存の PCG グラフへのオブジェクト パス属性を受け入れるようになりました。エディタからランタイムまで、いつでも実行時にグラフを動的かつコンテキストに応じて変更できるようにもなりました。
サブグラフ ノード内にグラフが設定されていない場合は、デフォルトの入力ピンと出力ピンが使用されます。グラフが設定されている場合、上書きされるとサブグラフ ノード ピンのテンプレートになります。
プロキシ ノード
プロキシ ノードは、Settings Override ピンを通じて設定されたオブジェクト パス属性から任意の PCG 設定への間接参照です。エディタから実行時まで、実行されるノード設定を動的かつコンテキストに応じていつでも変更できるようになりました。
プロキシ ノードは、ネイティブ要素クラス、ブループリント要素クラス、または特定の設定を使用してテンプレート化できます。
一時プレビュー モード
PCG コンポーネントのオプションとして、プレビューおよびロード時のプレビュー設定編集モードでは、一時的なアーティファクトとデータをローカルに生成できます。
これらのモードを使用することで、既存のデータを壊すことなくローカルで変更をテストし、データをいつ更新するかを決定できます。また、すべてのユーザーのライブ編集とプレビューを維持しながら、必要に応じて手動またはビルド マシン プロセスへの更新を延期することで、複数のユーザーが共有 PCG コンテンツを更新することで発生する競合を防止できます。
PCG オフライン ビルダー
PCG World Partition ビルダーでは、レベル内に PCG コンポーネントを生成し、その結果を保存できます。コンソールまたはコマンド ラインから実行できます。このプロセスは、ビルド マシン上で自動ジョブとして実行するのにも適しています。
プロセスはレベルを完全に読み込み、スタティックメッシュのビルドなどの非同期プロセスが完了するのを待機した後、一致する PCG コンポーネントの生成をスケジュールします。すべての生成が完了すると、プロセスはレベルを保存して終了します。
引数付きのコマンド ラインの例は以下のとおりです。
UnrealEditor.exe ProjectName MapName -Unattended -AllowCommandletRendering -run=WorldPartitionBuilderCommandlet -Builder=PCGWorldPartitionBuilder -IncludeGraphNames=PCG_GraphA;PCG_GraphB
コンソール コマンドの例は以下のとおりです。
pcg.BuildComponents -IncludeGraphNames=PCG_GraphA;PCG_GraphB
マルチ データ属性操作
すべての属性操作ノードは、すべての入力に対してマルチデータをサポートするようになりました。従って、すべての入力に同じ操作を適用する一方で個別のデータも保持できます。以前のバージョンでは、属性操作は単一のデータに制限されていたため、コストのかかるデータ結合が強制されたり、多くの重複した操作によってグラフが乱雑になったりしていました。
ウォーター スプラインの相互運用性
PCG Water Interop 追加プラグインが、Get Water Spline Data ノードを追加するようになりました。ウォーター スプラインのサンプルは川の幅に合わせて拡大縮小され、Depth、WaterVelocityScalar、RiverWidth、AudioIntensity などのウォーター スプライン固有のメタデータが書き込まれます。
プラットフォーム
モバイル レンダラ
Unreal Engine 5.4 のモバイル レンダラに、いくつかの改善が行われました。
-
GPUScene のメモリとパフォーマンスの最適化により、自動バッチ処理が改善され、ドロー コールの回数が削減されました。
-
ダイナミック ライトのレンダリング パフォーマンスが向上し、多くのローカル ライトがサポートされるようになりました。
-
Android 向けオンデマンド PSO キャッシュがサポートされるようになりました。
Android プラットフォーム
Unreal Engine 5.4 では、Android プラットフォーム固有の新しい機能がいくつか追加されました。
-
x86_64 アーキテクチャ バイナリは、ランチャーからの UE インストール ビルドにシッピングされています。それにより、Android x86_64 ターゲットにデプロイする開発者のワークフローが簡素化します。
-
Android エミュレータのサポート (実験的機能)。これにより、Android Studio が提供するエミュレータから UE で作成されたゲームを実行できるようになります。
モバイル版 Lumen (実験的機能)
デスクトップ デファード レンダラを使用した最近のモバイル デバイスで、Lumen が実験的機能としてサポートされるようになりました。
Apple Vision Pro のサポート (実験的機能)
5.4 では、Apple Vision Pro の Full Immersion Style (Full Immersion) の実験的なサポートが追加されました。この初期の実装では、Unreal Engine は、ヘッドマウント ディスプレイのポーズによって操作する Metal とカメラ変換を介したステレオ レンダリングをサポートします。
Mac での Pixel Streaming
WebRTC Pixel Streaming は現在、Windows と Linux でサポートされています。将来のリリースで、x86/ARM Mac デバイスでのソフトウェア ピクセル ストリーミングが可能になる予定です。ハードウェア アクセラレーションによる Pixel Streaming が、ARM ベースの M シリーズ Mac で利用できるようになります。
オーディオ
MetaSound
MetaSound は 5.4 で 正式版 となりました。MetaSound はまだ多くの機能の追加と改善が計画されており、鋭意開発中ですが、Epic Games のすべてのタイトルに搭載されており、その多くは最初から MetaSound でビルドされています。パフォーマンスとメモリに関する数多くの改善を行っており、今後も継続する予定です。
-
ビルダー API の改善
-
ビルダー API は、ゲームの実行時やエディタ ツールによって MetaSound をプロシージャルにビルドできるようにするためのブループリント スクリプト API です。
-
これらは UEFN の Patchwork でシッピングされます。また、グラフのライブ更新など、5.4 でいくつかの改善が加えられています。
-
-
メモリ と CPU の改善
-
演算子キャッシュ機能 (演算子メモリをキャッシュするために使用されるオプション機能。MetaSound のコンパイル時の CPU 負荷をさらに軽減します)
-
パフォーマンスとメモリ全般にわたる数多くの改善
-
-
エディタのワークフロー の改善
-
コンテンツ ブラウザでのスペースバーによるプレビュー
-
MetaSound エディタでのスペクトルとオシロスコープのオーディオ ビジュアライゼーション
-
ブループリントのような、MetaSound 内を検索するための検索タブ
-
エディタの [Details (詳細)] パネルとグラフ メンバー メニューにデフォルトで詳細情報が表示
-
MetaSound プリセット アイコンが、MetaSound ソース アイコンではなくプリセット アイコンを適切に表示
-
[Details] パネルの読み取り専用プロパティがコピー可能に
-
インエディタでのサウンド減衰のライブ アップデート
Unreal Engine 5.4 で、エディタで再生中に [Sound Attenuation (サウンド減衰)] 設定をライブ更新する機能が追加されました。これにより、再度再生しなくても、エディタ内で減衰設定を更新できるようになります。
ダイナミック サブミックス
サブミックス は、複数のソースを 1 つの出力にミックスできる DSP グラフです。5.4 では、ブループリントのサブミックス グラフとプラグインからサブミックスを追加および削除できるようになりました。これにより、一時的なプラグイン コンテンツまたは一時的なゲームプレイ コンテンツに対して柔軟なサブミックス グラフが提供されます。
Audio Insight (実験的機能)
新しく追加された Audio Insight プラグインにより、オーディオ開発者は PIE セッションの分析とデバッグをリアルタイムで実行可能なエディタ ツールを使用できるようになります。
-
複数のソース パラメータでソート可能な列を持つソース イベント リストを用意
-
関連するオーディオ情報 (音量、ピッチ、距離など) の時間プロットを表示
-
クリック可能なリスト アイテムで、エディタ内で再生されたアセットを検索
-
サブストリング ベースのフィルタリングにより、ソースをリアル タイムでソロ化およびミュート
-
希望するサブミックス ビューでのオーディオ メータリング
-
グローバル オーディオ メータリングと分析
-
オーディオ ログを自動的に設定
-
カスタマイズ可能なレイアウト
Audio Insight は 5.4 では 実験的機能 ですが、現在は将来のバージョンに向けて、以下に取り組んでいます。
-
スタンドアロン モード
-
モバイルやコンソールを含むパッケージ ゲームとの接続
-
プロフィール レコーディングの記録と再生
-
テール レコーディング
Harmonix プラグイン (実験的機能)
Unreal Engine 5.4 の新機能である Harmonix プラグインは、音楽ゲームプレイの作成に使用できる一連のツールとランタイム機能を提供します。
-
MIDI ファイルのインポートのサポートを追加
-
MetaSound で MIDI ファイルを再生
-
MIDI イベント ストリームを、音楽ゲームプレイや音楽システム用に設計されたさまざまな新しい MetaSound ノードにルーティング
-
MetaSound の新しいソフトウェア サンプラ インストルメント
-
ゲーム スレッドから MIDI イベントとクロックを監視して、視覚効果とビート マッチ スコアリングをレンダリングされた音楽と同期
RAD オーディオ コーデック (実験的機能)
RAD のオーディオ コーデック (RAC) は、Bink Audio コーデックよりも優れた圧縮率、高速なデコード、高品質を特徴とする新しいマルチプラットフォーム知覚オーディオ コーデックです。
モデリング
UV ツールの改善 (ベータ版)
UV 編集は、効率的なアセットの開発に不可欠なパートです。UV エディタの表示が修正され、レイアウトのワイヤーフレームが適切に表示されるようになりました。
テクセル密度:新しいテクセル密度ツールが利用可能になりました。これにより、スケールとテクスチャ値に基づいてメッシュの UV テクセル密度を一貫した値に設定できます。
複数のメッシュの表示:3D プレビューが更新され、複数のメッシュを選択した場合に適切に配置できるようになりました。
モデリング ツール (ベータ版)
モデリング モード ツールは、あらゆるメッシュ タイプの効果的な開発、編集、品質管理の基盤となります。Unreal Engine 5.4 では、要望の多かった機能の追加と改善がいくつか行われました。
ベベル:ベベル ツールは、単一の面取りされたエッジだけでなく、細分化もサポートするようになりました。これにより、より複雑でプロダクション指向のメッシュを作成できるようになります。
エッジを押し出し:選択ツール カテゴリ、ポリグループ編集ツール、三角ポリゴン編集ツール内で使用できる、新しいオプションが追加されました。
収集インスタンス:選択したアクタから新しい HISM または ISM を作成し、作成プロセスを高速化します。
ポリゴングループ エッジの削除:ポリゴングループ エッジを削除すると、複雑なメッシュでのトポロジ編集が高速化します。この削除はポリゴングループのマージと同様の機能ですが、より少ない操作でより多様なトポロジの変更が可能です。
モデリング ワークフロー (ベータ版)
ワークフローのモデリングには、効率的なやり取りとフィードバックが必要です。すべてのメッシュ要素を選択、変換、スナップ、表示する機能は、効果的なアセットとワールドの構築に不可欠です。
メッシュ要素の表示:5.3 で導入されたメッシュ要素ワークフローにおける、選択されていない要素と選択された要素の表示が改善されました。これにより、アーティストは選択可能な要素に関する適切なフィードバックを得ることができます。
要素の変換:変換ギズモに、メッシュ要素選択のオブジェクト軸をサポートする機能が追加されました。
形状の作成:形状ツールに、原点に新しい形状を生成するオプションが追加されました。これにより、配置してから再配置することなくメッシュを素早く作成できるようになりました。
ワークフローとツールを含むモデリング モードの詳細については、「モデリング モード」を参照してください。
Geometry Scripting (ベータ版)
Geometry Scripting は、Unreal Engine のプラグインです。これには、ブループリントや Python を使用してメッシュ ジオメトリを生成および編集する機能を提供する一連の関数ライブラリが含まれています。Geometry Scripting 機能は、継続的に拡張されています。
TransferBoneWeightsFromMesh:Closest Point Method よりも堅牢な Inpaint メソッドを使用して、ソース ダイナミック メッシュからターゲット ダイナミック メッシュにボーン ウェイトを転送します。ターゲット メッシュは通常、以前のウェイトがないメッシュ (つまり、スタティックメッシュから変換されたメッシュ) です。
GetRootBoneName、GetBoneChildren、GetAllBoneInfo、GetBoneInfo は、ボーン情報を収集するための追加ノードです。
BlurMeshVertexColors は、Houdini の AttribBlur ノードに似た新しいノードです。
コリジョン形状:コリジョン形状を直接操作し、コリジョン マージ アルゴリズムとその関連する機能を公開するための新しい関数です。
-
GetSimpleCollisionFromComponent
-
SetSimpleCollisionOfDynamicMeshComponent
-
GetSimpleCollisionFromStaticMesh
-
SetSimpleCollisionOfStaticMesh
-
GetSimpleCollisionShapeCount
-
AppendSimpleCollisionShapes
-
MergeSimpleCollisionShapes
-
TransformSimpleCollisionShapes
-
CombineSimpleCollision
-
ApproximateConvexHullsWithSimplerCollisionShapes
-
SimplifyConvexHulls
-
AppendSphereCovering
-
StaticMeshHasCustomizedCollision
ポイント セット:以下は、ポイント セットを操作するために追加された新しい関数です。
-
KMeansClusterToIDs
-
KMeansClusterToArrays
-
TransformsToPoints
-
FlattenPoints
-
UnflattenPoints
-
MakeBoundingBoxFromPoints
-
GetPointsFromIndexList
-
DownsamplePoints
-
OffsetTransforms
スプライン:USplineComponent のサンプリングが改善されました。下記は、カスタム範囲のサンプリングをサポートするコンポーネントの新しいメソッドによって改善されました。
-
ConvertSplineToPolyLineWithDistances
-
ConvertSplineToPolyline_InDistanceRange
-
ConvertSplineToPolyline_InTimeRange、SampleSplineToTransforms および ConvertSplineToPolyPath は、カスタム範囲もサポートするようになりました。閉じたスプラインの場合、これらの範囲はラップできることから、ループの周囲でセクションをスムーズにスイープすることが容易になります。
CopyMeshFromComponent は、ジオメトリ コレクション コンポーネントとインスタンス化されたスタティックメッシュ コンポーネントからのメッシュのコピーをサポートするようになりました。
AppendTriangulatedPolygon3D は、3D 頂点を持つポリゴンを三角ポリゴンに分割する新しい関数です。
ダイナミック メッシュ:ジオメトリ スクリプトによって生成されたメッシュを使用するダイナミック メッシュ コンポーネント クラスも改善されました。接線に対する制御とデフォルトの動作が改善され、エディタ ビューポートの「表示」フラグを介して標準の頂点カラーとコリジョン形状のレンダリングがサポートされるようになりました。
詳細については、「Geometry Scripting 入門」を参照してください。
テクスチャリング ツール (実験的機能)
テクスチャは、Unreal Engine でエクスペリエンスを作成する際の主要なコンポーネントです。マテリアル、UI、ランドスケープ、モデルの開発に使用されます。
実験的機能であるテクスチャ グラフ エディタは、ノードに重点を置いたデザインとなっています。エディタには、テクスチャを生成および変更するためのさまざまなノードを含む参照可能なノード パレットがあります。テクスチャ グラフ エディタでは、既存のテクスチャ、マテリアル、またはマテリアル関数を、演算ノードおよびテクスチャ サブグラフとともに使用できます。テクスチャ グラフをブループリントやエディタ ユーティリティ ウィジェットと組み合わせることで、一般的なワークフローを最適化するカスタム ツールを作成できます。
コンテンツ パイプライン
Interchange フレームワーク UX
Interchange フレームワークを使用すると、インポート、再インポートの作成、拡張、パラメータ化がより簡単になります (近々、エクスポート、ワークフローも簡単になる予定です)。
Interchange により、インポート設定の編集と保存、ユースケースに合わせたカスタム設定の作成が簡素化されます。また、クリエイターやパイプライン マネージャー独自のカスタム インポート動作によるインポート プロセスの拡張も可能になります。
Interchange の UI/UX もアップデートされ、アーティストやコンテンツ クリエイターがインポート ダイアログを簡単に操作できるようになりました。
-
設定ダイアログ ウィンドウの乱雑さを軽減するために フィルタ を導入しました。
-
インポート プロセスに関する洞察を得られる プレビュー モード を追加しました。
-
レガシー オプションとのパリティの コンフリクト表示モード を追加しました。
FBX インポートのカスタマイズ (ベータ版)
Interchange フレームワークを使用すると、FBX インポートのカスタマイズ性がさらに高まります。
この機能により、アーティスト、コンテンツ クリエイター、パイプライン マネージャーは、FBX ファイル形式のインポート動作を細かく調整できるようになります。
5.4 で、FBX アセットのインポート機能は完成したと考えています。しかし、シーンのインポート機能に関しては、UI の変更がまだ必要です。これら 2 つの機能は、デフォルトでは無効になっています。
USD の仕様のカバレッジ
USD は、3D 業界全体で採用が拡大している、汎用性の高いシーン記述ファイル形式です。コンテンツ クリエイターやアーティストが、3D コンテンツ、特にシーンの説明を DCC 間で転送するために使用されます。もともとメディア エンターテインメント業界で使用されていましたが、現在ではゲームや自動車、建築などの他の業界にも使用が広がっています。
USD 標準仕様に対する UE のカバレッジが拡大したことにより、コンテンツ クリエイターがサポートするユース ケースが広がり、DCC から UE にシーンをインポートする際のエクスペリエンスがよりスムーズになります。
5.4 では、仕様範囲が拡張され、以下がサポートされるようになりました。
-
コリジョン:UsdPhysicsCollisionAPI, UsdPhysicsMeshCollisionAPI
-
usdVol スキーマ:OpenVDB アセットのみ
-
プリミティブ メッシュ スキーマ:UsdGeomCube、UsdGeomSphere など
-
スタティックメッシュのサブディビジョン:OpenSubdiv によるサブディビジョン スキーム属性
-
描画モード:UsdGeomModelAPI スキーマ
-
プリム メタデータ
-
primvars:normals
USD エクスポートの拡張
エクスポート可能な UE 機能の範囲が拡大することで、コンテンツ クリエイターがサポートするユース ケースが広がり、よりスムーズなエクスペリエンスが提供されます。
5.4 では、エクスポート機能が拡張され、以下がサポートされるようになりました。
-
ベイク済み PCG
-
ジオメトリ キャッシュ
-
ネスティングされているスケルタル データ
-
プリム メタデータ
glTF エクスポート / インポート ラウンドトリップ
glTF は、3D エコシステムでの交換形式として、またウェブおよび XR アプリケーションの公開形式として使用される一般的な 3D モデル ファイル形式です。一部業界、特にウェブでは、コンテンツ クリエイターやアーティストにとって主要な作業形式となっています。
glTF 機能が広範囲にカバーされているため、コンテンツ クリエイターは DCC またはパブリッシング アプリケーションとスムーズかつロスなしでモデルを交換できます。
アーティストやコンテンツ クリエイターは、glTF 交換フォーマットを使用することで、より大きなエコシステムの中で活動できます。これにより、オンライン ライブラリから UE にモデルをインポートしたり、UE シーンをウェブに対応した形式で公開したりできるようになります。
5.4 では、最も一般的に使用される glTF 拡張子が UE でサポートされるようになりました。とりわけ、次の点に重点が置かれます。
-
ラウンドトリップのギャップを埋める:エクスポータがインポータと同じ拡張子をサポートするように調整しました
-
次のエクスポート用のマテリアル拡張を追加しました。
-
KHR_materials_transmission (薄い半透明)
-
KHR_materials_sheen
-
KHR_materials_specular
-
KHR_materials_ior
-
-
次のインポート用の拡張を追加しました。
-
KHR_materials_iridescence
-
KHR_draco_mesh_compression
-
MaterialX - Substrate & OpenPBR (実験的機能)
MaterialX インポートが拡張され、Substrate マテリアルの作成と OpenPBR ベースのシェーダーの変換がサポートされるようになりました。OpenPBR サーフェスの記述は、Autodesk Standard Surface と Adobe Standard Material の後継として、Autodesk と Adobe によって開始されました。
Substrate のサポート により、アーティストは MaterialX シェーダーをよりリアルに表現できるようになります。OpenPBR のサポートにより、アーティストはプロジェクト内で成長を続ける業界標準にアクセスできるようになります。
Substrate を有効にして MaterialX をインポートすると、従来のマテリアルを Substrate にラッパーするのではなく、より優れた Substrate 表現を用いてマテリアルを取得できるようになりました。OpenPBR インポートは、レガシー マテリアルと Substrate マテリアルでも機能します。しかし、Substrate を使用するとより優れたマテリアル表現が可能です。
Substrate マテリアルはまだ 実験的機能 であることに注意してください。
フレームワーク
Character Mover 2.0 (実験的機能)
Mover プラグイン (別名 Character Mover 2.0) は、UE の既存のキャラクターの移動機能を大幅に改善します。これは、物理学からアニメーション、ネットワークに至るまで、コードベースに多数のタッチポイントを持つ非常に大規模な取り組みです。
この取り組みの主な特徴は次のとおりです。
-
キャラクターだけでなく、あらゆるタイプのアクタ をサポートする
-
ネットワークの複雑さを軽減し、ゲームプレイ プログラマーが 移動機能に集中 できるようにする
-
モジュール化 によって拡張性とカスタマイズ性を向上させ、エンジニア以外の人 でも独自の移動機能を作れるようにする
-
ゲームプレイの可能性を広げる ために、厳格な要件をなくし、物理シミュレーションされたオブジェクトとのやり取りを改善する
-
他のシステムでも使用可能な 一般化されたロールバック ネットワーク モデルをサポートする
Gameplay Interactions プラグイン (実験的機能)
Gameplay Interactions プラグインを使用すると、State Tree とスマート オブジェクトを (特に) Contextual Anim シーンと一緒に使用して、アクタ間の完全かつ柔軟なインタラクション システムを作成し、State Tree でオブジェクトのロジックとそれらを使用するアクタの両方を処理できるようになります。
外部 State Tree サブツリー (実験的機能)
State Tree の外部サブツリーは、以前に導入されたサブツリー機能に似ています。しかし、実際には別のファイルとして定義され、現在のツリーに限定されるのではなく、複数の異なるツリーで再利用できます。これにより、コンテンツ クリエイターは複数の既存のチャンクから State Tree を構成でき、以前は State Tree を使用することによってのみ実現できたものに近いモジュール動作が可能になります。
詳細については、「外部 State Tree の概要」ドキュメントを参照してください。
Large World Coordinates ネットワークのサポート (ベータ版)
Large World Coordinates が UE のネットワーク テクノロジーによって正式にサポートされるようになりました。これにより、ネットワーク関連の制限を心配することなく、マルチプレイヤー環境で大規模なワールドを作成できるようになりました。
GAS デバッグの改善
Gameplay Ability System (GAS) で使用できるデバッグ ツールを多数改善しました。したがって、この優れたフレームワークを使用しながら、ビルトイン デバッグをより多く行えるようになります。
データのみのブループリントのマージ (ベータ版)
5.3 ではデータ アセットのマージを導入しましたが、今回のリリースでは、データのみのブループリントもマージできるようになりました (完全なブループリント グラフはまだサポートされていません)。これにより、世界中の開発者が BP データ アセットの差分とマージについてより詳細な情報を得られるようになりました。
Windows GameInput API (ベータ版)
Microsoft は最近、Windows 用の新しい GameInput API をリリースしました。これにより、Windows プラットフォーム上のコントローラーに「すぐに使用可能」な接続サポートを追加できるようになりました。
これには、特別なファーストパーティ ライセンス要件 (SDK アクセス) のない PlayStation コントローラーが含まれます。この実験的機能の最初のバージョンでは、以下がサポートされています。
-
Xbox コントローラー
-
PS4/5 コントローラー
-
レーシング ホイール
-
飛行スティック
-
アーケード スティック
これは、UE 内の従来の USB プラスチック機器をネイティブでサポートすることにもなります。したがって、これらの周辺機器を独自のゲーム (および Fortnite Festival 内) で使用することも可能です。
Iris レプリケーション (ベータ版)
Unreal Engine 5.4 では、ワークフローが改善されました。また、プラグインの利便性向上により、あらゆるネットワーク環境でプラグインの使用とデバッグがはるかに容易になりました。
ラージ ワールドの Navmesh 生成 (実験的機能)
レゴ フォートナイトをリリースする際には、はるかに大きくダイナミックなワールドをより適切にサポートするために、ナビゲーション ツール内のさまざまなシステムを最適化する必要がありました。そのため、利用可能なランタイム生成デバッグ ツールに多くの改善を加えました。
また、Invoker と navmesh 解像度のツールも改善しました。これらの概念を導入することでゲームのパフォーマンスを微調整し、必要なときに、必要な場所で、必要な方法で navmesh を生成できます。これにより、膨大な数の AI が存在する大規模なオープン ワールドで navmesh 生成のボトルネックが少なくなりました。
最後に、World Partition の改善と OFPA のサポートを追加し、navlinks 生成に関するさらに多くの修正も行いました。
エディタ
マルチ ユーザー アクタ レプリケーション
マルチ ユーザー編集でアクタをリアルタイムでレプリケートします。個別のトランザクションだけでは不十分な場合に備えて、ワールドのアクタのリストと、リアルタイムでレプリケートしたいそれらのプロパティをキュレートできるようになりました。
マルチ ユーザー リモート関数呼び出し
マルチ ユーザー リモート関数呼び出しで、マルチ ユーザー編集を介して、あるクライアントが別のクライアント上で事前定義された C++ およびブループリント関数の実行を呼び出せるようになります。
エディタのアクセシビリティ:アプリケーション スケール (実験的機能)

[Editor Preferences (エディタの環境設定)] > [General (一般)] - [Appearance (アピアランス)] > [User Interface (ユーザー インターフェース)] の [Application Scale (アプリケーション スケール)] 設定で、エディタ内の UI 要素のサイズを調整できるようになりました。
値を「1.0」より大きく設定すると、テキストと UI コントロールのサイズが比例して大きくなり、ラベルと値が読みやすくなります。
値を「1.0」未満に設定すると、テキストと UI コントロールのサイズが小さくなり、画面に収まるコンテンツが増えます。
UI システム
Slate PostBuffer (実験的機能)

UI 開発者は、UI マテリアルを使用したシーンのより効率的なサンプリングや、全画面時の彩度低下や色収差といった任意の FX の適用が可能となりました。これまでは、SceneColor が UI マテリアルに公開されていなかったため、不可能でした。今回のリリースでは、シーンの Blur FX のみが利用可能ですが、将来のリリースではさらに多くのエフェクトが追加される予定です。
詳細については、Slate PostBuffer のドキュメント を参照してください。
また、Unreal Engine マーケットプレイスから 「機能別サンプル」プロジェクト をダウンロードすることで Slate PostBuffer のサンプルを確認し、UI_SlatePostBuffer マップを見てみることもできます。
UMG ビューモデル (ベータ版)
MVVM (モデル - ビュー - ビューモデル) パターンに基づく UMG Viewmodel プラグインにより、デザイナーはプログラマーから独立して作業したり、コードを変更せずにウィジェットの構造を変更したりすることが可能となります。
このリリースでは、次の機能により、UI デザイナーと開発者が実行可能な操作が拡張されました。
-
イベントへのバインディング:イベントが発生したときに実行されるバインディングを作成します。
-
スタティック ビューモデル:UMG でビューモデルのインスタンスの値を直接初期化します。
-
ブループリント グラフを表示:バインディングの関連付けられたブループリント グラフを参照します。
-
診断:検証とエラー ログでより正確な情報が提供されます。
メディア
メディア IO リアルタイム MIP の生成
レンダリングとビデオ画像の安定性を向上させるために、メディア トラックのミップマップ チェーンをリアルタイムで生成する機能を公開しました。以下を追加しました。
-
リアルタイムのミップマップ チェーン生成を可能にするメディア トラック設定
-
ミップマップ セクションの下に上記の設定を表示する [Media Plate Actor] チェックボックス
メディア IO EXR 緯度/経度ポール ミップ オフセット
LED ステージ上のバーチャル プロダクションでは、緯度/経度で大きくタイル化された EXR ファイルを再生するときに、極でのタイル リクエストが増加することがあります。これは通常、IO 要件がハードウェアの機能を超え、停止や再生の途切れを引き起こす可能性がある天井の nDisplay ノードで発生します。今回のリリースでは、リクエストされた MIP レベルを自動的に増加させ、メディア プレート帯域幅の EXR タイル リクエストを制限するために、メディア プレート アクタを介してアクセス可能な最適化されたシステムが提供されました。
-
IO リクエストを一定に保つために MIP オフセットを自動的に調整する、Adaptive Pole Mip Offset と呼ばれる [Media Plate Actor (メディア プレート アクタ)] オプションを追加しました。
- これは、Sphere 構成のタイル化された EXR でのみ機能します。
メディア IO による TSR/TAA アーティファクトの最小化

TSR および TAA と併用すると、ビデオ再生およびマテリアル ベースのアニメーションに、にじみなどの視覚的なアーティファクトが発生します。リアルタイム MIPS と画面割合の増加によって視覚的な劣化は改善できますが、望ましい画像忠実度を実現するには不十分です。メディア IO による TSR/TAA アーティファクトの最小化 は、テンポラル アルゴリズムとモーション ベクトルの不足によって発生するアーティファクトを最小限に抑えます。これは、あらゆる種類のビデオ再生やストリーミング コンテンツを使用するあらゆる業界のユーザーにメリットがあります。
-
TSR およびその他の TAA によるアーティファクト (テンポラル アルゴリズム) を最小限に抑えます。
-
再生プレートなどの特別にタグ付けされたジオメトリに一時的なパススルーを提供します。
プロダクション レンダリング パイプライン
レンダリング レイヤー

スタジオ パイプライン内で Unreal Engine をより適切に接続できるように、ムービー レンダー キューに、ポスト合成用の高品質な要素として レンダリング レイヤー を簡単に生成する機能が追加されました。ショットを複数のレイヤーに分割して、前景のキャラクターを背景の環境から分離するなどの操作を実行できるため、最終イメージをより細かく制御し、ライブ アクション プレート映像との統合が容易になります。レンダー レイヤーは、パス トレーサーとディファード レンダラーの両方でサポートされています。
ムービー レンダリング グラフ
プロジェクトをスケールアップしても Unreal Engine のレンダリングを使用できるように、ムービー レンダー キューでは新しいノードベースのアーキテクチャを使用してレンダリング設定を管理するようになりました。ムービー レンダリング グラフ で、アーティストとスーパーバイザーは、レンダリングを定義する基本的な構成要素と、データ フローおよびロジック ノードを使用できるようになります。必要に応じて単純なグラフや複雑なグラフをビルドできるため、小規模チームと大規模チームの両方のニーズに対応しています。
単一のショットをレンダリングするためのグラフを設定したり、複雑なマルチショットのワークフロー全体にスケールアウトするためのグラフを設計したりできます。強力で直感的な継承スキームにより、ショー、シーケンス、ショットなど、あらゆるレベルで階層的なレンダリング設定をビルドできます。グラフ システムの中心にはパイプライン機能があり、事前および事後のスクリプト作成と自動化が可能な、便利で開発者に優しいエントリ ポイントが備わっています。
プロトコル
DMX コントロール コンソール

DMX コントロール コンソール を使用すると、大量のフィクスチャーとフェーダーを効率的に駆動および制御できます。これは、DMX デバッグの簡素化、仮想または物理的なフィクスチャー セットの素早い制御を行うために設計されました。ライブラリおよびパッチの選択内容に基づいて、スライダを自動生成および追加します。ライブおよびバーチャル プロダクション業界のユーザーは、これらのフェーダーを使用して DMX データを生成し、物理デバイスに送信できます。
-
アセット ベースのインフラストラクチャ でより優れた UI コントロールと UE の一貫性を実現。
-
複数選択と パッチ グループ化。
-
複数のパッチを選択すると、複数のフィクスチャー グループが表示されなくなり、[Details] パネルの動作と同様に 1 つのフィクスチャー グループのみが表示されるようになりました。
-
グループ内のパッチのフォルダ ネストを使用して、特定のフェーダー セットを公開するようになりました。
-
検索チャンネルの履歴 では、ユーザーが以前に検索した内容が記憶されるようになったため、何度も再入力する必要がなくなりました。
-
検索テンプレート により、特定のチャンネルをすばやく検索します。特定のパッチの可能なチャンネルはすべてすでにわかっているため、検索しなくてもそれらから選択できるようになりました。
-
キューを保存および再ロード して、フェーダー状態のプリセットを呼び出せるようになりました。
-
コントロール ウィジェット により、より強力で直感的なコントロール ノブとウィジェットを提供します。
DMX ピクセル マッピング

DMX および ピクセル マッピング 機能が、多数のフィクスチャー パッチを効果的に操作してピクセル マッピングする必要のある、より大規模で複雑なセットアップでよく使用されるようになりました。ピクセル マッパの UX がさらに簡素化されました。また、ライブ/バーチャル プロダクションユーザーをサポートするために、次の改善が行われました。
-
ピクセル グリッドの精度を実現するグリッド システム:パッチをグリッドにスナップできるようになりました。グリッドは、入力テクスチャに関係なく、任意の解像度 (幅と高さ) にすることができます。
-
DMX ライブラリからパッチのカラー スキームを取得:これにより、コントロール コンソールおよびライブラリと一致するようになりました。
-
パッチのハイライト サイズが公開 され、さらに明確になりました。
-
パッチの回転と水平/垂直反転 がサポートされ、柔軟性が向上しました。
-
フォント サイズのスケーラビリティ向上 により、パッチ情報がより読みやすくなりました。
-
高精度内部バッファ (ダウンスケール、ブラー、ピクセル マッピング処理用) が追加されました。
-
線形フラグ (入力テクスチャ用) がサポートされました。
DMX データ競合モニター
以前は、このような競合を表示および識別するための集中型 UI がなかったため、潜在的な DMX データのコリジョンに気付けない可能性がありました。DMX データ競合モニター にコントロール コンソール、ピクセル マッパー、ブループリントなど、現在送信中のすべての DMX サブシステム インスタンスを公開する UI パネルまたはウィンドウが実装されました。DMX を使用するすべての業界とユーザー、特にピクセル マッパとコントロール コンソールと合わせて使用するユーザーにメリットがあります。
-
すべての同時 DMX 送信サブシステム インスタンスを公開および集中管理するため、UI パネルまたはウィンドウを単一化しました。たとえば、コントロール コンソール、ピクセル マッピング、またはブループリントのアクティブなインスタンスなどです。
-
パッチごとにコリジョンと競合を強調表示します。
プラットフォーム SDK のアップグレード
-
Windows
-
Visual Studio 2022 v17.4 以降
-
Windows SDK 10.0.18362 以降
-
LLVM clang
-
最小:15.0.0
-
推奨:16.0.6
-
-
.NET 4.6.2 Targeting Pack
-
.NET 6.0
-
-
ビルド ファームのコンパイル対象の IDE バージョン
-
Visual Studio - Visual Studio 17.8 14.38.33130 ツールチェーンおよび Windows 10 SDK (10.0.18362.0)
-
Xcode:Xcode 14.2
-
-
GDK
-
最小 Windows SDK:10.0.19041.0
-
GDK:2023年更新 3
-
最新のリカバリ バージョン
-
サポートされている IDE:Visual Studio 2022
-
-
Linux
-
ネイティブの Linux での開発
-
推奨 OS:Ubuntu 22.04 または CentOS 7
-
コンパイラ:clang 16.0.6
-
クロスコンパイル ツールチェーン:v22 clang-6.0.6 ベース (CentOS 7)
-
-
macOS
-
推奨
-
最新の macOS 13 Ventura
-
最新の Xcode 14.1 以降
-
-
最小
-
macOS 13 Monterey
-
Xcode 14.1
-
-
-
EOSSDK
- 1.16.2 ヘッダ付き 1.16.3 バイナリ
-
Steam
- 1.57
-
iOS / tvOS / iPadOS
-
推奨
-
最新の macOS 13 Ventura
-
最新の Xcode 14 Sonoma
-
-
最小
-
macOS 13 Ventura
-
Xcode 14.1
-
-
サポート対象のターゲット SDK バージョン:iOS 15 以降
-
グラフィック API:Metal 2.4 および Metal 3.0
-
-
Android
-
Android Studio Flamingo 2022.2.1 Patch 2 May 24, 2023
-
Android NDK r25b
-
Android SDK
-
推奨:SDK 33
-
UE コンパイルのための最小要件:SDK 30
-
デバイス上で実行する最小ターゲット SDK:SDK 26
-
-
AGDE v23.1.82 以上AGDE デバッグを使用している場合は必須です。
-
ビルドツール:33.0.1
-
Java runtime:OpenJDK 17.0.62023-01-17
-
-
Switch
-
SDK 16.2.3
-
最小ファームウェア バージョン:17.0.0-7.0
-
Nintendo Dev Interface 2.5.5
-
サポートされている IDE:Visual Studio 2022
-
-
PS4
-
Orbis SDK 11.508.011
-
システム ソフトウェア 11.508.011
-
サポートされている IDE:Visual Studio 2022
-
-
PS5
-
Prospero SDK 9.00.00.40
-
システム ソフトウェア 9.00.00.45
-
サポートされている IDE:Visual Studio 2022
-
-
ARCore
- 1.37
-
ARKit
- 4.0
-
OpenXR
- 1.0.27
リリース ノート
アニメーション
API の変更:
- FSkeletalMeshObject::MinDesiredLODLevel がロードされた最大 LOD にクランプされなくなったため、メッシュ ストリーミングが有効になっていると、MinDesiredLODLevel がストリーム インされていない LOD を参照する可能性があります。
- ILODSyncInterface がストリーミングのためにリクエストされた LOD (メッシュ ストリーミングが有効になっている場合) とレンダリングのためにリクエストされた LOD を区別するようになりました。Get/SetForceStreamedLOD と Get/SetForceRenderedLOD が優先されるため、SetSyncLOD と GetCurrentSyncLOD は非推奨としました。
新機能:
-
ランタイム時に UDNAAsset をコピーできる関数を UDNAAsset に追加しました。これは、ランタイム時にメッシュを動的に生成する Mutable などのシステムで必要です。
-
コントロール リグ:コントロール リグにベイクするときのブール、整数、列挙型チャンネルのキー削減/最適化を追加しました。
-
偽の警告が表示される可能性を減らすために、不正な BlendSpace 三角分割にフラグを付ける角度しきい値を 4 度から 1 度に下げました。
-
[Analyse All (すべてを分析)] を使用するときに各 BlendSpace サンプルを有効にする/無効にするオプションを追加します。
-
PerformanceCaptureCore プラグイン** この実験段階のプラグインにより、モーション キャプチャのアニメーション ブループリントのワークフローを置き換えるための 2 つの新しいアクタ コンポーネントと 2 つの新しいアクタ クラスが追加されます。
- パフォーマー コンポーネント:bone-for-bone がアクティブな LiveLink サブジェクトと一致するスケルタルメッシュに追加されます。パフォーマー コンポーネントでは、スケルタルメッシュ (ルート コンポーネントに最も近いパフォーマー コンポーネントのデフォルト) と LiveLink サブジェクトを選択できます。このコンポーネントは、選択されたスケルタルメッシュのアニメーションインスタンスをオーバーライドして LiveLink データで駆動されるようにします。
- リターゲティング コンポーネント:スケルタルメッシュを使用するアクタに追加されます。ユーザーは、ソースとターゲットのスケルタルメッシュ コンポーネント (ソースは外部アクタの一部である可能性があります)、およびソースとターゲット間でアニメーションをコピーする IKretarget アセットを選択できます。
- CapturePerformer アクタ:パフォーマー コンポーネントの機能を含むスケルタルメッシュ アクタです。
- CaptureCharacter アクタ:リターゲティング コンポーネントの機能とリターゲティング プロパティを制御する BP スクリプティング API を含むスケルタルメッシュ アクタです。
-
モーション エクストラクター モディファイア:別のボーンを基準にしてモーションを計算できるようにするスペース列挙型を追加しました。
-
16 バイトのゲインを取得する SkeletalMeshComponent のパッキングを改善します。これにより、SkeletalMeshComponentBudgeted がスイッチではなくすべてのプラットフォームで 4080 bin にドロップし、それぞれで 288 バイトを取り戻すようになります。
-
メッシュ ストリーミングが有効になっているときに LOD 同期コンポーネントが正しく動作するようになりました。
-
スタティックメッシュからスケルタルメッシュに変換することにより、ターゲット パスを設定したり、サフィックスとプレフィックスを交換したり、ルート ボーンを配置する場所を選択したりできるようになりました。
-
AnimationBudgetAllocator に ForceNextTickThisFrame 関数を追加します。
-
アニメーション クリップをクックするためのメモリの使用量の見積もりを改善しました。
-
BlendSpace 分析のための別のオリエンテーション計算メソッドを提供します。これにより、ポインティング ボーンが「直立」オリエンテーションに制限されなかったときの問題が回避されます。
バグ修正:
-
スケルタルメッシュを再インポートするときに、デフォルトのデフォーマー設定が維持されるようになりました。
-
シーケンス ブラウザでのアニメーション アセットの複数選択に対してプレビュー メッシュを設定できない問題を修正しました。
-
検索時に BlendSpace の詳細のボタンが非表示にならないように修しました。
-
スケルタルメッシュ エディタに新しい設定 [Build Half Edge Buffers (ハーフ エッジ バッファをビルド)] を追加しました。これにより、アセットがクックされてもハーフ エッジ データ インターフェースを使用するデフォーマー グラフが機能するように、スケルタルメッシュ アセットでハーフ エッジ データをクックできます。
-
シーケンスに複数のコントロール リグがあるときにコントロール リグ ポーズのブレンディングが機能するように修正します。
-
ジョブでも RigVM を使用できるため、いくつかの呼び出しを GetValueOnGameThread から GetValueOnAnyThread に変更しました。
-
ボーンのトランスフォームやデフォルト ポーズへのリセットが適切にアンドゥされていなかった、スケルタルメッシュまたはスケルタル エディタの問題を修正しました。
-
ティックの前提条件間でティック レートの一貫性を保つ AnimationBudgeAllocator に対する修正。
-
スケルタルメッシュの詳細でプラットフォームごとの設定を編集すると、プラットフォーム名が実際のプラットフォーム名ではなく [None (なし)] のままになることがあった問題を修正しました。
非推奨:
-
SkinnedMeshComponent に OverrideMinLOD を追加して SetMinLOD を非推奨とします。- SetMinLOD を機能させるには bOverrideMinLod を True にする必要があるため、MinLOD と bOverrideMinLod を True に設定する関数を追加します。
-
コントロール リグ:使用されなくなったため、インタラクション リグを非推奨としました。
ゲームプレイ
新機能:
-
ブレンドスタックにおけるステート マシンの自動トランジションのサポート
-
ChooserTable プロパティの参照の検索および置換機能
-
スタックでのチューザー評価のための一時メモリを割り当てます
-
巻き戻しデバッガのトラック ビューの改善 - 背景の削除 - ツールチップのトラック名 - ホバー ステートの同期 - オブジェクト トラックの SEventTimelineView で存続期間が表示されるようになりました
-
巻き戻しデバッガのスクラブ再生のクラッシュの修正
-
プロキシ テーブルとプロキシ アセットのアイコンを追加しました
-
ChooserPlayer アニメーション グラフ ノード
-
ChooserTable に追加するアセットのドラッグ/ドロップ
-
巻き戻しデバッガの自動イジェクト/レコード機能のツールバー切り替えボタンを追加します
-
チューザーと (アニメーション クラスを選択するためのものなどの) クラスを返すプロキシ アセットの修正
-
AnimationModifierLibrary に FootstepAnimEventsModifier を追加しました。同期マーカーを生成するために使用され、指定された任意の数のボーンを通知します。
-
チューザーのプロパティ バインディングの最適化
-
ChooserTable エディタの複数選択および編集のサポート
-
ブレンドスタック サブグラフ内からの PlayRate のオーバーライドのサポートを追加します
-
アセット リロード時の ChooserTable のクラッシュを修正します
-
アニメーション ブループリント エディタのアニメーション ノードのプロパティのトレーシングと表示の改善 - ChooserPlayer ノードの選択されたアニメーションをトレースします。- 巻き戻しデバッガのデバッグ バブルにトレースされているノードの (名前を除く) すべてのプロパティが表示されるようにします。- シーケンス プレイヤー ノードにデバッグ バブルの現在のシーケンスが表示されるようにします。- キー:Asset でシーケンスや BlendSpace などのアセットをトレースし、AnimGraph 巻き戻しデバッガの詳細におけるアセット縦列の表示を有効にします。
-
BlendStack サブグラフ内のノードの [Anim Node Reference (アニメーションノード参照)] タグのサポート
-
BlendStack の PoseSearch からそれぞれのプラグインへの分割
-
カメラの揺れに関連するヘッダとレガシー ヘッダをそれぞれサブディレクトリと個別のディレクトリに移動します
-
同じファイルのネスティングされているチューザー テーブルのサポート
-
リンクされているアニメーション グラフにおける存続期間のトレーシングの終了の修正
-
チューザー列挙型縦列の [Any (すべて)] 設定
-
保存されない巻き戻しデバッガの設定を修正します
-
ビジュアル ロガーの巻き戻しデバッガを統合できるようにします
-
ChooserTable とプロキシのプロパティのアクセスの最適化
-
プロキシ テーブル ルックアップに複数出力のサポートを追加します
-
巻き戻しデバッガのチューザー デバッグ
-
巻き戻しデバッガのトラック タイプのフィルタリング
-
チューザー テーブルのフォールバックの結果
-
ランタイム時のメモリ割り当てを回避するためにチューザー評価コンテキストをリファクタリングします
-
ブレンドスタックからの通知をフィルタリングするためのサポートを追加しました。
-
巻き戻しデバッガの子の AnimationBluprint の処理を改善します。
-
新しいカメラの揺れ API パラメータ構造体のスペースを確保するためにカメラの揺れ API パラメータ構造体の名前を変更します
-
巻き戻しデバッガの一時停止機能の自動イジェクト
-
セクションが終了して停止するときにモンタージュの再生をクランプします
バグ修正:
-
最後の横列を選択した後に横列を選択すると発生するプロキシ テーブル エディタのクラッシュを修正します
-
自動レコードが有効になっているときに PIE を起動してから巻き戻しデバッガを開くと発生する可能性がある、巻き戻しデバッガのクラッシュを修正しました
-
多数のカーブがあるアニメーションのセットアップに関連する、巻き戻しデバッガのスタックのオーバーフローを修正しました
-
複合揺れの持続時間を適切にビルドします
-
チューザー プロパティ アクセスのビットフィールド ブール プロパティのサポートを追加します
-
横列を削除するときに ChooserTableEditor で発生するクラッシュの修正
-
巻き戻しデバッガからアセットを開いたときの警告を修正するとともに、ダブル クリックで開いたときにアニメーション アセットが正しいフレームにスクラブするようにしました
-
バインディング可能なプロパティのみが UObject 関数の子である場合に何も表示されない、プロパティ バインディング ウィジェットのバグを修正します
-
チューザー/プロキシ テーブルのインスタンス化された構造体データのユーザー定義の構造体によるクッカーのクラッシュの修正
-
AnimGraph のトラックの詳細から AnimationBlueprint のノードへの巻き戻しデバッガのリンクを作成し、それらが開いたときにデバッグを正しいインスタンスにアタッチします
-
巻き戻しデバッガの最適化 - ツリービューを繰り返しリフレッシュさせ、カーブ トラックが展開されない限り更新を行わせないバグを修正します
-
機能しないネイティブのプロキシ テーブルのバインディングを修正します
-
プロキシ テーブル構造体の出力で構造体のバインディングを変更するときに発生するクラッシュを修正します
ムービー レンダリング キュー
新機能:
-
すべての OpenEXR 圧縮形式をムービー レンダリング キューの出力に公開しました。
-
ムービー レンダリング グラフで OpenColorIO CPU トランスフォーム サポートを公開しました。
バグ修正:
-
ムービー レンダリング パイプライン:[Sequencer to Render Shot (ショットをレンダリングするシーケンサー)] を右クリックしたときにキューで有効にならない選択済みのショットを修正しました
-
MRQ で水をレンダリングできるように修正します。
-
複数の時間サンプルが使用されているときに音声が正しくなるように音声レンダラを更新しました。
リギング
新機能:
-
デフォーマー グラフ:アトミック演算と「Set Resource」ノードからカーネル ノードの出力バインディングへの読み取りアクセスのチェックボックスの位置を変更しました。これにより、カーネルは型が整数の出力からの読み取りやそうした出力のアトミック演算を行えるようになります。
-
Curve Expression Animation Blueprint ノードのカーブを削除する機能を追加しました。これは、式の右側で
undef()演算子を使用するか、(-CurveNameのように) カーブ名の前に-を付けて代入式の残り部分を省略することで実行できます。 -
デフォーマー グラフ:出力が変わらないカーネルの結果の自動キャッシュのサポートを追加しました。これらのカーネルは緑色でマークされます。更新グラフのカーネルのみが考慮されます。
-
GPU スキニング用の追加のシェーダー順列をコンパイルすることなくプロジェクトで無制限のボーン影響度を有効にできる、プロジェクト設定 r.GPUSkin.AlwaysUseDeformerForUnlimitedBoneInfluences を追加しました。これにより、ランタイム メモリとディスク スペースが節約され、シェーダーのコンパイルの時間が短縮されます。この設定が有効になっていると、デフォーマーが割り当てられていない無制限のボーン影響度を使用するすべてのメッシュ LOD で DeformerGraph プラグインのデフォルトのデフォーマーが使用されます。これにより、UBI メッシュが常にデフォーマーでレンダリングされるようになるため、UBI の GPU スキニング順列は不要になります。またこの変更により、ユーザーが LOD でメッシュ デフォーマーを無効にできる LOD ごとの設定も追加されますが、この設定は、LOD が低い場合に負荷の大きいデフォーマーを無効にするなど、パフォーマンスを制御するのに役立つことがあります。USkinnedMeshComponent の関数に対するいくつかの変更により、さまざまな LOD でさまざまなデフォーマーを使用するための基盤も築かれます。
-
デフォーマー グラフのデータ インターフェース間の Direct Link のサポートを追加しました
-
コントロール リグ:AnimBP でコントロール リグ クラスに対するランタイムの変更を行えるようにします。Animation Blueprint ノードでランタイム時に使用されるコントロール リグ クラスを変更する機能が提供されるようになりました。
-
コントロール リグ:すべてのコントロール リグをロードするコマンド。コマンド ライン コマンド「ControlRig.LoadAllAssets」を使用すれば、現在のプロジェクトのすべてのアセットをロードできるため、アセットの問題を見つけやすくなります。
-
コントロール リグ:ビューポートでのマーキー選択のサポート。
-
コントロール リグ:PIE でフル コンパイルを行えるようにします。PIE 中にリグを再コンパイルできるようになったため、キャラクターがゲーム中にポーズを取っているときにキャラクターをイテレートしやすくなりました。
-
LOD 設定データ アセットで Base LOD パラメータが公開されました。
-
ControlRig 仮想マシン (RigVM) をステートレスになるようにリファクタリングするとともに、インスタンス作成の負荷を抑えるために最適化しました (同じグラフのすべてのインスタンスで VM が共有されるようになりました)。また、インスタンス化された構造体を使用するように内部メモリ バッキング システムを変更しました。
-
RigVM:レイ算術演算関数。「交差レイ」、「交差平面」、レイ「GetAt」および「Transform Ray」ノードを追加しました。
-
RigVM:リリース モードでプロファイリングを行えるようにします。
-
ユーザーは、サブグラフ ノードをアクセス指定子が公開に設定されていると他のデフォーマー グラフ アセットで使用できる再利用可能な関数に変換できるようになりました。
-
一部の関数を RigVMBlueprint から RigVMClientHost に移動したため、システムのさまざまなユーザーがクライアント ホスト インターフェースでそれらを使用できるようになりました
-
線形ブレンド スキニングとデュアル クォータニオン スキニングのための組み込みのデフォーマー グラフ関数を追加しました
-
コントロール リグ:ActorComponent、SkeletalMesh、Skeleton、RigVMHost にエディタ専用の AssetUserData 配列を追加しました。これらにより、参照データへのエディタ専用の依存関係が追加されます。
-
Skeletal Mesh Modeling Toolkit プラグインにスタティック モデリング ツールセットと同じポリゴングループ操作ツールのすべてが含まれるようになりました。
-
コントロール リグ:UEFN #virtualized に標準関数ライブラリが公開されました
-
ControlRig:親コンストレイントの算術演算ノードを追加しました
-
FBX を介してスケルタルメッシュに任意の数のシングルチャンネル/アルファ頂点マップをインポートできるようになりました。
-
曲げ、潰しと伸ばし、ツイスト、フレアを含む、非線形変形のための組み込みのデフォーマー グラフ関数を追加しました。
-
ラティス変形のための組み込みのデフォーマー グラフ関数を追加しました。
-
デフォーマー グラフ:カーネルの実行ドメインを設定するときの数式のサポートを追加しました。
-
評価を行うことなくカーブが実際にスケルタルメッシュ上に存在するかどうかをチェックする、新しい Control Rig ノード Curve Exists を追加しました。
-
コントロール表示アクタに常に非表示のコントロールが表示されるように修正します
-
コントロール リグ:フォワード ソルブの直前と直後に実行される、フォワード ソルブの前と後のイベントを追加しました。これらのイベントは、子モジュールが処理される前と後にリグ モジュールを実行する必要があるときに役に立ちます。
-
専用サーバーのデフォーマー インスタンスの作成を無効化しました
-
デフォーマー グラフのループ ノードのサポートを追加しました
-
コントロール リグ:ノードの直接操作。ユーザーはノードを右クリックすることにより、ベクターやトランスフォームなどのピンの値を直接操作できるようになりました。またノード デベロッパーも Aim ノードなどで使用できるカスタム機能を提供することが可能になりました。
バグ修正:
-
ブループリントで作成されたコールバックをコントロール リグで呼び出せるように RigVMHost 型をバインドします。
-
[モジュラー コントロール リグ] - コンテンツのみ。誰かがチェーン モジュールを使用すると表示され、アウトライナーの乱雑さの原因になっていた余計な Null を修正します。
-
複数のマテリアル セクションでメッシュに無効なデータを提供する、重複した頂点データ インターフェースの問題を修正します。
-
アニメーション属性がコントロール リグのコンポーネントと連携するようにします
-
ハッシングをコンパイル時間に移動することにより、ControlRig VM のハッシュ計算のランタイム負荷を修正しました。ハッシュ関数の負荷も大幅に軽減されました。
-
スケルタルメッシュが無制限のボーン ウェイトを使用していると機能しないデフォーマー グラフの Skeleton Data Interface ノードを修正します
-
デフォーマー グラフでパラメータ ピンをカスタム コンピュート カーネル ノードのリソース ピンに接続するときに発生する、シェーダー コンパイル エラーを修正しました。このタイプの接続がサポートされるようになりました
-
ビューポートにトランスフォーム マニピュレータが表示されているときにプレビュー メッシュをクリアすると発生する、デフォーマー グラフ エディタのクラッシュを修正します
-
構造体のメンバーがリグで使用されているときにその名前を変更すると、エラーが表示されることなく ControlRig から UUserStruct メンバーへのピン接続が失われる問題の修正
-
[モジュラー コントロール リグ] - ユーザーがコントロールの形状を変更できるように脚モジュールを修正します。その他いくつかの腕、脚、ピストン、addControls モジュールの軽微な問題を修正しました。
-
インライン関数で被演算子を再利用して重複したプロパティを生成する ControlRig VM コンパイラを修正しました。
-
エディタでデフォーマー グラフが開かれる/ロードされる前にデフォーマー グラフで使用されるユーザー定義の構造体を編集するときのアサーションを修正しました
-
別のワーカー スレッドが関数を登録しているときにスレッドで VM を初期化していると発生するデッドロックを防ぐために、コントロール リグ関数レジストリのマルチスレッドの問題を修正しました。
-
スケルタルメッシュ編集ツールで [Add Weight Map Layer (ウェイト マップ レイヤーを追加)] を使用して追加した新しい頂点属性が表示されない、スケルタルメッシュ エディタの LODInfo セクションを修正しました。
ランタイム
新機能:
- ACL を使用するようにデフォルトのアニメーション カーブ圧縮コーデックを変更します。
- これによって圧縮されたメモリ フットプリントが減り、圧縮解除のパフォーマンスが向上します。
-
関数ライブラリを使用する剛体アニメーション ノードでの物理アセットのオーバーライドを切り替えるランタイム
-
RBAN LOD しきい値 CVar を無視し、アニメーション グラフ ノードでローカルで設定された CVar の使用を強制するための新しいフラグを導入しました。
-
ポーズ ドライバー ノード用のピンとして LOD しきい値を公開しました
-
ブレンドスタック:サンプルごとのグラフのサポートを追加しました
-
ブレンド プロファイル/マスクと組み合わせたスケルトンの互換性のサポートを追加しました。
-
アニメーションのカーブにコメントを追加する機能を追加しました
-
USkeleton の CompatibleSkeleton のツールチップを改善しました
-
アニメーション インスタンスに OnMontageBlendedIn コールバックを追加しました
-
新規:TAutoConsoleVariable
ではなくブール FAutoConsoleVariableRef を使用するように p.RigidBodyNode CVar を変更しました。これによって CVarEnableRigidBodyNodeServer.GetValueOnAnyThread() に対する不要な呼び出しが行われなくなり、代わりにブール変数 bEnableRigidBodyNode が使用されるようになります。 -
Control Rig Rig Logic Skeletal Control Base (RBAN) ノードのピンとして LOD しきい値を公開する可能性を追加します。
- アニメーション通知と同期マーカーのワークフローの変更
- アニメーション タイムラインから通知と同期マーカーを追加するときにスケルトンがダーティにならなくなりました。
- そのようになるのは、スケルトンから通知と同期マーカーを削除した場合のみです。アニメーションから削除するには、[find/replace (検索/置換)] タブを使用します
-
Inertialization Anim ノードで使用されるリクエスト転送動作を切り替えるオプションを追加し、DeadBlending Anim ノードからリクエスト転送を削除しました。
-
スケルトンおよびアニメーション シーケンス エディタの NotifyPanel の bExposeNotifiesUICommands オプションに従います
-
複数のキー # jira UE-193618 を追加したときに 1 回だけシーケンスを処理します
-
CompactPose にあるボーンに従って Dead Blending Anim ノードの格納ポーズおよびボーン データがまばらになるようにしました。
-
アニメーション ノード関数にアニメーション グラフ IsActive を公開します
- ACLPlugin を最新の開発ブランチに更新しました
- ソース Git コミット:5091b840185542fbe1cde5643c9c60448ae631fc
- これによって圧縮されたメモリ フットプリントが減り、ビジュアル忠実度が向上します。
-
AnimNotifyTrack ContextMenu に UToolMenu を使用します。これにより、ユーザーはメニューをカスタマイズして権限を適用できるようになります。
-
アニメーション レイヤー インターフェースに追加された新しいレイヤーが、デフォルトで共有グループから始まり、ランタイム時にインスタンスを共有するようになるため、デフォルトのパフォーマンスが向上します。
-
スケルトン エディタでブレンド マスクとブレンド プロファイルの名前を変更するためのサポートを追加しました
-
モンタージュの再生中にモンタージュのティックを強制してボーンをリフレッシュするスキン メッシュ コンポーネントに新しい可視性ベースのティック オプションを追加しました。
- 既存のテーブルのミラー データ テーブルで検索と置換を実行する機能を追加しました。この機能は、新しいボーンがあるかテーブルの検索/置換式を変更した場合に役に立ちます。
バグ修正:
-
グラフが原点から離れていると表示されない新しいアニメーション ステート マシン トランジション ノードを修正しました
-
コントロール リグの組み込み型で FLazyName が使用されるように切り替えました
-
関数の名前の変更がプロパティ アクセス ノードに適用されず、名前の変更後にコンパイルがクラッシュする問題を修正します
-
(たとえば) カーブ コメントを追加したり、カーブ カラーを変更したりするときにダーティとマークされないモンタージュを修正します
-
特定の状況でコンテキスト メニューに表示されない通知を修正します
-
ちょうどの入力 DeltaTime でアニメーションの範囲外の開始時間をリクエストすると発生する無限ループを修正します
-
アニメーション シーケンス アセット #changelist validated #virtualized から直接ストリーミング可能なアニメーションを作成できなかった問題の修正
-
クライアントとしてプレイすると登録されない、各レベルに配置される割り当て済みのメッシュを修正します
-
ボーン アニメーション トラックのリストに表示されないアニメーション シーケンス エディタの詳細を修正しました
-
大規模な AnimBP を評価するときにスタックがオーバーフローする可能性を減らすためのいくつかの改善
-
「呼び出し関数」ノードがボーン ノードごとにレイヤー化されたブレンドからのルートウォードである場合に発生するクラッシュを修正します
-
シーケンスから直接モンタージュを作成するときに、シーケンスのフレームレートに従うようになりました
-
単一のティックで 2 つ以上のマーカーが渡されると同期マーカーが適切に進められない問題を修正しました
-
スケルトン エディタにカーブ デバッガを追加し直しました
-
URO で補間されたカーブの「ちらつき」を修正します
-
アニメーション圧縮設定でリサンプリングがされなかった場合の MinKeysForResampling を無効にしました
-
最後のセクションが終わった後にアニメーション モンタージュでアニメーションが再生し続けられないようにするための修正
-
ポーズ アセットの作成と削除に関連するクラッシュを修正します
-
シーンで正しいアニメーション アセットが設定されていると (またはプレビューが閉じられようとしている場合は null ptr で) アニメーション エディタ プレビュー シーン OnAnimChange のデリゲートが呼び出されるようになりました
-
クックの決定論の問題を引き起こすうえに特に必要ないため、カーブ圧縮コーデック インスタンスの GUID を削除しました。
-
ユーザー定義の構造体として定義されている属性のアニメーション属性登録の問題を修正します
-
ブランチング ポイントが無効な LinkedMontage ptr で保存されたアニメーション モンタージュをロード時に通知する問題を修正しました
-
機能が有効になっていないときにアニメーションのトラックごとの圧縮適応誤差設定を無効にする編集条件を追加しました
-
アニメーション ブループリント エディタ プレビュー インスタンスに対して行われていなかった nullptr チェックを追加します
-
ワールドのクリーンアップが行われるときに PreviewScene がすでに破壊されていた場合に発生する、AssetEditorModeManager での破壊後の使用の問題を修正しました
-
アニメーション タイムラインをリフレッシュすると発生するクラッシュを修正しました
-
スケールが負になると NaN を作成する Dead Blending Anim ノードの問題を修正するとともに、LinearlyInterpolateScales フラグによってスカラー速度が直線的に計算されるようにしました。これにより、このオプションが有効になっているときに負のスケールを完全にサポートできるようになります。
-
ボーンが不足しているとログにエラーが記録されるように切り替えました
-
Motion Matching ノードとやり取りしているときの確認とクラッシュを修正します
-
カーブ コーデックが変更されてアニメーションにボーン データがないとディスパッチされないアニメーションの圧縮を修正します
-
エラーが出たファイルとラインを正しく報告するように AddErrorIfFalse のスタック オフセットを修正しました
-
新たにスポーンされたアニメーション インスタンスが、「後で」スポーンされるときに BeginPlay オーバーライド ポイントを呼び出すようになりました
-
親かリンクされたアニメーション ブループリントをデバッグするときにポーズ ウォッチをサポートします。また、ポーズ ウォッチが子のアニメーション ブループリントから切り替えられないようにします
-
複数のスレッドからレイアウトが同じプロパティ バッグを作成するときに発生するクラッシュを修正します
-
プレビュー アニメーション ブループリントを設定すると発生するクラッシュを修正しました
-
ループ モンタージュ セクションのアニメーション通知ステートのレコーディングを修正しました
-
非同期ロードを行えるように ALT からのカスタム プロパティ ノードのデリゲートの登録を修正しました
-
アニメーション デバッグ描画アイテムが更新後と評価後の両方でフラッシュするようになりました
-
切断時に削除されないアニメーション BP ノードの孤立したピンを修正します
-
参照スケルトンが更新されるときに互換性のあるスケルトンのマッピングを更新します。
-
未加工トランスフォームに互換性のあるスケルトンが適用されるように FRetargetingScope を更新します
-
メッシュが割り当てられていないスケルタルメッシュ コンポーネントの剛体ノードを初期化すると発生するクラッシュを修正します
-
RandomPlayer アニメーション グラフ ノードが PreloadRequiredAsset を呼び出すようになりました。
-
ブレンドスペースのないブレンドスペース エバリュエーターのデバッグ情報を表示すると発生するクラッシュを修正します
-
LinkUpTable にデッド データが残らないようにするために、スケルトン メッシュ リンクアップ マップをリファクタリングしました。
-
仮想ボーンにソケットを追加できるようにします。仮想ボーンで他の機能を使用できるようにします。
-
TArrayView を使用するために LocalBlendCSBoneTransform を移動しました
-
線形キー削減で使用される場合の平行移動/スケールの ACF_IntervalFixed32NoW コーデック形式を修正します
-
カーブ名の並べ替えに起因してクックの非決定論を生成する AnimSequence の問題を修正しました。
-
デバッグの描画を目的として AnimInstanceProxy に AnimDrawDebugCapsule を追加しました
-
エディタでアセットが開かれているときにスケルタルメッシュの保存されていない変更を元に戻すと発生するクラッシュを修正しました
-
ブレンド リストの単一のフルウェイト エントリの一般的なケースを最適化します
-
通知トラックを削除するときの確認を修正します
-
ボーンが選択されていなければ、スケルトン ツリーの [Add Socket (ソケットを追加)] アクションを無効にします
-
コピー/ペースト時に通知と通知ステート両方のプロパティがコピーされるようにします
-
ポーズ属性デバッグ情報のレコーディング/表示を修正します
-
無効な確認を削除します。スケルトンに互換性があると、ポーズ アセット内のすべてのボーンがスケルトンに存在するということを保証できなくなります。
-
GetLinkedAnimLayerInstanceByClass で子クラスのチェックが最適に行われるようになりました。
-
圧縮コーデックにバインド ポーズ スケールを公開します。バインド ポーズ スケールを使用するように ACLPlugin を更新します。
-
正しい回転修正を使用するようにメッシュ空間加算再マッピングを修正します。
-
通知/同期マーカー ウィジェットを開く動作を最適化しました
-
ボーンがアニメーション シーケンスに存在していたもののアニメートされていなかったかのように、アニメーション シーケンスがメッシュ空間加算であれば、そのアニメーションの不足しているボーンが引き続き親に従うようにします。
-
評価フレームがスキップされたときによりスムーズに補間されるようにするための修正。これは、バジェット アロケータで使用される計算に似ています。
-
アニメーション ブループリント ランタイムのさまざまな下位パートを最適化しました
-
トランジションに基づいて自動ルールを検証するときに発生するクラッシュの修正。いくつかの警告も情報として再挿入しました
-
ツイスト補正ノードの不明な編集条件に起因するエラーを修正します
-
EngineTest をコンパイルするときに選択される誤った BuildUnsorted オーバーロードを修正します
-
同期マーカーでモンタージュをティックするときにアセット プレイヤー外で変更される位置が原因でヒットするアサーションを修正しました。
-
外部インスタンスに接続されているとポーズ ウォッチと正しく連携しないカーブ デバッガを修正します
- 階層に挿入されたボーンでのメッシュの再インポートに関連するエッジ ケースを修正します
- これにより、スケルトン階層の中央にインポートでボーンを追加できるようにする CVar (a.Skeleton.AllowIncompatibleSkeletalMeshMerge) が追加されます。
-
親アニメーション ブループリントをデバッグするときのブレンドスペース プレイヤー ノードのデバッグ描画の修正
-
Anim ノードの DeadBlending のカーブ フィルタリング オプションを修正しました。
-
DeadBlending Anim ノードで BlendProfile と BlendMode を組み合わせて使用したときに発生する問題を修正しました。Inertialization ノードにボーン フィルタを追加しました。Inertialization ノードと古いコードの一部のクリーンアップ/非推奨事項に対するメモリの改善。
-
アニメーション グラフ ノードのピン バインディングで参照される変数が削除されるときに表示される、修正不可能な警告を修正します
-
アニメーション属性値を取得するときに発生する可能性があるクラッシュの修正
-
無効なメッシュ/スケルトンでアニメーション アセットを作成しようとしたときに発生するクラッシュを防ぎます
-
State Tree でバインディング メニューを開くと発生するクラッシュを修正します
-
RigVM:すでに解決済みの浮動小数ピンと倍精度ピンによるピン解決動作を修正します
-
データ アセットから LOD 設定を駆動するときにスケルタルメッシュの詳細のカスタマイズで画面サイズ プロパティが正しく非表示にならない問題を修正します
- 慣性ブレンドを使用しているときに正しく同期しないブレンドスペースを修正しました。
-
「トランジション リーダー」と「トランジション フォロワー」という同期グループの役割を使用しているときに同期しないブレンド スペースを修正しました。
-
単一のアクティブなポーズのウェイトを正しくチェックするためにブレンド リストの最適化を修正します
-
ドラッグ&ドロップされるノードに表示されないノード バインディングを修正します
-
ソース アニメーション BP に非表示の参照を導入する、ペーストされた「アニメーション ゲッター」ノードを修正します
-
名前チェックの問題に起因するエラーを返していた、アニメーション エディタの浮動小数カーブの名前変更を修正しました。
-
表示されるメッセージを適切に考慮するように FMessageStack::HasMessage を修正します
-
カーブ ソース アセットにないカーブに影響を与える可能性がある CurveSource ノードのバグを修正します
-
スレッドセーフな方法で「メイン」アニメーション インスタンスを取得し、同じエフェクトを得るためのプロパティへのアクセスのネスティングを不要にするネイティブの方法を公開します
-
FAnimInstanceProxy で AddAnimNotifies を公開しました
-
アニメーション圧縮 [Remove Trivial Keys (重要でないキーを削除)] でキー削除しきい値を正しく使用します
-
タイム ブレンド プロファイルと加算ポーズを使用してスロット ノードからポーズを評価するときに正しく機能しない属性の蓄積を修正しました。
-
リンクされているアニメーション グラフをネスティングする、リンクされているアニメーション レイヤーをリンク解除するときに発生するクラッシュを修正します
-
子アニメーション BP でのウォッチ対象ピンのデバッグを修正します
-
無効なスケール形式を選択できないようにトラックごとの圧縮を修正しました
-
WheelController アニメーション ノードがアニメーション グラフでアップストリーム ノードを更新していなかった問題の修正
-
同期グループと連携しない BlendBy アニメーション ノードからの慣性ブレンドを修正しました。
-
カーブ変更ノードの「加重移動平均」モードを修正します
-
アニメーション シーケンスが開いているときにスケルタルメッシュをリロードすると発生する、PersonaToolkit に格納された未加工ポインタに起因するクラッシュを修正しました
-
通知を発出しないデフォルトではないトラックのモンタージュ プレビューを修正します
-
ボーンの重み付けがより正確に反映されるようにスケルトン ツリー ボーン ウェイトのツールチップを微調整しました
-
FBlendProfileCustomization::GetSkeletonFromOuter にブレンドスペース グラフ ノードのサポートを追加します
-
さまざまなアニメーション コーデックで回転形式として ACF_None が使用されるときに行われる、無効なメモリ読み取りを修正します
-
[Remove Every Second Key (キーを 1 つおきに除去)] アニメーション圧縮の最小キー数プロパティの UI にクランプを追加しました
-
シーケンサー アニメーション インスタンス プロキシの GC クラッシュを修正します
- コンテンツ ブラウザから保存するときに、外部パッケージを含む (umap ではない) アセットが正しく保存されるようになりました
シーケンサー
新機能:
-
シーケンサー - インデックスだけでなく、マテリアル スロット名でマテリアルを参照できるようにします。これにより、スロット名の一貫性が維持されていれば、メッシュ内でマテリアル インデックスが並べ替えられるときにマテリアル パラメータ トラックの解決が中断されなくなります。今のところは、まずスロット名で照合を試みた後、スロット名でマテリアルを見つけられなければ (下位互換性を確保するためのバインディングにマテリアルが存在しなければ)、インデックスで照合を試みます。また、マテリアル スロット名かマテリアル インデックスが変わった場合にこのバインディングをリフレッシュ/修正する方法も提供します。* MeshComponent の OverlayMaterial を参照してそこに含まれるパラメータをアニメートする機能、またはマテリアル スイッチャー トラックを使用してオーバーレイ マテリアル プロパティに割り当てられるマテリアルを変更する機能を追加します。
-
シーケンサー:シーケンサーにレイヤーおよび関数マテリアル パラメータをアニメートする機能を追加します。
-
シーケンサー:ツリー ビューの UX:横列と親の色合いはそれぞれに異なり、トップ レベルの横列も親横列として報告されるようになります。また、キーかセクションが選択されている横列もハイライト済みとして報告されるようになります
-
シーケンサー:再生コントロールの UX の変更 - 新しいアイコン、情報ボタン、現在時間インジケータ。
-
シーケンサー:BP/Python でのシーケンサーとカーブ エディタのキーの選択
-
シーケンサー:アニメーション モード:レベル シーケンス復元 Tween/ツール ステートをもう一度開くときに、必要に応じてコントロール リグを再作成し、選択を復元します。
-
シーケンサー - PrimitiveComponent でカスタム プリミティブ データをアニメートするためのトラックを追加しました。カスタム プリミティブ データは、マテリアル パラメータを駆動する別の方法です。これにより、PrimitiveComponent の 36 個の番号が付けられた浮動小数パラメータのいずれかを複数のメッシュとマテリアルの 1 つ以上のマテリアル パラメータにマッピングできます。横列の 1 ~ 4 個のスロットに分配し、カラー パラメータに対するスカラーからのあらゆる処理を行えます。これらはこれまで、コードかブループリントを介してのみ設定できましたが、今ではシーケンサーでアニメートすることが可能です。
-
シーケンサー:コンストレイント:アニメートされたコンストレイントはレベル シーケンスにあります
-
新しい「再生機能」コンテナを含む、シーケンス階層の共有ステート構造体を追加します。これにより、特定のシーケンス インスタンスがコンテキスト情報またはロジックに関して提供可能なものを (レベル シーケンス アクタや UMG ウィジェットのような) 外部コードで指定できます。これは、コア シーケンサー評価コードの IMovieScenePlayer を不要にするための第一歩です。
-
同じターゲットをアニメートするときにグループ化される複数のコントリビューターの一般的なパターンで役に立つグループ化システムを追加します。
-
Take Recorder:アニメーション アセットおよび音声アセット ディレクトリのトークン (日、月、テイク、アクタ) を追加します。また、使用可能なトークンに関するツールチップの情報を追加しました
-
オフラインになるデバイスに関して、TakeRecorder の音声デバイス リストが強化されました。デバイス リストをリフレッシュするためのメニュー アイテムが追加されました。
-
シーケンサー:開始/終了範囲をサブシーケンス範囲に一致させる [Conform to Range (範囲に一致)] をタイムラインの右クリック メニューに追加しました。
-
シーケンサー:シーケンサーが UObject をバインド/バインド解除するときにイベントを受信するためのインターフェースをそのオブジェクトが (C++ か BP で) 実装できる、新しいインターフェースを追加しました。イベントを取得するには、シーケンスでバインディングにバインディング存続期間トラックを追加する必要があります。バインディング存続期間トラックの長さが無限のままであれば、シーケンス再生の開始時と終了時にそれぞれイベントが発生します。バインディング存続期間トラックの範囲が有限の場合、バインディング存続期間セクションが始まる/終了するときにイベントが発生します。
-
シーケンサー:SequencePlayer に SetCompletionModeOverride と GetCompletionModeOverride を追加しました。
-
シーケンサー:コントロール リグ:コントロール リグのエディタで実行中の PIE の問題を防ぎます。すべてのワールドで同じコントロール リグを共有するのではなく、新しいゲーム ワールドがある場合は、コントロール リグの新しいインスタンスを使用し、評価のときにそのインスタンスを設定/評価します。
-
カーブ エディタ:両側の最初と最後のキーの接線ハンドルを表示します。これはたとえば、サイクルするプレインフィニティ セットとポストインフィニティ セットがある場合に役に立つものであり、最後のキーの離脱接線を最初のキーの到達接線に対してスムーズになるように操作できます。
-
単一のチャンネル カーブを表示しないカーブ エディタのスタックされた表示モードを修正します
-
カーブ エディタの Curve Name ノードの更新を修正します
-
シーケンサー:FMovieSceneSequencePlaybackSettings の bRestoreState ブール オプションを 3 つ値 (Default、ForceKeepState、ForceRestoreState) がある FinishCompletionStateOverride という名前の列挙型に変更し、ForceRestoreState が bRestoreState を True に設定するのと同等のオプションになるようにします。bRestoreState は、すべてのアイテムに対して PreAnimatedState が強制的にしかもグローバルにキャッシュされ、シーケンスが停止するか終了したときに復元されるようにするために使用されていました。False に設定されているとこのようなオーバーライドは行われず、完了モードは各トラック セクションの設定によってトラック セクションごとに決定されていました。今では 3 番目のオプションとなる ForceKeepState があります。FinishCompletionStateOverride が ForceKeepState に設定されている場合、トラック セクションの設定にかかわらず、シーケンスが停止するか終了したときにどのステートも復元せず、シーケンスの終了が保持されるとすべてのステートがアクティブになります。これは、事前にアニメートされたステートのメタデータとストレージを破棄し、ステートを復元するために使用されないようにすることで行われます。
-
シーケンサー:スナッパーと連携するコンストレイント。
-
シーケンサー:ドラッグするか (Ctrl キーと矢印キーを) 軽く押すことで選択したマークのすべてを移動できる機能を追加しました。
-
シーケンサー:ショット表示名ではなくアセット名でテイクをパースします。これにより、ショット ラベルと名前ベースで変わることのないテイクの名前を変更できます。またこれにより、テイクを変更するときにショット ラベルがそれに伴わないバグも修正されました。
-
シーケンス インスタンスの作成に関連する不明なクラッシュを診断するためのロギングとチェックを追加します
-
ECS の評価を使用するためにスローモーション トラックを変換します
-
セクションが自動的にデフォルトにならずにクローズ ステートに変わったときに拡張ステートが復元されるよう、カーブ エディタ ツリーにキャッシュ済みの拡張ステート値を追加します。これらの値は、アセットにではなくセッションごとに保存されます。
-
ダブル ブレンダー蓄積バッファの再初期化を最適化しました
-
シーケンサー:セクションで希望どおりの移動方法を実装できるよう、MoveSection を仮想化します
-
シーケンスに音声が追加されるときにユーザーに音声クロック ソースを使用するよう促す、抑止可能なダイアログを追加しました。
-
ECS の評価を使用するためにカメラの揺れトラックをアップグレードします
-
シーケンサー:エディタのコンポーネントの可視性のサポートを追加しました。エディタ プロパティで一時的に非表示になるアクタに関しては、既存のサポートがあります。これにより、エディタ プロパティに表示されるコンポーネントのサポートが追加されます。
-
シーケンサー:ブループリントに公開されるよう、不足している BlueprintType を MovieSceneFolder に追加しました
-
カーブ エディタ:以前のキーがキュービックだった場合に到達接線を表示します。これにより、定数キーの到達接線を表示して操作できるようになります。
-
シーケンサー:アニメーションの詳細:アニメーターのフィードバックに従って、複数のセクションがあるときは、キー セクションに対してセクションのカーブのみを選択します。
-
マテリアル システムが新しいグループ化システムを使用し、階層バイアスを活用できるようにします
-
カメラの揺れのシネマティック プレビューを改善します
-
シーケンサー:オーバーシュートしない新しい自動/スマート自動。デフォルトとしてのセットの Sequencer.AutoTangentNew 2 により、この値は以前の動作になるように「1」に戻されます。
-
シーケンサー:リンクされているアニメーション インスタンス。(ロードによって) 参照されているオブジェクトを解決できない場合はリンクを削除します。
-
カーブ エディタ:ユーザー設定 (フレーム、秒、タイムコード) に基づいて表示されるようにカーブ エディタ ツールの時間プロパティを変更しました。
-
シーケンサー:整数およびブール チャンネルにプレ/ポストサイクルを追加します。整数は線形以外のすべてをサポートし、ブールは定数 (デフォルト)、サイクル、振動をサポートします
-
シーケンサー:サブシーケンス トラックとテンプレート シーケンス トラックの横列の高さを変更できるようにします
-
シーケンサー:相対ブレンド、イーズにブレンド、スムーズ/ラフの新しい Tween ツール
-
シーケンサー - ブループリント アニメーション インスタンスの新しい「SequencerAnimationOverride」インターフェースを追加します。これにより、カスタム アニメーション ブループリントで次のいずれかを行えるようになります。a) シーケンサーが再生中にアニメーション インスタンスを交換できる (後で元に戻せる) ようにする。これは、スケルタル アニメーション トラック セクションで [Force Custom Mode (カスタム モードを強制)] チェックボックスをオンにするのと似ていますが、ブループリント レベルでは、シーケンサーで何も変更する必要がありません。b) 選択できるシーケンサー スケルタル アニメーション トラック セクション UI の有効なアニメーション スロット名のリストを提供する。インターフェースでブループリントによって提供された場合、新しいスケルタル アニメーション セクションを作成するときに、常に有効なスロットが選択されるようになります。
-
シーケンサー:コントロール リグ:常にデフォルトの補間が追加されて使用されないように、ゼロ値の設定を修正します
-
カメラ カット トラックでロック解除時に元の (事前にアニメートされた) ビューポート位置を復元するかどうかを選択するためのオプションを追加します。
-
カメラの揺れプレビューアが揺れを実行する必要があるワールドを認識するようにします
-
シーケンサー:ズーム レベルを変更せずに現在の再生時間に表示範囲のフォーカスを合わせる、[Focus Playback Time (再生時間にフォーカス)] のショートカットを追加しました。
-
ムービー レンダリング キュー:パノラマ レンダラがデフォルトでカメラの回転に従うようになりました。元の動作はパノラマ レンダリング パスの設定で復元できます。
-
ムービー シーン シーケンス プレイヤーのネイティブ完了デリゲートを追加します
-
シーケンサー:ボリュメトリック クラウド コンポーネント マテリアルでのマテリアル パラメータのアニメートのサポートを追加します。
-
可視性トラックを ECS の評価にアップグレードします
-
ムービー レンダリング キュー:PIE ウィンドウの最大化ボタンを有効にして画像プレビューのサイズを大きくできるようにしました。
-
シーケンサー:ベイクの FBX エクスポート オプション (Bake None (何もベイクしない)、Bake Transforms (トランスフォームをベイク)、Bake Channels (チャンネルをベイク)、Bake All (すべてをベイク)) を追加しました。
-
動的バインディング BP 拡張の複数のシーケンスをサポートします。
-
シーケンサー:コントロール リグ:コントロール リグ外部ノードの優先順位を追加します。同じバインディングで複数のコントロール リグを使用できるようにします。
-
シーケンサー:SequencerOutlinerScriptingObject に公開される GetNextKey/GetPreviousKey 関数を追加しました。また、GetNextKey/GetPreviousKey が (選択範囲に制限できる) シーケンスの時間境界内で動作するようになりました。
-
シーケンサー:ポーズ ライブラリ:float/vector2d コントロールをブレンドします。
-
シーケンサー:NLA:[Split Section (セクションを分割)] でルート モーションの一致位置が継承されるようになります。
-
コントロール リグ:Python/BP でデフォルトが 100 に設定されたコントロール リグのトラック順序。複数のコントロール リグを同じバウンド オブジェクトより上にできます。
-
カメラ カット セクションの自動配列を無効にするオプションを追加します
-
シーケンサー:シーケンサーのフォルダに入っていなかったアクタをドロップできるようにします。
-
シーケンサー:[Clear Global Marked Frames (グローバルにマークされているフレームをクリア)] と [Show Marked Frames Globally (マークされたフレームをグローバルに表示)] のショートカットを追加します
-
シーケンサー:構造体でネスティングされている UEnum をアニメートする UI を適切に表示するために、MovieSceneByteProperty トラックでそれらの列挙型を見つけられるようにします。
-
シーケンサー:LevelSequenceEditorBlueprintLibrary に SetLoopMode/GetLoopMode を追加しました。
バグ修正:
-
シーケンサー:アニメーションを停止するときに UMG でディレクター ブループリントをリセットします
-
シーケンサー:コントロール リグ:初期化時にスケルトンが存在しないことが原因で発生する、アニメーション ブループリント インスタンスへの CR の追加に伴うクラッシュを修正します。
-
偶然複数のフェーズに属するシステムで CleanTaggedGarbage を 2 回呼び出しません。
-
カーブ エディタ:[Scale Center (中心をスケール)] オプションで機能しないトランスフォーム ツールを修正しました。
-
シーケンサー:ペーストされた実際のバイディングを返さない PasteBindings を修正しました。
-
シーケンサー:ベイク時にベイク データが有効であることをチェックします。ベイク演算により、開始フレームから終了フレームまでベイクが行われます。サブシーケンスでスポーン可能なものの場合、それは終了フレームまで存在しないため、ベイク データはなく、デフォルトのトランスフォームを使用します。
-
シーケンサー:複数の横列への複数のセクションのドラッグを修正しました。
-
シーケンサー:ステートを維持するように設定されたトラックの事前にアニメートされたステートのリークを修正します。サブシーンのスポーン可能なものでシーケンスをループすると、スポーン可能なものが作成されるたびに事前にアニメートされたストレージにメモリが継続的に割り当てられる可能性がありました。これは、[Keep State (ステートを維持)] に設定されたセクションで発生していました。ステートがキャッシュされていなくても、「MakeEntry」が呼び出されていたため、オブジェクト キーに関連付けられているキャッシュにメモリが割り当てられていました。キャッシュすることもステートを復元することもなかったため、このメモリはまったく不要でした。これを修正するために、エントリの作成前にステートを追跡する必要があるかどうかをチェックする CachePreAnimatedState 関数でロジックが再編成されました。
-
シーケンサー:バインドされているオブジェクトの名前がバインディング名と同じでないと選択したアクタが表示されないことがあった、[Show Selected Nodes Only (選択したノードのみを表示)] を修正しました。
-
シーケンサー:スポーン可能なものにマッピングする所有可能なトラックの問題を修正します。スポーン可能なものがデスポーン/スポーンする場合、所有可能なトラックは正しく無効化されていなかったため、スポーン可能なものがリスポーンした後に再接続に失敗していました。さらに、所有可能なものがスポーン可能なものを参照しており、そのスポーン可能なものがデスポーンされる場合に、通常のスポーン可能なトラックと同じように赤ではなく「グレー」カラーを表示するよう、ラベル カラー ロジックを更新します。
-
ムービー レンダリング キュー:ジョブをキャンセルすると一部のコールバックでジョブが成功したと報告される問題を修正しました。
-
シーケンサー:コントロール リグ コンストレイント ベイクのアンドゥ/リドゥ時のクラッシュにつながっていたメモリ ストンプを修正します。
-
シーケンサー:テイクを切り替えて新しいテイクを作成するときに誤って引き継がれていたショット名を修正しました。
-
使用できない音声入力デバイスが適切に処理されなかった TakeRecorder の問題を修正しました。
-
カーブ エディタ:キーを操作するときのぎくしゃくした動きを修正しました。
-
プロパティ バインディングに誤った名前が付けられたときに誤検出アサーションが開始されないように修正します。
-
シーケンサー:コントロール リグ:間違ったコントロール/マスク インデックスが使用されていたため、マスクされたコントロールがキーを正しく生成しない可能性があります。また、Marc からの古い CIS の警告を修正します。
-
いくつかの特殊な状況でシーケンサーが正しい初期マテリアル パラメータ値をキャッシュしないバグを修正します
-
おかしい並べ替えの問題を防ぐ安定したソート シーケンサー アウトライナーの子
-
0 で始まらないレプリケートされたシーケンスのバグを解決するために、クライアント側での初期化で直近の既知の位置のみを設定します。
-
レベル シーケンス アクタのティアダウン中のクラッシュに対する推測に基づく修正。
-
無効な動的バインディング リゾルバをエディタでより寛大に扱います
-
シーケンサー - FGuid で並べ替えられたスポーン可能なもの、所有可能なもの、ObjectBinding の配列を維持し、検索が必要な場面で BinarySearch を使用することにより、大規模シーケンスでのアイテムの検索のパフォーマンスを向上させます。(検索の) 改善のために、テストはこれらの配列での追加と検索のときに行われていました。追加の負荷は少し高くなりますが、大部分のユース ケースで問題なく行えます。改善は、一括操作機能を追加して一括で追加する必要がある場合に見られることがありました。
-
シーケンスが停止してクライアントが後からレベルに参加するときはシーケンスの更新を実行しません。
-
シーケンサー:シーケンサーが開いていると Ctrl+B でアセットがブラウズされない問題を修正しました。
-
シーケンサー:整数チャンネルに評価を追加します
-
シーケンサー:NLA:ブレンド オプションで機能しない次との一致を修正します。
-
シーケンサー:コントロール リグ:チャンネルを変更するときに、不正確さにつながる可能性がある空間の切り替えによる自動補正を削除します。
-
シーケンサー:キャッシュされたデータを無効化するときに UMG ウィジェット ディレクター インスタンスのキャッシュをクリアします。
-
テンプレート シーケンスに FBX のインポート/エクスポート メニューのエントリを再追加します
-
ループしているサブセクションの分割/トリミングを修正します
-
目的のカメラ カット ビュー ターゲットが現在のターゲットと同じであるかどうかをチェックする前にそのターゲットを解決します。これにより、ゲームプレイに再びブレンドするときに発生するいくつかのバグが修正されます。
-
カメラ カット トラックの誤った/未解決のカメラ バインディングをより適切に処理します
-
アニメーション:すでに再生中のものがある場合は再生中のモンタージュを戻します。これにより、シーケンサーの開始時にモンタージュが再生されていると、シーケンサーの終了時にそのモンタージュに戻らないバグが修正されます。
-
シーケンサー:[Import from Animation Root (アニメーション ルートからインポート)] で現在のシーケンス時間に関連するキーがインポートされるようになりました。
-
このロジックを PostInitProperties から PostLoad に移動することにより、無効なバインディングのクリーンアップを修正しました
-
ムービー レンダリング キュー:MoviePipeline.h が MoviePipelinePIEExecutor に (常に未初期化を返す) 基本実装を呼び出させる GetPipelineState をシャドウイングしていた問題を修正しました。
-
シーケンサー:ブループリントを閉じるときにダーティとマークされるシーケンスを修正しました。
-
シーケンサー:コンポーネントのプロパティを複数回含められるように [Exclude Default Property Tracks (デフォルトのプロパティ トラックを除外)] 配列を修正します。CameraComponent.FocusSettings.ManualFocusDistance、CameraComponent.CurrentAperture。
-
レベル エディタ セクションを同期する前の Null チェック。
-
シーケンサー:スポーンされたオブジェクトを破壊するときにダーティとマークされるシーケンスを修正しました。
-
シーケンサー:設定されていることを確認するための再評価を行わなくて済むようにシーケンスの境界を越えて補正する場合に削除されるコンストレイント。
-
シーケンサー:使用中に破壊される階層イージング チャンネルを修正しました
-
Take Recorder:アニメーション サブディレクトリで無効なキャラクターを使用したときに発生するクラッシュを修正しました
-
動的バインディングで誤って解決されたオブジェクトをより適切に処理します
-
シーケンサー:サーバー専用またはクライアント専用サブセクションがあるシーケンスが、TargetType.Game を使用するサーバーとクライアントの両方に対して実行可能な単一のターゲットで正しく動作しないエッジ ケースを修正します。そのようなケースでは、サーバー専用のサブセクションとクライアント専用のサブセクションの両方が含まれたままでした。この修正の目的は、サーバー専用またはクライアント専用のサブセクションを含むシーケンスがターゲットなどに対してコンパイルされるタイミングを検出し、シーケンスを変動性ありとマークしてそれらの状況で強制的に再コンパイルされるようにすることにあります。
-
bOverrideAspectRatioAxisConstraint を正しく初期化します。
-
シーケンサー:スナップ:コンストレイント:スタティックメッシュをスナップ/補正するときにオイラー フィルタを実行します
-
シーケンサー:アニメーションをコントロール リグにベイク/ロードするときに使用されないデフォルトの補間を修正します。
-
シーケンサー:スケール トランスフォームによって符号が (正から負に) 変更されるときのレンダリングを修正しました。
-
スポーン可能なカメラがコントロールの最後であるときに設定されないカメラ カット フラグを修正します
-
シーケンサー:正しくない値で誤って設定される文字列配列プロパティ値を修正しました。
-
シーケンサー:ペイロード変数から正しく取り込まれないソフト オブジェクト パス BP ノードを修正しました
-
シーケンサー:レプリケートされたシーケンス自体がグローバル時間拡張をアニメートしているときに発生する、そのシーケンスとの同期の問題を修正します。レイテンシーを計算するときのコードがアカウントの有効な時間拡張を考慮していませんでした。
-
PR #10925:直近にアニメーションが停止されるとアニメーションを再生しなかった UserWidget の PlayAnimationForward と PlayAnimationReverse を修正しました。#contrib 10925
-
カーブ エディタ:ペーストは選択されたカーブに対してのみ実行される必要があります (何も選択されていない場合は、ペースト先のカーブを導出します)。カーソルが乗せられたカーブへのペーストが行われてはなりません
-
レプリケートされた再生同期で再生レートを処理します
-
シーケンサー:ブループリントに表示されない原因となっていた、ExportFBXParam の不足している EditAnywhere タグを追加しました
-
シーケンサー:コントロール リグ:回転順序のフォールアウトからのキー設定ローテータ コントロールを修正します
-
新しいトラック インスタンス入力で事前にアニメートされたステートの追跡を開始してから、古いトラック インスタンス入力での追跡を停止します
-
シーケンサーの音声クロックがフレーム間で補間されるようになったため、アニメーションがスムーズになりました。
-
シーケンサー:シーケンサーにないスマート自動ホットキー
-
シーケンサー:非表示になることがある機能であり、異なるタイミングでキーにカーソルを合わせてキーをコピーするときに混乱を招くため、コピー相対オプションを削除します
-
コンストラクション スクリプトの再実行がすべての基本ブループリント クラスで尊重されるようになりました
-
プレイヤーが撃破されたときにリセットされない登録済みのティック間隔を修正しました
-
カーブ エディタ:シーケンサーでカメラ ロック コマンドを切り替えるショートカットを追加しました
-
アウトライナーとトラックビューの高さの不一致が原因となり、マテリアルのカラー プロパティ トラックでキー エリアのカリングが引き起こされていたレンダリングの問題を修正します。
-
シーケンサー:(フォーカス変更時ではなく) 入ったときにのみ適用されるように数字編集を変更しました。
-
シーケンサー:アニメーションの詳細を修正し、デフォルトにリセットして vector3d で #changelist validated #virtualized を稼働させます
-
PR #10839:テンプレート シーケンスで消えていくルート モーションを修正しました#contrib 10839
-
カーブ エディタ:アラビア語のミラーリングされたテキストを修正しました。
-
シーケンサー:セクションのサイズを変更したときのセクションの開始/終了ポイントへのスナップを修正しました。
-
カーブ エディタ:カーブを変更したときに引き継がれるカーブ名を修正しました。
-
ローカル プレイヤーがいなければ、アスペクト比軸コンストレイントをキャッシュしません
-
シーケンサー:早期アウト時にも最後のビュー ターゲットの設定が行われるようにします。これにより、シーケンス 1 が再生されてカメラ 1 にカットするとともに、シーケンス 2 が再生されて同じようにカメラ 2 にカットすると、シーケンスの再生が完了するときにシーケンス 2 が適切に復元される問題が修正されます。
-
カーブ エディタ:カーブ フレーミングが修正され、常にすべてのカーブ ポイント値をフレーミングするようになりました。
-
カメラ カットを整えるときに完全にオーバーラップしているセクションを処理します
-
再インポートのときにカメラの揺れインスタンスを維持します
-
ループしているサブセクションの表示を修正します
-
シーケンサー:サブシーケンス セクションでシーケンスを変更したときに更新されない UI を修正するために SetSequence に Modify() を追加しました。
-
シーケンサー:コントロール リグ:ゲーム スレッド #changelist validated #virtualized でのみ再構築を行います
-
シーケンサー:セクションのテキストに不足しているドロップ シャドウを追加し直しました。
-
クライアントがオブザーバー情報を使用してシーケンスを再生すべきかどうかを判断するのに間に合うようにレプリケートされないことがある、オブザーバー情報に関連するネットワーキングのバグを解決するためにシーケンス オブザーバーをクエリする方法を変更します。
-
ゲームプレイに再びブレンドするエディタ プレビューを修正します
-
カーブ エディタ:FFT フィルタの BakeInterval を修正しました。
-
オブジェクトを探すときにバインディングを無効にしません
-
カーブ エディタ:ゲッター関数ではなくティックでコンテナをリフレッシュすることにより、パフォーマンスの問題を修正します。
-
コンストレイント:ウイーク ポインターを使用してコンストレイント サブシステムでワールドを保持します
-
シーケンサー:[Step to Next/Previous Mark (次の/前のマークにステップ)] が次の/前のグローバルにマークされているフレームにもステップするようになりました。
-
シーケンサー:テイクを切り替えるかショットを複製したときに引き継がれない色合いを修正しました。
-
シーケンサー:現在の時間がすでにリクエストされた時間である場合は、SetCurrentTime と SetCurrentLocalTime で評価を強制する必要があります。ユーザーはおそらく評価が行われることを期待します。
-
Take Recorder:アニメーション設定からのアニメーション トラック名の設定を修正しました。
-
シーケンサー:サブシーケンスをトリミング/分割するときにゼロでない再生開始時間を考慮します。
-
シーケンサー:スナッパー:形状のないコントロールをスナップ オブジェクトとして含めません。
-
シーケンサー:ミュート/無効にされたトラックのキー設定を許可しません。
-
シーケンサー スクリプティング:取得/設定ビューと倍精度に対する動作範囲に変更します
-
以前のビュー ターゲットが有効でなくなっていてもカメラ カット ビュー ターゲットを復元します。
-
シーケンサー:サブシーケンス範囲がある場合は、再生範囲ではなくそれにクランプします。ユーザーは、再生範囲外ではなくショットの境界にスクラブをクランプできるようにしたいと考えています。
-
シーケンサー:トラックを追加したときに誤って並べ替えられるトラック/バインディングを修正しました。
-
作成の直後に誤った更新を実行する、レプリケートされたシーケンスのまれな問題の修正
-
オブジェクトが置き換えられるときにプロパティ インスタンス化システムでバウンド オブジェクト ポインタを修復します
-
レプリケートされたシーケンス再生のいくつかの問題を修正します
-
シーケンサー:シーケンサーがないためにオブジェクトで機能しない Tween ツール。
-
カーブ エディタは、既存のカーブ キーを維持するために隣接するキー (カーブ時間の前か次のキー) に基づいて新しいキー属性を設定します
-
シーケンサー:ランタイム中にバインディングのオーバーライドを使用するときに、バインディングによって配列の変更がオーバーライドされると発生するクラッシュを修正しました。
-
ムービー レンダリング キュー:プロジェクトでプロパティ バインディングが無効になっているときにブループリントの警告を作成する、可視性バインディングを使用するムービー パイプラインのインゲームのオーバーレイを修正しました。
-
シーケンサー:アンドゥ時に自動的に並べ替えられるノードを修正しました。
-
シーケンサー:ムービー シーン イベント UObject ペイロード パラメータで UObject への参照が適切に作成されていなかったため、それらの UObject の名前を変更するとリダイレクタが作成されず、参照が失われる問題を修正します。
-
シーケンサーが開いているときにユーザー ウィジェットを再コンパイルする際に発生するクラッシュを修正します
-
シーケンサー:ゲームモードを再生してもギズモ (エディタのリグレッションのために実行) に戻りません。ゲームモードをオフにして手動でウィジェットをオンにする必要があります。
非推奨:
-
シーケンサー:bRestoreState が非推奨になり、FinishCompletionStateOverride に置き換わりました。[Restore State (状態を復元)] を参照するブループリントは、FinishCompletionStateOverride を追加して手動で修正する必要があります。
-
Take Recorder:マルチキャスト デリゲートを実施するために、事前初期化、開始済み、停止済み、終了、キャンセル済み、MarkedFrameAdded を変更しました。マルチキャスト デリゲートが置き換えるデリゲートは非推奨です
-
シーケンサー:マークされているフレームのコマンドに対する引数として Time Unit を追加しました。次の既存の関数は非推奨です。GetMarkedFrames、AddMarkedFrame、SetMarkedFrame、FindMarkedFrameByFrameNumber、FindNextMarkedFrame。古い関数の表示名を持つ新しい関数を追加しました。GetMarkedFramesInSequence、AddMarkedFrameToSequence、SetMarkedFrameInSequence、FindMarkedFrameByFrameNumberInSequence、FindNextMarkedFrameInSequence
-
シーケンサー:ブループリントで利用可能と誤ってマークされていた ULevelSequenceEditorSubsystem を修正しました。
-
シーケンサー:Get/SetCurrentTime と Get/SetCurrentLocalTime は非推奨となり、Get/SetGlobalPosition と Get/SetLocalPosition が使用されるようになります。これにより、単位をフレーム、秒、マークまたはタイムコードで指定できます。
-
シーケンサー:SequenceTimeUnit は非推奨になり、MovieSceneTimeUnit として MovieScene モジュールに移動しました。
-
シーケンサー:LevelSequenceActor の SequencePlayer は非推奨です。GetSequencePlayer() からアクセスできるようになりました。#noqatesting
合成
新機能:
-
[MLDeformer] PIE デバッグのサポート、および外部モーフィング ターゲットの巻き戻しデバッガのための統合を追加しました。ML デフォーマー アセット エディタを PIE セッション内でキャラクターに接続できるようになりました。
-
[MLDeformer] LOD の適切なサポートを追加し、品質レベル設定を置き換えます。スケルタルメッシュ LOD レベルごとに ML デフォーマーが適用されるようになりました。スケルタルメッシュ LOD よりも低い数値の ML デフォーマー LOD レベルも設定できます。
-
[MLDeformer] トレーニング入力として複数のアニメーションへのサポートを追加します。
-
[MLDeformer] フレームワークとニューラル モーフィング モデルをベータ版から実際の制作に使用できる段階に変更しました。
-
[MLDeformer] ML デフォーマー エディタ内で ML デフォーマー モデルを並べて比較する機能のサポートを追加しました。MLD アセットの比較を機能させるには、同じスケルタルメッシュでトレーニングを行う必要があります。ただし、異なるタイプの ML デフォーマー モデルを使用できます。また、コンテンツ ブラウザ内での MLD アセットの詳細検索に対するサポートを追加しました。たとえば、未トレーニングの MLD アセット、または特定の入力アニメーションやプロパティ値を含むアセットを検索することができます。すべての検索可能なプロパティは、「MLDeformer.」のプレフィックスで始まります。
-
[GeomCache] 特定のフレームで直接サンプリングするために、いくつかの仮想メソッドがトラックに追加されました (サンプル インデックス)。
-
[MLDeformer] ニューラル モーフィング モデルにおける出力モーフィング ウェイトのクランプへのサポートを追加します。アンシーン ポーズ上でデフォーマーを実行する際に、極端な変形が発生しないようにするための追加の安全機能です。
-
[MLDeformer] ニューラル モーフィング モデルのボーン マスク生成を改善します。
-
[MLDeformer] ジオメトリ キャッシュとアニメーション シーケンスの持続時間の不一致に関する警告のフレーム数を表示します。
-
[MLDeformer] ML デフォーマー コンポーネント内のバインディングの処理をさらに改善します。また、LOD を追加してから使用されなくなったため、ML デフォーマー コンポーネントから品質レベルを削除しました。
-
Physics Control コンポーネントでワールド空間コントロールの親を指定する機能が追加されました
バグ修正:
-
[MLDeformer] 新しく作成されたアセットを保存しただけの状態でも、再度開いた後にダーティとマークされたままになる問題を修正しました。
-
[MLDeformer] 特定のケースで [Undo (アンドゥ)] を押したときに発生するクラッシュを修正します。
-
[MLDeformer] スケルタルメッシュを再インポートするときに発生する再インポートの問題を修正します。
-
[MLDeformer] ML Deformer model プラグインが含まれない ML Deformer Framework プラグインを有効にして、新しい ML デフォーマー アセットを作成するときに発生するクラッシュを修正しました。
-
[MLDeformer] デリゲート バインディングの処理を改善しました。これにより、クラッシュを回避します。
-
[MLDeformer] キャラクター ブループリントをそれが含まれる頂点デルタ モデルを使用して作成し、コンピュート グラフ コンポーネントを作成した後、レベルを保存する際に発生するクラッシュを修正します。
-
[MLDeformer] VertexDeltaModel ベースの ML デフォーマーを内部に含むブループリントでプロジェクトをパッケージ化する際に発生するクラッシュを修正しました。
-
[MLDeformer] NMM と NN を切り替えるとき、および NMM モデルに戻すときに発生するクラッシュを修正しました。
-
[MLDeformer] UI でのメモリ使用量が極端に膨大であると報告されたバグを修正します。また、メモリとアセット サイズを切り離すことでメモリ使用量を直接改善しました。
-
[MLDeformer] 新しい ML デフォーマー アセットを作成し、最近接モデルに切り替えるときに発生するクラッシュ ブロッカー バグを修正しました。#トリビアル
-
[MLDeformer] UI で入力アニメーション配列をクリアするとき、およびキャラクターを切り替えるときに発生するクラッシュを修正します。
-
[MLDeformer] 不正確なサンプリングを修正します。サンプリングが不正確な場合、特定のフレームでデルタが大きくなることがあります。また、小規模な並列最適化によりサンプラが少し速くなります。
-
[MLDeformer] アニメーションの長さが同じであるかどうかを検出するときに行う微調整。- 頂点デルタ モデルのトレーニングを修正します。API は変更されましたが Python スクリプトがまだ更新されていなかったため、[Train (トレーニング)] をクリックしたときに失敗していました。- ニューラル ネットワークを保存していなかった VertexDeltaModel のバグを修正しました。- VertexDeltaModel がテンソルから誤ったサイズを抽出していたバグを修正しました。
エディタ
API の変更:
- 引き続き、小さい黒のテクスチャがハードウェアにエンコードおよびアップロードされます。
新機能:
-
Unreal Editor の新しい「アセット ディスク サイズ」ツール ([Tools (ツール)] | [Audit (監査)] > [Asset Disk Size (アセット ディスク サイズ)]) では、クックから AssetRegistry.bin ファイルと .ucookmeta ファイルをロードできます。また、アセットとプラグインの依存関係、およびディスク サイズにおけるそれらのコストを調査するためのさまざまな解析オプションが提供されます。このツールでは次のような質問ができます。「ゲームに別のアセットを追加する場合のディスク容量の限界コストはいくつですか」、「このアセットと (他のアセットでも使用されていない) 依存するアセットを削除することで、どれくらいディスク容量を抑えることができますか」。
-
エディタおよび変換内に角スピード単位 (度/秒、ラジアン/秒) の表示を追加しました
-
DDS ファイルにエクスポートするテクスチャ RenderTarget は、キューブ、ボリューム、すべてのピクセル形式をサポートします。
-
エディタ内のアセット レジストリ データのロードを最適化しました。大規模なプロジェクトで初期アセットのスキャンが大幅に速くなるはずです
-
[Message Log (メッセージ ログ)] ウィンドウのカテゴリがアルファベット順にソートされました
-
出力ログのコンソールに手動のオートコンプリート コマンドのサポートを追加します
-
プレビューがクラッシュした場合、r.Editor.NeverStartInPreviewMode というプレビューを無効化するプラットフォームを自動的に追加します
- クック中にコンテンツ検証をオプションで実行する機能を追加しました
- 次のフラグはクック コマンドレットを実行するときに渡すことができます。 -RunAssetValidation。クック中にロードされたアセットでアセット検証 (EditorValidatorSubsystem) を実行します。 -RunMapValidation。クック中にロードされたマップでマップ検証 (MapCheck) を実行します。* -ValidationErrorsAreFatal。(RunAssetValidation または RunMapValidation からの) 検証エラーを致命的なエラーとみなします (パッケージがクックされるのを防ぎます)。
- -ValidationErrorsAreFatal なしで実行すると、すべての検証エラーが警告に格下げされ、ログ エラーや 0 以外のリターン コードを探す機能によってエラーがクックの失敗としてみなされないことが確認できます。また、「Cook.AllowContentValidation」CVar によって、フラグが渡された場合でも検証を実行できるかどうかが制御されます。
- これらのフラグ (特に -RunAssetValidation) は、EditorValidatorSubsystem で以前の (破損した) bValidateAssetsWhileSavingForCook オプションを置き換えます。
- スプライン コンポーネントに新しいコンテキスト メニュー オプションが追加されました。
- Closed Loop - Closed Loop プロパティをすばやく切り替えます StraightenToNext - 選択されたポイントの接線をすばやくリセットし、次のスプライン ポイントに向かって直接整列します StraightenToPrevious - 選択されたポイントの接線をすばやくリセットし、前のスプライン ポイントに向かって直接整列します ToggleSnapTangentAdjustments - スナップまたは整列のアクションを実行するときに接線をリセットする動作を切り替えます
-
エンジン (追加アイテムのマップおよび設定):マップを持ち、常にデフォルト値を実行するのではなく次に利用可能な列挙値が入力されるように設定する方法を実装します。-- Code -- PropertyHandleImpl: FPropertyHandleMap::AddItem() - HasKey() lambda を追加しました。次に、マップ プロパティのキーが列挙型プロパティであるかどうかを確認します。列挙型プロパティの場合は、列挙値をループしてマップにすでにその列挙値がキーとして含まれていないかどうか確認します。マップに存在しない列挙値が見つかった場合は、子ノードを追加して子のキー ノードをマップにまだ存在していない列挙値として設定します。マップ プロパティのキーが列挙型ではない場合は、以前の確認方法を実行してデフォルト キーが存在するかどうかを確認します。FPropertyHandleSet::AddItem() - HasElement() lambda を追加しました。次に、設定プロパティの要素が列挙型プロパティであるかどうかを確認します。列挙型プロパティの場合は、列挙値をループして設定にすでにその列挙値が要素として含まれていないかどうか確認します。設定に存在しない列挙値が見つかった場合は、子ノードを追加して子ノードを設定にまだ存在していない列挙値として設定します。設定プロパティの要素が列挙型ではない場合は、以前の確認方法を実行してデフォルト キーが存在するかどうかを確認します。UnrealTypes: FSetProperty::GetElementProperty() - ElementProp プロパティを戻すためにこのゲッターを追加しました。
-
プロパティ バインディング:ウィジェットに MaxDepth パラメータを追加します。これにより、システムで検出できるプロパティの最大深度をカスタマイズできます
-
関連する警告/エラーを [Texture Editor (テクスチャ エディタ)] ウィンドウにコピーして、見落とさないようにします。
-
エディタのスプラッシュ画面にモジュールのロード進捗状況が表示されるようになりました
-
検索可能なコンボ ボックスに対するトークン化された検索サポートを追加します
-
エディタ内のダイアログで使用されるアイコンを制御するために FMessageDialog で使用できるカテゴリ タイプを追加しました。
-
Imath:Imath をバージョン 3.1.9 にアップグレードします
-
特定のアクタでアセット検証を実行するコンテキスト メニュー エントリを追加しました
- コンテンツ ブラウザのファイル データ ソースに基本的なソース管理サポートを追加しました
- 基本的な操作 (追加、削除、移動、名前変更) およびリビジョン コントロール ファイル メニュー (同期、元に戻す、チェックイン、履歴、差分を許可する) を十分サポートできます。
-
SCC:調整する書き込み可能なアセットが存在しない管理外チェンジリストを修正します
-
エディタ | グローバル ステータス バーの要素 ([Content Browser (コンテンツ ブラウザ)] ボタンおよび [Output Log (出力ログ)] ボタン) を拡張するメカニズムを追加します
-
別のアセットでは使用されないアセットのみを表示するコンテンツ ブラウザ フィルタを追加しました。
-
[Status Bar Output Log (ステータス バーの出力ログ)] がクリアされているときにリッスンできるようにします
-
stb_image_resize2 を使用する高品質で高速のサイズ変更機能を備えた ImageCore::ResizeImage を追加します。従来の「ResizeTo」は非推奨になります。
-
テクスチャ RenderTarget はスタティック テクスチャを作成してテクスチャを更新し、すべてのピクセル形式で機能するようになりました。新しい GetRenderTargetImage API を使用します。
-
シーン アウトライナー:フォルダを展開する代わりにダブルクリックして現在のフォルダとしてマークするオプションを追加します
-
UnrealPak は CookMetadata ファイルを使用して、プラグインのサイズ情報をオプションで書き出すようになりました。この情報はクック メタデータ ファイルに書き戻され、プロジェクトのパッケージング設定を通じて有効になります。
- FCoreDelegates::OnCommandletPreMain と FCoreDelegates::OnCommandletPostMain を追加しました
- この追加によってフックインされ、実行される可能性のあるコマンドレットの追加の初期化やシャットダウン ロジックが提供されます。
- FCoreDelegates::OnCommandletPreMain は FCoreDelegates::OnFEngineLoopInitComplete (コマンドレットに対して実行されない) と似ています。
-
ビュー モディファイア パラメータにビューポート クライアントを追加して、登録者が変更されているビューポートを把握できるようにします
-
テクスチャ エディタには、表示されているテクスチャがゲーム出荷時に使用されなくなるタイミングが明確に示されるようになりました。
-
メモリを節約するために、アセット レジストリ内に (個々のディレクトリではなく) プラグインのルート ディレクトリ用のディレクトリ ウォッチャーを追加しました
-
名前変更から取り残された空のディレクトリを無視するために有効にできる AssetRegistry.IgnoreEmptyDirectories コンソール変数を追加しました。これにより、ロード時間に加えてアセット レジストリ スキャンのパフォーマンスを微調整する時間も改善します
-
コンテンツ ブラウザ内のテクスチャの右クリック メニューに新しいテクスチャ アセット アクションを追加します。これらのアクションは uasset に格納されているテクスチャ ソース データを変更できます。アクションには、高ビット深度の 8 ビットへの変更、ソースの JPEG 圧縮、しきい値サイズ以下へのサイズ変更、2 の累乗へのサイズ変更があります。
-
r.InstanceCulling.OcclusionCull に ECVF_Preview フラグを持たせます
-
ECVF_Preview に cvar r.Mobile.AntiAliasing を追加してプレビューを可能にします
-
新機能:コンテンツ ブラウザ内の選択したシーケンスから (1 つまたは複数の) アニメーション モディファイアを削除する (およびオプションで元に戻す) サポートを追加しました。
-
Face SkeletalMesh に含まれる MetaHuman DNAAsset にメタデータ マップを追加しました。
-
現在レベル エディタで選択されているアクタを持つ設定アクタ ピッカーをサポートします
-
GenerateStreamingInstallManifest - AllowPerChunkCompressionWildcard を追加して、pak ファイルが CompressedChunkWildcard を介した圧縮をオプトインまたはオプトアウトすることができるようにします。CopyBuildToStagingDirectory - bAllowPerChunkCompression を使用して bCompressed がグローバル圧縮設定をオーバーライドできるようにします。これにより、チャンクが圧縮を適切にオプトインまたはオプトアウトすることができるようにします。注:DDPI がハードウェア圧縮設定を「None」に指定する場合、オプトインするグローバル圧縮設定が存在しないため期待どおりに動作しません。
bForceUseProjectCompressionFormatIgnoreHardwareOverride=trueおよびbCompressed=Falseを [/Script/UnrealEd.ProjectPackagingSettings]で設定する場合は、チャンクがオプトインできるようにする任意のプロジェクト圧縮設定をセットアップします。 -
2D テクスチャが「CPU アクセス可能」としてマークできるようになりました。これにより、テクスチャが GPU で使用可能な状態から切り替えられ、CPU がテクスチャのソースの上位ミップにアクセスできるようになります。形式は変更されません。
-
OpenEXR:OpenEXR をバージョン 3.2.1 にアップグレードします
-
cvar、Mainframe.ShowRestoreAssetsPromptInPIE を追加して、-PIE があるときにアセット エディタを再度開くことができるようにします
-
シーン アウトライナーとチェンジリスト ウィンドウにおいて、エントリを自然な順序の名前でソートできるようになりました
- クック処理済みエディタ:クック処理済みプラグインのアセット レジストリの状態が、必要な開発タグの一部 (EditorClientAssetRegistry データにすでに存在する可能性がある) をアセットから削除する問題を修正しました。
バグ修正:
-
空文字列を含むオブジェクトをキーとしてシリアル化するときに発生する場合がある Json シリアル化コードでのクラッシュを修正しました。
-
プレビュー プラットフォーム メッセージは [Preview is Active (プレビューがアクティブです)] が表示されている場合のみ表示されます
-
テクスチャ エディタ内で開いたときにソース テクスチャが動的に黒くなる問題を修正します。
-
SCS エディタ ビューポート クライアントの ProcessClick の動作が、レベル エディタのビューポートと同じ順序で ComponentVisManager を処理できるようにします。これにより、エディタにカスタム ツールと拡張機能を簡単に追加できます。オプションの一貫性を向上するために、レベル エディタと同じ順序で評価される右クリック動作になります。
-
テクスチャの編集、またはテクスチャ ビルド中の ddc キーの変更に関連するさまざまなクラッシュを修正しました。
- メイン フレームを閉じた後 (および変更を破棄した後) に自動保存された復元ファイルをクリアします
- シャットダウン中に保留している変更を廃棄することを選択した後にエディタがクラッシュした場合、自動保存の復元を確認するプロンプトが表示されるのを防ぎます
-
アクタを新しいワールドに移動 (コピー/ペースト) するときに、ソフトオブジェクトのアクタ参照が修正に失敗するのを修正しました
-
環境ライト ミキサー:親の行が表示されているときに SecondFogData の内部プロパティを公開します
-
エディタ内で raw メモリ アドレスが一時的なマップに対して再利用されたかどうかを誤って確認する古いコードを削除しました
-
新たにビルドされたテクスチャにおいてテクスチャ エディタ ビューアにエンコード速度が表示されない問題を修正します。
-
多数の多様なクック メタデータを修正します
-
FConsoleVariablesEditorModule のクラッシュを修正します
-
エディタ内でアセット マネージャーのプロジェクト設定を変更するときに Game Feature プラグインがブレークされる複数のバグを修正します
-
クック処理済みエディタ内で安全に使用できるようにオブジェクトの Paper2D に再インポート機能を搭載しました。また、SourceTexture メタ データが見つからない場合にクラッシュしないようにして既存のコードをより強固にしました。
-
正しい機能レベルを使用しないシームレスな移動を修正します
-
オブジェクトの反映データに一時的なプロパティがまだ存在しないときにアンドゥ履歴がクラッシュする問題を修正します
-
コンテンツ ブラウザのパスのフィルタ設定がインスタンスごとに正しく保持されるようになりました。
-
子がまだ追加されていないときに PropertyHandleRotator がクラッシュする問題を修正します
-
OverrideSP が正しいコマンド ラインで機能するように修正します
-
アセット定義の API の問題を修正しました。GetSourceFiles 関数ではアセットの実装の詳細と関係しない方法でソース ファイル パスを解決できませんでした。この修正により、再インポート中にエディタでソース ファイルが見つからない問題を修正したり、コンテンツ ブラウザ経由でソース ファイルに簡単に移動したりできます。
-
シェーダー インスタンスが追加される前に以前に開いたシェーダー コード タブを復元しようとするとマテリアル エディタがクラッシュする問題を修正しました
-
テクスチャ ビルド メタデータを削除しています。
-
Select All Actor of Class:フル クラス パスを使用して曖昧な結果を回避します
-
pow2 以外のボリューム テクスチャのミップ数の計算における入力ミスを修正します。
-
アクタへトランスフォームするデルタのレベル エディタのコンテキスト メニューにおけるクラッシュを修正します
-
不均等な BuildScale によってメッシュの接線が誤ってスケーリングされる問題を修正しました。以前のバージョンでは、スタティックメッシュ アセットの「bUseLegacyTangentScaling」フラグで誤った動作が継続してサポートされているためご注意ください。また、すでにインポートされているアセットでは、既存のメッシュが変更されるのを防ぐために以前の動作がデフォルトで使用されます。
-
テクスチャ エディタ ビューアおよびサムネイル内のテクスチャのガンマ補正を表示することで多数のバグを修正しました。副次的エフェクトの 1 つとして、法線マップにリニア ガンマが表示されるようになり、ダーク ブルーではなくライト ブルーが表示されます。
-
プロパティ エディタ - PropertyPermissionList を使用して数分間のエディタ起動時間を節約する際のパフォーマンスを最適化しました。
-
Mac プラットフォームでエディタ内のメディア プレーヤー アセットを使用する際のビデオとオーディオのキャプチャを再度有効にします。
-
不正確なポインタ計算によって vtables が存在しない原因で PropertyPathHelpers がクラッシュする問題を修正します
-
ComponentTypeRegistry が ActorComponent ブループリント クラスのアンロードをブロックする問題を修正しました
-
奇数次元のため圧縮タイプ UserInterface2D (EditorIcon) を使用する TSF_G8 に格納されたグレースケール テクスチャが、誤って R8 と出力することによりグレーではなく赤で表示されるバグを修正します。
-
アセット レジストリのスキャンが終了する前に Play In Editor を開始すると、完了コールバックをリッスンする Data Registries などのアセットが壊れる可能性があるバグを修正しました
-
Editor SP でサポートされていない場合、Preview SP の 16Bit VALU を許可しません
-
Select All Actor Children がトランザクションの一部ではなかった問題を修正します
-
Game Feature Data UI がプラグインの範囲外に作成された場合に、クラッシュするのではなくエラーが表示されるように修正します
-
モバイル プレビューの UnlitViewMode を修正します
- エディタ:PIE の開始時および選択項目のクリア時のバグを修正しました。これにより、破棄されたスポーン可能な選択項目のクリアを試みます。
非推奨:
-
ステージ後のアセット レジストリ ライトバックは非推奨です。情報を必要とする多くのことを実行しているためステージ後には実行しません。圧縮されたパッケージ サイズが必要な場合は、ステージ中にアセット レジストリ ライトバックを使用します。
-
サポートや保守が終了したため AR Point Cloud プラグインを削除しています。
コンテンツ パイプライン
新機能:
-
USD プリミティブ タイプの新しいトランスレータ (Cube や Cylinder など) を追加しました。生成されたメッシュは usdview と同じポイントとトポロジをできる限り使用します。
-
USD Stage Editor ウィンドウの下部パネルでセッション レイヤーとそのサブレイヤーを右クリックして分離できるようになりました。
-
OpenUSD:OpenUSD のバージョンを v23.11 にアップグレードします
-
Alembic:Alembic のバージョンを 1.8.6 にアップグレードします
-
save/export/open/reference/payload ダイアログにリストされている USD ファイル形式に関する多くの問題を修正しました。
-
USD ステージをインポートしたり、開いたり、エクスポートしたりする際のネスティングされているスケルタル データ (ネスティングされている SkeletalMeshComponents やネスティングされている SkelRoots など) の処理を改善します。
-
USD へのトランスフォームをエクスポートする際のスケルタル アタッチ ソケットの処理に対するサポートを追加しました。
-
USD PointInstancer プリミティブ用に生成された HierarchicalInstancedStaticMeshComponents にマテリアル オーバーライドを設定すると、他のコンポーネント タイプと同様に、対応する割り当てが USD Stage に書き出されます。
-
「USD Stage」ウィンドウの名前が「USD Stage Editor」に変更されました。また、[Windows] メニューのトップ レベルにある [Windows] -> [Virtual Production (バーチャル プロダクション)] メニューから移動されました。
-
USDImporter:OpenUSD に含まれている Mac The usdMtlx プラグインの usdMtlx プラグインへのサポートを追加します。OpenUSD は MaterialX ドキュメントを読み取って UsdShade シェーディング ネットワークに変換するためにファイル形式プラグインを追加します。このプラグインは Windows と Linux ではすでにサポートされており、Mac のプラグインへのサポートが追加されます。
-
生成されたアセットの AssetUserData でソートすることにより、USD との間でやりとりするプリミティブ メタデータのインポートとエクスポートに対するサポートを追加しました。
-
UsdGeomModelAPI スキーマで記述されるとおりの代替 USD 描画モードに対するいくつかのサポートを追加しました。これには、バウンディング ボックス、カード、一部のプロパティのアニメーションも含まれます。
-
新しい UsdStageActor プロパティと「bReuseIdenticalAssets」という USD インポート オプションが追加されました。これにより、USD ステージを開いたりインポートしたりするときに、生成された Unreal アセットをハッシュで共有するメカニズムを無効にすることができます。
-
USD ステージを開いたりインポートしたりする際の複数のルート ボーンを持つ USD スケルトン プリミティブの処理に対するサポートを追加しました。
-
PCG グラフの出力アクタとコンポーネントの USD へのエクスポートに対するサポートを追加しました。
-
OpenSubdiv および pxOsd を介した USD メッシュの分割に対するサポートを追加しました。
-
OpenSubdiv:OpenSubdiv のバージョンを 3.5.0 にアップグレードします
-
USD Stage Editor ウィンドウのセッション レイヤーを分離できるようになりました。
-
USD コリジョン API に対するサポートを追加しました。UsdPhysicsCollisionAPI スキーマはメッシュ プリミティブに適用される必要があり、コライダーとして有効になります。一方、UsdPhysicsMeshCollisionAPI は使用するコリジョンの近似値の形状を指定するために適用できます。
-
スタティックの質と Nanite メッシュの構築を制御するために USD.StaticMesh.BuildSettings と USD.Nanite.Settings の下に cvars を追加しました。
-
USD ステージによって Unreal SparseVolumeTextures として参照される OpenVDB テクスチャの解析に対するサポートを追加しました。
-
USDImporter:USD API で FSdfLayer ラッパーのサブレイヤー操作 API を調整します。サブレイヤーを作成および挿入するための UsdUtils のユーティリティ関数は、ルート プリミティブやデフォルト プリミティブの作成のような望ましい追加作業を実行するとは限りません。そのため、USD API からサブレイヤー操作関数をラップすることで、サブレイヤーのパスに直接アクセスして編集することができます。
-
ジオメトリ キャッシュを USD にエクスポートできるようになりました。
-
スタティックメッシュおよびスケルタルメッシュを USD にエクスポートする際、「unreal」レンダー コンテキストを持つ完全な USD マテリアル プリミティブを使用したマテリアル バインディングをオーサリングするため、以前の「unrealMaterial」プリミティブ属性が発行されなくなりました。プリミティブに「unrealMaterial」の文字列属性を使用することは完全に非推奨となりました。
- UsdStageActors に「StageState」プロパティを実装し、現在開いているステージが閉じているか、開いているか、あるいは開いてロードされているか (アセットやコンポーネントが生成されている) を制御できるようにしました。
- このプロパティを使用すると、外部の LevelSequences にバインドして、ステージをロードするタイミングを簡単に制御したり、USD ステージ エディタを通じて、アセットやコンポーネントを完全にロードせずに、USD ステージを素早く開いたりすることができます。
-
USDImporter:UE ラッパーで UsdPrim の型名に関連する関数を公開する SetTypeName()、ClearTypeName()、HasAuthoredTypeName() が追加されました。
- USD Stage Editor 上でプリミティブを右クリックすると、メニューの下に新しいオプションがいくつか表示され、任意の API スキーマを追加または削除したり、一般的な API スキーマを簡単に追加したりできるようになりました。
バグ修正:
-
スタティックメッシュおよびスケルタルメッシュのアセットを USD にエクスポートする際、メッシュのマテリアル割り当てがアセットハッシュに考慮されていなかったのを修正しました。
-
USD ステージ エディタの右側のパネルが更新されない場合があったのを修正しました。
-
USD ステージ エディタの [Prim Details (プリミティブ詳細)] パネルで、「kind」プリミティブ属性が二重に表示されていた問題を修正しました。
-
SkelRoot またはスケルトン上の LiveLinkAPI スキーマで USD ステージをインポートする際にクラッシュしていた問題を修正しました。
-
スケルタル アニメーションのない USD ステージで、USD スケルトンと SkelRoot プリミティブでコントロール リグを使用したときに、モーフィング ターゲット コントロールが生成されない問題を修正しました。
-
Alembic:スタティックメッシュとスケルタルメッシュのインポートで、一意でないマテリアル スロットが一緒にマージされるようになりました。「メッシュのマージ」設定に関係なく、一意の面セットが一意のマテリアル スロットに変換されるようになりました。
-
USD ステージからインポートされた LevelSequences によって、一部のシナリオでアクタとコンポーネントのバインディングが壊れる問題を修正しました。
-
アニメーションが非ローカル レイヤー (リファレンスやペイロードなど) から発生した場合、アニメートされた USD ステージ用に生成されたシーケンサー トラックが、キーを受け取らない問題を修正しました。
- Alembic:
- 可視性アニメーションを使用している場合、マテリアルがジオメトリ キャッシュに適切にマッピングされるようにしました。これで、メッシュ部分を隠してもマテリアルがずれることはなくなります。* ジオメトリキャッシュとスケルタルメッシュの Alembic インポートを中断できるようになりました。
-
USD ステージ内で設定された MaterialX 参照パスが無視される場合があった問題を修正しました。
-
Alembic:インポート変換プリセットの名前を変更しました。Max と Maya のトランスフォームが逆になったため、両者のプリセット名を入れ替えました。
-
無効な UV セット インデックスを持つ USD ステージを解析する際に、トリガーされる問題を修正しました。
-
アタッチメント トラックを持つ LevelSequences の USD へのエクスポートのサポートを修正しました。
-
UnrealUSDWrapper モジュールは、呼び出し元が明示的にロードする前に静的な関数のいずれかが呼び出された場合、自動的にロードされるようになりました。
-
USD ステージ エディタの [File (ファイル)] -> [Export All (すべてエクスポート)] オプションが新しいステージで動作していない問題を修正しました。
-
スケルトン プリミティブのボーン数が非常に多い USD SkelRoot プリミティブから生成されたメッシュに誤ったスケルタルメッシュ マテリアルが割り当てられていた問題を修正しました。
-
ブループリントとシーケンサーで g ルーム キャッシュの使用を改善しました。ブループリントを通じてグルーミング キャッシュを設定し、シーケンサーで複数のグルーミング キャッシュ トラックを追加および設定できるようになりました (同じアクタ上の複数のグルーミング コンポーネント用)。
-
USD デフォルト アセット キャッシュのダイアログに関するいくつかの UX 上の問題を修正しました。
-
USD SDK の無効なパスであるファイルパスに USD レイヤーをエクスポートするとクラッシュする問題を修正しました。
-
プロジェクト設定で参照マテリアル パスを変更し、ステージをリロードした後、USD から生成されたマテリアルが更新されなかった問題を修正しました。
-
USD Importer プラグインが有効なレンダリング データなしで StaticMesh アセットを生成するとクラッシュする問題を修正しました。
-
USD:ジオメトリキャッシュのメモリ使用量を、ステージを閉じるときに適切にアンロードすることで改善しました。
-
USD ステージ エディタのウィンドウの [File (ファイル)] -> [ExportAll (すべてをエクスポート)] オプションが、レイヤーをエンジンやバイナリにサイレントに出力する問題を修正しました。
-
Texture2DBuilder が mips を削除するのは不要です。ビルダー テクスチャが最終的なテクスチャとして再利用されるユース ケースでは、問題を引き起こします。
-
いくつかのシナリオで、USD から AnimSequence アセットを繰り返しインポートするとクラッシュする問題を修正しました。
-
永続的な StaticMesh アセットで UsdAssetCaches をクックしようとするとクラッシュする問題を修正しました。
-
USDImporter:UsdUtils::GetPointInstancerTransforms() のアロケータ管理スコープを修正しました
-
負のスケーリング (ミラーリングなど) を持つスケルトンを USD からインポートする際に奇妙なジョイント回転が発生する問題を修正しました。
-
ボーンを持たない USD スケルトン プリミティブからスケルタルメッシュを解析しようとするとクラッシュする問題を修正しました。
-
有効な UsdAssetCache を持たない UsdStageActor で [Actions (アクション)] -> [Import workflow (ワークフローをインポート)] を実行するとクラッシュする問題を修正しました。
-
USD からインポートしたアセットをすべてのプラットフォーム用にパッケージ化することができなかった問題を修正しました。
-
コンテンツのインポート中に、破損したファイル上でクラッシュすることがあった問題を修正しました。
-
USD ステージから Groom および GeometryCache アセットを解析する際にクラッシュする問題を修正しました。
-
USD ステージ アクタをレベル上にロードした状態で Unreal Engine を終了するとクラッシュする問題を修正しました。
- Play-In-Editor セッション中にプリミティブが変更されたとき、USD ステージ エディタが更新されなかった問題を修正しました。
Datasmith
バグ修正:
- Datasmith Scene アセットをダブルクリックしても、対応するエディタが開かない問題を修正しました。
フレームワーク
新機能:
-
SPropertyEditorClass と SPropertyEditorEditInline の MustImplement メタ タグの検証を導入しました。非インターフェース クラスが指定されるのを防ぎ、UInterface が指定されるのを防ぎます。
-
ユーザーが現在のストリームにマップされていないファイルを含む変更リストを送信しようとした場合、適切なエラー メッセージを返します。
-
コンテキスト メニュー/サブメニューのスレート ウィジェットにタグを付けられるようになりました
-
「シーン ビューポートのサイズ変更ログ」を詳細にすることで、ログ スパムを軽減しました。
-
メモリが OS に戻される際の遅延をわずかに増加させることにより、アロケーションの負荷が大きいときのエディタのパフォーマンスを改善しました。
-
ISourceControlProvider に新しい初期化パスを追加し、呼び出し元が初期化ロジックをカスタマイズしたり、初期化自体の詳細情報を取得したりできるようにしました。
-
コンテキスト ブラウザの [New Asset (新規アセット)] メニューのアイテムにタグ メタデータを追加しました
-
マテリアル エディタ:プリシェーダの統計情報を追加し、プリシェーダの表現式とパラメータ フェッチを人間が判読可能な形で HLSL ソースにダンプするようにしました。プリシェーダはマテリアル グラフから生成され、CPU 上で実行されるバイトコード表現式のことで、インバリアント作業を GPU からオフロードする役割を担います。プリシェーダをチェックすると、デバッグに役立ちます。
-
P4IGNORE があるために追加のマークをされなかったファイルを、情報ではなくエラーとして返します。
-
EditInline プロパティの MustImplement、AllowedClasses、DisallowedClasses フィルタリングをサポートするようになりました。
バグ修正:
-
FDataLayersBroadcast::OnObjectPostEditChange で CDO プロパティを確実に編集できるように修正しました。
-
現在の PIE セッションを終了するリクエストを処理する前に、エディタの PlayWorld コンテキストが有効であることを確認します。
-
プロパティ ハンドルにインスタンス メタデータが存在する場合、プロパティ クランプが考慮されない問題を修正しました
ランドスケープ
API の変更:
-
注:この API 変更は、コード側とデータ側の両方で後方互換性があります
-
FLandscapeEditorServices を削除しました。これは依存関係のインバージョンの観点から、設計上意味のないものでした。代わりに、ILandscapeEditorServices を実装するのは FLanscapeEditorModule です
新機能:
-
ランタイムの仮想テクスチャ ボリューム境界を計算する際、境界のアライン アクタがランドスケープの場合、その子ランドスケープのコンポーネントをすべて含めるようにしました。
-
ランドスケープ CVar 名の間違いを修正しました
-
水:ブループリントから川の変形マテリアルを設定する関数を公開しました。また、これらのマテリアルを設定するときに水のメッシュを更新して、新しい MID が確実に設定されるようにしました。
-
水:水ゾーンのブループリントから遠いメッシュのマテリアルを設定するメソッドを公開しました。
-
すでにサポートされているケースであるため、BP 関数の RenderHeightmap/Weightmap/s 関数が、transform ピンと extents ピンの接続を要求しないように修正しました。また、WeightmapScaleBias は HeightmapScaleBias と意味が異なるため、使用しない ことをコードで明示しました。これは、後で行われる FloorToInt32 によって補正されましたが、それでも、代わりに 0 バイアスを明示的に使用することで、今後の混乱を回避できるかもしれません (テクスチャの共有がないウェイトマップでは常に該当します)。
-
ランドスケープ エディタのアイコンを更新しました (BP ブラシは Heightmap/Weightmap/VisibilityLayer に影響します)。レイヤー機能に影響するランドスケープ エディタ BP ブラシのボタンをトグルボタンに変更しました。ランドスケープ エディタのターゲット リストの色、パディング、テキストの色を UE5 のスタイルに更新しました。
-
水:シリアル化した ExtentInTiles をクワッド ツリーから削除しました。ウォーター ゾーンのサイズに基づいて動的に再計算するようになったため、潜在的なミスマッチを防ぎ、ウォーターゾーンのサイズに関するいくつかの不明瞭な権限を取り除くことができました。
-
ランドスケープ ターゲット (ペイント) レイヤー名を取得する BP メソッドを追加しました
-
GrassTypes を LandscapeProxy から LandscapeComponent に移行します。LandscapeMaterialOverride を使用することで、プロキシとコンポーネントの間で異なる GrassTypes を使用できるようになります。
-
水:除外ボリュームの移動/変更時に水のコリジョンが更新されない問題を修正しました。- 除外ボリュームの設定名を使いやすくなるようにリファクタリングしました。- すべての水域を含む場合に、除外ボリュームから水域を削除できる新しいモードもサポートします。
-
標準ランドスケープの頂点モーフィング システムによって誘発されるシャドウ アーティファクトを隠すため、Nanite 以外のランドスケープ使用時に VSM ページを無効にするシステムを追加しました: 各ランドスケープコンポーネントについて、ミップからミップへの最大高さのデルタの事前計算を使用します ランドスケープごとに微調整可能でランドスケープ プロキシごとにオーバーライド可能な高さのしきい値に基づき、VSM が最後にキャッシュされたときにアクティブだった LOD 値での高さと、現在の LOD 値での高さとの間の評価された最大デルタが (与えられた永続的なビューに対して) 十分に異なるときに無効化が発生します Nanite ランドスケープ使用時は無効化が発生しません 無効化の発生率は、LOD 値が上がるにつれて低下し、ランドスケープ アクタのスクリーン サイズ パラメータによって制御されます (プロキシごとにオーバーライド可能)。これは、高めの LOD 値で VSM を過剰に無効化することを避けるための措置です。なぜなら、VSM が占める領域は小さい傾向があり、完全な影を持つ必要がないからです この問題にも対応するため、ランドスケープごとに (プロキシごとにオーバーライド可能な) シャドウ マップ バイアスも追加しました ゲーム内で 3 つのパラメータを調整するのに役立つ 3 つの非シッピング CVars を追加しました (landscape.OverrideNonNaniteVirtualShadowMapConstantDepthBiasOverride、landscape.OverrideNonNaniteVirtualShadowMapInvalidationHeightErrorThreshold、landscape.OverrideNonNaniteVirtualShadowMapInvalidationScreenSizeLimit) 無効化システム全体は CVar landscape.AllowNonNaniteVirtualShadowMapInvalidation で有効/無効にできます スクリーンサイズに依存する無効化発生率曲線の形状を調整するために、もう 1 つの CVar (landscape.NonNaniteVirtualShadowMapInvalidationLODAttenuationExponent) を追加しました その他: landscape.DumpLODs コマンド の問題を修正:パラメータなしで複数回使用できるようになりました ランドスケープ用の CachedSectionLODValues システムを変更し、ViewState のないビュー (水の情報カスタム レンダリング パスのような一度限りのレンダリング) と「永続的な」ビュー (FViewStateInterface が関連付けられているもの) の両方で使用できるようにしました。その結果、指定された永続ビューの前のフレームの CachedSectionLODValues を追跡できるようになり、以前のような洗練されていないメソッドが削除されました ランドスケープ UX の修正 レンダースレッド セーフでなかったランドスケープ CVars を修正しました
-
新規:** ランドスケープ強制レイヤー更新を BP に公開しました
-
レンダリング プロキシ上で風景の LOD 設定を直接変更するプロトタイプ-y 関数は非推奨としました。レンダリング プロキシを無効にしても、通常の方法ですでに可能です
-
水:親ウォーター ゾーンでローカルのみのテッセレーションが有効になっている場合に、ローカライズされたウォーター クワッドツリーのサポートを実装しました。
-
水:水の情報テクスチャが作成または再作成されるたびに発生するウォーター ゾーンのイベントを公開します
-
ランドスケープにおけるさまざまな UX の改善:侵食ツールを使用する際に、ペイント レイヤーの硬度パラメータを考慮できるオプションを追加しました。ユーザーが誤った判断を下す恐れがあったため、デフォルトで False に設定しました ランドスケープ レイヤー情報アセットの硬度をデフォルトで 0 に設定しました (上記と同じ理由) 不足していたツールチップを追加しました ペイント レイヤーのサムネイルをダブルクリックすると、対応するランドスケープ レイヤーの情報アセットが開くようになりました
-
Nanite スカートの改善:スカートの頂点の位置を外挿することによってエッジの傾斜を維持しようとする場合、エッジの頂点からスカートの頂点まで傾斜が下に向かっている場合にのみそれを行うようにしました (この措置がない場合、急な傾斜の場合、スカートの頂点を隣接するランドスケープ プロキシの下に持ってくるのにスカートの奥行きが足りなくなる可能性があります)
-
新しい GerstnerWave シェーダーと対応するマテリアル関数を実装し、波のスペクトルを低/中/高周波の 3 つのバケットに分割できるようにしました。マテリアル内の低めのエンドのプラットフォームで高周波数の波の一部をフィルタリングしたり、いくつかの周波数バケットについてピクセルごとにすべてを再計算する代わりに補間を利用したりするのに有用です。
-
ランドスケープ ブラシ サイズの最大スライダーと最大クランプ値をプロジェクト設定に追加しました
-
ランドスケープに RenderWeightmap/RenderWeightmaps BP 関数を追加し、ユーザーがレンダリング ターゲット 2D (またはレンダリング ターゲット 2D 配列) のチャンネルに高さマップと同じ要領で重さマップをパックできるようにしました。これらは最終的な重さマップ データを操作するため、ランタイム時に呼び出すことができ、ランドスケープ コンポーネントの制限に関係なく、与えられたワールド エリアでレンダリングされます
バグ修正:
-
ランドスケープの外側でペイント/スカルプティングを行う際に発生する問題を修正しました
-
ランドスケープ テクスチャのハッシュが変更された場合に、2 度計算されないようにしました * 検出された差が検出しきい値よりも小さい場合でも、ランドスケープが汚くなる問題を修正しました
-
ギズモ使用時に、新しい横位置/回転/スケールをデフォルトにリセットするボタンが表示されない問題を修正しました。LandscapeEditor の [Details (詳細)] ビューの RightColumnMinWidth を追加し、[Reset To Default (デフォルトにリセット)] ボタンが正しく機能するかどうかをテストできるようにしました。
-
ガベージ アクタをイテレーションする際にランドスケープ コードがクラッシュする可能性があった問題を修正しました
-
Nanite ランドスケープ データを構築する際、LOD レベルが確実に有効範囲内になるようにしました
-
ランドスケープの編集レイヤーを部分的に更新する際に、誤ったランドスケープ コンポーネントがレンダリングされていた問題を修正しました
-
ランドスケープ編集レイヤーを更新する際にクラッシュする問題を修正しました (コード内の他の部分と同様に不足しているレイヤー データを考慮します)
-
レベル インスタンスに属するランドスケープを編集できないようにしました。ランドスケープ モードで表示される (そして更新できる) ランドスケープは、メインレベルに属するものだけになりました。
-
landscape.RemoveEmptyPaintLayersOnEdit は、それによって解決される問題よりも発生する問題 (landscape アクタがロード時に明らかな理由なく汚れる) が多いため、デフォルトで無効にしました。この問題を完全に解決するためには、エディタと最終データの適切な分離が必要です。
-
ランドスケープ ストリーミング プロキシで LOD ごとのマテリアル オーバーライドが機能しなかった問題を修正しました。
-
草エクスポータの投影行列をオーバーフローさせる無効な ZOffset を修正しました。
-
- LandscapeInherited/LandscapeOverridable によるプロキシのプロパティの強制を自動化し、ランドスケープ プロキシ プロパティのメタデータを使用するだけで必要な動作が得られるようにしました オーバーライドされたプロパティのリストを FName のリストに変更しました (メモリの最適化)。 bBakeMaterialPositionOffsetIntoCollision を LandscapeInherited にしました 編集レイヤーが有効な場合にスケールを変更する際の法線の無駄な再計算を削除しました LandscapeInherited/LandscapeOverride プロパティが、[Property (プロパティ)] -> [Name (名前)] を使用し、[MemberProperty] -> [Name (名前)] を使用していなかったために検出されなかった問題を修正しました 残りのすべての ALandscapeProxy プロパティに LandscapeInherited または LandscapeOverride のタグを付けました ランドスケープ プロキシでオーバーライド可能/継承されたプロパティ名が常に読み取り専用に表示されなかった問題を修正しました
-
ランドスケープ GPU のリードバック プールが大抵の場合に枯渇しないように修正しました。
-
ランドスケープのインポート/エクスポートの Mode プロパティを「インポート モード」または「エクスポート モード」に変更し、ユーザーに分かりやすくしました
-
エディタでストリーミング プロキシを選択した際の横向きコンポーネント数の表示を修正しました
-
ULandscapeSplinesComponent::CopyToSplineComponent のバグ修正:反転していないランドスケープ スプライン セグメント内の反転したスプライン メッシュを考慮し、ループするランドスケープ スプラインを自動検出するための QoL を追加しました
- マテリアル レイヤー内でランドスケープ レイヤーを使用した場合に、レイヤーとして認識されなかった問題を修正しました
非推奨:
- ランドスケープのクリーンアップ:UE5.2 以前から非推奨のコードを削除しました。 UHierarchicalInstancedStaticMeshComponent::AcceptPrebuiltTree および UHierarchicalInstancedStaticMeshComponent::BuildTreeAnyThread を UGrassInstancedStaticMeshComponent に移行しました
スクリプティング
新機能:
-
EditorUtilityTask の名前のオーバーライドを許可します。
- DataTable カラムのエクスポート名をスクリプトに公開しました
- GetDataTableColumnExportNames
- 特定のコマンドレットで Python を完全に無効にできるようにしました
- これを行うには、Editor.ini ファイルに以下を追加します:[PythonScriptPlugin] +DisablePythonForCommandlet=CommandletName
-
自動インポート用に、すべての FillDataTableFromX 関数がオプションの横列構造オーバーライドを提供できるようになりました
-
アセットの「ルート」ディレクトリを取得するエディタ ユーティリティ関数を追加しました。例:多くのプロジェクトでは「/Game/」、一部で「$ProjectName」
- データ テーブル自動化の改善
- オプションの ImportRowStruct が指定されている場合、FillDataTableFromX 関数は常に自動インポートを実行していると見なされます。
- 既存のデータ テーブルの横列構造体を照会する GetDataTableRowStruct を追加しました。
-
スーパー クラスをサポートするために、オブジェクトのオートキャスト関数のサポートを追加しました
-
UAssetActionUtility に bIsActionForBlueprints が追加されたため、関数をオーバーライドする必要がなくなり、UX が改善されました
-
エディタ ユーティリティ フレームワークに GeneratedClass API を追加しました
-
SetEditorProperty/GetEditorProperty がクラスのスパース データにアクセスできるようになり、固定配列が動的配列に代入/動的配列から読み込めるようになりました
- スクリプトへのデータ テーブルのエクスポートを公開しました
- ExportDataTableToCSVString
- ExportDataTableToCSVFile
- ExportDataTableToJSONString
- ExportDataTableToJSONFile
-
ResetEditorProperty を追加しました。指定のプロパティをアーキタイプの値にリセットします
- DataTable カラム ユーティリティをスクリプトに公開しました
- GetDataTableColumnNames は、各カラムの生のプロパティ名を取得します。
- GetDataTableColumnNameFromExportName は、分かりやすいエクスポート名を生のカラム名に変換します。
- UCLASS や USTRUCT の UPROPERTY として使用するために Python オブジェクトをラップする機能を追加しました。
- PythonObjectHandle を使用することにより、非プロパティ オブジェクトへの参照が継続して有効であるように、Python ラッパー オブジェクトの存続期間に依存せずに、Python 生成型が任意の Python オブジェクトをネイティブ プロパティとして保存することができます。
バグ修正:
-
ピン留めされたプロパティ タイプと互換性のないプロパティで set editor property bp ノードを使用したときにクラッシュすることがあった問題を修正しました。PropertyAccessUtil::ArePropertiesCompatible 関数は十分な堅牢性を持っておらず、動的配列の静的配列プロパティへの書き込み、あるいはその逆が可能かどうかを確認するために使用する際にクラッシュしていました。
-
Python の get/set_editor_property を更新し、CDO のスパース クラス データの取得/設定が行えるようになりました
-
Python のネイティブ化がインターフェース クラスに対する検証に失敗していた問題を修正しました
-
ユーティリティ ウィジェットを更新しました。子ユーティリティ ウィジェットを再帰的に一時的としてマークします。これにより、ネストされたユーティリティ ウィジェットによってレベルが「ダーティ」としてマークされる問題を防ぐことができます。
-
UnpackReturnValues が Python で実装された関数の None の戻り値を正しく処理できなかった問題を修正しました
-
UEditorUtilitySubsystem::RemoveTaskFromActiveList の不正なアサーションを削除し、RegisterAndExecuteTask の同様のチェックを更新して、タスクの重複登録を回避するようにしました
-
ブループリント ユーティリティ呼び出し可能関数 DeleteAsset が FBlueprintActionDatabase によって参照されることが理由でアセットの削除に失敗する問題を修正しました。
-
エディタ ユーティリティからスパース クラス データが設定されると、自動的に bIsSparseClassDataSerializable としてマークされます。これにより、スクリプトによって設定された後、スパース クラス データが保存されないことを回避します
UI
新機能:
-
アセット ピッカーの構成に「セクションをカテゴリに使用する」ブールを公開しました。展開されたカテゴリに識別子を追加しました (以前はなし)
-
マテリアル エディタでモバイル プラットフォームの統計値をデフォルトで有効にしました
-
エディタのスプラッシュ画面を移動可能にしました。
-
[出力ログ] [Settings (設定)] ドロップダウン メニューにより、下流/コンテキストをカスタマイズできるようになり、フードの下でツール メニュー システムを使用するようになりました。
-
マテリアル エディタにおいて、常にモバイル用にマテリアルをコンパイルするオプションを追加しました
-
コンテンツ ブラウザのカラム ビュー右クリックコンテキストメニューに [Select All/None (すべて選択/なし)] ボタンを追加しました
-
UMG アニメーションの右クリック メニューに [Find References (参照を検索)] を追加しました。
-
プロパティ エディタ:詳細プロパティ横列の拡張状態の取得を追加しました。
-
ローカライズ ターゲットが多い場合、ローカライゼーション ダッシュボードにスクロールバーを追加しました。
-
プロパティ エディタ:回転ドラッグの 0-360 の制限を解除し、負の回転や 360 を超える回転までドラッグできるようにしました。デルタは 1 に設定されます (つまり、スライダーは 1 度ずつ回転します)
- RequestForceRefresh を公開し、詳細なカスタマイズができるようにしました。
- RequestForceRefresh の使用は、1 フレーム内で何度もビューを更新することによるパフォーマンスの問題を防ぐことができるため、リフレッシュを遅延させることができる場合に行うことが推奨されます
-
StructureDataProvider インターフェースを使用することにより、PropertyEditor に単一構造体プロパティのサポートを追加しました。
-
StructureDataProvider インターフェースの使用により、外部構造プロパティのカテゴリ ビルダーのサポートを追加しました
-
メインメニューのサブメニュー、セクション、タブのスポナーをメニューに登録することによって作成されるエントリに、明示的な FName を与えることができるようになりました。これにより、他のコードでも ToolMenus システムを使って同じメニュー構造を拡張することが可能です。
-
プラットフォーム統計とマテリアル エディタのコンパイル警告を改善しました
-
ToolMenus メニュー システムの低レベル単体テスト プロジェクトを追加しました。
- プロパティ メタデータの外で定義されたカスタム編集条件を持つ詳細プロパティ横列に、手動で EditConditionHides ビヘイビアを付与する方法を追加しました (例:FDetailPropertyRow::EditCondition)。
バグ修正:
-
Mac:NSCursor ホットスポットのロジックを修正しました。 画像の寸法ではなく、ユーザー座標の実際の寸法を使う必要があります。さらに、ホットスポットは 0,0 から -> w-1,h1 の値が想定されています。ブループリント ノードが、(hotSpot.x/y * Image.pixelW/H) > Image.size.W/H (hotSpot.x/y が 0...1.0) の値を指定した場合、カーソルは表示されません。
- SGraphPanel をマイナー修正し、基礎となるグラフ オブジェクトの更新に関するリフレッシュを親 SGraphEditor への依存から切り離しました。
- これにより、エディタ コンテキストの外側にある SGraphPanel ウィジェット (たとえばプレビュー) は、基礎となるグラフ オブジェクトが再構築された場合に、ノード/ピン参照が古くなるのを避けることができます。
-
CommonUI:アクション ドメイン:複数のアクション ドメインがある場合にアクションが見つからないエッジ ケースを修正しました。
-
エディタ:[Allow Cinematic Control (シネマティックコントロールを許可)] を修正し、エディタを再度開いたときに正しく復元されるようにしました。
-
クラス ビューアのオフセットとパディングを改善し、他の要素と重ならないようにしました
-
浮動小数点値 (ローテータやトランスフォームのような浮動小数点値の構造体を含む) のプロパティ値の変更が伝搬されなかった問題を修正しました
-
シーン アウトライナー:フォルダ コンテキスト メニュー生成時に発生していたクラッシュを修正しました。
-
色のカスタマイズ:インライン カラー ピッカーを閉じたときにトランザクションが終了しない問題を修正しました。
-
ワールド設定で Level Instance プロパティを表示しません
-
新しいマテリアルを適用する際、画像サイズがランダムな値に設定されてしまう問題を修正しました #okforgitub public
-
メニュー システムがレガシー コード パスを使用してウィジェットを生成しているときにオブジェクト参照が収集されるとクラッシュする問題を修正しました。
-
コメント バブル テキスト入力の背景が複数行のテキストで正しく拡大縮小されなかった問題を修正しました。
- SSubobjectEditor::GetSelectedItemsForContextMenu は、継承された SCS コンポーネントに正しいコンポーネントを提供します
UX
新機能:
-
新規 Custom Event ノードを作成するためのバインディングを追加しました。デフォルトではバインディングなしです。C を押して新規 Comment ノードを作成するのと似ています。
-
エディタを閉じたときに、レベル ビュー ポートのカメラ情報が保存されるようになりました。エディタが再起動され、同じレベルがリロードされたときに再適用されます。
-
エディタ タイトルバーの最小化、最大化、閉じるボタンには、Microsoft Windows スタイルの灰色と赤のホバー カラーを使用します。
-
ShowOnlyInnerProperties がネストした構造体に対して機能するようになり、指定子でマークされた最も内側の構造体のプロパティを表示するようになりました。
-
PR #10826:UAssetEditorSubsystem にデリゲートを追加し、アセット エディタの終了時にブロードキャストします #contrib 10826
-
派生マテリアル インスタンスがマテリアル エディタでコンパイルに失敗した場合に警告を表示します
-
アウトライナーで選択されたアクタにフォーカスを当てるビューポート アクションを追加しました (AlwaysFrameSelection オフで使用します)
-
参照ビューアにおけるコレクション フィルタ検索のサポートを追加しました。
-
エディタ プロジェクト バッジの背景色を、タイトルバーの他の部分と同じ色に変更しました。
-
参照ビューアにプラグイン フィルタを追加しました。フィルタリングされていないグラフで見えるアセットを含むプラグインだけがリストに表示されます。
-
アウトライナー:検索テキストを変更/クリアする際、選択したフォルダを保持します
-
エディタ ウィンドウのタイトルバーとタブ領域で消費される垂直スペースを削減します。最小化、最大化、閉じるボタンの高さを低くして、インターフェースをさらに詰め込むことも含まれます。
-
レベル エディタで、[Focus Selected (選択にフォーカス)] コマンドが[Actor (アクタ)] コンテキスト メニューに移動し、[Frame Selected (選択にフレーム)] に名前が変更されました。さらに、[View Options (表示オプション)] メニュー アイテムは、コンテキスト メニューだけでなく、メイン メニューバーの [Actor (アクタ)] メニューにも表示されるようになりました。
-
バインド可能なビューポート カメラ回転 UI コマンドを追加しました
-
グローバル アセット ピッカーに [Browse to Asset (アセットをブラウズ)] コンテキスト アクションを追加しました
-
アクタをペースト/複製すると、新しいアクタが「現在のフォルダ」に移動するようになりました (設定されている場合)
-
現在の RHI 機能レベルではカバーされていないシェーダー プラットフォームの基本マテリアルの問題を報告します。
-
[Close Minor Tab (マイナー タブを閉じる)] と [Close New Tab (新しいタブを閉じる)] を組み合わせた新しいキー バインドを追加しました。このキーバインドはデフォルト解除されており、ユーザーが 1 つのキーを押すだけで、タブの種類に関係なく、マイナータブを優先して、フォーカスされているタブを閉じることができます。
-
エディタ設定で次の形式によりキーボード ショートカットを検索可能にしました:キーバインド =「F」
-
タイトルバーのプロジェクト バッジをマウスでドラッグして、UE ウィンドウを移動できるようにしました。
-
プロパティのカスタマイズ:カスタマイズを考慮し、構造体プロパティをサポートする CreatePropertyValueWidgetWithCustomization API を追加しました。
-
UToolMenus:メニュー プロファイルをサポートする API を追加しました。メニュー プロファイルはメニュー カスタマイズの軽量版ですが、複数のメニュー プロファイルを持つことができ、新しいメニュー コンテキストを使用して、メニュー インスタンスごとに実行時にそれらをアクティブ化/非アクティブ化できます。
-
EditorUtilityBlueprintFactory:クラス ピッカーを変更し、TreeView を使用してクラスを階層構造で表示します
-
エディタ内のほとんどのメニューは、入力することで検索できます。これをより分かりやすくするために、10 個以上の項目があるメニューで、メニュー検索フィールドをデフォルトで表示するようにしました。このしきい値は、[General (全般)] - [Appearance (アピアランス)] - [User Interface (ユーザーインターフェース)] にある新しい設定項目を使用して変更することができます。
バグ修正:
-
PR #11216:FMainMRUFavoritesList において、お気に入りセクション ini をオーバーライドできるようにすることで、セクション名の重複を修正しました。お気に入りレベルが永続化されないバグを修正しました #contrib 11216
-
モーダル プログレスバー (FFeedbackContext) がユーザーに表示されない問題を修正しました。
-
FNavigationConfig を更新し、修飾子が保持されていない場合にのみキー イベントを送信するオプションを追加しました。EditorNavigationConfig を更新し、この新しい設定を使用することで、Ctrl+Space コンテンツ ドロワーのホットキーが一部のウィジェットで消費される問題を回避しました
-
チェックアウトに失敗したパッケージがあるにもかかわらず、チェックアウト エラーのダイアログボックスが表示されないバグを修正しました。
-
プロパティ マトリックス:[Pinned Columns (ピン留め済み列)] タブで検索が機能しないバグを修正しました
-
非表示のビューポートの移動で非表示のビューポートが描画され、マテリアル エディタで「w」または「e」を押すとクラッシュする問題を修正しました
-
コンテンツ ドロワーの動作を変更し、ピン留めされたタブからアセットに移動したときに、コンテンツ ドロワーが正しく呼び出されるようにしました。
-
[Details (詳細)] パネルの [Mobility (可動性)] フィールドにペーストできるようになりました。
-
プロパティ マトリクス:ライト コンポーネントのプロパティを編集しようとするとクラッシュする問題を修正しました
-
[Light Mixer (ライト ミキサー)] コンテキスト メニューの [Transform (トランスフォーム)] サブメニューにカーソルを合わせるとクラッシュする問題を修正しました
-
AssetEditorToolkit:開いている DataFlow アセットを強制削除しようとするとクラッシュする問題を修正しました
-
デフォルトの数式構造カスタマイズによってローテータが度単位で表示されない問題を修正しました
-
アウトライナー:PIE を終了しようとすると、「レベル」列名の選択コードでクラッシュする問題を修正しました。
ファンデーション
新機能:
- Experimental Studio Telemetry プラグインを追加しました。
-
これは一般的なエディタ ワークフローのためのテレメトリをキャプチャすることができ、エンド ユーザーが拡張して IAnalyticsProviderModule 実装で公開された IAnalyticsProvider 実装を介して、独自の分析バックエンドをサポートすることができます。 Studio Telemetry はデフォルトで有効になっており、Horde 分析実装と JSON ログファイル実装の 2 つのサンプル分析プロバイダが付属しています。
-
UHT に TOptional
型のサポートを追加しました。 -
DDC Http ストア - AuthScheme を設定する機能 (デフォルトはこれまでどおりの JWTBearer) と、認証トークンを直接指定する機能を追加しました。これは クラウド DDC の ServiceAccount スキームと併用することができ、ライセンシーによる迅速なオンボーディングを実現するために使用する予定です (複数チームにまたがる広範なデプロイメントに使用することは非推奨です)。
-
メモリ不足時のメモリ使用量のプリントアウトに一般的な単位 (GiB) を使用するようにしました。
-
FAutomationTestBase::AddExpectedMessage にプレーン テキストのサポートを追加しました
-
AssetRegistry の読み込みに欠落していた LLM タグを追加しました
-
[Test Automation (自動化をテスト)] ウィンドウで、プラットフォーム固有のテスト除外リストのロードと保存をサポートします
-
TMap のキーとして使用する場合のために、FDynamicallyTypedValue に GetTypeHash を追加しました。
-
FDataRegistryResolverScope::ResolveNameFromId インターフェースを追加しました。これにより、毎回共有ポインタを割り当てる必要がなくなり、一時的なローカル オブジェクトを指定できるようになりました。リゾルバを TSharedPtr として返す ResolveIdToName オーバーロードを非推奨にしました。
- クック中 (パッケージのロードとセーブ時) に LLM カウンターが定期的に更新されるようにしました。
バグ修正:
-
一部の FName アロケーションで FName LLM タグが使用されていなかった問題を修正しました
-
OidcToken - oidc トークンの複数インスタンスが同時に Windowsトークン ストアを読み込めるようにし、トークン ストア ファイルに変更がない場合は更新されないようにします。トークン ストアの更新のみをカバーするようにミューテックスのスコープを縮小しました。
-
OidcToken テンポラリ ファイルがない場合、出力ディレクトリを作成します 有効期限がないトークンのロジックを修正しました (トークンの有効期限が 0 に設定されており、適切に扱われていませんでした) * 古いリフレッシュ トークンを使用した後に新しいリフレッシュ トークンを保存することにより、horde.exe が必要以上に頻繁にユーザーにログインを促していた問題を解決しました。
-
クライアント トラベルを実行するときに、サーバーが ? リッスンのサーバーのみオプションを送信しないようにしました。これにより、トラベル中にクライアントがリッスン サーバーであると誤認するのを防ぐことができます。
-
OidcToken - クロームとエッジの特殊なケースの処理は Visual Studio からスポーンしたときに問題が発生するため、削除しました
-
OidcToken - リダイレクト URI と単一のリダイレクト URI の両方を指定するのではなく、リダイレクト URI リストのみを指定できるようになりました
-
FUntilDoneLatentCommand Predicate 呼び出し:FUntilDoneLatentCommand::Update() で述語を複数回呼び出せるようにしました。
-
SQLite において、現在の Malloc が FMemory::GetAllocSize をサポートしていない場合にクラッシュする問題を修正しました。
-
OidcToken - ID トークンなしでアクセス トークンを割り当てることができます。IdentityToken を実際に使用せずにアクセス トークンを取得できるようにすることで、ID トークンとアクセス トークンの両方を同時に要求した場合に一部の IdP がシン トークンしか提供しない問題を回避できます。
-
OidcToken - タイムアウト オプションを追加しました (デフォルトは 20 分)。ユーザーが開いたブラウザにこの時間ログインしなかった場合、シャットダウンしてエラーを出します。これにより、タイムアウト後にユーザーが戻ってきて、ポップアップ表示されたブラウザにログインしようとして「404」が返る (ローカルのウェブサーバーがシャットダウンしているため) というリスクを冒して、ゾンビプロセスが残ってしまうのを防ぐことができます。
建築
新機能:
-
UGS:コンパイル済みのバイナリをダウンロードした直後であれば、そのバイナリをダウンロードすることはなくなりました。
-
BuildGraph に、分割された入力文字列の最初と最後の (それぞれの) 要素を返す SplitFirst と SplitLast StringOps を追加しました。
-
コンパイラがクラッシュしたときに、詳細な情報を生成するように UBT を修正しました。
-
ビルド ターゲットに KeepFileOpenLog オプションを追加し、クック中にオプションで「-fileopenlog」をスキップしてメモリを節約できるようにしました
-
BaseDir が実行可能パスと異なるときのライブ コーディングをサポートします
-
プロジェクト モジュールが、依存関係としてそのプラグインをリストせずに、プラグイン モジュールに依存していることが判明した場合の警告を追加しました。プラグインはデフォルトで有効になっているか、.uproject で有効になっているか、target.cs で有効になっている必要があります
-
ステージング中にゲーム プロジェクトがファイルをコピーする方法を上書きできるようにしました。CustomStageCopyHandler は、コピー操作のために実装することができます
-
TargetRules は、参照されるプラグインをフィルタリングして、ビルドから無視すべきかどうかを判断することができます。
-
一部の Clang ベースのプラットフォームで、-fextend-lifetimes コンパイル スイッチのサポートを追加しました。これにより、デバッガが値を表示できるローカル変数の数が増えるため、最適化ビルドのデバッグ体験が向上します。この機能はパフォーマンスを若干低下させる可能性があるため、開発のみの用途を想定しています。BuildConfiguration.xml の [
Platform (<プラットフォーム> プラットフォーム)] セクションで bOptimizeForDebugging 変数を設定して、明示的に有効にする必要があります。テストやシッピングの構成には影響しません。 -
UGS:デフォルトの UGS ビルド設定を DebugGame から Development に変更しました。影響を受けるのは、UGS の新規インストールにのみです。
-
ICustomStageCopyHandler を拡張して、プラグイン マニフェスト ファイルの作成のオーバーライドをサポートします。ゲーム プロジェクトがプラグイン記述子をマニフェストに追加する方法を制御できるようにします。
-
Intel® Implicit SPMD Program Compiler (ISPC) がバージョン 1.21.0 に更新されました。
-
UGS:同期中の「最後のコード変更を探しています...」ステップのパフォーマンスを改善しました。
-
プロジェクト生成中に「.vcxproj.user」ファイルを更新するための「-FORCEUPDATEALL」オプションを追加しました
-
SkipEncryption が PAK ファイルの暗号化をスキップしない問題を修正しました
バグ修正:
-
Windows ベースのプラットフォームで、Perforce の「インポート」機能を使用したワークスペースのソース インデックスが不正なパスを生成する問題を修正しました。
-
ログ ワンス ロギング時に UBT が同時実行エラーで失敗する問題を修正しました。
-
UBT:円形 Deps を持つ MakeStubItems を修正しました。
-
チャンクされた DLC ビルド中のパス決定に関する問題を修正しました
-
プラグインファイル名と Json パース例外を出力します
-
エンジンのみのビルドでホット リロード モジュールを有効にするように UBT を修正しました。これは、P4V やプロジェクト ファイルを指定しない他のツールからビルドするときに、ライブ コーディング チェックを機能させるために行います。
-
CookSettings.SkipOnlyEditorOnly を使用している場合、ソフト パス リテラルのみで参照されるオブジェクトが、パッケージ化されたゲームに正しく含まれます
非推奨:
- 今後、MinWindows.h、PreWindowsApi.h、PostWindowsApi.h はヘッダ ガード警告によって今後インクルードされないようになります。- 代わりに WindowsHWrapper.h、AllowWindowsPlatformTypes.h、HideWindowsPlatformTypes.h を使用してください。
コンパイル時間の改善
新機能:
-
UBA:ファイルがマウントに散逸していてリンクが機能しないシナリオに対応しました。機能しない場合は、ファイルのコピーや送信に戻ってください。
-
UBA:スタック サイズの制限による Intel Mac でのバス エラーを修正しました
-
UBA:mach メッセージを使用した MacOS の CPU 時間のサポートを追加しました。
-
UBA:ポーリングを使用するようになったため、UbaAgent がホストを待機していた問題を修正しました。
バグ修正:
-
UBA:さまざまな小さなバグを修正しました。
-
UBA:Mac のテストを修正しました。* 実際の Clang バイナリの場所と SDK パスを取得する必要があります。
-
UBA:MacOS でポーリングが終了したときに fds を閉じてリークを防止します。
-
UBA:populateCasFromXcode を修正しました。
-
UBA:cmdline の上限を 64k に変更しました
-
UBA:プラットフォームの違いに対応するため、POLLUP に関するいくつかの定義を追加しました
-
UBA:Mac 対応のために追加変更を行いました。 ソケットのクローズに関する問題を修正しました プロック数取得のサポートを追加しました。
-
UBA:実行中の Mac からタッチテストを削除しました。
-
UBA:エージェントがホストへの接続を待たずに終了する問題を解決しました。
-
UBA:POSIX API に関するさまざまな修正。 リターンのチェックが若干改善されました realpath は「/」で統計値を呼び出すので、「/」をフレンドリーに処理します fd1 と fd2 (別名「stdout/stderr」) を誤って閉じないように、lockFd を接続します MacOS にはサブリーパーがないので、sysctl を使って別の方法を実装します
-
UBA:スレッド作成後にスレッド属性をクリーンアップします。
コア
API の変更:
-
Target.cs 内の GlobalDefinitions.Add("UE_STORE_OBJECT_LIST_INTERNAL_INDEX=1") 経由で有効にします。この機能は、UObjectBase メモリ レイアウトのパディングを利用するため、4 バイト幅の FName を有効にする必要があります (Target.cs で bFNameOutlineNumber を「true」に設定することで有効にできます)。
-
UObject::CollectDefaultSubobjects は、冗長で正しくないため非推奨としました。IsDefaultSubobject のコメントが更新され、混乱を招く動作が文書化されました。ほとんどの場合、IsTemplate や新しい IsTemplateForSubobjects などの別の関数を使用する方が良い結果が得られます
- コンパイラによっては、この変更によって TObjectPtr 変数を UE_LOG マクロに渡すときにコンパイル エラーが発生することがあります。その場合は TObjectPtr::Get() 関数で生の UObject ポインタを取り出す必要があります。
- TObjectPtr
ObjPtr、 UE_LOG(LogTemp, Log, TEXT("UObject pointer: 0x%x"), ObjPtr.Get())、 - また、C++ コンパイラによっては、要素変数宣言が TObjectPtr の const 値型 (const TObjectPtr
値) である TObjectPtr の配列を反復処理する場合、foreach ループ文のコンパイルに失敗することがあります。その場合は、要素変数宣言を参照型に変換する必要があります: - TArray
> ArrayOfObjectPtrs、(const TObjectPtr & Value: ArrayOfObjectPtrs) の場合
- TObjectPtr
- この情報は、バイナリに埋め込まれているかどうかにかかわらず、BuildSettings モジュールを介してランタイム時に常に利用可能です。
新機能:
-
UnrealTraceServer のスポンサー モードで、通常の「永続」モードに加えて、サーバーを実行する新しい「スポンサー」モードを追加しました。このモードでは、サーバーを親 pid で起動する必要があります。pid は追加できます。すべてのスポンサー プロセスが終了し、アクティブな接続がなくなると、サーバーは終了します。サーバーがどのモードで実行されるかを制御するには、Unreal Insights または Unreal Editor の Trace ウィジェットを使用します。コマンドライン オプションとコマンドのパースもリファクタリングされ、パースされてすべてのメイン関数に渡されるようになりました。コマンドラインのヘルプも追加されました。
-
VTune ライブラリの最新 2023 リリースを更新しました。
-
FInstancedStruct のバージョン管理実装に代わってアーカイブのカスタム バージョン管理を使用するように変更しました。また、シリアル化を左右対称にし、クック済みビルドでシリアル化された構造体をエディタ ビルドでシリアル化を解除できるようにしました。
-
新しい静的 StringType::Construct* 関数を追加し、動作が不明確な疑わしい文字列コンストラクタのセットと差し換えました。古い形式のコンストラクタは、FString に対してはまだ非推奨ではありませんが、FUtf8String と FAnsiString に対しては非推奨です。
-
TIsTArrayView
::Value のより効率的な代替として、TIsTArrayView_V を追加しました。 -
EUnitType::DataSize の量子化係数を 1000 から 1024 に修正しました。データサイズの単位は KiB、MiB、GiB などとして扱うようになりました
-
FAsciiSet に別の演算子などを追加し、セットを結合できるようにしました
-
文字列の分割関数ファミリを追加しました:UE::String::Split(First|Last)[OfAny][Char]。
- 文字列ビューとして列挙型/メンバー/関数の名前を取得するためのマクロを追加しました。コンパイル時間のコンテキストで使用するために必須です。
-
文字列としての列挙型名を取得するために不足しているマクロを追加し、メンバー名と関数名のための既存マクロとマッチさせました。
-
オプションのテンプレート パラメータとして文字列型を提供し、LexToString の汎用性を高めました。
-
UnrealBuildTool:PVS-Studio アナライザ警告のプリント レベルを制御する設定 (-StaticAnalyzerPVSPrintLevel)
-
TFuture/TSharedFuture がコピー不可能な型でも機能するように更新しました。
-
DDC リクエストに提供されるデバッグ名を変更し、[Fast] タグまたは [Meta] タグを追加して DDC ログがどのキーがリクエストされ、ヒット/ミスしたかを明確にしました。
-
DataTable エラーを改善し、構造体の欠如と未シリアル化エラーの違いを診断できるようにしました
-
Function.h で定義された型の前方宣言用に FunctionFwd.h を追加しました。
-
CompositeDataTable に、個々の親テーブルを追加および削除する関数と、親テーブルの配列を削除する関数を追加しました。
-
TArray のバルク シリアル化をすべての演算型に拡張しました。
-
PR #11054:[PVS-Studio] 新しい PVS-Studio.exe サイレント終了コード モードを追加しました。#contrib 11054
-
FMath::Wrap の浮動小数点ユニット テストを追加しました。積分/浮動小数点数の差異を包括的にカプセル化する FMath::Modulo を新たに追加しました。
-
TUseBitwiseSwap をそれ自身のヘッダに移動しました。
-
AsyncCompilationHelper - 未完了タスクにつき発生する 16 ミリ秒のメイン スレッド スリープを削除し、代わりにすべてのタスクをポーリングして、すべてのタスクが完了していない場合は一度スリープするようにしました。ICompilable WaitCompletionWithTimeout () メソッドは、0 TimeLimitSeconds が与えられた場合にポーリングするように文書化しました。これを調整するため、ICompilable のインプリメンターは TimeLimitSeconds が 0 かどうかをポーリングしてから待機するようになります。一部のインプリメンターはイベントとスリープを使いません。これは理想的ではありませんが、少なくともスリープ後に再度ポーリングするようになったため、タスクが完了したかどうかを知るためにもう一回往復せずに済みます。FAsyncTaskBase::WaitCompletionWithTimeout は、0 秒の制限時間が与えられたときに完了をポーリングするようになりました。その結果、使用方法が簡単になり、意図しない出力を回避できます。PIE.Startup 前は FAsyncTask::SyncCompletion の総包括時間が 5.25s (40606 コール) で、PIE.Startup 後は FAsyncTask::SyncCompletion の総包括時間が 195ms (39504 コール) です
-
UE_VALIDATE_FORMAT_STRINGS が定義されている場合、checkf と ensureMsgf が printf パラメータを検証するようにしました。FormatStringSan::bIsIntegralEnum が TEnumAsByte を列挙型として正しく検出するようにしました。
-
FAnsiString と FUtf8String を追加しました。
-
FMath::Wrap のループを modulo に置き換え、一定時間で実行できるようにしました。浮動小数点の精度不足が原因で以前の実装で失敗していたいくつかのテストを追加しました。いくつかの constexpr テストが追加されましたが、C++23 以前では整数のテストのみがサポートされています。
-
TRefCountingMixin を追加し、TRefCountPtr で使用する AutoRTFM 対応の参照カウントを提供しました
-
UnrealBuildTool:エンジン モジュールまたは生成されたコードの解析を無効にするオプション
-
PR #10774:ALLOW_CONSOLE_IN_SHIPPING のターゲットルールを追加しました #contrib 10774
-
無人モード (デフォルトはオフ) で実行しているときに、仮想化システムが失敗したペイロードの引き抜きを再試行できるように、設定ファイルのオプションを追加しました
-
デバッグ情報を完全に無効化するのではなくデバッグ用にのみライン テーブルを発行することをサポートします。構成は TargetRules.DebugInfo と同じであり、デバッグ情報がターゲット全体で無効になっている場合を除き、その設定をオーバーライドします
-
クラウド DDC 内でリクエスト中のブロックの大半を排除しました
-
TInlineValue
の最大サイズを増やしました -
環境変数 UE_LOG_JSON_TO_STDOUT を読み込んで標準出力での構造化ログ記録を有効にし、他のツールとの一貫性を確保します
-
LLM コンソール コマンドを追加し、アロケーションを Unix の基本的なページ アロケーションに関連付け、共有/プライベート/未参照に分類するようにしました。これにより、古い smaps パーサーも修正されます。要求されたバイト数よりも少ないバイト数が提供された場合に EOF の前に不正にベイルされないようになります。
-
CharType に応じて x、TEXT(x)、または UTF8TEXT(x) に展開する CHARTEXT(CharType, x) を追加しました。
-
Intel ICX 2024.0 の統合とインストルメント化済み/サンプル済み PGO をサポートしました (Jeff.Rous 経由)
-
PREPROCESSOR_VA_ARG_COUNT(...) とPREPROCESSOR_APPEND_VA_ARG_COUNT(Prefix, ...) マクロを追加しました。渡された引数の数と、それぞれの数にプレフィックスを付加して生成したトークンを評価します。
-
FStreamableManager 内の FStreamableDelegate の不要なコピーを回避します。さらに、FStreamableDelegate を rvalue で受け取る FStreamableHandle::ExecuteDelegate のオーバーロードを追加しました。このコード パスは、コピー回避のために rvalue でデリゲートを渡し続けます。さらに、コピーとムーブへの置換が行われていた複数のコールサイトを修正しました。
- -EnableAllPlugins を使用した場合のプラグイン マネージャーの除外サポートを改善しました
- -ExceptRestrictedPlugins を追加し、制限のあるプラグインを除外できるようにしました
- -ExceptPlugins (および -EnablePlugins と -DisablePlugins) にワイルドカードのサポートを追加し、「-ExceptPlugins="Online*"」のようにできるようにしました
-
「NotExcluded」の状態を「Excluded」および「Included」と一緒にキャッシュし、パブリック リーフを多く含む深くネストされたオブジェクト グラフに対する過剰なクエリ ConditionallyExcludeObjectForRealm を回避するようにしました
-
BuildSettingsVersion.V4 は、デフォルトで msvc strict conformance モードを有効にします
-
JsonObject、JsonWriter、JsonSerializerMacros を更新し、FStringViews と FString を使用して不要な割り当てを回避できるようにしました。
-
TPagedArray に IsValidIndex 関数を追加し、他のコンテナと同等にしました。
-
TObjectPtr におけるガベージ コレクタ書き込みバリアをストレス テストするために、指定されたフレーム数 (および gc.DelayReachabilityIterations コンソール変数) だけ到達可能性分析のイテレーションを遅延させる機能を追加しました。
-
TArray::Append は、一貫して「reserve」ではなく「grow」のメモリ増加戦略を使用するようにしました。そのため、すべてのバージョンの関数で、ループ内で多くの Append() を呼び出すための線形コストが償却されました。(以前は、使用する戦略が名称に依存し、一貫性がありませんでした)。
-
UObjectBaseUtility と FAssetData の共有ユーティリティとして FPackageName::GetVersePath を追加しました
-
TBitArray に FindFrom 関数を追加し、ユーザーが値を検索するときに開始インデックスを指定できるようにしました。
- FMessageLog 動作のスコープ済みオーバーライドを追加しました
- FMessageLogScopedOverride は、指定された名前の FMessageLog のログ動作を、オーバーライドの有効期間中オーバーライドすることができます。オプションとして、出力ログのミラーリングを抑制したり、ログのカテゴリを昇格/降格させたりすることができます (たとえば、エラーを警告として動作させたり、警告をエラーとして動作させたりします)。
-
ローカルの UnrealTraceServer インスタンスを制御するために、Unreal Insights のコントロール ウィジェットと Unreal Editor のトレース ウィジェットを追加しました。
-
UScriptStruct::ImportText が const を正しく設定するようになりました
-
ガベージ コレクタの到達可能性分析が完了した後に、到達可能なオブジェクトから参照されている到達不可能なオブジェクトがないことを確認するための検証テストを追加しました (gc.VerifyNoUnreachable コンソール変数で有効になります)。
-
StringCast における文字列の途中のゼロに関する動作があるため、長期的な代替として StrCast を追加しました。FString が末尾にゼロを含む場合のシリアル化を修正するために使用しました。
-
FStringBuilderBase に浮動小数点加算演算子を追加しました。LexToString と同じ書式指定子を使用します (UnrealTypeTraits.h の TFormatSpecifier を経由)。
-
TMap と TSortedMap の FindRef メソッドに、フォールバック デフォルト値を取るオーバーロードを追加しました
-
LinkerLoad のインスタンス化コンテキストの母集団を改善し、インスタンス化されたパッケージのオブジェクトから外部パッケージのオブジェクトを取得できるようにしました
-
FStringView と FStringBuilderBase を使用した TryConvertFilenameToLongPackageName のオーバーロードを追加しました
-
StaticDuplicateObject がバージョン管理されていないプロパティ シリアル化を使用するようになり、オブジェクトの複製のパフォーマンスが向上しました
-
FMallocBinned3 におけるブックキーピング メモリを削減しました
-
タグ付きプロパティのシリアル化で完全なプロパティ型名をシリアル化し、型スキーマが変更された場合に、より堅牢なアセット ローディングをサポートします。
-
UObject::GetAssetRegistryTags 関数のプロトタイプを変更し、呼び出しが SavePackage (すべてを計算) か load (高コストのタグをスキップする) かを報告するコンテキスト オブジェクトを取るようにしました。この新しいコンテキスト オブジェクトにより、エンジン クラスとライセンシー クラスは、エディタセーブ、クックセーブ、ダイナミック オンロード更新の 3 つのシナリオに対して異なるタグをレポートすることができます。
-
小さなビンのアロケーションのために、FMallocBinned2 で最大 128 バイトのアライメントのサポートを追加しました。以前は、アライメントが 16 より大きいアロケーションは OS のアロケーションとして扱われ、メモリ ページ サイズ (4KB) の倍数になっていました
-
追加アロケーションを発生させずにコールスタックを取得するための FThreadManager::ForEachThreadStackBackTrace を追加しました (メモリ不足でクラッシュしている間、メモリ確保の失敗を避けるために使用)。
-
LLM:"[DumpLLM (DumpLLM )] コンソール コマンドに「-Assets」と「-AssetClasses」パラメータを追加しました。これにより、(デフォルトのタグセットの代わりに) それぞれのタグセットがダンプされます。LLM_ALLOW_ASSETS_TAGS と、コマンドラインに「-llm -llmtagsets=Assets,AssetClasses」を指定してゲーム/エディタを起動する必要があります。
-
AssetFails 関数、AssetWarning 関数、AssetPasses 関数で const オブジェクト パラメータを使用するようにしました
-
ClassToObjectListMap (UObjectHash の一部) のハッシュ マップを配列に置き換えるオプションを追加しました。これにより、ルックアップが改善し、メモリ フットプリントが削減します。
-
CVar の core.EnsureAlwaysEnabled を追加し、secureAlways を無効にできるようにしました
-
ProgramDataとLocalAppDataから追加の BuildConfiguration.xml ファイルをロードします -
TBitArray に範囲ベースのループ サポートを追加しました
-
派生データ キャッシュ (DDC) リプレイの保存にマルチプロセス サポートを追加しました
-
TSet::TBaseKeyIterator に欠落していた GetId() メンバーを追加しました。これを実装しない場合、TMap::TKeyIterators/TConstKeyIterators で GetId() を使用できません。キー同士が衝突する可能性があり、実際の KeyArgumentType の値が重要なときに指定の KeyArgumentType の KV ペア ElementType を見つけたい場合、欠落していたこの実装が特に役立ちます。使用例として、大文字と小文字を区別しない CompareIds で比較するが、別のケーシングでユニークな DisplayIds を持つためにエディタ内の FNames を取り扱うことが挙げられます。マップに挿入されたときに使用されたケーシングを知りたい場合は、以下のようにします:
TMap<FName, FAssetPackageData*>::TConstKeyIterator It = CachedPackageData.CreateConstKeyIterator(PackageFNameOfAnyCase); FSetElementId Id = It.GetId(); if (!Id.IsValidId()) { return nullptr; } const TPair<FName, FAssetPackageData*> KVPair = CachedPackageData.Get(Id); FName PackageNameWithCasingUsedUponInsertion = KVPair.Key; return KVPair.Value; -
stat.h から coreminimal.h と color.h のいくつかの未使用の include を削除しました。
-
WITH_EDITOR でコンパイルした場合、Linux/Mac が クラッシュ レポーターのエディタ バージョンを使用するようにしました。
-
Config Set プロパティで複数行入力のサポートを追加しました。Set プロパティに対する既存のコンフィグ値は、以前と同じ方法でロードされるはずです。構文の例:SetProperty=("Value1", "Value2") +SetProperty="Value3" +SetProperty=("Value4", "Value5")
-
Oodle Data、ネットワーク、テクスチャが 2.9.12 に更新されました
-
UObject と FField 用の GetFNameSafe 関数を追加しました。これらは、既存の GetNameSafe 関数を補完するものです。
-
FInterpCurve
::FindNearestOnSegment を更新し、TFunctions のアロケーションを回避しました。 -
構築時のロック取得のため、コンストラクタを FMutex に追加しました
-
UE_VALIDATE_INTERNAL_API を設定して、定義された UE_INTERNAL を制御するようにしました。エンジン モジュール、および [[非推奨]] 非エンジン モジュールの場合、空のマクロがセットされます
-
MoveTemp や Forward のようなキャスティング関数が省略され、ダイレクト キャストに置き換えられるようにしました。
-
StripPrivateSymbols による「/PDBSTRIPPED msvc」シンボルのサポートを追加しました
-
すべてのタイプのサブジェクト テンプレートに対するクエリを正しく処理する新しい IsTemplateForSubobjects 関数を追加し、関連するコメントを改善しました
- クッカー:SkipOnlyEditorOnly。このフラグは現在デフォルトでオンになっており、最終的には使用しないことが非推奨となります。エディタのみの理由でクック中にロードされたパッケージは、クック出力に自動的に追加されなくなりました。クックされたパッケージから参照された場合、あるいは他の方法で参照された場合にのみ、クックに加えられます。
- SkipOnlyEditorOnly が問題を引き起こし、それを修正する方法が明らかでない場合、DefaultEditor.ini:[CookSettings]:bSkipOnlyEditorOnly=false と編集して再びオフに戻し、UDN を送信して問題解決のサポートを受けてください。
-
インクリメンタルな到達可能性分析 (ガベージ コレクション) が進行中の場合、値の割り当てや TObjectPtr のコピー構築を行うと、ガベージ コレクタの書き込みバリアが実行するようになりました。これは、TObjectPtr が構成可能でも割り当て可能でもなくなることを意味します。
-
スケジューラを改善し、バグを修正しました
-
領域のエクスポート名の内部ストレージの詳細が API にリークしてしまうため、FHarvestedRealm::NameExists が FNameEntryId ではなく const FName& を消費するように変更しました。領域には表示名しか保存されないので、正しく保存されたかどうかを確認する際に、表示名を使って直接 FNames を比較します。114 ミリ秒 -> 3 ミリ秒 (SaveContext_NameExists を 71,680 回呼び出し)
-
メモリに最適化されたカスタム IOStore ハッシュマップ - 65.7 -> 25.9MB (Gen5 コンソールの内部プロジェクト)
-
多くの UE トレイトを標準的なトレイトに置き換え、メタプログラミングの構成をよりシンプルでコンパイルが速い構成にしました。
-
NTDDI_VERSION を WindowsPlatform.TargetWindowsMinorVersion で設定するサポートを追加しました
-
TGuardValue、TOptionalGuardValue、TGuardValue_Bitfield_Cleanup、TScopeCounter のコンストラクタに nodiscard を追加しました。
-
PR #11383:Visual Studio Workspace の Project Generator をサポート #contrib 11383
-
Windows 用のメモリ トレースにおいて、標準スタック ウォーキングへのフォールバックを追加しました。一部のケースでは、アンワインド テーブルのアプローチが機能しないこともありました (Clang でコンパイルした場合など)。そのような場合は、標準的なスタックウォーキングの方法に戻します。
-
msvc 14.39.x を優先する msvc ツールチェーンに追加しました
-
UnrealPak:IoStore の記述にインポート スクリプト オブジェクトがない場合のチェックを警告に変更します
-
Windows、Linux、macOS 用 UnrealTraceServer バージョン 1.20。
-
インクリメンタルな Gather Unreachable Objects (ガベージ コレクションの到達可能性分析後のフェーズ) のサポートを追加しました。このフェーズを複数のフレームに分割することで、低速またはシングルのスレッド プラットフォームでの不具合を回避できるようになりました。
-
シングル スレッド環境でのランタイム時に、オブジェクトを到達不能としてマークする (ガベージ コレクションの初期段階) パフォーマンスが大幅に向上しました。
-
UnrealTraceServer のユニバーサル バイナリのサポートを追加しました。
-
インクリメンタル到達可能性分析 (どのオブジェクトを破棄するかを決定するガベージ コレクションのフェーズ) の実験的機能のサポートを追加しました。到達性分析を複数のフレームに分割し、フレームごとのソフト時間制限を指定できるようにしました。
-
派生データ構築 API でメタデータをより広範囲に公開しました
-
優先 MSVC コンパイラを 14.38.33130 - VS2022 17.8 にバンプしました
-
UE_TASKGRAPH_THREAD_LIMIT を使用して、コンパイル時に TaskGraph が使用するワーカー スレッドの総数をアプリケーションが制限できるようになりました。
- UPackage->Guid は非推奨となり、UPackage に移行しました->GetSavedHash。
- FPackageSummary::Guid は非推奨となり、FPackageSummary::GetSavedHash に移行しました。 FAssetPackageData::PackageGuid は非推奨となり、GetPackageSavedHash に移行しました。 UPackage->Guid は長期間、非推奨とされてきました。5.5 では削除される予定です。新しい SavedHash API はエディタでのみ使用可能です。クックされたゲームでは、UPackage を削除しています->メモリが不要でコストがかかるため、Guid の代替はありません。 GetSavedHash は現在、古い非推奨の Guid を返すだけですが、5.5 ではディスクに保存されたパッケージのバイトのハッシュを返すように変更されます。
-
コンテンツ ブラウザのツール ヒントのプロパティ [Has Virtualized Data (仮想化データを含む)] は、プロジェクトで仮想化アセットが有効になっている場合にのみ表示されるようになりました。
-
PR #11565:アナライザ ポートの新しいフォーマットを追加しました #contrib 11565
-
コマンド コンソールのオートコンプリート リストに以下のコマンドを追加しました:
[obj gc (オブジェクト GC)]、[obj dump (オブジェクト ダンプ)]、[debug crash (デバッグ クラッシュ)]、[debug rendercrash (デバッグ レンダリングクラッシュ)]、および拡張された[obj refs (オブジェクト参照)] -
一部の FString デフォルト引数を一部のヘッダから移動し、FString の前方宣言だけでコンパイルできるようにしました。
-
NetworkVersion.h を Vector2D.h から削除しました。
- 保存と ResetLoaders は、保留中の非同期リクエストがすでにある場合、パッケージ固有のロード リクエストのみをフラッシュします
バグ修正:
-
PR #10682:msvc プラットフォームを Clang でリンクする際に -Xclang で -gcodeview-ghash を渡します #contrib 10682
-
主要な TIsContiguousContainer トレイトが不完全な型でインスタンス化されないようにし、その結果、悪い状態に記録されないようにしました。確定可能な終端を持たないため、連続したコンテナとはみなされない境界のない配列型の特殊化を追加しました。
-
PR #11411:Rider プロジェクト ファイル ジェネレータの不具合を修正しました #contrib 11411
-
bWarningsAsErrors=true のとき、UE_DEPRECATED_MACRO が MSVC でエラーを出力するようにしました。
-
FObjectAndNameAsStringProxyArchive のデシリアライズ時の警告「オブジェクトが見つかりません『Object None.None』」 を修正しました。これにより、NULL オブジェクトを大量に含むバッファのロードもかなり高速化されるはずです
-
PR #11261:Linux でツールチェーンのインクルード パスが抜けていた問題を修正しました #contrib 11261
-
PR #10515:Rider プロジェクト ファイルにアーキテクチャ情報を追加しました #contrib 10515
-
PR #11163:UBT から Rider への追加プロジェクト プロパティを公開しました #contrib 11163
-
ダーティ フラグのクリアとファイル サイズの更新を InnerSave の外に移動し、ダーティ状態の更新のためのデリゲート ブロードキャストが "IsSavingPackage" スコープの外で発生できるようにしました
-
FMovieSceneEventParameters 内の UE のバージョン管理をサポートします
-
msvc プラットフォームを Clang でコンパイルする際、デバッグ情報が失われるケースがあったため、デバッグ情報の最適化を無効にする設定を追加しました
-
ユーザーが TOptionals に邪魔な未設定値を入れられないようにするためのチェックを追加しました。
-
PR #10511:ツールボックス 2 の rsca を修正しました #contrib 10511
-
「ロギングなし」構成のトレースを修正しました
-
PR #10594:生成された Rider プロジェクトファイルにサブルール ファイルのリストを追加しました。#contrib 10594
-
PR #11227:macOS のシステム インクルード パスが欠落していた問題を修正しました #contrib 11227
-
インターフェースに関連するコメントを、ブループリントを実装したインターフェースの実際の動作と一致するように改善しました。インターフェースの公開ドキュメントも改善しました。ブループリントで実装されたインターフェースは、実際にはオブジェクトの C++ 表現には存在しないと記載されています
-
インストール済みのビルドでプロジェクトをクリーンアップする際に、UnrealBuildTool.dll が存在することを確認します
-
ヘッダのみのディレクトリが追加または削除された場合、makefile を無効にします
-
TreatWarningsAsErrors が基礎となるログの詳細に影響しないように修正し、TreatErrorsAsWarnings を追加しました
-
スパース クラス データを書き出すべきかどうかを判断する際に、シリアル化されないプロパティは考慮されなくなりました
-
Mac/Linux 用の UnrealTraceServer のソケット キープ アライブを修正しました。
-
クッカー:エラーメッセージの改善:「エクスポートとして保存されませんでした」というメッセージを、より明確なテキスト「クックからコンテンツが消失しました」に変更し、その理由についてのフィードバックを追加しました。
-
スパース クラス データの _DEPRECATED プロパティが VisibleDefaultsOnly または EditDefaultsOnly としてマークされないようにしました
-
Toctree2::ApplyOffset 中にルート ノードの子ノードが適切に設定解除されない問題を修正しました。
-
PR #10946:[Rider] インクルード オーダーの非推奨定義を追加することで IntelliSense を修正しました #contrib 10946
-
BootstrapPackagedGame:必要な依存関係がアプリケーションにバンドルされている場合、prereq インストーラーをスキップできるようにしました
-
FName ベースのタグが無効の場合、「CustomTag」のトレースを有効にしました。
-
FArchiveFromStructuredArchiveImpl のデストラクタで、FMulticastSparseDelegateProperty::SerializeItem() がアーカイブ アダプタを閉じないためにアサートが発生する問題を修正しました。
-
C# の JsonWriter で、値名でエスケープされるべき文字がサポートされない問題を修正しました。
-
TFrameValue 内の移動セマンティクスを修正しました。
-
PR #10731:UnrealBuildTool:GenerateClangDatabase を修正しました #contrib 10731
-
PR #11345:Rider で Unreal Engine のソース全体を再構築する際の不具合を修正しました #contrib 11345
- エディタでクックされたアセット レジストリをクエリする際に、マウントされていないパッケージをフィルタリングするようにしました
- これにより、クック済みのアセット登録と未クックのアセット登録の間で一貫性が確保されました
-
CompareWithNumericSuffix に空の文字列を渡すとクラッシュする問題を修正しました。
-
クッカー:AdditionalPluginDirectories:AdditionalPluginDirectories 内の DLC プラグインをクックする際に、RemappedPlugins ディレクトリを探すようにステージングを修正しました。RemappedPlugins にすべてのメタデータを保存するようにクッカーを修正しました。通常の DLC でも、すべてのメタデータをプロジェクトのディレクトリではなく、DLC のディレクトリに保存するように修正しました。
-
レガシー ローダーの非同ディファード ポスト ロード ステップ中にプリロードされるオブジェクトが、レガシー ローダーがトラックしたオブジェクトのリストに確実に追加されるようにしました
-
C 配列の一部の TArray を修正しました。これらはサポートされておらず、部分的にのみ機能していました。
-
DDC が読み取り可能または書き込み可能でない場合に致命的なエラーを追加しました
-
FileInlineGenCPPMap がモジュール コンパイル環境用に確実に設定されるようにしました
-
NoExportTypes.h を更新して不足エントリを EUnit に追加し、すでに存在する単位の順序を修正しました。これにより、シリアル化の問題が一部修正されます。
-
Windows 上で、サポートされない CPU が見つかった場合に、サポートされていない命令例外を待機するのではなく、PreInit のゲームを終了します。
-
Throttle ノードを使用しているときの DDC 統計の作成を修正しました。
-
FSoftClassProperty の CborStructSerialalizerBackend を修正しました。これを FSoftObjectProperty と同様にシリアル化しており、オブジェクト参照が無効な場合でもパスを有効にできます。
-
ConcurrentLinearAllocator:FastPath プラットフォームでサポートされたアライメントを含むブロックが割り当てられないようにしました。すべてのプラットフォームで 64kb アライメントがサポートされているわけではないため、現在このようなプラットフォームでは Malloc に失敗します。
-
-Project を使用して汎用ターゲット (UnrealEditor、UnrealGame) を構築するときに、プロジェクト ソース ディレクトリをパスを含めて正しく追加します
-
サポートされているバージョンの最小または最大がリクエストされたときに、優先 WindowsSDK が利用可能な場合でも選択しないように修正しました
-
TArrayView コンストラクタ (特にほかの TArrayViews からコピーする場合) から一部の冗長な check() を削除しました。
-
TMatrix2x2 回転コンストラクタを修正しました。FQuat2D の代わりに TQuat2 を使用します。
-
構造体の ArchiveCrc32 operator<<(FArchive&) テンプレートの生成を修正し、ほかに使用できる適切な変換がない場合に ArchiveCrc32 の直接シリアル化にのみ適用されるようにしました。
-
CompactBinary の AsArray と AsObject を型のエラーを格納するよう修正しました
-
TBitsToSizeType の静的アサートを、ゼロが渡されたときにのみ作動するよう修正しました。
-
TScriptInterface の暗黙的変換を修正しました。
-
オブジェクトへの参照をログ記録する際のコンテナ プロパティ名の報告を修正しました。
-
IoStore にマウントされたクック済みパッケージからバルクデータ ペイロードを読み込んだときに、必要以上のデータがディスクから読み込まれるバグを修正しました。
-
TArray 内で明示的な memmove を RelocateConstructItems に置換しました。未変更データのミッドループの繰り返し再読み込みを一部最適化しました。
-
VC バグの回避策:インライン化の際に VC はロード->ストア転送ストールを回避しようとしますが、物事を見失い、意図せずに作成した一時ファイルにアライメントを必要とするため、アロケータ/スタックがそれらをアライメントするかどうかによって、半ランダムにクラッシュが発生します。これを修正するには、値を直接設定するように切り替えます。
-
TSparseArray::operator() のインデックス化の使用をその TConstSubsetIterator 内で修正しました。
-
JsonArchive 構造フォーマッタをコピー不可能にし、その不要なコピーおよび移動コンストラクタが IntelliSense に表示されないようにしました。
-
PR #10620:BuildU[A|B]T.bat が明示的に Windows の find.exe ユーティリティを呼び出すようにしました #contrib 10620
-
事前作成されたアセット レジストリの読み込みが終了する前にエンジンがアセット レジストリをクエリする問題を修正しました。
-
パースする文字列の長さが 0 で、バッキング メモリがある場合の FString::ParseIntoArray を修正しました
-
FLinkerInstancedPackageMap::BuildPackageMapping を大文字と小文字を区別するように修正しました。- 下位互換性のため、TStringView<>::Contains にオプションの SearchCase パラメータを追加し、TStringView<>::Find のデフォルトを ESearchCase::CaseSensitive に変更しました
-
FStructUtils::AreSameLayout が nullptr, nullptr に対して true を返すよう変更しました。これにより、クラスにスパース クラス データがない場合のクラス レイアウトの比較が修正されました
-
Intel コンパイラ 2024.1 をサポートします
-
エンジン全体で TLS スロットのデフォルトの初期化を 0 に修正しました。0 は有効な TLS スロットであり、一部のスロットを 0 に対してテストしてその有効性を検出でき、良い場合でも TLS スロットのリークが発生していました
-
一部の到達不可能なコード エラーを修正しました。
-
場合によってシングル エントリ設定プロパティが正しく保存されない問題を修正しました。設定プロパティに含まれているロード動作に一致する要素が 1 つ以下の場合に、UObject::SaveConfig がデフォルトの特殊化されていない動作にフォールバックするようにしました
-
Mac および Linux で TraceAnalysis の SymsLib リゾルバを有効化しました。
-
PR #11563:UnrealVS:暗号化 Perforce サーバー ポート アドレスにプレフィックス「ssl:」を追加しました #contrib 11563
-
FObjectPtr に FArchiveFromStructuredArchiveImpl::operator<< オーバーロードを追加しました。これにより TSubclassOf をシリアル化中に発生するクラッシュが修正されました。
-
TStaticBitArray::operator== const の間違いと暗黙的な変換により operator!= が使用されず、一時ファイルが構築されてそれが比較されてしまっていた問題を修正しました。TStaticBitArray::HasAnyBitsSet() を追加しました。
-
MpscQueue - 移動のみの型のデキューを修正しました。
-
ダブル リダイレクタが一部の読み込み順のエッジ ケースで自身を適切に解決しない問題を修正しました
-
外部プロジェクトのシングル ファイルのコンパイルを修正し、追加の target.cs ファイルが表示されるようにしました
-
Linux で UnrealTraceServer のタイムスタンプを修正しました。
-
EX_Let は、プロパティにセッターがある場合に試行された null オブジェクトへの割り当てを処理します
-
最初のイテレーションで BreakBeforeEvaluate() が true を返した場合の、FInterpCurve
::FindNearestOnSegment() の初期化されていない変数を修正しました。 -
完全なトレース イベントが、範囲が指定されたイベントのバッファに収まるようにしました。以前はヘッダとイベント本体が異なるバッファに保存され、誤ったデータとなることがありました。
-
別の単位型から初期化したときに FNumericUnit の初期化されていない const 「単位」メンバーにより発生していたコンパイル エラーを修正しました。
-
MB2 アロケータの最適化:- VMA プール ヘッダの余分なページ割り当てを削除しました。- VMA プール統計のレポートを追加しました。- プールごとの余分なロックを削除しました (使用されていない場合)。- スケール係数パラメータは、コンパイル時定義により設定可能です。
-
HexToBytes の FAnsiStringView オーバーロードは、すでに UTF-8 オーバーロードで処理されており、曖昧なオーバーロード解決の原因となるため、削除しました。
-
FPSChart の HTML 形式を修正しました
-
オブジェクトのアノテーション システムで発生する可能性のある競合状態を修正しました
-
トレースされたログ メッセージに 1500 文字以上が許容されるようにしました。
-
DDC 構成にブート キャッシュが存在する場合のクラッシュを修正しました
-
開発ビルドの Windows リソース ファイルの不要な再ビルドを防止し、プリコンパイル済みまたはシッピング ターゲットの exe および dll の Build.version に埋め込まれた情報のみをバイナリが再リンクする頻度を削減しました。BUILD_VERSION が定義されていない場合に、デフォルトの Windows リソース ProductVersion を ENGINE_VERSION_STRING に設定しました
-
non-nullable 型のオブジェクト プロパティのデフォルト値を作成する際に、テンプレート上にそれ自身を再構築しようとした場合に発生していたクラッシュを修正しました。
-
ManualResetEvent の未定義の動作を修正しました。
-
PR #11342:VSCode に統合ターミナルを使用します #contrib 11342
-
PR #11012:Makefile ジェネレータがプラットフォームに依存しないようにしました #contrib 11012
-
Linux の UnrealTraceServer ディレクトリのリッスンを修正しました。ファイル通知 API が名前変更をリッスンするように設定されていませんでした。
-
中間パスが常に一致している必要があるため、インストール済みエンジンに対して別の UnrealIntermediateEnvironment フォルダを使用できないようにしました。
-
PR #10781:buildconfiguration.xml を SNDBS クラスに適用しました #contrib 10781
-
TArrayView のプライベート名前空間の名前を標準に合わせて変更しました。
-
TWeakFieldPtr が「const T」テンプレート パラメータでアサートされるのを修正しました。
-
FWindowsPlatformProcess::AddDllDirectory の破損したファイル拡張子フィルタを修正し、Windows でのブート時間を向上させる Windows dll ディレクトリ キャッシュ最適化を復元しました。
-
PR #10683:シッピング msvc プラットフォームと
lld-linkのリンクを修正しました #contrib 10683 - -Mode=GenerateClangDatabase はデフォルトでコンパイラとして clang を使用するべきです
非推奨:
-
TChooseClass を非推奨にしました。
-
GetCurrentTag/InvalidateTag を非推奨にし、すべての呼び出しを削除しました。この機能は信頼性が低く、TSoftObjectPtr では使用されなくなっています
-
コンテナの bAllowShrinking パラメータを置換する EAllowShrinking を追加し、ブール型のオーバーロードを非推奨にしました。
-
Visual Studio 2019 のサポートを削除しました
-
PLATFORM_COMPILER_HAS_IF_CONSTEXPR を削除しました。CONSTEXPR、PLATFORM_COMPILER_HAS_DECLTYPE_AUTO、PLATFORM_COMPILER_HAS_FOLD_EXPRESSIONS、UE_NORETURN を非推奨にしました。
-
Windows で構造化デバッグ出力を有効にする UE_LOG_JSON グローバル ミューテックスを削除しました。他のツールとのインテグレーションは、-JsonDebugOutput コマンド ライン引数に依存します。
-
機能していない HybridExecutor を削除しました
-
GET_VARARGS マクロを非推奨にし、GET_TYPED_VARARGS に置き換えました。
デベロッパー ツール
新機能:
-
コマンド ライン オプション -LiveCoding=true|false を使用して LiveCoding を有効/無効にできるようにしました
-
コード ジェネレータで重要でない C++ UHT 互換性シムを削除しました。
-
INI セクションで複数の MemReport を設定します。各コマンドを別のファイルに出力する「File」コマンド配列を使用します。
-
UHT で生成されたコードをクリーンアップしました。これには、一般的な形式の問題や構成も含まれます。
- ContainerAllocationPolicies.h に define ENABLE_ARRAY_SLACK_TRACKING を追加しました。これは、配列スラック (TArray コンテナの未使用の要素) に関する詳細なレポートを生成する SlackReport コンソール コマンドを有効にします。配列をより正確なサイズを使用したり、サイズに応じてトリミングしたりできるメモリの節約箇所を特定するのに有益です。
- レポートは共有/ログ/SlackReport の TSV (タブ区切り) ファイルとして生成されるため、スプレッドシート プログラムに読み込むことができます。ファイル名を指定するか、インクリメントされるインデックスの付いたデフォルトを使用できます。パラメータ -Stack=N (最大 9) を使用すると、スタック フレームの深度を調整できます。値を小さくすると、少し異なる呼び出しスタックからの同じ割り当てのインスタンスを融合できます。
-
MemReport で、コマンドの出力を Engine.ini の [MemReportCsvCommands] セクションで指定したコマンド用の個別の CSV ファイルに書き込めるようにしました。
-
生成されたコードの UHT データで可能な場合に constexpr が使用されるようになりました。
-
UHT で生成されたプライベート コピーのコンストラクタ定義から MODULENAME_API を削除しました。
-
CsvProfiler - CSV メタデータに終了キャプチャのタイムスタンプを追加しました。これにより、StartTimestamp と新規 EndTimestamp のデルタをチェックすることでキャプチャの持続時間を簡単に計算できます。これは、すべてのフレームの時間を見て持続時間を計算するよりもはるかに高速です。
-
PluginReferenceViewer - すべてのプラグインのアセット参照を表示するアセット参照ビューアを起動するコンテキスト メニュー アイテムを追加しました。
- 一部のトレース スコープにさらに補助情報を追加しました。
- LoadTime チャンネルをアクティブ化したときの AsyncLoading パッケージの名前。
- 遷移中の GameFeaturePlugin ステートマシンの名前。
- Scope GC インクリメンタル解析の範囲を指定し、1 つのトレース領域で破壊済みのものを削除しました
-
[MemoryTrace] アセット メタデータ スコープでより多くの割り当てが網羅されるようにしました - Iris ネットワークでスポーンされたアクタのパッケージ/オブジェクト/クラス メタデータを追加しました - ConfigFiles のアセット メタデータを追加しました - LinkerLoadPackageSummary からの割り当てのパッケージ メタデータを追加しました - Object::Serialize 割り当てのメタデータを追加しました - UI/Slate および UI/UMG のメタデータを追加しました。- UObjectHash/UObjectIndex グローバル バッファ realloc のメタデータ スコープを削除しました。
-
LowLevelTests.xml のステップ後の実行を無効/有効にするオプションを追加しました。
-
[UE] GameplayTags.DumpTagList を改善しました。各 GameplayTag のソースと参照の出力を追加しました。タグにネイティブまたは DefaultIni ソースがある場合に表示する列を追加しました
-
関数シグネチャに TObjectPtr が表示される際のエラー メッセージを改善しました。
-
[LLM] LLM が有効な場合に hitchdetector を無効にします。LLM キャプチャはキャプチャ時に CPU オーバーヘッドを追加すると想定され、ハング/ヒッチ検出によりログに役に立たない情報が追加されて状況が悪化します。
-
UFUNCTION 宣言の開始時に C++ 属性指示子を追加する制限付き機能を追加しました。
-
UHT に、より複雑な #define スコープのサポートを追加しました。
-
新しい P4VUtil 「結合シェルフ」を追加しました。これは、選択された複数の CL を結合する新規シェルフを作成し、棚上げした CL と 棚上げが解除された CL の両方と機能します。
-
アクティブなレプリケート済みオブジェクト数のクライアント側 CSV 統計を追加しました
- RedirectToFile 開発コマンドを追加しました - 使用法:RedirectToFile
[COMMAND_OPTIONS]...- COMMAND の結果を FILEPATH で指定したファイルに出力します。 - セキュリティの目的で、FILE_PATH はサンドボックス化されます。Project/Saved ディレクトリ内のサブディレクトリのみを使用可能です。 - コマンドはファイルを作成する前に必要なディレクトリを作成します。 - RedirectToFile は DEFER コマンドでは機能せず、MEMREPORT には効果がありません
バグ修正:
-
LAYOUT_FIELD_INITITALIZED のパースに関する UHT の問題を修正しました
-
UHT で発生していた、サイズが指定されていない列挙型がブループリント タイプとして使用できてしまう問題を修正しました。再び uint8 に制限されます。
-
より多くの SceneRender 再割り当てが、EngineMisc ではなく LLM タグで正しくマークされるようにしました
-
XML パーサーで改行が保持されるようにしました
-
Live Coding ソースからインクルード ファイル マクロの使用法を、SN-DBS で問題が発生していたため削除しました。
-
「FFunctionalTestBase」から継承された「FunctionalTesting」外のタイプを宣言したときに発生していたリンカの問題を修正しました
Horde
新機能:
ProgramData\HordeTrayApp\Settings.jsonにアイドル設定を追加しました。これにより、ローカル エージェントによるタスク処理を停止させる必要のある重要なプロセスを設定できます
Insights
API の変更:
-
FCpuProfilerTrace::OutputEventType() と FCpuProfilerTrace::OutputBeginDynamicEvent() は、CpuChannel が有効な場合にのみ呼び出す必要があります。そうでないと、「spec」トレース イベントが発生せず、「
」 CPU タイマーになります。 -
FCpuProfilerTrace::OutputEventType と FCpuProfilerTrace::OutputBeginDynamicEvent は、CpuChannel が有効な場合にのみ呼び出す必要があります。そうでないと、「spec」トレース イベントが発生せず、「
」 CPU タイマーになります。また、OutputBeginEvent と OutputEndEvent をマッチするコードを修正しました。
新機能:
-
Unreal Insights でパッケージのサマリに優先順位が表示されるようになりました。これは、パッケージが読み込まれる順序とパッケージの優先順位が尊重されているかどうかを理解するのに役立ちます。
-
Unreal Insights:削除可能な (LIVE でない) トレースが少なくとも 1 つ選択されるとトレースの削除が可能になり、「すべて選択」で LIVE でないトレースをすべて削除できます
-
一部のチャンネルは読み取り専用とマークされており (メモリ トレーシング チャンネルなど)、アプリケーションの実行中はトグルできません。ただし、たとえばコンソール コマンドを使用したりパブリック API を使用したりしてユーザーがこれらのチャンネルを有効にしようとしても、フィードバックは表示されません。この変更により、情報を正しく出力するためにログ記録チャンネル引数が複数の内部メソッドに追加され、必要に応じてフィードバックがコンソールに表示されます。
-
FMemory::SystemMalloc および FMemory::SystemFree のメモリ トレーシングを追加しました。
-
CsvProfiler:名前付きイベント (およびトレース CPU タイミング イベント) を追加しました。FName で特定した CSV 統計にも追加されます。
-
ロード時間の解析用に設計された Insights のプリセットを追加しました。これは、コマンド ラインに -trace=loading を追加すると使用できます。
-
PhysicsField のタグ付けされていないビデオ メモリ割り当ての LLM タグを追加しました。
-
「UnrealTraceServer.exe」プロセスを開始できなかった場合の Windows のエラー メッセージをログ警告に追加しました。UTS の起動に関するログ メッセージも更新しました。
-
トレース エディタ ウィジェットにトレースを一時停止/再開するメニュー項目を追加しました。
-
CONTROL_FLOW_PERF_TRACE_STEP:FControlFlow および TRACE_CPUPROFILE マクロにサポートを追加して、コントロール フロー ノードの実装でイベントを開始し、ノードがいつどのように完了した場合でも、FControlFlow により自動的に終了されるようにしました。これにより、プロファイル トレースに一連のステップがネスト表示されるのではなく、順序どおりに表示されます (実際には技術上これらはネストされた関数として呼び出されます)。ControlFlow はまだ実験的プラグインです。
バグ修正:
-
PlayerController サイクル統計の名前の先頭にある空白を削除しました。
-
D3D12RHI:CreateDiagnosticBuffer を修正し、(MEM_COMMIT だけでなく) MEM_COMMIT | MEM_RESERVE を VirtualAlloc と使用して、メモリ トレーシングでこれらのバッファが正しくトラックされるようにしました。
-
GPUDefragAllocator の再割り当てのメモリ トレーシングと統計を修正しました。
-
CpuProfiler を修正し、スレッドが終了したときに (すでに空でない場合に) トレース バッファをフラッシュするようにしました。
-
さまざまなエンジン ファイルおよびエンジン プラグインで TRACE_CPUPROFILER_EVENT_SCOPE マクロを修正しました。
-
トレース:トレース データ ライターを改善し、スレッドのバッファをドレインし始めたときに使用可能なバッファのみをドレインするようにしました。これにより、スレッドがライターに新規バッファを大量に供給する状況を回避できます。
-
StartTraceSendTo ブループリントを修正しました
-
メモリ トレーシングでラップされたアロケータの名前が正しく報告されるように修正しました。
-
TaskTrace での CpuProfiler トレースの使用法を修正しました。
-
BlueprintActionFilter での CpuProfiler トレースの使用法を修正しました (ENABLE_BLUEPRINT_ACTION_FILTER_PROFILING が有効の場合)。
-
アセット メタデータのメモリ割り当てとの関連付けが LLM と一致するように修正しました。
-
OnDllUnloaded のメモリ トレーシングを修正しました。
-
Unix プラットフォームで ProgramSize 割り当てが不足していた問題を修正しました。
-
レンダリング スレッドの「Frame」 CPU タイミング イベントを修正し、「RenderCommands」トレース チャンネルがオンのときに追加されないようにしました。これは、「BeginFrame」と「EndFrame」コマンドが CPU スコープを定義し (「RenderCommands」チャンネルがオンの場合)、「Frame」タイミング イベントとオーバーラップするためです (その結果、「BeginFrame」と「Frame」タイミング イベントの両方のタイムスタンプが間違ったものになります)。また、「Frame」を「RenderingFrame」に変更し、タイマーがゲーム スレッドで使用されているものとマージしないようにしました。
-
「LoadObject」名前付きイベント (SCOPED_NAMED_EVENT で定義) を「StaticLoadObjectInternal」 (StaticLoadObjectInternal() 関数で時間を測定) として名前変更しました。これは、同じ関数を測定する「LoadObject」 CPU スコープ (UE_TRACE_LOG_SCOPED_T マクロを使用して定義、メタデータを含む) が別にあるためです。
-
統計カウンターのトレースを修正しました (-trace=stats)。各スレッドで、追加のバッファ (初期バッファがフラッシュされた後) の初期タイムスタンプが間違っていました。
-
状況によって、TraceLog ワーカー スレッドとトレーシング スレッド間でのスレッドの欠乏が原因で、スレッドの欠乏が発生することがあります。
-
仮想割り当てのメモリ トレーシングを修正し、MEM_COMMIT (nullptr アドレスを指定) のみが使用されている場合にも割り当てをトラックするようにしました。
フレームワーク
API の変更:
- ティック機能を必要とする LocalFogVolumeComponent の派生クラスは、そのコンストラクタの PrimaryActorTick.bCanEverTick をオーバーライドする必要があります。
新機能:
-
Electra メディア プレーヤーの DX12 サポートを変更し、デコーダからのさらに最適化されたデータの配信を許容できるようにしました。また、Windows SDk 22621 以降を使用している場合に、さらなる最適化を追加します。
-
MediaFramework、ImgMedia、WmfMedia、および Electra の再生タイミング制御とブロックされた / 同期された再生動作に関するさまざまな問題を修正しました
-
アクタが一時 ChildActorComponent transient によって常にスポーンされるようにフラグを追加しました
-
GameFeature プラグインは、参照にプロパティ "activate": true が含まれている場合、参照プラグインによってもアクティブ化されているプラグイン依存関係を非アクティブ化します
-
非標準 HDR ストリームのビデオ ストリームからの比色分析に対するサポートを拡張しました (8 ビット HEVC データで Rec2020 および PQ を使用できるようにするなど)
-
Electra の Xbox GDK 再生コードからのレンダリング スレッドにオンデマンドでテクスチャを作成する必要性を削除し、デコードのパフォーマンスを向上しました
-
プラグインがアクティブ化されている場合に、リストされているプラグイン依存関係を選択的にアクティブ化できる機能を追加しました。プラグイン参照には、プロパティ「"Activate: true」が必要です
-
バグ修正:LocalFogVolumeComponent のパフォーマンスの問題を修正しました。PrimaryActorTick.bCanEverTick を false に変更しました。
-
オプションのプラグイン依存変数は、コンパイル時に有効化するか、コマンド ラインで有効化する必要があります。そうしないと、起動時にプラグイン マネージャーが有効化するプラグイン依存関係リストを列挙するときに無視されます。
-
エディタ内で減衰設定をライブ更新できるようにしました。
-
WMF の WmfMedia のステート処理を変更し、再生タイミングとサンプル処理の欠点を修正しました
-
CDO でのサブオブジェクトの再インスタンス化を修正し、インスタンスに同じロジックを再利用してそれらのサブオブジェクトも修正しました。
-
拡張入力表示デバッグ コマンドでデバッグ ターゲットを使用できるようにし、デバッグ ターゲットで他が選択されている場合でも、ゲーム インスタンスの最初のローカル プレイヤーの入力情報のみが表示デバッグ メニューに表示される問題を修正しました。
-
不許可のプラグイン エントリにデベロッパー コメントを含めることができるようにしました。データ型を文字列から構造体に変更しました。下位互換性を保持しました
-
JSON を元のプロパティ ケーシングで記述できるようにしました。
-
UWorld::CleanupWorld の警告にワールド名を追加し、関連の問題をより速く診断できるようにしました
-
同じ CDO サブオブジェクトの修正をアーキタイプに適用しました
バグ修正:
-
Electra の AVF テクスチャ サンプル コードの GPU ステートの管理を修正し、一部の Apple デバイスでのビデオ再生で発生するグリッチを修正しました
-
PC DX12 P010 形式の SRV サポートを修正しました。プレーン選択コードが不足していました
-
Electra デコーダから返された比色分析情報からのテクスチャ サンプル設定を修正し、エンコーディングとマスタリング表示情報が正しく反映されるようにしました
-
プラグイン テンプレートで、新しいプラグインが作成された後にパッケージ名が修正されない問題を修正しました。これは、2 つのテンプレート ファイルのファイル名が同じで、拡張子が異なる (.csv、.uasset) 場合に発生することがあります。変更されていないファイル タイプのリダイレクタのみを作成する必要があります
-
PR #10885: Large World Coordinates の IsValidLandingSpot を修正しました #contrib 10885
-
ENGINE_API to ALight::PostLoad を追加しました。ライセンシーから報告された CL 27595673 からのリンカ エラーに対するフォローアップ修正です。ALight から派生したカスタム クラスを作成した場合、リンカ エラーが発生し、ALight::PostLoad の定義がないと報告されていました。派生クラスの vtable が PostLoad を呼び出す必要があり、それにはシンボルがエクスポートされている必要がありました。
AI
新機能:
- 学習エージェント 0.2
- LearningAgentsInteractor を大幅に刷新し、より洗練された観測とアクション構造を可能にしました。
- LearningAgentsComponent クラスが ActorComponent から UObject に再ペアレント化されました。LearningAgentsManager に新しい「make」関数を導入しました。
- すべてのブループリントを一からから再構築する必要があります。
-
AI 経路追従:目的地をアクタの位置に更新する前に、到達可能性をテストするオプションを追加しました
- 新しいシンプルな NNE ランタイム NNERuntimeBasicCpu を追加しました。
AI 動作ツリー
新機能:
-
PR #9497:BT コンポーネントの説明形式の不一致を修正しました
-
ほとんどのタイプにデフォルトのブラックボード キー値をオーバーライドする機能を追加しました。子ブラックボードが継承したキーのキー タイプを変更できないようにします。
-
BTNode にヘルパー関数 InitializeNodeMemory および CleanupNodeMemory を作成し、ノード インスタンス メモリの作成とクリーンアップを処理できるようにしました。インスタンス化されたメモリを使用する BT ノードを更新し、新規ヘルパーを使用してそのインスタンス メモリを作成および破壊するようにしました
-
[動作 ツリー] ノード特定のエラー報告のサポートを追加しました
-
UBTTask_FindAndUseGameplayBehaviorSmartObject がオブジェクトを使用する前にスロット位置に到達するようにしました
-
補助ノードにさらにログを追加し、一部の EQS ログを vlog に変換しました
バグ修正:
-
コンポジット デコレーターで使用された場合の TimeLimit デコレーターを修正しました。問題は、実行をリクエストした後にデコレーターが失敗を返すことで、コンポジット デコレーターがオペランド
Orを使用する場合に発生していました -
ForceSuccess デコレーター エフェクトが検索中に制限されないようにしました
-
動作ツリーのコンポジット デコレーターの間違ったツールチップ (「Class が見つかりません、保存されているか確認してください!」) を修正しました
-
[動作ツリー] プロジェクトの起動時に BT アセットを開き直したときに BB が開く問題を修正しました
-
BehaviorTreeEditor の無効な FindInBTResult ポインタにアクセスする可能性があった問題を修正しました
-
適切なクエリ管理のため、検索開始時に BTService から RunEQS がティックされないようにしました。
- TimeLimit デコレーターを更新し、実行 (例: 潜在的中断) のリクエスト後にもアクティブである場合に再びティックされないようにしました
-
タスクが完了し、保留中の実行がある場合に、実行がスケジュールされるようになりました。
-
ティック間隔を使用するタスクのデルタ時間を修正しました。問題は、ティック間隔を使用して実行する新しいタスクが前のタスクからの累積されたデルタ時間を使用してティックされていたことでした。
-
OnBlackboardKeyChanged デリゲートをグローバル マルチキャスト デリゲートに変換し、変更されたアセットにリンクされた各 BehaviorTreeBlackboardView がそのアクションをリフレッシュできるようにしました。
-
ツリーがその EQS クエリが終了したのと同じフレームで停止したときに発生する可能性のあった BT のクラッシュを修正しました。
-
BT デコレーターとサービス リスト (および一部のカスタム ライセンシー グラフ実装) が第 1 レベルと第 2 レベルのカテゴリを同じレベルに配置していた問題を修正しました
-
BT クールダウン デコレーターが、最後に使用された時間が 0 であるために false を返す問題を修正しました。クールダウンの計算も、未定義の動作演算が回避されるように変更しました。
- ForceSuccess デコレーターが無関係なノードからのノード結果に影響しないようにしました。関連するタスクまたはコンポジットが失敗した場合にのみ結果を変更するべきです。
AI デバッグ
API の変更:
-
エディタでの一貫したエンジン タイムスタンプのため、古い FVisualLogger::GetEntryToWrite を非推奨にし、新しい静的な FVisualLogger::GetEntryToWrite を使用するよう変更しました。
-
- オーバーロードに基づく FVisualLogger::GeometryShapeLogf / FVisualLogEntry::AddElement API を非推奨にしました
新機能:
-
FVisualLogger::GetEntryToWrite を非推奨にすることで、エンジンのタイムスタンプを推奨しました。
-
ゲームプレイ デバッガで、起動時に他に適切なポーンが見つからなかった場合にローカル アクタが選択されるようにしました。Shift + ' を使用してローカル アクタを強制的に選択します。
-
PR #9729:ビジュアル ロガー カプセルの最初のパラメータが cpp に一致するよう修正しました
- GameplayDebugger
- ローカル プレイヤーの選択にキー モディファイア「Shift」のサポートを追加しました
:デバッガを ON に切り替え + 1 つの最適なポーン候補の選択 (レティクルに一番近い) | デバッガを OFF に切り替え を長押し:デバッガを ON に切り替え (開いていない場合) + Continuous 最適なポーン候補の選択 (レティクルに一番近い) - Shift +
:デバッガを ON に切り替え + ローカル プレイヤーの選択 | デバッガを OFF に切り替え - Shift +
を長押し:デバッガを ON に切り替え (開いていない場合) + ローカル プレイヤーの選択
-
動作ツリーのデバッグの改善: - 動作ツリーのデバッグが一時停止されたときに、デバッグ ウィンドウの左下に警告が表示されるようにしました。- 必要に応じてインスタンス化ノードからランタイム値を取得し、デバッグ時に正しい値が表示されるようにしました。- 動的なサブツリー ノードをダブルクリックしたときに、実行中のサブツリーが開くようにしました
-
[VisLog] 複数の PIE セッションの VisLog 機能を改善しました。TimeStamp にグローバル エンジンの TimeStamp が使用されるようにしました。デバッグしやすくするため、WorldTimeStamp も別に記録されます。PIE セッション中にこのエンジンの TimeStamp を使用することにより、クライアント イベントとサーバー イベントの時間を正確に記録でき、タイムラインでレプリケートされたデータのエフェクトをはっきり確認できます。
- ビジュアル ロガーの改善点: 球ビジュアル ログを追加しました。 さまざまなビジュアル ログ (ボックス、OO ボックス、コーン、シリンダー、カプセル、球) の「ワイヤー」バリアントを追加しました。 ほとんどのビジュアル ログ (ボックス、OO ボックス、コーン、円柱、カプセル、球、矢印、円) のブループリント バージョンを追加しました。 ビジュアル ログを描画する際に、読みにくくなる傾向にあるため、ログの色のアルファ値 (シーン プロキシ自体のアルファ値で乗算) を考慮するようにしました (テキストを除く)。指向ボックスのデバッグのレンダリングで回転が適切にサポートされていなかった問題を修正しました (ワイヤーフレームに一致していませんでした)。 常に垂直だった円柱のデバッグのレンダリングを修正しました。 * ビジュアル ロガー ウィンドウのツールチップで、テキストが空のビジュアル ログをスキップします
バグ修正:
- ゲームプレイ デバッガがアクティブのときにゲームを終了 (PIE を終了するなど) すると、後続のプレイでそれ以上のメッセージが画面に記録されなくなる問題を修正しました。
AI ナビゲーション
新機能:
-
[Navmesh] インスタンス アクタ からスポーンしたアクタを構築したときに、領域がダーティとマークされなくなりました (navmesh は置換されたインスタンス アクタからのデータですでに更新されていると想定されます)。
-
NavRelevantInterface.h のインクルード依存関係を削除しました。
-
[ナビゲーション] UGeometryCollectionComponent のナビゲーション関連性を制御するためブールを追加しました。
-
NavRelevantInterface.h、StaticMeshActor.h、AITypes.h から NavigationTypes.h を削除しました。
-
NavigationSystemTypes.h から NavigationSystemConfig.h および NavLinkDefinition.h を削除しました。
-
[Navoctree] 空の境界を持つオブジェクトがナビゲーション八分木に追加されないようにしました。
-
PR #11080:FRecastDebugGeometry でビットフィールド型を int32 から uint32 に変更しました #contrib 11080
-
チート コマンド「ai.debug.nav.DirtyAreaAroundPlayer」を追加しました。これは、動的 navmesh で、範囲 (cm) として指定した値または指定していない場合は 10 メートルの範囲で、ローカル プレイヤーを囲む矩形領域のタイルをダーティとマークするために使用できます。
-
NavLinkCustomInterface にオプションの ReachCheck を追加し、PathFollowingComponent で実行される基本到達テストを NavLink でオーバーライドできるようにしました。 既存のカスタム リンクのパス ReachCheck を改善しました。
-
RemoveTile を最適化し、UpdateActiveTiles() にプロファイル タグを追加しました。
-
UGeometryCollectionComponent に警告を追加し、bUseRootProxyForNavigation なしで bStripOnCook を使用している可能性のある GC (何もエクスポートされない) が検出されるようにしました。
-
NavigationTypes.h から Actor.h を削除しました。
-
NavigationQueryFilter.h がヘッダで不要な場合に削除しました。
-
ログ呼び出し元の優先順位を列挙型値ではなく文字列にしました。
-
[NavMesh] ダーティ領域範囲に NaN チェックを追加しました。
-
[NavMesh] FNavigationDirtyArea を作成する際に、無効な範囲の早期警告を追加しました。
-
新しいタイプの NavModifierComponent である SplineNavModifierComponent を追加しました。これは、指定のナビゲーション領域を、スプラインの周辺にある Nav Mesh のパスすべてに割り当てます。
-
[Navlink] リンク ID 警告にカスタム リンクの所有者名を追加し、ID が競合している場合に問題のアクタを特定できるようにしました。
-
[Navmesh] NavDataConfig で AgentStepHeight が設定されない問題を修正しました。
- NavigationRelevant:
- NavigationOctree で要素を追加/削除する際に、ダーティ領域をスキップする要素を示すフラグを FNavigationRelevantData に追加しました。
- INavRelevantInterface にフラグを制御するメソッド ShouldSkipDirtyAreaOnAddOrRemove を追加しました。
- 変更をバッチ処理できるようにするため、UpdateNavOctreeElementBounds に 1 つのダーティ領域ではなくダーティ領域のリストを指定できるようにしました。
- UInstancedStaticMeshComponent の更新点:
- ナビゲーション境界のキャッシュを追加しました
- ShouldSkipDirtyAreaOnAddOrRemove を実装し、登録時にインスタンスでカバーされる領域全体ではなく、インスタンスを使用する明示的な領域のリストのみをダーティとマークするようにしました。
- 変更のバッチ処理用に PartialNavigationUpdates を追加しました
- 部分的な更新で元の位置に対して正しい領域が送信されない問題を修正しました
- ランタイム時に NavMesh の描画距離を調整するコンソール コマンド「ai.debug.nav.DrawDistance」を追加しました。
-
八分木の詳細が有効な場合に各ノードの要素数を示すラベルを追加しました。
-
UInstancedStaticMeshComponent::GetNavigationPerInstanceTransforms を修正し、想定どおりに指定した領域ボックス内のインスタンス トランスフォームのみが返されるようにしました。これにより、複数のインスタンス ISM を AI ナビゲーションと使用する場合のパフォーマンスが大幅に向上します。
- ANavigationTestingActor
- 指定の半径内でナビゲーション データの準備ができた (生成された) 場合に表示するクエリを追加しました。
-
NavigationSystem ティックに NavigationBuildDetailed CSV プロファイル タグを追加しました。
-
[NavMesh] タイルの制限に関するエラー メッセージと警告メッセージに情報を追加しました。
-
[NavMesh] NavigationSystem に関するエラー メッセージに情報を追加しました。 [NavMesh] タイル プール サイズに関する警告メッセージに情報を追加しました。
-
ナビゲーションの部分的更新用に ISM サポートを追加しました。
- INavRelevantInterface + UObject による PrimitiveComponent の要件を NavigationSystem への登録に置き換えました。
-
NavigationSystem に登録と更新に基づく UObject 専用のデリゲートを追加しました。
-
0 を超える Navmesh を生成する際の Navmesh のラスタライズ問題を修正しました。
-
AITypes.h から Actor.h を削除しました。
-
ナビゲーション モジュールから CoreMinimal.h の使用を削除しました。
- ダーティ タイルの更新:
- ダーティ タイルをマークする際の改善点:
- すべての NavData ActiveTile に対して一度実行されるシードの検索とサブ領域の構築の抽出で、配列ではなくセットを使用するようにしました
- アクティブ タイトルを使用する際に ActiveTile がない場合は、タイルをダーティとマークしないようにしてください。
- プロファイル タグを追加しました サイズが大きすぎダーティ領域の警告メッセージに AdjustedAreaSize を使用するよう修正しました
- NavInvoker
- 呼び出し元を更新する際、最大シート距離と比較するのに 3D 呼び出し元のシード位置を使用します。
- 垂直制限のある InvokersSeedBounds も更新しました。
-
[ダーティ領域] VeryVerbose 詳細を使用し、LogNavigationDirtyArea でタイルをダーティとマークするダーティ領域を表示する紫色のボックスがログに記録されるようにしました。
-
AgentMaxStepHeight を AgentMaxSlope と CellSize に対して検証します。
-
ダーティ領域を呼び出し元のシードの範囲を使用して事前にフィルタリングすることにより、FRecastNavMeshGenerator::MarkDirtyTiles のスピードを向上しました。
-
MarkDirtyTiles にいくつかのプロファイル タグを追加しました。
-
ナビゲーション DirtyAreas がリセットされる際のログをさらに追加しました。
-
カスタム NavLink 静的登録キューを、AActor/UActorComponent に基づいていない NavRelevant オブジェクトも保存する新しいワールド サブシステムで置き換えました。これにより、初期マップ ロード (ANavSystemConfigOverride など) の後に作成された新しい NavigationSystem がそのカスタムナビゲーション リンク マッピングと八分木を適切に再作成するようになります。
-
StaticMeshComponent は、関連のメッシュのコンパイルが完了するまでナビゲーションに関連しなくなりました。この方法は、レンダリング範囲または無効な範囲を返す以前の方法に置き換わるものです。以前の方法では、レベルをロードし、複数のメッシュをコンパイルするときにログ スパムが生成されることがありました。
- NavCollision に範囲を追加しました。これは、ジオメトリが StaticMesh と異なる場合があるからです
- NavCollision の DDC バージョンをバンプしました
- StaticMeshComponent を更新し、可能な場合に NavCollision から範囲が返されるようにしました
- カスタム ナビゲーション可能ジオメトリをエクスポートする際に、InstancedStaticMeshComponent で NavCollision の追加ジオメトリが使用されない問題を修正しました
- InstancedStaticMeshComponent を更新し、GetNavigationBounds、PartialNavigationUpdate、およびナビゲーション用のインスタンス トランスフォームごとの収集に、NavCollision を使用して範囲を計算するようにしました
- UHierarchicalInstancedStaticMeshComponent を更新し、PartialNavigationUpdate に NavCollision からの範囲を使用するようにしました
-
ISMC の物理ステートを作成および破壊する際に、完全なナビゲーションの更新を行う代わりに部分的な更新を使用するようにしました。これにより、大量のタイルのダーティネスが回避されます。
- [Navmesh] navmesh がサーフェスよりもかなり下に沈むために発生していたナビゲーションの問題を修正しました。
- ARecastNavMesh に MaxVerticalMergeError と SimplificationElevationRatio を追加することにより、Navmesh が垂直コリジョンのバリエーションにより正確に適応するようにしました。
-
InvokersMaximumDistanceFromSeed を追加することにより、呼び出し元がシード ポイント (デフォルトではプレイヤー位置) の遠くで更新されるのを制限できるようにしました.
-
NavLinkCustomInterface.h から World.h インクルードを削除しました。
-
NavigationTestingActor:ShowStepIndex が各リクエストでリセットされないようにし、その値を保存できるようにしました (一時的ではなくなりました)。
- [Navmesh] 急勾配スロープでの Navmesh の生成を改善しました。
- Navmesh が勾配が急すぎる場所、ステップ高さのしきい値より上で生成される問題を修正しました。
- RecastNavMesh に目的のレッジ傾斜フィルタ モードを選択する LedgeFilterMode を追加しました。
- ボクセルをフィルタリングする際に、歩行可能な最大スロープを考慮する新しいフィルタ モードを追加しました。
- [Navmesh] タイル生成のデバッグの改善点:
- 輪郭の単純化をスキップし、未処理の輪郭を表示するオプションを追加しました。
- FRecastInternalDebugData にテキスト ラベルを追加しました。
- 輪郭のデバッグ エッジにインデックスと座標を追加し、個別に特定できるようにしました。
-
ポーンが null のときに呼び出し元のシード位置にカメラの位置を追加し、プレイヤーのカメラが呼び出し元の近くにあるが、プレイヤーのポーンが破壊されている場合にナビゲーション メッシュが削除されないようにしました。
-
[Navmesh] SimplificationElevationRatio > 0 を使用する場合に、Navmesh 輪郭で地域間のテッセレーションを実行するようにし、Navmesh の高さの精度を向上しました。
- [Navmesh] 未処理の輪郭の改善点:
- 最初の輪郭ポイントを次のポイントおよび最後のポイントとマージできるようにし、輪郭の他の地域との違いを削除しました。
- 歩行の輪郭が隣接オブジェクトの高さの最大値に達したとき。
-
RequireNavigableEndLocation を MoveToLocationOrActor BP 関数に公開しました。
-
LogNavigationHistory に秒ごとの平均タイル生成数を追加しました。
-
UGeometryCollectionComponent にナビゲーションの関連性を制御するブールを追加しました。
-
[Navmesh] Navmesh の表示ラインを更新し、エッジ境界とポリゴン境界を区別しやすくしました。
-
[Navmesh] Navmesh ジェネレータが破壊されたときに非同期ビルド タスクをキャンセルし、ビルド タスクの漏れを回避します。
-
UMassVisualizationComponent::HandleChangesWithExternalIDTracking で (全コンポーネント サイズをダーティとマークする代わりに) 必要なインスタンスのナビゲーション更新のみを実行するようにしました。
-
[Navigation] ISMC に最初に入力するときに、不要なダーティネスを回避するため、アクタ インスタンスのナビゲーションのみを更新するようにしました。
- SplineMeshComponent に線形外挿のサポートを追加しました
- 範囲の歪めのサポートを追加し、スプラインのローカル範囲 [0, 1] の定義に使用されるメッシュ範囲を超えることができるようにしました
- スプライン上のポイントがデフォルトの範囲外である場合に、位置または範囲に線形外挿を使用します
- この変更は、メッシュ範囲外にあるソケットにアタッチされたオブジェクトの位置も改善します
- ナビゲーション範囲が、歪んだ navcollsion に一致するよう計算およびキャッシュされるようになりました
バグ修正:
-
SimpleCellGrid::Serialize() で範囲チェックと整数オーバーフローがないことにより発生する可能性のあったメモリ破損を修正しました。
-
高い AgentMaxSlope 値を高い CellSize 値とともに使用する場合のボクセル フィルタリングの問題を修正しました。
-
障害物とナビゲーション領域の ISMC サポート:ISMC が障害物としてエクスポートしない問題を修正しました。
-
OnNavigationBoundsUpdated で、範囲が無効な場合に削除リクエストが実行されるようにしました。これにより、NavMeshBoundVolume の追加を元に戻したときの無効な RegisteredNavBounds が回避されます。
-
SHOW_NAV_EXPORT_PREVIEW 定義の使用方法を修正しました。
- [Navmesh] Navmesh が DynamicModifierOnly モードのときに Navmesh タイルが削除され、一部のモディファイアに対して生成されない問題を修正しました。(この変更の前は、DynamicModifierOnly モードで解像度が設定されている場合に、ジオメトリ フラグと DynamicModifier フラグが設定され、接触しているタイルがフラッシュされ、完全に再構築されませんでした。)
-
[Navmesh] bFillCollisionUnderneathForNavmesh の問題を修正しました。
- ISM
- 単一インスタンスを更新する際に、ナビゲーションの部分的更新で最新のナビゲーション範囲が使用されていなかった問題を修正しました
- HISM
- 重複したクエリで使用されるフィルタのスケール サポートがない問題を修正しました
- 配置更新 (回転またはスケールの更新) を実行したときにツリーが有効期限切れとマークされ、次の再ビルドまでナビゲーションのダーティ領域が累積される問題を修正しました。このフェードアウト コンポーネントの変更を最小限に抑えるため、(この操作のほとんどが行われると予想される) ゲームでないワールドで実行する操作に対してツリーが再構築されるようにしました。
-
一部の設定でのエディタの時間とランタイムの問題を修正しました。これまでは、レベルに新しい StaticMeshFoliage または HierarchicalStaticMeshComponent を配置したとき、トランスフォーム データを変更したときに、それらでの Navmesh の生成が正しくありませんでした。
-
[Navmesh] Navmesh の findNearestPoly クエリで範囲が正しくチェックされるようにしました。
- [Navmesh] ナビゲーション モディファイアを使用したときに DynamicModifierOnly Navmesh にタイルがない問題を修正しました。
- Navmesh の解像度を使用したときに、領域モディファイアが ANavModifierVolume に追加されることはなくなりました。
- ダーティ領域を追加する際に、静的な Navmesh を含むゲーム ワールドの bRebuildGeometry が回避されるようにしました。
-
Navmesh のダーティ領域ログに示されているように範囲のサイズを表示するよう修正し、ログの可読性を向上しました。
-
[World Partition Navmesh] ANavigationDataChunkActor の GridSize を設定することにより (FPartitionActorDesc::GetEditorBounds() が追加されたため必要)、WP Navmesh の生成を修正しました。
- InstancedStaticMesh コンポーネントのエディタ操作でナビゲーションの部分的な更新を修正しました
- コンポーネントの登録/登録解除の部分的な更新を追加しました
- コンポーネントが登録されていない場合に、インスタンスを追加/削除するときの更新をスキップします
- 保留中のダーティ要素にダーティ領域のリストを追加し、更新情報の処理に成功したときに適用できるようにしました
- 部分更新を使用していない場合に不足していた更新を追加しました
-
[ナビゲーション] bOverrideNavigationExport および bForceNavigationObstacle プロパティを FISMComponentDescriptor に追加することにより、インスタンス アクタに障害物とナビゲーション領域のサポートを追加しました。
-
「無効な FNavAgentProperties を使用して NavData を探しています」という警告スパムを修正しました。
-
[Navmesh] ポリゴンが異なる高さに誤って接続され、Navmesh サーフェスが壊れる Navemesh 生成の問題を修正しました。
-
NavModifierVolume アクタの位置が親を介して更新されます。エディタのインスタンス化レベル アクタがナビゲーション データを更新するようになりました。
-
ZoneGraph のプロパティ PerPointLaneProfile に指定子を追加し、BP アクタが再構築されたときにコンポーネント インスタンス データによって適切に処理されるようにしました。
-
FGraphAStar::FindPath の無効なメモリ アクセス (Use After Free) を修正しました。
-
StaticMeshComponent で関連のメッシュがコンパイルされたときにナビゲーションの更新を追加しました。これにより、コンパイルが完了するまでコンポーネントは関連性がなくなるため、八分木とダーティ タイルへの保留中の追加が無効になります。
-
PostUnregisterAllComponents でワールドが破壊されているときに、そのワールドが ANavSystemConfigOverride で使用されないようにしました (そうでないと、破壊中のワールドで元の Navsystem の再作成が試みられます)。
-
[World Partition Navmesh] RootComponent が不足しているために ANavigationDataChunkActor のアクタの位置が間違ったものになる問題を修正しました。
-
形状を再選択したとき、またはアクションを元に戻したときのビジュアライゼーションを修正しました。
-
NavLocalGridManager に無効なパラメータが供給されたときに発生する可能性のあるクラッシュを修正しました。
-
[Navmesh] DetourTileCacheBuilder canRemoveVertex のクラッシュを修正しました。
-
StaticMeshComponent で関連のメッシュがコンパイルされたときのナビゲーション更新用のコードパスを修正しました。
-
GeometryCollectionComponent:範囲を計算するときにルート プロキシを使用してルート パーティクルの位置を考慮します。
-
[Navmesh] duDebugDrawHeightfieldLayer のデバッグの表示問題を修正しました。
-
[Navmesh] モディファイアからの Navmesh 解像度が、同期タイル生成で緩やかなモディファイア収集と組み合わせて使用されたときに、正しく読み取られるようになりました。
-
ISM のナビメッシュの下のコリジョンをフィルが各インスタンスに適用されるようになりました。
- UpdateActorAndComponentsInNavOctree でアタッチされているアクタが適切に更新されるように修正しました
AI スマート オブジェクト
新機能:
- アクタ インスタンスの SmartObject:
- Mass タグ、Mass Entity のスマート オブジェクトを作成/破壊するフラグメント
-
AActor を取り込み、通常の QueryBox の使用を回避するスマート オブジェクトの検索関数を追加しました。これは UE ゲームプレイ フレームワークにより適しており、関心のある特定のアクタを渡すことができるようにします。空間クエリを使用する必要がある場合は、オブジェクトがオーバーラップしている場合に、明示的に必要としていないオブジェクトからの結果が取得されることがあります。
-
スロットを保存するときの MassEntity の依存関係を削除しました。
-
GameplayDebugger でスマート オブジェクトのアノテーションをトグルするオプションを追加しました。
- ゲームプレイ デバッガにオプション「スロットの詳細」を追加し、大量の SmartObject を含むワールドの レプリケートされたデータの量を削減しました。
- このオプションは、アノテーションを表示するために必要です (オフにするとアノテーションが無効になり、アノテーションをオンにするとこのオプションがオンになります)
- オフにすると、1 つの形状でワールドの SmartObject が表されます
-
取得されたスロットおよび無効なスロットも返す 2 つのスマート オプション リクエスト フィルタ オプションを追加しました
-
一部のスマート オブジェクト コンポーネント、定義、およびランタイム オプションをブループリントに公開し、ブループリント内で非常に基本的なインタラクションを可能にしました。
-
EQS クエリ ジェネレータの FindSmartObject にオーナー アクタを提供します
- スマート オブジェクトの有効なステートを制御する理由を追加しました
- 理由を特定するのにゲームプレイ タグが使用されます
- デフォルトの理由「SmartObject.EnabledReason.Gameplay」はプラグインにより供給されるタグ (UE::SmartObject::EnabledReason::Gameplay) で、他に理由が指定されていない場合にデフォルトで使用されます。
- タグはビット マスクに変換され、ランタイム インスタンスに無効化されたフラグとして保存されます
- 外部システムで、特定のニーズのために新しいゲームプレイ タグを宣言できます。現在のところ、システムで 16 個 (1 デフォルト + 15 カスタム) の異なる理由を設定できます
- スマート オブジェクト インスタンスは、少なくとも 1 つの理由が設定されると、無効であると考慮されます。
-
スマート オブジェクトに「ターゲティング システムからスマート オブジェクトを検索」リクエストを追加しました。ターゲティング システムは、プレイヤーのインタラクションでプレイヤーが何を「ターゲット」にしているかを判断するためによく使用されるので、プレイヤーが見ているスマート オブジェクトがわかると、プレイヤーのインタラクションにスマート オブジェクトを使用しやすくなります。
-
スマート オブジェクト システムにブループリントの機能をいくつか追加しました。- スロット ハンドルが等しいかどうかをチェックする BP 関数 - スロットおよびハンドル用の文字列関数 - スロット ハンドル用の有効な関数
- クライアント ビルド用にワールドの前提条件をクリアする設定を追加しました
- [/Script/SmartObjectsModule.SmartObjectSettings] bShouldExcludePreConditionsOnDedicatedClient=true
- 定義、トランスフォーム、および動的 ID を使用するオーナー記述子構造体からスマート オブジェクトを作成できるようにしました
- USmartObjectComponent で登録タイプ
WithCollectionをBindToExistingInstanceに置き換えました。これは、CreateSmartObject から作成されたコンポーネントの存続期間に関連付けられていないオブジェクトにも使用できます。 - サブシステム コンポーネント アクセサでスマート オブジェクトに関連付けられたアクタを強制的にハイドレート化できるようにしました。
バグ修正:
-
テスト スマート オブジェクト テスト タイプ (USmartObjectTestSubsystem、USmartObjectTestBehaviorDefinition、および ASmartObjectTestCollection) を NotBlueprintType としてマークしました。これにより、通常のランタイム ブループリントを使用しているときに BP コンテキスト メニューが表示されなくなります。
-
GameplayDebugger の表示オプションがレプリケートされ、クライアントにステータスが正しく表示されるようになりました
-
スロット条件のアクティベーションを修正しました
-
スロット条件が複数回アクティブ化される問題を修正しました
AI State Tree
新機能:
- StateTreeDebugger
- StateTreeEditor でデフォルトで有効になります
- エディタ以外のターゲットでトレースを自動的に開始するには、.ini コンフィギュレーション ファイルの [/Script/StateTreeModule.StateTreeSettings] で「bAutoStartDebuggerTracesOnNonEditorTargets = true in StateTreeSettings or」を設定します。
- トレースを手動で開始/停止するには、コンソールで
statetree.startdebuggertracesおよびstatetree.stopdebuggertracesを使用します
-
動作ツリーで State Tree の実行を可能にする BTTask_RunStateTree および BTTask_RunDynamicStateTree を作成しました
- StateTreeDebugger
- ステート遷移を無効にするオプションを追加しました
- ステート遷移ブレークポイントを追加しました
- StateTreeEditor (詳細ビューと State Tree ビュー) の表示ステート、タスク、遷移 ID にコンソール変数
statetree.displayitemidsを追加しました
-
UAITask_MoveTo をラッピングする StateTreeMoveToTask を作成し、State Tree で BehaviorTree と同じフレームワークを使用して AI を移動できるようにしました。AI フォーカスの ST タスクに FStateTreeAITaskBase と FStateTreeAIActionTaskBase State Tree タスク名前空間を作成しました
- StateTreeDebugger
- 自動スクロール専用のオプションを作成し、デバッガ一時停止を制御イベント処理に変換しました
- 新しい有効なセッションを選択したときにトラックをクリアします
- 解析が自動スクロール無効の一時停止になったときに、すぐにスクラブ ボタンを使用できるようにしました
- DebuggerView にセッション解析ステート (一時停止かどうか) を制御する新規ボタンを追加しました。エディタ以外のターゲットの削除解析を実行するときに主に必要です。
- DebuggerView に自動スクロールをトグルする新規ボタンを追加しました。タイムラインで手動選択するとオフになりますが、再びオンにできるようになりました。
- StateTreeDebugger ブレークポイントの改善点
- ステートを抜けるときのブレークポイントのサポートを追加しました (以前はステートに入るときのみサポートされていました)
- タスクに入る/抜けるときのブレークポイントのサポートを追加しました
- ステートのブレークポイントは、TreeView のコンテキスト メニューか、詳細パネルのデバッグ オプションから追加できます
- タスクのブレークポイントは、詳細パネルのデバッグ オプションから追加できます
- 詳細パネルにブレークポイントを含むステートとタスクに対してフィードバック ラベルを追加しました
-
StateTreeDebugger は、コンソール コマンドから開始したトレースの解析を自動開始できます
-
開始/停止/ティックへのリエントラント呼び出しのディファード停止と検証を追加しました。
-
ノードのクラスが変更されたときにプロパティ値を保持するオプションを追加しました。
- 親プロパティで使用されていたスキーマを派生クラスでオーバーライドできるようにする IStateTreeSchemaProvider を作成しました。StateTreeComponent から派生した StateTreeAIComponent と StateTreeAIComponentSchema を作成し、AIController を持つようにしました
バグ修正:
-
PR #11008:無効な StateTreeRef の nullptr エラーを修正しました #contrib 11008
-
ユーザーがブラウザ コンテンツを操作する前にキーボード フォーカスが WebBrowser に適切に変更されないバグを修正しました。
API
新機能:
- 高速応答アセット用のストリーミングの改善点
- FRenderAssetStreamingManager::TickFastResponseAssets() の RequestedMips 条件を修正しました
- 非同期作業が完了した後に ProcessAddedRenderAssets() を呼び出し、新しくロードされたメッシュを高速応答メッシュとして設定できるようにしました。r.Streaming.ProcessAddedRenderAssetsAfterAsyncWork=0 を設定することにより無効にできます ストリーミング API の追加
- ストリーミング システムにメッシュのすべての LOD に対してストリーミングを開始するようリクエストする UMeshComponent::PrestreamMeshLODs() を追加しました (PrestreamTextures() に類似)
- USkinnedMeshComponent とマッチする UStaticMeshComponent::RegisterLODStreamingCallback() を追加しました
- FastForceFullyResident() は、アセットが高速完全常駐の条件を満たす場合に true を返し、それ以外の場合は false を返します
- RegisterLODStreamingCallback() で LOD に対して -1 を渡すと、使用できる LOD が最大限にストリーミングされたときにコールバックが要求されます。
オーディオ
API の変更:
-
オーディオのデコード サイズを 8k から 4800 (48k の 100ms) に下げ、プレバッファで再生をストールしないようにしました。一部のハードウェア デコーダは、2 の累乗サイズのバッファに依存していたため、さらに修正が必要でした。
- 関数 AudioModulation::GetOrRegisterParameter を更新し、モジュレーター名とクラス名をブレッドクラムではなく直接取得するようにしました。このため、この関数を呼び出すには、呼び出しサイトを更新する必要があります。SoundControlBus.cpp の例を参照できます。
-
TModulatorBase の名前変数を FString から FName に変更しました。このため、その値を使用するには、呼び出しサイトを ToString メソッドを呼び出すように更新することが必要な場合があります。
- CVar を追加しました
新機能:
-
Harmonix 音楽システム ツールが実験的なエンジン プラグインとして使用できるようになりました。MIDI の生成と処理用に、含まれている MetaSound ノードのスイートを使用してプロシージャルな音楽システムを設計できます。強力なフュージョン サンプラを使用してリッチなレイヤー化された音声を作成できます。クロック同期のモジュレーションとエフェクトを使用して、サウンドを音楽とタイミングを合わせて操作できます。オーディオ解析用の音楽クロック コンポーネントと MetaSound ノードを使用して、ゲームプレイとビジュアルを音楽と同期できます。
-
ダイナミック サブミックス:ブループリント API でランタイム時にサブミックスを接続/接続解除します。
-
MetaSound に品質設定を追加し、それらに自動的に名前を付けるロジックを追加しました。
-
MetaSound がベータ版からプロダクション対応になりました。
-
Libsndfile を 1.2.2 にアップグレードし、Linux/Mac のサポートを追加しました。すべてのエディタ プラットフォームに mp3/flac/opus/vorbis インポートのサポートを追加しました。
-
パフォーマンス向上のため、MetaSound の不要な入力バインディングを削除しました
-
実験的な MetaSound 演算子の事前キャッシュ メカニズム/サブシステムを追加しました。
-
サウンドクラス階層を使用したサウンドウェーブのタグ読み込み動作:クック済みでインライン化された初期オーディオ チャンクを使用できるようにしました。
-
MetaSound の時間データを MetaSound 出力として使用できるようにしました
-
「None」という名前の品質設定がデフォルトで問題を引き起こすのを修正しました。
-
モジュレーション:新規ブループリント関数:コントロール バス ミックスがアクティブである。指定の CBM がアクティブの場合に true を返します。
-
DSP オブジェクトでリサイクルされた Metasound (演算子キャッシュ) のメモリ割り当てを最適化しました。
-
[Metasound] NodeTestGraphBuilder:FLiteral で直接サポートされていないタイプのコンストラクタ入力を追加するメソッドを追加しました
-
最大遅延のグレイン遅延ノードにコンストラクタ ピンを追加しました。
-
すべてのエンジン (コーデック) デコーダをそのモジュールに移動するようリファクタリングしました。
-
[Metasound] envelope follower ノードのピンを有効にしました
-
動的演算子の更新を償却する実験的な CVAR を追加しました。
-
オーディオ ストリーム キャッシュ読み取りのストリーミング優先順位を「below normal」から「normal」に上げました。
-
ゲームが一時停止したときに Quartz サブシステムを (オプションで) ティックできるようにしました
-
エンベロープのリリース時の ADSR 不連続性を修正しました。
-
[Metasound] UMetasoundGeneratorHandle をリファクタリングしてライブ アップデートと機能するようにしました
-
[Metasound] サポートされているタイプの FMetasoundFrontendLiteral インスタンスを作成するブループリント API を追加しました
-
[Metasound] ジェネレータの出力ルックアップ処理を高速化するためマップを使用します。これにより、CPU 時間が約 70% 向上します。
-
FAudioParameter::Merge および関連の関数を最適化しました。
-
[Metasound] GetOutputNodeWithName の代わりに FindClassOutputWithName を使用して FMetasoundGeneratorHandle::WatchOutputs の出力メタデータを取得します。これにより、CPU 時間が 98% 向上します。
-
バンク テーブル間の補間が望ましくない場合に WaveTable のメモリ コピーが必要となるのに対して最適化するため、新しい MetaSound WaveTable Bank Evaluate ノードを追加しました。
-
演算子キャッシュを使用する際に MetaSoundSourcePresets でそれ自体ではなく親グラフを使用できるようにする実験的な CVAR を追加しました。
-
サブミックスが減衰と SoundBase 間で一貫した UX を送信するようにしました
-
MetaSound メンバーのデフォルト リテラル値と読み取りのみメンバー を詳細パネルにコピー/貼り付けできるようにしました
-
サウンドウェーブ GUID をストリーム キャッシュ キーとして使用するよう変更しました。これにより、リロードでより多くのヒットが得られます。
-
XMA2 で 256*チャネル数で割り切れないバッファを処理できるようにしました。
-
未使用の MetaSound 送信/受信ノードが登録されないようにしました
-
MetaSound で文字列形式を最適化しました
-
コンテンツ ブラウザでスペース キーを押して MetaSound をプレビューできるようにしました。
-
パフォーマンスを向上するため、一部の MetaSound グラフ処理をランタイムからクックに移動しました
-
Metasound はプラットフォームのブロックレートおよびサンプルレートに従います
-
[Metasound] ダイナミック ジェネレータの頂点インターフェースが変化したときに、レンダリング ブロックごとに 1 回のみリスナーに通知されるようにしました。
-
MetaSound の詳細パネルにデフォルトでソースまたは MetaSound 設定を表示し、グラフ メンバー メニューがデフォルトで自動展開されるようにしました
-
[Metasound] ジェネレータの I/O が変化したときにユーザーに通知されるようにしました
-
新規モジュレーション パラメータ:加算。このパラメータは指定の範囲を 0~1 にマップし、値を加算してクランプすることにより混合されます。
-
デコーダが負のサンプルを戻した場合にエラー状態がラッチされるようにしました
-
新規 USoundModulationDestination を追加しました。これを使用すると、モジュレーションの宛先をゲームプレイ コードまたはブループリントで有効にでき、ゲーム スレッドの値を簡単に取得できます。
-
MetaSound 内を検索する検索タブを追加しました
- ユーザビリティを改善するため、オーディオ モジュレーションのユーザー インターフェースにいくつかの小さな変更を加えました。
- モジュレーション パッチ:モジュレーション パッチでパラメータの順序を変更して最も使用される設定を各入力の一番上に配置し、新規パッチでバイパスをデフォルトで false に設定し、カーブ選択ドロップダウンで共有カーブ アセットの名前を「Custom」に変更しました。
- コントロール バス:アドレス設定とジェネレータのリストを詳細設定カテゴリに移動し、パラメータ変数にその機能を説明するコメントを追加しました (非常に重要であるため)。
-
FSoundSource の合計フレーム数を取得する API を追加しました
- オンデマンド読み込みでオーディオをオプションでインライン化できるようにしました。
バグ修正:
-
オーディオ インターフェースの更新で減衰オーバーライドが考慮されない問題を修正しました #contrib 11149
-
グラフ ノードの MetaSound トレース デバッグの出力名を修正しました
-
DynamicSubmix が意図せずにマスターにアタッチされる問題と、サブミックスが AudioDevice の作成を自動登録する問題を修正しました
-
BaseDefaultSubmix がすべての状況で機能しない問題を修正しました
-
MetaSound トリガー パラメータが仮想化されたサウンドを実現するときに再トリガーされ、仮想化中に不要なパラメータの更新がキャッシュされる問題を修正しました
-
MetaSound 非同期登録の競合状態を修正しました
-
クック ステージを追加することによりクック済みでない品質設定を修正し、MetasoundSource がプラットフォームごとに正しく保存されるようにしました。これまでは、PerPlatformSettings が MetasoundSettings に追加されていましたが、これは真のアセットではないため、正しくクックされませんでした。コードはグローバル設定から取り出され、これをオーバーライドできていました。現在では、この決定はクック中に行われます。
-
MetaSound をデフォルトに戻すための矢印がリテラルがデフォルトに設定された後にも表示される問題を修正しました
-
ADSR の無効なメモリ アクセスを修正しました。
-
シャットダウン時に音声がハングする稀な問題を修正しました
-
サウンドをプレビュー中に無効な MetaSound グラフ接続ビューのためエディタがクラッシュする問題を修正しました
-
コントロール バス ミックス値をクエリする際のパフォーマンスを向上しました
-
設定しているオブジェクトが無効である場合に Audio Synesthesia NRT エディタがクラッシュする問題を修正しました
-
品質の設定が無効である場合に Metasound でデバイス レートが使用されない問題を修正しました
-
Mac/Linux でサブミックス クックの警告を修正しました
-
不正な ADPCM デコードが処理されるようにしました
-
プリセットなどの編集不可の MetaSound グラフでコメント ノードの追加を無効にしました
-
AT9 を 2 の累乗デコードを処理するよう修正しました。
-
大きな切り捨てられたファイルの処理において adpcm の検索によりバグが発生していたため、修正をロールバックしました。
-
Metasound CVAR を単なるデフォルトではなくグローバル オーバーライドにしました
-
「0」の場合に品質の設定のデフォルトがオーバーラードされる問題を修正しました。
-
エンジンのシャットダウン/PIE の終了中にオーディオ モジュレーションの安定性を向上するために小さな変更をいくつか加えました。
-
初期化構成で CacheSizeKB=0 が設定されていた場合のクラッシュを修正しました。
-
MetaSound グラフ演算子を構築するときの競合状態により発生していたクラッシュを修正しました
-
トリム プリントで uint64 が正しく処理されるようにしました
-
サブミックス登録で不正なキャストの後の nullptr deref を修正しました。
-
ツールチップのタイプミスを修正しました #rd trivial
-
MetaSound の外部ノード クラスに関する誤った警告を修正しました
-
TriggerDelay ノードが入力トリガーの直近の実行後にのみ作動するよう修正しました
-
Google レゾナンス空間化が複数の PIE と互換性がない問題を修正しました。
-
オーディオ ミキサーのシャットダウン時の無効な読み取りのクラッシュを修正しました。
-
[Metasound] MetasoundGeneratorHandle 出力キューが無制限に大きくなるのを回避しました
-
MetaSound を含むプロシージャルなサウンドウェーブの Audio Synesthesia NRT 解析を無効にしました
-
オーディオ リサンプリングのバグを修正しました。
-
PIE をシャットダウンするときにグローバル モジュレーション バスによりエディタで発生していた稀なクラッシュを修正しました。
-
トリガーがブロックの一番上でない場合にトリガーのリリース時に FloatADSREnvelope ノードが 1 サイクル間 0 になる問題を修正しました
-
次のトリガーが呼び出される前に変化する動的な値にリピートなしが接続されている場合に、MetaSound 配列ランダム ノードの共有状態が適用されない問題を修正しました
-
MetaSound グラフ メンバーの名前を選択クリックして変更するときに、名前空間が失われる問題を修正しました
-
特定のサウンド キューの品質設定で、サウンド キュー内に MetaSound が再生されない問題を修正しました
-
外部空間化 (例:レゾナンス) を使用しているときにバイノーラル サウンドでサブミックス モジュレーションが無視される問題を修正しました。
-
ダイナミック サブミックス:接続解除時のサブミックスの登録解除を修正し、デバッグ コマンドをグラフを正しく表示するよう修正しました
-
ADPCM オーディオ ファイルをインポートする際のクラッシュを修正しました。
-
サウンドが無効なときに FAudioCapture オブジェクトが誤ってインスタンス化される問題を修正しました。
-
MetaSound:RandomGet ノードの NoRepeats 値を、RandomGets マップに保存されるまで待機する代わりに、即時クランプします。この修正は、リピートなし値がクランプされている場合に、比較で常にストンプされる必要があると示されるために共有状態が機能していなかった問題を修正します。
-
シーケンサーでオーディオ トラック上での Metasound ソースの作成を元に戻してからやり直した場合に発生していたクラッシュを修正しました
非推奨:
-
MetaSound FCreateOperatorParams:代わりに FBuilderOperatorParams を使用してください
-
5.2 で非推奨となった GetRuntimeFormat と CreateCompressedInfo の使用を削除しました
-
5.2 で非推奨となったサブミックス コードを削除しました
ブループリント
新機能:
-
ネイティブ タイプにブループリント配列ソート関数を追加しました。インプレース ソート関数を追加しました。安定したソートおよび昇順/降順のオプションをサポートします。
-
エディタでのブループリント読み込みコンパイルの Unreal Insights インストルメンテーションを向上しました
-
PR #10237:便宜上の IsInterfaceValid() ブループリント ノード
-
K2Node にカスタム スタイルセット サポートを追加しました
-
アニメーション ブループリントのコンテキスト メニューの構築時間を最適化しました。これは、大規模なプロジェクトで顕著です。
-
ENetRole をブループリントで使用できるようにしました PR #10411:EngineTypes.h を更新しました- ENetRole to BlueprintType #contrib 10411
-
指定のクラスが指定のインターフェースを実装するかどうかをテストするブループリント ユーティリティを追加しました
バグ修正:
-
非ネイティブのデフォルト サブオブジェクト タイプ オーバーライドに外部クラスの基盤の非ネイティブ タイプとの循環ロード依存関係がある場合に、エディタ ロード時の初期化が遅延されるようにしました。
- 元のシリアル化データとロード互換性がなくなったサブオブジェクトを 1 つ以上含むブループリント オブジェクトを再インスタンス化した後に、外部パッケージのダーティな状態が保持されるようにしました。
- 例:これは、新しい階層に再ペアレント化した後に、一致するサブオブジェクトに互換性のない/ダウンキャスト タイプがあると発生することがあります。その場合、データが以前に古いタイプを使用して保存されていると、最も外側のパッケージを再保存してそのシリアル化されたインスタンス データを更新しなければ、新しいタイプに対して読み込むことはできません。
-
PR #11332:ブループリント MemberReference が DeprecatedProperty metadata も検索するようにしました
-
BPGC 読み込み/コンパイル時の冗長デリゲート登録を修正しました (リグレッション)。
-
ブループリント インスタンスの構築後高速パスのカスタム プロパティ リストを生成する際に、コンポジット メンバーを完全な値として処理する方法を追加しました。
-
ブループリントのデフォルト オブジェクト内にあるサブオブジェクト データの継承に関する複数のバグを修正しました。これによりデータ破損の複数の原因が修正されますが、継承を使用するブループリント内で (ActorComponents ではない) 任意のサブオブジェクトを使用しようとすることに関する既知の問題がいくつかあります
-
グラフ内で変数にイベント範囲がある場合でも UBlueprintEditorLibrary::RemoveUnusedVariables が変数を削除するバグを修正しました。
-
再インスタンス化でネスティングされているサブオブジェクトとトランザクション バッファがすべてのサブオブジェクトの情報を収集しない問題を修正しました
- 現在では、アクタ置換ワークフローを使用したときに構築されたコンポーネントがクリーンアップされます。
非推奨:
- 5.0 で非推奨となったブループリント コードとネイティブ化などのシステムのプロパティを削除しました
ブループリント コンパイラ
新機能:
-
ブループリントのコンパイルが他のブループリントをコンパイル中に試行された場合のエラー メッセージを向上しました
-
アーキタイプの再インスタンス化ソートと作成用の正しいテンプレート オブジェクトの計算を追加しました
-
BlueprintGeneratedClasses にタグを追加するインターフェースを追加し、BlueprintGeneratedClass アセットが効果的に BP アセットを置換するようにしました。
バグ修正:
-
AnimGraphNode_AssetPlayerBase で、グラフに過渡的に含まれているアニメーション アセットが適切にプリロードされるようになりました
-
ピンの分割を含むアニメーション ブループリントを読み込む際に発生するクラッシュを修正しました
-
プレイ イン エディタの使用時に、非同期レベル ストリーミング中のブループリントを読み込んだときに発生するクラッシュを修正しました
-
PR #10869:非推奨のイベント ディスパッチャーを使用した BP コンパイルを修正しました (マルチキャスト デリゲート)
-
SparseClassData を含むネイティブ クラスに基づいてブループリント クラスを再コンパイルした後のクラッシュを修正しました
-
スケルトン クラスの UFunction::SuperStruct 値を、コンパイル中の再リンク時に更新されるようにしました。これにより、これらの値が古くなり、TRASHCLASS の UFunction を参照するのを回避できます。
-
ブループリントの ubergraph コンパイル中の一時的なイベント スタブ グラフ アーティファクトを作成する際に、既存の一時的でないオブジェクトとの競合が回避されるようにしました。
-
親ブループリントが関数を削除した後にブループリントを読み込んだ場合に発生するファントム コンパイル エラーを修正しました
-
複雑なブループリントをコンパイルした後に発生するスケルトン クラスに関連するクラッシュを修正しました
-
クラスの再生成中にデフォルト値が確実にプリロードされるようにしました。ブループリントのコンパイルでは、すべての依存関係がプリロードされていると想定されます。通常は RegenerateClass がこれを処理しますが、いくつかのケースが不足していました。依存エクスポートが正しくプリロードされていないと、プリロードの前にポストロードが発生するような状況になる可能性があります。これは一般的に、コンパイル中にさまざまなオブジェクトが複製された場合に発生します。FReferenceFinder を利用して、クラスのデフォルト オブジェクト上でプリロードする依存エクスポートを再帰的に検索できます。これは、native export 依存関係のみを検索します。ブループリントで生成されたクラス (およびそのインスタンス) は、このフェーズ中に厄介な問題となる可能性あるので、これらは意図的にスキップしています。
非推奨:
- 複数のバージョンで機能していなかった破損したブループリント パフォーマンス トラッキング コードを非推奨にして削除しました。ブループリント エディタ読み込みのプロファイリングには、Unreal Insights が使用されるべきです
ブループリント エディタ
新機能:
-
ブループリント エディタのデフォルトのみ (DOBP) モードでクラス設定を変更できるようにしました。
-
メモリの使用方法と Find in Blueprint の検索データのパフォーマンスを向上しました
-
ブループリント関数とマクロ ライブラリの読み込み進行度がより正確に報告されるようになりました
-
UPARAMの GetOptions を実装し、ByProfileトレースに追加しました -
UObject から派生したマクロ ライブラリで、ワールド コンテキストを必要とする関数を使用できるようになりました。WorldContext のピンは、正しい参照をドラッグしてそれをマクロに渡すことでユーザーが手動で指定できますが、有効なワールド コンテキストがある場合は、呼び出し元からワールド コンテキストを自動で取得できます。有効なワールド コンテキストがない場合は、コンパイル時に呼び出し先でエラーが表示されます。
-
比較演算子ノードを別の比較に変換するオプションを追加しました (== を != に変換するなど)。メニューをわかりやすくするため、比較演算子のユーザーに表示される演算子名にシンボルを追加しました
-
ブループリント変数 (integer と float) に単位のサポートを追加しました
バグ修正:
-
ブループリントのコメント吹き出しの境界を修正しました。
-
キャラクターに ComputeGraphComponent を追加したときに発生するクラッシュを修正しました。
-
ブループリント エディタのピン タイプ セレクタを大規模なプロジェクト用に最適化しました
-
コンテンツ エリアにカーソルがある場合に、Math Expression ノード タイトルの編集後にエディタがクラッシュしていた問題を修正しました。
-
[My Blueprint] ウィンドウで関数/変数を Backspace キーおよび Delete キーで削除できるようにしました。これにより、すべてのプラットフォームでエディタの他の部分とより一貫したものになりました
-
別のブループリントから継承されたコンポーネントの名前を変更した後クラッシュが発生していた問題を修正しました
-
グラフ パネルを含むエディタ ウィンドウを閉じた後にウィジェットが破壊されるのを防止するリグレッションを修正しました。
-
グラフ ノードの「開発モード」を修正し、クック コンテキストがより詳細にチェックされるようにしました
-
シッピング ビルドで発生する可能性のある制限付きモード エディタのクラッシュを修正しました。
-
PR #10747:ドラッグ イベントの後グラフ ピンのマウス位置が動かなくなる問題を修正しました #contrib 10747
-
予期しないオブジェクトに配置されたコンポーネントがブループリントの Diff ツールで報告されるようになりました
-
保存パスからブループリント アセットのサニタイゼーションを削除して、制限付きエディタ モードで収集されたエクスポートが無効になるのを回避し、複数のアセットが関係する場合に BP のコンパイル/GC コストを低減しました。
-
新規ブループリントが「ロードで検出された問題を修正するため更新」されるという不要な警告を修正しました。
-
BP の詳細パネルでイベント ディスパッチャーのレプリケーション プロパティの編集を無効にしました。イベントディスパッチャーではレプリケーションはサポートされません。
-
Diff パネルでのブループリント サブクラスのロジック検出を修正しました。これにより、ロジックが再び有効になり、ウィジェット ブループリントに差分が表示されます。
-
サブオブジェクト エディタでデフォルトのシーン ルート コンポーネントの間違ったツールチップを修正しました。「コピーできません」と誤って記述されていましたが、シーン ルート コンポーネントをコピーしてサブオブジェクト階層の別の場所に張り付けるのは完全に有効です。
-
スパース クラス データを含むブループリントを複製したときに発生していたクラッシュを修正しました
-
PR #11097:リスナー デリゲートで反復中に管理セットをミューテートできるようにしました。
-
仮想リビジョンをディフしたときに発生するクラッシュを修正しました。
-
参照を検索:関数呼び出しノードの参照の検索で、ノード タイトルの引用符で囲まない検索ではなく、関数のネイティブ名の引用符で囲んだ検索が実行されるようになりました。検索用語を新しく作成することにより関数参照の検索がより一貫したものとなります。これまでは、特殊文字を含むノード タイトルや Parent、Event などのプレフィックスでエラーが発生していました。
-
ディフしたときにコンポジット グラフが表示されない問題を修正しました
-
ブループリント クラス アセットに追加される一部の文字列コストを削減しました (レグレッション)。
-
ブループリント クラス エディタで明示的な実装インターフェースの削除中の予期しない NULL 参照を回避しました。
-
ユーザー定義構造体アセット エディタで、メンバー変数タイプ ウィジェットの選択時までピン タイプ セレクタのユーザー定義構造体タイプの検証を遅延させました。
-
アクタのスポーンにおけるアサーションの根本的な問題を修正しました。この問題により、ブループリントのコンパイル前の一部のプロパティ変更を元に戻した後エディタがクラッシュしていました。
-
アーキタイプでネスティングされている構造体メンバー フィールドを変更した後の PostEditChange() イベントの伝播中にエディタがクラッシュする問題を修正しました。
-
GetSubsystem ブループリント ノードを修正し、サブシステムの親クラスで ShowWorldContextPin が設定されているときに正しく処理されるようにしました
-
ブループリント エディタでサブオブジェクトのデフォルトを伝播した後に レベル/OFPA アクタ パッケージが常にダーティとマークされないようにしました。
-
数式グラフ ノードでタイトル コンテンツを変更したときにエディタがクラッシュする問題を修正しました。
-
EditorUtilityWidget ブループリント アセット定義を修正し、編集用に開いたときにウィジェット ブループリント アセット定義が行う動作に一致させました。
-
ブループリント関数入力からベクター配列ピンを Ctrl を押したままドラッグしたときの確認を修正しました
-
ConformRemovedNativeComponents を修正し、タイプが変更されたコンポーネントが処理されるようにしました。これにより ConformRemovedNativeComponents がネイティブ クラスから継承されたコンポーネントを破壊するのが回避されますが、一部のネイティブでないクラスは継承コンポーネントのタイプをオーバーライドします。この場合、ブループリントがコンポーネント タイプをオーバーライドする代わりに、そのタイプの子は、コンポーネントを宣言したネイティブの親に一致させようとして継承コンポーネントを破壊しようとしていました。
-
サブオブジェクトが強制的に削除されたときの警告を非表示にしました。
-
K2Node の右クリック コンテキスト メニューに、ブレークポイントを配置できない場合は「breakpoints」カテゴリを表示しないようにしました。これにより、不要な空のカテゴリが回避されます。
-
デッドロック状況が発生するのを回避するため、メイン スレッドでの GC パスに対して進行中のブループリント内グローバル検索の結果を待つ間に非同期タスクを開始します。
-
ブループリント アセットで外部インポートを解析するときに、クック時のエディタ専用参照の不要なシリアル化が回避されるようにしました。
-
PR #10335:Call In Editor Blutility 関数の制限を削除しました
ブループリント ランタイム
バグ修正:
-
STRUCT_IsPlainOldData インスタンスの冗長操作を回避することにより UUserDefinedStruct::InitializeStruct を最適化しました
-
ブループリント サブオブジェクトの「到達可能ガーベッジ オブジェクト」の原因の 1 つを修正しました
ゲームプレイ
API の変更:
-
UPlayerMappableInputConfig が非推奨になりました。代わりに入力アクションおよび入力マッピング コンテキスト アセットのプレイヤー マップ可能なキー設定を使用して、キー マッピングの「name」を指定してください。例については、Lyra を参照してください。
-
このチェックを有効にするには、EnhancedInput.Mappings.bCheckForEmptyKeyMappingsDuringValidation を true に設定します。
-
Windows 10+ (UE5 の最小仕様) で XInput 1.4 がシステム ライブラリとして使用できるようになりました。今後は、エンジンの DirectX に含まれていた古い XInput 1.3 ライブラリの代わりにこれが使用されます。
-
コンストラクタで GEComponents に CreateDefaultSubObjects を使用し、それらを設定して、GEComponents 配列に追加します。問題がある場合はランタイム時に確認 (修正方法のヒントを含む) が表示されます。
-
UAbilitySystemComponent::OnGameplayEffectInhibitionChangedDelegate を追加しました。
-
FindAbilitySpecsFromGEHandle を導入しました。
-
FindAbilitySpecFromHandle に保留中の追加/削除を処理するオプションのパラメータを導入しました。
- FPredictionKey が作成できたのに認識されない、見つけるのが非常に困難なケースの検出を試みるためのデバッグ機能を導入しました。
- アップグレード パスに役立つように GameplayPrediction.h の冒頭にコンソール変数を追加しました。
-
UGameplayTagsManager の GetSingleTagContainer を非推奨にしました。これは生ポインタを返し、複数のスレッドから呼び出された場合にクラッシュを引き起こすことがありました
-
非 const オーバーライドを使用するには、UGameplayEffectComponent::OnGameplayEffectChanged を変更してください。
-
CineCameraComponent から継承するタイプがあり、ティックが必要な場合は、コンストラクタで PrimaryComponentTick.bCanEverTick を true に設定してください。
- IsRunningDedicatedServer のコメントと同様の関数を改善し、これらはゲームプレイの目的にではなく、データ読み込みに使用するためのものであることを明記しました。
新機能:
-
[GAS] ゲームプレイ アビリティ システム デバッガを改善しました。アビリティ システム デバッグ コマンドは CheatManagerExtension に移動されました。これにより、複数のクライアントでデバッグ コマンドを使用することが可能となり、正しいクライアントに適用されます。操作が拒否されたり特定の方法で動作したりする (例:AbilitySystem.Ability.Activate) 理由について、コメントとログ記録を追加しました。GameplayCueManager でゲームプレイ キューがオーバーラップせずに表示されるようになり、同じ GameplayCue で複数のイベントが発生しているのが見やすくなりました。
AbilitySystem デバッグ コマンドに、ゲームプレイ アビリティまたはゲームプレイ エフェクトのどちらをターゲットにしているかによって、プレフィックス AbilitySystem.Ability または AbilitySystem.Effect が付けられました。
-
[GAS] ゲームプレイ アビリティ システムの VisLogging 機能を改善しました。VisLog の使用は、ゲームプレイ アビリティ、エフェクト、属性の間の複雑なインタラクションを理解するのに有効な方法となりました。
- [GAS] デバッグ機能を改善しました。ローカル プレイヤーに起動するには Shift-' を使用します。
- ゲームプレイ タグにクライアントとサーバーの状態の違いが表示されるようになりました
- ゲームプレイ エフェクトにクライアントとサーバーの状態の違いが表示されるようになりました
- 属性をゲームプレイ デバッガでデバッグ (および重要なレプリケーション状態を表示) できるようになりました
- レイアウトとカラー コーディングを改善しました
-
UPlayerMappableInputConfig を非推奨にし、5.3 で新しい UEnhancedInputUserSettings が使用されるようにしました。
-
AggregateGeom (より多くのアクセサ):形状を名前で取得、形状インデックスを名前で取得する方法を追加しました。-- Code -- AggregateGeom: GetElementByName() - 形状配列を順に確認し、渡された名前を持つ要素で最初に見つかったものを返します。GetElementIndexByName() - 形状配列を順に確認し、渡された名前を持つ要素の最初に見つかったインデックスを返します。GetElementByName() - テンプレート化されたバージョンを使用して共有コードを削減します。GetElementIndexByName() - テンプレート化されたバージョンを使用して共有コードを削減します。
-
[GAS] ゲームプレイ エフェクトの GetAssetTags / GetGrantedTags をブループリントに公開します
-
EKeys::Invalid にマップされているキーのチェックを有効にする cvar を追加しました。必要な場合により良いコンテンツ検証が可能になります。
-
GameplayTagsManager で管理される GameplayTag ツリーの再構築を一時的に延期する方法と、GameplayTag ツリーを手動で再構築する方法を追加しました。
-
XInput version 1.4 に更新しました。DirectX から XInput 1.3 dll を必要とする代わりに、システム依存関係を追加するだけで機能します。1.4 には小さな改善点とバグ修正がいくつか含まれ、Windows 10 にデフォルトで含まれています。
-
デフォルトのマッピング コンテキストに拡張入力用のフラグを追加し、デフォルトで入力ユーザー設定に登録されるようにしました。
-
[GAS] ゲームプレイ アビリティ監査にデータを追加しました
-
多次元配列インデックスを変換する新しいブループリント関数を追加しました。具体的には、1D -> 2D、1D -> 3D、2D -> 1D、および 3D -> 1D インデックスの変換関数を追加します。たとえば、3x2 配列では、1D インデックス 4 を 2D 次元インデックスに変換すると、(1,1) が得られます。テストも追加されており、使用方法と予測される出力が示されます。#virtualized
-
[GAS] PR #10717:GameplayTagCountContainer::Reset にオプションのパラメータを追加し、登録されたタグ数変更コールバックをすべて保持しながらコンテナを空にできるようにしました。
-
[GAS] ネイティブ ゲームプレイを適切に実装するのが簡単になりました。
-
[GAS] PR #11505:ゲームプレイ エフェクト阻害変更デリゲートを追加しました #contrib 11505
-
[GAS] ゲームプレイ デバッガで、ゲームプレイ エフェクトのサーバーの状態とクライアントの状態が調整されるようになりました。これは、タグと属性の仕組みに類似しています。
-
非定数ゲッターを追加し、エディタで実行するクラスで GameFeatureData のアクション リストを変更できるようにしました。
-
InterpToMovementComponent に SpeedMultiplier プロパティを追加し、移動を始めた後でも動きのタイミングを変更できるようにしました。
-
[GAS] InstancedPerExecution GameplayAbilities を使用しているときにレプリケーションが現在サポートされないことを明確にしました。
-
ラムダ式を拡張入力コンポーネントに完全にバインドできる機能を追加しました。また、デリゲート ハンドルをプライベートではなく保護とマークし、拡張入力コンポーネントをより簡単に拡張できるようにし、バインディング オプションを追加しました。
-
[GAS] GameplayEffectComponents の分かりやすい名前をより理解しやすいように変更しました。PR #11357 から発想を得ました。
-
ゲームプレイ アビリティ システム:FGameplayAbilitySpecHandle にシリアル化 operator<< を実装し、必要に応じて FGameplayAbilitySpecHandle でシリアル化を呼び出せるようにしました。これにより、FGameplayAbilitySpecHandle を NetSerialize() をオーバーライドする構造体のメンバーにできます。
-
「データレジストリを追加」ゲーム機能アクションに新しいコマンドレット内でプリロード オプションを追加しました。有効にすると、エディタのコマンドレットを実行するときに、指定したデータ レジストリがプリロードされます。これは、コマンドレット内でプリロードに依存するエディタ操作のコマンドレットの自動化に便利です
-
FBox ブループリント呼び出し可能ユーティリティ関数を追加しました。
-
データ レジストリ レジスタ アセット結果の変更を調整し、新しいエンジン バージョンにアップグレードする方法をわかりやすくしました。
-
ターゲット選択タスク:ターゲット トレースに、既存のラインおよび球体トレースに加え、カプセルとボックスを使用して実行できる機能を追加しました。
-
[GAS] PR #10711:FGameplayTagCountContainer::GetExplicitTagCount を作成しました。
-
キャラクターがジャンプしたときに、ベースがキャラクターの下にある限り、ベース上の留まることができるようにする機能を追加しました。
-
GameplayTagsManager が INI 検索パスの削除に応じて GameplayTags のアンロードを処理する方法を一時的にオーバーライドする方法を追加しました。
-
複数の移動 (サブステップまたはディフレクション) を処理しているときに、低コストの移動/トランスフォーム更新のシミュレーション中、範囲が設定された移動の更新を使用するオプションを ProjectileMovementComponent に追加しました。新規フラグ:bSimulationUseScopedMovement (デフォルトは false です。影響の大きいイベントを遅延させると動作が変更されることがあるので、慎重にご利用ください)。
-
ゲームプレイ タグ マネージャー:「UGameplayTagsManager::StaticGetCategoriesMetaFromPropertyHandle」のループを、子のプロパティの外側の基本クラスとその親が異なるタイプである場合に早く解除するように調整しました。これにより、サブオブジェクトのゲームプレイ タグ プロパティが予測しない異なるクラスからメタ カテゴリを継承し、子のタグ プロパティに意図しない制限が適用されるのを回避できます。
-
ターゲティング システム / 距離でソート:アクタの位置ではなく最も近いコリジョン サーフェスに基づいて距離をより正確に計算するオプションを追加しました。
-
WaitGameplayTagChanged 非同期タスク (アビリティとアクタ バージョン) を追加しました。このタスクは、追加と削除だけでなく、タグ数のすべての変更に反応できるようにします。
-
非定数ゲッターを追加し、エディタで実行するクラスで GameFeatureData のアクション リストを変更できるようにしました。
-
[GAS] 即時および周期的な GameplayEffects でモディファイアのタグ要件が尊重されるようになりました
-
ProjectileMovementComponent に、オブジェクトにそれほど関連性がない場合に一部のフレームの補間トランスフォーム更新を回避するオプションを追加しました。デフォルトのバージョンは最近レンダリングされていないものに基づいていますが、これは拡張可能です。
-
新規入力モディファイア - スムージング デルタを追加しました。これは、現在の入力値と最後の入力値の正規化されたスムージング差異を提供し、異なる動作で値を計算する方法を指定するオプションがあります。ブール入力値は、そのままブール値として返されます。
-
[GAS] ゲームプレイ キュー ユニット テスト
-
OnSubsystemInitialized コールバックを UDataRegistrySubsystem に追加しました。これは、すべての既知のデータ レジストリがスキャンされ、初期化されると通知します。
-
IsDebugCameraActive メソッドをチート マネージャーに追加しました
-
PR #9012:GameFeatures/ フォルダのプラグインのみが GameFeatures として確実に考慮されるようにしました。
-
[GAS] PR #11483:GameplayAbilityTargetActor_Radius のデバッグ サポートを追加しました
-
FilterArrayの結果がフィルタ タイプに自動キャストされるように更新しました -
[GAS] ゲームプレイ アビリティ システム プラグインのドキュメント マークダウンの最初のパスを追加しました。PR を受け入れています。
-
bIgnoreAllPressedKeysUntilRelease のコメントをわかりやすく更新し、例を追加しました。
-
UGameplayTagsManager::GameplayTagsMatchDepth を最適化して余分な割り当てを削除しました。
-
チート マネージャー拡張が、ネイティブ コードでチート マネージャーからの追加/削除に応答するようにしました。
-
拡張アクション キー マッピングと入力アクション アセットのコメントを更新し、モディファイアの適用順を明示的にしました。
-
[GAS] スタックされた GameplayEffects 適用のルールを修正する UGameplayEffectComponent::OnGameplayEffectApplied を導入しました。Applied のルールはシンプルですが、複雑なルールのため他の関数 (Executed、AddedToContainer) も存在します。
-
TimerManager タイマーに新規「フレームごとに一度の最大数」を追加し、タイマー コールバックが現フレームのデルタにフィットする回数実行される「追い付き」動作をオプトアウトできるようにしました。たとえば、間隔 0.001 のループ タイマーは、1 フレームで 9~10 回実行され、デルタは 0.01s です。
- const-ref を返し、割り当てとコピーを回避する GetOwnedGameplayTags と GetBlockedAbilityTags を追加しました。
バグ修正:
-
[GAS] (PendingAdds/PendingRemoves のために) 同じスコープ ロックの間にアビリティが付与/削除された場合に、AbilitiesGameplayEffectComponent でそれらのアビリティを付与/削除できない問題を修正しました。
-
無効なテーブル ソースにより他のソースのキャッシュが切れる問題を修正し、無効なソースの検証をさらに追加しました。
-
ゲームプレイ タグ:ゲームプレイ タグ FGameplayTag::RequestGameplayTag() を解決するネイティブ メソッドがタグ リダイレクタを適用するようになりました。
-
「Within」とマークされたクラスまたはサブオブジェクトを BP サブクラスに変更するときのクラッシュを修正しました。
-
ゲームプレイ アビリティ システム:レベル ストリーミング (World Partition を含む) とシームレスな移動を使用してプレイを退出し、再入場して再び退出した後に、AbilitySystemComponent が DestroyActiveState で正しくクリーンアップを実行するようになりました。
-
GameFeaturePlugin のコンフィグ INI で構成値がブループリント クラスに適用されない問題を修正しました。
-
[GAS] FPredictionKey にさまざまな修正を適用しました。
-
[GAS] レプリケートされたサーバー開始のゲームプレイ エフェクトを受信したときに、マップされていない参照のチェックをスキップします。これにより、ゲームプレイ キューが常に適切に作動します。
-
[GAS] GameplayTask_WaitDelay の 0.0f と負の時間入力値を次のティックで終了するときに処理します。#contrib 11079 から発想を得ました
-
UE-143412 - スレッドセーフ グラフ内で関数に折りたたむを使用すると、結果の関数はスレッド セーフとしてマークされません。スレッドセーフ関数のノードはスレッドセーフであるため、折りたたまれたグラフもスレッドセーフです。マークされないことによりスムーズでないワークフローが作成されます。ユーザーが折りたたまれた関数をスレッドセーフと手動でマークしない限り、ブループリントはコンパイルできません。
-
ルート モーションが終了したときのルート モーションのプロキシへのレプリケーションを修正し、ルート モーションが終了したフレームでレプリケートされたシャドウ ステートが正しくなるようにしました。
-
[GAS] PR #7531:GAS は有効な PC が見つかると PC の検索を終了します
-
[GAS] アビリティ システム デバッグ HUD で CanActivateAbility に正しいソースが使用されるようになりました。
-
タグを登録する前にゲームプレイ タグ コンテナを読み込むと、完全でない一致がランダムに失敗する問題を修正しました
-
[GAS] これまではゲームプレイ エフェクトは古いゲームプレイ タグを保持できていました (これらは非推奨の変数に保存されていました)
-
[GAS] PR #10922:: ゲームプレイ エフェクト デリゲート ハンドルの削除を修正しました
-
共通の会話プラグイン:会話グラフをコンパイルするときの ExitTag 生成で、
AddLeafTagの代わりにAddTagを使用するように変更しました。Leaf バージョンを使用した場合と、2 つの異なる出口に子タグと親タグの両方を使用する会話グラフの問題が発生していました。その結果、親タグの出口が無視され、指定の会話アセットでその出口が依存関係として考慮されませんでした。会話コンポーネントを準備するときに指定のグラフが適切にプリロードされないため、これが同期ロードにバタフライ効果を及ぼしていました。- 修正を反映させるには、影響を受ける会話グラフを保存し直す必要があります。 -
[GAS] UGameplayEffectComponent::OnGameplayEffectChanged を非 const に変更し、ポスト ブループリント コンパイルで値の更新のフローが適切なものになるようにしました。
-
[GAS] バッチで生成されるすべての FScopedServerAbilityRPCBatcher 予測キーが依存していることを確認しました。
-
[GAS] ゲームプレイ キュー通知アクタがリッスン サーバー インスタンスで正しく削除されるようになりました。
-
[GAS] コピー/移動コンストラクタ/演算子で FActiveGameplayEffect::GrantedAbilities が適切に処理されていませんでした。
-
[GAS] AbilitySystemComponent::NotifyAbilityEnded はゲームプレイ アビリティをガーベッジとマークしていましたが、後の関数で使用できていました。
-
[GAS] PR #11117:AbilitySystemComponent ヘッダ ファイルで、コメントのタイプミスと誤ったパラメータ名を修正しました。
-
キャラクター メッシュに範囲が設定された移動の更新を追加し、CharacterMovementComponent 内での複数の範囲が設定された移動中にメッシュの子の冗長な移動が回避されるようにしました。また、以前の範囲が設定された更新をそれ自身のラッパー構造体にクリーンアップし、使いやすくし、それと他の範囲が設定された移動の使用を見つけやすくしました。
-
ゲームプレイ タグ:FGameplayTag と FGameplayTagContainer ピンの値の変更を元に戻す/やり直すことができなかった問題を修正しました。現在では、アンドゥ履歴にトランザクションが適切に作成されます。また、ピン「値をデフォルトにリセット」アクションでも、元に戻せるトランザクションが作成されます。
-
GitHub 11226:DEFINE_TARGETING_DATA_STORE の改行エスケープを修正しました。バックスラッシュは、マクロ定義の最終行に使用されるべきではありません。改行の継続が一部のプラットフォームでコンパイル エラーを引き起こす可能性があります。#contrib 11226
-
ForcePositionUpdate 中に到達するキャラクター移動タイムスタンプ リセットの処理を修正し、タイムスタンプ リセット コールバックを正しくトリガーし、時間を正しく同期するようにしました。APlayerController::TickActor() が有効な新規移動を受信したときに強制更新ステートをリセットしない問題を修正しました。最大タイムアウト時間を待機していました。
-
[GAS] PR #7661:AbilityTask_WaitTargetData で関数を仮想としてマークします。
-
UCharacterMovementComponent::RoundAcceleration() を、FVector_NetQuantize10 のレプリケーションで使用されるラウンディングとクランプに一致するよう変更しました
-
[GAS] 禁止を解除する GameplayEffect を削除すると、これまでは確認が発生していました。これは実際には有効なユース ケースです。
-
[GAS] TryActivateAbilitiesByTag が ActivatableAbilities の可変 (サイズ変更可能) 配列のポインタで反復されるために発生していたクラッシュを修正しました。
-
[GAS] 混合/最小限レプリケーション モードで、GE がスタンドアローン + ListenServer 上にある期間に GameplayCueNotify OnActive が 2 回実行される問題を修正しました。
-
アクタを移動した後にスタティックメッシュが 2 回登録されるのを回避しました。これにより、「アサーションに失敗しました:!Primitive->SceneProxy」の原因の 1 つが修正されました。
-
[GAS] GameplayEffect の GrantedAbilities は適切に自動アップグレードされていませんでした。以前は、子 GE で GrantedAbilities を削除しても、アップグレード時に反映されていませんでした。
-
[GAS] 新しく作成したゲームプレイ エフェクトの適切なバージョン番号が最新に設定されない問題 (およびエディタが再起動されるまで適切に機能しない問題) を修正しました。
-
キャラクターの移動は、基本のジオメトリ コレクションではなく、クラスタ結合に基づいて試行する必要があります。
-
ゲームプレイ アビリティ システム:属性セットからのある属性を変更するゲームプレイ エフェクトが削除される前、またはそれと同時に、その属性セットがサーバー側で削除された場合にクライアント側がクラッシュする問題を修正しました。
-
[GAS] GameplayEffects ログを LogAbilitySystem から LogGameplayEffect に移動しました。実行内容についてより良いコンテキストを提供するようにログの場所を向上しました。
-
[GAS] ゲームプレイ キューが即時ではないゲームプレイ エフェクトにより実行された場合に、2 つの OnActive 呼び出しを受信する可能性のあるリグレッションを修正しました。
-
[GAS] AbilitySystemGlobals が FActiveGameplayEffect ハンドル キャッシュが早くリセットされすぎる (マップ変更中) 問題を修正しました。
-
UE-203565 - SubobjectEditor リストがサイド パネルにドッキングされているとき、または閉じているときに、OnBrowseSocket BP メニューが開きません。ウィンドウがブループリント エディタにドッキングされていると、ツールキット ホストにより作成された STabSidebar に追加されます。現在の SSubobjectEditor をウィジェット パスとして使用すると、STabSidebar の下にあるため、ウィンドウが見つかりません。その結果、メッシュ ソケットのドロップダウン メニューが開きません。これを修正するにはツールキット ホストの親ウィジェットを使用するのが最も簡単な方法で、ドッキングされた場合でもドッキングされていない場合でも正しいウィジェット パスを取得できます。
-
ゲームプレイ アビリティ システム:サーバーがランタイムに構築された GameplayEffects を適用している場合にこれらが null Spec.Defs でレプリケートされるため、コンソール コマンド AbilitySystem.DebugAttribute
で GameplayAttribute デバッグ ビューを表示したときにクライアント側でクラッシュが発生していた問題を修正しました。 -
リプレイの再生中にレベル ストリーミングが常にリプレイのレコーディングが完了したのと同じフレームで完了するとは限らないために発生していた非決定的リプレイのクラッシュを修正しました。これにより、依存するパケットの欠落や、クライアント側が予測する順序で供給されない問題が発生することがありました。新しい cvar demo.DoNotDropPackets を作成しました。これは、前提条件が満たされるまで再生を一時停止することを優先します。cvar によりゲーティングすると下位互換性が確保され、またパケットの欠落が一定したフレームレートを維持するために必要であるためです (ただし、さらに決定性が低下します)。
-
USceneComponent::GetChildComponent() の不必要に暗黙的 TObjectPtr 変換により発生していたパフォーマンスのリグレッションを修正しました。
-
UObject::ProcessEvent() に !IsUnreachable() アサーション失敗に説明メッセージを追加しました。
-
ビルドで CineCameraComponent がティック用に登録しても有益でない場合に登録される問題を修正しました。
-
インゲームのコンソールでデータ ドリブンの CVars がオートコンプリートで推奨されたときに、ツールチップにヒントとなるテキストが表示されるようにしました。
-
UEnhancedPlayerInput の CDO にプロジェクトのデフォルトの IMC アセットを読み込もうとしないでください。そうすると、IMC のサブオブジェクト (トリガー、モディファイア、プレイヤーがマッピング可能なキー設定) が拡張入力モジュール外である場合に、読み込むと null になります。これらのモジュールを、EI モジュールが読み込まれる前に使用可能になるような順序で確実に読み込むことは不可能であるため、ここではこれらをスキップできます。
-
カテゴリと GameplayTagFilter の FGameplayTag メタ プロパティが交換可能であり、大文字と小文字が区別されるようにしました。
-
ChildActorComponent は、その ChildActor がすでに破壊されている場合は、ChildActor を保持しません。これにより、ChildActor オブジェクトに関する「到達可能ガーベッジ オブジェクト」警告が回避されます。
-
ゲームプレイ アビリティ モンタージュ / バグ修正:AbilitySystemComponent が正確なモンタージュ位置ではなく現在のモンタージュ セクションのみをレプリケートするよう設定されている場合に、モンタージュがシミュレートされたクライアントで再生するセクションをレプリケートしない問題を修正しました。現在のモンタージュ セクションは、セクションにジャンプしたときにのみレプリケートされ、あるセクションから次のセクションに自然に移行した場合にはレプリケートされませんでした。これを修正し、SectionIdToPlay が確実に AnimMontage_UpdateReplicatedData で更新されるようにしました。また、セクションのみをレプリケートしてセクション間の移行を改善する際に NextSectionID も利用されます。
-
[GAS] ゲームプレイ アビリティで、ブループリントで利用可能なレプリケート変数を使用できるようにしました。
-
フォース フィードバック コンポーネントの「OnForceFeedbackFinished」が呼び出されなかったバグを修正しました。
-
ティックの途中で移動モードが変更された場合に、カスタマイズされたCharacterMovementComponent に含まれる以前のモードの Phys** 関数で移動が継続される問題を修正しました。
-
UE-203280 - ダングリング デリゲート再ルーティング ノードが含まれる UE4 からのブループリントを UE5 に読み込むとクラッシュします。GetLinkedDelegateSignature にかなり積極的なアサートがあります。ノット (再ルーティング) ノードに出力がリンクされていない可能性もあります。このような場合、リンクされたデリゲート シグネチャがないため、ループから安全に抜けることができます。
-
入力コンポーネント上でベクター軸のキー バインディングをオーバーライドする際のエラーを修正しました。
-
GFP プラグイン識別子を短縮し、リーフ ファイル名のみにしました。これにより、正規化されていないパスの問題が回避されます。
-
エディタで使用中の DataRegistry ソースを削除しようとしたときに発生するクラッシュを修正しました。
-
プレイヤーを再起動しようとしたときにゲームモードが null の場合に、プレイヤー コントローラーで発生していたクラッシュが回避されるようにしました。これまでのところ、これが発生する既知の状況は、アクティブ PIE セッションからすべてを削除してから、ポーンをリスポーンしようとした場合です。現在では、クラッシュする代わりに、これが発生していることをログ記録して早期に終了します。
-
CharacterMovementComponent で、移動の調整が遅延した場合に調整済み移動モードが現在のモードにより上書きされ、それによって不一致と追加の補正が発生することがあった問題を修正しました。
-
キャラクターが垂直 (重力に合わせる) を維持しようとするが、そのためにピッチやロールを変更できない問題を修正しました。
-
[GAS] 新しいゲームプレイ アビリティ ハンドルを付与するときに ActiveGampelayEffects 配列が適切にダーティとマークされるようにしました。
-
UE-194830 - ブループリント コンパイラに UHT との整合性がなく、DefaultToInstanced クラスを参照する DefaultToInstanced 変数を生成するときに、「EditInline」メタデータも true に設定する必要があります。そのようにしないと、このプロパティをエディタでインスタンス化できません。これは、UHT の UhtObjectProperty に対する動作を模倣しています。
-
レプリケートされた LevelSequenceActor がクライアントで再作成されたために発生してたいくつかの異なるクラッシュを修正しましたが、以前からの SequencePlayer を使用し、ガーベッジ コレクションされていないそのアクタのコピーを破壊します。
-
[GAS] アビリティ システムが使用されているときに UAbilitySystemGlobals::InitGlobalData が確実に呼び出されるようにしました。以前は、ユーザーが呼び出さなければ、GAS は正しく機能しませんでした。
-
ゲームプレイ アビリティ システム:GameplayAbility がアビリティのアクティベーション時に所有しているアクタを破壊したときに、アクタ破壊が ABILITY_SCOPE_LOCK の間にアビリティ リストをクリアしようとするために発生するクラッシュを修正しました。スコープ ロックの間に ClearingAllAbilities() を呼び出すと、範囲の終了点までアクションが延期されます。アビリティがアビリティのアクティベーション時に所有しているアクタを破壊できるようになりました。
-
ゲームプレイ アビリティ システム:AbilitySystemComponent に期限付き GameplayEffects からの保留中の TimerManager コールバックがある場合に、サブレベルの一部としてアンロードされたときに発生していたクラッシュを修正しました。現在では、ASC がワールドから削除されたときに、保留中の TimerManager コールバックが正しくクリアされるようになっています。
-
ゲームパッドを 2 番目のウィンドウにルーティングするように修正しました。複数ビューポートがある PIE セッション中にゲームパッド入力が次のビューポート クライアントにルーティングされませんでした。
-
拡張入力 BP ノード モジュールをデフォルトではなく、PreDefault にします。これは拡張入力ノードがテンプレート C++ プロジェクトでロードされないことがあるバグを修正します。
-
[GAS] ローカルで生成された場合に、FPredictionKeys のみで「キャッチアップ」を試行することを保証します。
-
ワールド初期化中にスポーンされるアクタが、PostRegisterAllComponents (および関連関数) を 2 回呼び出さないように修正します。s.OptimizeActorRegistration は古い動作に戻す、またはエラー ログ出力をさらに追加するために使用できます。
-
TQuat
::Slerp_NotNormalized() を最適化します。サイン関数の負角の公式により 1 ブランチを削除します。古い関数と新しい関数を検証するためのスタートアップ テストを追加し、正および負の「RawCosom」値両方に対する両バージョンもテストします (以前はテストなし)。 -
登録解除時にオブジェクトへの参照をクリーンアップしていない GameFeatureAction_AddAttributeDefaults を修正しました
-
[GAS] OnRemoveAbility により、まだアクティブである、インスタンス化されていないアビリティで EndAbility が実行されない問題を修正しました。
-
[GAS] PR #10474:
GetAbilitySystemComponentでデフォルト パラメータを Self に更新しました -
ブループリント構成変数のツールチップにおける不整合を修正しました。GetConfigName が、必要とする .ini ファイルのベース名を必ずしも返しません。たとえば、クラスが構成値として DefaultEngine.ini を使用する場合、GetConfigName はベース名「Engine」を返します。しかし、クラスが DefaultEditor.ini を使用する場合、GetConfigName はゲームの「Saved/Config」ディレクトリの配下にあるマージされた .ini ファイルへのパスを返します。ClassConfigName は構成ファイルのベース名に対応するために、ツールチップに対してそれだけを使用できます。
-
[GAS] PR #11119:GameplayEffect ApplicationRequirements のアップグレードを修正しました
-
ネスティングされているプロパティ内のプロパティ (UStructs など) を含めるように UProperty の ForceRebuildProperty の使用を拡張します。
-
ターゲティング選択タスク AOE から位置を HitResult に追加しました
-
レジストリのデイニシャライズ時に一時的 DataRegistry データが RuntimeChildren 配列から適切に削除されなかった問題を修正しました
-
[GAS] PR #6354:シミュレートされたプロキシでアビリティ モンタージュが突然停止する問題を修正しました
-
[GAS] PR #10990:GAS モンタージュ セクションのクラッシュを修正しました
-
[GAS] AbilitySystemComponent で ForceReplication を使用するとき、または ReplicationProxy アクタを使用する場合に、ForceReplication を呼び出すと、GameplayCues および GameplayTags の速やかな提供を保証します。
-
[GAS] PR #8063:FGameplayEffectContextHandle:「アクタ」を取得する前に、データが有効であることをチェックします
-
ガベージとマークされる前に ReplicatedSubObjectsList から必ずしも削除されない問題について GameplayAbilities を修正しました
-
[GAS] PR #7542:GAS ターゲット データ LocationInfo の回転を保持します
非推奨:
-
[GAS] アビリティ システム内で、依存する FPredictionKeys に関する誤解 (およびバグ) をクリーンアップしました。使用されないために FPredictionKey::Base をレプリケートしません。#contrib 11151 を反映。
-
さらに拡張可能な FPlatformNamedChunkCompleteDelegate が優先されるために、FPlatformNamedChunkInstallDelegate は非推奨になりました。
-
[GAS] InhibitActiveGameplayEffect は無効化された可能性がある ActiveGE を再利用していました。ユーザーでこの問題が発生しないように、この関数を非推奨にして、SetActiveGameplayEffectInhibit を優先にします。
質量
API の変更:
- 「無効な」StaticMeshDescIndex を示すために、INDEX_NONE が以前使用されていました (例、FMassRepresentationFragment 内) が、FStaticMeshInstanceVisualizationDescHandle::InvalidIndex を使用して無効な質量スタティックメッシュ インスタンスのビジュアライゼーションを示します。
- FStaticMeshInstanceVisualizationDescHandle 自体は、構築時に内部で INDEX_NONE を新しい InvalidIndex 値に変換する特別な処理があります、多くの場合自動でキャッチされますが、StaticMeshDescIndex で INDEX_NONE と比較する場合に、新しい InvalidIndex 値に明示的に変換することを推奨します。古い INDEX_NONE で暗黙的に比較が一致しないことを保証するために、StaticMeshDescIndex は FMassRepresentationFragment の StaticMeshDescHandle に名前が変更され、重大な変更を強制します。
新機能:
-
MassAI - 質量ゲームプレイ デバッガ カテゴリでローカル/リモート エンティティ マネージャーのデバッグを切り替える gdt.mass.ToggleDebugLocalEntityManager コンソール コマンドを追加しました。ゲームでデフォルトのショートカット (Shift + L) をオーバーライドする場合に便利です。
-
UMassActorSpawnerSubsystem::ReleaseActorToPool 仮想メソッドにより、サブクラスでアクタのプーリング動作をカスタマイズできるようにします。
-
PR #9620:MassEntityZoneGraphSpawnPointsGenerator.h のタイプミスを修正しました
-
UMassSignalProcessorBase から継承した、プロセッサ用の所有済み全クエリのサポートを追加しました
-
FMassArchetypeEntityCollection 配列で一致するエンティティ数を計算するために GetNumMatchingEntities オーバーロードを FMassEntityQuery に追加しました。
-
mass.debug.RepresentationLOD と同様の mass.debug.Representation CVar をエンティティのデバッグ描画表現ステートに追加しました。さらに mass.debug.Representation と mass.debug.RepresentationLOD を VisLog ステートに対して 2 に、VisLog とデバッグ描画に対して 3 に設定する機能も追加しました。
-
UPROPERTY マークアップをテキスト エクスポートに対する多様なフラグメント構造体メンバーに追加しました。これにより、デバッグ対象エンティティのフラグメント値を調べるときに、AI ゲームプレイ デバッガの質量カテゴリでそれらメンバーを表示できます。
-
PR #9351:MassVisualizationComponent.cpp のエラー メッセージのタイプミスを修正しました
-
質量ビジュアライゼーション - 符号付き int16 StaticMeshDescIndex ハンドルを明示的に型付けされた、新しい FStaticMeshInstanceVisualizationDescHandle に切り替えます。これは内部で符号なし uint16 を使用し、ISMC ビジュアライゼーション登録可能数が 2 倍になります。
-
mass.debug.Representation.MaxSignificance と mass.debug.RepresentationLOD.MaxSignificance CVars をエージェント カウントが多数の場合のパフォーマンスと視認性のためデバッグ描画を制限するために追加しました。
-
const および非 const の共有フラグメント アクセサ メソッドを FMassEntityManager に追加しました。
-
FMassTagBitSet を MassExecutionContext の FMassArchetypeCompositionDescriptor で置換しました。フラグメント ビューを元々使用していた DoesArchetypeHaveFragment の追加もあって、ルックアップは必要以上に負荷が高くなります。この変更により、アーキタイプで使用される完全なビットセットにアクセスでき、効率的なルックアップを提供し、他のタイプのフラグメントに将来拡張できる余裕が生まれます。
-
MassVisualizer アクタはアウトライナーで表示されなくなり、ユーザーが削除できません。
-
PR #9326:MassAgentComponent.h のタイプミスを修正しました
バグ修正:
-
エディタで動作しない一部のプロセッサを更新しました
-
新しいフラグメント インスタンスを追加するときに、フラグメント データは常にオブザーバーへの通知前に適用されています
-
PR #10931:checkSlow で検出された別のクエリに対する追加修正された MassRepresentationAccessMode を修正しました #contrib 10931
-
質量コマンド バッファのフラッシュ時にループ最大値に到達することに対する誤検出エラー ログを修正しました。
-
MassRepresentation プロセッサ依存関係の順序の修正:UE::Mass::ProcessorGroupNames::LOD をデフォルトで UMassRepresentationProcessor の ExecuteAfter 依存関係に追加し、MassRepresentationProcessor で、リクエストされた LOD の表現で変更の有効化を試行する前に LOD の計算を実行するように保証します。さらに UMassStationaryISMSwitcherProcessor.cpp を表現プロセッサ グループに配置し、このグループ内に UMassVisualizationProcessor の明示的な ExecuteAfter を維持します。
ネットワーキング
API の変更:
- Iris を有効にして動作しているとき、次の CSV 統計は値を出力しなくなります (以前はただ 0 を出力):
- GatherPrioritizeTimeMS、NumOpenChannels、NumSkippedObjectEmptyUpdates、NumTickingChannels、ReplicateActorTimeMS、SharedSerializationPropertyHit、SharedSerializationPropertyMiss、SharedSerializationRPCHit、SharedSerializationRPCMiss
-
UNetDriver::ERemoteFunctionSendPolicy を列挙型から列挙型クラスに変更しました。つまりこれをコードで使用していた場合、スコープのやり直しが必要になることがあります。
- Iris を有効にして動作しているとき、CSV ファイルには次の対象のメトリクスが含まれます。
- ReplicationBridge_PreUpdate、 ReplicationBridge_PollAndCopy、ReplicationSystem_UpdatePrioritization
新機能:
-
Iris - フィルタ包含グループ機能を追加しました。フィルタ包含グループはダイナミック フィルタリング後に処理され、UNetObjectFilter 実装経由でフィルタが実装されます。その唯一の目的はフィルタで除外されたオブジェクトのレプリケーションをオプションで有効にすることです。これによりたとえば、オブジェクトを空間的にフィルタで選別できるが、チームやビュー ターゲット グループにより有効化されます。そのようなグループはデフォルトで実装されていません。そのようなグループを作成、更新、破棄する、関連ゲーム ロジックをユーザーが実装することにかかっています。ルート オブジェクトは包含グループをフィルタリングするためにのみ追加でき、サブオブジェクトは、ルート オブジェクトと同様にフィルタで選別されます。
-
サーバーでダイナミック アクタの名前を変更するためのテスト ケースおよびレプリケーション テスト ユーティリティを追加しました。UE::Net::FTestWorldInstance および UE::Net::FTestWorlds はフルの UWorlds を作成し、ネットワーキング全体およびレプリケーション パスを利用する一関数のスコープ内で、書き込み同期テスト ケースを有効にします。ワールド、アクタ、ストリーミング レベルなどに依存する機能をテストするときに便利です。作成されたワールドは PIE ワールドであり、現在エディタのみで動作します。
-
ランタイム時に nettrace 詳細を設定するコンソール コマンドを追加しました - NetTrace.SetTraceVerbosity [verbositylevel]
-
NetDriver の初期化で、設定されているレプリケーション モードの種類を識別するログを追加しました。
-
動作に整合性がなく、コードで使用すべきではないので、FFastArraySerializer::FPostReplicatedReceiveParameters::bHasMoreUnmappedReferences を非推奨とします。
-
レプリケートされ、スポーンされたアクタのレベルをシリアル化しない機能をオプションで戻すために CVar net.SerializeNewActorOverrideLevel を追加しました。これによりクライアントでパーシスタント レベルにスポーンされます。サーバーのそのレベルに関係ありません。
-
Iris - FNetSerializer で適用するためのサポートを実装しました。実装すると、受信ステートをターゲット ステートにプッシュするときに呼び出されます。FRepMovementNetSerializer は新しい機能を使用して、量子化レベルの上書きを回避します。
-
Iris - Ordered RPC の概念を追加しました。Unicast RPC は信頼できる RPC および同じアクタをターゲットにする他のユニキャスト RPC を元に順序が付けられます。クライアントからサーバーへ、すべての信頼できるユニキャスト RPC は、ターゲット アクタに関係なく、互いを基準に順序が付けられます。
-
NetDriver * NetworkHandlerComponent (圧縮、暗号化、ソケット送信など) 内で費やされた時間を追跡するため、FlushNet 呼び出しに限定 CSV CPU スコープを追加しました
-
Net.DebugDraw 1 で NetGUID を表示するようになります
- サーバーで、レプリケートされたアクタの外部変更に対するオプションの処理を追加しました。
- 配置されたアクタではなく、ダイナミックにスポーンされたアクタのみをサポートします
- ReplicationGraph サポートが追加され、CVar Net.RepGraph.HandleDynamicActorRename で切り替えます
- Cvar net.CleanUpRenamedDynamicActors では、クライアントで現在表示されていないレベルにサーバーがアクタを移動する場合に、アクタを破棄するようにクライアントに指示します (現在の動作を維持するためにデフォルトでは無効)。
-
Iris NetDriver が動作しているときに、非 Iris の CSV ネット メトリクスを削除します。これまでこれらすべては 0 に設定され、全フレームで出力されました。これにより生の CSV サイズがかなり削減されます。BaseEngine.ini でもこれらを定義できるようになりました
-
Iris - ガベージとしてマークされたオブジェクトのレプリケーションの終了を EndReplication で処理するようになりました。- サブオブジェクトを伴うオブジェクトに対して DestructionInfos を実行するときに保証するように修正しました
-
フレーム時間に対するレイテンシーとのトレードオフになるオプションとして、複数フレームで受信ネットワーク処理を分割するために、オプションの CVar net.ClientIncomingBunchFrameTimeLimitMS を追加しました。デフォルトで無効です。
-
NetDriver:エンジン クラッシュ コンテキスト「ReplicationDriver」を追加しました * Generic、Iris またはレプリケーション ドライバーのクラス名に設定されます
-
Iris:GameMode クラスを通じてレプリケーション システムを優先する機能を追加しました。 ゲームモードで特定のレプリケーション システムを選択するとき、サーバーは互換性がある場合にそのモードを使用して GameNetDriver を作成します。 クライアントが適切なレプリケーション システムのゲームモードを要求できないことに注意してください。つまりサーバーで接続前に、適切なモードを予測できるときにのみこれを使用します。その他の場合、互換性のないネットドライバーのためにクライアントの接続が切断されることがあります。 単一プロセス内で開始された PIE クライアントは専用サーバーの適切なレプリケーションシステムを使用します。 コマンドラインで -UseIrisReplication=0/1 を設定すると、ゲームモードのリクエスト システムをオーバーライドします。
-
UNetDriver::ERemoteFunctionSendPolicy を列挙型から列挙型クラスに変更しました
-
Iris:GameInstance は GetDesiredReplicationSystem を通じてレプリケーション システムをリクエストできるようになりました
-
ネットワーク:ackhistorybuffer をオーバーシュートする場合に、誤検出を起こさない Ack 履歴オーバーランの処理を改良しました。クライアントは新規データ パケットを受け入れる前にシーケンス履歴をフラッシュします。
- NetDriver:
- マップされていない GUID で、遅延した RPC の数とそれらが遅延したフレーム数をトラックする NetConnection に統計情報のトラックを追加しました。
- 信頼できるグループ数をトラックする統計情報のトラッキングを NetDriver に追加しました。
- 信頼できない RPC のみを強制的にドロップするためにコンソール チートを追加しました。特定の信頼できない RPC がドロップされ、再送信されないが、同じフレームをサンプリングした隣接プロパティ データが送信されない、シナリオを適切にシミュレートするために使用できます。信頼できない RPC を使用してゲームプレイ コードをテストするのに便利です。
- NetEmulation.DropAnyUnreliable:送信されたすべての信頼できない対象の % をドロップします
- NetEmulation.DropUnreliableOfActorClass:特定クラスで送信されたすべての信頼できない対象の % をドロップします
- NetEmulation.DropUnreliableOfSubObjectClass:特定クラスで送信されたすべての信頼できない対象の % をドロップします
- NetEmulation.DropUnreliableRPC:渡された関数名のすべての信頼できない対象の % をドロップします。
- NetEmulation.DropNothing:信頼できない RPC のドロップを停止します
-
Iris PreUpdate、Polling および Prioritization に対する CSV 統計を追加しました
-
NetDriver:接続ごとに各フレームで送受信するパケット量を収集するようになりました。 各フレームで送受信する、接続ごとのパケット数の平均と最大値を CSV プロファイラに出力します。 すべてのパケットに単一グループを必ず含む net.ForceOnePacketPerBunch チートを追加しました。2 つのアクタに依存関係があってはならないが実際にあるときに、まれな順序問題をデバッグするために使用できます。
-
レプリケーション シリアル化エラーの多くの場合にアクタとプロパティ名のロギングを追加しました。
-
レプリケート グループの信頼できるバッファを 512 に増加しました。
-
信頼できるバッファがオーバーフローするとき、送信されない RPC の対象を示す LogNetTraffic エラーを追加しました。
-
Iris:PostDispatchTick から SendImmediate としてフラグが付いたアタッチメントを送信するためのサポートを追加しました
- ValidateActorReferences を RepGraph および RepGraphNode タイプに追加しました * RepGraph の全ノードでイテレートし、古いアクタ参照がないかどうかをチェックします
バグ修正:
-
DemoRecording: Iris ネットドライバーでデモレコーディングを有効にするときの CanSkipUpdate を修正しました。 別のネットドライバーで Iris が有効であるときに、PushModel は汎用 NetDriver で有効ではありません。
-
すべてが登録されているマップされたエクスポートとは限らないため、チェックポイントによるエクスポートでグループ エラーが発生する場合、一部のエクスポートで記録されたデモ フレームとともに適切にエクスポートされなかった問題を修正しました。
-
古い値を渡す TWeakObjectPtrs の repnotify 関数での問題を回避するために、P_GET_WEAKOBJECT_NO_PTR および P_GET_WEAKOBJECT_REF_NO_PTR スクリプト マクロを追加しました。
-
ReplicationGraph で保持されるときに GameplayDebuggerCategoryReplicator がクラッシュする問題を修正しました。bReplicateToOwner を設定すると、Iris が実際に動作しているときにのみ実行されます。
-
Iris - 作成をキャンセルしてから破棄をキャンセルする場合、オブジェクトが waitforcreateconfirmation ステートでスタックする問題を修正しました。
-
ネットワーキング:ブループリント クラスの ConstructionScript に追加されたレプリケート コンポーネントは、ネットでアドレス指定可能とみなされ、2 回インスタンス化することなくクライアントで適切にマップされます。* クラス CDO と異なるアーキタイプから構築された、ダイナミック UserConstructionScript コンポーネントのレプリケートを開始するタイミングを保証します。このようなコンポーネントのクライアント バージョンは、クラス CDO を使用して常に初期化され、おそらく間違って初期化されていました。
-
Iris:まだ ACK されていない大規模オブジェクトにサーバーがさらにデータを送信するため、クライアントで接続の切断が起きる問題を修正しました。
-
PushModel:プッシュ モデルが有効であるときに正しく同期しない RemoteRole を修正 * ForceCompare() を呼び出すと、ダーティとフラグが付いていない場合でも、プッシュ モデルのプロパティが必ず評価されるようになりました。
-
レプリケートされたアクタが休止状態であり、クライアントでアクタのレベルがロードされていない間に休止がフラッシュされる場合、そのアクタが正しくレプリケートされない問題を修正しました。CVar net.FlushDormancyUseDefaultStateForUnloadedLevels で制御します。
-
Iris:NetBlob を分割するときに、そのまま信頼性を維持します。信頼できないマルチキャスト RPC の分割では、通常の実行順も維持されます。
-
IsReplicated が false であるにもかかわらず、レプリケート サブオブジェクト リストに追加されている、BeginPlay 後に作成されたアクタ コンポーネントを修正しました
-
ネットでアドレス指定可能/常に名前が付いたサブオブジェクトへの、レプリケート オブジェクト ポインタが適切にレプリケートまたはマップされない問題を修正しました。CVar net.RemapStableSubobjects で制御します。
-
ChildActorComponent:CAC テンプレート インスタンスが間違ったタイプである場合に、アクタをスポーンするために間違ったテンプレートを使用してシミュレートされたアクタを修正しました。
-
UNetworkPhysicsComponent の巻き戻しデータにおけるオブジェクト参照のレプリケーションを修正しました。
-
Iris:参照が解決されたときに、適用ステートにそれらのみが含まれるように部分的に解決された参照を適切に管理します。
-
FNetGuidCache および FObjectReferenceCache のシャットダウン時のクラッシュを修正しました
-
覚醒するように設定された、休止ステートのアクタが、意図しないで、常にネットに関連があるとして扱われる、レプリケーション グラフのバグを修正しました。
-
Iris:休止が保留中のオブジェクトのサブオブジェクトがすべて、必ずしも想定どおりにポーリングされない問題を修正しました。
-
Network Insights:PacketView での集計表示を修正しました
-
Iris:想定しないデータを未確定オブジェクトに送信するために BitStream が破壊される問題を修正しました - 作成の確認を待機する場合にオブジェクトが破棄されたので、同じフレームでポストされた場合に、アタッチメントを PendingFlush が適切にフラッシュしない問題を修正しました。
-
Iris:bNetTemporary とマークされたアクタをクライアントが破棄するタイミングを保証するように修正しました。
-
ReplicationGraph:bNetTemporary を設定して、アクタをレプリケートするタイミングを保証します
-
NetDriver:アクタが休止になるのをプッシュ モデルが妨げる問題を修正しました * CanSkipUpdate でチェンジリスト履歴をテストするようになります
-
Iris:スコープ外でステート変更が発生し、後からスコープへの再追加が正しくダーティにならない問題を修正しました
-
Net.RepGraph.DormantDynamicActorsDestruction が有効であるとき、クライアントがネットワーク関連性の範囲外である間、アクタの休止状態がフラッシュされた場合に、休止アクタが正しくレプリケートされないことがある、レプリケーション グラフの問題を修正しました。
-
Iris:呼び出すべきではないクライアント コードから EndReplication を呼び出す場合をトラップするコードを追加しました - すべきではないコンポーネントで EndReplication を呼び出すクライアントでの問題を修正しました。
-
SubObject Replication:想定より早期にサブオブジェクトがオブジェクト レプリケータを作成した場合でも、新規サブオブジェクト グループが常に信頼できることを保証します。PR #9850:ObjectReplicator が最初に送信される前に、オブジェクトが信頼できない RPC をリクエストした問題を修正しました
-
Iris:依存オブジェクトのスケジュール設定で問題を引き起こした、高優先度の浮動小数点値の精度バグを修正しました
-
レコーディング時間制限が SetMaxDesiredRecordTimeMS 関数で設定された場合に、ネットワークで DemoNetDriver をリプレイすると、一部のアクタの破棄がリプレイで正しく記録されないバグを修正しました。
-
FNetBitArray::FindLastZero が配列サイズの範囲外のインデックスを返し、ストレージのサイズに適合しない問題を修正しました。
-
レプリケートされたサブオブジェクトのレプリケートされた高速配列は、休止をフラッシュするときに、冗長の変更通知を取得することがある問題を修正しました。CVars net.EnableFlushDormantSubObjects および net.EnableFlushDormantSubObjectsCheckConditions で制御します。
-
Iris - サーバーとクライアントからの信頼できないアタッチメントに対する分割サイズの明示的な構成を追加しました - 分割され、パケットがドロップされた場合にクライアントから送られる古い移動の問題を修正しました。
-
マルチプレイヤー PIE において、World Partition レベルの一部のアクタが適切にレプリケートされない問題を修正しました。
-
Iris:アイテムマップがコールバックからリセットされたので FastArraySerialzierCallbacks を発行するときに、アイテムマップに依存しないように Iris FastArraySerializer の実装を変更しました
-
シームレスな移動を通じて持続した、休止状態のアクタをレプリケートするときの問題を回避するため、シームレスに移動するアクタに対して DormantConnections および RecentlyDormantConnections を必ずクリアします。
-
Iris:内部インデックスでスケジュール設定し、無効なオブジェクトで送信されるスコープ外のサブオブジェクトに RPC をポストしたときの問題を修正しました。
コンテンツ サンプル
新機能:
-
建築ビジュアライゼーション テンプレートで GPU Lightmass マップを更新しました
-
建築ビジュアライゼーション SunSky 反転間接ライティング強度設定のデフォルトを 2 から 1 にしました
レベル デザインとアート ツール
バグ修正:
-
静的な順列が有効であるとき、メッシュ ペインティング ツールがマテリアル インスタンスでそのテクスチャ オーバーライドを失う問題を修正しました。
-
トランザクションを作成しないパイロット アクタを修正しました。
ジオメトリ コア
新機能:
-
負のクォータニオンも等しいことを認識するために TQuaternion::EpsilonEqual を更新し、IsIdentity() メソッドを追加しました。
-
FDynamicMesh:実際に試す前にエッジ コラプスが失敗するかどうかをチェックする CanCollapseEdge 関数を追加しました
-
EditMesh/SetMesh による任意の変更をブロックできるようにするため、新しいプロパティ bIsEditable を UDynamicMeshComponent で公開しました。さらに、このフラグを false に設定すると、ダイナミック メッシュ コンポーネントに対して UDynamicMeshToolTarget の作成がブロックされるので、モデリング ツールでもこのメッシュを編集できません。
-
凸型分解マージ アルゴリズムではオプションでマージをトラックする、またはマージを防ぐコールバックをサポートするようになり、さらに詳細レベルでの制御、および新しいコンテキストでこのアルゴリズムを使用できます。
-
新しいポリゴンベースの単純化メソッドを ConvexHull3 に、さらに初期のハル ビルドの許容範囲を追加しました。正確なハルは不要で、より少ない平面を使用して、出力で平面の劣化がほぼない、優先度を設定できるユースケースをサポートするためです。ほぼ同一平面にある面が正確なハルの出力に多数存在するような場合にこの単純化が特に効果的です。
-
cbrt (立方根) 関数が mathutil に追加されました
-
トランスフォーム シーケンスを反転する、トランスフォームの逆数をトランスフォーム シーケンスに追加する、さらに TTransformSRT3 がその逆数を表現できるかどうかをテストする (トランスフォーム シーケンスの逆数を効率的に表せるように) サポートが追加されました
-
ポイントの配列に対して凸包ボリュームを算出するために静的ヘルパーが凸包クラスに追加されました
-
法線ベースのクラスタリング アルゴリズムが追加されました。これによりグループの現在の平均法線を基につながっている三角形グループをグループにまとめます。
バグ修正:
-
凸型分解近接グラフが不正に生成され、次善の結果につながる問題を修正しました。
-
エッジ ベベル演算の堅牢性を向上しました
-
ComputePoissonSampling メソッドでクラッシュが発生する原因になりうる、まばらなダイナミック ポイント八分木サンプリング方式の競合状態を修正しました
-
初期の close-point-removal によりポリゴンを 2 点にする Polygon2::Simplify の処理を修正しました
-
許容範囲ベースのポイント破棄が有効であるとき、凸包の生成でクラッシュする問題を修正しました。
-
出力が楕円であるときに、過剰なポイントを使用する、またはポリゴンのオフセット処理でクラッシュすることがあるバグを修正しました。
-
単純化/再メッシュで考慮する必要がある一部のエッジを、メッシュの簡素化と再メッシュ コードでスキップすることがある問題を修正しました。
-
凸型分解アルゴリズムで、一部の場合にリクエストされた負のスペースを、尊重できないことがある問題を修正しました
-
法線と接線を適切に変形するためにオプションを StaticMeshOperations::TransformMesh に追加しました。代わりに UE レンダラに一致する、現在の動作をデフォルトにします。両方のパスを説明するコメントを追加しました。
-
MergeCoincidentMeshEdges 処理で、入力に非ゼロのバウンディング ボックス サイズがあることを確認しないようにしました
-
FGeomTools2D::TriangulatePoly メソッドの堅牢性を高め、三角分割を正常に作成する確率を高めました
非推奨:
- 非推奨の FTransformSRT3 の反転メソッドおよびレガシーの ExactPredicates メソッドをジオメトリコアから削除しました
ジオメトリ スクリプト
新機能:
-
単純なコリジョン形状を変形するジオメトリ スクリプト関数を追加しました。
-
新しい法線を計算する対象および入力リストからそれらをコピーする対象を明らかにするため、頂点ごとの法線設定のジオメトリ スクリプト メソッドのディスプレイ ネームを更新しました。
-
イヤー クリッピングを使用する、3D ポリゴン三角分割ジオメトリ スクリプト メソッドを追加しました。
-
外部で提供される接線の使用が新しい DynamicMeshComponents でデフォルトになり、それらの接線を決定する方法を変更するために UI 公開設定が用意されています。
-
ジオメトリ スクリプトの CopyMeshFromComponent メソッドでは、インスタンスの色をオプションでスタティックメッシュ レンダリングデータ LOD から読み取れるようになりました。
-
形状が十分似ている場合に、球またはボックスで凸包を近似するために、ジオメトリ スクリプトの新しいメソッドを追加しました。
-
ダイナミックおよびスタティックメッシュ コンポーネントから単純なコリジョン形状をコピーし移行するための新しいジオメトリ スクリプト関数を追加しました
-
スプライン->ポリゴンパスへの変換の追加関数を、指定時間または距離の範囲内でスプラインのサブセクションの変換をサポートし、各ポイントに関連した距離の値も取得するために、追加しました。
-
ジオメトリ コレクションを CopyMeshFromComponent メソッドでダイナミック メッシュに変換するために、ジオメトリ スクリプトのサポートを追加しました
-
新しいポイント セット関数をジオメトリ スクリプトに追加しました。これには k-means クラスタリングのメソッドが含まれ、バウンディング ボックスを算出し、トランスフォームの配列とポイントの配列の間で変換します
-
レベル セット オプションをジオメトリ スクリプト「Collision From Mesh」メソッドに追加しました
-
球のカバリングを直接操作するジオメトリ スクリプト メソッドを追加しました。これは凸型分解と凸包マージ アルゴリズムの制御に使用できます。
-
MergeSimpleCollisionShapes 関数をジオメトリ スクリプトに追加しました。これによりマージすることで単純なコリジョン形状の数を削減できます。これは凸包マージ経由で動作します。つまりマージした形状は常に凸包ですが、マージされていない形状はオリジナルのタイプのままです。
-
「AppendSimpleCollisionShapes」ジオメトリ スクリプト関数を追加しました。これは単純なコリジョン形状のメッシュ表現を構築します
-
ジオメトリ スクリプトのサンプル範囲を制御する新しいプロパティを追加しました。このスクリプトは spline->polypath および spline->transform 配列関数です
-
ジオメトリ スクリプト コリジョン形状マージの最小厚パラメータのサポートを追加しました
-
ダイナミック メッシュ コンポーネントの複合コリジョン メッシュで物理マテリアルをサポートするようになりました
-
凸包単純化をジオメトリ スクリプト コリジョン関数に追加しました
-
形状の周りの重要な負のスペースを定義する球体のセットを生成し、ビジュアル化する、さらにこれらの球体にオーバーラップしないコリジョン形状を生成するためのサポートを追加しました。
-
スタティックメッシュにコリジョンを設定するジオメトリ スクリプト メソッドではスタティックメッシュ コリジョンがカスタマイズとしてマークされるかどうかを制御できるようになりました。たとえば、インポート パイプラインの一部としてジオメトリ スクリプトで設定されたコリジョンから、手動で変更されたコリジョンを区別するときに便利です。
-
ダイナミック メッシュ コンポーネントのコリジョンがエディタ ビューで表示できるようになりました
-
ジオメトリ スクリプト メッシュのブール演算結果が空になることをオプションで許可するようになりました
-
2 番目の形状から 1 番目に追加することで、単純なコリジョン形状を結合するジオメトリ スクリプト関数を追加しました。
-
ジオメトリ スクリプトの複数ポイント セット関数を追加しました。1. OffsetTransforms では、法線に沿ってメッシュ サンプルを移動する場合に、たとえば、そのローカル Z に沿ってすべてを移動するために、配列ですべてのトランスフォームの位置にオフセットを加えます。2. DownsamplePoints では、オプションで優先度により重みづけして、均一な配置を近似し、ポイントを固定サンプル数にダウンサンプルします
-
シーンで完全にオクルードされるメッシュ インスタンスを検出するための DetermineMeshOcclusion メソッドを追加しました。
-
未使用の頂点をダイナミック メッシュから除去するメソッドを追加しました
バグ修正:
- 空のポリゴン リストに付加するときにクラッシュする問題を修正しました
- ポリゴン パス オフセット関数群で成功フラグの出力を適切に更新し、「失敗時に入力をコピー」設定を尊重するようにしました。
-
ジオメトリ スクリプトの各メソッドでスタティックメッシュ ビルド スケールを適切に尊重し、スタティックメッシュとの間でコピーするようにしました。
-
ジオメトリ スクリプトのレイの平面交差関数を修正しました
-
USplineComponent のパブリック、再帰的スプライン サンプリング関数が任意のカーブ範囲で正しく動作するようにしました。以前は短い範囲 (スプライン セグメントの半分) に対してのみ正確にスプラインをサンプリングしていました。
-
ランタイムのスタティックメッシュ -> ダイナミック メッシュ変換関数が、データをレンダリングするための CPU アクセスが利用できないときにクラッシュする問題から保護します。これらは CPU アクセスが必要であることを説明するメッセージを必ず表示するようになりました
- ジオメトリ スクリプトの「Recompute Normals」メソッドで、属性がない、または法線のオーバーレイがないメッシュで呼び出すと警告をログに記録するようになりました。その場合に頂点ごとのオーバーレイがデフォルトになります。
モデリング ツール
新機能:
-
コリジョンが外部アクションで更新されるとき、そのビジュアライゼーションをモデリング モード物理インスペクターが自動で更新するようにしました
-
選択可能メッシュ要素はメッシュ要素の選択が有効であるときに強調表示されるようになりました。
-
ブリッジ アクションを TriEdit に追加しました。
-
レベル セットがモデリング ツールによりさらに正確にビジュアル化されるようになりました。キューブのグリッドではなく、サーフェスを使用します。
-
変更:タイル プレゼンテーションではなくリスト プレゼンテーションを使用して、新規プリセット ウィンドウでツール プリセット フライアウト ダイアログを変更しました。長いプリセット コレクション ラベルで名前がはっきり読み取れるようになりました。
-
深度テストなしでエッジを描画するため、メッシュ インスペクターのオプションを追加しました。つまりメッシュのすべての穴や他の可能性がある問題をさらに簡単に検出できます
- チャンネルごとのベイクに対して BakeVertex を改良しました
- チャンネルごとにベイクする BakeVertex は指定チャンネルにのみ上書きするようにしました。
- BakeVertex はチャンネルごとのベイクに対して、1/0 エバリュエーターを指定して、個別の値でチャンネルをフラッドできるようになりました。
-
クリックされたサーフェスに直接ないスプラインの描画をサポートする、オフセット パラメータをスプライン ツールに追加しました
-
ポリゴングループ エッジの削除のサポートが追加されました。
-
[Mesh to Collision] ツールにコリジョン形状マージが追加されました
-
[Mesh to Collision] ツールで多くのコリジョン形状タイプの最小厚オプションをサポートするようになり、サポートされていないときは、そのオプションは無効になります。
-
新しいスペース保護設定が [Mesh to Collision] ツールの凸型分解メソッドに追加されました。
-
プリミティブを追加ツールで、望ましいターゲット位置を指定するための [At Origin (原点で)] オプションが追加されました
-
ツール ターゲット ファクトリを提供するために IModelingModeToolExtensions のメソッドが追加されました。プラグインで新しいツールターゲットを使用してインターフェースを拡張できるようになります。
-
[Mesh to Collision] ツールおよび [Inspect Collision (コリジョンを調査)] ツールで、ワイヤーフレームに加えて、コリジョン形状のソリッド レンダリングをオプションで表示できるようになりました。
-
再メッシュ化:適応型密度再メッシュに使用できるオプションのエッジ長スケール関数を追加しました
-
ジオメトリ コレクションを含む、大きな範囲のシーン コンポーネント ソースのサポートを変換ツールに追加しました。
-
PDI 太線レンダリングでは、線ごとに使用する三角形を減らし、高速に処理され、一部ツールでのワイヤーフレーム レンダリングのプレビューの応答が良くなりました
-
選択内容に影響がないモデリング モード ツールで、使用後に以前の選択内容を自動で復元するようになりました。
-
マージ、ブール演算、一部のボクセル ツールなど多くのツールで単純なコリジョン形状のコピー サポートが追加されました。
-
ツール平面にマウスのカーソルを乗せていないときに、シーン スナップは DrawPolygonTool で動作するようになりました。これによりユーザーはシーンでスナップ先のオブジェクトとツール平面の間で配置できます。
-
メッシュ要素選択ツールバー設定の [Local Frame Mode (ローカルフレームモード)] 切り替えが追加されました。ユーザーはジオメトリのみまたはオブジェクト全体のどちらを選択したかに基づいてギズモ フレームで編集できるようになりました。
- ScriptableTools プラグインは実験的機能からベータに移行されました。
バグ修正:
-
FVector/FVector4/FQuat プロパティの Y 軸に対するエディタ ツールチップの誤解を招くコメントを修正しました
-
既存のスタティックメッシュを変更するときの AutoLOD ツールに対するアンドゥを修正しました。
-
[Mesh to Collision] ツールのカプセル自動検出機能を改良して、オープンエンドのシリンダーやコーンがカプセルとして検出されないようになりました
-
[PolyGroup Edit (ポリゴングループ編集)] での [Lock Rotation (回転をロック)] のホットキーが、「Q」から「Ctrl+R」に変更され、「Q」ホットキーで想定どおりに選択できるようになりました
-
Nanite の三角形比率の LOD マネージャーのプレビューは新しい/目立つ三角ポリゴン比率を維持に更新されました
-
モディファイア キーが押されたときに、場合により、マウスが原点に誤ってジャンプする問題を修正しました
-
スタティックメッシュ エディタで、他の単純なコリジョン形状タイプと同様にレベル セットを正しく処理できるようになりました。
-
GroomToMesh ツール:正規化されないヘアの半径値で構成されるように RadiusScale のデフォルト値を更新しました
-
単純なコリジョンエディタ ツールでコリジョンの書き込みをサポートするターゲットでのみ実行するようになりました。ボリュームに対して自動生成されたコリジョンを編集できるが、結果が破棄されたように見えていた問題を修正しました。
-
プリミティブ ツール (ボックス、球の追加など) で一部の場合カメラの背後にプリミティブが配置されるような問題を修正しました。
-
単一の三角形が多数ある領域を通常生成する設定の場合に、ポリゴングループ生成アルゴリズムで非常に大きく奇妙な形状の領域をランダムに生成する問題を修正しました。
-
モデリング ツールでスタティックメッシュのビルド スケールを適切に扱うようにしました。
-
[Mesh to Collision] ツールでダイナミック メッシュ コンポーネント コリジョン設定を正しく更新しない問題を修正しました
-
ラティス ツールでスケールを適用するときに使用する座標系を修正しました
-
一部のモデリング ツールでダイナミック メッシュ コンポーネントに対する単純なコリジョン形状の更新のアンドゥを修正しました
-
個別のスプラインに対して最も適合する平面が同じ平面の原点をまだすべて使用する場合にメッシュ スプライン ツールで発生する問題を修正しました。つまり 1 つのスプラインを調整すると、別の三角分割に影響を及ぼすことがあります。
-
モデリング ツールで新しいプリミティブを配置するときに使用するシーン スナッピングで、ボリュームと同様に形状コンポーネントをフィルタで選別するようになりました。たとえば、トリガー ボックスがトリガー ボリュームと同じようにフィルタで選別 (または除外) されます。
-
PolyEdit ツールでエッジ ループを確実に選択できるように修正しました
-
使用不能のブループリント クラスがリクエストされた場合に Draw Spline ツールがクラッシュする問題を修正しました。
-
ソケット ウィンドウが開かれていないときに、ソケットを操作すると、スタティックメッシュ エディタがクラッシュする問題を修正しました。
-
一部のモデリング ツールで正常なマウスドラッグ アクションであるかのように、キャンセルされたマウスドラッグ アクションが扱われるという問題を修正しました。
-
[Mesh to Collision] ツールで常にメッシュ エッジを結合するのではなく、[Weld Edges (エッジを結合)] の設定を尊重するようになりました。
-
ブール演算ツールおよびマージ ツールにより、コンポーネントではなくアセットに更新されたマテリアルが設定され、つまり更新されたアクタに不正確なマテリアルが表示されることがある問題を修正しました。
-
クリックドラッグ アクションの途中にアンドゥすると、ダイナミック スカルプティングなどのツールで発生することがある問題を修正しました。
-
一部のエッジや頂点がメッシュ要素選択システムで移動できないことがある問題を修正しました
-
ジオメトリ ツール:メッシュ LOD ツールセット - 高解像度メッシュの削除後にメッシュが非表示のままになる可能性がある LODManager のバグを修正しました。また、ツールのアンドゥを行った後に表示される情報が正しく更新されることを確認しました。
-
閉じたループを作るポリゴングループのエッジに対するギズモの配置を改善しました。
-
[Mesh to Collision] ツールのボックス自動検出の堅牢性を高め、階段をボックスとして検出しないようになりました。
-
メッシュをボリュームに変換するときに三角形の劣化をスキップするフィルタを追加しました。つまりモデリング ツールで作成されたボリュームが有効である可能性が高まります。これによりブロッキング ボリュームとして作成されたときに、モデリング モード コーンおよび矢印プリミティブのコリジョンが修正されます。
-
Generate PolyGroups (ポリゴングループを生成) ツールを使用するときに、ビューポートでポリゴングループのプレビューを表示できなかったバグを修正しました
-
マージ メッシュ ツールの初期プレビューが正しくない位置に表示される問題を修正しました。
-
正しくないマテリアルを削除する [LOD Manager (LOD マネージャー)] ツールの [Clean Materials (マテリアルを消去)] のバグを修正しました
-
[Mesh to Collision] ツールで、球の自動検出が改善され、たとえば、低ポリゴンのコーン形状が球として認識されなくなりました。
-
Draw Spline の「World」モードのディスプレイ ネームを「World Objects」に変更しました。ワールドでオブジェクトにレイキャストすることが明確になっています
-
モデリング モード コリジョン ツールの一部が、均一ではないアクタ スケールを正しく処理しない問題を修正しました。
-
ボリュームがレベルにあり、ボリューム スナッピングが有効であるときに、レベルに新しいモデリング ツールのプリミティブ メッシュの配置を確実に試すように修正しました
-
単純なコリジョン エディタと [Mesh To Collision] ツールでダイナミック メッシュ コンポーネントに対して正しくアンドゥできない問題を修正しました。
-
LOD マネージャーの「Show Seams (シームを表示)」オプションを「Show Borders (枠線を表示)」に変更し、デフォルトの LOD が表示されているときに無効にしました
-
[Collision to Mesh] ツールで、「Output Separate Meshes (メッシュを個別に出力)」が有効だったときに、単純なコリジョン形状で正しくないトランスフォームが設定される問題を修正しました。
-
「Bake Transform (トランスフォームをベイク)」および「Edit Pivot (ピボットを編集)」ツールで、凸型コリジョン形状でメッシュを編集するときに、2 つのトランザクションが作成されなくなりました。この回避策が必要なバグが修正されたからです。
-
「Draw Spline (スプラインを描画)」ツールを使用中に参照ブループリントが再コンパイルされるときに、このツールがクラッシュする問題が修正されました。
-
モデリング モード選択マテリアルをレンダリングするために頂点カラーが使用された問題を修正しました。
-
調査ツールの各プロパティがツールのシャットダウン後に変更されたときにクラッシュする問題を修正しました
-
「Plane Cut (平面切り取り)」ツールを「Show Preview (プレビューを表示)」をオフにして開始した場合に、ソース メッシュが表示されない問題を修正しました
-
[Mesh to Collision] ツールのユーザビリティを修正:ツールチップを追加し、機能しない「Simplify Polygon (ポリゴンを単純化)」プロパティを削除して、「Simplify Hulls (ハルを単純化)」でスイープされたハル ポリゴンに影響がないように切り替えました。
-
ジオメトリ ツール:TransfromUV、ツール内のアンドゥを修正しました。GeometryFramework:プライマリ UV を FVertexChange データに追加しました。
-
新規オブジェクトに書き込むときにスケール トランスフォームが無視されていた Mirror (ミラー) ツールのバグを修正しました
-
バグの修正:メッシュ選択モードの見つからない、正しくないアイコンを更新しました。
-
「Group Paint (グループペイント)」ツールのブラシ サイズを手動で更新するときに、新しいサイズがビューポートにすぐに反映されるようになりました。更新サイズを確認するためにビューポートでクリックする必要はありません
-
モデリング モードでの選択内容の均一ではないスケールは、不適切に無効化される、または間違った座標系を使用する問題を修正しました。
-
ベベル距離が負、ゼロ、および非常に大きな場合に奇妙な結果になることを防ぐために、Poly Edit のベベル距離範囲をクランプしました。
-
PolyEdit の押し出しアクティビティで「Shells to Solids (シェルからソリッド)」の切り替え時にプレビュー メッシュが適切に更新されるようになりました。
-
UI で一部のブラシ プロパティが公開されていなかった、頂点ペイント ツールの間でそれらのプロパティが共有され、結果として予期しないステートでツールがスタックする問題を修正しました。
-
複雑なオープン境界があるメッシュで「Hole Fill (塗りつぶし)」ツールが確実に動作するように修正しました
-
メッシュ要素選択ツールバーで、[Local Frame Mode] が[From Object (オブジェクトから)] に設定されているときに、オブジェクトのピボットではなく、選択されているジオメトリのピボットにギズモが配置されるようになりました
-
「Draw Spline (スプラインを描画)」ツールでのカスタム平面の位置決めが Ctrl を押したままクリックすることで整合性を保って機能するようになりました
-
コリジョン コンポーネントがないメッシュを処理するときに、Auto UV ツールが確実に動作するように修正しました。
-
BakeTextures ツールで MaterialID ベイクによりガター ピクセルのギャップが生まれる問題を修正しました。
-
パターン ツールでアンドゥ/リドゥするときに範囲ギズモが正しくない位置になる問題を修正しました。
-
無効なスタティックメッシュ アセットで実行しているときに AutoLOD ツールがクラッシュする問題を修正しました。
-
UV レイアウト ツールで、プレビューをオフに切り替えた後に、プレビューのワイヤーフレームが引き続き不正に表示される問題を修正しました。
非推奨:
- FGenericMeshSelection 構造体が非推奨になりました。モデリング モードの選択システムの前のバージョンに含まれる使用しなくなった部分です。
プロシージャル
API の変更:
- AttributePartition および AttributeGenericPartition C++ API (PCGMetadataPartitionCommon.h) がセレクタの TArrayView をサポートするように拡張されました
-
MetadataPartition ノードで、属性の複数パーティション化をサポートするように変更されました
- グラフ パラメータを設定および取得する BP ライブラリは、グラフとインスタンスの両方を含むようになった、グラフ インターフェースを受け取るように更新されました。
新機能:
-
PCG エディタで名前付き再ルーティングのサポートが追加されました。
-
何らかの結果を一つのイテレーションから次に渡すことができるフィードバック ループのサポートを追加しました。このサポートのために UI とピンのプロパティが改善されました。
-
Get Loop Index ノードが追加されました。
-
[PCG] ポイント データを作成するノードが追加されました
-
[PCG] CombinePoints ノードのナビゲーション。単一の境界範囲を共有するために各ポイントを結合します。
-
[PCG] PCG コンポーネントの強制的生成を有効にしました
-
[PCG] SplitPoint ノードをネイティブ化しました。各ポイントを 2 つの別のポイントに分割し、カットの位置と軸に基づいて境界を設定します
-
サブグラフ ノードで入力をサポートするようになり、入力がなくなるまで実行が継続されます。
-
[PCG] グラフでグラフ アセットをドロップしているときに、サブグラフ ノードまたはループ ノードを作成するコンテキスト メニューを作成しました
-
[PCG] DuplicatePoint ノードをネイティブ化しました。これによりオプションで、トランスフォーム オフセットを指定して各ポイントの複製を作成します。
-
[PCG] データ タグ用の Replace Tag ノードが追加されました
-
[PCG] 属性に基づいてポイントをソートするノードが追加されました
-
[PCG] DistanceToNeighbors ノードをネイティブ化して、Point Neighborhood という名前になりました
-
[PCG] 出力ピンから次のノードにタグを追加するノードが追加されました。
-
[PCG] 2D または 3D グリッドでポイントを作成するノードが追加されました
-
[PCG] パーティション化 (CreatePoints を含む) のサポートが含まれます
-
「Runtime Generation (ランタイム生成)」という PCG コンポーネントの新しい生成モードが追加されました。これはプレイヤーなど「Generation Sources (生成ソース)」との近さに基づいて、生成とクリーンアップでコンポーネントを効率的にスケジュール設定するために使用されます。
-
デバッグ (ファット エッジなど) および適切な値を制御するエディタ設定時にビジュアル エッジ フィードバックが追加されました。再ルーティングと名前付き再ルーティングでの調査が有効になりました。
-
[PCG] ApplyScaleToBounds および EditPointCenter ブループリント ノードをネイティブ化しました
-
[PCG] ポイントのスケールを範囲に変換する ApplyScaleToBounds が追加されました
-
[PCG] EditPointPivot - (ResetPointCenter から名前変更)- が追加されました。これはポイントに新しい中心点を設定し、境界を調整します
-
レベルで「Water Spline Components」を取得する「Get Water Spline Data」ノードを含む PCGWaterInterop プラグインが追加されました。ウォーター スプライン メタデータに PCG グラフから読み取り専用でアクセスできます。
-
[PCG] 位置とユーザー シード入力を使用して、ポイント入力からの新しいランダム シードを適用するノードを追加しました。
-
[PCG] 各ポイントでテクスチャの色をサンプリングする、Sample Texture ノードを作成しました
-
[PCG] オブジェクト ツリーをデバッグするコンテキスト メニューが追加されました。これにより、デバッグ ツリーのオブジェクトを右クリックすることで、特定のノード/グラフにジャンプできます
-
PCG コンポーネントで「Preview (プレビュー)」および「Load-as-Preview (プレビューとしてロード)」モードが追加されました。これによりダーティ設定なしだが、事前生成されたデータを保存し、再生成が動作し続ける機能を維持する、コンポーネントの変更が可能です。
-
「keep zero density points (ゼロ密度ポイントを維持)」オプションが非エディタ ビルドと非一時的ビルドで利用できるようになりました。つまり フィルタリング要素ではなく、データ演算で意味がある場合です
-
新しい Visualize Attribute ノードが作成されました。これは各ポイント入力に対して、オフセット付きで現在属性の値を文字列に出力します
-
Runtime Quality Branch ノードと Runtime Quality Select ノードが追加されました。「pcg.Quality」コンソール変数が追加されました。その範囲は 0 から 4 (Low (低)、Medium (中)、High (高)、Epic、Cinematic (シネマティック) に対応) です。
-
PCG エディタで再帰検索ができるようになりました。サブグラフにある対象も簡単に見つけることができます
-
PCG エディタにロッキング メカニズムとともに複数の詳細ビューと複数の属性リスト ビューが追加されました。
-
アクタ プロパティ オーバーライドをスポナー ノードに追加しました。
-
get landscape data ノードにオプションを追加しました。物理マテリアル、コンポーネント キー、タッチしたプロキシを取得できるようになります。
-
PCG の「Get Texture Data」ノードで圧縮済みテクスチャ形式のサポートが追加されました。
-
Texture Sampler で Texture2DArrays をサポートします
-
ランドスケープ キャッシュをシリアル化しビルドする方法に柔軟性が追加されました (なし、常時、クック時のみ)。PCG ワールド アクタのランドスケープ キャッシュ オブジェクトで設定します。
-
[PCG] ターゲット呼び出しのコストが削減され、パフォーマンス用の ShouldComputeFullOutputDataCrc() が追加されました
-
Gather ノードで依存関係のみピンが追加されました。実行で、データをフィルタリングする必要なしで、シーケンス化できるようになります。
-
PCG エディタでワイヤーの太さ設定が追加されました。
-
新しいフィルタ ノード「Filter Data By Index」が追加されました。ユーザー選択インデックスでデータ コレクションをフィルタリングします
-
「Get PCG Component Data」ノードが追加されました。レベルにある別の PCG コンポーネントから生成されたグラフ出力を取得するためのものです。
-
[PCG] 複数のソースとターゲットを利用できる CopyPoints ノードにサポートが追加されました
-
「Apply On Actor」ノードが追加されました。プロパティ オーバーライドを適用し、ターゲット アクタで指定関数を実行します。
-
ネイティブおよびブループリント要素のテンプレート化ピンが Proxy ノードに追加されました
-
関連ターゲット アクタで呼び出す関数を許可するスポナー ノード (「Static Mesh Spawner」、「Spawn Actor」、「Create Target Actor」、および「Create Spline」) にポストプロセス関数を追加しました。
-
Attribute Set to Points と Points to Attribute Set ノードが追加されました。
-
Volume Sampler が新しいタイム スライス コンテキストに更新されました
-
「Number of Samples (サンプル数)」モードを「Spline Sampler」ノードに追加しました。スプラインに沿って均等な間隔でポイントを指定数でサンプリングします。
-
「Create Surface From Spline」ノードが追加されました。閉じたスプラインから暗黙的なサーフェスを作成します。
-
タイムスライス ノードの作成を簡単に、矛盾なくする、新しい「タイム スライス」コンテキストを作成しました
-
サーフェス サンプラを新しいコンテキストに更新しました
-
Filter Data By Attribute ノードが追加されました。データに何らかの属性があるかどうかを検証します。フィルタ データ ノードすべてに、簡単に操作できるように in filter ピンと out filter ピンが追加されました。
-
PCGMetadataPartitionCommon.h の C++ API が複数属性のパーティション化をサポートするように更新されました
-
「スプライン サンプラ」でメタデータ属性としてセグメント インデックスがあるオプションが提供されます。 ポイントが制御ポイントであるかどうかを把握する「スプライン サンプラ」のブール値が提供されます (サブディビジョン モードのみ)。 「スプライン サンプラ」でメタデータ属性として制御ポイント接線があるオプションが提供されます。
-
属性ごとにスポーンするとき、スタティックメッシュ スポナーにオーバーライド プロパティが追加されました。オーバーライドに基づいてポイントをパーティション化し、カスタマイズごとに 1 つの ISM を作成します。
-
マッチとセットで最近接 (およびしきい値距離) への一致が追加されました。
-
新しい制御フロー ノード「Select (multi)」が追加されました。整数、文字列、列挙型値で動作します
-
ネイティブ PCG データ アセット クラスと付属するレベルからデータ アセット メニュー アクションが作成されました。以前にあったエディタ ユーティリティ ブループリントを置き換えました。Alembic-to-PCG インポータも更新されました。#contrib 11380
-
Delete Tags ノードが追加されました
-
reduce ノードで「Sun (合算)」モードが追加されました。
-
「Print String」という新ノードが追加されました。ログ/警告/エラーをログ (さらにオプションでグラフと画面) に出力します。
-
PCG グラフで直接処理するグラフ パラメータをリファクタリングしました
-
PCG Biome Core 実験的機能プラグインが追加されました。Biome Core はデータドリブンの PCG 生物群系作成ツールのサンプルです。#仮想化
-
カラー投影モードが投影要素に追加されました。ソース、ターゲット、および共通ブレンド モード (加算、減算、乗算) を含めるためです。
-
Get Actor Data ノードで生成から単一ポイントとデータの両方を同時に取得するオプションが追加されました。
-
C++ API PCGPointProcessingElement が新しい PCGPointOperationElement に置き換えられました。ポイント操作要素のオーサリングおよびタイム スライス化からメリットを得るのが簡単になります。
- 新しい 4 つのダイナミック イベントが PCG コンポーネントでのバインド先として利用できるようになりました
- OnPCGGraphStartGenerating
- OnPCGGraphCancelled
- OnPCGGraphGenerated
- OnPCGGraphCleaned
-
「デバッグ オブジェクト ツリー表示」で横列をダブルクリックすると、自動で展開され、デバッグ オブジェクトとして最初のエントリが選択される機能が追加されました。
-
他のノード (ダイナミックで選択した値を含む) を実行できる Proxy ノードが追加されました。データ テーブルからロードが更新され、属性セット テーブルを代わりに出力できるようになりました。ポイント バージョンと同様の Get Attribute Set By Index が追加されました。
-
PCG グラフでノードの名前を変更するエディタ コマンドが追加されました。ノードで「F2」を押すまたは右クリックして、[Rename (名前を変更)] を選択します。PCG グラフでノードのタイトルをダブルクリックしても、タイトルの編集は始まらなくなりました。
-
DuplicatePoint ノードで反復相対変換が追加されました。
-
Match And Set ノードが追加されました。指定属性と一致があるとき (参加と同様) 指定属性セット テーブル エントリから全属性をコピーできます。ウェイトによる追加の選択もサポートされます。
-
「Get Texture Data」ノードでポイントとバイリニア フィルタリングに対する EPCGTextureFilter が追加されました。
-
PCGSplineSampler の属性として、カーブに沿ってアルファと距離を算出するオプションが追加されました。アルファは [0,1] の値で、カーブに沿って、カーブの各セグメントが同じ間隔になるようにします。たとえば、カーブに 3 つのセグメントがある場合、それらのセグメントのポイントは [0,0.333]、[0.333, 0.666]、[0.666, 1] にあり、スプラインの補間を使用してそれらの間隔で補間します。距離は指定サンプル ポイントに到達するまでスプラインに沿って合計した累積距離です
-
「Spawn Actor」ノードでパラメータとしてポイントとメタデータを取る、アクタ ポストプロセス関数のサポートが追加されました。
-
merge attribute set ノードが追加されました
-
「Get Texture Data」ノードのフラグ「bForceEditorOnlyCPUSampling」が提供されます。テクスチャの CPU アクセス可能複製の作成が強制されます。GPU 圧縮アーティファクトを回避し、さらに正確なサンプリングが実現します。
-
属性 (メタデータ) 操作が更新され、意味があるような場合に複数入力をサポートするようになりました。入力ピンで N:1、N:N 処理を受け入れるようになりました。
-
PCG テクスチャ データで「CPU アクセス可能」とマークされたテクスチャのサンプリングをサポートします。
-
Copy Attribute ノードですべての属性をコピーする機能が追加されました。
-
ダイナミック ソース入力をサポートする、新しい Intersection ノードで Intersection ノードを置き換えました。プライマリ入力はイテレーションがオンで、セカンダリ入力は暗黙でマージされます。以前の Intersection は「Inner Intersection」に名前を変更して残っています
-
PCG メニューからすべての対象でイテレートする、一部の異常ステート ロギングが追加されました。
-
新しい制御フロー ノード「Switch」が追加されました。整数、文字列、列挙型値で動作します
-
一部のデータ検証の問題を防ぐために、エディタ専用として一部のグラフにタグ付けするオプションが追加されました。これは推移的プロパティ (サブグラフ経由) であり、PCG コンポーネントにも反映されます。
- Spawn Actor ノードで属性ごとに選択されたアクタをスポーンするモードが追加されました。
バグ修正:
-
ローカル コンポーネントで正しく動作しなかった CreatePoints ノードと CreatePointsGrid ノードのカリングを修正しました。
-
スタティックメッシュ スポナーで ISM ボディ インスタンス カスタマイズがエディタのリロード後にデフォルト チャンネルを表示しているバグを修正しました
-
[PCG] オーバーライドを出力する AddTags ノードの問題を修正しました
-
プロファイリング データ (PCG プロファイリング ウィンドウで)、特にループおよびダイナミック サブグラフで壊れているプロファイリング問題を修正しました。
-
選択されたサブグラフがない (および指定されたダイナミック グラフがない) サブグラフ ノードはパススルー ノードとして動作するようになりました。
-
Volume Sampler が X、Y、Z の最終横列を不正にサンプリングするバグを修正しました
-
2 つのコンソール変数「pcg.CheckSamplerMemory」および「pcg.SamplerMemoryThreshold」が追加されました。サンプリング ポイントが意図せず多すぎるときに、メモリ不足によるクラッシュの影響を軽減できます。
-
[PCG] すべてのネイティブ ノードがタグを転送するようになりました
-
[PCG] 複数のデバッグ オブジェクト ツリーのオブジェクトを選択できる問題を修正しました
-
PCG ボリュームはエディタでサーフェス法線に正しくフォローしないバグを修正しました。
-
レベル インスタンスの内部で PCG のサポートを改善しました。
-
PCG スタティックメッシュ スポナーは ISM コンポーネント タイプの決定を尊重し、HISM と Nanite ケースのみ変更を適用します
-
バグ修正:[PCG] オーバーライドできなかった属性セレクタを修正しました
非推奨:
- ノードごとのタグ フィルタリングとタグ付けを削除しました。前のバージョンで非推奨とマークされていたためです。
- Add Tags On Output を使用し、下流のノードがあるノードで、タグを追加する新しいノードが自動で追加されました。デバッグ設定で「remove duplicates (複製を削除)」オプションが削除されました。実際に役に立たず、一時的だったからです。
- 入力ノードでデフォルトの非推奨のピンが削除されました。既存のピンは引き続き動作し、データがすぐに入りますが、今後は適切な Get...Data ノードを使用する必要があります。
UV エディタ
新機能:
- UV アイランドのテクセル密度の操作をサポートする新しい UV エディタ ツール、テクセル密度が追加されました。この新しいツールは、サンプリング モードをサポートし、メッシュの一つの領域からテクセル密度を読み取り、他の領域またはメッシュに適用します。
バグ修正:
-
トランスフォーム ツールのプロパティ カテゴリで不足していたローカライゼーション テキストを追加しました。
-
エディタのアンラップ ビューで確認が難しいメッシュ ラインをレンダリングした深度オフセット乗数でアンラップ マテリアルが設定された問題を修正しました。
ワールドのビルド
新機能:
- Branch ノードと Switch ノードの下流にある非アクティブ ノードを実行しないブランチ カリング。
- コンパイルし実行するためにノードにつなげる必要がある、必須ピンがネイティブ ノードに追加されました。
- エディタのカリング ステートの必須統一ビジュアライゼーション (コンパイル時間と実行時間のカリング両方をカバー)。
- CanCullTaskIfUnwired がノード設定 API に追加され、つながっていない場合でも常に一部のノードを実行します。
-
PCG - ワールド ビルダーの最初のパスが PCG コンポーネントをレベルで生成するために追加されました。
-
階層的な生成を調査するときに、ノードにグリッド サイズ ラベルを表示します。
-
World Partition エディタ QoL ストリーミングが有効であるときに、ロード済み領域と関連ストリーミング機能でのみ調整できることを保証します。ストリーミングを有効に切り替えるとき、ロード済み領域を非表示にします。つまり維持します。 ロード済み領域を LocationVolume に変換するとき、ユーザー向けのインクリメンタル ラベルを必ず付けます。 アクタではなく、ブラシをスケーリングすることで、スケーリング ギズモは場所のボリューム (ロード済み領域の変換後) で直感的に利用できるようにします。 修正:ロード済み領域をアセットに変換すると、アンドゥ履歴でトランザクションとしてカウントされませんが、ビューポートまたはアウトライナーから削除するときはカウントされていました。
-
PIE で FActorFolders が大幅に最適化されました (PIE パフォーマンスに影響がなくなっています) - アウトライナーは自動的に PIE の空のフォルダを非表示にします
-
bEditableWhenInherited == false (PackedLevelActors) のときに InstancedStaticMesh シリアル化を最適化および修正しました- この場合 PerInstanceSMData、PerInstanceSMCustomData の維持を防ぎ、アーキタイプから値をコピーします - さらに、この場合、警告を修正するために、アーキタイプから NumCustomDataFloats も割り当てられます (問題は PerInstanceSMCustomData が常にシリアル化され、NumCustomDataFloats がデルタ シリアル化されると、ReRunConstructionScript の実行が必要になる前に警告が発生)
-
PCG PCG ブループリント ノードで「Can Be Multithreaded (マルチスレッド可能)」オプションをわかりやすい「Requires Game Thread (ゲームスレッドが必須)」に置き換えました
-
PCG - ノードで複数行のタイトルをサポートし、サブ行にタスク情報が入ります
-
WorldPartition:ブループリント関数 UDataLayerManager::GetDataLayerInstances が追加され、BP UDataLayerInstance GetDataLayerShortName、GetDataLayerFullName および GetAsset に公開されます。
-
生成されていないプレビュー コンポーネントからデータをクエリするときに、Get Actor Data で生成をトリガーできます。
-
プレビュー コンポーネントを生成するビルダー サポートを追加しました。
-
PCG - 「Make Concrete (コンクリートを作成)」変換タイプがコンクリート ピンに書き込むために追加されました。コンクリート以外の空間データの再構成を実行します。
-
World Partition:ユーザーごとの設定を [Editor Preferences (エディタの環境設定)] (World Partition (ローカル) セクション) で公開します
-
PCG- 入力空間データの境界を算出する新しい Get Bounds ノードが追加されました
-
World Partition エディタ:未ロード領域のオパシティを調整するオプション (スライダー) を追加しました (デフォルトは現在から 10% 明るい)。ハイライト領域、ロード済み領域など残りの機能とともに適切な値の間のクランプを調整します。値は PerProjectUserSettings に保存されます。
-
デバッグ オブジェクト間で一つのコンポーネントを切り替えるとき、不要なグラフの実行を回避します
-
World Partition * PIE の生成ストリーミングをログに出力するエディタ設定を追加しました (デフォルトは true)。
-
新しいランタイム ハッシュを使用するとき、2D および 3D の両方でストリーミングをプレビューするために WorldGridPreviewMaterial を変更しました。- 2D 範囲内に 2D セルを表示するためにハッチ グリッド パターンを追加しました - 3D ストリーミングの球半径表示を 2D の円で置き換えました - ハッチ パターンなしで完全な半不透明型セルは球体テストを使用して、実際の 3D ロード済みセルを表します。#変更リストが検証されました
-
PCG グラフ エディタからデバッグ オブジェクト ドロップダウンが削除され、機能はデバッグ オブジェクト ツリー ウィンドウで置き換えられました
-
PCG - 警告/エラー ステータス アイコンがサマリ ツールチップとともにデバッグ オブジェクト ツリーに追加されました
-
World Partition エディタ オプションが利用できないときに (多くは UEFN 用) オプションメニューを非表示にします。 状況に応じたメニューに UToolMenu を使用します。このようにライセンシーと FN はそれを拡張できます。明確にするため状況に応じたオプションを再編成します。* 「Load From Here (ここからロード)」でユーザー作成領域がエディタと矛盾がないようにして、ロードされていない領域のチップを削除します。
-
ReplaceActors:選択を最適化します (500 個程度の選択アクタで 40 秒を超える負荷)。すでにバッチ処理内部であるため、すべての選択内容の変更に対して通知を防ぎます。
-
レベル インスタンスを破壊したとき、ルートではなくサブフォルダの下にアクタを配置するオプションを追加しました。このオプションが有効であると、アクタは LI があるフォルダ内に、Level Instance という名前のサブフォルダの下に置かれますが、元のフォルダ構造も維持されます。そのため、レベル インスタンス アクタが「Desert/LI_House2」と呼ばれており、その中のアクタの名前が「Lights/Light_Sun」であれば、アクタは外部レベルで「Desert/LI_House2/Lights/Light_Sun」に移動されます。
-
UDataLayerEditorSubsystem では、アクタ エディタ コンテキストに対してデータ レイヤーを追加/削除するため、ブループリント関数に公開されるようになりました。
-
PCG - アクタ ボリューム出力を grid size ノードに追加し、Cull Points Outside Actor Bounds ノードを追加しました。現在のグリッド サイズの外部でデータのカリングに役立つようにするためです。
-
コンポーネント/アクタ タグから作成するときに属性名をサニタイズします。無効な文字をアンダースコアで置き換えます。
-
[PCG] コンパイル中にカリングされる、つながっていない新しいノードの追加などグラフに些細な変更が加えられたときに、不要なグラフの再実行を回避します。
-
外部データ レイヤー V1 - パーティション化ワールドでコンテンツ (アクタ) を挿入/削除するプラグインを構成します - 実験的機能の「Content Bundle (コンテンツ バンドル)」の代わりになります - 新しい外部データ レイヤー (EDL) アセットが追加されました - EDL アセットのアクティブ化を制御する新しいゲーム機能アクション「AddWorldPartitionContent」を追加しました - プラグイン内部のデータ レイヤー (EDL の子) をサポートします - コンテンツ バンドルを EDL に変換するビルダーが追加されました (UGameFeatureActionConvertContentBundleWorldPartitionBuilder) - 機能はデフォルトで一時的に無効にされ、エディタの実験的機能設定「Enable World Partition External Data Layers (World Partition 外部データ レイヤーを有効化)」フラグを使用してオンにできます
-
パック レベル アクタ:パッキング結果が変更されていない場合、ブループリントの更新が回避されます
-
UDataLayerLoadingPolicy と FWorldPartitionActorViewProxy が ENGINE_API 経由でプラグインに公開されます
-
PCG - ノードを調査するとき、このノードが生み出したデバッグ オブジェクトはデバッグ オブジェクト ツリーで強調表示されます。
-
PCG - Projection ノードで、デフォルトはポイント出力データに対するポイント投影を自動で再展開することです。
-
[SceneOutliner] アウトライナーで LocationVolume に対して、選択したボリューム コンテキスト メニュー オプションのロードおよびアンロードを使用すると、これらのオプションはグレーアウトされません。
-
[PCG] Higen が無効である場合、またはコンポーネントがパーティション化されていない場合、グリッド サイズ ノードで警告が無効になります。これにより異なる実行セットアップ中でグラフは移植可能になります。
-
グラフ実行中に詳細レベルで変更を反映します - 出力データ コレクション全体ではなく、CRC を算出したノードごとの出力ピンです。
-
Get Actor Data 要素 (および他の型のゲッター) は、不要な再実行も回避できるようにポイント データで完全なデータ CRC を実行することがデフォルトです。
-
アクタのレプリケーションが最小に削減される (つまり、必要なときのみレプリケートする) AWorldDataLayers の休止が実装されました。
-
WorldPartition:個別のファイルで各 DataLayerInstances を保存するため、WorldDataLayers アクタにオプションが追加されました (デフォルトは無効)
-
PCG - グラフがサブグラフとして実行されるとき、階層的な生成を無効にします。このグラフと親グラフの間でグリッド レベルの指定における競合を回避するためです。
- World Partition エディタ 全体の UX (新アイコン、新メニュー、新ツールバー、新レイアウト) をアップグレードします ライセンシーがメニューでオプションを拡張することができるようになりました。* 新しいビルド メニューで WP エディタの同じ LevelViewport アクション (HLOD のビルド、minimap のビルドなど) を追加しました。
バグ修正:
-
パッケージを破棄し、スタンドアローン フラグをクリアするために、ULevel::CleanupLevel を順に確認するように UWorldPartitionLevelStreamingDynamic をリファクタリングしました。
-
PR #10872:パーティション化レベルをランタイム データ レイヤーでストリーム アウトするときに、データ レイヤー エディタがクラッシュする問題を修正しました #contrib 10872
-
PR #10609:World->ContentBundleManager を World Partition が無効である場合に null にします。* 非 WP ワールドから WP ワールドに切り替えるときに発生することがあります。#contrib 10609
-
基礎となるストリーミング レベルがすでに存在するが、実行/完了していないときに、ストリーミング レベル ロードを正しく処理するために ULevelStreamingLevelInstance::LoadInstance を修正しました。bAllowReuseExitingLevelStreaming を FLoadLevelInstanceParams に追加し、既存のストリーミング レベルを再利用できるようにしました (デフォルトは false)。
-
FAsyncPackage と FAsyncLoadingThread2 CallCompletionCallbacks は FPlayInEditorLoadingScope を使用して、関連パッケージ リクエスト PIEInstanceID に GPlayInEditorID を正しく設定できるようになりました。
-
ワールドで別のストリーミング レベルですでにリクエストされている WorldAsset のリクエストを正しく処理できなかった UWorldPartitionLevelStreamingDynamic::RequestLevelworld を修正しました (PIE に影響)。コードと子クラスを共有するように ULevelStreaming をリファクタリングしました。
-
LevelInstanceSubystem: 現在ロードされた LevelInstances の適切なクリーンアップを OnCleanupWorld で処理します。CleanupWorld は UDN を通じてレポートされたレベルのストリーミング アウトを正しく実行しないためです。これは UWorld::ReInitWorld() (「すべて再ビルド」で呼び出される) の問題であり、LevelInstances を不正なステートのままにした CleanupWorld / InitWorld を呼び出します。
-
ランタイム データ レイヤー論理演算子を尊重しないサーバーを修正しました。
-
ApplyCVars 修正:実質的な値をグローバル (クックとランタイムの間に変更可能) から SpatialHash ごとの値に移動します。これは GenerateStreaming が呼び出されたときのみに初期化されます。Level Instances がメイン ワールドと異なる設定で使用される場合に異なる結果につながる Level Instances を使用するときに PIE で複数回呼び出される ApplyCVars も修正します
-
Choose File To Save:マップの保存で、ユーザーが選択していなかった場合でも、ダーティ アクタを保存する問題を修正しました
-
1730015 で入り込んだ APlayerController::ClientFlushLevelStreaming_Implementation のリグレッションを修正しました (反転ロジック)。ClientFlushLevelStreaming がフラッシュせず、前にサブレベルをストリーミングしていたサーバーにクライアントが参加するときに、レプリケーション問題が発生しました。
-
クライアントがサーバーに接続を試みるときに、PIE がクラッシュする問題を修正しました。ロードされたワールド パッケージ PIEInstanceID は設定されず、パッケージ名に UEDPIE のプレフィックスが付いていません。この変更は基本的に古い CL 1810531 の反対です。一時修正と説明する以外、変更の詳細について詳しく示していません。パッケージ PIEInstanceID なしで、または PIE を適切に修正しないで、PIE ワールドをロードすると、サポートされているコード パスではありません。
-
PCG - Difference ノードに入力されたとき、投影されたスプラインが動作しないバグを修正しました。
-
テンプレート パーティション マップに基づいて新規作成されたレベルのダーティ アクタを World Partition のストリーミング生成が正しく処理しない問題を修正しました。
-
WorldPartition サーバー ストリーミング:サーバー ストリーミングが常にクライアントより少し多くロードすることを保証します。クライアントとサーバーのストリーミング ソース位置にわずかに差があるので、サーバーでリクエストしないセルのロードをサーバーが終了するのを、クライアントで際限なく待機しないために必要です。ネットワークの量子化および World Partition の位置/回転の量子化がこの差に寄与することがあります。- wp.Runtime.ServerStreamingSourceMinimumExtraRadius が追加され、サーバー ストリーミング ソースに適用される最小追加半径を制御します。- wp.Runtime.ServerStreamingSourceMinimumExtraAngle が追加され、サーバー ストリーミング ソース形状に適用される最小追加角を制御します。
-
IAssetRegistry::GetAssets が決定論的順序リストを返すこと (true ではない) を想定するコードで発生するクックの非確定性を修正しました。
-
WorldPartition:wp.Runtime.UpdateStreamingStateTimeLimit は、ワールドが HighPriorityLoading である、または SeamlessTravel にある場合、あるいは BlockTillLevelStreamingCompleted 内にある場合、またはマッチが開始しなかった場合に無視されるようになりました。
-
ノードをつなげるときにクラッシュする問題を修正しました。
-
仮想 UWorldPartitionRuntimeCell::ShouldServerWaitForClientLevelVisibility を追加しました。これによりセルのアンロード前に、サーバー セルがクライアント レベルの可視性を無視するようにオーバーライドできます。- WorldPartitionStreamingPolicy は有効化/ロードされたセルに対して UPROPERTY 参照を維持して、挿入解除されたセルが GC されることを回避します。- UWorldPartitionRuntimeCell の IsAddedToWorld と CanAddToWorld は使用されなくなったので非推奨になりました - UWorldPartitionStreamingPolicy の使用されない SortedAddToWorldCells が削除されました
-
属性名が変更されたときに、グラフが正しく再実行されなかった、一部データの CRC 問題を修正しました。
-
Delete Actor:ソフト/ハード参照も削除されている場合にソフト/ハード参照に関する警告を抑制します
-
FWorldPartitionRuntimeSpatialHashGridPreviewer マテリアル初期化 (ロード) を遅延し、非同期ロード中に LoadObject の呼び出しを回避します。
-
親を正しく更新しなかったリーフ データ レイヤー インスタンス (データ レイヤー ペアレント化を使用時) の削除を修正しました。削除されたデータ レイヤー インスタンスの子を再ペアレント化するとき、無限ループをトリガーする可能性があるデータ レイヤー インスタンスの削除を修正しました。
オンライン
新機能:
-
新しいプラグイン EOSOverlayInputProvider が追加され、入力を EOSSDK オーバーレイにフォワードし、開いているときに、ゲームに入力を送信するのを停止します。
-
OSS EOS を使用するとき、専用サーバー セッションが Lyra で動作するのを保証するロジックが抜けていて、バグ修正とともに追加しました。
-
OnlineRequiresSecondLogin コンソール変数を OSS に追加し、システムが最初に起動されたときに、オフラインになっているユースケースをテストするために、Null にします
バグ修正:
-
ICMP Ping POSIX 実装を修正し、iOS で有効にします
-
OnlineBeaconClient はビーコンの NetDriver が破棄の保留中である場合に正しくクリーンアップするようになりました。
ホットフィックス システム
新機能:
- OnlineHotfixManager に UCurveTable 変更コールバック遅延を追加しました。多数の横列更新を実行する場合に、コールバック数を大幅に節約します。
HTTP
新機能:
-
多くのプラットフォームでイベント ループをデフォルトで有効にします。
-
http リクエスト進行デリゲートの 64 ビット サポートを追加しました。
-
サービスでリトライの待機時間を示していないときの、デフォルトの HTTP リトライ動作を改善しました - リトライ間隔を線形から指数関数に変更しました - ランダム ジッター乗数を算出したバックオフに追加しました。最終のデフォルト リトライ ロックアウト期間の式は次のようになります。RandRange(JitterMin, JitterMax) * Pow(Base, RetryNumber + 1 + Bias) ここで RetryNumber は 0, 1, 2, 3...デフォルト:JitterMin = 0.5 JitterMax = 1.0 Base = 2.0 Bias = 1.0
-
FGenericPlatformHttp::UsesThreadedHttp インターフェースが非推奨になり、対応する実装を削除しました。すべてのプラットフォームでスレッド化 http リクエストを使用するようになりました。
-
HttpTimeout 構成が非推奨となり、代わりに HttpActivityTimeout または HttpTotalTimeout を使用します。HttpReceiveTimeout および HttpSendTimeout 構成が非推奨となり、HttpActivityTimeout のみを使用します。すべてのプラットフォームで HttpActivityTimeout さらに CurlHttp が動作するようになりました。
-
RapidJson を最新コードにコミット 3f73eda で更新しました。
-
http リクエストとレスポンスに http 失敗理由インターフェースを追加しました。接続失敗である、またはほかの理由をチェックするステータスを使用する代わりです。
-
http リクエストのキャンセルまたは http モジュールのシャットダウン後に、受信データをストリーム インターフェースに渡さないことを保証します。
-
http リクエストにスレッドセーフ デリゲートを使用するように切り替えました。
-
http リトライ システムをゲーム スレッドからのティックに依存しないようにするサポートを追加しました。
-
リクエストのダウンロードが完了する前に、早期アクセス向けのステータス コード受信コールバックを追加しました。
-
サードパーティ ライブラリ RapidJSON_v1.1.0 を追加しました。
-
http リクエストの依存関係を http レスポンスから削除しました。メソッドが設定されていない場合、http リクエストで GET をデフォルトで使用するようにします。
-
PR #10520:http サーバーが linux で大規模ファイルを提供しない SocketBSD のノンブロッキング ソケットの問題を修正しました
-
http リクエスト実装からのレスポンスを HttpRequestCommon で抽出しました。リトライ時に一部のプラットフォームでリクエストのレスポンスがクリアされない問題を修正しました。
-
リダイレクト後に、実効的な URL を取得する GetEffectiveURL インターフェースを追加しました。
-
デフォルトの送信/受信タイムアウト (HttpActivityTimeout) を 30 秒に変更しました。
-
デフォルトの接続タイムアウトを 30 秒に変更しました。
-
すべての http 実装で http モジュールの接続タイムアウト設定を尊重するようにしました。
-
http イベント ループを有効/無効にするランタイム引数を追加しました。
-
リクエストのキャンセル中にフラッシュすると HTTP がデッドロックする可能性がある問題を修正しました。ProcessRequestUntilComplete 同期呼び出しを IHttpRequest に追加しました。
-
http リトライ システムの接続エラーにオプションの、個別リトライ制限サポートを追加しました。
バグ修正:
-
特定の CPU で、経過時間を正しく計算できないため、http スレッドが無制限にハングする問題を修正しました。
-
WebTest で「Chaos」プラグインの依存関係チェーンが代わりに「JSON」に依存するように修正しました。
-
http リクエストを破棄するときに http curl 実装でクラッシュする可能性がある問題を修正しました。
-
http リクエストをストリーミング アップロード リクエストとともにリトライするときに、ファイルを必ず再オープンします。
オンライン サブシステム
新機能:
-
OnlineSubsystemEOS:「-EpicSandboxIdOverride」コマンド ライン引数を追加しました。これは、Epic Games Launcher で渡される「-EpicSandboxId」引数より優先します。
-
EOSShared:IEOSPlatformHandle::GetConfigName を追加し、プラットフォーム インスタンスを作成するために使用する構成を公開します。OnlineServicesEOS:OnlineServicesEOS*::GetEOSPlatformHandle を IEOSPlatformHandlePtr を返すように変更しました。構成名などがアクセス可能になります。
-
CreateSession BP ノードが、「Use Lobbies If Available (利用可能であればロビーを使用)」ブール値を含むように更新されました。
-
コンフィグ ファイルで Steam OSS サーバー名を指定する機能を追加しました
-
OnlineSubsystemEOS:bShouldEnforceBeingLaunchedByEGS 構成変数が削除されました。このメカニズムを使用するライセンシーは「LauncherChecks」メカニズムの使用に移行する必要があります (TargetRules.cs の bUseLauncherChecks を参照)
-
OSS EOS Leaderboards Interface メソッドをコンソール コマンドでテストするロジックを追加しました。
-
OSSGoogle Android の Google SignIn 実装を最新の依存関係を使用するように更新しました。サイレント サインインとオフライン アクセスのサポートを追加しました
-
OSSEOS - IUniqueNetIdEOSPlus インターフェースが追加され、基礎となる Base および EOS NetId のゲッターを公開するようになりました。使用している EOSPlus FUniqueNetId を IUniqueNetIdEOSPlus に単純にキャストします。FUniqueNetId::GetType() が「EOSPlus」を返す場合にのみセーフであることに注意してください。
-
購入とストア インターフェースを Steam に追加しました。使用するメイン アプリに接続された購入済みアプリは、購入インターフェースにレシートとして自動で表示されるようになりました。複雑なマイクロトランザクション サポートのために、新しい Steam 購入リンクが追加されました。これにより同じ Online Subsystem インターフェース購入フローを維持できます。他のプラットフォームと同じように実行しますがマイクロトランザクション向け Steam 必須サーバー実装と混合しているからです。
-
GooglePlayBillingLibrary を v6.0.0 に更新しました
-
EOSSDK 1.16.1 バイナリ、ヘッダ、ライブラリを完全に統合しました。
-
Steamworks SDK を 1.57 に更新し、Steam の GetAuthTicketForWebApi を IOnlineIdentity::GetLinkedAccountAuthToken で公開するようになりました
-
iOS で GoogleSigniIn SDK を 7.0.0 に更新しました
-
OnlineServicesCommon - MakeExecHandler ヘルパーを追加しました
-
OnlineError OSSv2 ログ出力変更- オプションが true に設定されている場合でもプレフィックスを破棄する ToLogString を修正しました。新しい形式は [1.1.5-3.1.17] NotImplemented (EOS_MissingInterface) のようになります。ToLogString はバイナリ ID ではなく人間が判読可能な ID (つまり ID のバイナリ表現ではなく [1.1.5-3.1.17]) をログに出力するようになりました
-
表示ログイン UI の結果を返します。つまりゲームでコンソール ログインの失敗とキャンセルを区別できます。
-
EOSSDK - NDA プラットフォーム ドキュメントを削除しました。これは現在 EOS ドキュメント サイトで利用できます。
-
動作セッション (メイン メニュー ステータス) のデータをオンライン サブシステムにアップロードする、単純なセッションベースのプレゼンス プラグインが Lyra に追加されました
-
Steam OSS タイムアウト用の一部の構成変数が追加されました
-
SteamChat のリッチ プレゼンス キーおよびフレンド グループ化キーの組み込みサポートが追加されました
-
Switch で bUseEAS を有効にして、OSS EOS を使用するとき、AccountPortal + PersistentAuth ログインを優先するロジックが追加されました ISaveGameSystem を使用して、AccountPortal 認証トークンおよびトークン有効期限をローカルで保存、ロード、削除するロジックが追加されました
-
-CustomConfig=SteamEOS コマンド ライン オプションを使用する、Steam 向け EOS Integrated Platform サポートが追加されました。これには Lyra で有効にする SteamEOS オプションも含まれますが、Lyra での、完全な Steam 統合プラットフォーム サポートはまだ WIP です (Lyra は現時点でアダプタを未サポート)
-
EOSSDK がロードされないときの、致命的ログ メッセージおよびメッセージ ボックスを追加しました。これはデフォルトでは無効ですが、Engine.ini 階層で次の構成を設定することで有効にできます。
- [EOSSDK] bDllLoadFailureIsFatal=true
バグ修正:
-
-nosteam コマンド ライン オプションで Steam モジュールが完全にロードされることを回避できるようになりました
-
OSS EOS セッションが EOS_ELobbyMemberStatus::EOS_LMS_CLOSED 通知に応答する方法を変更しました。ロビー メンバーを削除するだけではなく、関連ロビーを破棄します。
-
Steam OSS のフレンド インターフェースで、プレゼンス データを正しくポーリングせず、保持しない問題を修正しました。
-
非同期ファイル処理がランダムに失敗するため、Steam オンライン サブシステムでサンドボックスを無効にしません。
-
UserManagerEOS で OnPresenceReceived に対して不足するデリゲート トリガーを追加しました
-
セッションを作成するときに FOnlineSessionIOS::StartSession でクラッシュが発生する問題を修正しました
-
Steam OSS の GetFriendPersonaName が 64 ビット ID を使用するように修正しました
-
OnlineSubsystemEOS:大規模クエリをサブ クエリに正しく分割しない FUserManagerEOS::QueryExternalIdMappings を修正しました。
-
WITH_EDITOR が true だったときに EOS オーバーレイが無効だった問題を修正しました
-
SteamSockets でセッション ID と接続 ID がホストと一致しない問題を修正しました
-
OnlineSubsystemEOS ではアプリ チケットではないセッション チケットで Steam にログインするようになりました
-
Steam の LeftLobby および IsMemberOfLobby を修正し、コミュニティに貢献しています。組み込み TArray 関数ではなく手動配列検索を使用します。共有参照で不正に動作するからです
-
OnlineSubsystemEOS:チェックアウトが成功したが、有効なレシートを返さない問題を修正しました。
-
EOS 認証ハンドラを登録するときに、ConnectHandle が null である問題を修正しました
-
EOS オーバーレイ セッション参加を OnSessionUserInviteAccepted デリゲートとして送信するロジックを追加しました。OnSessionInviteReceived デリゲートのサポートを追加しました。
非推奨:
-
EOSSDK - 各 .Target.cs で設定された GlobalDefinitions からの「プロジェクト バイナリ」メカニズムを構成変数に移行しました。つまり、一か所でプロジェクトがワイドに設定され、プロジェクトの各ターゲットで定義する必要がありません。古い GlobalDefinitions メカニズムでは下位互換性が維持されますが、非推奨になり、ライセンシーは移行する必要があります。
-
[OnlineSubsystemEOS]:構成オプションの bUseSessionPresenceAttribute が、false に設定したときに実行されるロジックとともに削除されました。
Pixel Streaming
新機能:
-
AV1 サポートが Pixel Streaming および AVCodecs に追加されました
-
Mac でのバーチャルカメラの「Pixel Streaming 出力プロバイダ」のサポートが追加されました
-
5.3 と 5.2 で機能しなかった Pixel Streaming プレイヤーを再シッピングしました。このプレイヤーでは対象ハードウェアでサポートするハードウェア アクセラレーション デコードをサポートするようになりました。
-
Pixel Streaming 統計インターフェースを追加し、ユーザーが独自の Pixel Streaming 関連統計データでグラフを作成できるようになりました
-
Mac での Pixel Streaming のサポートが追加されました。注:この機能は M1 Mac 以降でのみ利用できます。Intel ベースの Mac はサポートされていません。
-
エディタ Pixel Streaming を使用して、プラグインがエディタ設定「Use Less CPU when in Background (バックグラウンドでの処理により少ない CPU を使用)」を無効にすることをユーザーに通知するときのエディタ通知を追加しました。
-
OnPlayerRequestsBitrate を Signalling Observer インターフェースに追加しました。ユーザーはカスタム ビットレート リクエストに応答できます。
-
特定のデータ チャンネル メッセージが特定ユーザーに制限できるように、詳細チェックを追加しました。つまりピア コントローラーのみが解像度、ビットレートなどの対象を制御できます。
-
バージョン 1.13.1 の libVpx およびバージョン 5414 の WebRTC を使用するように Pixel Streaming を更新しました
-
WebRTC のポート範囲を指定する一組の設定を追加しました。アプリケーションを起動するときに「-PixelStreamingWebRTCMinPort=xxx」を指定 (または「PixelStreaming.WebRTC.MinPort」コンソール変数を使用) して最小ポートを指定できます。さらに、アプリケーションを起動するときに「-PixelStreamingWebRTCMaxPort=xxx」を指定 (または「PixelStreaming.WebRTC.MaxPort」コンソール変数を使用) して最大ポートを指定できます。
-
WebRTC ストリームからデコード済みフレームを抽出できる FPixelStreamingVideoSink クラスが追加されました
- LAN シナリオでフレームのドロップを軽減するために新しい 3 つの PixelStreaming/WebRTC 設定を公開しました。
- PixelStreamingWebRTCDisableFrameDropper=true、true の場合は UE の WebRTC 内部でフレームのドロップを無効にします。
- PixelStreamingWebRTCVideoPacingFactor=N、ここで N は大きいビットレートのペースでどれだけ寛大にするのかを示す乗数です (例、値 100 はかなり寛大)。
-
PixelStreamingWebRTCVideoPacingMaxDelay=M、ここで M は最大パケット ペーシング遅延 (ms) です。 これらの設定の組み合わせにより、UE 側でフレームをドロップすることなく、大きい固定ビットレートで送信できます - これが便利なのは、LAN ストリーミング シナリオだが、スタッタ、ラグ、混雑を引き起こします。パケットが失われる、または実際のネット間で十分速く送信できないからです。
-
カスタム ウェブソケットをシグナリング サーバー接続に渡すことができます
-
初期接続でビットレートを設定できます。フロントエンドからの設定パネル パラメータは接続するときに適切に適用できるようになります。
-
Pixel Streaming プレイヤー接続 URL のポートをデフォルトで 80 にしました
- Pixel Streaming プラグインのウェブソケット切断メッセージを改善しました。これまでは UE 側ですべて切断すると、切断メッセージなしでレポートされました。
バグ修正:
-
エディタ ストリームがブラウザから停止された場合に、エディタがロックされる問題を修正しました
-
すべてのプラットフォームで Pixel Streaming ユーザーに影響がある FVideoResourceCUDA でのメモリ リークを修正しました
-
新規プレイヤーが接続したときの小さなストリーム スタッタを修正しました
-
Vulkan とともに実行しているとき、Windows でバーチャル カメラがストリーミングできない問題を修正しました
-
Pixel Streaming をシャットダウンするときにクラッシュする問題を修正しました。この原因は、スレッドがまだ動作している間にスレッド オブジェクト (FrameThread) を破棄するためです。
-
関係ない解像度変更の通知を受けた MediaIO キャプチャにより発生した Pixel Streaming VCam のフレーム スキップ問題を修正しました。
-
TVideoEncoder でのメモリ リークの問題を修正しました
-
編集可能テキスト ウィジェットをタップしたときに、EditText ボタンが表示されない問題を修正しました
-
ReadOnly プロパティを尊重せず、ピクセル ストリームを編集できない EditableText ウィジェットを修正しました
-
機能していないデータ チャンネル専用ストリームを修正しました。データ チャンネル専用ストリームは、アプリケーションを起動するときに「-PixelStreamingWebRTCDisableTransmitVideo」と「-PixelStreamingWebRTCDisableTransmitAudio」を指定することで起動できるようになりました
-
ストリームが品質制御ピアなしに共有されているときに、フレームを取得できないピアを修正しました。
- 最小レイテンシー体験向けに PixelStreaming VCam を設定します。
- デコード/ビットレート プロファイルを滑らかにする間隔でキーフレームの送信を無効にします。
- WebRTC を無視する固定動画エンコーディング ビットレートを設定します (LAN 環境であることがわかっているため)
- 動画エンコーディング中にデータのフィルタリングを有効にします (コストがかかりますが、レイテンシーの推定に役に立つ安定ビットレートを保証します)
- 一貫した FPS でストリームできるようにフレーム ドロッパーを無効にします。
- 高いビットレートで寛大にする動画ペーシング係数を設定します
-
機能しない NVDEC ハードウェア デコーディングを修正しました。これにより Pixel Streaming プレイヤーは、NVIDIA GPU でハードウェア アクセラレーション デコーディングを活用できます
-
エディタ ストリーミング時にストリーミングできないプレイ イン エディタ (PIE) を修正しました
-
VCam Pixel Streaming 実行時に間違ったサイズのテクスチャが MediaIO キャプチャ パイプラインに渡されることによるエラー ログを修正しました。
-
テキスト更新が LiveLink アプリでトリガーされるときに、OnTextCommitted が呼び出されない問題を修正しました
-
UMediaCapture anythread モードを使用してフレームをキャプチャすることにより、Unreal Engine VCam Pixel Streaming と LiveLinkVCam アプリ間でエンドツーエンドのレイテンシーを改善しました。これによりフレーム キャプチャ時間の一貫性が大幅に改善し、WebRTC 動画ストリームがはるかに安定に (そしてバッファリングが少なく) なりました。
-
WebRTC の MetalKit 動画ストリームのデフォルト レンダリング レートを 30fps ではなく 60fps に設定することで、LiveLink VCam アプリで 60fps のストリーミングのロックを解除しました。
- VCam Pixel Streaming で,UE と LiveLink アプリ間でフレームの同期 (レイテンシー) が向上するために、レンダリング レートとストリーミング レートが連結されています。
非推奨:
- プレイヤーのキック (追放) 機能は非推奨になりました。この動作はまだ機能しますが、今後のバージョンで削除とマークされています。
ボイス
非推奨:
- 古い IVoiceChat::Set3DPosition API が非推奨となり、デフォルトの no-op 実装が追加されました - 新しい単純化 IVoiceChat::Set3DPosition API およびデフォルトの no-op 実装が追加されました。IVoiceChat のサードパーティ実装は引き続きコンパイルされます。
Websockets
新機能:
- websocket 接続から URL パラメータを取得するためのヘルパー メソッドが追加されました
Xbox Live
バグ修正:
- セッション情報なしで招待から参加できない問題を修正しました。
XMPP
バグ修正:
- null ポインタの逆参照につながる、一部の内部ステートを部分的にリセットするだけのコードパスに特製の xmpp メッセージがヒットするときに、libstrophe でクラッシュする問題を修正しました
プラットフォーム
新機能:
-
デッドロックの原因になる可能性があるダブル アンロックに関するすべてのクリティカル セクションに警告を追加しました
-
TargetPlatform (TP) の最初の部分を TargetPlatformSettings (TPS) および TargetPlatformControls (TPC) にリファクタリングしました TPS では SDK が不要で、TPC が必要なプラットフォームに関する情報を取得するために使用されます SDK AndroidTP は新システムに変換されます
-
Platform/PlatformEngine.ini ファイルでオーバーライドできる構成プロパティを示す、新しい PerPlatformConfig クラス フラグが追加されました。エディタでクラスが PerPlatformConfig とマークされているとき、エディタでクラスがプラットフォームからロードされます。現在の PreviewPlatform の ini のロード時に、そして PreviewPlatform が変更されたときに、LoadConfig がプラットフォーム ini ファイルから設定をリロードするために呼び出されます。
-
コンパイル時にキャストを検証します - UObject の関係がないサブクラス間のキャストにより、静的な警告 (および警告をエラーとして扱う設定の場合はエラー) が生み出されます- 自明のキャストは IsA<> を呼び出すことなくコンパイル時に解決されます。これは UE_ENABLE_UNRELATED_CAST_WARNINGS = 0 で無効にできます
-
GameInput API の最小仕様に適合するためにバンプ ウィンドウ バージョン 18362 から 19041 を使用します
-
TObjectPtr で Cast、ExactCast および CastChecked は const correct です
バグ修正:
-
デバッグ ビルドで
clang-clを使用するとき/Osを渡すことと/Ob0を渡すことはデフォルトで無効です。無効でない場合、Visual Studio でclang-cl-生成の実行可能ファイルのデバッグの妨げになるからです。 -
プラットフォーム ヘッダでチェックに対して邪魔にならないコンピレーション データベースを生み出す Clang データベース生成を修正しました。実際に正しく利用できるようになりました。
-
リソース トランジションがない、たとえば反射キャプチャのミップ ダウンサンプル中のため、テクスチャ キューブ リソースの破損につながるような D3D12 RHI のバグを修正しました。
デスクトップ
新機能:
- SecuritySandbox 実験的機能エンジン プラグインが追加されました。最小権限の原則にうまく従うため、Windows で独自のアクセス権をゲーム クライアントで制限できます。
Linux
新機能:
-
スパース ボリューム テクスチャと OpenVDB に対して Linux の予備サポートを有効にしました
-
FGenericPlatformOutputDevices::SetupOutputDevices コードを小さくするためだけにリファクタリングしました。カスタム linux 実装でコードの悪化に耐える必要はありません
バグ修正:
-
バグ修正:Linux で大文字と小文字を含む名前でコンパイルしたときの問題を修正しました。
-
不適切に使用されている sa_handler を sa_sigaction で置き換えました
-
GeoReferencing プラグインの無効なディレクトリ セパレータを修正し、Linux で正しくパッケージできるようになりました
-
Linux 向け OpenColorIO ビルド スクリプトを修正しました
-
Linux 向けの GetPhysicalProcessorCount を実装しました。PGO ビルドが正しく動作できます
-
最初の出現だけを出力するために、DPI ログ イベント出力のモニターの反復を削減します
Mac
API の変更:
- ここで動作の変更はありませんが、実体が何であるかを変更するオプションを提供し、Mac だけではない多くのプラットフォームをサポートします。
新機能:
-
UBA:UbaAgent 用の Mac メニューバー アプリを追加しました
-
Mac のタイトル バーの右側に追加コンテンツを表示するサポートを追加しました。
-
iOS および Mac のプライバシー マニフェスト処理のサポートを追加しました
-
エディタ xcode プロジェクトからゲーム xcode プロジェクトにソース ファイルを移動しました
-
Apple:ランタイムを macOS 11 にアップデートし、それを実行する警告をクリーンアップしました。
-
Metal 実装向け Apple の Metal CPP に切り替えました
-
存在する場合 dSYM を使用して、ソース コード ルックアップ機能を改善しました。
-
macOS メインメニューをエディタ ウィンドウに移動しました。
バグ修正:
-
Tools -> Open Xcode が最新の Xcode と連動しない問題を修正しました
-
ProjectDisplayedTitle を AppName として Mac で使用します (設定されている場合)
-
Mac で EKeys::Platform_Delete の動作の切り替えを追加しました。Mac のキーボードで「delete」を押すと Windows や Linux での「backspace」として機能し、「function+delete」を押すと Windows や Linux での「delete」として機能します。
-
配布用にブループリント専用プロジェクトをパッケージングするときにアーカイブが失敗する問題を修正しました
-
NavigateToFunctionSource のクラッシュおよびエラー問題を修正しました。
-
Mac で複数コントローラーがサポートされていない問題を修正しました
オンライン
API の変更:
- DisplayName はサニタイズ バージョンを使用するようになりました。
新機能:
-
[OnlineSubsystem] 対応プラットフォームで年齢検証情報を活用できるコンテンツ制限インターフェースを実装しました
-
新しい EOSSDK 1.16.1 BestDisplayName メソッドのサポートが OnlineSubsystem と OnlineServices に追加されました
-
EOSShared にはエンジン依存関係なしでターゲットをコンパイルするオプションが追加されました
XR
API の変更:
-
新しいオーバーライド可能コールバック:OnSuggestBindings、OnCreateActionSet、PostCreateActionSet、OnCreateAction、PostCreateAction および OnActionSetAttach を追加することで、IOpenXRExtensionPlugin インターフェースの拡張性を改良しました。
-
FOpenXRHMD の使用から IOpenXRHMD の使用に変更することが場合により必要になります。
-
PreInitHMDDevice が早期に呼び出されたので、以前に必要だった回避策を削除できます。
-
一部のインクルード パスは変更されました。プライベート ヘッダのユーザーもリファクタリングが必要になることがあります。
新機能:
-
OpenXR:アクションにサブアクション パスを追加する機能が必要です。-SubactionPath パラメータが IOpenXRHMD::AddTrackedDevice と FOpenXRHMD::FDevice に追加され、指定した SubactionPath でアクションを作成できます。
-
デフォルトの観戦者画面コントローラーの歪んだモードに未サポートのメッセージを追加しました。
-
VR PIE:bOneHeadsetEachProcess オプションにより、各分離プロセス PIE インスタンスで HMD または HMD シミュレーターを所有できます。-新規設定 bOneHeadsetEachProcess では、true のときに、PIE 分離プロセス インスタンスで、-nohmd なしで -HMDSimulator を指定して実行でき、XR プラグインが特別な VR デバイス シミュレーションを実行するために消費できます。OpenXR で実行してもこれが発生しない場合でも、HMD に接続する追加の OpenXR インスタンスの作成を試み、OpenXR ランタイムにより何らかの接続が許可されることがあり、これらの PIE インスタンスも正しく動作しないことがあります。#contrib 11314
-
システムでステレオ レイヤーに新たなフラグを追加しました。
-
AppleARKitFaceSupport および AppleARKitPoseTrackingLiveLink で AppleARKit モジュールのプライベート フォルダを参照します -インクルードとともにプライベート フォルダへのアクセスは不要であるため削除されました。
-
OpenXRViveTracker は OpenXRHMD モジュールのプライベート フォルダを参照します -IOpenXRHMD インターフェースを作成し、別のプラグインで、OpenXR 固有の処理を OpenXRHMD 実装を使い、FOpenXRHMD にアクセスしないで、実行できるようにします
-
PreInit の xrInstance を破棄すると、他のプラグインが xrInstance を作成します -preinit 中に作成した openxr インスタンスは破棄されます。openxrhmd が選択 xrsystem であるかどうかを把握していないからです。別の xrsystem でインスタンスの作成を試み (つまり oculus vr プラグイン)、ランタイムは 1 つのインスタンスだけをサポートするので失敗します。-CVar xr.RetainPreInitInstance を true に設定してこの動作を無効にできます。#contrib 11029
-
新規プラットフォーム VisionOS プロジェクト設定パネルを追加し、VisionOS の完全没入対ウィンドウ モードを有効/無効にします
-
VisionOS 完全没入の実験的機能をサポートします -デバイスでの VisionOS 実行の第 1 フェーズです。VRTemplate はデバイスで実行されます。-モバイル フォワード レンダラは合理的なフレームレートで MobileMultiView が無効である場合に実行されますが、深度は現時点で不正です (シーン カラーをそれに書き込むだけで、深度情報は存在しますが、関連付けられていません)。ブロック状の黒いシャドウ アーティファクトはこれに関係しています。-ディファード レンダリングが適切な深度バッファで動作します。
- VisionOS:ハンド トラッキング
- ハンド トラッキングは OpenXRHandTracking プラグインでサポートされます。
-
xr.DisableOpenXROnAndroidWithoutOculus の評価は INI で変更するには遅すぎます -PreInitHMDDevice が PreInitPreStartupScreen のかなり後のポイントに移動され、多くの Unreal Engine システムは ini の読み取り、CVar、fplatform メモリなどを呼び出すときにセットアップされるようになります。
-
OpenXR 関連プライベート ヘッダはクリーンアップにアクセスします。-プライベート ヘッダ ファイルを含むクロスモジュールを内部に移動するようにリファクタリングします。リファクタリングにより一部のインクルードを除外します。単に不要なインクルードを除外します。
-
OpenXRAR、OpenXRInput で OpenXRHMD モジュールのプライベート フォルダを参照します -IXRTrackingSystem と IOpenXRHMD を FOpenXRHMD の代わりに使用するようにリファクタリングしました。
-
Quest 3 を Meta サポート デバイスのリストに追加しました。
-
非推奨モーション コントローラー コンポーネント コードを削除しました。
-
OpenXRVisionOS の非プラグイン サポート ファイル -変更は、OpenXRVisionOS プラグインにない VisionOS 没入モードに必要です。-SimpleHMD を VisionOS に対して有効にします (HMD なしでステレオ レンダリング)
-
OpenXR XrSystem の喪失/変更を処理します。-FOpenXRHMD コンストラクタの不要な xrGetSystem 呼び出しが削除されました。使用されることなく (たとえば OnStereoStartup() で) 上書きされます。
-
VisionOS モードで SwiftUI をデフォルトで有効にします
-
XRDeviceVisualizationComponent は VREditor で動作するようになりました。
-
Vulkan カスタム解決 + tonemap サブパスが追加され、Meta Quest デバイスでモバイル HDR がサポートされました。
-
AppleARKitFaceSupport および AppleARKitPoseTrackingLiveLink で AppleARKit モジュールのプライベート フォルダを参照します -未使用のインクルードおよびそのプライベート インクルード パスは削除されました。
-
プラグイン -> OpenXR 入力プロジェクト設定ページが削除されました。OpenXR で使用するリストはプロジェクト設定 -> エンジン -> 拡張入力 (入力マッピング コンテキスト) にあり、OpenXR アクション セットを生成するときに、その優先値が渡されます。
-
OpenXR:Vive ハンド トラッキング レイヤーは Oculus ランタイムを破壊します -ProblematicOpenXRApiLayerInfos ini 設定を追加し、拡張に関して不正に動作する、特定の ApiLayer バージョンを定義します。-OpenXR インスタンスの作成を試みます。これは問題の可能性がある拡張を順に有効にしないで xrCreateInstance を反復して呼び出すことにより実行します。動作する組み合わせが見つかることも見つからないこともあります。-この Cl ではさらに問題のある OpenXR API レイヤー処理を実装するための構造体を提供します。これと同様の回避策がさらにプロジェクトで必要です。
-
IOpenXRExtensionPlugin:推奨バインディングを追加するための新規関数を追加しました -IOpenXRExtensionPlugins で推奨バインディングを追加できます #contrib 10966
-
デフォルトの動作をアプリケーション側 HMD の再センタリングを自動実行しないように変更しました。これは OpenXR ランタイムからイベント XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING を受け取ったときです。FCoreDelegates::VRHeadsetRecenter はこのイベントを受け取ったときに、ステージやローカル空間にいるかに関係なく、トリガーされるようになりました。多くのプライマリ OpenXR ランタイムは、ランタイム側の再センタリングを実行するときに、ローカル空間の再センタリングのみを実行するようになりました (この再センタリングは UE に透過的で、XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING イベントに関係なく、たとえば、システム ボタンを押すことによりトリガーできます)。デベロッパーがアプリケーションの動作をさらに制御できるようにするために、アプリケーション側の再センタリングを実行するかどうかとそのタイミングのオプションが用意されています。イベントを HMDRecenteredDelegate (FCoreDelegates::VRHeadsetRecenter でトリガー) にバインドするとこで、ブループリントで実行できます。
-
VisionOS OpenXR ラッパー -OpenXR レイヤーで VisionOS 没入モード API をラップしているので、OpenXRHMD を通じて VisionOS 没入モードを実行できます。-シミュレーターはステレオでレンダリングされ、ヘッドを正しくトラックします。デバイスでのテストが実行されず、シミュレーターは単眼ビューのみを提供します。2 番目の視点が正しく表示されるかわかりませんが、設定を試みます。-初期の実験的機能です。-既知の問題:中間バック バッファを使用します。基本ヘッド トラッキングおよびステレオ レンダリングを超える機能はありません。更新または削除が必要な機能の未使用コードが多数あります。
-
OpenXR は XR_EXT_local_floor 拡張をサポートするようになりました。-オプションの拡張として XR_EXT_local_floor のサポートが追加されました。-トラッキング原点列挙型フィールド名が「Eye」から「Local」に変更され、OpenXR に適合します。「Eye」が適切な説明ではなかったからです。実際の HMD センタリング空間を表すために「View」が追加されました。View はクエリに使用できますが、トラッキング原点として使用できません。#contrib 10836
-
XR_KHR_composition_layer_color_scale_bias OpenXR 拡張のサポートが追加されました。この拡張をサポートするプラットフォームで、UHeadMountedDisplayFunctionLibrary::SetColorScaleAndBias() ブループリント ノードを使用してカラー乗数とオフセットをメイン OpenXR コンポジション レイヤーに適用できます。
- ランタイム時に中心窩パラメータのサポートが追加されました。
バグ修正:
-
モバイル マルチビューが有効で、エディタ ウィンドウが最小化されていないときに、VRPIE がクラッシュする問題を修正しました。
-
GetMotionControllerData は、PIE で失敗することがあります。これはエディタからモーションコントローラを取得するためです。-モーション コントローラーのワールドと GetMotionControllerData の WorldContext パラメータを比較すると、正しいワールドの一部ではないモーション コントローラーを無視します。-VivePort OpenXR レイヤーが Meta OpenXR ランタイムと競合している場合に必ずヒットできる関連コメントを追加しました。
-
成功の戻り値とみなされ、エミュレーションに影響がない XR_FRAME_DISCARDED を返す xrBeginFrame 呼び出しでキャプチャをデコードするときに、XRScribe がクラッシュする問題を修正しました。
-
プライマリ インスタンス化ビューで表示されない、錐台カリング プリミティブがセカンダリ インスタンス化ビューで正しくカリングされない問題を修正しました。
-
Oculus OpenXR ランタイムから有効ビットセット付きで渡された NaN のためにアサートします -ブランチを処理する OpenXR 関数呼び出しが追加されました。このランタイムで完全に失敗した場合にフラグを無効に設定する必要がありますが、少なくとも 1 つのランタイムで、実行されなかったので、呼び出しの失敗を明示的に処理する必要があります。
-
モバイル マルチビューで変調シャドウを修正しました。
-
VisionOS:頭部の動きに対して表示が遅れます。後ではなく、レンダー ターゲットのレンダリング前に、スワップ チェーン レンダー ターゲットを描画可能コンポジタ サービスにコピーすると、結果として、過去の swapchainlength-1 からピクセルが表示される問題を修正しました。存在する blit とコンポジタ サービスをメイン フレーム コマンド バッファにエンコードするようになりました。-レンダリング スレッドで更新する前に、後の更新のためにデバイス位置をキャッシュするときの問題を修正しました。
-
OpenXR LoadMap で表示されるフレーム vs hmd のラグが生まれます - 2 つの追加レンダリング スレッドは、LoadMap の RedrawViewports から情報を引き出し、結果として、ゲーム スレッドの 1 つの xrWaitFrame になり、レンダリング スレッドの 3 つの xrBeginFrame が続きます。これは OpenXR 仕様に違反し、SteamVR ランタイム (およびおそらく他のランタイム) で不正なステートになります。-カウンタをパイプライン化フレーム ステートに追加することで修正しました。xrBeginFrame が消費している xrWaitFrame がすでに使用されているかどうかを判別でき、早期に抜け出せるようになりました。CVar がこの動作を無効にするために存在します。xr.OpenXRUseWaitCountToAvoidExtraXrBeginFrameCalls はデフォルトで true で、スタートアップで無効にするために false に設定できます。
-
Android Vulkan プレビューとモバイル マルチビューのエディタでディレクショナル ライトのシャドウが正しくレンダリングされない問題を修正しました。
-
VisionOS:ビュー トランスフォームの問題 -HMD オフセットが 2 回適用されるバグを修正しました。-目のオフセットが適用されないバグを修正しました。
-
XR で、デフォルト スクリーン比率の「VR 向けスクリーン比率モード」設定ではなく「Screen Percentage Mode for Desktop renderer (デスクトップ レンダラ向けスクリーン比率モード)」を間違って使用する問題を修正しました。
-
HMD が接続していないときに OpenXRViveTracker がクラッシュする問題を修正しました。
-
HMD を設定したとき XRMotionController コンポーネントでログ スパムを生み出します -コントローラーの汎用的なコードを試す前に HMD の特別なケースのコードを実行しました。HMD モーション ソースでコントローラー コードを試す場合にエラーをログに出力するからです。-「Head」が OpenXR で提供されるモーション ソースに追加されました。モーション コントローラー ドロップダウンに表示されます。「Head」と「HMD」関数を同一にします。「HMD」はレガシー用語で、「Head」は現在の用語です。
-
モバイル HDR とモバイル マルチビューを修正しました。
非推奨:
-
OpenVR を Engine\Source\ThirdParty から削除しました。使われなくなっています。-OpenVR はこの時点で基本的に OpenXR で置き換えられ、サードパーティ ソースは使用されなくなっています。
-
AzureSpatialAnchors サービスは使用停止で非推奨です。-プラグインは非推奨とマークされ、警告がログに出力されます。
-
XRGestureConfig.h は 5.4 で削除できます。-これを使用していた関数、3 つの長い非推奨ブループリント関数とともに削除されました。
プラットフォーム モバイル
API の変更:
- たとえば、iOS に対して VT のみを有効にするには、r.Mobile.VirtualTextures=1 を追加します ( [/Script/Engine.RendererSettings] カテゴリ、プロジェクト IOSEngine.ini ファイル内)。
新機能:
-
モバイル レンダラで ShaderPrint および GPUScene デバッガを有効にしました。
-
ベースパスでインライン実行したときに、MergeLocalLight の NdoL を統合しました
-
BuildInstanceIdBufferAndCommandsFromPrimitiveIdsCs の未使用のシェーダー順列を削除しました
-
モバイル プラットフォームで GPUScene サポートを修正しました。均一バッファ オブジェクトをサポートするプラットフォームは、UBO を通じて、バッチ化プリミティブ データを提供できるようになりました。シェーダーでアクセスできるリミット UBO 範囲があり、このリミットに適合するバッチにインスタンスをまとめます。Android では 16KB ビューを使用し、他のプラットフォームでは最大 64KB ビューを使用します。UBO をサポートしないモバイル プラットフォームは、デスクトップ バージョンの GPUScene を使用します。
-
r.Mobile.Forward.EnableLocalLights == 2 であるとき、透過オブジェクトのベースパスでローカル ライトをマージします#ローカライゼーションなし
-
bOverride_CastDynamicShadowAsMasked を MaterialInstance エディタで公開します。
-
MobileLocalLight の MobileLocalLightTextureB のアルファチャンネルに SpecularScale を格納します MobileLocalLightTextureB は RGB10A2 から RGBA8 になり、888 としてパックされた oct24 を使用して、Direction は RGB8 に格納されます
-
特定のモバイル プラットフォームでバーチャル テクスチャのみのサポートを有効にする機能を追加しました
-
一部のモバイル デバイス ドライバーのローカル ライトを修正しました LocalLightBuffer の UAV を SINT から UINT に変更しました
-
すべてのメッシュ描画コマンド (MDC) を強制的にキャッシュに入れ直す場合にログ出力を追加しました。すべての MDC の再キャッシュは負荷の高い処理で、このログにより、発生したタイミングと理由を特定するのに役に立ちます
バグ修正:
-
Mac でモバイル ディファードを使用するモバイル プレビューが黒の画面になるバグを修正しました。
-
ブルームのルミナンスが露出でスケールされないバグを修正しました。
-
MobileHDR が無効であるときに、モバイルでデバッグ プリミティブのレンダリングにおける問題を修正しました
-
FGBufferData の Depth と CustomDepth をハーフ float からフル float に変更しました。深度のハーフ プレシジョンにより一部の場合にレンダリング アーティファクトが生まれます
-
モバイルでローカルライト プリパスの RenderGraphValidation を修正しました。ディレクショナル ライトの全データを保持する、個別の FMobileDirectionalLightShaderParameters UB があります。
-
遅延モバイルで IndirectIrradiance により 2 回 AO が適用されるバグを修正しました。ベースパスで AO が適用されました。
-
サブクエリとオクルージョン フィードバック (r.OcclusionFeedback.Enable) のインタラクションを修正しました
-
モバイルでのダイナミック スカイライトの間接ライティングを修正しました
-
モバイル デバイスで r.Water.WaterInfo.RenderMethod を修正しました
-
修正:モバイル ディファード シェーディング レンダラが可動スカイライトの寄与を、ベースパスとシェーディングパスで 2 回適用する問題を修正しました
-
Adreno 7xx GPU でレンダリング アーティファクトを回避するために、モバイル ベースパス シェーダーでシャドウ カスケード選択のループを作業し直しました
-
パスの最後で「Memoryless」テクスチャが RDG により確実に破棄されます
-
リンク済みリスト カリングが無効であるときに、NumLocalLights を MobileLocalLightBuffer の MaxCulledLightsPerCell にクランプします。
-
1.フル深度プリパスが有効である場合、ベースパスではなく深度パスをソートします。2.モバイルで透過パスの自動インスタンス化を無効にします
-
プロジェクト設定でモバイル ディファード シェーディングを使用しているときに、モバイル HDR が必要です。
-
モバイルでライト シャフト ブルームが有効であるドット絵の太陽を修正しました。
-
モバイルで TAA が有効なカスタム深度をレンダリングするときに、MobileSceneTexture 均一バッファがないためクラッシュするバグを修正しました。
-
モバイル レンダリングで非ライティング不透明型マテリアルの GBuffer 出力を適切に無効にします
-
モバイル レンダリングのスカイ メッシュの間違ったステンシル設定を修正しました。これによりフォグからスカイ ピクセルを除外することで、フォグ シェーディングがスピード アップします#11106 #contrib 11106
-
モバイル ブルーム シェーダーで float のオーバーフローを修正しました。非常に明るいライトがあるシーンのレンダリング アーティファクトが発生していました
-
今後のエラーを回避するために、非推奨の GMaxNumReflectionCaptures と GMobileMaxNumReflectionCaptures をモバイルで直接呼び出すときに、アクティブ シーン キャプチャ数をクランプします
-
モバイル ローカル ライト バッファを使用するときのスポットライトのシャープなエッジを修正しました
-
ライト チャンネルを使用するプリミティブによりモバイル ディファードでスカイ ライティングが失われるバグを修正しました。
-
LinkedListCulling が オフであるとき、MobileLocalLightBuffer リミットを (MaxCulledLightsPerCell - 1) から正しい MaxCulledLightsPerCell に変更しました
Android
API の変更:
- たとえば、モバイル レンダリング専用バイナリをコンパイルするために Android プラットフォームで GlobalDefinitions.Add("USE_STATIC_FEATURE_LEVEL_ENUMS=1"); を MyGame.Target.cs に追加します。
新機能:
-
NDK 26 で HWAsan のサポートを追加しました。Android >=14 が動作するすべてのスマートフォンで利用できます。
-
play-services-games-v2 バージョン 19.0.0 を使用するため、GooglePlay 依存関係を更新しました。OSSGooglePlay へのオフライン アクセスのサポートが追加されました
-
Android でメモリ トレーシングを有効にします。
-trace=memoryの他に現時点でアクティブにするため、package_intdir/files/UEEnableMemoryTracing.txtトークン ファイルが存在する必要があります。 -
.apk で libUnreal.so をバンドルせず、別にプッシュすることで、コード イテレーション時間を大幅に改善する bDontBundleLibrariesInAPK 設定を追加しました。5.4 の実験的機能でオプトインできます。
-
libc.so をフックする UAT 「-ScudoMemoryTracing」オプションが追加されました。Android で malloc/free などがメモリ トレーサーに記録されます。
-
スタートアップ時に AndroidVoice モジュールに対してマイクロフォン権限 (SplashActivity) をリクエストするオプションが Android プロジェクト設定に追加されました
-
ランチャー ビルドで Android Turnkey をデフォルトで有効にします
-
マイナー:FN-29 からマージします LaunchAndroid.cpp でクリーンアップを実行し、実験的機能のすべてのロジックを削除しました。マイナー:SimpleContextWrapper.java で runOnUiThread をクリーンアップしました。バグ修正:FORT-699059 を修正しました
-
Android で Vulkan 検証レイヤーを有効にします
- Vulkan を選択する Android エミュレータのデバイス プロファイルが追加されました。
- ES2 コンテキストにフォールバックすることで Android エミュレータで Android デバイスを検出するときの問題を修正しました。
-
Android 静的機能レベルと静的プラットフォーム情報が追加されました。モバイル レンダリング専用バイナリに関係ないレンダリング コードをコンパイルするために使用できます
-
[Android] ロード済み SPIR-V 圧縮アルゴリズムを変更しました
-
新規:AndroidSingleInstanceService プラグインを追加し、エンジン コードを変更し、Android と Lyra でテストし、プリフライト チェックも実行します。
-
新規:AndroidSingleInstanceService プラグインを更新し、ASISProject を適切に生成します
-
Android でスカイ キャプチャの最小 LOD を強制します
-
bDontBundleLibrariesInAPK に対して lz4 圧縮がないデバイスをサポートします
-
libUnreal.so を .apk の外部にプッシュするときに、VS+AGDE で 2 個以上の Android デバイスのサポートが追加されました。.vcxproj.user ファイルのパッチのサポートを実装しました。
-
PR #11247:Quest デバイスの起動画像を追加しました
-
Android x86_64 アーキテクチャ ビルド済みファイルをランチャー ビルドに追加しました
-
NDK 26.2.x の使用を有効にしました
-
Android で Vulkan API バージョン文字列とともに gl バージョン文字列を報告します
-
Adreno、Mali および Xclipse デバイス向けに Android SM5 デバイス プロファイルが追加されました
-
AndroidTargetPlatformControlsとAndroidTargetPlatformSettingsの短縮名を導入しました。特定のビルド ターゲットで UBT ファイル パス長に課されるMAX_PATHリミットに抵触することがあるからです。 -
Android で 4K ではない仮想ページ サイズのサポートを有効にしました
- Android targetSDK 33 のサポートを修正するために Android Background Services の依存関係を更新しました
- 新規ライブ ラリバージョン: androidx.appcompat:appcompat:1.6.1 androidx.work:work-runtime:2.8.1
-
libUnreal.so をコピーしないで、llvm-strip 出力ファイル引数を使用することで、イテレーション時間を改善しました。
- cmake を 3.22.1 に更新しました
バグ修正:
-
RenderTarget としてミップマップをバインドし、異なるミップマップからサンプリングするときに発生する、OpenGL のスカイ キャプチャの問題を修正しました。GL のピクセル シェーダーのハーフ プレシジョンで発生するアーティファクトを修正しました。
-
PR #11428:AGDE で使用するために個別の arm64 および x64 ターゲット プラットフォームを作成します
-
テキスト入力の null クリップボード アイテム チェックを追加しました
-
場合によってminifyReleaseWithR8 で発生するロック済みファイルの問題を修正するために、Windows でステップをクリーンする前に、jave、exe をキルします
-
プロジェクト設定で有効にした、VS プロジェクトに、Android アーキテクチャのみを追加します
-
場合によってminifyReleaseWithR8 で発生するロック済みファイルの問題を修正するために、Windows でステップをクリーンする前に、jave、exe ランタイムをキルします
-
Mali 読み取り専用ドライバーのバグの回避策
-
SuspendApp_EventThread() の EMDoneTrigger タイムアウト エラーの問題を修正しました。バグ修正:ポートレート モードで W/H の交換に関して最近発生した問題を修正しました。
-
Android シッピング ビルド向けに new/delete 演算子のグローバル可視性を追加しました
-
Xclipse 940 チップセットと GPU (最高 5xx までサポート済み) デバイスプロファイルが追加されました
-
FAndroidMisc::GetCellularPreference (常に 0 を返す) を修正しました
-
Android スタイルが最新のベース テーマに更新されました
-
GL の不変テクスチャ パスのみを残します (glTexStorage2D のみを使用)。必要ないので GL_TEXTURE_MAX_LEVEL を設定しません
-
Android 環境変数が Mac で必ずしも設定されない問題を修正しました
-
復元において、app_cmd_init と復元を扱う方法の問題を修正しました (必要なくなった ASIS STANDALONE ifdefs を削除)
-
ドライバー バグを修正するために FSceneCapturePS で highp float を強制的に使用します FullPrecisionInPS をグローバル シェーダーごとに有効にできます。r.Mobile.FloatPrecisionMode でグローバルに制御されるだけではありません
-
依存関係チェックに追加する前に、ディレクトリが存在することをチェックします
-
VR マニフェストの AFS プロジェクト APK からの変更をフィルタで選別します (__ExcludeFromAFS="true" 属性タグを使用)
- GameActivity の onCreate をリファクタリングし、AndroidMain を使用するために nativemain を切り替えます。
-
アクティビティ変更とテーマ変更を適切に扱うために ASISStub を更新しました。新規:Android をテストするサンプル Android アプリを簡単に使用できるように ASISStub の Gradle ビルド ファイルも追加されました
- GameActivity.java.template の isStandalone に対する保護のために発生したクラッシュの問題を修正しました。これは AndroidSingleInstanceService のクラッシュを修正し、アクティビティを切り替えます。
-
ASISStub も更新され、ASISProject が出力されます
-
Safezone が正しく更新されない問題を修正しました。SafeFrameChangeEvent では向きが変更された後にトリガーする必要があります。ジャイロが破損する問題を修正しました。
-
.apk の再ビルドの必要性を確認するための .so ファイルチェックを改良しました
-
PR #8385:アプリ停止イベントでボイス モジュールを停止しないでください
-
PR #11394:JetBrains Toolbox からのインストールのための Android Studio パス検出を修正します
-
複数の IP アドレスが使用可能な場合の Android の Zen ストア接続を修正します。
-
PR #11280:ShortArchName で不足しているハイフン記号を修正します
-
GetNetworkConnection を最適化しました
-
パッケージ化のための Android シングル インスタンス サービスの不足ファイルおよびプラグインの build.cs に使用される短い名前を修正しました
-
インクルードの不足を修正しました
-
クラッシュおよびアクティビティ/サーフェスのバインディングの問題に対処するため AndroidSingleInstanceService を修正します。残りの既知の問題は、サーフェス バインディングの切り替え前に一時停止する必要があることと (いずれ内部で対処する必要があります)、参照 ASIS Android Studio プロジェクト サンプルのコンパイルの変更を終了する必要があることです。これについては別の投稿で説明します。
-
更新された UnrealAndroidFileTool 実行可能ファイル (pulldir コマンドを追加) を含む AFS サーバーの起動シーケンスを改良しました
-
モバイル マルチビューを有効にして Android Vulkan モバイルのプレビュー プラットフォームを使用する場合のクラッシュを修正しました。
- ゲームパッドの InputDevice チェックに保護機能を追加しました
古い内容:
-
非推奨:Android のノンスタンドアローン ビルドの **STANDALONE_DEBUG_LOG メッセージがデバッグ ビルドでのみ出力されるようロジックを変更しました。
-
非推奨: **エンジン プラグインから AndroidSingleInstanceService を削除しました。
iOS、tvOS、および iPadOS
新機能:
-
iOS15 以降は GameCenter の有効化に利用資格キーが必要になりました。
-
iOS および Mac の初期プライバシー マニフェスト ファイル
バグ修正:
- AvfMediaPlayer で PlayerItem のリリース後に loadValuesAsynchronouslyForKey が呼び出されるバグを修正します。2. AvfMediaPlayer で MediaPlayer のリリース後に seekToTime が呼び出されるバグを修正します。3. AvfMediaPlayer で MediaResourceLoader がリリースされた後にも読み込みタスクが実行中であるバグを修正します
RAD
新機能:
-
RAD オーディオ コーデックの追加。これは、Bink Audio よりも高品質で同等のスピード/メモリがあり、より圧縮率が高い知覚オーディオ コーデックです。すべての UE 対応プラットフォームで利用可能です。
-
TextureFormatOodle はすべてを前もってロードするのではなく、バージョン管理された DLL すべてを必要に応じて読み込むようにします。スティッキー バージョンを各テクスチャに使用するのではなく、最新の Oodle Texture バージョンの使用を強制する構成オプションを追加します。
-
最新 Bink ツール。
バグ修正:
- Bink Audio デコーダ スタートアップのレア競合状態を修正しました。
レンダリング
API の変更:
- コンパイル時間定数に変換できる CVars は ReadOnlyCVARCache.h にあります 関連する定義を MyGame.Target.cs に追加する必要があります。
新機能:
-
DoubleFloat 数学ライブラリを追加し、使用するために GPU システムの大半をリファクタリングしました。これは、GPU において倍精度の算術を実行するための浮動小数点で、以前に 5.0 に導入されたタイルオフセット システムより高い精度と信頼性を実現します。
-
WPO 対応のレイ トレーシング サポートをケーブルに追加します。
-
必要に応じてジオメトリの後ろへの線の描画を無効にできる r.ShaderPrint.DrawOccludedLines (デフォルトで 1 に設定) を追加しました。オクルードされた線を描くと乱雑になり、分かりにくくなる複雑なビジュアライゼーションに役立ちます。
-
レイ トレーシング ヒット シェーダーにおける仮想テクスチャ フィードバックをサポートしました。
-
手動ヘア スキン キャッシュ のパフォーマンスを向上し、デフォルトで有効にしました。これにより、特定のプロジェクトでスキン キャッシュを有効にする必要がなくなります。(モーフィング ターゲットではない) 通常スキニングでのみ正常に作動します。
-
プロジェクト モーフィング ターゲットの最大ブレンド ウェイトごとの構成を可能にするため、レンダラ (MorphTargetMaxBlendWeight) の新規プロジェクト設定構成を追加しました。コンソール コマンド r.MorphTarget.MaxBlendWeight N (N はテストする最大値) を使用して、エディタでこの設定をテストすることができます。エディタが構成されたレンダラ値を開始すると、CVar 値はリセットされます。
-
非表示シャドウ キャスティング状態がメッシュ コンポーネントから ISMC のコンポーネントにコピーされるようにするため、FISMComponentDescriptor に bCastHiddenShadow プロパティを追加しました
-
VR でヘア ディープ シャドウを修正します。
-
グルーム カード/メッシュの追加のテクスチャ レイアウトのサポートを追加します。これにより、さらにコンパクトで効率的なテクスチャ レイアウトを実現できます。
-
GPU-シーン更新を UpdateAllPrimitiveSceneInfo (現 FScene::Update) の最後に移動し、GPU-シーンとインタラクトするサブシステムの、より効率的で一貫性のあるシーン更新を可能にします。
-
初期:インスタンスごとのオクルージョン クエリに基づくカリングの実装 HZB を使用してインスタンスごとにオクルージョン テストを実行し、続いて可視のインスタンスのピクセルごとのテストを実行します UAV バッファを通してピクセル シェーダーからフィードバックのある、ピクセルごとのテストのフル深度バッファを使用します (1 インスタンスにつき 1 バッファ スロット) 次のフレームのためのインスタンス カリング パスに現在のフレームからオクルージョン クエリ結果を供給します 平均で最大 20% の深度とベースパスの描画プリミティブ数を削減し、頂点の制限されたシーンのパフォーマンスを向上します CVar r.InstanceCulling.OcclusionQueries (デフォルトは 0) を追加します。v1 の既知の制限事項は以下のとおりです マルチビューはサポートされません (ただし、基礎的な準備は行われています) GPU シーンの多数のインスタンスのサポートはありません (1D 計算ディスパッチサイズによる制限、実装予定) 非カリング距離のサポートはありません (メイン インスタンス カリング コードでも一般的に実装される必要があります)
-
メッシュ距離フィールドを可視化する場合、インスタンスにランダムな色を適用します。
-
ランタイム切り替えを処理するため、ベース パス シェーダーに OIT 順列を追加します。ランタイム RHI が ROV をサポートするかどうかを知るため、RHI ROV 機能を追加します。OIT 順列は、OIT プロジェクト設定が有効な場合のみコンパイルします。OIT 順列により、プラットフォームが ROV をサポートしても実際の RHI がサポートしないケースを処理することができます。これにより、ランタイム時に OIT サポートを (インスタンスの品質の設定で) 切り替えることもできます。
-
一部のレンダリング読み取り専用 CVars をコンパイル時間定数に変換するアビリティを追加しました
-
ポイント/カーブ トリミング レポートをグルーム エディタに追加し、ビルド中の警告レポートを削除します。この情報は、グルーム エディタ内でインポート時にのみ表示されるようになりました。
-
作業の過少申告につながった階層的なインスタンス カリングの統計インスタンス集計問題を修正しました
-
非 Nanite ジオメトリに適応する頂点ファクトリに制御された VSM 定数バイアスを追加します
-
インスタンス カリング オクルージョン クエリ レンダラのデバッグ ビジュアライゼーションを追加します。 ShowFlag.VisualizeInstanceOcclusionQueries=1 を使用して有効化しました。 FMobileSceneRenderer::ShouldRenderHZB() を変更してインスタンス オクルージョン カリングを反映しました
-
レンダリング設定パネルに半透明の矩形ライト サンプルを公開しました。
-
モバイル レンダラのヘア カード/メッシュ バインディングおよび変形のサポートを追加します。
-
距離フィールド シーンのメモリ使用量を削減しました。
-
パックされたインデックスの代わりに永続的プリミティブ ID を使用して変更頻度を減らすため、GPU-シーンを変更します。
-
CitySample パフォーマンス テストの決定性を向上します (-決定論的の使用時)
-
GPUScene アップロードの最適化 - (必要なくなった) 一部のプリミティブセットアップ作業を新規 InstanceSceneDataBuffer パスから削除しました - FPrimitiveSceneShaderData のコピー手順を削除し、代わりにアップロードバッファに直接書き込みします。- 再ビルドを減らすため、FInstanceSceneShaderData ビルドをインライン化し InstanceUniformShaderParameters.h のインクルードをクリーンアップしました - FPrimitiveSceneShaderData を少しクリーンアップしました - シングルインスタンス プリミティブのダミー Identity 変換と必要ないマトリックス作業を削除しました
-
完全にキャッシュされたライトの (非 Nanite) メッシュ設定をスキップできるように VSM 距離ライト無効化ロジックを初期値動的シャドウの前に移動しました。
-
モバイル プラットフォームでレンズ フレア パスを有効化します
-
フォワード シェーディングのためのプラットフォームごとのスカイライト キューブ ブレンディングを強制するため、CVar を追加しました。
-
レイトレーシング ヒット シェーダー使用時の RHI パフォーマンスを向上しました。
-
ジッターノイズを構造的ノイズを削除するブルーノイズ機能に置き換えることで、ヘア透過率とシャドウ上のノイズを向上します。
-
さらに低位レベルの最適化に加えて主に静的および動的プリミティブを分けることで、階層的なインスタンス カリング アップデートを最適化しました。
-
r.SceneCulling.Precomputed (デフォルトでは有効) を介して制御される、階層的なインスタンス カリングのためのクック時間事前計算空間ハッシュを追加しました。
-
クックされたグルーム サイズを 45% 削減します。
-
無効グルーム バインディングのビルドを避け、グルーム バインディングが無効な場合の、より明確なエラー メッセージを追加します
-
グルームへのホールドアウト サポートを追加します。
-
HairCardsVF は、モバイル プラットフォームで PrimitiveID および GPUScene をサポートするようになりました。
-
モバイル ボリュメトリックフォグの散乱におけるディレクショナル ライトのサポートを追加しました。
-
同様の動作が BlueCorrection パラメータで得られるようにするため、HDR 出力の r.HDR.Aces.GamutCompression (デフォルトでは無効) を追加します。https://docs.acescentral.com/specifications/rgc には色域圧縮に関する詳細が記載されています
-
MaxDrawDistance または InstanceCullDistance を変更した場合、プリミティブのレンダリング状態全体の再作成を避けます。HLOD システムは通常、弱いプラットフォームではパフォーマンス問題を引き起こす可能性がある多数のプリミティブのための MaxDrawDistance および InstanceCullDistance を更新します。
-
SkyAtmosphereLightIlluminanceOnGround ノードを追加しました。
-
グルーム AutoLOD モードを追加しますこれは画面カバレッジに基づいてグルームのカーブ カウントを自動的にスケーリングし、遠くからの見た目を保つためヘア カバレッジを適合します。AutoLOD はプロジェクトごとに有効化/無効化できます。グルーム アセットはプロジェクト設定を使用しますが、アセットごとにオーバーライドできます (デフォルト、手動、自動)。AutoLOD はデフォルトで有効になっており、ヘア パフォーマンスを全体的に向上します。
-
プリミティブの bEvaluateWorldPositionOffset をデフォルトで true にしたため、r.OptimizedWPO はもう有用ではなく、混乱のもととなるため削除しました。
-
補間はこのデータをすでに含むようになったため、ルートインデックス間接へのポイントを削除します。これにより、間接フェッチを防ぎます。これにより、カーブ インデックスがポイント ルート インデックスとして解釈されるという長年の問題点も修正しました。
-
PostProcessVolume に_フィールドの深度はヘア深度を使用_ プロパティを追加します。
-
カード テクスチャ サンプラ上で異方性を有効化します。
-
フットプリントベースのテストが選択されない階層的なインスタンス カリングのバグを修正しました。
-
非準拠トポロジをもつカード グルームにカード ガイドとしてストランド ガイドを使用する可能性を追加します (たとえば、三角形ストリップ)。
-
インスタンス カリング ロード バランサーへの並列プレフィックス最大演算の誤った実装を修正しました。むしろ新規バージョンもより効率的です。
-
非推奨の UInstancedStaticMeshComponent パブリック関数および緩やかにサポートされている ID マッピングにかかわるデータ。これは新規の ID に基づく関数のために削除されます。
-
DeferredLightPS への OnePass VSM ShadowMaskBit および OnePassHairTransmittance サポートを追加することで、ローカル ライトのヘア ライティングを最適化します。
-
パフォーマンス向上のためグルーム LOD 選択項目、グルーム補間、グルーム シミュレーションをバッチ処理します。
-
レイ トレーシング インスタンス カリングを完全に GPU に移動します。
-
インスタンス カリング コンテキストにシーンおよびバイパス メッシュ描画コマンド再キャッシングからインスタンス数を取得させるためにパスを追加しました (新しい動作は CVar r.InstancedStaticMeshes.FetchInstanceCountFromScene を使用して無効にできます)。
-
VSMResolutionLodBias をライト シーン プロキシに追加しました。ライト単位でシャドウ マップの解像度を制御します
-
SceneUniformBuffer を一般にアクセス可能にし、エンジン コードを変更することなくプラグインが独自のデータを追加できるようにします。このバッファは多くのレンダリング パスに含まれます。
-
静的な機能レベルをもつプラットフォーム上で未使用の「シェーディング パス」レンダラ コードをコンパイルするようコンパイラを助けます。(これにより、モバイル専用バイナリ サイズから最大 2.5 MB 削減できます)
-
インスタンス数ゼロで ISM を作成できるようにするため、CVar (「r.InstancedStaticMeshes.AllowCreateEmpty」デフォルトではオフ) を追加しました。
-
レイ トレーシング コード パスのレンダリング スレッド パフォーマンスを向上しました。
-
新規 SupportsLandscape() 頂点ファクトリ フラグを追加し、ランドスケープ マテリアルを指定された VF と一緒にコンパイルする必要があるかを決定するハードコーディングされた VF 文字列チェックを削除しました。
-
グルーム アセットおよびグルーム バインディング アセット建築物を最適化します (最大 4 倍高速化)。
-
ディファード デカール CPU パフォーマンスを向上します。
-
すべてのプロジェクトがこれと相互性があるわけではないため、髪の束の TriStrip ジオメトリ サポートを追加し、ヘア TriStrip ジオメトリをプロジェクト設定に追加します (たとえば、2 CV ショートヘア)。
-
グルームの速度出力を強制するオプションを追加します。
-
SkyAtmosphere - パーティーの 2 つ目のディレクショナル ライトの多重散乱サポートを追加しました。
バグ修正:
-
レベル内のマテリアルが必要としているにもかかわらず、状況によってグローバル距離フィールドがビルドされない問題を修正します。
-
Cine Camera のスクイーズ比率の調整時、被写界深度 (DOF) の整合性を保ちます。
-
Slate.EnableGlobalInvalidation=1 の場合、HDR ビューポートが正しくレンダリングしない問題を修正します。
-
OIT ピクセルのソート使用時、GPU がクラッシュする問題を修正します。
-
近いクリップ距離が 1 に設定されていたため、オルソ ビューで太い線が切り取られる問題を修正しました。これは、カーブ レンダー ターゲットの更新のためのキャンバス描画に依存する水ランドスケープ ブラシを修正します (!)
-
フレームごとの BLAS のビルト数を r.RayTracing.Geometry.MaxBuiltPrimitivesPerFrame を使用して制限し、Nanite が有効な場合のクラッシュを修正しました。
-
ボリュメトリックフォグ エクスティンクションが露出に影響される問題を修正しました。
-
スケルタルメッシュのクック時、オーバーラップする頂点の検出するときの二次メモリ使用量を削除しました。
-
たとえば、メイン ウィンドウに他のエディタがドッキングされ、有効な場合など、レベル エディタのビューポートがリアルタイムに設定されているのに表示されない場合のメモリ リークを修正します。
-
デバッグ トレースがオフセット ステレオ ビューで正しく描画しない問題を修正しました。
-
2D 配列テクスチャ レジデント ミップのメモリ通報を修正しました
-
GPU シーンが有効な場合のモバイル プラットフォーム上のスプライン メッシュ レンダリングのバグを修正しました。
-
16 マクログループ以上で大きなバウンディング ボックスがある場合のヘア ボクセル化バッファ配置のクラッシュを修正します。
-
「動的シャドウをキャスト」がオフの場合、コンタクトシャドウも無効になるため、コンタクトシャドウ UI が無効になるよう変更しました。
-
HDR スクリーンショットの誤った色を修正しました。
-
出力位置が常に更新されない原因である未初期化グルーム デフォーマー OutputMask 値を修正します。
-
遠くまでトレースされたセカンダリ クラウド バッファでボリュメトリック クラウドが高品質の空気遠近法を受信できない問題を修正しました。
-
複数グループ/複数ジオメトリ タイプ グルームの不足カード データを修正します。LOD 0/LOD 1 では、グルームはストランド データとカード データの両方を保持します。LOD 設定は、LOD 0/LOD 1 のストランド ジオメトリ タイプに設定されています。グルーム データのビルド時、カード データはジオメトリ タイプの不一致により破棄されました。実際、グループ 0 には使用できますが、0 より大きいすべてのグループではデータは構築されません。
-
同じアセットを共有するヘア インスタンス ストリーミングを修正します。
-
髪の束のサンプルの非シャドウ ライトにキャストする不足したスクリーン シャドウを修正します。
-
ゲーム内で非表示/インスタンス上のシャドウ キャスティング フラグの非表示に従っていない、誤ったグルーム シャドウ キャスティングを修正します。
-
誤った環境光サンプリング ソースが原因でボリュメトリック フォグ環境光が正しく照らされないケースを修正しました。
-
ストランドおよびカード LOD の間を LOD が移動する場合のヘアの点滅を修正します。
-
[カスタム プリミティブ データ] シーンに配置された BP インスタンスに要素を追加するときのクラッシュを修正します
-
d3d のみの代わりに SM5 プラットフォームでアップサンプリングする個別の透過深度を有効化します
-
MobileHQDof セットアップ パスでの使用前に ResolvedView が解決しない問題を修正します。MobileHQDof セットアップ パス上の ScreenSpacePos 計算バグを修正します。
-
設定の異なる複数のメッシュ セクションが同じマテリアル スロットを指す場合の誤った距離フィールド/カード表現を修正しました。
-
ヘア シャドウのためのシャドウ マスクの計算時、深度バウンド テストを再度有効にします。これにより、ヘアライティングの負荷を改善します。
-
[カスタム プリミティブ データ] カラーピッカーはこれまでは最初のチャンネルのみコミットしなかった、詳細カスタマイズを修正します。
-
[カスタム プリミティブ データ] 色の選択中にカラーピッカーが閉じないようにします
-
すでにキャッシュされている状態でグルーム バインディング アセットが再ビルドする問題を修正します。誤って実行が速すぎるため、後でローカル DDC をウォームアップするために使用される、DDC キーを入力するロジックです。これにより、データが利用可能かチェックするロジックは失敗し、データを強制的に再ビルドします。
-
オクルージョン クエリ インスタンス カリング リストの HasPrimitiveIdStreamIndex フラグのある描画コマンドのみを含みます
-
ヘア バインディング根バルク/リソースを LOD ごとに別々のデータ/リソースに分割し、同時接続メッシュ LOD がストリームインするときのクラッシュを修正します。
-
SetMeshConstantVertexColor の反転した緑および青条件を修正します
-
特定のランドスケープ構成で発生する可能性のある GPU カリングに関連する画面のエッジで不足するランドスケープ ジオメトリを修正しました
-
ダイナミック インスタンス均一バッファの作成時の誤ったローカル バウンドを修正します。ローカル バウンドと (オーバーライドされた) ローカルからワールド トランスフォームへは、同じ空間で表現されていません (オリジナル対オーバーライド済み)
-
ThreadGroupPrefixSum および VSM 指向性投影における (一部のプラットフォームでの) 境界外の GPU メモリ アクセスを修正します (範囲外のクリップマップ レベルのある短絡 VSM ページ テーブル ルックアップ、一部のプラットフォームでの境界外のアクセスを防ぎます)
-
グルーム コンポーネントで不足するバウンド縮尺を修正します。
-
必要な場合にその動作を抑制できるようにするため、ShadowCacheInvalidationBehavior を HasDeformableMesh にオーバーライドさせました。
-
クック ビルドでのヘア/グルーム表示モードを修正します。
-
メッシュ LOD がストリーム イン/アウト時、キャッシュ済みレイ トレーシング インスタンスが更新されず、レイ トレーシングで誤った LOD が使用される問題を修正します。
-
メッシュにストリーム インされていない LOD がある状態でシーン プロキシを作成中のスプライン メッシュおよび階層的なインスタンス化されたスタティックメッシュにより引き起こされるクラッシュを修正しました。
-
WPO 使用してレイ トレーシング インスタンスの誤ったレイ トレーシング カリングを修正しました。
-
アセット プロパティ変更時のヘア カード/メッシュの再ロードを修正します。
-
静的なプリミティブが 2 回レンダリングされる CSM キャッシングのバグを修正します。
-
リソースの割り当てに失敗した場合にメモリ不足のユーザーに報告されないことがある、D3D12 の問題を修正しました。
-
VisualizeMeshDistanceFields または VisualizeGlobalDistanceField がアクティブな場合、ShouldPrepareDistanceFieldScene は true を返す必要があります
-
一部のプラットフォームの MRQ により破損した .exr/.pngs シーケンス アルファ チャンネルを修正します。
-
コンポーネントのオーバーライドされた MinLOD が StaticMesh MinLOD よりも小さい場合、StaticMesh がレンダリングされないケースを修正しました
-
「listtextures」コマンド ダンプで不足している Texture2DArray 情報を修正しました
-
[カスタム プリミティブ データ] ワールドの BP インスタンスでカスタム プリミティブ データ フィールドの編集が保持されない問題を修正します。
-
テクスチャがない場合、カード グルームにカバレッジ/接線フォールバックを追加します。
-
ゲーム スレッドからの水 PSO の収集時にデフォルト マテリアルにアクセスする場合の Ensure を修正します
-
PS が使用する場合のみ、インターポレータを通して VS から PerInstanceRandom パラメータのみを渡します。GPUScene が無効にされたケースのため破損した PerInstanceRandom も修正しました。
-
グルームがグループ ID マッピングを持たない場合の誤ったグループ名を修正します。
-
インポート後グルーム アセットに不足しているグループ名を修正します。
-
視覚化 HDR モードの不正確な輝度/照度メーター値を修正しました。
-
フィルム粒子 (CitySample など) を使用するプロジェクトで VRS が無効になる問題を修正します。
-
EngineLoop が取得した保留中のクリーンアップ オブジェクトの最後のセットを処理しないことによって引き起こされる、アプリ終了時のレンダリング オブジェクトのリークを修正します
-
FScene を通してまだ保持している可能性のある GPU リソースとともに、PreviewWorld がただちに破棄されることを徹底するため、FPreviewScene が破棄された場合、完全なガベージ コレクションをリクエストします。プレビュー ワールドは重たいオブジェクトで、シーンのレンダリングに必要なさまざまな GPU レンダーターゲットやバッファを含む大量のリソースを保持している場合があります。UWorld はガベージ コレクションされるため、このメモリは不特定期間クリーンされない場合があります。明示的にガベージ コレクションを強制することで、メモリをただちに再利用できるようにします。
-
髪の束テクスチャの生成中、CoordU チャンネルが適切に生成されない問題を修正します。
-
作成時にデータがストリームインされないことによって起こる、作成時の OIT ソート済み三角形インデックス バッファのクラッシュを修正します。データの準備ができていない場合、この CL はソート済みインデックス バッファの初期化をデータの準備ができるまで延期します。
-
コントラスト適応シェーディング (Tier 2 VRS) が制約アスペクト比 のある表示に正しく適用されない問題を修正しました (黒いバー)。
古い内容:
- 非推奨とする IPersistentViewUniformBufferExtension。
アーキテクチャ
API の変更:
- カスタム レンダリング パス API への変更:
- 最終的な非推奨に対応するため、すべてのクラス メンバーを保護/公開しました 実行時、カスタム レンダリング パスにレンダリング キャプチャ演算 (フル キャプチャ、キャプチャ開始、キャプチャ終了) を実行させるため、ユーティリティを追加しました PreRender/PostRender の直前/直後に実行する BeginPass / EndPass 関数を追加しました。これは、上記のレンダリング キャプチャ演算の適切なスコープにのみ非常に役立ちます BeginPass/PreRender/PostRender/EndPass は非仮想になりました。子クラスはバーチャル オン[...] バージョンを実行する必要があります カスタム レンダリング パス ユーザー データに適したクラス (レンダリング パスと同じ存続期間) を追加し、FName によって識別される、カスタム レンダリング パスに複数のユーザー データをアタッチ可能にしました。これにより、どのモジュールでもカスタム レンダリング データを安全な方法で取得できます。現状、システムはランドスケープによってのみ使用されていたため、動作していましたが、実際は、すべてレンダリング パスがどのような種類のユーザー データでも保持することができたため、クラッシュしていた可能性があります * 必要最低限の機能を備えた RTTI システムをレンダリング パスとレンダリング パス ユーザー データの両方に追加しました (GetTypeName)。実行するには IMPLEMENT_CUSTOM_RENDER_PASS (および IMPLEMENT_CUSTOM_RENDER_PASS_USER_DATA をそれぞれ) 使用します
-
新規統計にカテゴリ タイプを設定するため、プリミティブ コンポーネントに新規 SetMeshDrawCommandStatsCategory() を使用できます。
-
下位互換性のため、以前の SoftObjectPtr 参照 (および同期読み込み) をまだ維持する必要があります。また、新規システムは AssetManager が EditorOnly 参照を確認できるかどうかに依存していることに留意してください。それゆえ、既存のコンテンツは新規システムを利用するためには再保存が必要です。
- シェーダー リソース RHI がレンダー ターゲット リソース RHI とは異なる可能性があるクラス (FTextureRenderTargetResource およびその子クラス。たとえば、FTextureRenderTargetCubeResource) のため、デフォルトでは RT の RHI テクスチャ リソースを返すが他のものを返すようオーバーライドできる FRenderTarget に GetShaderResourceTexture() を追加しました
新機能:
-
グラフィックがすでに行っているように、計算パイプライン状態の作成/管理がスレッド ローカル キャッシュを使用するよう最適化し、ExecuteSetComputePipelineState における重大な書き込みロック パフォーマンス問題を回避しました。
-
- カスタム レンダリング パス API への変更
- カスタム レンダリング パス (r.Water.WaterInfo.RenderMethod 2) の使用時の水情報レンダリング キャプチャ (r.Water.WaterInfo.RenderCaptureNextWaterInfoDraws) を修正しました
- カスタム レンダリング パス API への変更
-
メッシュ描画コマンド統計コレクションを追加します。これは、メッシュ描画コマンド レンダリング中に使用される各パスの各ドロー コールに関する情報を収集します。間接的な引数を読み込み、GPU カリング後、正しい最終レンダリング済みインスタンスとプリミティブ数を取得します。「r.MeshDrawCommands.Stats」を使用して、画面に新規統計を表示します。
-
スキン キャッシュがオンの場合のスケルタルメッシュの PreskinnedNormal を修正します
-
コマンド バッファのために確保された余分なメモリを解放するため、マップ読み込み間に VulkanRHI vkTrimCommandPool 呼び出しを追加しました。
- InstancedStaticMeshComponent にインスタンスごとの LOD へのサポートを追加しました。これにより、フル ISM 境界に基づいてすべてのインスタンスに単一の LOD を選択する旧動作を改善します。LOD は GPU インスタンス カリング システムによって処理されます。
- GPUScene が有効で、インスタンス カリングが有効で、コンポーネントで bUseGpuLodSelection が true の場合、新しい手法が使用されます。また、ConsoleVariable「r.InstancedStaticMeshes.GpuLod」を使用してシステムのオンとオフを切り替えることができます。
-
FD3D12DescriptorCache SetSRV、SetUAV、および SetSampler を分割して、記述子テーブル (今後の GPU 機能に必要) を実際に設定することなく GPU 記述子の割り当てとコピー、およびハンドルの回収を行えるようにします。
-
InstancedStaticMeshComponents が保守的な境界を使用するオプションを追加しました。これは、インスタンスの追加/削除/トランスフォームの更新ごとに境界を再計算するためすべてのインスタンスをイテレートすることはありません。しかし、代わりに、拡大のみ可能な保守的な境界を維持します。これは、インスタンス数が非常に多く、境界の計算の負荷が非常に高くなるケースのための最適化です。動作はデフォルトではオフで、SetUseConservativeBounds() によって制御されます。オプションが ISM でオンになっても、インスタンス数が「r.InstancedStaticMeshes.ConservativeBounds.Threshold」未満の場合は常に既存の動作を維持します。
-
カスタム レンダリング パスの実装 - レンダリング深度プレパスおよびベース パス、出力シーン カラーと深みをサポートします - 追加のシーン ビューとして、レンダリング シーン キャプチャのアンダーライン実装を置き換えます - 水プラグイン サポートを追加しました
-
バーチャル テクスチャリングで使用されるデフォルトのファイル キャッシュ サイズを削減します。トラック ファイル キャッシュ使用率にプロファイリングを追加します。
-
D3D12 レイ トレーシング記述子ヒープ/キャッシュ機能を、明示的に管理される記述子テーブルが必要な場合にはレイ トレーシング外で使用可能な、より汎用的ユーティリティにリファクタリングしました (以下の名前変更を含みます。FD3D12RayTracingDescriptorHeapCache -> FD3D12ExplicitDescriptorHeapCache、FD3D12RayTracingDescriptorHeap -> FD3D12ExplicitDescriptorHeap、FD3D12RayTracingDescriptorCache -> FD3D12ExplicitDescriptorCache)
- マテリアル NaniteMaterialOverride は、クックから非表示にするために SoftObjectPtr を今後使用しません。代わりに新しい SkipOnlyEditorOnly クッキングを利用し、EditorOnly ObjectPtr を使用します。これにより、PostLoad() 中の同期の読み込みの問題を回避します。
バグ修正:
-
ビルド マシンジョブが数分でクラッシュするのではなくタイムアウトまでの 30 分間の回転を引き起こしていたため、実行中に D3D12 TerminateOnOutOfMemory がメッセージ ボックスを表示しないよう修正します。
-
GPU インスタンス カリングをデカール パスに追加します。これにより、デカールを含む HierarchicalInstancedStaticMeshComponent が単一インスタンスのみ表示する問題を修正します。
-
カスタム深度のサポートを Nanite ジオメトリ コレクションに追加します。
-
間接引数が実際にはプレーン バッファであるにもかかわらず、デバッグ シェーダーで間接引数が構造化されたバッファとしてアクセスされている RDG 検証を修正しました
-
PR #10647:FDynamicResolutionHeuristicProxy::RefreshCurrentFrameResolutionFraction_RenderThread() の RoundUpToVSyncError 値を修正します #contrib 10647
-
キューブ テクスチャの同期読み取り機能を修正しました
-
リード コンポーネントに遅れをとっているフォロワー コンポーネントを修正します。スキン メッシュ コンポーネントの動的データ更新は同時に起こります。つまり、フォロワー コンポーネントは、リード コンポーネントの前に更新できます。フォロワー コンポーネントはリード コンポーネントの現在のリビジョン番号に依存するため、動的データ更新でリビジョン番号を更新すると競合状態を引き起こします。したがって、アニメーション更新時はただちに現在のフレーム リビジョン番号の更新に戻し、現在のリビジョン番号の計算をサポートするため前のリビジョン番号変数を追加します。
古い内容:
- 今はどこにも使われていない RenderTargetTemp.h を削除しました。
ライティング
新機能:
-
レイ トレースによる透過処理のアルファチャンネルを修正し、ホールドアウトのサポートを追加します。アルファ チャンネルは他のパスのようにトラッキングされるようになりました (以前は一貫して機能していませんでした)。これは、RT 透過処理およびレイ トレーシング プライマリ レイ デバッグ表示の両方に適用します。
-
非推奨の RTGI 間接ライティング手法を削除します。すべての場合において Lumen はより優れたオルタナティブであり、今後サポートされるシステムです。
-
レイトレーシング:パス トレーサーで使用されるメソッドに基づいてレイトレーシング パス (透過処理および Lumen ヒット ライティング) で使用される新しいライト グリッドを実装します。新しいライト グリッドは前のシステムよりも各ライトの影響のローカライズに優れ、ライト ループが処理する必要があるライトの数を削減します。これにより、256 以上のライトのリファクタリングも可能になります (現在この制限に依存するコードはありません)しかし、グリッド セルごとに利用可能なライトの数は決まっています。「ライト グリッド占有」レイ トレーシング デバッグ モードを使用すると、起こっている場所を表示するのに役立ちます以下の CVars はメモリ使用量とパフォーマンスを管理するのに役立ちます。 r.RayTracing.LightGridResolution:ライトを保持する 2D グリッドの解像度 r.RayTracing.LightGridMaxCount:グリッドセルごとのライトの最大数 (シーンにあるライトの数がこれより少ない場合、代わりにその数が使用されます)
-
ローカル ライトから偶数/奇数のミップのみマークするため CVar を追加しました。これは、特により高いポリゴン/より大きい非-Nanite メッシュの新しいパフォーマンス負荷になる可能性がある、インスタンスの重複を減らすために使用できます。r.Shadow.Virtual.MarkPixelPagesMipModeLocal 偶数ミップ モード (1) は、一部のページのデフォルト モードと比較してインスタンスは減りますが解像度が増えます。つまり、インスタンス/頂点は減りますが、ピクセルは増えます。一般的に非 Nanite ジオメトリのパフォーマンスが勝ちますが、Nanite ジオメトリのパフォーマンス低下の可能性があります。奇数ミップ モード (2) はインスタンス および 解像度を減らすため、より高いパフォーマンスのメリットがありますが、解像度の顕著な損失の可能性があります。The Coalition の Pari より
-
「VSM のオブジェクト無効化のみ描画」と関連するコードを削除しました。これは長期間破損しており、現在は異なるビジュアライゼーションが利用可能です。
-
VSM で Nanite オーバードロー ビジュアライゼーションをサポートします。これは、暫定的で変更される場合がありますが、さらなる Nanite 関連の VSM ビジュアライゼーションの基盤となります。
-
Lumen/多数ライト HWRT で bCastShadows および bCastRayTracedShadow を尊重します。
-
モバイルでのライト トランスフォーム更新で必要な場合、ライト プリミティブ インタラクションの破壊/追加のみ行います。これは必要な場合のみ MDC を無効化することを意味しています
-
矩形ライト テクスチャへのサポートをボリュメトリック フォグに追加します。
-
r.Shadow.Virtual.SMRT.TexelDitherScale
に類似する VSMTexelDitherScale をライト シーン プロキシに追加しました。ライト単位でシャドウに適用されるディザ フィルタリングの量を制御します。 - ページ プールのオーバーフローを避けるため、ページ プール圧力に基づいてグローバル解像度 LOD バイアスを低減できる仮想シャドウ マップ「動的解像度」制御を追加します。
- 関連する新規 Cvars は以下のとおりです。 r.Shadow.Virtual.DynamicRes.MaxResolutionLodBias (変更可能な最大数量、デフォルトは 2) r.Shadow.Virtual.DynamicRes.MaxPagePoolLoadFactor (それを超えるとバイアスが適用を開始するページプールの充填要素、デフォルトは 0.85)
-
無駄なレイの数を最小限にするため、高ラフネスでのスペキュラ光源のサンプリングを向上します。
-
PR #11174:スカイライト シーン プロキシの更新のため、ファスト パスに LowerHemisphereColor を追加します #contrib 11174 #11174
-
ソートされたライト順に依存するのではなく、剪定されたライト グリッドに基づいて VSM シャドウ マスク スロットを割り当てます。これにより、シンプルなライトがリストの前にソートされスロットを無駄にする問題を避け、割り当てがライト順に対してより強固になります。
-
クラスタ シェーディングにライト チャンネルのサポートを追加します。これにより、クラスタ シェーディング パスをとおしてより多くのライトをバッチできるようになります。
-
VSM にライト チャンネルのサポートを追加します。
-
クラスタ シェーディングに矩形ライトのサポートを追加します。
-
光伝達をアクティブ化する前にユーザーがライトを可動に設定するよう強制するため、光伝達に EditCondition を追加しました。
-
半透明サーフェスに IES ATLAS サポートを追加します。
-
デフォルトの VSM ページのマーキングを 2x2 の歩幅に変更します。これにより、ページ マーキング パスのオーバーヘッドが低くなり、現在までのところアーティファクトは発生していません。
-
矩形ライトの後ろにあるシャドウ受信側ピクセルの不必要なページ マーキングと SMRT 動作をスキップします。The Coalition の Pari より
-
テクスチャが矩形ライト テクスチャ マネージャーから削除された場合の誤った参照カウントの減少を修正しました。
-
屈曲スクリーン空間シャドウをモバイル レンダラに統合しました。
-
クラスタ シェーディング パスに IES プロファイルへのサポートを追加します。
- デフォルト値 r.Shadow.Virtual.ForceOnlyVirtualShadowMaps を 1 に変更しました。VSM と相互性のないプリミティブはレンダリングされませんが、パフォーマンスとメモリが向上します。
バグ修正:
- インスタンス カリングが詳細ジオメトリ フラグを考慮しない (それゆえ小さいものすべてを粗いページにレンダリングする) r.SceneCulling 1 の問題を修正しました
- クリップマップのビジュアライゼーション カラーを絶対レベルを基準にし、クリップマップ バーチャル アドレス空間ビジュアライゼーション と一致するようにします
- Nanite のオクルードされたインスタンス バッファのサイズをスケーリングするため、CVar を追加します。これは、オーバーフローの適切な修正ではありませんが、CVar によりちらつき/シャドウの問題はこれが原因かどうかテストすることができます。
-
ヘア マスク シャドウのディレクショナル ライトの ShadowAmount へのサポートを追加し、ヘア マスク シャドウの誤ったシャドウ マス クチャンネル書き込みを修正しました。
-
2 の累乗ではないテクスチャのある矩形ライト フィルタリング ボーダーを修正しました。これにより、ATLAS がクリアされることがないために起こる、テクスチャのボーダーでの無効な色を修正します。
-
レイ トレース トランスミッション リークを引き起こすスクリーン空間ノイズ低減機能を修正します。 スクリーン空間レイ トレース シャドウ ノイズ除去のトランスミッションに特化した別のバイラテラル フィルタリング ウェイトを追加します。サブサーフェス プロファイル上のシャドウは他のマテリアルと同様に動作し、トランスミッションは別にフィルタリングされます。リファレンスと隣接ピクセルがすべてサブサーフェス プロファイルではない場合、空間フィルタリング ウェイトは、0 に設定されます。 提案:r.Shadow.Denoiser.PreConvolution を 2 に増加し、必要な場合、時間的蓄積によるボーダーラインの無視可能なトランスミッション アーティファクトを削除します。
-
SLW のディスタンス フィールド シャドウを修正します。
-
反射キャプチャ除去によりプリミティブ GPU の状態がダーティになる問題を修正します。
-
モバイル フォワード レンダラのオブジェクト単位/変調シャドウを修正しました。
-
DFAO で誤った結果が発生するバグを修正しました。
-
静的シャドウ マップがない場合に Nanite ジオメトリで非-VSM シャドウが不足する問題を修正しました。Nanite プリミティブは、静的マップのみではなく、静的、非静的、およびキャッシュされていないシャドウ マップに含まれるようになり、GPU の可動性と一致するプリミティブの選択に Nanite プリミティブ フィルタリングを使用するようになりました。
-
r.Shadow.Virtual.ForceOnlyVirtualShadowMaps=1 の場合にディスタンス フィールド シャドウと遠方のシャドウ カリングが正しく動作しない問題を修正しました。
-
新しいディスタンス フィールド ミップがストリームインした場合にディスタンス フィールド シャドウにポップする問題を修正しました。
- レイ トレーシング自動インスタンス化メッシュ バッチのハッシュ コリジョンを修正しました。
- まれに、レイ トレーシング自動インスタンス化コードにより異なるマテリアルが同一と検出され、誤ったアピアランスにつながる場合があります。これが最も顕著だったのは、レイ トレーシングをプライマリ レイに使用するパス トレーシングですが、レイ トレーシング ベースのどのようなパスにも起こり得ます。
-
マイナー アーティファクトを引き起こすディスタンス フィールド シャドウでの誤ったアップサンプリングを修正しました。
-
透過ライト グリッドの誤った矩形ライティングを修正します。
-
誤った ATLAS パッキングを引き起こす矩形ライト テクスチャ MIP の計算時のオーバーフローを修正します。
-
まれにグループサイズが 0 であるためにカプセル シャドウのダウンサンプリングがクラッシュを引き起こすバグを修正しました
-
r.HeightfieldShadowing 使用時のディスタンス フィールド シャドウの問題を修正しました。
- LinkedListCulling がオフの場合の FLocalLightData の OBB アクセスを解決します。LinkedListCulling がオフの場合 GMaxCulledLightsPerCell を返し、オンの場合 NumLocalLightsFinal を返す GetMaxLightsPerCell を追加します。LinkedListCulling がオフで使用された場合 OOB を引き起こす可能性のある GetNumLocalLights の呼び出しを GetMaxLightsPerCell と置き換えます
Lumen
新機能:
-
スタンドアローン Lumen の反射に複数バウンス反射のサポートを追加しました。
-
Lumen にパフォーマンス概要表示モードを追加しました。これは、専用の反射光線が必要なピクセルを可視化し、反射パフォーマンスの最適化に有用です。エディタ UI またはコンソール (r.Lumen.Visualize 2) のどちらからでもアクセス可能です。
-
Wave32 をサポートしているが Wave64 をサポートしていない GPU で高速にするため、ScreenProbeConvertToIrradiance に Wave32 ウェーブ Ops バージョンを実装しました。
-
プロジェクト設定に関して多重散乱近似へのサポートを追加しました
-
Lumen がランタイム時に無効にされた場合、Lumen GPU リソースをリリースします。
-
クリップマップの更新をオーバーラップし、初期カリング パスを統合することでをグローバル距離フィールドの更新を最適化しました。
-
破損した派生データのあるメッシュ カード遭遇時、アセット名を記録します。
-
PrimitiveIndex および PrimitiveInstanceIndex を単一の GPUSceneInstanceIndex に置き換えることで FLumenMinimalPayload サイズを最適化しました。
-
レイ トレース Lumen 反射および屈折の Lumen カードに半透明メッシュのキャプチャを追加しました。
-
ポストプロセス ボリュームにスクリーン空間トレース設定を公開しました
-
Lumen シーン ライティングのライト関数 ALTAS サポートを追加します。これにより、Lumen シーン ライティング中 (-0.1ms) に (互換性のある) LF のあるすべてのライトをバッチ処理することができます
-
Lumen 前面レイヤー反射の浮動小数イプシロン比較を浮動小数プレシジョン相対のものと置き換え、反射がカメラ距離とは関係なく同じように動作するようにしました。
-
ワールド空間放射輝度キャッシュによって引き起こされるリークを低減しました。
-
不必要なときに RAY_FLAG_FORCE_NON_OPAQUE を無効にします - 一部のトレーシング メソッドで裏面をスキップするため、サーフェスからの短い距離のみに使用されます。これにより、ハードウェア レイ トレーシングのある Lumen の速度がコンソールで 0.1-0.2 ms 速くなります。
-
一時的蓄積によって処理可能なランダム レイ方向をより小さいサブセットに制約することでノイズを目立ちにくい構造エラーに変えます。
-
使用されていない場合、レイ トレーシング ライト グリッドをビルドしないでください。これにより、ハードウェア レイ トレーシングが有効な場合、コンソールで最大 0.12 ms 節約できます。
-
Lumen カードの追加/削除を向上します。高速インデックス作成のため、トラッキング ロジックの大部分をビットフィールドを使用するよう変更します (2 倍/3 倍の向上)。
-
IES プロファイルがアトラス化され 1 つのパスでディスパッチできるようになったため、Lumen シーン ライティングが IES プロファイルを使用してライトをバッチ処理するよう変更します。LumenSceneLighting 中、100 の散乱した IES ライトで 0.1 ms 節約します。
-
ポスト プロセス ボリュームで「トレース反射への最大ラフネス」を公開しました。新しい CVar r.Lumen.Reflections.MaxRoughnessToTraceClamp は、スケーラビリティ目的でクランプするために使用できます。
-
シャドウ領域を明るくなりすぎないようライト関数がクランプされるよう修正しました。
-
配列成長負荷を削除するため Lumen メッシュ カードリクエスト割り当てを統合しました。これにより、UpdateSurfaceCacheMeshCard を最も悪い 54 ms から -> 14 ms、平均 28 -> 5 ms に低減します。
バグ修正:
-
Lumen シーン ライティングと大気の透過率更新間の競合状態を修正します。これにより、ディレクショナル ライト パラメータがアニメートされている場合、ちらつきを引き起こす場合があります (ディレクショナル ライト透過率をリセットしてしまいます)。
-
Lumen などの他のシステムも個別に使用している可能性があるため、ランドスケープをグローバル距離フィールドに組み立てるために DFAO を有効にする必要はありません。
-
一定の時間的履歴拒否を引き起こす、履歴シーン法線の不一致によるアーティファクトを引き起こす「r.Lumen.ScreenProbeGather.Temporal.RejectBasedOnNormal 1」を修正しました。
-
雲の影のサポートを修正しました
-
ヒット ライティングとともに SM5 シェーダーを使用する場合のクラッシュを修正しました。ヒット ライティングは SM5 ではサポートされていない ComputeDirectLighting 内の Wave Ops を使用します。
-
Lumen 透過処理ボリュームのみがハードウェア レイ トレーシングを使用している場合のクラッシュを修正しました
-
ポスト プロセス ボリュームをとおした スケーラビリティ レベルの切り替えまたは GI 品質の切り替え時の古い間接ライティングのバグを修正しました。
-
スクリーン空間反射トレーシングの不足する法線バイアスを修正します。
-
タイル分類が無効な場合の Lumen スクリーン プローブ ギャザーを修正しました。
-
ランドスケープの Lumen カードを修正しました。これにはランドスケープ固定グリッド頂点ファクトリが必要になりました (これは、無関係のバグのためエディタで動作していました) * PSO 事前キャッシュにもこれらのシェーダーを加えました
マテリアルとシェーダー
新機能:
-
[シェーダー] - エディタのファイル保存機能でシェーダーの再コンパイルを実行します。「- usf/ush/h」ファイルの //Engine/Shaders/... の変更を監視するため、ディレクトリ ウォッチャーを追加します。- ファイルが変更された場合、[
recompileshaders /Engine/Shaders/Private/PostProcessGBufferHints.usf] コマンドを発行します。- このコードは WITH_EDITOR 専用である必要があります。- これはオプトイン動作で、r.ShaderCompiler.RecompileShadersOnSave=1 でオンにすることができます -
CVar r.Shaders.WarningsAsErrors を修正し、値が 1 の場合グローバル シェーダーにのみ適用 (そして、値が 2 以上の場合のみすべてのシェーダーに適用) するようにします。デフォルト値は 0 (オフ) のままですが、これにより、グローバル シェーダーでシェーダー警告を調査するためのより良いメカニズムを得ることができます。
-
[シェーダー][最適化][EditorInitiative] - 描画に使用する すべての シェーダーのマテリアル DebugGroupName を計算するのではなく、マテリアルごとに 1 度 計算し、キャッシュします。- TryGetShader は、不足するシェーダーのシェーダー ジョブを送信します。シェーダーが不足していた場合、各シェーダーのマテリアルの DebugGroupName を計算します。- 代わりにこれを 1 度キャッシュして、FMaterial に保存するようにしました。テスト シナリオでは、レンダリング スレッドで大幅なスピードアップがみられました。- マップを開いたあと描画コマンドのビルドで重かった平均レンダリング フレームを最大 7 倍高速化します。- 最も悪いケースのレンダリング フレームで最大 4 倍高速化します。
-
ホールドアウト:ディファード レンダラのホールドアウト フラグを実装します。ホールドアウト フラグが有効な場合、オブジェクトはバックグラウンドに一致するアルファのある黒色でレンダリングします。これはベースパスの追加条件とともに実装されました。ゲームへの影響を最小限にするため、プロジェクトにアルファ チャンネルのポスト プロセスがあるよう設定されている場合にのみ、ロジックはベース パス ピクセル シェーダーに追加されます。
-
エラー CVar としての警告をプラットフォームごとに設定できるようにします
-
[Shaders][Material エディタ] - 一般的な、データ ドリブン キー、値シェーダー統計情報を追加します。- シェーダー統計は、単にシェーダーごとに保存されるキー (FName) と値 (POD タイプ) です。- シェーダー統計情報は、以下の POD タイプに対応できるバリアントです:ブール、浮動小数、int32、uint32 - 実装がそれほど容易ではないため、現在文字列をサポートしていません (変換とシェーダー マップで必要なメモリ画像へのシリアル化をサポートする特別なケースコードが必要でした) - プラットフォーム固有の統計を表示するマテリアル エディタに別のシェーダー統計情報横列を追加します。- プラットフォーム統計情報は、ユーザーに表示される、カンマと改行で区切られた文字列に変わります。- 出力ファイル形式を (統計を含むよう) 変更するため、シェーダー出力ワーカー バージョンをバンプします。- シェーダーコンパイラ出力は、統計を
TMap<FString, FShaderStatVariant>として保存します。シェーダー コンパイラ ワーカーとメイン プロセス間の FName にまたがるシリアル化は動作していませんでした (異なる名前テーブル)。- シェーダー マップに統計を保存しシリアル化する場合、FName に変換します。(FShader::FShader()を参照してください) -
[シェーダー] - ストリップされていない、オリジナルのシェーダー ソースを破棄し、メモリに保存します。小さなプロジェクトの LLM タグ ShaderCompiler によってトラッキングされているメモリを最大 2 倍節約します。Lyra では、クック中、最大 600 MB 節約しました。- シェーダー ソースが必要な場合 (エディタ内のマテリアル統計など)、まだデータを保持しています。エディタはオンデマンドでシェーダーをコンパイルし、DDC からの読み込みを試みないため、キャッシュ汚染の心配はありません。- シェーダー デバッグ情報もこの情報を必要とするため、デベロッパーがこれを有効にして実行しているのであれば、維持します。- オリジナル ソース コードを保存する必要があるかどうかを決定するヘルパー関数をジョブ入力に追加しました。NeedsOriginalShaderSource()
-
[シェーダー][ODSC] - マテリアル関数を保存後、すべてのマテリアルを再コンパイルするとき、オン デマンド シェーダーの再コンパイルを実装します。- テスト ケースでは、コンパイルされたシェーダーを 13,000 から 300 に減らすことができました - シェーダー ジョブをビルドしてサブミットする必要がないため、UMaterialFunctionInterface::ForceRecompileForRendering で最大 4 秒節約できました。
-
UMaterial のカテゴリに優先順位を追加します。順位は、最も重要なものから整理し、類似した分野をグループ化した以下のとおりです。 - マテリアル - Nanite - 透過セルフ シャドウイング - 屈折 - ワールド位置オフセット - ポスト プロセス マテリアル - モバイル - フォワード シェーディング - 物理マテリアル - 物理マテリアル マスク - 使用法 - Lightmass - プレビュー - インポート設定
-
%s位置パラメータの代わりに名前付きパラメータ%{num_tex_coords}を使用するため、MaterialTemplate.ush をトランスフォームしました。 - 導入されたマテリアル平行移動 DDC キャッシュ。
- この更新は、マテリアル平行移動出力のためのキャッシュ システムを導入します。現在、マテリアルが移動されたあと、あとで使用するために中間結果は派生データキャッシュ (DDC) に保存されます。マテリアルの平行移動が必要な場合、システムはまず DDC に基本マテリアル、パラメータ セット、プラットフォーム固有の情報の既存の組み合わせのクエリを行います。このデータが存在する場合、負荷の高い平行移動処理の必要を回避し、シェーダー生成からマテリアル平行移動を分離して、保存した結果を取得します。 この更新の主なメリットは、マテリアル テンプレート ソース ファイルや他の依存するシェーダー ファイルの更新でマテリアルを再び平行移動する必要がなくなったことです。キャッシュ済み平行移動結果を使用してマテリアル シェーダーを正確に生成することが可能です。これにより、マテリアル文字列生成は常に最新の入力シェーダー ファイルを使用するようになります。
-
動的レイ トレース透過シャドウを追加します (デフォルトではオフ)。ハイエンド PC で利用可能です。1.半透明マテリアルがシャドウをキャストしないところで Lumen と合致させるため、シャドウ用の半透明マテリアルをトレースしないよう、デフォルトを変更します。2.「r.RayTracing.Shadows.Translucency 1」を使用して、動的レイ トレース透過シャドウをオンにします。シャドウ期間は、オパシティに基づいた蓄積可視性です。
- UE 5.4 において、クック処理のシェーダーのコンパイル関連の動作が実行される、シェーダー コンパイル ジョブがキューに入れられる方法と重複する可能性のあるシェーダー ジョブを特定してキャッシュする方法をかなり大幅な見直しを行いました。このパイプラインのすべての部分を最適化するためにも多大な努力を払いました。この作業の結果は以下のとおりです。
- 重複除外の機能が向上したことにより、コンパイルされるシェーダーが約 30% 少なくなります (内部プロジェクトからの数、異なる場合があります)
- シェーダーのコンパイル作業の送信と処理を行う場合のゲーム スレッドのオーバーヘッドが大幅に減少します
- シェーダーのプリプロセシングが大幅に速くなります
- 特にシェーダーの無効化が起こった場合、上記すべてはプロジェクト クック時間の飛躍的な改善に貢献しています。私たちが内部で取り組んでいることを簡単にご紹介します。
- シェーダー プリプロセシングおよびデッドストリッピングは、コンパイル処理の最初の手順ではなく、ジョブ送信の一部として、クッカー/エディタ処理で実行されるようになりました。
- 個別シェーダーのキャッシュ キー (既存の処理中ジョブキャッシュおよびシェーダーごとの DDC エントリに使用) は、このプリプロセシングおよびデッドストリッピング済みのソースに基づいて構成されます。
- 上記の結果、シェーダーごとの DDC クエリが有効な場合、個別のジョブの結果はすでにキャッシュにある可能性があるため、シェーダーマップが無効化された場合に必要なシェーダー コンパイル作業の量を大幅に減らすことができます。シェーダーごとの DDC がない場合でも、既存のインメモリ ジョブ キャッシングの仕組みによるジョブの重複排除の向上により、改善がもたらされます。5.4 では、シェーダーごとの DDC はエディタ オンデマンド シェーダー コンパイル使用法でのみデフォルトで有効であることに留意してください。しかし、5.4 の実験的機能として、クック中に DDC をとおして個別のシェーダー コンパイル結果をキャッシュするアビリティを追加しました。これにより、ZenServer をとおして共有 DDC と合わせて使用された場合、クック処理に及ぶシェーダーマップの無効化の影響を低減しました - 内部プロジェクトでの使用では、桁違いに多くのシェーダーをコンパイルするクックの頻度を低減しました。この機能を試してみたい場合は、以下の CVars を有効にしてください。r.ShaderCompiler.PerShaderDDCCook=true r.ShaderCompiler.JobCacheDDCEnableRemotePolicy=true。UE 5.5 ではこれをデフォルトで有効にする見込みです。この機能のファイル共有ベースの共有 DDC との併用は推奨されないことに留意してください。ファイルシェアからのデータのプッシュ/プルのオーバーヘッドはメリットを上回ります (共有された Zen サーバーはより高性能です)。プリプロセスされたシェーダー ジョブのキャッシュ機能には以下の注意事項があることに留意してください。
- シェーダーごとの DDC が有効な場合 (ODSC 経由またはその他)、シェーダー ソース ファイルへの変更がコンパイルをトリガーすることを補償できません。空白、コメント、デッドコードはすべて、特定のシェーダー コンパイル ジョブを識別するために使用されるキーの変更を生じさせません。シェーダーの無効化を強制するには、#pragmas に基づいた新しい仕組みを使用する必要があります。使用例は、ShaderVersion.ush を参照してください。このファイルはまだすべてのシェーダーの強制的な再コンパイルに使用できます - しかし、プリプロセシング中に見つかったそのような pragma はすべてシェーダー ジョブのキャッシュ キーとして使用するハッシュに自動的に含まれるため、この仕組みでさらに詳細でターゲットを絞った無効化を行うことも可能です。
- コンパイラに渡されるシェーダー ソースはすべてのコメント、ライン ディレクティブ、空白行が削除されるようになりました。その結果、シェーダーにデバッグ情報が生成される場合、デバッグツール (RenderDoc とフレンド) をとおして検査するとき、ファイル名の関連は利用できません。これが問題になる場合、これを制御する機能は CVar 切り替えがあり、r.ShaderCompiler.PreprocessedJobCache=false をとおしてローカルで無効にできます。
-
入力パラメータに基づいてシェーダー シンボル ファイルのサブセットを生成するための CookShadersCommandlet は、ShaderSymbols.info ファイルからフィルタリングすることも、直接マテリアル名でフィルタリングすることもできます。
-
プロジェクト エンジン設定 UI に仮想テクスチャ物理プール設定を公開します。設定のライブ編集を有効にし、変更時に物理プールを再作成します。プールがオーバーサブスクライブされるたびに自動拡大物理プールに構成オプションを追加します。構成オプションはエディタのみで適用します。クックされたビルドで同じことを行う、追加のコンソール変数「r.VT.PoolAutoGrow」があります。
-
メモリ不足状態でのシェーダー コンパイル ワーカー メモリ使用量の合計のログ記録を追加しました
-
レイトレーシングをサポートしないプラットフォームの RayTracingQualitySwitch マテリアル ノードにレイトレースされた入力をコンパイルしないでください
-
D3D 診断バッファを出力読み取り可能アサートメッセージに変更します (ファイル/行/条件/メッセージ)。check() / checkf() とともに使用してください
-
DirectXShaderCompiler (DXC) は、残りのすべての SPIR-V シェーダー バックエンドでデフォルトで有効にされています。
-
「デフォルト」のオーバーレイ マテリアル オプションをスケルタルメッシュ アセットに追加しました。割り当てられた場合、コンポーネントがオーバーライドしないと、このオーバー レイ マテリアルが使用されます。
-
複数処理クックの実行時に適切にマテリアル統計を集計します。この統計は、シェーダー統計をレポートする際に報告されます。=== マテリアル統計 (すべてのクック処理で集計された) === クックされたマテリアル:1583 平行移動されたマテリアル:1275 マテリアルの平行移動時間:1.70 秒 - クックされたマテリアル、平行移動されたマテリアル、マテリアルの平行移動時間は集計され、分析に報告される統計です。- 簡素化のため、現存のシェーダー統計集計にマテリアル カウンター集計を便乗します。- 古くなった、または影響がないマテリアル クック統計を削除しました。ほとんどの場合、これらの値は非常に低くクックに関係ありません。
-
Nanite の移動での使用を意図する新しいランタイム仮想テクスチャ「移動」形式を追加しました。これは、16 ビット UNORM テクスチャを使用し、圧縮設定時は BC4 を使用します。
-
[シェーダー] - メモリ不足問題を診断するため、LLM マーカーをシェーダー コンパイルのトラック メモリに追加しました。- 装置:(FShaderCompilingManager::SubmitJobs、FShaderCompilingManager::ProcessAsyncResults、GlobalBeginCompileShader、FShaderJobCache::FindOrAdd)
-
DefaultMaterial とグローバル シェーダー エラーが致命的かどうかを制御するトグル r.AreShaderErrorsFatal を追加します。- これは、現在の動作である、
Trueがデフォルトです。- デフォルト マテリアルやグローバル シェーダーが失敗した場合、ただ止めるのではなく_すべて_ のシェーダー コンパイル エラーを確認したい状況で、致命的エラー (およびただのエラー) をオフにすることが目的です。 -
[シェーダー] - シェーダー デベロッパー モードがオンの場合、マテリアルからのシェーダー エラーは (マテリアル グラフではなく) ソース コードが原因だと想定します。- こうすることでエラー時のマテリアル シェーダーのシェーダー再試行が機能します (現在はグローバル シェーダーとデフォルト マテリアルでしか機能しません)。Todo:修正後もエラーを報告し続け、コンパイルの再試行の原因となるバグを修正します。
-
この変更は、パフォーマンスの大幅な向上とシェーダー プリプロセシング時間により、シェーダー プリプロセシングの連鎖を修正し、ワイド文字と ANSI の切り替えを防ぎます。
-
コンソール変数「r.VT.Support16BitPageTable」を使用して、仮想テクスチャ 16 ビット ページ テーブルのサポートを構成可能にします。デフォルトは、既存の動作であるオンです。
-
ランタイム仮想テクスチャの低解像度ストリーミング ミップのベイク時、書き込み固定色のサポートを追加しました。これは固定の「デバッグ」色を置き換え、デバッグ用途以外でこの機能を使用できるようにします。デバッグ ミップ カラーを使用してランタイム仮想テクスチャ ページを生成するための固定色サポートを使用するコンソール変数 r.VT.RVT.MipColors を追加しました。これは、予想より高い解像度ミップのマテリアル サンプリングのデバッグ問題に役立ちます。ランタイム仮想テクスチャ ボリューム境界のカスタム拡大距離のサポートを追加しました。
-
コンパイラに渡されたシェーダー ソースに含まれるのではなくデバッグ USF ファイルのみに追加されるように、すべての定義名と値を含むすべてのシェーダーへのコメントを追加するコードを変更しました。
-
すべてのシェーダー形式がプリプロセシングの大部分に共通する関数を実行するようにシェーダー プリプロセシング コードを大幅にリファクタリングしました。独自の実装があるものは、(通常、ジョブ作成時には知られていない追加の定義を設定して) 共通のパスから些細な点で外れるだけです。
-
コマンド ライン オプションをクック サーバーに追加し、未解決パッケージのクックをスキップします。- これは、
-odscを追加します。いまのところは未解決パッケージをスキップするだけです。- クックされたパッケージではなく、ODSC 再コンパイルシェーダー リクエストを処理するためだけにクック サーバーを起動する場合のみに使用されます。 -
マテリアルが使用しない場合、頂点シェーダーでインスタンスごとのパラメータ (フェード量、表示/非表示、ディザ) を計算しないでください
-
ShaderMinifier - さまざまな一時的割り当てに MemStack を使用します
-
ワールド空間入力または出力のあるいくつかのマテリアル式に平行移動したワールド空間 (カメラ関連) オプションを追加しました。平行移動したワールド空間の使用は絶対的ワールド位置よりも高性能で高精度です。
-
ShaderMinifier - BuildLineBreakMap、SkipUntilNonIdentifierCharacter、ExtractIdentifier、およびその他いくつかを最適化しました パース中にライン ディレクティブ マップを生成します CityHash の代わりに xxHash を使用します ExtractIdentifier で FStringView 演算子 [] を避けます 適切な場合、空の代わりに TArray リセットを使用します SkipUntilNonIdentifierCharacter をベクター化します ExtractBlock をベクター化します 行末検索をベクター化します コピーを避けるため、最終出力の FStringBuilderBase の代わりに直接 FString を使用します
-
新しい「ワールド位置オフセットを常に評価」マテリアル プロパティを追加し、強制的にワールド位置オフセットが常に評価されるようにします。つまり、コンポーネントの「ワールド位置オフセットを評価」または「ワールド位置オフセットを無効にする距離」では無効にすることは できません。
-
ローカル シェーダー コンパイルするワーカーのおおよそのコミット済みメモリ使用量を取得するため、API を追加しました
-
ピクセル シェーダーに必要ない場合、インターポレータから非-WPO 位置を削除します
-
分析をクックするためシェーダー タイプ順列と頂点ファクトリ タイプ順列の数を報告します。- すべてのシェーダータイプ順列を集計し、
Shaders_NumShaderTypePermutationsとして報告します - すべての頂点ファクトリタイプ順列を集計し、Shaders_NumVertexFactoryTypePermutationsとして報告します -
recompileshaders listtypesコマンドを実装します。- これにより、エンジンのすべてのシェーダー タイプおよび頂点ファクトリ タイプのリストがダンプされます。これは cvs 形式でダンプされ、クラス名およびシェーダー ファイル名を含みます。 - このリストは、(ファイル名が必要な場合) 単一シェーダーコンパイルするため他のrecompileshadersコマンドと組み合わせると便利です。- フォーマットと空白のマイナーな修正です。例:Cmd: recompileshaders listtypes ShaderTypeName, Filename FHardwareVideoDecodingYCoCgAlphaPS, /Plugin/WmfMedia/Private/MediaHardwareVideoDecoding.usf FHardwareVideoDecodingYCoCgPS, /Plugin/WmfMedia/Private/MediaHardwareVideoDecoding.usf FHardwareVideoDecodingY416PS, /Plugin/WmfMedia/Private/MediaHardwareVideoDecoding.usf ...VertexFactoryTypeName, Filename TWaterVertexFactory< true>, /Plugin/Water/Private/WaterMeshVertexFactory.ush TWaterVertexFactory< false>, /Plugin/Water/Private/WaterMeshVertexFactory.ush FNiagaraSpriteVertexFactory, /Plugin/FX/Niagara/Private/NiagaraSpriteVertexFactory.ush FNiagaraRibbonVertexFactory, /Plugin/FX/Niagara/Private/NiagaraRibbonVertexFactory.ush FNiagaraMeshVertexFactory, /Plugin/FX/Niagara/Private/NiagaraMeshVertexFactory.ush FVectorFieldVisualizationVertexFactory, /Engine/Private/VectorFieldVisualizationVertexFactory.ush -
DefaultMaterial のための人が読み取り可能な DDC キーを表示します。- これはストリーム間の不一致の DDC 問題のデバッグと診断を補助するためです。
-
クリアのないデフォルト SSR にタイル サポートを追加します。1.
r.SSR.TiledComposite 1を使用してタイリング済み SSR を有効にします (デフォルトではオフ)。2.SSR が有効な場合、r.SSR.TiledComposite.Visualize 1を使用して現在のタイリング済み SSR 表示します -
カスタム HLSL ノードの代わりに MaterialExpressionBounds ノードを使用するようボリューム テクスチャ ビジュアライゼーション マテリアルを向上しました。
-
adhoc 文字の代わりにシェーダーのオプションのデータにアクセスするため、強く型付けされた EShaderOptionalDataKey を追加しました
-
グローバル シェーダー コンパイルの失敗のエラー報告を改善しました。そのような失敗が起きた場合、シェーダー タイプ、順列、デバッグ情報パスが印刷されたエラー メッセージに含まれるようになりました。
-
フル PDB 情報の代わりに単一 ShaderSymbols.info を生成する r.Shaders.SymbolsInfo オプションを追加します。PDB 情報が必要だがフル シェーダー PDB が非実用的に大きい場合に役立ちます。
-
単一のノードでオブジェクト ローカル、インスタンス ローカル、およびスキニング前ローカル バウンディング ボックスを公開するため新しい「境界」マテリアル式を追加しました。
-
ランタイム仮想テクスチャを無効にする場合、すべてのページのマッピング解除しない機能のサポートを追加しました。これまでの動作ではロックされたルート ページのマッピングを維持し現在のフレームで作成するだけでした。再マッピングをリクエストする GPU フィードバックを得るには数フレームを要するため、他のすべてのページのマッピングを解除するとちらつきが起こりました。この変更ではコンソール変数「r.VT.RVT.DirtyPagesKeptMappedFrames」を追加し、8 をデフォルトにします。これによって設定された前のフレーム番号に GPU フィードバックがあったページはマッピングされたままですが、更新のためキューに入れられます。これを 0 に設定すると古い動作が得られます。現在のフレームで処理されず、他のマッピングされていない更新とともに時間切りされるため、マッピング更新のためキューに入れられたページの動作も変わります。
-
最後に統計の記録を試みてからさらにシェーダーをコンパイルした場合、シェーダー コンパイル統計のみを記録します。- 一定間隔で印刷も行われます (CVarShaderCompilerStatsPrintoutInterval によって制御されます) - インターバルが始まり、コンパイルされたシェーダーの数が前回と異なる場合、印刷します。
-
Nanite をサポートしないプラットフォームの「Nanite パス」マテリアル式に Nanite 入力をコンパイルしないでください
-
スタートアップからの平行移動したマテリアルのリストとその平行移動時間を含む、平行移動の MaterialTranslationLog.txt へのマテリアル平行移動のログ記録を導入しました。
- ソース シェーダー ファイル名はプレースホルダーを使用する代わりに dxc に反映されます
- これは、サードパーティ プロファイラを使用する場合の可読性を向上します
-
ランタイム仮想テクスチャ ボリュームはプラットフォームごとに有効にできるようになりました。これは、マテリアルがプラットフォームごとのランタイム仮想テクスチャのサンプリングを無効にする場合、必要ない物理プール割り当てのオーバーヘッドを削除します。ランタイム仮想テクスチャ ボリュームは、Nanite がオンの場合のみ有効にできるようになりました。これは、Nanite ランドスケープ移動の新しい Nanite のみのユース ケースに役立ちます。
- 「可変レート シェーディングを許可」のチェックボックスを [Material (マテリアル)] -> [Advanced (詳細設定)] のマテリアルの詳細に追加しました。この設定はデフォルトではオンです。
- チェックを外した場合、マテリアルはすべての可変レート シェーディング、描画ごと (ティア 1) および画面スペース (ティア 2) の両方からオプトアウトされます。
- マスクされたブレンド モードを使用するマテリアルは、デフォルトでオプトアウトされます
- 物理空間を使用して割り当てられた仮想テクスチャがある場合のみ、仮想テクスチャ物理テクスチャ プールを割り当てます。これは、ストリーミング仮想テクスチャがロードされたが未使用の場合、不必要なメモリ割り当ての一般的なケースを削除します。
バグ修正:
-
シーン キャプチャで 0 に設定された r.SubsurfaceScattering がアルファ チャンネルで誤った値を引き起こす問題を修正しました。
-
非常に重いストリーミング中に断続的なクラッシュにつながる可能性のある仮想テクスチャ リリースでのスレッド化競合状態を修正しました。
-
MaterialFunction 式コレクションで、Null 式を処理する方法を改良しました。 新しいシェーダーマップで DDC を肥大化させないため Null 式が MaterialFunction::PostLoad() で検出されたときの GUID の無効化が決定的になりました。 関数が破損しており確認と再保存が必要なことをユーザーに通知するメッセージ ボックスを、MaterialFunction の保存に追加しました。
-
CanPasteHere のクラッシュを防ぐための nullptr チェック。
-
FTargetPlatformManagerModule::ShaderFormatVersion をスレッド セーフにします
-
ランタイム仮想テクスチャで低ミップが削除され低解像度ミップ ストリーミング テクスチャが使用されている場合の誤ったミップ ストリーミングとアサート発射を修正しました。
-
サブサーフェス プロファイルの基本色を使用する半透明マテリアルの後ろにある場合、アーティファクトが発生する問題を修正しました。
-
シェーダー デバッグの「直接コンパイル」モードを修正しました。その他のシェーダー デバッグ情報とダンプされたデバッグ USF ファイルは、正しく設定するために脆弱なコマンドライン パラメータに依存するかわりに環境のシリアル化されたフォームを含むようになりました。
-
この変更により、エンジンのスタートアップ時に 1 度すべてのパラメータ構造体に対してパラメータの強力なハッシュを構築することで、シェーダー パラメータ メタデータが DDC キーに影響する方法が見直されました。これにより、シェーダー パラメータ構造体がコードで変更された場合 (特に同時に HLSL コードへの関連する変更がない場合) のシェーダーが正しく無効化されないバグが完全に修正されるはずです。
-
1x MSAA カウント数で MSAA 使用時にマスクされたブレンド モードを使用するマテリアルが非表示になる問題を修正しました。
-
ShaderMinifier ExtractBlock() のライン ディレクティブを処理します * シェーダー コンパイル エラー/警告での報告ライン番号を修正します
-
プレビュー プラットフォームが有効時にグローバル シェーダー ジョブがコリジョンすることに起因するバグを修正しました。これがプレビュー時のグローバル シェーダー不足の原因でした。
-
コンソール変数 r.VT.PoolSizeScale を修正し、ランタイム時に修正でき、プールがただちに調整されるようにします。
-
マテリアル インスタンスで「ピクセル アニメーションがある」をオーバーライドしてもエフェクトがない場合がある問題を修正しました。
-
カスタム マテリアル式の変更がキャッシュされたマテリアルを更新しない問題を修正しました。
-
コードで生成されたシェーダー BRDF ヘッダ ファイルが、シェーダー ソース ファイル情報を読み込み、キャッシュする前に発生するように修正しました。この順番が逆に発生したことで、コンパイル ジョブが送信されたときこれらのヘッダが有効期限切れになる可能性がありました。
-
関数入力が見つからない場合に FMaterialEditorUtilities::GetVisibleMaterialParametersFromExpression で発生するクラッシュを修正しました。
-
CompileDebugViewModeShaders() をリファクタリングし、エディタのハング状況を解決してマテリアル シェーダー エラー チェックを含むようにしました。
-
最大描画距離が負の値に設定された場合、オーバーレイ マテリアルのレンダリングを正常に無効にします
-
FindInputdByName() に null ポインタを追加します。
-
ODSC はリクエストがある場合ビルドさせてしまう一方で、シェーダー取得時に ShouldCache 呼び出しがバイパスされ、クックされたビルドにシェーダー タイプが不足する可能性がある問題を修正しました。ShouldCache はすべてのケースで尊重されるようになったはずです。false を返す場合、ODSC がある場合もない場合もシェーダーが不足します。
-
外見がぼやけるランタイム仮想テクスチャ形式「基本色、法線、ラフネス」を修正します。これは BaseColor テクスチャが sRGB に設定されていなかったためです。
-
マテリアルを開くと UMaterialExpressionNamedRerouteUsage::CompilePreview がクラッシュする問題を修正します。
-
デバッグ情報が有効な場合、PC DXC シェーダーに出力されるバッチ ファイルを修正しました (これらのバッチ ファイルは、ShaderCompileWorker 経由ではなく、直接 DXC シェーダー コンパイルを実行するために使用できます)。
-
テクスチャ サンプルの UV 入力にノードを接続するときに発生するクラッシュを修正します。
-
SM5/6 シェーダーでレンダリングする際、ランタイム時に使用可能にもかかわらず、プロジェクトにオプションとして ES31 シェーダーがある場合、髪の束が Windows でクックされるバグを修正しました。
-
シェーダー ハッシュの Verbose ログ記録が決定論的になるように修正しました - FSHA1 構造体の一部は意図的に未初期化と思われますが、この構造体のさらなるハッシングは意味をなしません。代わりに、各ファイルの後で増分状態をコピーし「最終」ハッシュを生成するようにしました。これは、そのファイルだけのハッシュではなく、そのファイルまでのすべてのファイルのハッシュであり、完璧ではありませんが、本当の非決定性問題を特定するには十分です。
-
参照されたパラメータ コレクションのロードに失敗したとき (もう存在しない場合など) のクラッシュを防ぐため、FHLSLMaterialTranslator::GetMaterialEnvironment() に Null チェックを追加しました。
-
テクスチャ サンプルの UV 入力にノードを接続するときに発生するクラッシュを修正しました。
Nanite
新機能:
-
Nanite テッセレーション:Nanite メッシュに適用されるマテリアルに動的ビューに依存するテッセレーションを有効にできるようになりました。Nanite テッセレーションを有効にすると、マテリアルの新しい移動出力を通してピンサーフェスを動的に移動できます。
-
オプションでコンピュート シェーダーに暗黙的派生物 (画像サンプル、DDX、DDY など) が必要かどうかを検出する RDNA 1 & 2 ISA パーサーを実装しました。一部のシェーダーは CFLAG_ExplicitDerivative によってマークされ、シェーダーが派生物を明示的に処理することを優先することを示すことができます。これは、サポートするプラットフォーム上で、コンパイルされた ISA をパースし、暗黙的派生物が必要な指示があるかどうかを検索するようシェーダー コンパイラに指示します。見つからない場合、シェーダーは NoImplicitDerivative で装飾され、シェーディング クワッドなどを無視しても安全であることを示します。
-
Nanite CS マテリアルへの大規模な CPU 最適化 (シーンへの追加、およびフレームごとのディスパッチ)。さらに、キャッシュの一貫性、メモリ削減、より保守性の高いコードを含み、また、FLightCacheInterface* やライティング ポリシーのようなものを明示的にハッシングするのではなくシェーダー バインディングをハッシュする (動的インスタンス化ハッシュ) 重要な修正も含みます。LCI の大部分が同じライト マップ リソース/定数を指すことになった場合でも、静的ライトのような機能が有効な場合、前のロジックはシェーディング ビンの数を展開します (2-3 倍)。この変更は、BuildShadingCommand の大部分を並列化し、FNaniteShadingCommand から前面読み込み済み TPimplPtr を削除し、代わりに連続キャッシュラインに重要なデータを維持するためパスの特定メンバーの周辺に配置します。
-
Nanite シーンのための著しく最適化された InitView および ComputeRelevancy (CitySample のレンダリング スレッドで最大 8 倍高速) - 有効にするには Nanite 計算マテリアルが必要です。== デフォルトではオフで、広範なテストを保留中 (有効にするには r.Visibility.SkipAlwaysVisible=1) すべてのプリミティブ配列は、「テスト済み」対「常に表示」のパーティションでソートされたままになり、それから引き分けとしてプリミティブ コンポーネント ID を使用し決定性を向上するため、キャッシュの一貫性のためのプロキシ タイプによって内部でソートされます (FPrimitiveArraySortKey の新規実装) 「テスト済み」対「常に表示」のパーティションの分割位置は、(配列のスキャンとは対照的に) わずかなループのイテレーションのみを使用して TypeOffsetTable から非常に効率的に計算され、Scene.PrimitivesAlwaysVisibleOffset に保存されます (常に表示のパーティションがない場合、または最適化が無効な場合、~0u) パーティションの分割位置は次の完全な DWORD に合わせます - これは、「テスト済み」プリミティブと「常に表示」プリミティブにまたがる単一 DWORD を持つことを避け、ロックなしの同時計算をより効率的にするためです。これは、少数 (32 より少ない) のプリミティブを常に表示からテスト済みパスにプッシュしますが、大した問題ではありません。FPrimitiveSceneProxy にはどのパーティションにソートされるかを決定する bIsAlwaysVisible フラグ (デフォルトは false) があります。Nanite はこの値を Nanite::FSceneProxyBase::SupportsAlwaysVisible() で決定します 数多くの場所が 0...NumPrimitive ではなく 0...StartOfAlwaysVisible 範囲からのみイテレートするようになり、テスト済みプリミティブの数を大幅に減らしました。r.Nanite.OptimizedRelevance=1 は数年前から実装されているため、この最適化では !WITH_EDITOR ビルドにおける関連性の最適化が実装され、これによる前提に依存します (r.Nanite.OptimizedRelevance はベイクダウンされ、Cvar は削除されました) FrustumCull を通過する Nanite プロキシに (Nanite でサポートされてさえいない) フェード距離のテストをもう行わないため、IsUsingDistanceCullFade は強制的にオフになりました 新しい UpdateAlwaysVisible タスクが (必要に応じてレイ トレーシングを待機する) FrustumCull の前に起動し、それから FrustumCull はこの新しいタスクを待機します。このタスクは、常に表示プリミティブの PrimitiveVisibilityMap を入力する役割、また TLAS のプリミティブごとのレイ トレーシング カリングのテストをする役割を担います 初期ビューの統計には、常に表示プリミティブの処理に費やしたスレッド時間 を表示する、追加の「常に表示」タイマーが含まれるようになりました (主に TLAS のレイ トレーシング カリング テスト) - ほとんど非同期なため、ウォール時間の尺度ではありません (プレパスなど他のメソッドと一致させるため) FDeferredShadingSceneRenderer::IsNaniteEnabled() -> ShouldRenderNanite() に名前を変更し、FComputeAndMarkRelevance タスクでチェックできる仮想の中の基本 FSceneRenderer に移動しました レガシーおよび破損した r.Visibility.PrimitiveCull.SkipNanite の CVar とロジックを削除しました FPrimitiveSceneInfo::CacheNaniteMaterialBins はシェーディング パイプライン全体に渡ってマテリアル関連度を計算し、(Nanite には尊重されるビューごとの関連度テストがないため、ビューに依存しない) 統合されたプリミティブ ビュー関連構造体に統合されるようになりました 統合された Nanite 関連度は、(統合した関連度を計算する) CacheNaniteMaterialBin タスクの終了を待機したあと FComputeAndMarkRelevance::Finalize() の最後で FViewInfo に統合されるようになりました コンパイラが追加の最適化を実行できるよう GetData() の代わりに FrustumCull および UpdateAlwaysVisible タスクが RESTRICT を使用するよう変更しました Nanite の「テスト済み」プリミティブは、FDrawCommandRelevancePacket::AddCommandsForMesh を通過する際、メッシュ描画コマンドを作成しなくなりました FRelevancePacket::Finalize() は、NaniteMeshPass ための可視のキャッシュされたメッシュ描画コマンドの作成を完全にスキップするようになりました 以前は正確な可視性に依存していた、処理する必要のある最大 124 万のスタティックメッシュ関連度があったため、関連度コードの最適化は、(CitySample の) 60 万以上のプリミティブを常に表示パスにプッシュ後、非常に重要でした。事実上 Nanite ではプリミティブごと、またはメッシュごとの決定ではないものを計算するのに必要なオーバーヘッドの量は膨大でした。 カスタム深度、ライティング チャンネル、静的ライトなどの機能を使用する Nanite プロキシは、強制的に「テスト済み」パスへプッシュされます。さらに、動的関連度に依存するヒットプロキシやデバッグ表示モードなどのさまざまな機能により、エディタは「常に表示」の最適化を無効にします。
-
Nanite ラスタライザ スケジュールの書き換え - 大規模な CPU/GPU/メモリの最適化 (多くの場合、2-4 倍の冗長作業を回避し、バブルを埋めるためのオーバーラップするパス、メイン vs ポスト間および !テッセレーション vs テッセレーション間でラスタライザ パスの結果を再使用します)。また、効率的に複数のラスタライザ パスをサポートし、さまざまなオーバーラップ スキームを試行できるよう非常に柔軟にします
-
RHI シェーダー バンドル ディスパッチ機能への初期 Nanite サポート(CS マテリアルパスのみ)
-
シェーダー ルート定数のグラフィック パイプラインのサポートを実装しました
-
明示的インスタンス階層セル境界 (r.SceneCulling.ExplicitCellBounds)、およびセルのデバッグ レンダリング (r.SceneCulling.DebugRenderMode) を追加してカリングの有効性を向上しました。
-
MIC のために動作する Nanite ディスプレイスメント スケーリングの初期サポート (基本マテリアル テンプレートにベイクするのではなく UB を通してアップロードやフェッチを行います)
-
Nanite の固定関数ラスタライザ ビニング フォールバックのリファクタリング ** - 通常、セットアップ タスクによってシェーディング ビニング RDG パス実行の前には設定されない FixedFunctionBin の競合状態を修正しました - FixedFunctionBin が競合していなくても固定関数マテリアルがないシーンには検索する固定関数ビンがないという問題を修正します - スプライン メッシュおよび/または両面メッシュが正しくレンダリングできない固定関数ビンにフォール バックするケースを修正しました - 単一のコードパスのみを持つことで 100% 無効なケースを簡易化します - ラスタ ビニング シェーダーがどのラスタ ビンを固定関数に再マッピングするか選別できるようになりました。
-
可変レート シェーディング マネージャー、コントラスト アダプティブ シェーディング ジェネレータ、中心窩シェーディング ジェネレータを更新し、ハードウェア VRS がサポートするサイズよりも小さい、2x2 ピクセル タイル サイズでシェーディング比率画像を生成できるようにしました。この「ソフトウェア VRS 画像」は、(VRS をサポートしていないプラットフォーム上でも) r.VRS.EnableSoftware 1 を切り替えることで、または一般的なハードウェア画像とともに独自に生成でき、コンピュート シェーダーで使用するように設計されたレンダリング パスによってリクエストできます (現在は Nanite 基本パスのみ)。
-
VK_NV_mesh_shader 拡張子の Nanite メッシュ シェーダー サポートを実装しました。引数ラッピングが実装され、D3D12 メッシュ シェーダー スペックに対応したため、VSM メッシュ シェーダー ラスタライズを再有効化しました。
-
(まずは) DX12 へのシェーダー ルート定数サポート - シェーダー バンドルは、グローバル均一バッファを必要とせずレコード インデックスと 3 つの任意のパス データ パラメータをルート定数にプッシュする非常に高速なパスを持つようになりました。
-
最適化された Nanite CS マテリアル ソート キーは、バンドルなしで CitySample Nanite BasePass で最大 0.16ms 節約します (4.79ms -> 4.63ms) 現在の一般的なアイデアは以下のとおりです。まず、同じバウンドターゲットマスクのあるシェーダーすべてをグループ化します (UAV エクスポート) それから、同じシェーダーを使用しているが、バインディングが異なるシェーディング ビンすべてをグループ化します * 間接引数でのキャッシュミスを最小限にするため、間接引数メモリ位置を昇順でソートします
-
Nanite CS マテリアルのライトマップ サポート
-
Nanite テクスチャ座標エンコーディングが常にひび割れなく、非常に多いリピート数でテクスチャ座標をより良く処理するように更新しました。
-
階層的なインスタンス カリングおよび事前計算をデフォルトで有効化しました (r.SceneCulling)。これにより、ローカル ライトが多い場合は特に CitySample のような高密度のシーンのインスタンス カリングのパフォーマンスを大幅に向上します。
-
常に表示パスのある Nanite 統合マテリアル関連度を最適化しました
-
マテリアルとマテリアル インスタンスで明示的にテッセレーション (したがって移動) を有効または無効にするため、マテリアルに新しい「テッセレーションを有効化」のオプションを追加しました。
-
r.Visibility.SkipAlwaysVisible はデフォルトで有効になりました。
-
現時点では、WITH_EDITOR では「常に表示をスキップ」の最適化を完全に無効にします (クック済みビルドのみ実行します)
-
Nanite テッセレーション可視化モードを実装しました (パッチ、(マイクロ) 三角ポリゴン、テッセレーション)
-
RDNA 逆アセンブラの修正:DS 手順のサポート、DS マイクロコード形式の修正、不足している手順の追加を行いました。
-
ピクセルプログラム可能なラスタライズに新しい Nanite ビジュアライゼーション モードを追加しました。
-
Intel ARC GPU でより高速で実行するため Nanite トランスコード パスを最適化しました。
-
(たとえば、ワールド位置オフセットまたはスプライン メッシュ コンポーネントを通して) 変形されることを意図している Nanite メッシュの過度な単純化を緩和するため「最大のエッジの長さ係数」をスタティックメッシュの Nanite 設定に追加しました。
-
CFLAG_ShaderBundle を追加し、Nanite CS マテリアルをそれで装飾しました (一部のプラットフォームではこれを使用して内部バンドル実装に関連するデータ構造体をビルドすることができます)。
-
使用されていないバッファ引数を削除するためシェーダー バンドル パブリック API をクリーンアップし、レコード インデックスとプラットフォーム データをルート定数に変更し、一部のプラットフォームでのフロー制御の問題を修正しました。
-
Nanite シェーダー バンドルをデフォルトで有効にします
-
Nanite スタティックメッシュ設定に LerpUV プロパティを追加しました。デフォルトで有効になっています。無効にされると、UV は単純化で線形補間されません。これは、たとえばインデックスなど、UV に格納されているデータが補間に使用できない場合に役立ちます。アーティファクトをレンダリングせず Nanite メッシュで AnimToTexture プラグインを使用できるようにします。
-
Nanite DispatchBasePass を新しいシェーダー バンドル ディスパッチ API に更新しました
-
Nanite CS マテリアルを CPU 可視性カリング結果に接続し、CS マテリアル PSO 取得を大幅に最適化しました。
-
RDNA ISA ロジックの改善
-
CS マテリアルの Nanite マテリアル可視性サポートを実装し、特定の場面で CPU オーバーヘッドを大幅に減少しました (PS マテリアルがすでにサポートするものに一致)
-
CPU の負荷をできるだけ少なくしながら、コンピュート シェーダー/パイプラインの集計や GPU 生成ディスパッチ XYZ バッファを取ることができ、集計からゼロサイズのディスパッチを圧縮/削除するプラットフォーム固有のメソッドを起動する、開発中の新しいシェーダー バンドル ディスパッチ API を実装しました。
-
Nanite テッセレーション統計を実装しました
-
同じ品質で圧縮後、通常最大 10% 小さくなる Nanite ディスク エンコーディングを向上しました。
-
30-50% のオーダーでピクセル プログラム可能なマテリアル (マスク済み/PDO) の Nanite ラスタライズ パフォーマンスを大幅に向上します。
-
Nanite で一部の永続的 VRAM を保存するため、内部 Nanite バッファのフットプリントを軽減しました。
-
Nanite テッセレーションのあるマテリアルにディスプレイスメント マップの適切なミップ サンプリングを追加しました。
バグ修正:
-
NVIDIA グラフィック カードの使用時に Vulkan で Nanite テッセレーションがクラッシュする問題を修正しました
-
プレイヤー コリジョン ビューの Nanite コリジョン メッシュの選択項目を修正しました。
-
プロジェクト設定の「速度パス」が「深度パス」に設定されている場合に Nanite CS で Substrate 出力が混同されるバグを修正します。
-
Nanite で設定された境界外 UV のサンプリングは、0 を返す代わりに利用可能な最も高い UV セットにクランプするようになりました。これは、非 Nanite 動作と一致しています。
-
Nanite 変位メッシュのキャッシュされたクック済みプラットフォーム データのクリア時のクラッシュを修正しました。キャンセルされておらず、破壊されるとクラッシュする場合があるキャッシュ タスク。
-
非常に大きい位置座標のメッシュでクラッシュする場合がある Nanite ビルダーの問題を修正しました。
-
並列コマンド リスト送信を使用して Nanite CS マテリアルの競合状態を修正しました (バンドルは無効)。可視性データの存続期間は RDG に関連付けられていますが、並列コマンド リストはずっとあとにディスパッチされるまで待機しないため、RDG よりも長持ちします。
-
ゲームが pak ファイルでパッケージされていない場合、Nanite へのレガシー IO パスの使用を警告しません
-
平面反射やポータル レンダリングのようなものにビジュアル アーティファクトを引き起こす原因となる、一部の Nanite クラスタがグローバル クリップ プレーンによってカリングされないバグを修正しました。
-
プロジェクト設定の「速度パス」が「深度パス」に設定されている場合に WPO のあるマテリアルもないマテリアルも含む Nanite オブジェクトのモーション ベクターのバグを修正しました。
-
シーンのスカイ ライトを有効化/無効化する際、Nanite マテリアルが混同されるバグを修正しました。
-
Nanite 高速タイル クリア最適化の実装を向上 (および正常に) しました。この新しいバージョンは、完全に Nanite シェーディングされたタイルであっても、すべて/いずれかの GBuffer を通して書き込まれることはないが、それでもメタデータの設定を解除する問題 (その結果、クリアされない GBuffer/ミラーのホールが発生する) を修正します。新規実装は (シェーダー反射に基づいた) マテリアルごとのバウンド ターゲット マスクをビルドし、最適化に適した考えられるバウンド ターゲットに対してそれをマスクし、それからクリア シェーダーはメタデータを最適化するために安全なタイルを決定し、残りはレギュラー ハードウェア パスによりクリアされます。
-
「ShowOnly」アクタが有効だが空のリストがあるシーン キャプチャに対してすべての Nanite がレンダリングするバグを修正します。
-
最近オクルードを解除された Nanite オブジェクトが分割画面表示など非インスタンス化されたセカンダリ ステレオ ビューで正しくレンダリングされない問題を修正しました。
-
Nanite スプライン メッシュが誤った接線フレームを計算する問題を修正しました。
-
テッセレーションが Nanite スプライン メッシュと連動するのを妨げる問題を修正しました。
-
ビュー 0 とビュー 1 が同じバッチ パラメータ メモリを共有し、並列コマンド リストの記録中互いにトランプルしていた、分割画面の CS マテリアルの競合状態を修正します。
-
Nanite テッセレーションが Intel ARC GPU でクラッシュする問題を修正しました
-
Nanite カスタム深度レンダリングが r.CustomDepthTemporalAAJitter=0 で正常にレンダリングするよう修正しました。
-
クック済みビルドで Nanite ランドスケープ ラスタライズ シェーダーが不足する問題を修正しました。
-
レイ トレーシング Nanite スプライン メッシュ (まだフォールバック メッシュのレイ トレースのみ) のいくつかのバグを修正しました。
-
新しい Nanite ラスタ スケジュールの競合状態を修正します (セットアップ タスクが完了していない可能性があるため、レンダリング スレッドで DispatchContext 間接リストを使用しないでください)。また、間接引数がパス パラメータに存在しないため RDG がバリアを発行しないという、パッチ分割中の GPU 同期の問題を修正しました (既存のバグ)。
-
サブ タイル モードがモートン順序と異なる可能性がある、一部のプラットフォームにおける Nanite 高速タイルのクリアの修正
-
CS 明示的派生物と暗黙的 LOD をサポートするまで Vulkan の Nanite CS マテリアルを一時的に無効にします
-
Nanite スプライン メッシュ パラメータの負のスケールが面を反転させるバグを修正しました。
-
同時に複数のプラットフォームをクックするとそのうちのいくつかに Nanite ストリーミング データが不足する問題を修正しました。
-
エディタでオブジェクトが選択されていない場合、ワイヤーフレーム ビューでランダムな Nanite オブジェクトが選択されたように表示される可能性がある問題を修正しました。
-
Nanite オブジェクトがビューにある状態でインスタンス化ステレオが有効な場合の右目のカスタム深度レンダリングを修正しました。
-
Nanite インポスタ レンダリングが誤った深度値を出力する可能性がある問題を修正しました。
-
非常に長く細い三角ポリゴンのラスタライズが一部のハードウェアで防水ではなくなる問題を修正しました。
-
誤ったラスタライズ シェーダーの使用が原因でスプライン変形がメッシュでランダムに無効化される可能性がある Nanite スプライン メッシュのバグを修正しました。
-
Nanite ラスタ ビン再コンパイル シェーダーのクラッシュを修正しました
-
Nanite ビルダーがクラスタを三角ポリゴンなしに簡素化することによって起こるまれなクラッシュを修正しました。
-
GPU バッファ リードバック中、一部のプラットフォームで Nanite 選択ビジュアライザーがクラッシュする問題を修正し、全体的なコードを向上しました
-
Nanite ビルダーが空のサブメッシュを正しく処理しない可能性がある問題を修正しました。
-
Nanite ソフトウェア VRS の粗い VRS シェーディング率を最大 2x2 に正しくクランプしました。ソフトウェア VRS は、2x4、4x2、または 4x4 率を使用するエリアでは無効ではなくなりました。
-
ハードウェア レイ トレーシングは、Nanite ジオメトリの最も低い LOD インデックス プロパティを尊重するようになりました。
-
静的な解析で検出された、Nanite ストリーミング マネージャーの FVirtualPage のための誤った == 演算子を修正しました
-
並列コマンド リスト レコーディングと Nanite シェーディング コマンドによる競合状態/存続期間を修正しましたNanite 同時ベース パス レコーディングを再アクティベートします
Niagara
新機能:
- 異種ボリューム:シャドウ キャスティング サポートと透過処理パスとの統合を行います。
- 異種ボリュームの異種ボリューム カテゴリを通して有効化します。
-
新しい Niagara アセット ブラウザは、Niagara エミッタおよび Niagara システムの作成時および既存のシステムへのエミッタ追加時のメニューを刷新します。 これはコンテンツ ブラウザと類似し、アセットを整理するためのタグ付け機能を提供します。
-
Niagara パーティクル メッシュごとの LOD - 現在 CPU LOD パスを持たないため、ソート/カリング処理 (OpenGL RHI など) を実行できない場合、これを無効にします。
-
シミュレーション キャッシュ バッファ データを単一配列にパックされるよう修正します - bAllowSerializeLargeCache によって制御されるオプションの BulkData シリアル化を追加します - 大きなキャッシュ (BulkData) は 2GB を超えることも可能で、エディタでのシリアル化がかなり高速です - 小さなキャッシュは TArray シリアル化を使用し、最適ではありません。BulkData シリアル化はすべての FArchieve タイプでサポートされていないため、たとえばデバッグのためにデータをテキストとしてネットワークで送信する場合に有用です - シミュレーション キャッシュをクリーンアップし、コンパイルを減らします - 既存の SimCache テストを更新します #virtualized
-
ユーザー データ インターフェースの検証ルール
-
InsideVolume 出力を RVT サンプルに追加します - URuntimeVirtualTexture を Niagara に公開するのではなくユーザー パラメータ バインディングを UObject に変更します
-
現在の使用コンテキストでは使用できない (リンクされた入力のための) 属性を除外します。
-
スタティックメッシュ DI は、安全な CPU アクセス関数にソケット サンプリングを追加します
-
Niagara データ チャンネル アセットを BP タイプ にして、BP が参照できるようにします。
-
パーティクルのスポーン時にスポーン グループをオーバーライドして NDC DI のデフォルトを変更します。推奨されるメソッドは、GetNDCSpawnData 関数を使用することです。
-
コンポーネント境界に基づいてパーティクル メッシュ LOD を選択するオプションを追加します - すべてパーティクルはこの LOD でレンダリングします
-
Niagara シミュレーション キャッシュ プラグインから「実験的機能」タグを削除し、デフォルトで有効にします
-
特定のプラットフォーム/品質レベルでシステムのカリングを可能にするため Niagara システムにプラットフォーム セットを追加します
-
リボン平面法線を面スクリーン/カスタム対面ベクターではなくジオメトリに追従させるオプションを追加します - 他のリボン形状モードと一致するため、これが新しいデフォルトになりました - 既存のコンテンツは以前のモードを使用します
-
グラフでデータ インターフェース 関数をダブルクリックすると C++ ソース ファイルが開くようになりました
-
キャッシュ比較機能を配列に追加します
-
FX のオプションの CSV メモリ使用量出力を追加します - モードは fx.DetailedCSVStats.MemoryMode によって制御され、パフォーマンスに影響するためデフォルトでは無効です - Niagara の GetApproxMemoryUsage を実装し、この関数をデバッグ HUD で使用して Cascade メモリ使用量を表示します
-
Niagara スクリプト グラフのアクション メニューで「/」を入力すると「分割」アクションを優先するようになりました
-
ループ音声を再生する新しいモジュールを追加しました
-
HeightFog および VolumetricFog のインスキャッタリングと減衰を異種ボリュームに適用します。
-
- 初期パラメータ サポートを音声データ インターフェースに追加しました * 既存の音声モジュールを少し改良し、デフォルト値を改善し、モジュールを初期化パラメータに追加しました
-
静的な変数を同じ基礎となるタイプの非静的入力に接続できるようになりました
-
RDG テクスチャ/バッファのプールを追加します - 一部のプラットフォームでは、減速を引き起こす人口バリアが追加されていました (d3d12 など) - 近隣グリッドを使用した 400 回のディスパッチのテストでは、GPU の 3.6 ms が 0.33 ms になりました
-
並び替えルールにプラットフォーム セットを追加します
-
データ チャンネルの読み取り/書き込みのための新しいブループリント API 使用するデータ チャンネルに一致するピンを自動的に生成する新規ノードを追加しました バージョン管理情報をデータ チャンネル アセットに追加し、依存するアセットが変更を検知できるようにしました
-
異種ボリューム コンポーネント:ブループリント内で VolumeResolution を設定するアビリティを追加します
-
既存のシミュレーション キャッシュに追加するアビリティを追加します - 現在のシミュレーション年齢/ティック数よりも前のフレームがカリングされます - BeginAppend は対 BeginWrite で呼び出すことができ、キャッシュが無効な場合、初期設定を行います - タイムアウトの削除、追加するかどうかなどのすべてのパラメータを特定できるようにするため、新しい呼び出しでキャプチャ ライブラリを更新します
-
2D ガスの FFT ソルバを公開します
-
オブジェクト リーダーに SourceMode を追加すると、アタッチしたアクタから簡単に読み込みできます - プロパティを読み込むため、BP Get 関数を呼び出すためのサポートを追加します - FVector4 のアライメントの問題を修正します
-
HUD に自動アタッチメント情報を追加します
-
誤った名前空間から属性を書き込む場合、コンパイル エラーを表示します (たとえば、システム名前空間に書き込むパーティクル スクリプト)。これは、5.4 ではただの警告のため、古いコンテンツは修正できます (プロジェクト設定から構成可能)。
-
シンプルなライトでスペキュラ スケールへのサポートを追加します。ライト レンダラを通してライトごとの属性を設定するため Niagara へのサポートを含みます。#virtualized
-
アクティブ化の最適化は、システムによって最大 10% - 20% 節約します
-
ユーザーが書き込みからピンを除外できるように、データ チャンネル BP に詳細パネル サポートを追加します
-
クエスト 2/3 の GPU パーティクルおよびソートを有効にします
-
Niagara タスクの優先順位はティック グループごとに設定できます - これにより、シミュレーションをあとで実行する場合に待機時間を低減でき、物理タスクを行うことができます
-
内部でのシミュレーションに使用され、(UI ではまだ浮動小数として表示される) ブループリントがダブル タイプを処理する方法と類似しているため、Niagara ダブル タイプのディスプレイ ネームを「浮動小数」に設定します
-
スケルタルメッシュ DI に GetTriangleIndice を追加します (これは、スタティックメッシュ DI の機能をミラーします) - スキン済み頂点データを三角ポリゴン/ボーンと一致させるため、補間されたメソッドを追加します
-
一部のモジュールがスクリプトにつき 1 回しか使用されないようにするための検証ルールを追加しました
-
定数テーブルが NaN を含む場合、Niagara コンパイル結果に警告を追加します
-
Niagara アクション メニュー:優先されるパラメータ アクションを削除し NPC パラメータ検索スコアを半減しました。これにより検索結果はやや正確になるはずです。
-
デバッグ HUD はパフォーマンス ユニット選択項目を追加します (ミリ秒/マイクロ秒) - 単位スケールのための Perf グラフに自動モードを追加します
-
パーティクル メモリのクイック リリースを有効にします
-
列挙型グラフ ピンの整数ベースの等しい/等しくない Ops を追加しました
- エミッタ ノードにスポーン数スケール UI を追加しました
-
スケーラビリティ モードの開始と終了の切り替えボタンとしてスケーラビリティ インジケータを関数に変更しました
-
新しくスポーンされたシステムが同時実行シミュレーションに追加されるのを避けることができます - シミュレーションを TG で実行し、次の TG または GT の非同期タスクで、同時実行中のシミュレーションへの追加を試みると起こります - 新しいパスは、インスタンスを同時に実行中ではない既存のシミュレーションまたは新しいシステム シミュレーションにプッシュします - これにより、間違ったシミュレーションに追加する可能性のあった TG 転送の潜在的問題も修正されます - CVar fx.Niagara.WorldManager.AvoidAddingToExecutingSims は、新旧動作間の反転に使用できます
-
NDC から読み取るシステムのためのシンプルなティック グループ ベースの実行順序。読み取りの順番が後にくる必要があるティック グループを定義します。この TG よりも前の読み取り、またはあとの書き込みは警告を発します。
-
接続済み入力の型変換に OP ノードの明示的ピン タイプを使用します
-
LWC タイル境界テストの実行前のテスト実行状態 - これは、非アクティブ中にタイル境界を超えるとインスタンスがアクティブに戻る問題を修正します
-
スプライト/メッシュ/リボン レンダラにシャドウをキャストのオプションを追加します
-
メッシュ レンダラに LOD モードを追加します - 使用する LOD レベルまたは最小 LOD に基づいた LOD バイアスを指定できます - その LOD レベルが利用不可能な場合、次に低い利用可能なレベルにフォールバックします
-
Niagara スケルタルメッシュ DI にスキン キャッシュを読み取るサポートを追加します - 一部の下位プラットフォームは追加のバッファの問題がある可能性があるため、これが有効な場合に制御するプロジェクト設定を追加します (デフォルトでは有効)
-
スプライト/メッシュ レンダラでソートが有効かどうかを確認する検証ルール
-
メッシュ/スプライト レンダラで SubUV ブレンディングをデフォルトで有効にします
-
指定された範囲から選ばれた一意の乱数を生成するため HLSL 関数を追加しました (FastUniqueRandom)
-
シミュレーション キャッシュに保存されたボリューム テクスチャのビジュアライゼーションを追加しました
- Niagara ノートは以下のとおりリファクタリングされました。
- (ほとんど) すべての種類のスタック横列で動作するようになりました (モジュール全体だけでなく、入力、プロパティなど)
- ノートの送信後の編集をサポートします
- 「フル表示ノート」はノートのアイコンをクリックすると「インライン ノート」に変換できるようになりました
- 右クリック メニューまたはオンスクリーン ウィジェットによる UI アクセス。
-
HLSLcc のいくつかの最適化は、参照される変数情報を保存するためのハッシュ テーブルの使用を std::multimap に置き換え、アウター スコープ全体ではなくスコープの本体にある指示に基づき、スコープの変更 (if/ループ/関数) に伴ってコピーされる必要のあるデータの量を最適化します。同じ結果を生むため、すべてのシェーダーに対して検証されます。Niagara VM シェーダーの場合、特に負荷の高いシステム更新スクリプトのコンパイル時間は 16 秒から 6 秒に減少しました。
-
Niagara に SetEmitterEnabled へのサポートを追加します - Cascade と同様に、これはすべてのスポーンを停止しますが、自然にエミッタを完了せず、エミッタの状態がどのようにセットアップされるかに従います
- 共有された 1 つの DI からの任意のエミッタへのスポーンをサポートします。新しい値、Engine.Emitter.ID が Map Get ノードで利用可能です。これは現在のエミッタの ID です。
- いくつかの NDC データ インターフェース関数は、特定のエミッタとインタラクトする場合、エミッタ ID が必要になりました。 たとえば、SpawnConditional によってスポーンする場合です。
-
位置配列データ インターフェースのデバッグ描画
-
シミュレーション ステージを使用してレンダーターゲットに 2D 座標をペイントするための Niagara テンプレート。
-
UEFN エディタで Niagara デバッガを有効にします。
-
新しいアセット タグのためにアセット オプションからカテゴリを削除しました
- 異種ボリュームのためのパス トレーシング更新。
- シミュレーションが完了するとフレームごとのグリッド ビルドを防ぎます。r.PathTracing.HeterogeneousVolumes 変数を削除し、システムのデフォルト動作を継承します。
-
Niagara パラメータ コレクション エディタの削除アイコンを修正しました (ボタンを使用する代わりに) ホットキーによるパラメータ コレクション内のエントリの削除を修正しました トップ レベル エリアの展開状態を修正しました
-
Niagara プレビュー ビューポートの DisableAdvancedFeature - これにより、Lumen などを無効にすることで作成される Niagara VP ごとのメモリを大幅に節約できます
-
オービット モード オプションをシミュレーション キャッシュ エディタ表示に追加しました。オービット モードは、Niagara エディタ表示とパリティを合わせるためデフォルトでは有効です。
- オプションで異種ボリュームのために速度バッファを構築します
- r.HeterogeneousVolumes.Velocity (デフォルト = 0)
- 折りたたまれた Emitter ノードの更新した Overview ノード UI の特徴は以下のとおりです。
- 折りたたまれた Emitter ノードのサムネイル ボタンをクリックして手動で撮影しなければならないサムネイル画像。
- 「決定性」、「ワールド/ローカル空間」、「CPU/GPU」の切り替え
- ノードをクリックすると、概要ビューが表示されます
-
カスタム HLSL ノードなどを使用するスクラッチ パッドの制限されたコンテンツ スタック エラーを表示します
-
Blueprintcallable 対 DLL の公開された矛盾を修正します
-
GDME Niagara シャドウ Opts - すべての表示がメッシュ バッチを決して作成できず、シャドウ パスの表示ごとの早期アウトが決して向上できない場合、早期アウトします - 30 インスタンスのテストアセットでは、GDME で最大 3.0 ms -> 1.8ms でした。まだシャドウをキャストするレンダラがいくつかありましたが、大部分はキャストしません。
-
線形補間 C ピンのフレンドリー ネームを「アルファ」に変更しました
-
システムデータ、Cascade 変換、シミュレーション キャッシュの分析を追加しました
-
階層エディタ:ビジュアルには、エンジンの他の部分との整合性がもう少しあります - 水平ボックスからスプリッタにレイアウトを変更しました。3 列のサイズ変更を可能にします
-
Niagara レンダラはマテリアルのためのストリーミング スケールを提供するようになりました - これは、UV がスケーリングされるのを計算で考慮しないというスプライト レンダラのサブ画像ストリーミングの問題を修正します
-
Engine.Owner.Velocity は、デフォルトを 0 にするのではなく初期フレームのオーナー アクタ速度を読み取ります - これは、エミッタでこの属性/システムを読み取る際スクリプトをスポーンする、または最初のフレームのバーストの速度が常に 0 になる問題を修正します
-
オプションの名前を検証ルールに追加します - これにより、何に違反しているかを簡単に知ることができます #changelist validated #virtualized
-
アタッチ済みコンポーネントではなくアタッチ済みコンポーネント レベル コレクションのみを確認するように、プールされたコンポーネントの IsVisible を変更します - これは、Cascade が行うことを反映し、非表示のコンポーネントにゲームプレイ キューがアタッチされる場合があるが、実際にはコンポーネントを非表示にしたくないという、アタッチされたゲームプレイ キューの問題を修正します
-
コンソール変数 Niagara データ インターフェース
-
ビューがデータを読み取るとメッシュ距離フィールドは準備完了するため、RequiresDistanceFieldData から RequiresEarlyViewData へ剛体メッシュ DI/SM DI を移動します - より明確にするため、RequiresDistanceFieldData を RequiresGlobalDistanceField に名前変更します
- シーケンサー シミュレーション キャッシュの改良点は以下のとおりです。
- キャッシュ トラックごとのスケーラビリティ オーバーライドを許可します
- キャッシュ アセットを誤ってオーバーライドするのを防ぐためキャッシュ トラックをロックできるようにします
- キャッシュ アセット内でシステム名を表示します
- レコーディング時のシーケンサーのループを無効にします
-
異種ボリューム:基本ステレオ レンダリング サポート(非-ISR)
-
アクション メニューは、アクションが 1 つのみ含まれる場合、自動的にアクションを選択するようになりました。これは、追加可能な型が「数値」のみの追加メニューのある Niagara Math ノードに有用です
-
デバッグ HUD での水ボディ情報を表示します - 水ボディのインスタンスごとにスパムを送る警告を削除します
-
Niagara スクリプト統計のシェーダー統計情報を表示します
-
可能な限り、リボンが生成されたデータを共有できるようにします - CPU は、不透明または複数リボンを使用しない場合、ビュー (分割画面など) で生成されたデータを共有します - GPU は同じフレーム内のビュー ファミリ (分割画面/シャドウパスなど) で共有しますが、これは GPU で複数リボンのソートをサポートしていないためです - Niagara.Ribbon.ShareGeneratedData は最適化の有効化/無効化に使用できます
-
リボン レンダラの検証ルール - すべてのプラットフォームで有効とは限らないため、GPU/GPU の初期値を使用するための検証情報を許可します
-
GPU 使用法情報をリボン レンダラ出力に追加します
-
負の UV スケールを SubUV で正しくサポートします
-
スタックの列挙型入力がボタン グリッドとして表示されるのを許可します
-
2D レンダー ターゲットをキャッシュ #virtualized
-
MeshIndex/レンダラ Vis を使用時のメッシュ レンダラ GDME の最適化 - CVar で制御されたインスタンス数より少ない間は、メッシュ インデックスおよびレンダラ Vis 情報を調べ、どのメッシュが関連するかを判断します - 情報は通常、GPU バッファへのコピーからキャッシュではホットであるため、これによる負荷はごくわずかですが、メッシュ送信全体を保存できます
-
2D キュービック補間 #virtualized
-
すべてキル (倒した数) のボリューム位置が Particles.Position 以外のものにバウンドできるようになります #virtualized
-
シミュレーション キャッシュの比較に使用できる FNiagaraSimCacheCompare を追加します - 新しい比較により、キャッシュを比較する際に属性を除外しカスタム許容範囲を指定できるようになります - 古い比較メソッドを UNiagaraSimCache から削除しました
-
ユニットごとのスポーンのスケーラビリティ スポーン数のスケーリングを考慮します #virtualized
-
異種ボリューム:ライティング キャッシュを計算する場合、アクティブなボクセルをトリムするため境界カリングを適用します#検証済みチェンジリスト #virtualized
-
異種ボリューム:ボクセル係数、ライティング キャッシュ、ボリュメトリック シャドウ マップ解像度に LODFactor を適用し、連続的な詳細度でレンダリングを高速化します。r.HeterogeneousVolumes.CLOD (デフォルト = 1) r.HeterogeneousVolumes.CLOD.Bias (デフォルト = 0)
-
デバッグ描画機能のあるスクリプトは、モジュールのデバッグ描画トグルにツールチップとして表示されるデバッグ描画メッセージを追加定義できるようになりました。
-
FlushComputeAndDeferredQueues をワールド マネージャーに追加します - これは、ベイカーなどでワールドを手動でティックする際、一部の重複する機能をラップします - 計算ディスパッチ キューをフラッシュし、オプションで GPU が完了するまで待機し、それからディファード コールバックを実行します
-
「エミッタ プロパティ」は、概要ビューで利用可能なアイテムになりました
- データ チャンネル UX の改良点は以下のとおりです。
- アセットで変数の表示を向上しました
- アセットで一意の変数名を強制します
- さまざまな場所でプロパティの名付けとツールチップを向上しました
- アセット カラーを修正しました
- ドキュメントにハイパーリンクを追加しました
-
ワールド マネージャーに Niagara のためのシンプルなオブジェクト プールとオブジェクト参照元を追加します - このプールおよび参照元のユーザーは、リサイクル/登録解除を正しく処理することが期待されます - ワールド マネージャーへ参照するオブジェクトを移動することでレンダー ターゲット データ インターフェースのためにクラスタをビルドできるようにします - レンダー ターゲットにオブジェクト プールを使用することで、リソースが回収される前に GC で待機することを避けることができます - これにより、エディタ/シーケンサー タイムラインでのスクラブ再生時にメモリ使用量を大幅に削減します
-
スケルタルメッシュ データ インターフェースにデフォルト メッシュを追加します - プレビュー メッシュとは違い、デフォルト メッシュはクックされておらず、PIE で使用可能です。
-
異種ボリューム:コンポーネントが現在レンダリングされていない場合、SVT ストリーミング リクエストを防ぎます。
-
キャッシュ GDF 情報およびティック フラッシュ時の使用 - これは、距離フィールド コリジョンを有効にしてシーケンサーで逆スクラブ再生をするなどの問題を修正します
-
非同期で実行しても安全なため、Niagara の RequiresGameThreadEndOfFrameRecreate をオーバーロードします
-
親エミッタ パスを Emitter ノードのオープン親エミッタ ツールチップに追加します
-
データ チャンネル書き込みへシミュレーション キャッシュ サポートを追加しました (ライター データ インターフェースの呼び出しはシミュレーション キャッシュに永続化され、フレームが読み取られた場合、再生されます)。
-
Niagara 配列のための SimCache ストレージおよびビジュアライザー
-
一部のプロジェクトのための高 Pri CVar を有効にする - 高 Pri CVar に関連するコードをクリーンアップします
-
レート スケールに基づいてアニメーション通知進行情報を調整するオプションを追加します。これは、既存のコンテンツでは無効で、新しいコンテンツではデフォルトで有効です - レート スケールに基づいてスポーンされた Niagara コンポーネントにデフォルトでは無効の時間拡張を適用するオプションを追加します
-
Niagara MovieRenderQueue プラグイン - MRQ 情報を検査するためのデータ インターフェースを含みます
-
Niagara のオクルージョン クエリを制御するオプションを追加します - 現在、カスタム深度が有効かどうかを確認するためハード コード化されていますが、カスタム深度が有効であってもオクルージョン クエリを実行したい場合があります
-
デフォルトの Niagara ノート コンテンツ テキストを「タイトル」と「テキスト」にそれぞれ変更しました
-
メモリ バッファ データ インターフェース - ユーザーが浮動小数や整数を読み込み/保存するメモリ ブロックを好きなように割り当てられるようにします。
-
NDC からスポーンされたパーティクルが、そのパーティクルを生成した NDC 要素にアクセスできるようにする新しいメソッドです。新規関数 GetNDCSpawnData()。「パーティクルの NDC インデックスおよびその NDC の合計数とその NDC スポーン内の現在のパーティクルのスポーン インデックスを返します。NDC ローカル実行インデックスなど。前の SpawnGroup に基づくメソッドは必要に応じてまだバックアップとして機能します。新しいメソッドでは機能しない場合があります。たとえば、NDC ごとの適切な実行インデックスが必要な場合など。
-
スキン処理された三角ポリゴンの頂点データを取得する方法 - これは、すべてのデータを 1 つの関数にバンドルして VVM の呼び出しを減らすためです
-
HeterogeneousVolume:コンポジット順序を変更するオプションを追加します。r.HeterogeneousVolumes.Composition。異種ボリューム コンポジションの順序を変更します (デフォルト = 0)。0:透過処理前、1:透過処理後
-
異種ボリューム:ハード サーフェスと交差する場合、粗い境界に対処するために部分的な最終ステップを追加します
-
デフォルトで軽量メモリ キャプチャを有効にします
-
2 ウェイ結合は、新しい結合テンプレートを追加する楕円形状をサポートします #virtualized
-
基本 Niagara コンポーネント リーク ディテクタ - コンポーネント数/アクティブ コンポーネントに常に増加を求めます - これは、時間とともに改良され、場合によってはすべてのケースを検出できない可能性/誤検出が生じる可能性が高くなります
-
シンプルなカウンター SimCache サポート - シミュレーション キャッシュを使用するようテストを変更します #virtualized
-
IsVisible を呼び出し、オーナーのレベル コレクションの可視性などを含めるようにデバッグ HUD の可視性表示を変更します - HUD にアクティブな SimCache 情報も表示します
-
ユーザーがリボン マテリアルの背面カリング対形状モードを選択できるようにします
-
シミュレーション キャッシュに保存されたデータ インターフェースのカスタム ビジュアライゼーションをサポートします * キャッシュされたデータ チャンネルのビジュアライゼーションを追加しました
-
SimCache から JSON へのサポート
-
エミッタおよびレンダラ数の検証ルール
- シミュレーション キャッシュ比較のオプションのデータ インターフェース比較
バグ修正:
-
カリング プロキシと使用済みマテリアルの修正 - MID などに関して異なる可能性があるため、コントローラーではなくカリング プロキシからリストを集める必要があります - 注:この変更は、カリング プロキシが正しく MID にマッピングされないことを修正するものではありません
-
Engine.Emitter.NumParticle および Engine.System.NumParticle が GPU エミッタで動作しない問題を修正しました - Engine.Emitter.NumParticle は GPU 数であるため潜在的です
-
Niagara メッシュ レンダラとともに使用された場合 ParticleSubUv マテリアル式が非頂点フェッチ シェーダー プロファイルで動作する問題を修正しますVF がレンダリングのためにデータに接続するために、マテリアルでデフォルトの UV 座標を確保する必要があります
-
システムをリセットする場合、子スクリプトのコンパイル結果も必ず無効にしてください。これにより、AV データを必要としないプラットフォームをクックする際に決定論的動作を保証し、データが使用されることがない場合、結果として得られるエディタ専用データが HLSL ソース コードなどで肥大化しないことを確認します。
-
Niagara ノートのヘッダをラップ可能にし、ノートのツールチップの幅が広すぎたため、最大幅を縮小しました
-
非ゲーム ワールド内の場合、コンポーネントを切り離さないでください - システム完了により Cascade/Niagara を切り離す場合、アタッチ親に変更を呼び出さないでください - これは、レベル ロードでプレイするレベル内に ワンショット FX がある場合、レベルがダーティとマークされる問題を修正します
-
NPC データ インターフェースが動作しない問題を修正します - NPC DI は解決しないため内部にあると想定され、それは NPC DI がパラメータ ストアの中を正しく流れなかったことを意味します。
-
NiagaraShaderMap DDC ペイロードの不必要なデータをクリーン アップします最も重要なことは、DDC データは複数の異なる NiagaraSystem から生成できるため、これが FriendlyName を削除することです。名前は、非決定論的です。
-
パーティクルの読み取り DI をユーザー パラメータにしません - ターゲット エミッタを変更できないのと同様に、これは機能しません
-
デバッグ名が古くなるのを防ぐため RapidIterationParameter::DebugName を一時的なものに移動します
-
LWC のランドスケープ DI を修正します。VT とキャッシュ済みの高さをサンプリングするためのタイル情報を提供し、大規模ワールドのキャッシュ済み高さの取得を修正します。
-
複数のシステムが同時にアクティブになるとき平均 Perf 統計が誤っていた問題を修正しました
-
CustomHLSL ノードにピンを作成する際、シンボル名のサニタイズを試みます
-
近接グリッドがピクセル形式機能対ボリューム アトミックを使用するよう変更します
-
自動アタッチメントを使用する場合、アクティブは必ず計算された境界を含みます - これは、アタッチされている場合、切り離された場合 (BP によって強制される可能性) に誤った境界によってエフェクトが表示されなくなり、エフェクトの再生を継続したいという問題を修正します
-
キャッシュ レコーディング中にクリックするとスレート スロットルによるフレーム ドロップを引き起こす可能性があるバグを修正しました。
-
メイン パス シーンが低レイテンシーでメッシュ レンダラをキャプチャする際のクラッシュを修正します - 不透明型のみの描画を行うシーン キャプチャの半透明バッチをビルドしないでください
-
パラメータ定義アセットに接続されている場合、Set Attribute ノードのツールチップが不足する問題を修正しました * パラメータ定義エディタの UI バグを修正しました
-
円形オクルージョンとスクリーン比率変更を修正しました
-
データ チャンネル BP ノードの Nullptr アクセスの可能性を修正しました
-
プリミティブ境界からの継続的な仮想シャドウ マップの無効化を防ぐため、FNiagaraSceneProxy の bHasDeformableMesh を無効にしました。
-
UNiagaraScript::ComputeVMCompilationId() を最適化します
-
自動アタッチメントを使用する際、場合によって事前カリングを阻害する問題を修正しました
-
Niagara のカスタム HLSL ノード処理の分離トークンとして扱われる文字のリストに中括弧を追加します
-
過去最大値対最大推定値を使用して GPU のリボン最大値を修正します - これにより、シンプルなリボン テストは最大 15mb のメモリを節約できます
-
モジュール スクリプトでパラメータの名前を変更すると一部のエッジ ケースで既存の使用法に正しく反映しないバグを修正しました
-
リセット時にメモリの解放を許可するよう fx.NiagaraReleaseBuffersOnReset を修正します - 現在は、CPU ではなく GPU バッファのみがリセット時に解放されます - CPU メモリの解放はコンポーネント プール使用量を低減します - 早期リリースを可能にすることで、1 度のテストでパーティクル バッファ メモリが最大 4mb -> 1.4mb になりました
-
NiagaraDataInterfaceRigidMeshCollisionQuery でプリミティブ数を超えたとき、ログ記録をクリーン アップしました
-
配列およびシンプル カウンターのトランジションを修正します - キャストを削除するため一部の古いコードをクリーン アップします
-
GPU で UniqueID がスポーン グループ間で誤って共有される問題を修正しました
-
一部が RenderTargetFormat vs OverrideFormat を使用するように、プールに戻ると OverrideFormat をリセットします
-
ExternalParameter 定数バッファは、すべてのシェーダー プラットフォームで互換性を確保するためトランスレータによって明示的にパックされパッドされるようになりました。
-
非サーフェス ドメイン マテリアルの低レイテンシーを無効にします - これは、深度バッファ読み取りなどを使用する場合、シミュレーションが有効になる前にボリューム フォグ スプライトがレンダリングされる問題を修正します
-
存続期間における色を Cascade から Niagara に変換する場合、Particles.Initial.Color と Particles.Color のスケーリングから正しく選択するようになりました
-
エディタの再起動後にのみ新しいパラメータ コレクションが Niagara システムに表示されるバグを修正しました
-
データが保存されている場合があるさまざまなテクスチャ形式を適切に扱うことができるようにするため、RVT の Niagara ランドスケープ DI サンプリングが SRV を使用するように修正します (BC3_UNORM vs BC3_SRGB など)
-
(非常に特殊な状況において) ステージ内の変数の最初の読み取りのための依存関係を見落としてしまう場合がある Niagara 属性トリマー エッジ ケースを修正します
-
コンポーネントなしの SM/SKM のサンプリングの LWC 修正 - LWC タイル オフセットはコンポーネント トランスフォームに誤って適用されていました
-
ユーザーがユーザー パラメータで複雑な構造体を編集できないバグを修正しました (マトリックスなど)
-
デフォルト マテリアル関連度によって常に深度パスでのレンダリングを強制されるという Niagara の関連度の問題を修正しました
-
GPU とイベント スポーンのための SetEmitterEnabled を修正します
-
剛体メッシュ DI が球形/カプセル ボディの MeshScale を正しく設定しない問題を修正します
-
モジュール スクリプトのコンテキスト メニューにプリミティブ型に対する無効の変換操作を表示されるバグを修正しました
-
コリジョン ジオメトリによる Niagara ランドスケープ サンプリングがゲームで適切に初期化されない問題を修正します
-
エディタで作成する同時シーン プロキシを無効にします - レンダリング ステートを無効化する場合があるため、クエリする可能性があるほかのさまざまな UObject は、EOF 更新中ワイドを実行できません
-
Niagara スクリプトの非決定方法に対する修正を行います実際のコンパイルから結果を得ることと DDC から結果を引き出すことの違いを扱います。具体的には以下のとおりです - 公開された変数は DDC から適切に適用されます - 依存スクリプトからデータを取得して終了するため、(静的な変数を含む) 高速イテレーション パラメータは、SetVMCompilationResult が呼び出される前に一括で適用されることになりました - 非コンパイル可能スクリプトは、DDC へ/からの (静的な変数を含む) 独自の高速イテレーション パラメータを持つようになりました
-
コンパイルが意図されている場合、PostEditChangeProperty が Niagara グラフに影響を及ぼすのを防ぎます
-
Niagara のコンパイル ID のための参照されたコンパイル ハッシュのクリーンアップ ソース。並び替えと非一意性のため、ソース文字列は消失し、誰かがデバッグ オプションの 1 つを使っていない限り、通常は必要ありません。
-
Niagara スクリプト コンパイルに対するいくつかの修正 - 静的な変数コレクションは必ずエミッタ用にネスティングされて実行されるようにします - スレッド化がサポートされていない場合、シェーダー コンパイルを扱います - VM バックエンド コンパイラ警告 (通常、Div/0) をログに転送します
-
オフセットされた開始位置でトラックをサブシーケンスでレコーディングすると、正しいタイムフレームを再生しないバグを修正しました。
-
列挙型の読み取り/書き込みデータ チャンネル BP ノードを修正しました
-
非アクティブ ソロ システムがシミュレーションを保持したままでシミュレーションが変更される場合の非アクティブ ソロ システムのクリーンアップを修正します
-
RT の RDG 内部アクセス モードを設定します - これは、外部 RT が 1 つのパスで使用され、外部アクセスに設定され、再度他のパスで使用される場合の問題を修正します
-
剛体ボディ DI の詳細デバッグ レンダリングを修正します
-
OnSystemComplete デリゲートを DuplicateTransient に変更します
-
SubImageSize 変更でカットアウト情報が生成されない問題を修正します
-
標準構造体/オブジェクトのシリアル化をデータに使用するため、Niagara スクリプトの DDC データに組み込まれた UE パッケージのバージョン
-
デフォルトで新しく作成したエミッタ アセットを継承可能にします
-
パーティクル スポーン スクリプトの不正確なクォータニオン補間の修正を追加しました
-
スケルタルメッシュ DI は、さまざまな組み合わせの 16 ビット ボーン/16 ビット ウェイトおよび異なるボーン モードを扱います
-
初期化したワールドがある場合、必ず NPC のみを返すようにします
-
DDC から結果を引き出す場合、プリコンパイルで見つけたものを反映するため、必ず (LWC に変換する必要がある) SWC 構造体でユーザー変数を適切に扱うようにします。
-
非同期タスクの Nullptr データによるクラッシュの投機的修正 - ポインタ キャッシュを防ぐため、関数の最後でバッチ タスク完了をチェックする待機コードを調整します - タスクの変更がゲーム スレッドで必ず表示されるようにします
-
(Ensure の長いヒッチ処理の可能性よりも) 一般的なグラフ エラーがユーザーに情報をプッシュするのに十分である場合、Ensure がトリガーされるのを防ぎます
-
履歴に正確なエイリアス変数が必ず含まれるようにするため、パラメータ マップ トラバーサルにフォールバック パスを提供します。エイリアスがない場合、トランスレータのチャンク キャッシュのリセットに失敗する可能性があり、これはエミッタ間およびエミッタとシステム スクリプト間の変数のリークにつながります。これは通常、システムと更新スクリプト (乗算フロート) での動的な入力を使用して確認されました。
-
Cascade から Niagara へのコンバーターのスクリプト コンテキストの名前のコリジョンを修正しますこれまでは、モジュール変数の代わりにモジュールの名前空間外のパラメータを使用することができました。これにより、モジュールは異なる名前空間のパラメータと同じ名前の入力パラメータを持つことができます。
-
スクラッチ パッドの名前変更に関する複数の[Undo (アンドゥ)]/[Redo (リドゥ)]に関連する問題を修正しました
-
型付き UAV 保存/読み込みをサポートしない場合、FP16 を使用する GPU エミッタを無効にします - fx.Niagara.GpuEmitterCheckFloat16Support を使用してこのチェックを無効にできます - また、各フレームで保留中の設定更新を必ずフラッシュします
-
オイラー回転をとる新しい変換モジュールを使用し、初期メッシュ回転モジュールが Cascade から Niagara に変換する問題を修正し、クォータニオンに変換し、particles.rotation を設定します。
-
PR #11396: [Niagara] リソース リストのリサイクルが繰り返される問題を修正しました #contrib 11396
-
タイプ セットなしでのデータ チャンネル アセットの使用時のクラッシュを修正しました
-
リバース モードでキャッシュをレコーディング中、シーケンサーの速度をリセットします
-
島タイプ データ チャンネル システムがまだ使用されていたにもかかわらず無効になっている問題を修正します
-
BP 配列 SetValue 呼び出しが GPU コピーを更新しない問題を修正します - GPU 同期を誤って上書きする可能性がある配列コードのさまざまなポイントを修正します
-
Niagara DI で法線抽出 (非 VT) ランドスケープを更新します。すべてのプラットフォームが明示的なインデックス オフセットを持つ SampleLevel を処理できないようであるため、代わりに一対のギャザーを使用してランドスケープ PS から実装を手に入れました。#virtualized
-
モジュール名前空間の不正行為が原因で保存する必要があるすべての変数を検索できない純粋でない関数に対する属性のトリミングを修正しました
-
Emitter ノードからそのサブグラフにステップ スルーする場合、定数リゾルバがエミッタ情報を含むように更新します。
-
GetSkinnedTriangleVertexDataHelper であいまいに入力されたクランプを修正しました
-
PR #9888:Niagara データ インターフェースの詳細でフリー後の使用を修正します
-
入力が、入力された数式に正しく適用されない問題を修正しました
-
サブシーケンスでの Niagara パーティクルのキャッシュがルート シーケンスを閉じ、単独でサブシーケンスを開く問題を修正します
-
変更後、スクラッチ パッドが適用ボタンを常に有効にしないバグを修正しました
-
ランドスケープのシステム境界がオーバーラップしているときの、Niagara コンポーネント サンプリングの十分なコンポーネントの取得を修正しました
-
クック済みビルドでソートと検索ができるようにするため、RendererBinding を必ず PostLoad します。バインディングに使用する静的なブールが検索されず false とみなされる散発的な問題に対処します。
-
エディタが再起動するまで島 NDC のシステムへの変更が正しく適用されない問題を修正します。
-
ソース コンポーネントが未登録の場合、SKM データ インターフェースをリセットします - 未登録のスケルタルメッシュからの読み取りは ComponentSpaceTransform がなく、Ensure をヒットします
-
フライト コントロールに線形補間を飽和します - これは、線形補間が 1 を超え、浮動小数値が無効になる可能性がある、潜在的な !finite 問題を修正します
-
EVVM からのバッファ アンダーランを修正します - 4 未満のインスタンスを出力する場合、割り当て前にメモリに書き込んでいます - データ バッファは 16 バイトに合わせて割り当てられ、各コンポーネントは 16 バイトに揃えられるため、すべてのコンポーネントが書き込まれるまでただループできます。
-
新規公開カーブ テクスチャを作成時、アセットが無効になる問題を修正します
-
読み込まれたフレームと同じフレームで使用された場合 NDC が正しく機能しない問題を修正しました。
-
子ブループリント使用時にスタティックメッシュ DI が正しい SM を取得しない問題を修正します - SM DI にメッシュ パラメータ バインディングへのサポートを追加します
-
キャッシュ済み Niagara スクリプト データのいくつかのプロパティを一時的にしました。これは、決定論的 DDC 結果 (DDC 確認) の競合を防ぎ、DDC ペイロードのサイズを大幅に縮小します (約 50% 縮小)
-
NPC インスタンスからのオーバーライドを無効化してもすぐに反映されない問題を修正します
-
エミッタ バインディングを大文字と小文字を区別しないように変更しました - 一意のエミッタ名は FString であり、バインディングは FName であり、FName は最初のユーザーによって影響を受ける可能性があるため大文字か小文字かは保証されません
-
レンダリングが有効かどうかを判断する際のゲーム/レンダリング スレッドの競合を修正します - レンダリング スレッドは、レンダリングが有効かどうかを判断するためにレンダラ GT 配列を読み込んでいたため、プロキシの再作成時に競合が発生し、システムが 1 フレームの間レンダリングしない可能性がありました
-
透過処理のピクセル カバレッジは RGB ではなく A を使用するようになりました - これは、ピクセル カバレッジによってパーティクルがフェード アウトするのではなく暗くなる問題を修正します
-
シェーダー複雑度表示モードで低レイテンシー メッシュがレンダリングしない問題を修正します
-
Niagara ランドスケープ DI が、SetShaderParameter 中ではなく PerInstanceTick からのレンダリング コマンド中にテクスチャ リソースを収集するよう更新し、リソースの存続期間の問題をクリーンアップするため、SRV パラメータをテクスチャに移動しました。
-
レイトレーシングの Niagara リボンを無効にします - インデックス バッファがパックされる可能性があり、RT とともに使用された場合 GPU ハングを引き起こすため、これは現在サポートされていません
-
データ チャンネル アセットの編集時および動的 Read/Write ノードのある BP のコンパイル時のクラッシュを修正しました
-
SWC/LWC カスタム構造体のために型が異なる場合の関数入力の接続を修正しました
-
キャッシュ再生でオーバーライド パラメータが作動しない問題を修正します
-
サイズを縮小するため、クック中に Niagara スクリプトからデバッグ専用データを削除します
-
メッシュ レンダラ MeshBoundsScale が未使用の問題を修正します - 中央のバウンドを想定していた、誤った境界スケーリングを修正します
-
一部のメッシュ レンダラの法線不良を修正しました - メッシュ パーティクル レンダラの CalcTangentToWorld から正規化を削除しますこれは、無効のメッシュからの一部のデータで問題を引き起こし (0、0、0 など)、ローカルの頂点ファクトリが行うことに一致します。変換するパーティクルごとのマトリックスはすでにスケールがないため、正規化は不必要です
-
非式で純粋でない関数を扱う場合の属性トリミングを向上します
-
シーケンサーからトラックをキャッシュするとき、オートセーブを無効にします
-
VT の使用を無効にするため、NiagaraLandscape DI のオプションを追加します
-
シェーダーのコンパイルが許可されていない場合、マージされたスクリプトの更新を早期アウトしますハッシュのためにシェーダー ファイルにアクセスできないため、コンパイル ID を生成しようとする際の問題を回避できます
-
システムがすでにティックした場合、LWC のリセット警告のみログします
-
- データセットのリミットを尊重しないキャッシュ再生を修正します
-
シミュレーション キャッシュ アセット エディタの小さな問題を修正しました
-
「FX.AllowGPUParticles 0」がクラッシュを起こす問題を修正します
-
PR #11182: [GAS] キューが事前カリングされるパーティクル システムを再生する場合トリガーされる Ensure を削除しました #contrib 11182
-
パッケージ化されたビルドでの Niagara タイプ レジストリのクラッシュを修正します
-
Null StackEditorData にアクセスするスタック フッターのまれなクラッシュを修正します
-
新規コンパクト スタイル Niagara ノードの不足したコメント トグルを修正しました
-
Niagara デバッグ HUD Perf グラフが GPU パフォーマンス データを表示しない問題を修正しましたシンプルな修正です。ある時点で統計を生成する基礎的な GPUProfiler を有効にするチェックが省かれていました。
-
正しい位置タイプを使用するためランドスケープ DI 関数ピンを修正しました (シェーダーはすでに LWC 位置として扱っていたため、ただの表面的な変更です)。
-
- フリー後の使用を修正します - 内部プールが Niagara データの存続期間を超えて参照を保持する可能性があるため、Niagara のリソース名は他の型の文字列ではなく文字配列でなければなりません
-
RigidMeshCollisionQuery DI に bFilterByObjectType を追加し、どの剛体がクエリに追加されるかを制御するための、より信頼性の高いメカニズムを試すことができるようにします。
-
一部の属性バインディングがエミッタのマージで適切に名前変更されない問題を修正します
-
Cascade コンバーターの Null レート スケール分布を扱います
-
システムがすでに完了した場合、ベイカーが何もキャプチャしない問題を修正します
-
エミッタ モードの近似モーション ベクターが誤っている問題を修正します
-
ParticlePosition の前の値が誤っている問題を修正します - 負荷とインターポレータを軽減するため、ピクセル シェーダーではなく頂点シェーダーの値のみを提供します - 前のデータもすべてのケースで生成されておらず、前と現在が同じである現在の状態に戻ります - Niagara スプライトとメッシュ レンダラは、モーション ベクターが正確に設定される場合、正確なデータを生成します - 正確でないと、速度の使用からもたらされる結果は多少混在します
-
Niagara ソートおよびカリングに対する LWC を修正します
-
パッケージ化されたビルドでの GPU 同期モードが更新されない問題を修正します
-
NPC 名前空間の一意性を修正します
-
ユーザー パラメータ名への変更を処理する場合、システムのコンパイルをリクエストします。コンパイルされた定数テーブル レイアウトとパラメータ ストア間の不一致によって起こるクラッシュを防ぎます。
-
マスク出力をサポートする ISPC による Niagara ベクター フィールド サンプリングを修正します (一部のチャンネルが未使用の場合)
-
Cascade から Niagara へのコンバーターは Nullptr 配布を扱います
-
モジュール スクリプトからパラメータを削除する際、[Undo (アンドゥ)] が動作しないバグを修正しました
-
MeshIndex バインディングを使用したエミッタ ソースのメッシュ レンダリングを修正します
-
0 または最大要素の場合、GPU で配列を削除する問題を修正します
- NaN による VVM 定数テーブルの汚染を修正します - FP モードによる NaN の場合 A==B の比較は true を返すため、等しいかどうかを比較する前に両方の値が有限かどうかを比較するようになりました。- これによってエラーのソースは修正されませんが、それに続くすべての浮動小数値が NaN に設定されなくなります
古い内容:
- ボルテックス速度モジュールを非推奨とします
パス トレーサー
新機能:
-
アトモスフィアおよび指数関数的高さフォグのホールドアウト フラグを実装しますレイヤー化レンダリングでこれらの要素の寄与を分離するために使用できます。
-
パス トレーサー:スタートアップ中にパス トレーサーの RTPSO をビルドし、UI で初めてパス トレーサーが選択されたときに長いコンパイル時間を避けます
-
パス トレーサーでシャドウ トレーシングを最適化します
-
パス トレーサー:仮想テクスチャ フィードバックへのサポートを実装します
-
デカールおよびボリュメトリックのパフォーマンスへの影響を軽減します
-
パス トレーサーがアクティブな場合、距離フィールド タスクをスキップします
-
パス トレーサーのボリューム間隔のストレージを最適化します
-
ニューラル ネットワーク エンジン (NNE) に基づいた Unreal パス トレーサーのための実験的機能ニューラル ノイズ除去プラットフォーム (NNEDenoiser) を追加しました。
-
パス トレーシング:間接エミッシブ ライティング コンポーネントを元の名前に変更します。他のライティング コンポーネント エントリとは動作がまったく異なるため、このフラグをライティング コンポーネントの一部として含むとユーザーに混乱が生じました。元の名前である「エミッシブ マテリアル」は、この設定が行うこと (エミッシブ マテリアルがシーンに間接ライティングをキャストするようにする) をより正確に表します。
バグ修正:
-
パス トレーシング使用時にグローバル距離フィールドが必要なマテリアルの誤ったレンダリングを修正しました。
-
SvPosition は正しく設定されておらず、ScreenPosition マテリアル ノードからの一貫性のない出力を引き起こしていました
-
エディタでカメラが選択されている場合、パス トレーサーの無効化を避けます
-
パス トレーサー:ディレクショナル ライトのライト関数を修正します
-
DecalActor が選択されている場合、パス トレーサーの無効化を避けます
-
レイトレーシングをサポートしているがまだパス トレーサーを実行できないプラットフォーム (Vulkan など) のパス トレーシング メニュー エントリを非表示にします
-
パス トレーシングがアクティブな場合、平面反射をスキップします
-
パス トレーサーがアクティブな間、必要のないディファード レンダラからパスを削除します
-
デフォルトのレイ バイアスを微調整し、大きなシーンでのアーティファクトを避けます
-
パストレーサー:異方性が設定され、接線が設定されていない場合にスペキュラ強調表示で起こりうる NaN を修正します
-
パス トレーサーをサポートしないプラットフォームでのデカール シェーダーのクック エラーを避けます
ポスト処理
新機能:
-
ニューラル ポストプロセスのテクスチャ インデックス化モードにタイル オーバーラップのサポートを追加します。 スケーリングなしで画面の画像に直接タイルを配置するため
Autoモードにタイル サイズを追加します 不連続性に対応するため各タイル間に境界線のオーバーラップを追加します。*オーバーラップ解決タイプを追加します。1. 無視。タイルの連結時、オーバーラップされた領域は無視されます。2.フェザリング。オーバーラップした領域はバイリニアに組み合わされます - ニューラル ポストプロセスを追加します (実験的機能)。
- ニューラル プロファイルを追加して、どのニューラル ネットワークを使用するか構成します。[-1、3、H、W] がサポートされている場合、デフォルトでテクスチャ インデックスが使用されます。[-1、C、H、W] をサポートするためバッファ インデックスを使用します。それに応じてバッチ サイズ オーバーライドまたはタイル サイズを構成する必要があります。
- どのニューラル プロファイルを使用するかというポストプロセス マテリアルの構成と
ニューラル ネットワークとともに使用の有効化です。 - ニューラル入力/出力を使用して、ニューラル ネットワークの入力と出力を制御します。ニューラル入力では、[B、C、U、V] がインデックスで、入力 0 は 3 つの有効なチャンネルを取り、マスクはそれをネットワークへの入力として使用するべきかどうかを決定します。マテリアルあたり 1 つのノードのみ使用できます。複数のニューラル出力を使用できます。テクスチャのインデックス化では、自動バイリニア ダウンスケーリングおよびアップスケーリングが適用されます。バッファのインデックス化では、ユーザーは値へのアクセスの完全な制御権限を保持します (ユーザーは独自のフィルタリングを実行する必要があります)。
-
ローカル露出を使用し、どの領域をハイライトとシャドウとみなすかを制御するサポートを追加しました。
-
半分の解像度でのモバイル SSAO へのサポートを追加します。これは、SSAO のみで動作し、GTAO では動作しません。「r.Mobile.AmbientOcclusionHalfResolution」を使用して有効にします。
- ニューラル ポストプロセスへの NNERuntimeRDGHlsl ランタイム推測のサポートを追加し、さらに多くのエラーをログに記録します。
バグ修正:
-
ローカル露出が有効だがブルームで使用されていない場合のブルームを修正しました。
-
ポスト プロセス アンビエント オクルージョンのボーダー フィルタリングの範囲外を修正します。ビューポート最小/最大境界にサンプリング UV をクランプします。モバイルは、セットアップで作成した半分の解像度の法線とダウンサンプルされた AO を使用しないため、このクランプを無視します。
-
カスタム深度をレンダリングする Nanite メッシュがレンダリングされている場合、ステンシル テストを使用するポスト プロセス マテリアルのバグを修正しました。
-
非常に明るいピクセルのブルーム強度を低下するブルーム セットアップ パスからクランプを削除しました。
-
ある分割画面ビューはトーンマッピング後のポスト プロセス マテリアルをもつポスト プロセス ボリューム内にあり、別の分割画面ビューはそうではない場合、変数比率シェーディングがクラッシュまたは誤動作する問題を修正しました。
-
LocalExposure セカンダリ ビューにアーティファクトが表示される問題を修正しました。
-
ローカル露出使用時のアーティファクトを修正しました。
RHI
新機能:
-
Xbox Series X の画面領域 (ティア 2) 可変レート シェーディングへのサポートを有効にしました。
-
明示的なバッファ コミット演算のみを持つために BUF_ImmediateCommit を削除します
-
D3D12 RHI で予約済みリソース メモリの割り当てを縮小するためのサポートを実装します 参照されなくなった場合、バッキング ヒープをリリースします (コミット済みタイルを含まない) 新しいヒープを割り当てる前に、バッキング ヒープで利用可能なスラック空間を使用します バイト単位ではなくタイル単位の ReservedResourceData のコミット済み/フリーのメモリをトラックします 基本機能といくつかのエッジ ケースをカバーするユニット テストを追加します 事前に呼び出し元を必要とする代わりに FD3D12Heap::DeferDelete() で AddRef() を直接ヒープに実行します 予約済みリソースによって使用される物理メモリの RHI 統計カウンターを追加します
-
D3DX12Residency ライブラリを拡張し、コマンド リスト実行とは独立してリソースのセットが滞在できるようにします * 予約済みリソースのタイル マッピングを更新する場合、明示的な滞在リクエストを発行します
- 最大 32 サンプラまで処理できるように D3D12 RHI を強化しました。
- 「RequiredSamplersSwitch」マテリアル エディタ ノードを追加しシェーダー プラットフォームの最大サンプラ数に基づいてブランチングできるようにしました。
-
16 以上のサンプラをサポートするプラットフォームのプレビューへのサポートを追加しました。Dxc および SM6.0 へのサポートのないエディタ プラットフォームでは、プレビュー メニュー オプションは無効です。
-
キャンバス レンダー ターゲットに MSAA サンプル数サポートを追加しました。
-
現在のキューが演算をサポートしない場合、直接キューでタイル マッピングの更新を実行します
-
RHI ユニット テストを拡張して、インスタンスと頂点オフセットを使用した基本の直接描画と間接描画をカバーします
-
D3D12 予約済みバッファの基本サポートを実装します - 対応する TexCreate フラグと同様の BUF_ReservedResource および BUF_ImmediateCommit を追加します - 予約済みリソースにマッピング可能な物理メモリの最小ユニットを示す GRHIGlobals.ReservedResources.TileSizeInBytes を追加します - 新しいコード パスを実行するためにいくつかの基本 RHI ユニット テストを追加します
-
D3D12 リソース滞在トラッキングをリファクタリングし、リソースごとに複数の常駐ハンドルを許可します。予約済みリソースのバッキング ヒープを滞在トラッキング システムに追加します
-
PLATFORM_SUPPORTS_VERTEX_SHADER_SRVS シェーダーを駆動する bSupportsVertexShaderSRVs to DataDrivenShaderPlatformInfo を追加します * これは、頂点シェーダーでバッファまたはテクスチャ SRV に明示的にアクセスする必要があるすべての機能を保護するために使用される必要があります
-
PS4 のポイント リスト プリミティブ型へのサポートを追加しました
-
テスト構成で Vulkan LLM を有効化しました
-
明示的 D3D12 予約済みバッファ コミット/サイズ変更の初期実装 最初のパス実装は成長のみをサポートします 将来的に非同期メモリマッピング操作を可能にするため、コミットはリソース トランジションとして実装されました
-
VulkanRHI:Vulkan SDK 1.3.250.0 への更新
- 予約したバッファ コミット操作へのサポートを RDG に追加します QueueCommitReservedBuffer() を FRDGBuilder に追加します バッファの物理サイズをクエリするため、GetCommittedSize() を FRDGPooledBuffer に追加します 可能であれば、コミット操作をコピーする代わりに発行するため、ResizeBufferIfNeeded() を変更します Zach Bethel 氏の実装に基づいて、ResizeBufferIfNeeded() でコミットされる Nanite ClusterPageData.DataBuffer を最大サイズの予約したリソースとして割り当てるため、r.Nanite.Streaming.ReservedResources CVar (デフォルトは false) を追加します。
バグ修正:
-
Intel GPU の D3D12 の HDR を修正します
-
RHIMapStagingSurface 実装で提供される場合、GPUFence で待機します
-
Vulkan 検証レイヤーがインストールされたエンジン ビルドに含まれない問題を修正します
-
VulkanRHI:パス トレーシングと Nanite の両面マテリアルのワールド法線の Vulkan を修正します。
-
スタンドアローン ゲームが最小化され、ビデオまたはその他のアプリがアクティブな GPU アクティビティを作成する場合のメモリ リークを修正しました。
-
FSR または FDM が Vulkan 検証レイヤーの警告を回避可能な場合、もう一方を完全にオフにします。
-
StartTrackingForResidency() を呼び出す FD3D12Adapter::CreateCommittedResource() と FD3D12Resource() の RequiresResidencyTracking の初期化間のロジックの不一致を修正します
-
VulkanRHI:AMDBufferMarker と NVCheckpoint の同時使用を許可します (両方をサポートするドライバーのクラッシュを修正します)。
古い内容:
- DrawIndexedIndirect は、DrawIndexedPrimitiveIndirect のよりわかりにくいバージョンであるため、非推奨とします。
Substrate
新機能:
-
r.Substrate.TileOverflowFromMaterial -> r.Substrate.UseClosureCountFromMaterial に名前を変更し、r.Substrate.TileOverflow も削除します。r.Substrate.UseClosureCountFromMaterial=0 の場合、レイヤー数が r.Substrate.ClosuresPerPixel によって駆動されるようになったためです
-
Glint/SpecularLUT/SheenQuality がプラットフォームごとに設定されるようにします。
-
Lumen 反射ダウンサンプル トレーシングの Substrate へのサポートを追加します。
-
Substrate データのマテリアル グラフ ノード、色付きピン、ワイヤーにマテリアル トポロジ プレビューを追加しました。
-
Substrate MP_FrontMaterial マテリアル属性を公開し、Python スクリプティングからアクセス可能にしました。
-
GBuffer データ値選択/ビジュアライゼーションを追加します。
-
Substrate データによるマテリアル属性セットアップと処理を簡単にするため、Substrate SubstrateConvertMaterialAttribute を追加しました。
-
PT への解析的微分サポートを追加し、PT への Glint サポートを修正しました。
-
Lumen インテグレーションがどのように Substrate と動作するかを変更しました。これにより、マルチ BSDF による Lumen のシェーディングの信頼性とパフォーマンスが向上します。
-
スラブに異方性がある場合、矩形ライトにスペキュラ ライティングが不足する問題を修正します。矩形ライトによる適切な GGX 異方性ライティングは、現在サポートされていません。このような場合、等方性のケースにフォールバックします。
バグ修正:
-
特定のチャンネルに対して MFP=0 の SSS MFP による光伝達を使用する場合の NaN を修正しました。
-
Substrate のある LumenCard の誤ったスペキュラ/ディフューズの寄与を修正します。オリジナル コードは、多くのスペキュラ コード (SpecularProfile など) をバイパスし、ディフューズ/スペキュラの寄与ウェイトを尊重しない EnvApprox を使用しました。これにより、反射の色相/アピアランスが不正確になります。
-
モバイル レンダラの Substrate 環境ライティングを修正します。
-
Substrate による MediaImage/MediaPlate の事前ビジュアライゼーションを修正します。
-
環境評価のためのセカンダリ スペキュラ ローブでの SpecularProfile の重み付けの不足を修正します。
-
ステンシルに基づいたシャドウ マスク計算中にステンシル値がクリアされたため、複雑なスペシャル タイルがローカル ライトでレンダリングされない問題を修正します。
-
単一のスラブを持つマテリアルのファズ キャンセリング SSS を修正します。
-
Lumen 反射で不足している SpecularProfile を修正します。
-
レイトレースされた半透明のシャドウを Substrate で修正します
-
ヘアへの不足しているコンタクト シャドウ キャストを Substrate で修正します。
-
Lumen 反射で不足しているサブサーフェス (プロフィール/ラップ) をヒット ライティングで修正します。
-
nDisplay InCamera VFX レンダリングを Substrate で修正します。
-
Lumen マルチ反射 AO を Substrate で修正します。
-
ファズのある複雑なマテリアルの透過率が正しくなくなる、誤った分割を修正します。
-
Lumen 反射のみの Substrate を修正します (つまり、ScreenProbeGather なし)
シミュレーション
物理
API の変更:
- 物理パーティクルの回転と速度は、単精度で保存されるようになりました。前は倍精度で保存されていました。これらの値を編集するために返された参照を使用するすべての API はサポートされなくなりました。以下の関数は代わりに新しい API Set_Value_() を使用する必要があります
- TRotation
& R() - TRotation
& Q() - TVector
& V() - TVector
& W() - TVector
& PreV() - TVector
& PreW()
- TRotation
-
GeometryCollectionProxyData.h の FTransformDynamicCollection ではすべての属性がパブリックでしたが、プライベートになりました。アクセスするには新しい API を使用してください。
- Chaos キャッシュ マネージャー コンプレッション機能は、コンソール変数で制御され、デフォルトでは有効です (p.Chaos.Cache.CompressTracksAfterRecording)
新機能:
-
[NetPhysics] アクタごとのネットワーク物理の個別設定を行う方法として、NetworkPhysicsSettingsComponent を ActorComponent として追加しました。現在は、予測補間と物理再シミュレーションによる物理レプリケーションの限られた設定を実装します。
-
Mac:Slate.MacMainMenuInsideUnrealWindow のデフォルトを true に変更します
-
Chaos クロス アセット - USD Import ノードを追加しました。
-
ジオメトリ コレクション:(エディタとゲームの両方で) 利用可能な場合、ルート プロキシ メッシュのレンダリングを有効にしました
-
クロス エディタ 再メッシュ化:レンダリング メッシュでのオープン メッシュの扱いを向上します。別の場所の別の境界の別の接続済みの境界頂点のセットと一致する接続済み境界頂点を検出するオプションを追加しました。そのあと、頂点のペアリングを維持しながらこれらの「継ぎ目」を明示的に再メッシュ化できます。その前に、メッシュ島の内部を再メッシュします。
-
Chaos クロス アセット:新しいクロス コンポーネント プロパティを追加して、エディタのクロス アセット シミュレーションを有効にしました。- クロス コンポーネントの詳細パネルにシミュレーションの制御を追加しました。- クロス コンポーネント UI の上部に新しいクロス シミュレーション セクション フィルタを追加しました。- クロス コンポーネント カテゴリを整理しました。
-
ジオメトリ コレクション:ジオメトリ コレクション プロキシの物理スレッドとゲーム スレッド間のデータ マーシャリングを最適化します。これは、マーシャル化されるデータのサイズとともに処理する時間も縮小します。
-
選択ツールに拡大、縮小、フラッドのボタンを追加します
-
マグネット クラスタリングのジオメトリ コレクションの Dataflow ノードを追加しました
-
Chaos クロス アセット - Cloth Asset Dataflow ノードに Proxy Deformer ノードを追加しました。
-
デフォルトの単純化の代わりに Chaos 凸型ビルダーの新しい ConvexHull3 ベースの単純化を使用するため、CVar (p.Chaos.Convex.UseSimplifierForTConvexHull3Builder) を追加しました。
-
ジオメトリ コレクションの Dataflow ノードを追加し、孤立したルート ノードがあり、他のトランスフォームのないコレクションに対して、含まれるクラスタ ノードを作成できるようにしました。
-
クロス エディタ:ユーザーが「F」を押した場合、クロス オブジェクト全体ではなくツール定義の選択ボックスにフォーカスします
-
[NetPhysics] 物理再シミュレーションをトリガーしないしきい値内で再シミュレーションを使用するアクタのランタイム補正を実装します。
-
キャッシュが縮小する場合、巻き戻しキャッシュのメモリの割り当てを動的にスケールダウンします。
-
[NetPhysics] 物理再シミュレーションの NetworkPhysicsComponent が APawn だけでなく AActor でも実装されるようにします。
-
ユーザーが大きなメッシュ (100 万より多い三角ポリゴン) をジオメトリ コレクションに変換しようとする場合、警告と進捗バーを追加しました
-
フラクチャ コリジョン形状生成を解析するため、球体カバリングで球の個数を取得するため、Dataflow ノードを追加しました。
-
クロス アセット エディタ - クロス アセットの動作に合わせるため、データフロー アセットの作成から保存を削除しました。
-
基礎の物理オブジェクトハンドルに関してプリミティブ コンポーネントにさまざまな物理プロパティ アクセサ関数を実装します (UPrimitiveComponent::GetPhysicsLinearVelocity、UPrimitiveComponent::GetPhysicsLinearVelocityAtPoint、UPrimitiveComponent::GetAngularVelocityInRadians、UPrimitiveComponent::GetCenterOfMass)。
-
クラスタ ユニオンの ForceRebuildGTParticleGeometry を公開し、呼び出しを一括にできるように、オプションで AddComponentToCluster をすぐに呼び出さないようにします。
-
ローカル サブアクセラレーションとして使用される場合、AABB ツリーのメモリ負担を削減するため、AABBTree ペイロード トラッキングの HashTable 実装を追加しました。
-
クロス エディタ:[ツール] ボタンを上部のツールバーに移動します
-
[NetPhysics] 物理レプリケーションの改善 - 再シミュレーションを使用せずに時間拡張を有効にすることで、クライアントとサーバーの物理を整合させ、物理レプリケーションをより厳密に実現します。- 時間拡張を介してチェックされるため、より大きなレプリケーション ターゲットのアライメントを許可します。- ターゲットが速度を持つ間は早期アウトを許可し、早期アウトを行う間にターゲットを正しく外挿します。- 位置と回転の補正には受信レートを考慮します。- ReplicationCache を使用していて、非同期物理スレッドがティックしていない場合は、サーバーから RepMovement を送信しないでください。
-
p.Chaos.DebugDraw.ColorShapesByClusterUnion を追加して、内部クラスタを描画する際にクラスタ結合を区別できるようにします。
-
ジオメトリ コレクションは、GT パーティクルにデバッグ名を設定するようになりました。
-
クロス エディタのレイアウト変更:- [データフロー グラフ エディタ] は、エディタ ウィンドウの左まで延びています – [データフロー ノード詳細] タブは、[アセット詳細] および [PreviewScene 詳細] と水平に並んでいます - アウトライナーは、[データフロー グラフ エディタ] と同じタブ スタックにあります
-
ClothingMeshUtils:スキニング中に縮退トライアングルに遭遇した場合、頂点ごとにではなく、一度だけスレート通知を行います。スレートのポップアップが複数発生すると、エディタが一時的に使用できなくなる可能性があります。
-
Chaos::TEventContainer を更新して、ハンドラを格納するためにマップを使用し、登録解除呼び出しを最適化します。コンテナに数千のハンドラがある場合、線形検索は非常に遅くなります (数ミリ秒)。マップに切り替えると、これが大幅に増加します。すべてのイベントをイテレートする必要があるため、DispatchConsumerData のスピードがわずかに失われますが、これによりプロファイリング時に目立った悪化は見られませんでした。
-
クラスタ結合クエリ用のアクセラレーション構造をオンにします。
-
破砕エディタからジオメトリ コレクションを作成する際、Unreal アセットの命名規則により厳密に一致するように、名前の候補は「"GeometryCollection」ポストフィックスの代わりに「GC」プレフィックスを使用するようになりました
-
FRigidClustering::RemoveParticlesFromCluster と FRigidClustering::AddParticlesToCluster をクラスタ パーティクルの内部のひずみ、クラスタ グループ、および物理プロキシ セットへ、これらのプロパティをその子全体から再ビルドする必要なく、増分更新させます(可能な限り)。
-
選択ノード、ツール、およびファサードに「セカンダリ選択セット」を追加します。これは、特定の選択に対するメッシュ要素のオプションのセカンダリ セットです。予想されるユース ケースは、ユーザーがある選択セットを別の選択セットに関連付けたいような操作です。たとえば、シミュレーション面とレンダリング頂点をラップ デフォーマーのバインディングにペアリングする場合などです。
- [NetPhysics] 予測補間の改善:
- レプリケーションが同期から外れ始めた場合に、ソフト スナップを実行します
- 早期アウト ロジックの改善
-
クロス エディタ:2D および 3D シミュレーション ビューでのシームのビジュアライゼーション
-
クラスタ結合は、その子コンポーネントの所有者の休止状態を管理しなくなりました。
-
cvar (p.Chaos.OnlyUseInterclusterEdgesAttachedToMainParticles、デフォルトは false) を追加して、クラスタ結合にインタークラスタ エッジを介して直接接続されたパーティクルのみをクラスタ結合に追加または保持できるようにします。
-
クロス エディタ:新しいデータフロー アセットを作成する際、ターミナル ノードをデフォルトで追加します
-
ジオメトリ コレクションは、そのパーティクルが完全に減衰したときにイベントを発生させるようになりました。
-
クラスタ結合は、その子コンポーネントからナビゲーションメッシュ ジオメトリをエクスポートしなくなりました。
-
Chaos Cloth アセット:- アセットが再度更新されるたびに Cloth アセット パッケージのダーティ フラグが欠落するのを修正しました。- コードが変更されたがデータが変更されていない場合にアセットの再生成を強制するターミナル ノード UI にリフレッシュ ボタンを追加しました。
-
ジオメトリ コレクション コンポーネントの完全に減衰したフラグをゲーム システムに公開します
-
Chaos Cloth アセット:- AddWeightMap ノードにリマップ機能を追加しました。- ノードの接続が変更されたときにプロパティ詳細ビューがリフレッシュされるように修正しました。- ノードが無効になった際、アクティブなツールを非アクティブ化します。
-
ジオメトリ コレクション:キャッシュされたコンポーネント空間の境界の使用を改善して、不必要な計算を回避します
-
[NetPhysics] 物理再シミュレーションに関するさまざまな修正。- UNetworkPhysicsComponent::CreateDatasHistory が処理される前に、RewindData がセットアップされていることを確認します。- UNetworkPhysicsComponent 内で RewindData と同じ履歴サイズを使用します。- 「Project Settings > Physics > Enable Resimulation」 で RewindData がセットアップされるようにします。- 時間拡張の RPC がクライアントに適用されていない問題を修正します。- ターゲット TickCount が再シミュレーション ターゲットに対し 0 になるとは限らないため FPhysicsReplicationAsync::ResimulationReplication が再シミュレーションをトリガーしない問題を修正します。- 巻き戻しデータが完全に取り込まれる前に「巻き戻しデータの境界外」という警告ログが出力されるのを停止します。- キャッシュされた履歴と現在のステートの間でオブジェクトが変更されることで再シミュレーション中にトリガーされる可能性のあるさまざまなアサーションを削除または修正します。たとえば、現在存在するオブジェクトが履歴に存在しないが意図されている場合などです。- 重複または順不同の物理レプリケーション ターゲットを許可しません。
- FLinearDriveConstraint から未使用のフラグを非推奨としました。
- ConstraintInstance に SetDriveParams を追加し、複数の呼び出しとロックを行う必要なく最も一般的な変更が行えるようにしました。 この FPBDJointConstraintHandle バージョンの名前を変更し、それがマッチするようにしました。
-
スケルタルメッシュ エディタ サブシステムに AssignPhysicsAsset ノードを追加したことで、メッシュの物理アセットを変更するエディタ スクリプトを処理します。
-
Chaos ジオメトリの浅いコピーを実装し、パーティクルのジオメトリと形状配列の変更を高速化します。
-
クロス ウェイト マップ ペイント ツールまたはノード:レンダリング頂点でのウェイト マップ ペイントを許可します。AddWeightMapNode は、シミュレーション頂点とレンダリング用頂点の 2 セットの頂点ウェイトを格納するようになりました。ペイント ツールがアクティブな状態で表示モードを変更すると、ノードから適切なウェイト マップが読み込まれます。また、2 つの頂点ウェイトのどちらを ClothCollection に保存するか (または両方) を選択するドロップダウン セレクタもあります。
-
機能に関するヘルプ テキストを改善し、テレポートが使用される、またはされない場合の動作についての詳細を提供します。
-
ChaosDebugDrawComponent をエディタのワールドでレンダリングするように更新しました。
-
ジオメトリ コレクション:ジオメトリ コレクション コンポーネントのティック ロジックを最適化しました。今では、アクティブに削除されているピースがあるときにのみコンポーネントがティックされます
-
クロス エディタのペイント ツール:ブラシが非常に小さくなるよう許可します。また、ブラシ サイズ プロパティを手動で設定した後にブラシの円が更新されない問題も修正します
-
Chaos Cloth アセット エディタ:- ノード評価の進捗バーを追加しました。
-
クロス エディタ:トライアングルを非表示または表示する 2 つの方法をペイント ツールに追加:- ブラッシングされたトライアングルを非表示にする新しい HideTriangles ブラシ モード - パターンおよびそれぞれが見えているか制限事項がないかの一覧である新しいツール プロパティ:- 2D/3D モード間を切り替えるとき非表示または表示の情報は一緒についてきません – 表示するパターンを選択するためのチェックボックス インターフェースは動作が円滑ではありません - ブラシでトライアングルを手動で非表示にした後、すべてのパターンのチェックを外すと、手動で非表示にしたトライアングルがクリアされます。また、ウェイト マップを視覚化するオプションの白-赤モードも追加。ダーク グレーの背景で全体が黒いオブジェクトを 3D でペイントするのはかなり面倒です。
-
クロス エディタのウェイト マップ ペイント ツール:トライアングルのペイントから頂点のペイントに変更
-
物理オブジェクト インターフェースで GetGeometry を公開します。
-
より凸型の形状を持つクラスタを優先する、フラクチャ モード の自動クラスタリング ツールのオプションを追加しました。
-
速度と回転を単精度で物理パーティクルに格納します。これにより、パーティクルあたり 80 バイト節約されます
-
Chaos キャッシュ マネージャーやプレイヤーに SetCurrentTime ブループリント関数を追加しました
-
ジオメトリ コレクションは、以前に設定したワールド トランスフォームを外部から追跡するようになりました。これにより、GT は必要に応じて 2 つの差を計算できます (例:PT 前に差をクエリする必要がある場合->GT 同期)。
-
クロス エディタ:[コンストラクション] ビューポートのオプション情報 - 数値メッシュの統計 (これまでのところ三角ポリゴン数や頂点数のみ) - 色分けされたクロス パターン
-
クロス エディタ:データフロー グラフの実行後に [コンストラクション] ビューを更新します。また、一般的すぎる「DataflowNode」から「SelectedDataflowNode」にメンバー変数の名前も変更します
-
Chaos Cloth アセット:データフロー グラフ内で設定する必要のある Cloth アセット プロパティを無効にし、これらのプロパティが [Cloth アセット詳細] パネル内で誤って編集されるのを防ぎます。
-
クロス メッシュからメッシュ スキニング:通常オフセットされたトライアングルの領域がゼロでないことを確認してから、その重心座標の計算を試みます
-
フラクチャ階層ビューにジオメトリ列モードを追加しました。これにより、クラスタ ノードの累積数をはじめとして、三角ポリゴン数や頂点数が表示されます
-
ブループリントするプリミティブ コンポーネントの SetUpdateKinematicFromSimulation を公開しました
-
FPhysScene_Chaos::HandleGlobalCollisionEvent は、クラスタ結合と衝突した場合にコリジョン ShapeIndex をバブル アップするようになります
-
ジョイント制限を違反するポーズがあるとき PhAT に表示するオプションを追加しました
-
クロス エディタのウェイト マップ ペイント ツールの変更 - デフォルトの強度を 1.0 に設定します - Q/A ホットキーをつないでブラシ モードを順に切り替えます - W/E ホットキーをつないで値プロパティを調整します
-
シミュレーションでコリジョン機能 (など) の有効または無効を公開します。これにより、ImmediatePhysics シミュレーションとのコリジョン インタラクションの信頼性が高まります (RigidBody および RigidBodyWithControl アニメーション グラフ ノードに影響します)。
-
UGeometryCollectionComponent::IsRootBroken を公開します。
-
クロス選択ツール:フラッド フィル選択解除アクションを追加します:Shift と Ctrl を押したままクリックすると、接続されたすべてのメッシュ要素が選択解除されます
-
ClothingMeshUtils:単一影響と複数影響の両方のコード パスの縮退トライアングルに同じエラー フォーマットを使用します
-
クロス エディタ:[シミュレーション ビジュアライゼーション] パネルをドロップ ダウン メニューから独自のタブに移動します
-
クロス エディタのツール ヘッダをプライベートに移動します。ClothEditorToolBuilder を ClothEditorToolBuilders に名前変更し、クロス エディタの ToolBuilder クラスを一元化します
-
クロス ペイント ツール:反転アクションを追加してペイント値を反転します。また、2D でペイントする際、溶接で同じ 3D 頂点にマッピングされた追加の 2D 頂点も更新します。
-
データフロー:「非推奨」または「実験的機能」ノードを強調表示します
-
ジオメトリ コレクションは、最適化されたレプリケーション ロジックを使用するようになります
-
クロス選択ツール:背面マテリアルのチェッカーボードを修正します
-
データフロー:StaticMeshToCollection ノードを追加します
-
Chaos デバッグ描画:キネマティックおよび動的パーティクルの質量表示を追加しました (p.Chaos.Solver.DebugDrawMass)
-
[NetPhysics] クラスタ結合とジオメトリ コレクションに対するレンダリング補間による物理再シミュレーション エラー補正を実装します。
- [NetPhysics] 再シミュレーションの改善:
- すべての場合で PullData が適切に更新された結果、レンダリング補間のバグが修正されました。
- 各ネットワーク同期における冗長入力を 3 に削減し、サーバーの入力バッファと同じデフォルト値にします。
- 今のところデフォルトで無効となっている CVar によって保護された、速度および角速度の再シミュレーション ランタイム補正を実装し、また NetworkPhysicsSettingsComponent のオプション int としても実装しました。
- XR 補正後に摩擦ポイントを再計算し、補正によって摩擦を克服させるレプリケーション パーティクル補正を実装しました。
-
ジオメトリ コレクションのメモリ使用量を削減しました。
-
クロス エディタ:[Preview Scene (シーンのプレビュー)] のスケルタルメッシュとアニメーション プロパティをエディタのセッション間に保持します
-
クロス エディタ:スケルタルメッシュのプレビュー アニメーション再生に「ピンポン」モードを追加します
-
クロス エディタの再メッシュ ノード:再メッシュ後、長距離アタッチメントとセルフ コリジョン球体を再生成します。また、再メッシュ時に他の選択も削除します。
-
ジオメトリ コレクションは、残りのコレクションが設定されていない場合、CanEditSimulatePhysics に対して false を返すようになります。
-
クロス用の再メッシュ ノードを追加します。シミュレーション メッシュの場合、ノードはまずシームと境界エッジを再メッシュすることで 2D 表現で動作し、次にそれらのエッジを制約しながら全体のメッシュを再メッシュします。最後に、入力 2D/3D メッシュ表現を使用して、2D メッシュを 3D に投影 (投影解除) します。レンダリング メッシュの場合、まず境界を再メッシュした後、シームが存在しないため内部を 3D で再メッシュします。(レンダリング メッシュの LOD 生成は、将来的にはユーザーがより制御可能なものに置き換えられる可能性が高く、これは一種のプレースホルダーとなります。)まだ行うべきこと:その他のシミュレーションの必要に応じた追加の制約
- [NetPhysics] 再シミュレーションの改善:
- 巻き戻しフレームのステートがない場合、最も近いステートを巻き戻しに適用することを許可します。
- ローカル プレイヤー向けの受信入力をキャッシュして、サーバーが入力を変更し、物理再シミュレーション中に自律プロキシに適用できるようにします。
- 再シミュレーション オブジェクトとやり取りする間、予測補間オブジェクトを再シミュレーションに設定します。
-
[NetPhysics] 有効な入力がなくなったときの物理再シミュレーション中の入力減衰機能。
- [NetPhysics] 再シミュレーションとレプリケーションの改善:
- 再シミュレーション島内のすべてのパーティクルが巻き戻し有効なターゲットを持つ、有効な再シミュレーション フレームを見つける機能を実装します。
- パーティクルが再シミュレーション パーティクルと同じ島内にある間、予測補間ロジックを非アクティブ化します。
-
Chaos キャッシュ マネージャー:監視対象コンポーネントのコンポーネント参照をブループリントからアクセス可能にしました
-
Chaos Cloth アセット:新しく作成されたすべての Cloth アセットに表示されるデフォルトのテンプレート データフロー アセットを追加しました。
- ジオメトリ コレクション:ジオメトリ コレクション コンポーネントに bDensityFromPhysicsMaterial を追加しました
- オンにすると、残りのコレクション アセットに設定された密度が無視され、割り当てられた物理マテリアルから使用されます
-
ジオメトリ コレクション データフロー 平坦化ノードにオプションのトランスフォーム選択を追加しました
-
選択したボーンから凸包をクリアするジオメトリ コレクション データフロー ノードを追加しました
-
クロス エディタのプレビュー シーン:SkeletalMeshComponent 上の PostProcess Blueprints を有効または無効にするトグルを追加します
-
フラクチャ モードの平坦化ツールおよび対応するジオメトリ コレクション データフロー ノードは、選択された非クラスタを変換して親クラスタを選択するよりも、それらをすべてスキップします。これにより、たとえばレベル 1 にリーフがない場合にレベル 0 を平坦化するリスクなく、レベル 1 ノードをすべて選択できるようになります。
- ジオメトリ コレクション:動的コレクション メモリを最適化しました
- 不変の MassToLocal 属性は削除され、アセットの残りのコレクションから直接読み取るようになりました これにより、ジオメトリ コレクション コンポーネントのインスタンスごとにボーンあたり 2x96 バイトのメモリが節約されます
-
GC コリジョンを組み合わせることによるパフォーマンス改善の可能性よりも精度が重要なとき、GC コリジョンを組み合わせる代わりにゲーム スレッド上のソース スタティックメッシュから潜在的に負荷のより高いコリジョン ジオメトリを使用することを、ジオメトリ コレクションが指定する能力を追加
-
ジオメトリ コレクション:コンポーネント空間トランスフォームの計算を最適化しました (必要に応じて計算されるようになりました)
-
フラクチャ モードのリセット ツールをモーダル ツールにし、(マテリアル数に基づいてマテリアルをリセットすべきかどうか推測を試みるよりも) 「マテリアルをリセット」をツールのオプションにしました
-
クラスタ結合の初期化は、コンポーネントの初期トランスフォームにクラスタ パーティクルを初期化するようになり、追加されたすべてのパーティクルは、GT に追加時クラスタ結合コンポーネントのトランスフォームに対するそれらの場所に基づいて、その子を親に設定するようになりました。
-
クラスタ結合アクタまたはシミュレーション コンポーネントが UClusterUnionReplicatedProxyComponent の後にレプリケートするシナリオを防ぐための安全策をさらに追加しました。
-
[NetPhysics] - 予測補間レプリケーションの修正と改善 - 送信レートの変動やネットワーク条件がレプリケーションに影響を及ぼさないように、受信レートを平均化します。- 角速度レプリケーションを再設計して、角度差に基づいてターゲット角速度を調整します。
-
ジオメトリ コレクション:非推奨とされたコリジョン関連属性を削除することで、動的コレクションのメモリ使用量を最適化しました。 これにより、ジオメトリ コレクション コンポーネントのインスタンスごとにボーンあたり 6 x 4 バイトのメモリが節約されます
- [NetPhysics] 再シミュレーションが使用され、[Project Settings (プロジェクト設定)] が以下の場合、ランタイム時に物理巻き戻しデータのキャプチャを有効にします -> 物理 -> 物理予測が有効。
- NetworkPhysicsComponent、アクタの EPhysicsReplicationMode::Resimulation、または FPBDRigidsSolver::EnableRewindCapture() を呼び出して手動でトグルする場合に、RewindData がキャプチャされ始めます。
-
データフローの選択セット操作を明確にし、非対称の差分演算を追加しました
-
ジオメトリ コレクション:「マテリアル ダメージ補正を使用」オプションを GC コンポーネントに追加しました。オンにすると、すべてのダメージしきい値は、コンポーネントに割り当てられた物理マテリアルに設定されたダメージ倍率プロパティによって乗算されます
-
クラスタ結合に GetComponentVelocity を実装します。
-
コリジョン クエリ パラメータに bReplaceHitWithSubComponents オプションを追加し、クラスタ結合内に減算することでクラスタ結合に当たったかどうかを判断できるようになりますが、それが衝突した場合にのみクラスタ結合を返します
-
Chaos:負担がかかったパーティクルの BreakingModel で処理される破壊の数にグローバル リミット「p.Chaos.Clustering.PerAdvanceBreaksAllowed」を追加しました。
-
Chaos Cloth:- 相対パーティクルの速度をスキン クロス メッシュの速度にクランプする p.ChaosCloth.Solver.MaxVelocity コンソール変数を追加しました。- 相対パーティクルの速度を空気力学速度フィールドにクランプする p.Chaos.VelocityField.MaxVelocity コンソール変数を追加しました。- すべてのクロス シミュレーションで許可された最大速度スケール値をクランプする p.Cloth.MaxVelocityScale コンソール変数を追加しました。
-
クロス - スケルタルメッシュ コンポーネントの速度スケール プロパティを追加したことで、そのすべてのクロスに対するコンポーネント誘導速度を減少させます。これは、Chaos Cloth と使用されていた bLocalSpaceSimulation プロパティも置き換えるもので、非推奨になっていました。
-
UClusterUnionComponent::FindChildPhysicsObjectGivenShapeIndex を追加したことで、ユーザーはクラスタ結合をクエリして、形状インデックスが与えられた場合に基本となる物理オブジェクトを取得できるようにしました。
-
ジオメトリ コレクション:ジオメトリ コレクション コンポーネントのトランスフォームがルート ボーンに追従できるようになるオプションを追加しました (動的な場合)
-
Chaos Cloth:既存の頂点と面間のセルフ コリジョンよりもコストがはるかに低いシンプルなセルフ コリジョン球体の制約を追加しました。
-
クロス エディタの再メッシュ ノード:レンダリング メッシュのデシメーションのための単純化オプションを追加します。有効にすると、これは FRemeshMeshOp よりも FSimplifyMeshOp を使用します。単純化は QEM を使用して、曲率を維持するためにフラットな領域から頂点を削除することを優先します。結果は通常、FRemeshOp が生成するよりもポリゴン数は少なくなりますが、メッシュの均一性は低くなります。このため、レンダリング メッシュにのみ有効になっています。
-
Chaos Cloth - グローバル重力倍率コンソール変数 p.ChaosCloth.GravityMultiplier を追加しました (デフォルトは 1)。
-
クラスタ結合が子の重力グループ インデックスを設定または継承できるようにします。
-
動的コレクションのジオメトリ コレクションの相対トランスフォームのメモリ使用量を削減しますが、単精度で行われるようになりました。この変更は API の変更を伴います。公開されているトランスフォームの管理対象配列が変更されたため、一部の下位互換性の破損が発生します。この配列はあまり使用されていないはずです。
-
ジオメトリ コレクション:ジオメトリ コレクションがまだ破損していないときの境界の計算を最適化しました。
-
保留中の非同期コマンドの削除を最適化しました
-
GT および PT 両方のクラスタ結合暗黙オブジェクト ジオメトリに対する増分の追加または削除によりパフォーマンスを改善。
-
Chaos キャッシュ マネージャーにシンプルなトラック圧縮を追加しました。記録後、類似した連続するキーを集約するシンプル (しかも高速) な圧縮ロジックを使用してトラックが圧縮されます
-
[NetPhysics] 予期しない間隔でレプリケートされたステートを受信すると物理レプリケーションがスタッタリングする問題を修正しました。
-
[NetPhysics] 再シミュレーションの改善 - 回転のランタイム補正が改善され、誤った計算が修正されますが、補正は事前再シミュレーション データを使用して行われません。- 再シミュレーション中にレプリケートされたターゲットを適用せず、巻き戻し時のみとしてください。- NetworkPhysicsComponent により不一致から再シミュレーションをトリガーするために、予測されたステートと入力を受信したサーバーの状態と入力と比較するフローを実装しました。
-
ChaosFlesh:ガウス サイデル マスター コンストレイントを追加します
-
ジオメトリ コレクション:Nanite を使用する際マスクされたマテリアルのサポートを追加します
-
新しいクラスタ マージから隣接した項目までのデータフロー ノードを追加したことで、選択したボーンを最も近いまたは最大の隣接するボーンやクラスタに独立してマージできるようになりました
-
ジオメトリ コレクション:ジオメトリ コレクション コンポーネントのメモリ使用量を削減しました
- ジオメトリ コレクションは、デフォルトのアセット コリジョン プロファイルを読み込むパーティクルまたはレベルごとにコリジョン プロファイルを指定できるようになりました。
バグ修正:
-
[NetPhysics] レプリケーション ターゲットのアライメントに関する問題を修正します。この修正により、SendInterval と ReceiveInterval が正しく計算および使用され、レプリケーション ターゲットがアラインされるようになり、3 番目の有効なステートが受信された後にターゲットのアラインメントが最初に開始されるようになります。
-
ジオメトリ コレクション:ソースからコリジョンをインポートする際にトランスフォームとのコリジョンが無視される問題を修正しました
-
選択ツールがアクティブの間に選択ノードを削除するとクラッシュする問題を修正しました
-
クラスタの子の GT 同期を動的クラスタの子に限定します。キネマティック クラスタは非動的な子を更新しないため、トランスフォームの更新を強制する必要がありません。
-
非 GT フローズン シミュレーション コールバックも SimTime と DeltaTime が適切に設定されるようにしました。
-
クラスタ結合は、空でない場合にのみ自身を SQ に追加する必要があります (つまり、形状の数がゼロでない場合、および形状配列の形状が FImplicitObjectUnionClustered によって作成された形状のためではない場合)。
-
[NetPhysics] アウェイク イベントで予測補間レプリケーション用のフェイク ターゲットを作成し、起き上がって自由にシミュレーションを行うことでクライアントがサーバーから同期解除されるのを防ぎます。
-
クロス アセット ビルダー:アセット内のレンダリング パターンごとに 1 つもマテリアルがない場合は、アサートしないで警告をログに記録します。各パターンには ClothCollection にマテリアルがあるにもかかわらず、ユーザーはグラフの評価後にアセットからマテリアルを削除することができます。その結果、アセットが後で読み込まれる際にこのアサートが発生する可能性があります。
-
自動クラスタリングを使用する際、ジオメトリ コレクションのボーン名をレベル間で「_」で適切に区切って、ボーン名が GC ごとに一意になるようにします。
-
[NetPhysics] 予測補間レプリケーションの改善、角度レプリケーション タイムラインを線形レプリケーション タイムラインにアラインします。中心がずれた回転のレプリケーションを改善します。
-
クラスタ結合マネージャーにおける Use After Free の問題を修正し、FClusterUnionManager::FlushIncrementalGeometryOperation でジオメトリが更新された場合に ImplicitUnion が有効のままであることを確認します。
-
Chaos Cloth アセット:- 単純化されたボーン階層を実行するより高い LOD スケルタルメッシュ コンポーネントとクロス コンポーネントが使用されるときに不足するボーンを修正しました。
-
Chaos Cloth アセット:- 連続する 2 つのステッチが共通の 1 つのエンド ポイントを持つとき溶接でクラッシュする問題を修正しました。
-
クロス エディタ:同じノードを 2 回クリックするとシミュレーション メッシュが消える問題を修正します
-
クラスタ化したパーティクルが破壊されたときに StaticClusteredMapArray と KinematicClusteredMapArray 配列から削除されない可能性がある問題を修正します。
-
クロス エディタ ツールキット:エディタのシャットダウンが OnRequestClose() が呼び出された後にキャンセルされることがあるため、OnRequestClose() でなく OnClose() に応答して ClothEditorMode を非アクティブ化します
-
非同期物理コマンド実行時のサーバーのクラッシュ
-
データフロー:データフローでノードを接続する際のループ検出をより堅牢にしました
-
ジオメトリ コレクションは、クライアントまたはサーバーの同期解除を避けるために自身を休止状態に設定しなくなりました
-
ジオメトリ コレクション:慣性テンソルおよび質量計算を修正して、(1 つの軸に負のスケールを使用することで) ミラーリングをサポートします
-
ジオメトリ コレクションの物理プロキシは、パーティクルのトランスフォームを動的コレクションに正しく同期するようになりました。
-
クロス エディタ:グラフ内で変更があってもプレビュー アニメーションをいつでも開始しません
-
Chaos Cloth アセット - 視覚化中クロス エディタ データフローから LOD を削除する際のクラッシュを修正しました。
-
GC プロキシの同期は、その親の GC コンポーネントがシーンから削除された場合に作業を行わないようになりました。
-
UGeometryCollectionComponent::SetSimulatePhysics は、コンポーネントが破壊された際に物理ステートが破壊されるようにするために、物理ステートを再作成するルートを通過するようになりました。
-
PT でのジオメトリ コレクションのパーティクルの形状のコリジョン データへの更新は、その情報をクラスタ結合に反映するようになりました。
-
ジオメトリ コレクションの隣接クラスタをマージするアルゴリズムでの無限クラスタリングのバグを修正しました
-
固定タイムステップを即時物理と使用する際の修正 (RigidBody および RigidBodyWithControl アニメーション グラフ ノードに影響)。これはフレーム時間が小さいことがある (つまり、フレームレートが高い) ときに役立ち、また速度を位置とともに巻き戻せるようになるオプションを追加することで、固定タイムステップを使用する際にコントロールまたはコンストレイントが基本的にフレーム レートに依存しないようにします。
-
ジオメトリ コレクション:インデックス属性が見つからない場合に FillAutoInstanceMeshesInstancesIfNeeded で起こり得るクラッシュを修正しましたが、アセットには自動インスタンス メッシュが割り当てられています
-
Chaos Cloth アセット - 接続時に入力ウェイト マップ名を表示しなかった、TransferSkinWeight ノードのウェイト マップ名のオーバーライド UI メカニズムを修正しました。
-
ジオメトリ コレクションは、キャラクター基準についてクライアントとサーバー間の同期解除問題を防ぐために、サーバー上でもそのコンポーネント空間のトランスフォームを計算するようになりました。
-
クロス エディタのプレビュー シーン:RegisterAllComponents を呼び出す代わりに、スケルタルとクロス コンポーネントを手動で登録します
-
ジオメトリ コレクション:Nanite マスクされたマテリアルを使用する際のアサートを修正しました
-
ジオメトリ コレクションは、PushStateOnGameThread を呼び出した後に自身のダーティ インデックスをリセットするようになりました。そうでなければ、そのプロキシをダーティにすることで、二度と GT->PT の同期は行われません。
-
Chaos Cloth アセット - コレクションを評価せずに AddWeightMap および SelectionToWeightMapNode ノードの名前出力を評価したときのクラッシュを修正しました。
-
FPhysScene_Chaos::HandleGlobalCollisionEvent は、所有しているコンポーネントが有効でなくなった場合、プロキシのボディ インスタンスを取得しようとしないはずです。
-
子から親への更新がもはや存在しないクラスタ結合に対して行われたため、更新がパーティクルを誤った場所に強制的に移動させるようなケースを防ぐために、クラスタ結合の子から親への更新は、その更新がどのクラスタ結合のものであるかを保存するようになりました。
-
データフロー - プロパティ エディタでコメント ノードを有効にして、コメントのテキスト サイズと色を変更できるようにしました。
-
ひずみの変更は、トップ レベルの負担がかかったパーティクルだけでなく、すべての処理したいパーティクルに対して行われるようになりました。
-
UWorld::ComponentSweepMulti がブロッキング ヒットがあったかどうかではなく、ヒットがあったかどうかを返す問題を修正しました。
-
クロス エディタ:ビューポートが空の場合、「F」を押したときに再フォーカスしません
-
フラクチャ モードのアウトライナー システムでのクラッシュを修正しました
-
ジオメトリ コレクション パーティクルは、クラスタ結合内にある間はスリープやブレーク タイマーを増加させなくなりました。
-
Chaos クロス エディタ:コメント ノードを選択したときのクラッシュを修正します
-
クロス エディタ選択ツール:選択ツールを離れるときにグラフの評価を要求します
-
Chaos Cloth アセット - ChaosClothAssetToolsModule のモジュール名を修正しました (ChaosClothAssetToolsModule ではなく ChaosClothAssetEditor でした)。
-
1 つのアセットに対して複数のクロス コレクションを LOD に変換する際のマテリアル インデックスのマッピングを修正します
-
ジオメトリ コレクション:クラスタ結合の一部でない場合にルート ボーンの位置と速度が無視される動的データ レプリケーションを修正しました
-
クラスタ結合のコンポーネントごとのデータの所有者プロパティが適切に設定されるようになりました。
-
クラスタ結合におけるパーティクルの子から親への更新は、その変更が暗黙オブジェクト トランスフォームに適切に反映されるようになりました。
-
ジオメトリ コレクション:固定されたボーンが負荷により破損されなくなっているバグを修正しました
-
シングル スレッド モードで実行されているときにイベント バッファが無制限に増加する問題を修正しました。
-
初期化されていないワールドにアクセスすることによる、RepData 更新時の GeometryCollection でのサーバーのクラッシュ。
-
クラスタ結合:接触からのダメージを処理する際、重心が最も近いパーティクルを使用せずに、接触中の実際の子パーティクルを見つけます
-
SweepQuery で長さ 0 の法線 FindGeometryOpposingNormal を渡す可能性がある問題を修正しました。
-
DataflowGraphEditor でコメント ノードを右クリックしたときのクラッシュを修正します
-
データフロー - 入出力が非推奨または削除されたノードにエラーを引き起こす確認を削除し、代わりにログ メッセージに置き換えました。
-
パーティクル配列に対する境界外のレプリケーション要求をジオメトリ コレクションが受け取るケースの緩和を追加しました
-
クロス - アンバウンド クロス データのペイントを元に戻すとクラッシュする問題を修正しました。
-
既存の親を持つパーティクルをクラスタ結合に追加すると、ChildToParent の設定が早すぎるためそのパーティクルが異なる位置にスナップする問題を修正します。
-
ジオメトリ コレクション:ランタイム時のジオメトリ コレクション プロキシのいくつかのプロパティを設定する際における競合状態を修正しました
-
破壊クラスタの作成中のマテリアル取得を変更して、直接 GetMaterialData を呼び出さないようにします。これによりマテリアル配列が割り当てられなくなります。
-
ジオメトリ コレクション コンポーネントが、トランスフォームを更新する際、プリミティブ コンポーネントから継承されたボディ インスタンスの更新に時間を費やさないようにしました。
-
Chaos Cloth アセット - MaxDistance プロパティが設定されているとき、デフォルトの MaxDistance ウェイト マップを 1 に設定します。
-
nullptr デバッグ名を持つパーティクルにアクセスする可能性がある際の AABBTree におけるクラッシュを修正します。
-
ジオメトリ コレクションのより良いクリーンアップを導入して、クラスタ結合から削除され、またブレイキング モデルにクラスタ結合に追加される可能性がないことを確認しました。
-
GC プロキシ ポインタがほとんどすぐに再利用できるケースが、クラスタ結合の同期でより良く処理されるようになりました。
-
クラスタ結合は BodyInstance.OwnerComponent を設定して、コリジョン イベントに登録できるようになりました。
-
クロス - クロス ペインティング モードを終了するときカメラの動きが壊れていた問題を修正しました。
-
ジオメトリ コレクション:コンストラクション スクリプトに設定されたとき残りのトランスフォームがビューポートに適切に反映されない問題を修正しました
-
クラスタ結合により良いパーティクル ステート管理を導入することで、クラスタ結合がデッド パーティクルを管理し続ける可能性につながる GT から PT への Chaos::FPhysicsObjectHandles の前後の受け渡しを行う必要がなくなりました。
-
クラスタ結合マネージャーの PendingChildToParentUpdates および PendingParticlesToUndoChildToParentLock コンテナの適切なクリーンアップを追加し、無制御に成長し続けるコンテナ内にガベージ ポインタが残らないようにしました。
-
Chaos コリジョン イベント処理のマイナーな最適化。
-
クロス エディタ:データフロー アセットをリロードするときのクラッシュを修正します
-
ジオメトリ コレクションのデータを PT から取得して GT に戻すと最新のデータではなく古いデータが読み取られる問題を修正します。
-
PT 上の ResetDirtyIdx 呼び出しを削除して、競合状態の可能性を防ぎます。
-
Cloth Selection ノード:コレクションに追加する前に、関連付けられているグループに対して選択インデックスが有効であるかどうかをチェックします。
-
クラスタ結合で、RemoveParticlesFromClusterUnionGeometry でジオメトリが空になる場合に、ジオメトリが FImplicitObjectUnionClustered に適切にリセットされるようになりました。
-
ジオメトリ コレクション:除去機能が有効である場合に破砕されたピースが縮小されない問題が修正されました。
-
ジオメトリ コレクションとクラスタ結合で、必要に応じて GT でのキネマティック ステートが初期化されるようになりました。
-
Chaos クロス アセット:クロス アセットでクロス アセットのリーダー LOD を利用可能でない場合のボーン トランスフォームの更新が修正されました。
-
ジオメトリ コレクション:物理ステートがすでに作成されている場合に、物理マテリアルが適切に設定されるようになりました。
-
クラスタ結合マネージャーで、新しいパーティクルの親がクラスタ結合内にあるかどうかに関係なく、パーティクル自体がそのクラスタ結合内にある場合にのみ、パーティクルをクラスタ結合に追加しないようになりました。
-
ジオメトリ コレクションで、意図せずにレスト トランスフォームが格納される場合に備えて、休息トランスフォームがリセットされるようになりました。
-
Chaos キャッシュ マネージャー:スポーン可能なものを使用したレコーディング時にクラッシュする可能性があった問題が修正されました。
-
[NetPhysics] 物理レプリケーションおよび予測補間で、オブジェクトがスリープに入ってスリープ状態になっていることを確認してから、レプリケーションを停止するようになりました。そうしないと、シミュレートされている別のオブジェクトによってそのオブジェクトがアウェイク状態に維持されてサーバーから同期解除される可能性があります。
-
物理レプリケーションを通じてコンポーネントを移動する場合に、コードで TeleportPhysics を指定するようになりました。そうすることで、デフォルトの移動方法が使用されている場合に USkeletalMeshComponent::MoveComponentImpl で表示される可能性がある警告が回避されます。
-
Chaos:FMidPhaseModifier を使用して無効になっているコリジョンが、次のフレームで有効にリセットされるようになりました。
-
ジオメトリ コレクションで、プリミティブ コンポーネントのボディ インスタンスのコリジョン設定が変化した場合に、コリジョン プロファイルがリロードされるようになりました。
-
Chaos RewindData でのメモリ使用量が削減されました。
-
レプリケートされたクラスタ結合のパーティクルで、そのクラスタ結合から除去されたパーティクルが正確に考慮されない問題が修正されました。
-
nullptr のパーティクルがあっても、ジオメトリ コレクションのパーティクルごとのコリジョン プロファイルが PT で正しくロードされるようになりました。
-
ジオメトリ コレクション:シーン プロキシが作成されない場合にレスト ステートの設定時に発生していたメモリ リークが修正されました。
-
PR #10735:スケルタルメッシュ コンポーネントでの
ApplyDeltaToAllPhysicsTransformsのクォータニオンの乗算順序が修正されました。これは、キャラクター移動コンポーネントを介してキャラクターに適用される移動に影響を及ぼします。#contrib 10735 -
[NetPhysics] 物理再シミュレーションで、複数の動的オブジェクトが接触している場合の物理の巻き戻しが改善されました。
-
除去するパーティクルの配列に重複したパーティクルがある場合に、FClusterUnionManager::HandleRemoveOperation で配列外境界外アクセスが発生する可能性があった問題が修正されました。
-
サーバーとクライアントの間での同期解除防止に役立つように、クラスタ結合はクライアント上で分解不可である必要があります。
-
AutoCluster が実行されてゼロ個のクラスタがリクエストされた場合にチェックが失敗する問題が修正されました。
-
ジオメトリ コレクション ソースで最後のマテリアルが失われる問題が修正されました。
-
ジオメトリ コレクションの分解によって、親クラスタ結合から自動的に削除されるようになりました。
-
[NetPhysics] 物理再シミュレーションが無期限にブロックされることがある問題が修正されました。
-
Chaos クロス アセット エディタ:スキン ウェイト転送ツールでスケールが 1 にリセットされる問題が修正されました。
-
非ブロッキングのトレース/オーバーラップでも、クラスタ結合がトレースされるようになりました。
-
フラクチャ モードの AutoCluster ツールで ByGrid オプションの使用時にクラスタリングされない問題が修正されました。
-
プロキシ コンポーネントによるクラスタ結合の子から親へのレプリケーションが、他のソース (GC プロキシ ワールド トランスフォームの更新など) がそれと競い合うことがないように、権限のあるものになりました。
-
選択されたジオメトリ コレクションがフラクチャ モードのツール以外の何か (データフロー グラフなど) によって変更されている場合の、フラクチャ モードの堅牢性と動作が改善されました。
-
アクタが保留中のキルであるためにアクタが有効ではなくなっていても、クラスタ結合が ActorToComponents マップから適切に削除されるようになりました。
-
Mac:M2+ デバイスでグルームが有効になるように修正しました。ハングが発生していた問題に対処しました。これによって、毛のない悪夢の元が軽減されます。
-
物理スレッドで即座に減衰しているジオメトリ コレクション パーティクルが処理され、即座に減衰する内部ジオメトリ コレクション クラスタがそれらの子をアクティブと報告するように修正されました。
-
ワールドのシャットダウン中のディスパッチ時にハングの原因となっていた物理シーンの保留中のタスクが修正されました。
-
シミュレーションからの書き戻しがあるキネマティックの処理。特に、CVar SyncKinematicOnGameThread が使用されている場合の処理が修正されました。
-
フラクチャ モードの [Set Initial Dynamic State (初期動的ステートを設定)] メニューの誤ったオプションが修正され、欠落していた静的オプションが追加され、[Sleeping (スリープ中)] オプションが削除されました。
-
スタティックメッシュのメッシュ説明とその凸型コリジョン形状の両方を更新するトランザクションのリドゥ時にクラッシュする問題が修正されました。
非推奨:
-
PhysXIncludes.h および NvClothIncludes.h が不必要にインクルードされている場合に、非推奨になった旨のメッセージが報告されるようになりました。
- COPY_ON_WRITE_ATTRIBUTE および Indirect TManagedArray が非推奨になりました (それらの属性にアクセスするには、代わりに RestCollection を使用します)。
- CopyOnWriteAttributeList が削除されました。
UI
新機能:
- グリフのクワッド エッジでのエイリアシングを抑えることによって、テキストの品質が改善されました。単純なケースではその違いは目立ちませんが、軸に平行ではない回転、スケーリング、またはサブピクセル スクロールが起こると、エッジに沿ったコンテンツがあるグリフの見ばえがよくなります。
バグ修正:
-
共通入力サブシステムでの拡張入力に InitalizeDependency が追加されました。初期化時に拡張入力サブシステムでデリゲートがバインドされるため、それが依存関係として指定される必要があり、指定されていないと、パッケージ化されたゲームではそれを使用できません。
-
ウィンドウが適切に初期化される前にウィンドウのサイズを強制的にゼロにする FNullWindow が修正されました。
-
Linux または Mac でオフラインでインポートされたディスタンス フィールドのフォントで、垂直オフセットが間違っていた問題が修正されました。
-
特定のグリフ範囲での TTF のインポート時に、無限ループになる可能性がある問題が修正されました。FontEditor で、フォント キャッシュ タイプの変更時に詳細ビューがリフレッシュされない問題が修正されました。
スレート
API の変更:
- SRetainerWidget のスレート引数「RenderWithLocalTransform」および CVar Slate.EnableRetainedRenderingWithLocalTransform が必要なくなった (現在は修正済みのトランスフォームの問題に対する回避策であった) ため、それらは非推奨となり、無視されるようになりました。
新機能:
-
テキスト ボックスのプロパティ ApplyLineHeightToBottomLine が追加されました。
-
SFilterSearchBox の検索履歴テキストを取得および設定するためのサポートが追加されました。
-
AssetPicker の更新:フィルタの UI コンボ ボタンが、共通ヘルパー メソッドを使用して作成されるようになりました。これにより、フィルタがアクティブである場合にレッド ドット オーバーラップが欠如していた問題が修正され、コンテンツ ブラウザと同様に動作するように統一されました。フィルタの UI コンボ ボタンの配置を設定できるようになりました。検索バーの右側の配置されていた以前の動作が維持されますが、コンテンツ ブラウザと同様に左側に配置することもできます。
-
NavigationConfig で EUINavigationAction のルールを変更する機能が追加されました。
-
スレート テクスチャ アトラスのルックアップが最適化されて、約 4 倍に高速化されています。
-
PIE でのシーン ビュー オフセットを考慮する場合の仮定が正しくないため、スケーリングされていないビュー矩形が負ではないことのチェックが削除されました。
-
スレート WrapBox でフロー方向がサポートされるようになりました。
-
スレートでの描画時に GPU フレーム キャプチャに対してマテリアル名が発行されます。
-
SGraphActionMenu で、存在するアクションが 1 つだけである場合に自動的に続行するためのスレート引数が追加されました。パフォーマンスを確保するために、デフォルトではオフになっています。Niagara での一部のケースで有用です。
-
グラフ ノードに、設定可能なタイトル枠線の余白が追加され、保護されているメンバーを介してアクセスできます。
-
新しいテキスト オーバーフロー ポリシー MultilineEllipsis が追加されました。これは、単一行のテキストでは Ellipsis と同様に動作しますが、行が垂直上軸で部分的にクリップされている場合は、テキストが完全に除去されて、見えている最後の行の末尾に「...」が表示されるようにします。このモードでは、Ellipsis モードで複数行のテキストがある場合に、テキストのクリップされた部分の下部に「...」が表示されるために、「...」が見えない可能性がある問題が回避されます。#virtualized
-
コンポジット フォントで、フォント フェイスのアセント/ディセントのオーバーライドを有効または無効にする新しいオプションが追加されました。
-
スレート テクスチャ リソースが null テクスチャでクラッシュする問題が修正されました。
-
グラフ ノードで、ノード タイトルにどのオーバーフロー ポリシーを使用するかを指定できるようになりました。
-
UWidget::FindBinderClassForDestination でサブクラス イテレーションの負荷が高くなる問題が修正されました。このメソッドは、将来非推奨となる予定です。
バグ修正:
-
UI マテリアル/ウィジェットに対して PIE で ScreenResolution がビューポートにマッピングされない問題が修正されました。
-
ウィジェットのイベント ログを手動でスクロールするとさらにイベントが作成されることになることが多いため、イベント ログが自動的に最後までスクロールされるように更新されました。
-
AnalogCursor のマウス移動イベントで Cursor Index が適切に渡されないため、複数のカーソルを使用している場合にマウス キャプチャで発生していた問題が修正されました。
-
SSuggestionTextBox で、リストの一番上にある提案が提示されるようになりました。
-
PR #10934;RoundedBox SlateBrushes がデフォルトで (0, 0, 0, 1) という輪郭半径になる問題が修正されました。#contrib 10934
-
Trace [Start (トレース開始)]/[Trace Stop (トレース停止)] の使用時にトラックされていないウィジェット名のために、Slate Insights が機能しない問題が修正されました。
-
Slate Insights のタイムラインの後に開かれた場合に [Slate Frame View (スレート フレーム ビュー)] が機能しない問題が修正されました。
-
グローバル無効化が有効になっているウィンドウを移動した後のカーソルのロック位置が正しくない問題が修正されました。
-
[Retainer] Retainer ウィジェットのレンダリングと入力に関する問題が修正されました。以前は、2 つのレンダリング パスの両方にトランスフォームに関する異なる問題がある場合にいずれかを選択できるようにする、CVar Slate.EnableRetainedRenderingWithLocalTransform がありました。現在は、トランスフォームのすべての問題を修正する単一のパスがあるため、その CVar は非推奨となりました。
-
SlateTextureAtlas で、グリフで使用できると想定できるよりも小さい寸法である、空のスロット リストにあるフリーなノードが作成される問題が修正されました。
-
PR #11088:スレート:StandaloneRenderer 用のカスタム要素シェーダーが欠如していた問題が修正されました。#contrib 11088
-
新しい LWC データがスレート頂点シェーダーに投入されない問題が修正されました。
-
SWindow で [Preserve Aspect Ratio (アスペクト比を維持)] を設定していても、ウィンドウに OS 境界線/タイトルがない場合に、ウィンドウの初回サイズ変更時にアスペクト比が変更されていた問題が修正されました。
-
bMouseUsesStep が有効になっている場合にスライダーが 1 ステップずつ動く問題が修正されました。
-
CVar Slate.ShouldFollowCultureByDefault が無視される問題が修正されました。
-
スライダー ウィジェットで、以前のカーソル位置ではなく現在のカーソル位置が使用されるように更新されました。
UMG
新機能:
-
スレート シーンバッファのコピーの処理用のフレームワークが追加されました。新しいスレート ポストバッファのプロセッサを作成するには、USlateRHIPostBufferProcessor を継承し、PostProcess を実装します。それをゲームで使用するには、バッファ プロセッサ (例:USlatePostBufferBlur) から派生する BP を作成します。その BP でデフォルト値を設定してから、SlateRendererSettings でそのプロセッサをバッファにつなぎます。[REVIEW] patrick.boutot
-
シーンバッファを UMG に公開します。Slate.CopyBackbufferToSlatePostRenderTargets によって保護されている機能は、初回コミットではデフォルトで無効になっています。使用するには、CVar を有効にした後に GetSlatePost0 マテリアル関数を呼び出すだけです。ウィジェットがマテリアル関数を使用してレンダリングされる場合のオーバーヘッドは最小限に抑えられ (単一コピーで 0.003 ミリ秒)、それ以外の場合はオーバーヘッドは発生しません。GetSlatePost1 ~ 4 はプロジェクト設定で有効にする必要があります。[REVIEW] yohann.dossantos jason.nadro #virtualized
-
レイヤー化スレート ポスト RT 処理が追加されました。「描画」するときにスレート ポスト RT への更新をトリガーするために使用できる PostBufferUpdate ウィジェットが追加されました。更新されたポスト RT には、そのときに描画されるシーンとすべての UI が入っており、指定されたプロセッサでも処理されます。描画コンテキスト パラメータをサポートするように ICustomSlateElement インターフェースが更新されました。
-
PR #10734:CommonUI がマウスベースの戦略ゲームによく合うように更新されました。#contrib 10734
-
BlueprintCallable 関数 AddWidgets が UCommonWidgetGroupBase に追加されました。
-
PR #11152:[CommonUI] いくつかのルート管理関数が UCommonUIActionRouterBase に追加されました。#contrib 11152
-
PR #11183:[CommonUI] bClearFocusRestorationTargetOfDeactivatedWidgets 設定項目が UCommonActivatableWidgetSwitcher に追加されました。#contrib 11183
-
PR #11150:[CommonUI] ゲームパッド タイプの自動検出を無効にする機能が追加されました。#contrib 11150
-
PR #11133:UCommonActionWidget::UpdateActionWidget が仮想関数になりました。PR #11134:CommonUI:アイコンが UCommonActionWidget::UpdateActionWidget で独自の仮想関数に更新されるかどうかを判定するロジックが分割されました。PR #11147:UCommonActionWidget の OnActionProgress と OnActionComplete がバーチャル関数になりました。#contrib 11133 #contrib 11134 #contrib 11147
- UCommonButtonBase イベントの表示名が次のように変更されました。
- OnSelectedChangedBase - 「On Selected Changed」 OnButtonBaseClicked - 「On Clicked」 OnButtonBaseDoubleClicked - 「On Double Clicked」 OnButtonBaseHovered - 「On Hovered」 OnButtonBaseUnhovered - 「On Unhovered」
-
アクティブ化可能なウィジェットに、フォーカス復元ターゲットをクリアするためのメソッドが追加されました。
-
1 つのフレームで複数のアニメーション トランジションが発生する場合にパフォーマンスを向上させる、QueueAnimation メソッドが追加されました。
-
PR #11192:CommonUI:左クリックを Virtual Accept イベントによってシミュレートする必要がある場合にカスタマイズできるようにする仮想メソッドが CommonAnalogCusor に追加されました。#contrib 11192
-
PR #10853:CommonUI:サイズがメディアと適合する CommonVideoPlayer のサポートが追加されました。#contrib 10853
-
PR #11209:CommonUI:UCommonUserWidget::(Un)RegisterScrollRecipient がパブリック関数になり、ブループリントに公開されました。PR #11212:CommonUI:所有ウィジェットが作成される前に ScrollRecipients が登録された場合に ScrollRecipients が機能しない問題が修正されました。PR #11153:[Common UI] FUIActionBindingHandle がブループリントに公開されました。#contrib 11209 #contrib 11212 #contrib 11153
-
PR #10770:CommonBoundActionBar のバインディング フィルタで、無視された重複が使用されない問題が修正されました。#contrib 10770
-
FUIActionBindingHandle:GetDisplayInActionBar 関数と SetDisplayInActionBar 関数が追加されました。
-
PR #10686:FUIInputConfig のパラメータとして bIgnoreMoveInput と bIgnoreLookInput が追加されました #contrib 10686
-
UCommonVisibilitySwitcher:bCurrentlySwitching フラグが追加されました。このフラグは SetActiveWidgetIndex_Internal で true に設定されます。BlueprintPure IsCurrentlySwitching ゲッターが追加されました。
-
UTextLayoutWidget のいずれかのプロパティが直接設定されている場合に UTextLayoutWidget が適切に更新されるようになりました。
- PR #10596:CommonWidgetCarousel の MoveSpeed が公開されました。#contrib 10596
バグ修正:
-
SetAllowRightClickDragScrolling と IsAllowRightClickDragScrolling が正しい値を返すように修正されました。
-
CommonUI のアクションが更新されない問題が修正されました。FActivatableTreeNode::HandleWidgetActivated:パスでアクティブ化フォーカスがサポートされていない場合は、UCommonUIActionRouterBase::OnBoundActionsUpdated デリゲートを手動でブロードキャストします。UCommonUIActionRouterBase::HandleRootNodeActivated:アクティブ化されたルートでアクティブ化フォーカスがサポートされていない場合でも、引き続き OnBoundActionsUpdated デリゲートをブロードキャストします。
-
UserWidget で設定された場合に DesiredFocusWidget プロパティが適切に使用されるように、CommonUI の GetDesiredFocusTarget が修正されました。
-
ウィジェットが非アクティブ化された場合に CommonUI のアクションが更新されない問題が修正されました。FActivatableTreeNode::HandleWidgetDeactivated:パスでアクティブ化フォーカスがサポートされていない場合は、UCommonUIActionRouterBase::OnBoundActionsUpdated デリゲートを手動でブロードキャストします。
-
設計時の CommonTabListWidgetBase タブの登録が修正されました。
-
PR #10817:タブの初回変更時に、UCommonActivatableWidgetSwitcher が最初のタブをアクティブ化する問題が修正されました。#contrib 10817
-
[Retainer] Retainer の内側にある要素で「ステンシル」クリッピングが使用されている場合にクリッピングが機能しない問題が修正されました (ステンシル クリッピングは、せん断または軸に平行ではない回転が適用される場合に使用される)。
-
継承された WidgetTrees でのウィジェットの配置 (NamedSlot を使用) 時に発生することがあった UMG デザイナーのクラッシュの問題が修正されました。
-
丸みのある境界線で半透明マテリアルがトリミングされない問題が修正されました。
-
PR #11238:CommonUI:
UCommonGameViewportClient::HandleRerouteTouchが呼び出されない問題が修正されました。#contrib 11238 -
PR #10852:エディタの画像ウィジェットでの緩やかなテクスチャの bMatchSize の問題が修正されました。#contrib 10852
-
スレート ブラシを、現在ストリーム インされているテクスチャ リソースに変更する場合に ImageSize プロパティが正しく更新されない問題が修正されました。
-
DataValidator が抽象的なブループリントに対して実行される場合にクラッシュする問題が修正されました。
-
親ウィジェットに BindWidget がある場合に NamedSlot がコンパイルされない問題が修正されました。
-
[CommonUI] サウンドのオーバーライド プロパティが直接変更された後でも、ボタン オブジェクトの一貫性が保たれるようになりました。
-
PR #10824:UCommonInputSubsystem::SetInputTypeFilter による複数の理由で入力をブロックできない問題が修正されました。#contrib 10824
-
PR #10838:UCommonButtonGroupBase からのボタンの削除時にボタンが解除されるようになりました。#contrib 10838
-
エディタ ユーティリティ ウィジェット:Spawn と Register、および Get ID 関数を使用して同じエディタ ユーティリティ ウィジェットを複数回開こうとするとクラッシュがする可能性がある問題が修正されました。
-
UMG:PanelWidget で null ウィジェットをパネルに追加できずに、多くの状況でクラッシュする問題が修正されました。
-
テキストの先頭に複数のタブがある場合の幅の計算が改善されました。
-
CommonUI:同じ CommonUI ドメインにあるウィジェットのソートの問題が修正されました。
-
PR #11091:ルート ウィジェットでスナップが無効になっている場合に、
SWorldWidgetScreenLayerにあるスクリーン空間コンポーネントがピクセル スナップされなくなりました。#contrib 11091 -
PR #10900:bAutoCollapseWithEmptyText が true に設定されている場合にウィジェット デザイナーで Common Text ウィジェットをクリックできない問題が修正されました。#contrib 10900
-
SVG に残っているデータが原因でブラシのスタイルが EUW に適用されない問題が修正されました。
バーチャル プロダクション
新機能:
-
DMX 出力競合モニター:エンジンから DMX を送信するシステムに対する競合モニターが追加されました。
-
DMX ピクセル マッピング:ピクセル マッピング コンポーネントに対する回転が追加されました。
-
DMX ピクセル マッピング:HDR レンダリングのサポートが追加されました。ソースを選択し、[Pixel Format (ピクセル形式)] を [High Precision (高精度)] に設定して HDR サポートを有効にします。
-
DMX ピクセル マッピング:子がテクスチャ サイズに従うようにするためのオプションがソースに追加されました。
-
ゲームとエディタのインスタンスの間でレベル インスタンスの実験的なサポートが、マルチユーザーに追加されました。
-
バーチャル スカウティング ツールでエディタ アウトラインが有効になりました。HMD で、選択されているオブジェクトの周りにエディタ アウトラインが表示されるようになりました。
-
DMX ピクセル マッピング:グリッド スナップが追加されました。
-
ドライブ モードでの再生/一時停止を切り替えるための bPlay プロパティが CineCameraRigRail に追加されました。
-
DMX ピクセル マッピング:レイアウト メニューがデザイナー内に置かれるように作り直されました。
-
DMX ピクセル マッピング:デザイナーにコンテキスト メニューが追加されました。
-
ドライブ モードの方向を制御するための bReverse プロパティが CineCameraRigRail に追加されました。
-
メッシュ化ネットワークのサポートが追加されました。有効になっていれば、新たに検出されたノードが、UDP レイヤーに接続されている既存のノードで共有されます。この機能は、設定を介して有効にする必要があり、Switchboard の起動時に一部のトポロジ情報が事前共有されるマルチユーザー ネットワーク向けに設計されています。Switchboard アプリケーションはこのフラグを自動的に有効にします。手動で有効にするには、UdpMessaging モジュールの bShareKnownNodesWithActiveConnections 設定項目を使用します。この初期共有により、エディタがエディタのエンドポイント ID を知ることなく、完全にメッシュ化できるようになります。
-
エディタ ビルドでは UE_ADDITIONAL_PLUGIN_PATHS 環境変数だけがサポートされています。ゲーム ビルドおよびサーバー ビルドでは、追加プラグインのパスのルックアップに、この変数は使用されません。
-
Live Link サブジェクトおよび Live Link ロールからのプロパティ名で基本プロパティの値にアクセスするための、新しいコントロールリグ ノードが追加されました。
-
DMX ピクセル マッピング:パッチ カラーをコンポーネント カラーとして使用するためのオプションが追加されました。
-
DMX ピクセル マッピング:フィクスチャー グループのコンポーネントを水平または垂直に反転するためのオプションが追加されました。
-
DMX ピクセル マッピング:新規コンポーネントの最初の追加時に妥当なサイズが見つけ出されるようになりました。
バグ修正:
-
DMX プロトコル:出力ポート スレッドを停止するときに競合状態になる可能性がある問題が修正されました。
-
DMX ピクセル マッピング:フィクスチャー タイプまたはパッチが変化したときに、マトリックスが更新されない問題が修正されました。
-
DMX ピクセル マッピング:マトリックスのセルがデザイナーでロックされていない場合にセルをドラッグできない問題が修正されました。
-
DMX フィクスチャー:Push Normalized Values Per Attribute が呼び出されたときに、DMX フィクスチャー コンポーネント Double でその値範囲が正しく適用されるように修正されました。
MediaIO
新機能:
-
メディア プレートでのオーバーレイ マテリアルに対するメディア テクスチャ サポートが追加されました。
-
TSR アーティファクトを最小限に抑えるためにメディア プレートのコンテキスト メニューに便利な、深度を意識したオーバーレイ コンポジットが追加されました。
-
LiveLink:エンジンを Live Link サブジェクトにゲンロックする機能が追加されました。これは、Live Link がアニメーション (モーキャップなど) のプライマリ ドライバーであるが、タイムコード ソースとは別々である必要がある場合に役立ちます。
バグ修正:
-
Blackmagic メディア ソースで OCIO コンフィグを変更した場合にカラーが点滅する問題が修正されました。
-
マルチフォーマット モードを使用せずに同じフレームレート ファミリで LTC チャンネルを初期化できるようになりました。
-
無効なタイムコードが含まれているデータをプロバイダから受信した場合にステージ モニターのヒッチが発生する問題が修正されました。
-
グローバル キャッシュにある共有フレームに対する画像メディア スレッドの安全性が改善されました。
-
アップスケール後の解像度でオーバーレイ マテリアルに描画されるメディアに対するミップ レベル推定の問題が修正されました。
-
大きくタイル処理された EXR シーケンスに対する球状のポール アーティファクトの問題が修正されました。
-
メディアのサムネイル レンダラがグローバル キャッシュを画像メディアで埋め尽くさないようになりました。
-
メディア ソース OCIO でメディア プロファイルが使用されない問題が修正されました。
-
解像度に一貫性がない画像シーケンスの再生時にクラッシュする問題が修正されました。
-
AJA Key/Fill で GPUDirect が機能しない問題が修正されました。フレーム バッファ間のオーバーラップが原因で、マルチフォーマット 1080p/4K が機能しない問題が修正されました。4K フレームが使用されている場合に、考えられる最も大きいギャップを使用してフレームにインデックス付けされるようになりました。
-
MediaIO:枯渇を回避するために、デフォルトのバッファ数が 3 から 4 に増やされました。AnyThread スケジューリングが無効になっている場合に枯渇が発生することがあります。
-
メディア バンドルをレベルに配置できない問題が修正されました。
-
キャッシュされている空のフレームによって再生が中断することがあるという、画像メディアのグローバル キャッシュの問題が修正されました。
-
ソースが JITR モードである場合に MediaIO のオーディオ/キャプション/サブタイトルが機能しない問題が修正されました。
-
Rmax:デフォルトのレート乗数が 1.05 から 1.00 に変更されました。レート乗数によってレシーバが混乱していて、レート乗数はもう不要になったためです。
-
AJA ゲンロック チャンネルを動画と同じ出力に設定されるようになりました。
nDisplay
新機能:
-
ウォールの撮影時に実世界のカメラから追加された被写界深度に対して補正することを目的とする量だけオフセットされるように、仮想被写界深度をステージ ウォールにレンダリングできるようにする、新機能が ICVFX カメラ コンポーネントに追加されました。この機能は、ICVFX カメラ コンポーネントで新しい [Enable Depth of Field Compensation (被写界深度補正を有効化)] プロパティを使用して有効にすることができます。有効になっていれば、ステージ ウォールにレンダリングされる ICVFX 画像の被写界深度は、カメラの焦点距離、ウォールからカメラまでの距離、およびカメラから仮想オブジェクトまでの距離に応じた動的な量だけオフセットされ、物理的に可能な限り実世界のカメラの被写界深度に対して補正が試行されます。
-
錐台フィットのワープ ポリシーおよび錐台内フィット ビューの原点コンポーネントが追加されました。それらによって、ステージ ジオメトリの投影をカメラの投影面にフィットさせることで、ステージのジオメトリが、アクティブなエンジン カメラまたは外部 Cine カメラ (指定されている場合) のいずれかにフィットするようになります。さらに、ユーザーは錐台フィットをエディタ内でプレビューできます。そのプレビューでは、レベルにあるカメラの錐台内で適切にスケーリングされた、ステージのジオメトリのプレビュー版が表示されます。
-
フレーム番号とタイムコードを容易に表示するための DC.Stats.Frame コンソール変数が追加されました。
-
nDisplay:トランスフォーム (Xform、カメラ、画面) のオーバーライドを外部コンフィグ (.ndisplay) から無効にするためのオプションが追加されました。ユーザーは次の 2 つの問題に直面しています。 クラスタを起動し、投影が想定と異なっている場合に、マルチユーザーを介して NDC を小刻みに動かすと「固定」されているように見えるという、予期しない動作。 トランスフォームのオーバーライドがある複数の NDC インスタンスを使用している複数のレベルで、同じ NDC アーキタイプを共有することの難しさ。デフォルトではオーバーライドが無効になっています。VP ではその方が望ましい場合が多いためです。.ndisplay を動的に作成または変更し、それらの変更をオーバーライドすることを望むユーザーは、この新しいオプションを true に設定します。
-
Switchboard:nDisplay サウンドの起動時にデフォルトで無効になっているサウンドは、通常は使用されず、不必要なオーバーヘッドが付加されることがあります。
-
Switchboard:クラスタの起動時に、常にプライマリ ノードが選択されるようになりました。ユーザーがクラスタのサブセットを起動したが、プライマリ ノードを割り当てるのを忘れているという状況がよくあります。その場合は起動に失敗することになりますが、その理由はすぐには明らかになりません。この変更により、そのような状況は二度と起こらなくなります。
-
nDisplay:nDisplay アセット内のエクスポートされたコンフィグが古くなっている場合に検出されるようになりました。これは、親ブループリントが変化したときに子ブループリントで起こります。エクスポートのロジックが更新された場合にも起こることがあります。
-
SharedMemoryMedia:複数のレシーバを同時に使用する機能が追加されました。現時点での上限は 4 です。
-
MPCDI コンフィグを nDisplay コンフィグ ブループリントにインポートするための新しいツールバー ボタンが nDisplay コンフィグ エディタに追加されました。このボタンは、必要なすべてのクラスタ ノードとビューポートを追加し、それらを正しく設定し、MPCDI コンフィグが 2D コンフィグであるかどうかに合わせてスクリーン コンポーネントを追加します。
-
nDisplay:ディスプレイ デバイスの露出プロパティが、テックビズ マテリアルだけではなくすべてのマテリアルに影響を及ぼすようになりました。このプロパティを使用して、インエディタ プレビューを明るくすることも暗くすることもでき、特にプレビューのポストプロセスが有効になっている場合に便利です。また、[Gamma (ガンマ)] プロパティが追加され、そのような変換を必要とするテクスチャを受け取る場合に役立ちます。
-
SharedMemoryMedia:単一 GPU オプションが追加され、単一 GPU が使用される場合により高速になる可能性があります。
-
nDisplay:バリア トレース名にノード名が追加されました。これにより、デバッグが容易になるはずです。これがなければ、セッション名に入っている IP アドレスがどのノードのものかをルックアップする必要があるため、大規模なクラスタで特にデバッグ効率が低下します。
-
ステージのジオメトリ マップの 3D バージョンを格納するメッシュ コンポーネントが DCRA に追加されました。任意のポイントからステージのジオメトリまでの距離を計算するために、そのジオメトリ マップに対してライン トレースを実行できます。ステージの [Editor Preview (エディタ プレビュー)] プロパティにある新しいプロパティを使用してエディタ内でこのメッシュを可視化することで、ステージの生成済みジオメトリ マップをデバッグできるようになります。
バグ修正:
-
nDisplay:名前付きのマッピング済みメモリがすでに存在するかどうかをチェックする場合の、煩わしい LogHAL 警告が回避されました。
-
nDisplay コンフィグ エディタで選択されたときにステージ コンポーネントの輪郭が表示されない問題が修正されました。
-
GpuProfiler:
_N (N は整数) パターンの名前が付いている GPU トレース イベントがサポートされています。この修正が行われる前は、前述の命名パターンを使用する GPU トレース イベントはすべて、最初のイベント名に該当する同じ名称で表示されていました。たとえば、VP_0、VP_1、VP_2 は、Unreal Insights ではすべて VP_0 と表示されていました。 -
nDislplay:バッファ比率が 1 未満である場合の内部解像度の算術演算が修正されました。FIntPoint Float が FIntPoint IntType に低下することが問題でした。そのため、解像度が最終的にゼロになり、解像度がゼロであるためにメディア キャプチャの開始が失敗していました。
-
ポストプロセス ボリュームの [Exposure Compensation (露出補正)] プロパティが、ICVFX のカラーグレーディング ドロワーのプロパティ パネルに公開されました。
-
SharedMemoryMedia:プレイヤーへの表示時にアルファが反転する問題が修正されました。デフォルトではアルファは反転されますが、反転しないようにする新しいオプションがメディア出力にあります。注:Quadro RTX A6000 で 4K テクスチャに対してアルファの反転が選択されていると、GPU 時間が最大 100 マイクロ秒増えます。
-
OCIO の使用に関係なく、3D および UV ライト カードに対する一貫性のないガンマ エンコーディングが原因である、ライト カードのカラーおよびブレンドの問題が修正されました。すべてのライト カードはレンダリング時にガンマ 2.2 でガンマ エンコードされ、ブレンドが発生して最終コンポジット パス中で必要とされる場合に復号されるようになりました。
-
nDisplay:クラスタの実行時に発生していた HasFocus に関連するストールが回避されました。
-
ICVFX パネルでのライト カードの移動時に IsAlwaysFlushToWall のチェックが追加されて、プロパティで [Flush to Wall (ウォールにフラッシュ)] が無効になっている場合に、ウォールへのフラッシュが設定されなくなりました。
-
Switchboard:クック処理済みの nDisplay ビルドの起動時に、コマンドラインにプロジェクトのパスが含まれていると起動に失敗するため、含まれなくなりました。
-
nDisplay:ICVFX カメラに MediaIO が割り当てされている場合の ICVFX カメラのアクティブ化ロジック修正されました。
-
DMX を介して移動されるライト カードが、その新しい位置に一致するように ICVFX パネルで更新されない問題が修正されました。
レンダリング
新機能:
-
VP ユーティリティの新しいポストプロセス ボリューム クラスが追加されました。このクラスでは、パススルーに必要とされるすべての設定項目がデフォルトで設定されます。
-
sRGB/Rec709 色空間から作業色空間へのカラー トランスフォーメーションのための簡易エンジン マテリアル関数が追加されました。
-
画像だけでなくカラー タイプへの CPU OpenColorIO トランスフォーメーションが公開されました。
-
エディタ モード以外で OpenColorIO ライブラリを使用できるようになりました。
-
OpenColorIO が 2.3.1 にアップデートされました。
-
コンフィギュレーション アセットで OpenColorIO コンテキストが公開されました。
バグ修正:
-
OpenColorIO のシーン ビュー拡張のアクティブな参照がその破壊を妨げられることがある問題が修正されました。
-
OpenColorIO のトランスフォーメーションはデフォルトで無効になり、無効な設定でのレンダリングのスキップが回避されるようになりました。
-
OpenColorIO がキューに入れるレンダリング コマンドで Use After Free が発生する可能性がある問題が修正されました。
-
OpenColorIO のリロードと再構築の機能で、等価なキャッシュ ハッシュのために動作が強制されない問題が修正されました。
-
PanoramicCapture:「C:」が有効なパスとして認識されない問題が修正されました。
-
無効なコンフィグによって OpenColorIO のキャッシュ ID がクラッシュする問題が修正されました。
ツール
API の変更:
- SwitchboardListener を介してカスタム プロセスを起動するユーザーは、Windows での SwitchboardListener がコンソール サブシステム アプリケーションから GUI サブシステム アプリケーションに変わった結果として、子プロセスのコンソール ウィンドウが抑止されるように明示的に選択する必要があります。そうするには、新たに追加された
hide=True引数を指定してmessage_protocol.create_start_process_messageを呼び出すか、該当する JSON メッセージでそれと同等の"bHide": trueを設定します。
新機能:
-
[Switchboard] Switchboard と SwitchboardListener の間のトラフィックで、トランスポート暗号化に QUIC が利用されるようになり、SwitchboardListener への接続にパスワードが必要になりました (SwitchboardListener 3.0)。
-
[バーチャル スカウティング] 刷新されたバーチャル スカウティング ツールセットは、新しい XR Creative Framework をベースとしており、実験的なプラグインとして利用可能になりました。
-
[SwitchboardListener] SwitchboardListener はスレート アプリケーションになりました。このアプリケーションは、初回セットアップ用のさらにユーザー フレンドリーなワークフローを提供し、ユーザーが認証パスワードを簡単に変更できるようにします。SwitchboardListener をコンソール アプリケーションとして構築する必要があるユーザーは、個別の SwitchboardListenerCmd ターゲットを利用できるようになりました。
-
[Switchboard] SwitchboardListener がコンソール アプリケーションから GUI アプリケーションに変わったため、これまでは暗黙のうちに非表示になっていた Perforce/UnrealBuildTool の子プロセスのコンソール ウィンドウを、明示的に非表示にするためのフラグを設定する必要があります。
-
[Switchboard] 個々のデバイスを Unreal Insights のトレースから除外するためのコンテキスト メニュー オプションが追加されました。
-
[Switchboard] 有効になっている同時マルチスレッディング (ハイパー スレッディングとの呼ばれる) が、モニターの CPU 使用率の列の警告として示されるようになりました。これらの機能は、nDisplay のワークロードでパフォーマンスのヒッチを引き起こす可能性があることが知られています。
-
Aruco パターンを使用したレンズの歪みのキャリブレーションのサポートが LensFile エディタに追加されました。
-
[Switchboard] ユーザーが P4 プロジェクト パスの設定時に .uproject ファイル名 + 拡張子をインクルードしている場合は、そのインクルードが自動的に削除され、セットアップのよくある間違いをなくすことに役立ちます。削除されないと、診断するのが難しい可能性がある Perforce エラーが発生することになります。
-
ブループリントのユーザーは、新しい BP API を使用してカスタム マルチユーザー RPC イベントを送信することができます。ブループリントの構造体を、カスタム イベントとして送信することも、リモート クライアントで受け取ることもできます。
-
[XR Creative Framework] InteractiveToolsFramework の SelectionInteraction で、PointerComponent で無視されるように設定されているすべてのアクタ/コンポーネントが無視されるようになりました。
-
[Switchboard] OSC スレート変更メッセージは、キーストロークごとではなく、テキスト編集がフォーカスを失ったときにのみ送信されます。
-
[XR Creative Framework] ブループリントの OnUndo/OnRedo デリゲートが UXRCreativeITFComponent に追加されました。
-
LensFile エディタでレンズの歪みの解決が非同期で行われ、それを裏付ける進行状況メッセージ、およびジョブが終了する前にジョブをキャンセルするためのユーザー オプションが作成されました。
-
[Switchboard] Switchboard エディタの設定ページで、ユーザーがデスクトップ/スタート メニューのショートカットを作成していなくても、[Reinstall Dependencies (依存関係を再インストール)] オプションにアクセスできるようになりました。
-
Switchboard:コンフィグ間で共有できるローカル キャッシュが追加されました。プロジェクト内のマップ、および関心のあるアセット タイプ (LiveLink プリセット、メディア プロファイル、nDisplay コンフィグ) がキャッシュされます。また、プロジェクトのマップの検索時の進行状況ダイアログ、およびパースする関心のあるアセット タイプの検索時の追加のダイアログが追加されました。
-
バグ修正:[Switchboard] Linux で認証が機能するようになりました。
-
ユーザーがゲームパッド入力を Live Link サブジェクトとして使用できるようにするための、新しい Live Link 入力デバイス プラグインが作成されました。この機能がサポートされているのは Windows 上のみです。
-
UDP メッセージング モジュールで、ソケット接続不良の検出が改善され、それらの接続は自動的に通信から除外されます。UDP メッセージング モジュールでは、エディタが指定されたエンドポイントと通信しないようにするための、ワイルドカード ベースの IP アドレス フィルタのサポートも追加されました。
-
[コンサート] レベル インスタンス アクタのフィルタの処理時にクラッシュする問題が修正されました。
-
バーチャル プロダクション ユーティリティ:レガシー バーチャル スカウティング ツールに関連する、プロジェクト設定にあるすべての設定項目は「レガシー バーチャル スカウティング」カテゴリに配置されています。
-
PyTorch とニューラル ネットワークを使用してレンズの歪みソルバを記述するための、メソッドの実例を示すためのリファレンス実装が追加されました。
バグ修正:
-
[Switchboard] FThreadStats の終了時にクラッシュを引き起こすことがある競合状態が修正されました。
-
SwitchboardListener:現在のメッセージが処理されるまで受け入れが無効にならないことがあるバグが修正されました。
-
Swithchboard アプリケーションからのマルチユーザー サーバーの起動時に、Switchboard コンフィグのプライマリ アドレスに基づいて一意の名前がサーバー名として与えられます。これにより、複数のオペレーター ステーションで同じコンフィグを開く場合に、マルチユーザー サーバーの競合が発生します。
-
オブジェクト ミキサー:ライト ミキサーを開くときのエンジンのヒッチ/遅延が修正されました。
-
コンソール変数エディタ:表示フィルタで CVar リストが更新されない問題が修正されました。
-
Switchboard:Unreal からの新規コンフィグの作成時に、マップが選択されない問題が修正されました。この問題は、マップのリストが、「/Game/MyFolder/MyMap」ではなくパターン「/Game/MyFolder/MyMap.umap/MyMap」を使用して内部で列挙されているため、スクリプトからのエントリが見つかることはなく、デフォルトのマップにフォールバックしていたということです。
-
コンソール変数エディタ:MU の CVar の変更を送信/受信する前にセッションをチェックするように修正されました。
-
オブジェクト ミキサー:ライト コレクションからのライトの削除時に UI がすぐに更新されない問題が修正されました。
-
レベル スナップショット:パラメータ [AutoPlay]、[Enable Audio (オーディオを有効化)]、[Play Only when Visible (表示されているときにのみ再生)] が変更されていると、メディア プレートの変更の展開時にクラッシュする問題が修正されました。
-
オブジェクト ミキサー:トランスフォーム時にブループリントのライト パラメータを [Multiple Values (複数の値)] に切り替えたときの問題が修正されました。
-
レベル スナップショット:マルチユーザーの使用時にレベル スナップショットでメディア プレートのプロパティを復元した後にクラッシュする問題が修正されました。VCam アクタの展開時にエディタ UI レベル スナップショットがクラッシュする問題が修正されました。
-
コンソール変数エディタ:コンソール変数エディタで、[Execute (実行)] ボタンが選択されている場合に「HighResShot」が 2 回以上実行されない問題が修正されました。
アップグレード ノート
アニメーション
ムービー レンダリング キュー
アップグレード ノート:
- 日付や時間などの形式文字列のトークンが UTC 時間ではなくローカル時間で提供されるようになったため、UTC に頼っているレンダリング ワークフローでは、UTC 時間を渡して UMoviePipeline::SetInitializationTime を呼び出すことで、スクリプティング パイプラインを通じて設定する必要があります。
新機能:
- 日付や時間などの形式文字列のトークンは、UTC 時間ではなくユーザー システムの (ローカル) 時間で提供されるようになりました。
リギング
アップグレード ノート:
- 古いバージョンのプロジェクトでは、引き続き USkeletalMesh::LoadLODImportedData と SaveLODImportedData を使用することができます。データは FMeshDescription と旧形式の間で変換されます。代わりに、UStaticMesh API を手本とする新しい関数 (CommitMeshDescription、GetMeshDescription など) を使用することをお勧めします。
- スケルタルメッシュに適合する FMeshDescription を作成するために、新規作成された FMeshDescription オブジェクトにそのための属性を登録するためのヘルパー関数が「SkeletalMeshAttributes.h」にあります。
新機能:
- スケルタルメッシュの LOD のインポート/編集可能 データは、FSkeletalMeshImportData ではなく FMeshDescription を使用して格納されるようになりました。
バグ修正:
- ControlRigXRayMaterial:明暗順応が含まれるように、X 線シェーダーが更新されました。そのため、特定のライティング状況ではコントロールは発光しません。
シーケンサー
アップグレード ノート:
- ムービー レンダリング キューで、時間に関連するトークンに、UTC 時間ではなくローカル時間が使用されるようになりました。レンダリング ファームの実装では、パイプライン オブジェクトを初期化した後に UMoviePipeline::SetInitializationTime(FDateTime::UtcNow()) を呼び出すことで、以前の UTC 時間に戻すことができます。
新機能:
- ムービー レンダリング キューで、時間に関連するトークンに、UTC 時間ではなくローカル時間が使用されるようになりました。
合成
アップグレード ノート:
-
物理コントロール コンポーネントは実験段階のプラグインのままであるため、物理コントロール コンポーネントの変更には、おそらく既存のアセットの手動での修正が必要です。
-
物理コントロール コンポーネントは実験段階のプラグインのままであるため、物理コントロール コンポーネントの変更には、おそらく既存のアセットの手動での修正が必要です。
-
物理コントロール コンポーネントは実験段階のプラグインのままであるため、物理コントロール コンポーネントの変更には、おそらく既存のアセットの手動での修正が必要です。
-
物理コントロール コンポーネントは実験段階のプラグインのままであるため、物理コントロール コンポーネントの変更には、おそらく既存のアセットの手動での修正が必要です。
新機能:
-
PhysicsControlComponent が整理し直され、非公開の実装が除去されて、拡張を受け入れやすくなりました。スケルタルメッシュ コンポーネントの欠落に対応できるようになりました。強度および減衰がゼロである場合に、コントロール/コンストレイントが完全に無効になります。物理アセットの実行中に、RigidBodyWithControl にある物理アセットを設定できるようになりました。無効なコントロールなどの使用が試行されたことが警告として報告されるようになりました (これを有効または無効にするための、物理コントロール コンポーネントのオプションがある)ControlSettings が ControlData 構造体に移されました。
-
物理コントロール コンポーネントの非アクティブ化のサポートが削除されました。
-
物理コントロール プロファイルが実装されました。PhysicsControlComponent と RigidBodyWithControl のどちらでもそれを使用できます。
-
物理コントロール:ボディ モディファイアの「デフォルトの」移動タイプがサポートされたため、移動への変化は強制されません。これにより、キネマティック ボディがある物理アセットの初期化の問題が修正されました。
エディタ
アップグレード ノート:
- [Add Spline Point (スプライン ポイントを追加)] のデフォルトのキーボード ショートカット (以前は A キー) が削除されました。このアクションは、[Editor Preferences (エディタ環境設定)] で再度割り当てることができます。-> キーボード
バグ修正:
- WASD を使用してカメラを動かすときに、スプライン ポイントが誤って追加されなくなりました。
基礎
アップグレード ノート:
- テスト セクションに入るときとテスト セクションから出るときに呼び出されます。
- 例: MyTest.Log.Validation.TestTrue というテストの場合、 該当するセクションのテストが実行される前に、OnEnteringTestSectionEvent を通じて以下が呼び出されます。 - MyTest - MyTest.Log - MyTest.Log.Validation 実行後にセクションを離れるときに、該当するものが呼び出されます。 次のようにしてコールバックを登録できます。 FAutomationTestFramework::Get().GetOnEnteringTestSection(TEXT("MyTest.Log")).AddRaw(this, &FMyModule::MySectionCallback); 最初の引数として、セクションの名称が渡されます。
新機能:
- Introduce FAutomationTestFramework::OnEnteringTestSectionEvent, FAutomationTestFramework::OnLeavingTestSectionEvent
ビルド
アップグレード ノート:
-
許容されない単語が削除されました。MemoryMappedFiles コンフィギュレーション設定名「MasterEnable」が「Enable」に変更されました。
-
プロジェクト パッケージ化の設定名「MovieBlacklist」が「MovieDenyList」に変更されました。
新機能:
-
許容されない単語が削除されました。MemoryMappedFiles コンフィギュレーション設定名「MasterEnable」が「Enable」に変更されました。
-
許容されない単語が削除されました。プロジェクト パッケージ化の設定名「MovieBlacklist」が「MovieDenyList」に変更されました。
コア
アップグレード ノート:
-
これまでカスタム レポーティングのエンドポイントの設定を Engine/Programs/CrashReportClient/Config/DefaultEngine.ini を修正することに依存していたプロジェクトは、[Project]/Config/DefaultEngine.ini を使用して設定できるようになりました。
-
CSV プロファイル出力に追加のデータが含まれますが、全体的な形式は変わりません
-
エディタにおけるブループリント アセットのロードとコンパイルは、あまり良好でない傾向があります。この変更により、ブループリントとその依存関係のプリロードに関して過去に見られたさまざまな問題への対処が容易になるはずです。変更に伴ってロードに関連した問題が疑われる場合は、まず「linker.EnableFullBlueprintPreloading」を無効にし、それから UDN でその問題についてレポートしてください。
-
CSV プロファイル出力に追加のデータが含まれますが、全体的な形式は変わりません
新機能:
-
Crash Report Client でプロジェクトのオーバーライドに関するサポートを追加しました
- CrashReportClient がプロジェクト構成のさまざまな設定を読み取ることができるよう、いくつかの変更を加えました。また、コンパイル時間から定義されるフォールバックもレポート URL 用に追加しました。これにより、サードパーティのクラッシュ レポート プロバイダを、エンジンのコンフィギュレーション ファイルを修正せずに簡単にセットアップできるようになります。
- ユーザー インターフェースにも、一部のユーザー インターフェースのテキストにおける会社名の設定といった追加をいくつか行いました。
- 最後に、多くのコア マシンにおける、CrashReportClient のメモリ使用量も改善しました。
-
「iris」CSV メタデータ タグを追加しました。Iris 専用プレイテスト以外でプレイテストを拡張する際に、どのビルドで Iris が有効になっていたかを追跡することができます。GameNetDriver で「IsUsingIrisReplication」が true に設定されているとフラグは「1」に設定されます。このロジックを InitBase 内で実行すると、クライアント側では PendingNetDriver で Iris を使用する設定になっていない早すぎるタイミングであるため、UNetDriver::PostCreation で実行します。
-
ブループリント クラスのオブジェクトに対するローダーの仮定を固定し、エクスポートの強制フラッシュを追加しました。問題が発生した場合のために CVar「linker.EnableFullBlueprintPreloading」を使ってトグルするようにします。ブループリントとその対応クラスのコンパイル時に、パッケージ内の他のエクスポートを参照する必要が生じることがよくあります。これらのエクスポートはコンパイルに先立って完全にプリロードされていると思いがちですが、そうではないことも多々あります。RegenerateBlueprintClass および RegenerateClass の両クラスとも、エクスポートのプリロード用ロジックが不完全であるため、ウィジェット ブループリント内のウィジェット ツリーの一部などがよく欠けています。FPreloadMembersHelper を修正して依存関係をすべて正しく検出しようとするのではなく、指定されたブループリント パッケージにおけるエクスポートのほぼすべてが、ブループリントまたはそのクラスによって参照されるという事実を利用して、単にエクスポートがすべてプリロードされるよう強制します。これでオブジェクトのプロパティ参照を調べて参照対象を正確に見つけ出す必要は回避できます。前の動作は不正確であったものの、明らかなエラーは発生しませんでした。しかし、オブジェクトがポストロード前に常にプリロードされる状態が確保されるよう試行を続けているなかで、ブループリントのコンパイル時にしばしば違反が発生していました。
-
LTO と PG_Instrumentation の CSV メタデータにフラグを追加しました。これにより、キャプチャ時にオンになっている機能を知ることができます
フレームワーク
オーディオ
アップグレード ノート:
-
以前は不可能であった、FMetasoundGeneratorHandle::WatchOutput をリバースするアビリティです。
-
Oculus Audio プラグインを使用するには、プラグインの最新バージョンをプラグイン ベンダーから直接的に取得します。
-
ソースのエフェクトを調べると、コントロール バスのパラメータが不一致であるという警告が表示されているはずです。その場合はコントロールバスがボリューム パラメータを使用するように更新する必要がありますが、そうしない場合でも適切に機能するはずです。
新機能:
-
[MetasoundEngine] WatchOutput 演算の逆数として UnwatchOutput API を提供します。
-
Oculus Audio プラグインを削除しました。
バグ修正:
- コーラス ソース エフェクトのウェット/ドライ モジュレーション パラメータをボリュームに変更しました (サブミックス モジュレーターとの整合のため)。
ブループリント
アップグレード ノート:
-
これにより、アセットがエディタで正しく機能するよう、CDO の構築時に作成されたインスタンスをメンバーが参照することになりますが、アセットが保存される/最後に保存された時点より前から設定されていた非デフォルト値はどれも復元されません。
-
アセットを再保存すると、アセットが使用可能な状態に戻り、ロード時に警告が表示されなくなります。保存時に警告が表示される場合は、データ損失につながる問題が発生する可能性を示しています。
バグ修正:
- シリアル化された NULL メンバーがブループリント CDO に含まれている場合の、ロード/保存時の警告を追加しました。最近接のネイティブ親クラスの C++ コンストラクタによって割り当てられる、デフォルトのサブオブジェクト インスタンスを参照する必要がなくなります。
ブループリント エディタ
アップグレード ノート:
- ブループリントの検索メタデータのスキーマを変更しました。親クラスの関数のオーバーライドやインターフェースの実装を行う際の、ブループリント関数ライブラリの呼び出し、親の呼び出し、関数グラフを、完全一致検索で確実に見つけられます。現在、ブループリントの検索メタデータはブループリント アセットの一部として保存されているため、改善された検索機能を完全に活用するには、ブループリント アセットをロードして再保存する必要があります。すべてのブループリント アセットを再保存する必要はありません。以下のアセットの検索性を参考にしてください。
- ロード済みアセット:完全に検索可能
- UE 5.4 でアンロードして再保存したアセット:完全に検索可能
- アンロード後に再保存していないアセット:関数ライブラリの呼び出し、親関数の呼び出し、インターフェースの実装、グラフをオーバーライドする関数の結果が見つからない場合があります。ほとんどの関数呼び出し元は、関数ライブラリにない場合でも見つけることができます。
- プロジェクトの全体検索を実行する際に、古いメタデータを含むアセットが解析されると [Find-in-Blueprints (ブループリントを検索)] ウィンドウにメッセージが表示されます。完全な検索性を得るために、該当するアセット リストをエクスポートするか、そのアセットすべてをメモリにロードするかのオプションが表示されます。[Find-in-Blueprints] ウィンドウから発生するすべての一括操作には警告メッセージが表示され、ユーザーにそのアクションを承知させます。プロジェクトが大規模な場合や、何らかの理由でアセットのロード時にエディタがクラッシュした場合を踏まえ、古いメタデータを含むアセットをすべてロードする前述のオプションは賢明とは言えません。小規模なプロジェクトであれば、該当アセットを一括で再保存しても構いません。「Editor Preferences > Blueprint Editor Settings」の下に、一括操作を無効/有効にするための設定「Allow Index All Blueprints」が追加されました。
- None: [Find-in-Blueprints] ウィンドウからの、ロードや保存などのあらゆる一括操作を許可しません。
- Load Only (default): 古いメタデータを含むアセットの一括ロードを許可します。
- Checkout and Save: 古いメタデータがあるアセットの大量のチェックアウト、ロード、再保存を許可します。 エディタ UI から設定することで、現在のユーザーに適用されます。「Config/DefaultEditorPerProjectUserSettings.ini」ファイルを作成または変更して以下のセクションを追加することで、すべてのユーザーに対し、「Allow Index All Blueprints」を介してプロジェクト全体の設定を行うこともできます。[/Script/BlueprintGraph.BlueprintEditorSettings]AllowIndexAllBlueprints=None | LoadOnly | CheckoutAndResave
新機能:
-
Find References (リファレンスを検索) : 関数クラスを組み込んだ、完全一致の関数検索を追加しました。これまで、関数のリファレンス検索は名前による未加工の検索であったため、他クラスの同名を持つ関数や、部分文字列に関数名を含むノードなど、無関係な結果を引き出していました。この完全一致検索は、ブループリント ライブラリを含む関連クラスまたはインターフェースの、関数の呼び出し元および実装のみを見つけます。
-
関数に関連したノードおよび変数ノードのリファレンス検索がサブメニューになることで、名前による検索とクラス メンバーによる検索 (新機能) の両メソッドが利用できるようになりました。ショートカットキーによる動作はこれまでどおり、関数には名前による検索、変数には完全一致検索を行います。名前による検索は、完全一致検索よりも高速であることを覚えておいてください。完全一致検索は、名前による最初の検索で関連のない多くの結果が引き出される場合にお勧めします。
ゲームプレイ
API の変更:
-
これを使用するには GDK へのアクセスが必要です。
-
このプラグインは GDK へのアクセスを要求します。
-
つまり、何らかの理由でエンジンを修正し、XInputInterface.h を一般に利用可能なインクルードにしている場合、依存関係として XInputDevice モジュールを追加する必要があります。XInput を拡張して公開できるようにエンジンをカスタマイズしていない限り、このようなことは起こり得ません (これは未公開のモジュール フォルダに入っており、API で公開されていないため、修正されている場合は対応しかねます)。
-
RegisterSpecificAsset の実装の戻り値の型を、EDataRegistryRegisterAssetResult を返すように変更してください。
アップグレード ノート:
-
従来のゲームパッドを処理したい場合、XInput を無効化すると「二重報告」の入力イベントを避けることができます。
-
これを使用するには、プロジェクトのプラグインを有効にするだけです。設定内容を変更してデバイスの処理を有効にするには、[Project Settings (プロジェクト設定)] を変更します。
-
このプラグインはデフォルトでオンになっているので、何もする必要はありません。
-
RegisterSpecificAsset の実装の戻り値の型を、EDataRegistryRegisterAssetResult を返すように変更してください。
-
特に何もする必要はありませんが、既存の入力システムを拡張する場合は UPlayerInput で EvaluateKeyMapState と EvaluateInputDelegates という 2 つの異なる仮想関数をオーバーライドすると役立つはずです。
-
GameFeatures プラグインがランタイムに移行したことにより、プロジェクトの「DefaultEditor.ini」ファイルの GameFeaturesEditorSettings セクションにある PluginTemplates 参照の更新が必要な場合があります。
-
UAbilityTask_ApplyRootMotionMoveToActorForce に、目的地の到達距離を設定するためのサポートを追加しました。
-
AbilityTask_ApplyRootMotionMoveToActorForce に、コンポーネントを相対位置でターゲットにできるサポートを追加しました。
-
以前は、GameplayCue を削除すると、同等のすべてのキューが OnRemove を受け取るにもかかわらず、そのタグとカウントを持つ単一の EGameplayTagEventType::AnyCountChange コールバックが発生していました。つまり以前は 15 個の Gameplay タグで発生するのは単一のコールバックでしたが、現在は 15 個のコールバックとなります。これにより、GameplayCue タグで AbilityTask_WaitGameplayTagCountChanged の類を使用している場合の動作が変わります (以前は 1 個だけであったコールバックが今後は 15 個発生)。この機能を切り替えるための CVar は GameplayCue.Fix.UseEqualTagCountAndRemovalCallbacks です (デフォルトで true になりました)。
-
これまでは、シミュレートされたプロキシにおいて、Multicast RPC の値をゲームプレイ アビリティ用に (どのデータも適切にレプリケートされなかったものの) 取得することは可能でした。今後は、シミュレートされたプロキシにゲームプレイ アビリティがレプリケートされなくなります。
-
これは、ControllerId だけを更新し、入力イベントで InputDeviceId を実際に更新しなかったため機能しませんでした。この修正は、任意のゲームパッド イベントで必要時に、新しい「偽」の入力デバイス ID を作成し、次の利用可能なローカル プレーヤーにマッピングするためです。その結果、両デバイスが LocalPlayer[0] を制御するのではなく、キーボードとマウスが LocalPlayer[0] を、ゲームパッドが LocalPlayer[1] を制御する動作に変わります。これにより、分割画面におけるゲームで予期しない問題が発生する場合は、CVar「input.bRemapDeviceIdForOffsetPlayerGamepadIds」を使って無効にできます。
-
UCharacterMovementComponent::MoveAutonomous() メソッドを更新し、そのレプリケーション動作を変更しました。無効になった前の動作を CVar「EnableQueuedAnimEventsOnServer」にするためです。この変更後、CVar「EnableQueuedAnimEventsOnServer」はデフォルトで有効になることにご留意ください。新しい動作を取得するために、古いプロジェクトでこの CVar が無効になっていたら有効にする必要があります。
新機能:
-
Game Input Windows の実験的プラグイン。Windows 向け Game Input は、あらゆる種類の入力デバイスを単一の一貫したインターフェースで示す次世代入力 API です。Unreal Engine における Game Input の目標は、エンジンのデフォルトで可能な限り多くの入力デバイスをサポートすることです。これにより、開発者は自身のゲームで真に有効な操作をいくつも生み出し、プレイヤーの体験やアクセシビリティを「設定を必要とせずに」向上させることができるようになります。Game Input により、Raw Input などのソリューションを備えた UE で、レーシング ホイール、フライト スティック、楽器などが、これまでよりも容易に、支援する「特殊な」入力デバイスとなります。Game Input は、「従来の」ゲームパッドも処理できます。Game Input プラグインの実験的リリースにおける目標は、既存の XInput プラグインおよび Raw Input プラグインと同等の機能を持つことです。言い換えると、ゲームパッドの処理に限らず、販売会社および製品 ID に基づいたハードウェアのあらゆる構成をカスタムするうえでも使用できることです。
-
実験的「Windows Game Input」プラグインを追加しました。このプラグインにより、GDK の新しい Game Input ライブラリが Win64 および WinGDK のビルドのターゲットで使用できるようになります。将来的には、レーシング ホイールやフライト スティックといった「特殊な」入力デバイスのために、強化された全面的サポートを提供できるようになるはずです。当面、このプラグインは Windows の Raw Input および XInput の既存動作と基本的には同等です。
-
XInput を、Windows アプリケーションの一部として作成されるものではなく、入力デバイスの独自モジュールにしました。これは、将来的に GameInput をデフォルトの入力デバイスとして有効にするための下地となります。また、プラグイン システムを介して XInput をオフにすることが容易になり、WindowsApplication.cpp に多くのチェックを追加する必要はありません。
-
特定のアセットを登録する際の、列挙型の戻り値を追加します。これはアセットがすでに登録されている場合に警告をログアウトすべきではないためであり、ログアウトするとツールが警告を発する原因にもなります。
-
UPlayerInput::ProcessInputStack 関数のリファクタリングにより、キーマップの評価をデリゲートのブロードキャストから分離できるようになりました。これにより、Enhanced Input などのサブクラスのキーまたはデリゲート バインディングの消費ステートを変更できるようになります。つまり、レガシー キー マッピングやゲームプレイ デバッガのキー バインディングなどを明示的にブロックできる入力アクションをマークすることができます。
-
実験的機能の GameFeatures プラグインと ModularGameplay プラグインをランタイムに移行しました。これらプラグインは 5.2 でベータ版に変更されましたが、その時点では移行されませんでした。
-
UAbilityTask_ApplyRootMotionMoveToActorForce に、目的地の到達距離を設定するためのサポートを追加しました。
-
AbilityTask_ApplyRootMotionMoveToActorForce に、コンポーネントを相対位置でターゲットにできるサポートを追加しました。
-
[GAS] PR #11156: OnRemove がキューに送信された後のゲームプレイ キューの削除で発生するバグを修正しました。
バグ修正:
-
[GAS] レプリケートされたゲームプレイ アビリティがシミュレートされたプロキシに複製される、長年のバグを修正しました (所有クライアント -- 自律プロキシにのみレプリケートされることを想定)。
-
GameViewportClient の bSkipAssigningGamepadToFirstPlayer を修正しました。
-
サーバー上でアニメーション グラフの完全アップデートを実行する際に、キューに入っているアニメーション通知が発生しない CharacterMovementComponent の問題を修正しました
ネットワーキング
アップグレード ノート:
- UNetConnection::ClientHasInitializedLevelFor は非推奨となりました。代わりに UNetConnection::ClientHasInitializedLevel を使用/オーバーライドする必要があります。
新機能:
- ULevel から、クライアントがレベルを初期化したかどうかをクエリできるようになりました。
学習リソース
サンプル コンテンツ
アップグレード ノート:
- BP_SunSky を使用するレベルは、希望に応じて VolumetricCloud アクタを削除するか、BP_SunSky の VolumetricCloud コンポーネントを無効にする必要があります。
新機能:
- SunPosition プラグインを更新し、使いやすくてアートな指向性を持つ雲マテリアルに生まれ変わったボリュメトリック クラウド コンポーネントを追加しました。
レベル デザインとアート ツール
ジオメトリ コア
アップグレード ノート:
- 新規:新しい CVar「modeling.DisableAutoUVAreaDensitySampling」を用意しました。この CVar が設定されていると、Patchbuilder での UV 生成用に動作を元のアルゴリズムに戻します。レガシーな理由からその動作を維持すべき場合に有用です。
新機能:
- 変更点: ポリグループ生成段階の変更を介し、UV 生成スキーム PatchBuilder を改善しました。メッシュ表面の面積を認識したサンプリングを提供し、メッシュ内の小さな分断領域がセグメンテーション全体に及ぼしていた過度な作用を軽減します。
プロシージャル
API の変更:
- IPCGElement に「abort」機能を追加しました。キャンセルされる前にタスクが完全に完了していない場合の特別な動作が可能になります。
アップグレード ノート:
-
既存のアンロードされた PCG パーティション アクタを持つあらゆるレベルを完全にロードし、その PCG ワールド アクタを保存する必要があります。これで、アンロードされたグリッド セル内の重複した PCG パーティション アクタが作成されることを回避する非推奨ステップが実行されます。この時点であれば PCG パーティション アクタのアンロードは安全です。この手順を踏まず、一部のグリッドセル内に重複した PCG パーティション アクタが存在する場合、データを復元するにはシリアル化されたすべての PCG パーティション アクタを削除 (Tools -> PCG Framework -> Delete all PCG partition actors) し、次に元の PCG コンポーネントを再生成します。
-
以前の非推奨ノードは、古い動作に従う際にソースよりも Union ノードを優先します。
-
PCG データ コレクションの「CancelExecutionOnEmpty」プロパティは非推奨となり、今後は何も実行しません。
新機能:
-
エディタ および World Partition のレベル外部で、PCG パーティション アクタをオンデマンドで作成できるサポートを追加しました。
-
Difference ノードをリファクタリングしました。Difference ピンに暗黙的なユニオンを持つソース ピンで新しいループのパターンに従います。
バグ修正:
- キャンセルの動作のうち、特にグラフの依存関係がある場合の動作を改善しました。問題の原因となっていた CancelExecutionOnEmpty 機能を削除しました。ノードのカリングに代わります。
UV エディタ
アップグレード ノート:
-
Cvar「modeling.UVEditor.EnableLivePreviewArrangement」を追加しました。コンテンツブラウザから選択する際の自動配置機能を有効/無効にできます。これは、UVEditor でオブジェクトを配置する際に、トランスフォームのオブジェクトの値をベイクしたいレガシー動作がある場合のサポートです。
-
CVAR「modeling.UVEditor.LivePreviewArrangementMode」を追加しました。自動配置モード (線状配置の場合は 0、適応性のある円形配置の場合は 1) を選択できます。
新機能:
- 変更点: UVEditor の 3D ビューポートで複数のオブジェクトを読み込む際の処理を改善しました。複数のアセットを開くとき、ビューポートからであれば相対トランスフォームが保持され、コンテンツブラウザからであれば自動配置が適用されます。
ワールドのビルド
アップグレード ノート:
- 万が一、プロジェクト内に FWorldPartitionResolveData を直接利用する C++ コードがある場合は、パフォーマンス向上のために FTopLevelAssetPath のオーバーロードを使用するようにコードを更新してください。
新機能:
- 不要な文字列操作を避けるために FTopLevelAssetPath を使用するよう、World Partition のリゾルブ ヘルパーを変更しました。
ローカライゼーション
アップグレード ノート:
- 明示的にロードされたプラグインのローカライゼーション データをデフォルトでマウントしません。
- MountExplicitlyLoadedPlugin 関数のいずれかを呼び出してプラグインをロードしていたすべてのものは、ローカライゼーション データのマウントも実行したい場合、今後は MountExplicitlyLoadedPluginLocalizationData も呼び出す必要があります。
新機能:
- 明示的にロードされたプラグインのローカライゼーション データをデフォルトでマウントしません。
- これにより、プラグインのマウンティングとコンテンツ ローディングを 2 つの段階に分けることができます。GFP は「マウント」時にプラグインをマウントし、ローカライゼーション データのマウントは「ロード」時まで先送りすることができます。
- GFP 専用の CVar「GameFeaturePlugin.DeferLocalizationDataLoad」を追加しました。GFP のローカライゼーション ローディングを旧 (5.3) または新 (5.4) のどちらのバージョンの挙動で実行するかを制御できます。
オンライン
HTTP
アップグレード ノート:
- この変更に伴い、FHttpRetrySystem::FManager の既存のホルダーを共有 ptr に変換する必要があります。
新機能:
- リクエストの再試行マネージャーの共有 ptr を保持することで、http スレッドの http リクエストの安全な再試行を確保します。
レンダリング
アップグレード ノート:
- r.RayTracing.RequireSM6 を使用して前の動作を復元することができます。
新機能:
- シェーダー モデル 5 のレイ トレーシングを無効にします。
ライティング
アップグレード ノート:
-
クリップマップのレベル選択で前の動作に戻したい場合は、r.Shadow.Virtual.Clipmap.GreedyLevelSelection を 1 にします。r.Shadow.Virtual.Clipmap.WPODisableDistance.LodBias を調整すると、WPO を使用してアニメートされた群葉のあるシーンで、パフォーマンスとビジュアル アーティファクトの間のバランスを取ることができます。効力を得るにはプリミティブでの [WPO disable distances (WPO 無効化距離)] 設定が必須であることに留意してください。
-
この変更により、シーン キャプチャまたは同様のシステムのページが、メインの VSM 物理ページのプールに戻されます。そのため、場合によってはページのプール サイズを増やしてキャッシュのスラッシングを回避する必要があります。
-
古い動作に依存していた古いプロジェクトは、(以前のように) カリングされるライトを呼び出さないように距離スケールを非常に大きい値に設定するか、または、すべてのライトを所定のスケーラビリティ設定のカリング距離でカリングしたい場合は 0 に設定します (0 は有効な値になりました)。
新機能:
-
前の無効化と WPO の動作に基づいた仮想シャドウ マップの、インスタンスごとの静的/動的キャッシングを決定する新しいシステムを実装しました。これにより、インスタンス化されたジオメトリ (通常は群葉) が動的キャッ シュに移行されると元に戻らなくなる問題に関する諸状況が改善されました。
- WPO 無効化距離に基づく一定のポイントを超えたクリップマップにおける、WPO アニメーションの無効化をサポートします。これはキャッシング/静的キャッシングが無効であっても優れたパフォーマンス ツールとして有用です。関連する CVar は以下のとおりです。
- r.Shadow.Virtual.Clipmap.WPODisableDistance:有効にすると、プリミティブの WPO 無効化距離および r.Shadow.Virtual.Clipmap.WPODisableDistance.LodBias 設定に基づくクリップマップ レベルの WPO アニメーションを無効にします。デフォルトは 1 (有効) です。
- r.Shadow.Virtual.Clipmap.WPODisableDistance.LodBias:インスタンスがアニメーションされる距離を超えてどれだけシャドウ アニメーションを許可するのかを示す、クリップマップのレベル数です。通常は 2~4 が適していますが、WPO の動きが顕著である非常に低照度の角度では調整が必要かも知れません。デフォルトは 3 です。
- 強引なクリップマップ レベル選択 を制御する CVar を追加しました (r.Shadow.Virtual.Clipmap.GreedyLevelSelection)。デフォルトでは無効です。これは、特定の角度で強引な選択を実行する粗悪なページに関連する古い問題を解決します。また、新しい WPO 距離の無効化の動作がより予測しやすくなります。WPO 距離の評価時/変更時にインスタンスを無効にします。
- 単一「フレーム 」(シーン キャプチャなど) 内における複数レンダリングに対し、仮想シャドウ マップのキャッシュをより永続的で堅牢にしました。
バグ修正:
- r.LightMaxDrawDistanceScale が 0 (Low) に設定されている際の、ローカル ライトの最大描画距離が無視されるバグを修正しました。これを 0 に設定すると、カリング距離が 0 以外のローカル ライトがすべてカリングされるようになります。デフォルトの Low スケーラビリティが Medium(0.5) と同じになるよう r.LightMaxDrawDistanceScale を調整しました。#contrib 10947
マテリアルとシェーダー
アップグレード ノート:
- アンチゴーストが重要であるタイトル以外で変更は必要ありません。アンチゴーストが重要であるタイトルの場合、モード 1 よりも画質を向上させるため、またはモード 2 よりもパフォーマンスを向上させるために、モード 3 の使用を検討します。
新機能:
- r.TemporalAA.Quality に TAA モード 3 を新たに追加しました。このモードは、モード 1 のアンチエイリアス品質とモード 2 のアンチゴーストを併せ持つものであり、パフォーマンスはモード 1 よりわずかに低速ですがモード 2 よりはるかに高速です。モード 2 のアンチゴーストを要するタイトルの妥協点を、パフォーマンスを向上させて提供します。
- 既存モードの 0、1、2 に変更はありません。
Nanite
アップグレード ノート:
- SplineMeshComponent の Nanite レンダリングが機能するようになりました。デフォルトは有効です。有効な Nanite でメッシュを使用したスプライン メッシュは、Unreal Engine 5.3 ではフォールバックのスタティックメッシュを使用した非 Nanite としてレンダリングされます。Unreal Engine 5.4 では、これらコンポーネント間にビジュアルの違いが生じる可能性があります。前の動作にロールバックするには、
r.SplineMesh.RenderNanite=0に設定してください。
新機能:
-
Nanite スプライン メッシュ
-
スプラインの計算をルックアップ テクスチャにベイクできるよう最適化を追加しました。アクセス速度の改善のためです。
-
Nanite スプライン メッシュ クラスタのカリングとラスタライズに関する、さまざまな最適化があります。
-
Nanite スプライン メッシュはリリース可能な状態であり、デフォルトで有効です。
Niagara
アップグレード ノート:
- これにより、既存グラフの動作が変更されることに注意してください。元の実装に戻すには、要素の区分ごとの比較が必要になります。
新機能:
- Niagara グラフの != 演算子のベクター版を修正しました。これまでは、ベクターの構成要素のいずれかが異なっていれば true という通常の結果ではなく、ベクターのすべての構成要素が異なっている場合にのみ true を返していました。
シミュレーション
物理
アップグレード ノート:
-
既存のスケルタルメッシュのクロス アセットは、偽の角度スケールにサブディビジョン カウントを乗算することで既存の動作を保持しつつ [0、2] のクランプも尊重するようアップグレードされます。そのため、一部のアセットでは動作が変更される可能性があります。Chaos クロス アセットはアップグレードされません。
-
UE 5 の初期に、ルート ボディがシミュレートに設定されていると、スケルタルメッシュ コンポーネントがアクタから自動的に切り離されるバグが発生していました。この変更でバグが修正され、スケルタルメッシュ コンポーネントは、パーツがシミュレートに設定されている場合でも所有アクタにアタッチされた状態を保ちます。そのため、パーツをシミュレートに設定するだけでは切り離せないコンポーネントを明示的に切り離す必要がプロジェクトで生じます (ピックアップしていたオブジェクトの投下時など)。シミュレート中であるが切り離されていないコンポーネントは、所有アクタの動きを「継承」する可能性があることに留意してください。
バグ修正:
-
Chaos クロス:複数のサブフレーム (Subdivision Count) で適切なスケーリングを使用できるよう、偽の角力を修正しました。
-
ボディがシミュレートに設定されている際にスケルタルメッシュ コンポーネントがそのアクタから切り離される問題を修正しました。この切り離しは UE 5 の初期に発生していたため、これに依存していたプロジェクトの場合、以前はなかった不具合が修正によって出ないよう注意が必要です。