新機能
次世代のバーチャル プロダクション ツールと強化されたリアルタイム レイトレーシングのおかげで、 映画とテレビの制作が大きく変わりました。nDisplay を搭載した LED の壁を使用することで、UE4 環境内に現実世界のアクタや小道具を配置できるだけでなく、それらにライトと反射をキャスト (ベータ版) し、ライブセットで最終的なショットを実現できます。また、VR スカウト ツール (ベータ版)、強化された Live Link リアルタイム データ ストリーミング、iPad または他のデバイスから UE4 をリモート制御する機能 (ベータ版) も追加されました。レイトレーシングは、安定性とパフォーマンスを改善するために多くの機能強化が施されています。加えて、ランドスケープ ジオメトリ、インスタンス化されたスタティック メッシュ、プロシージャル メッシュ、ナイアガラ スプライト パーティクルなどの追加のマテリアルおよびジオメトリ タイプがサポートされるようになりました。
Unreal Engine で、限りなく現実世界に近いワールドを作り上げることができます。新しい Chaos 物理および破壊システムを使用すると、映画のような品質で大規模なシーンの破壊、粉砕、破壊がレベルで行えます。それにより、今までにないアーティスティックな制御が可能です。また、ランタイム仮想テクスチャリング、ランドスケープの非破壊的編集、フォーリッジ ツールを使用したインタラクティブなアクタ配置を行うことで、ユーザーがはっとするような素晴らしい体験を描画することができます。
そして、システムが最適化されたり、新しいツールが提供されたり、 より少ない手間でより多くのことを行えるように 機能が追加されました。仮想テクスチャリングで、ライトマップとアーティストが作成した詳細なテクスチャのメモリ オーバーヘッドが削減されたり、プロシージャル マテリアルまたはレイヤー化されたマテリアルのレンダリング パフォーマンスがそれぞれ向上します。また、アニメーション ストリーミングを使用すると、ランタイム メモリへの影響を現在使用中のメモリのみに制限することにより、より多くのアニメーションを使用できるようになります。さらに、Unreal Insights は、UE4 の動作に関するデータを収集、分析、視覚化してプロファイリングを行います。それにより、ライブ セッションまたは事前に記録されたセッションのエンジン パフォーマンスの理解が簡単になります。
今回のリリースには、GitHub の Unreal Engine の素晴らしいデベロッパー コミュニティから 190 の改善点が寄せられました。Unreal Engine 4.23 に貢献いただいた以下の皆様に謝意を表します (以下、敬称略)。
Doug Richardson "drichardson"、Morva Kristóf "KristofMorva"、Reece Dunham "RDIL"、"projectgheist"、Jorgen P. Tjerno "jorgenpt"、Ondrej Hrusovsky "Skylonxe"、Miguel Fernandez "muit"、Geordie Hall "geordiemhall"、Artem Umerov "umerov1999"、Marat Radchenko "slonopotamus"、"AgentOttsel"、Eric Spevacek "Mouthlessbobcat"、Danny de Bruijne "danskidb"、Sertaç Ogan "SertacOgan"、Trond Abusdal "trond"、Joe Best-Rotheray "cajoebestrotheray"、Nick Edwards "NEdwards-SumoDigital"、Marcel "Zaratusa"、Mark Whitty "Mosel3y"、"YuchenMei"、Branislav Grujic "grujicbr"、"Rei-halycon"、Michael Hills "MichaelHills"、Nick Pearson "Nick-Pearson"、"mastercoms"、Zhi Kang Shao "ZKShao"、Nick "eezstreet"、"temporalflux"、Vladislav Dmitrievich Turbanov "vladipus"、Daniel Marshall "SuperWig"、Brian Marshall "TurtleSimos"、Sergey Vikhirev "Bormor"、Robert Rouhani "Robmaister"、Maxime Griot ""yamashi"、Igor Karatayev "yatagarasu25"、"Zeblote"、 Hesham Wahba "druidsbane"、Joe Best-Rotheray "cajoebestrotheray"、MoRunChang "MoRunChang2015"、Sébastien Rombauts "SRombauts"、JinWook Kim "zelon"、Riley Labrecque "rlabrecque"、Дмитрий "Yakim3396"、"DanMilwardSumo"、Wesley Barlow "Wesxdz"、Franco Pulido "Franco Pulido"、Kimmo Hernborg "KimmoHernborg"、John Dunbar "Volbard"、Michał Siejak "Nadrin"、kalle Hämäläinen "kallehamalainen"、"KaosSpectrum"、Evan Hart "ehartNV"、Skyler Clark "sclark39"、Thomas Miller "tmiv"、Stephen A. Imhoff "Clockwork-Muse"、David Payne "davidpayne-cv"、"CyberKatana"、"roidanton"、Milan Šťastný "aknarts"、Alex P-B chozabu、Marco Antonio Alvarez "surakin"、Taikatou、Doğa Can Yanıkoğlu "dyanikoglu"、"Kalmalyzer"、"phi16"、Mikhail Zakharov "zz77"、Paul Hampson "TBBle"、"NextTurn"、"Punlord"、kalle Hämäläinen "kallehamalainen"、Robert Pröpper "rproepp"、Yohann Martel ""ymartel06"、Francis J. Sun "francisjsun"、Eric Wasylishen "ericwa"、Phillip Baxter "PhilBax"、Alan Liu "PicaroonX",Mathias Hübscher "user37337",Daisuke Ban "exceed-alae"、Brandon Wilson "Brandon-Wilson"、Marcin Gorzel "mgorzel", “prolenorm”
主要機能
新機能:Chaos - Destruction (ベータ版)
2019 年の GDC のデモで公開された Chaos は、Unreal Engine の新しい高性能な物理システムおよび破壊システムです。これは、4.23 のリリースでベータ版として利用することができます。Chaos を使用することで、大規模なレベルの破壊と、これまでにないアーティスティックなコンテンツ作成が可能になるため、シネマティック品質のビジュアルをシーンでリアルタイムに実現できます。
Unreal Engine 4.23 の Chaos 機能は、有効にした上で、ソース ビルドを使用してコンパイルする必要があります。Chaos を有効にする手順については、「このガイド」を参照してください。
Chaos Destruction (破壊) の詳細については、Chaos Destruction のドキュメント ページを参照してください。また、様々なタイプのシミュレーションと効果を設定する方法を紹介するために、ランチャーの [Learn (ラーニング)] タブに「Chaos Destruction Demo」サンプルが追加されました。
Geometry Collections (ジオメトリ コレクション)
これらは Unreal にある「destructible」オブジェクト用の新しいタイプのアセットです。ジオメトリ コレクションは、ブループリントまたはネストされたブループリントにまとめられたものも含めた 1 つ以上のスタティック メッシュからビルドできます。ジオメトリ コレクションを使用することで、シミュレートするものをアーティストに選択させることが可能になります。また、これにより、破壊の整理と作成を柔軟に行うことが可能になります。

左 - ウォール セクション - 31 個のジオメトリ コレクション。右 - スタティック メッシュのパーツの分解図
Fracturing (粉砕)
ジオメトリ コレクションがあれば、粉砕ツールを使用してジオメトリ コレクションをいくつかのパーツに粉砕することができます。各パーツを個別に粉砕することも、1 つのパターンを複数のパーツに粉砕することもできます。標準のボロノイ フラクチャだけに加えて、ラジアル フラクチャ、クラスタ ボロノイ フラクチャ、ノイズを使用した平面カットを使用できます。それらを使用することで、より自然な結果を得ることができます。

左 - オリジナルのジオメトリ コレクション。中央 - メッシュ全体の粉砕。右 - 大きなパーツのみ粉砕
クラスタリング
最適化の観点から、Sub-fracturing (一部粉砕) を使用することで複雑にしたい場所を制御できます。粉砕するたびに、追加のレベルがジオメトリ コレクションに追加されます。Chaos システムは、それに続く各レベルを追跡しその情報をクラスタと呼ばれるものに格納することで、制御できるようにします。以下は、各々の粉砕のレベルがそれ自身のクラスタの集合に組み込まれたメッシュの例です。

左 - レベル 1:6 のオブジェクト。中央 - レベル 3:50 のオブジェクト。右 - レベル 5:513 のオブジェクト
接続グラフ
これは少し異なるパラダイムを使用している破壊シミュレーション用の軽量接続マップです。下の画像には静的に固定されたピースがいくつかありますが、シーン内にある他すべては動的なピースとなる可能性があります。

青 - Chaos で使用される可能性あり。黄色 - 固定ノード
Chaos システムは、キネマティックな状態から動的な状態に切り替えるのではなく、ひずみを加えます。そして、そのひずみによって順番に接続が切断され、Chaos の破壊が発生します。これは、アクティブな剛体の量を制御しながらもインタラクティビティを最大限に高めたい場合に適した方法となります。
Fields (フィールド)
フィールドは、シミュレーションと直接やり取りしてシミュレーションを制御する方法です。フィールドを使用すると、ジオメトリ コレクションの任意の部分の任意の属性を制御できます。例えば、インスタンスの質量を変えたい場合や何かを静的にしたい場合は、角を中央よりも割れやすくした上で力を加えますが、これらすべての操作は、フィールドで行うことができます。
Cached Simulations (キャッシュされたシミュレーション)
キャッシングを使用すると、忠実度の高いシミュレーションを事前にキャッシュしてリアルタイムで再生することができ、その結果、キネマティックなジオメトリ コレクションを実現できます。これはつまり、大規模な破壊イベントを作成してもプレイヤーや環境とのやり取りが可能になるということです。
ナイアガラとの統合
Chaos システムは UE4 の第一級市民であり、それ自体、ナイアガラを含むワールドのシミュレートを行う他のすべてのシステムと共存します。シミュレーションに視覚的な効果を組み込むことで、自分のワールドに深みとリアリティを大きく与えることができます。例えば、建物がばらばらになると、大量のほこりや煙が発生します。これらを再現するには、破壊と VFX をうまく組み合わせる必要があります。物理システムからのデータは、オブジェクトが衝突したりバラバラになったりしたときにナイアガラに送信されます。そして、ナイアガラはそのデータを使用して面白い二次効果を生成します。
新機能:リアルタイム レイトレーシングの改善 (ベータ版)
レイトレーシング機能が改善されました。様々な最適化や安定性向上に加え、主要機能も追加されました。

パフォーマンスと安定性の向上
今回のリリースでは、Unreal Engine のレイトレーシング機能の安定性、パフォーマンス、品質の向上に大きな重点が置かれています。具体的には、下記のことを行っています。
- Unreal Engine 全体に対する DirectX 12 サポートの拡張
- レイトレース機能のノイズ削減品質の向上
- レイトレース グローバル イルミネーション (Ray Traced Global Illumination: RTGI) 品質の向上
追加のジオメトリとマテリアルのサポート
以下のジオメトリとマテリアル タイプが追加でサポートされるようになりました。
- ランドスケープ テレイン (KiteDemo にて 2080Ti で測定されたパフォーマンス:2ms 以下のジオメトリ更新時間と 500MB以下のビデオ メモリ)
- 階層インスタンス化スタティック メッシュ (Hierarchical Instanced Static Meshes: HISM) およびインスタンス化スタティック メッシュ (Instanced Static Meshes: ISM)
- プロシージャル メッシュ
- サブサーフェス マテリアルによるトランスミッション
- ランドスケープおよびスケルタル メッシュ ジオメトリに対するワールド位置オフセット (World Position Offset: WPO) のサポート
マルチバウンス反射フォールバック
シーン内の反射キャプチャにフォールバックすることにより、マルチバウンス レイトレース反射 (Ray Traced Reflections: RTR) のサポートが改善されました。つまり、黒を表示している内部反射 (または反射内の反射)、または最大反射距離を設定した場所は、黒を表示する代わりにこれらのラスタ方式にフォールバックします。
これにより、複数のレイトレース バウンスを使用することなく反射の質を多少良くすることができるので、パフォーマンスが大幅に向上します。

1 - 単一の RTR バウンス。2 - 2 つの RTR バウンス。3 - 最終バウンスでは反射キャプチャ フォールバックを行う単一の RTR バウンス
新機能:Virtual Texturing (仮想テクスチャリング) (ベータ版)
このリリースから、仮想テクスチャリングのベータ版がサポートされます。それにより、実行時にメモリ使用量をより低く、より一定にするために、大きなテクスチャを作成して使用できるようになりました。
Streaming Virtual Texturing (ストリーミング仮想テクスチャリング)
ディスクからテクスチャをストリーミングするための方法として既にミップ ベースのストリーミングがありますが、それ以外の方法としてストリーミング仮想テクスチャリングが追加されました。これは、仮想テクスチャ アセットを使用してディスクからテクスチャをストリーミングします。従来のミップ ベースのテクスチャ ストリーミングは、マテリアルの UV 使用量のオフライン分析を実行してから、実行時にオブジェクトの可視性とカメラの距離に基づいてロードするテクスチャのミップ レベルを決定します。仮想テクスチャの場合、すべてのミップ レベルは小さな固定サイズのタイルに分割されます。これにより、GPU は画面上のすべての表示可能なピクセルによってアクセスされる仮想テクスチャ タイルを決定できます。
仮想テクスチャをストリーミングすると、テクスチャ メモリのオーバーヘッドを削減でき、(ライトマップや UDIM テクスチャを含む) 非常に大きなテクスチャを使用する際のパフォーマンスが向上します。ただし、仮想テクスチャからのサンプリングは通常テクスチャのサンプリングより処理コストが大きいものになります。
詳細については、Streaming Virtual Texturingを参照してください。
Runtime Virtual Texturing (ランタイム仮想テクスチャリング)
ランタイム仮想テクスチャリングは、レベルに配置されたボリュームを持つランタイム仮想テクスチャ アセットを使用します。実行時に GPU を使用してオンデマンドでレンダリングされること以外は、従来のテクスチャ マッピングと同様に機能します。ランタイム仮想テクスチャは、広い領域にわたるシェーディング データのキャッシュに使用できるので、ランドスケープ シェーディングに適しています。
詳細については、Runtime Virtual Texturingを参照してください。
新機能:Unreal Insights (ベータ版)
Unreal Insights (現在ベータ版) を使用すると、Unreal Engine の動作に関するデータを統一的な方法で収集および分析できます。このシステムには 2 つの主要なコンポーネントがあります。
- Trace System API は、ランタイム システムから一貫した形式で情報を収集し、後の処理用にそれをキャプチャします。複数のライブ セッションから同時にデータを提供できます。
- Unreal Insights Tool には、Analysis API を介して処理されたデータのインタラクティブ ビジュアライゼーションがあります。それにより、アプリケーションからの統計、ログ、メトリクス用の統一されたインターフェースを使用することができます。
[Trace Session] ウィンドウ ([Unreal Insights] タブの下) で、1 つ以上のライブ セッションに接続したり、表示するライブ レコーディングまたは事前レコーディングされたセッション データを選択したりできます。
調べたいセッション データを選択すると、[Timing Insights] または [Asset Loading Insights] タブで内容に目を通すことができます。
新機能: HoloLens 2 のネイティブ サポート (ベータ版)
HoloLens 2 向けに作成できるようになりました。ストリーミングやネイティブ デプロイ、フィンガー トラッキング、ジェスチャーの検出、メッシュ、音声入力、空間アンカーのピン留めなど、プラットフォーム固有の機能の API にアクセスできます。また、AR ゲームまたはエンタープライズ アプリケーションをビルドできます。エミュレーターは安定して動作するため、UE4 と HoloLens 2 を使用した開発をすぐに始めることができます。デバイスを実際に入手したり、配信を待つ必要はありません。


詳細については、「Microsoft HoloLens 2 Development」を参照してください。
新機能:バーチャル プロダクション パイプラインの改善
Unreal Engine は、バーチャル プロダクション パイプラインの可能性の最前線を走り続けています。仮想的に環境をスカウトしてショットを作成し、仮想ワールドを使用して現実世界を照らし、ライブ ブロードキャスト要素をデジタルな表現とつなぎ合わせシームレスな体験を作り上げます。そして、その体験をカスタム ビルド インターフェースを使用してすべて遠隔制御します。
インカメラ VFX (ベータ版)
インカメラ VFX が改善されました。それにより、Unreal Engine シーンか UE4 のリアルタイム コンポジット用のデジタル グリーンバックのどちらかを表示できる LED の壁を使用して、現実世界のアクタや小道具と Unreal Engine 環境の背景を組み合わせた最終的なショットをライブで実現できます。
カメラ視錐台ベースのレンダリングにより、現実世界のアクタや小道具が CG 環境からのライティングや反射を受け取れるようになります。場合によってはポストプロダクション ワークフローが不要になり、全体的な制作スピードが大幅に上がります。グリーンバックをステージ上に物理的に設置することなく、ボタンをクリックするだけで LED の壁にデジタル的に配置することができるので、時間の節約が可能です。この方法は、nDisplay マルチディスプレイ技術を使用しています。それにより、事実上あらゆるサイズまたは構成の LED の壁に対応可能です。
映画製作者向け VR スカウト (ベータ版)
仮想制作環境を使用した映画を制作する際、VR での仮想ワールドの移動ややり取りを行う際の新しい方法として、新しく VR スカウト ツールが追加されました。このツールを使用することで、よりクリエイティブな判断ができるようになります。

ディレクターと DOP が簡単に場所を発見したり、ショットを作成したり、シーン ブロッキングを設定したり、撮影場所の正確な状況を得ることができる一方で、アーティストやセット デザイナーは、測定ツールやインタラクション ツールを使用して距離を確認したり、ワールドを修正したりしながら、VR のビルド中にその場所の状態を体験できます。仮想ワールドから画像をキャプチャすると、制作チーム全体が VR セッション中に行われた決定をトラックできるようになります。C++ を使用してエンジンを再ビルドする必要なく、ブループリントでコントローラと設定をカスタマイズできます。
詳細については、「Virtual Scouting」を参照してください。
Live Link データ タイプと UX の改善
Live Link プラグインはより多くの種類の情報を扱うようになりました。それにより、Unreal で同期されたデータをシーンの要素に適用するのがより簡単になりました。プロダクション パイプラインの他のアプリケーションやデータソースから、キャラクター アニメーション、カメラ、ライト、基本的な 3D トランスフォームを動的に操作できるようになります。
各シーン要素に ロール を割り当てることができます。これにより、Live Link がその要素に対して同期する情報が決定されます。Live Link プラグインは、キャラクター アニメーション、カメラ、ライト、基本的な 3D トランスフォーム用のビルトインのロールを提供します。また、アクタに新しい Live Link コントローラー コンポーネントを割り当てることで、任意の Live Link ソースから Unreal Engine レベルでアクタをより簡単に操作することもできます。
その他の改善
- (例えば、軸の変換の適用を目的として) シーンに適用する前に Live Link を介して受信したデータを前処理して、あるロールから別のロールにソースをマップするときに受信データをトランスフォームする方法の制御。独自のカスタム プリプロセッサ クラスとトランスレータ クラスを作成して割り当てることもできます。
- 複数のソースの仮想サブジェクトへの結合。これにより、複数の Live Link ソースからの情報に基づいて Unreal の単一のシーン要素を操作できるようになりました。
- 頻繁に使用する Live Link 設定のプリセットの保存とロード。
- ステータス インジケーター。どの Live Link ソースが現在 Unreal Engine にデータを送信しているのかが一目でわかるようになりました。
- Live Link を介したART トラッキングのサポートの追加。これにより、VR、AR、モーション キャプチャといったアプリケーションで、様々なトラッキングを行う際に ART の技術を活用できるようになりました。
詳細については、Live Link プラグイン を参照してください。
HTTP 経由でのリモート コントロール (ベータ版)
HTTP を経由して、リモートで Unreal Engine および Unreal Editor にコマンドを送信できるようになりました。
これにより、プロジェクトのコンテンツの変更をトリガーする、独自のカスタマイズされた Web ユーザー インターフェースの作成が可能です。Unreal Engine の制御は、最新の Web 標準をサポートする任意のブラウザまたはカスタム アプリケーションから行います。また、環境内にある他のアプリケーションの制御に使用する他のカスタム パネルにコントロールを統合することもできます。
リモート コントロール インターフェースによって提供される様々なエンドポイントを呼び出すことで、アクタとアセットのプロパティの設定を行ったり、そのプロパティを取得したり、ブループリントと Python に公開されているすべての関数を呼び出したりことができます。
詳細については、「Web Remote Control」を参照してください。
新機能:カーブしたサーフェスに対する nDisplay のワープとブレンド
nDisplay を使用し、Unreal Engine のコンテンツを、カーブした画面や球形画面、オーバーラップした投影間の複雑なブレンドを含むシナリオなど、物理的に設置してある様々なものに対して投影することができます。

nDisplay は、2D 画像を複数のプロジェクトから歪んでカーブしたサーフェスへ投影してブレンドする 2 つの一般的な表現方法について、ビルトインの統合を次のように提供します。
- Scalable Display Technologies によって開発された Scalable Mesh File (.smf) 形式。
- VESA によって開発された Multiple Projection Common Data Interchange (MPCDI) 規格。
さらに、サードパーティのデベロッパーは、拡張された一連のレンダリング インターフェースを実装することによって、nDisplay が UE4 コンテンツをレンダリングする方法をカスタマイズできます。
nDisplay の詳細については、「nDisplay を使用した複数ディスプレイへのレンダリング」を参照してください。
新機能:ナイアガラの改善 (ベータ版)
Chaos の物理への統合
Chaos の物理シミュレーションで ナイアガラのパーティクルを生成できるようになりました。これにより、オブジェクトが破壊されるたびに、煙や塵埃、さらには物理的シミュレーションの視覚的効果を高める、より小さな粉砕されたビットを生成することができます。関連するパーティクル システムにイベントを送信し、中断、コリジョン、トレイルなどの Chaos のインタラクション イベントに関する情報を提供する、Chaos 破壊リスナーも導入されました。サンプルは Chaos Destruction Content Example hallway にあります。
GPU シミュレーションの改善
GPU シミュレーションのパフォーマンスが大幅に向上しデータ管理が改善されたこと、計算されるジョブ間の同期プリミティブがより明確になったことから、アイドル時間が短縮されました。これにより、大量の GPU 作業をオーバーラップすることが可能になり、スループットが大幅に向上しました。そのため、さらに多くのコンピューティング シェーダを他の計算作業と並行して実行できるようになりました。
スタティック メッシュ、スケルタル メッシュのサンプリングに対しての GPU サポート
メッシュのサーフェスのサンプリング、UV 座標の取得、テクスチャからのサンプリングがGPU シミュレーションから可能になりました。それら機能を使用した複雑なシミュレーション ロジックを駆使することで、CPU と GPU でできることのギャップが狭まります。例えば、1 秒間に 60 万個のパーティクルがスポーンされる GDC Troll デモの妖精のような効果を作成することができます。
ナイアガラ スプライト エミッタのレイトレーシングのサポート
ナイアガラのシミュレーションで、GDC Troll デモ内の妖精が空を飛ぶときの水の反射のような、レイトレーシング時の反射やシャドウで使用されるジオメトリを生成できるようになりました。
現在スプライト エミッタ パーティクルのみがサポートされています。
エミッタの継承
ナイアガラでエミッタを作成するときに、プロジェクト内の既存のエミッタから継承されたものを作成できます。同様の目的でエミッタの機能の継承ツリーを作成できるため、コンテンツをより簡単に再利用できるようになりました。
例として、武器の効果で使用されるような基本的なマズル フラッシュのエミッタを作成する場合、小さなマズル フラッシュや大きなマズル フラッシュなど、違った種類のフラッシュも必要となる場合があります。基本のエミッタから継承することで、小さなバージョンと大きなバージョンの新しいエミッタを作成できます。それにより、どちらも元のマズル フラッシュと同じ基本の機能とレンダラを引き継ぐことができます。
コンパイルとクックの改善
2 つの新しいコンソール コマンドが追加されました。それらを使うことで古いデータをフラッシュし、ロードおよびクック操作中でのナイアガラ アセットの不要な再コンパイルを回避することができます。
- fx.PreventSystemRecompile は、単一システムとそれが依存するすべてのエミッタのデータをフラッシュします。
- fx.PreventAllSystemRecompiles は、プロジェクト内のすべてのナイアガラ システムを見つけて、それらのシステムとそれらが依存するエミッタをフラッシュします。
これを行ったアセットをフラッシュして再保存した後は、ロードとクックの処理が速くなり、データが古いことに起因する潜在的な問題から解放されます。
エラー報告の改善
スクリプトとエミッタ / システム エディタの新しいナイアガラ メッセージ ログ パネルには、最後に行ったコンパイルのメッセージ、警告、エラーが表示されます。それにより、スクリプトまたはグラフ内の警告またはエラーの原因となっているノードまたはピンに移動できます。
これは、ナイアガラ スクリプトを使用して新しい機能や動作を作成したり、ナイアガラ スクリプトをシステムに組み込んだりするテクニカル アーティストや VFX アーティストにとって特に便利な機能となります。スクリプト エディタですばやく結果を確認できるようになるからです。さらに、これらのメッセージにはエラーの原因元へのハイパーリンクも埋め込まれているため、スクリプトまたはシステムの問題をすばやく見つけて解決することができます。
スタティック スイッチ
ナイアガラは、グラフの最終出力に影響を与えない命令やパラメータを削除することでコンパイル時間を短縮し、実行時のパフォーマンスを向上できるスタティック スイッチ ノードをサポートするようになりました。スタティック スイッチ ノードは、値の伝達、メタデータのサポート、パラメータのカリング、コンパイラによる定数評価など、いくつか独自の機能をサポートしています。

カスケードに対する機能同等性の向上
このリリースでは、カスケードに対するナイアガラの機能同等性が向上しました。以下に、カスケードにあった機能で、ナイアガラでも利用できるようになったものを紹介します。
- スプライト カットアウト。これを使用すると、全てのクワッドをレンダリングする代わりにパーティクルのバウンディング形状を小さくすることで、オーバードローを減らすことができます。
- GPU ソート。これにより、透明なオブジェクトをエミッタ内で適切に並べ替えることができます。
- AnimNotify イベント。これを使用すると、アニメーション トラックにパーティクルを作成し、それらの寿命を適切に管理できるようになります。
- 有効化 / 無効化の標準化。これにより、ナイアガラの効果を既存のパイプラインに簡単に追加できます。
- ブループリントへのスタティック メッシュとスケルタル メッシュ ターゲットのセット。これにより、ナイアガラの効果を既存のパイプラインに簡単にドロップできます。
- サンプリングされたボーンおよびソケットのトランスフォーム。これにより、スケルタル メッシュを使用するエフェクトをローエンドのターゲット ハードウェア上で実行できるようになります。
新規:プラットフォーム拡張
個々のプラットフォームのすべてのコードを単一の場所にカプセル化し、メインのエンジン コードから切り離すため、プラグインと似た性質を持つプラットフォーム拡張という概念が追加されました。これにより、エンジンとそのビルド システムの基本的な動作方法が変更されたことから、エンジンをどの程度変更したかに応じて影響を受ける可能性があります。プラットフォーム拡張の詳細については、「このガイド」を参照してください。
新機能:スキン ウェイト プロファイル
新しいスキン ウェイト プロファイル システムを使用すると、スケルタル メッシュと一緒に保存されている元のスキン ウェイトを上書きします。それにより、パフォーマンス上の理由から動的なキャラクター パーツが無効になっている特定のプラットフォームでの視覚的な忠実度が向上します。スケルタル メッシュ エディタからプロファイルをインポートできます。使用するスキン ウェイト、プロファイルの名前が必要となりますが、任意で LOD インデックスを加えることもできます。また、新しく公開されたブループリントの API を使用して、スキンメッシュ コンポーネント (または任意の子クラス) にスキン ウェイト プロファイルを割り当てることもできます。
詳細については、スキン ウェイト プロファイルのドキュメントを参照してください。
新機能:Animation Streaming (アニメーション ストリーミング) (実験的機能)
メモリ使用量とメモリ管理の改善のため、アニメーションをストリーミングできるようになりました。 この機能は、長いシネマティックでアニメーション データを再生するときに特に便利です。
新しい Animation Stream Manager はストリーミングされたアニメーション データのメモリ内でのロードと保持を管理し、新しい UAnimStreamable アセットはストリーミング可能なアニメーションを表します。しかし一方で、アニメーション圧縮システムはアニメーションをチャンクに圧縮できるようになりストリーミングがしやすくなりました。
新機能:Dynamic Animation Graphs (ダイナミック アニメーション グラフ) (実験的機能)
ダイナミック アニメーション グラフを使うと、レイヤーを介してアニメーション グラフのサブセクションを動的に切り替えられるようになります。これは、レイヤー ノードを介してアニメーション グラフにプラグインできる個別のグラフです。これにより、複数のユーザーとの共同作業が可能になります。また、不要になった機能のメモリを節約できることがあります。
レイヤーは アニメーション レイヤー インターフェース アセットによって定義されます。これは機能が制限されたアニメーション ブループリントで、 ブループリント インターフェース によく似ています。このインターフェースは、レイヤーの数や、レイヤーの名前、属するグループ、入力を定義します。
さらに、サブ インスタンス ノード は、UAnimInstance の SetSubInstanceClassByTag を使用して、実行中のクラスを動的に切り替えることができるようになりました。サブ インスタンス ノードは、サブ グラフから複数の入力ポーズを公開することもできます。
アニメーション ブループリントとサブ アニメーション ブループリントはどちらも、アニメーション レイヤー インターフェースを実装する必要があります。レイヤー グラフを作成し、レイヤー ノードをインスタンス化できるようにするためです。
新機能:Open Sound Control (ベーダ版)
Open Sound Control (OSC) プラグインで、Open Sound Control 標準のネイティブ実装が可能になります。このプラグインは、UDP を介したリアルタイムのパラメータ制御のための、アプリケーション間およびマシン間の通信の共通フレームワークを提供します。

新機能:Wavetable Synthesis (ウェーブテーブル合成) プラグイン
Unreal Engine のカーブ エディタを活用してタイムドメインのウェーブテーブルを作成する新しいモノフォニック ウェーブテーブル シンセサイザが追加されました。それにより、ゲームプレイ パラメータによって操作可能な幅広いサウンド デザインが可能です。テーブル インデックスと他のすべてのパラメータは、C++ とブループリントから制御できます。
新機能: CSVToSVG ツール (ベータ版)
CSVToSVG は、新しいコマンドライン ツールです。「.CSV」ファイルからベクター グラフィックス イメージ ファイル (.SVG) をビルドすることによって、パフォーマンス データの視覚化がしやすくなります。このツールは任意の数値統計からのデータを処理でき、スムージング、予算線、積み上げグラフをサポートしています。これを使用することで、Unreal Engine にあるパフォーマンス ツールによって出力されたデータ、または独自のツールからのデータからグラフを作成できます。

新機能:シーケンサ カーブ エディタの改善 (ベータ版)
シーケンサ カーブ エディタは、要望の高かったいくつかの機能と拡張性のサポートについて大幅に改善がなされました。アーティストとデベロッパーは、新しいツール モード、新しいツールバー ボタン、カスタム データ フィルタ (スムージングなど) を追加することによって、カーブ エディタを拡張できます。エンジンのコードを変更する必要はありません。さらに、カーブ エディタは、シーケンサとは別にドッキングできるようになったり、スケーリングを含むトランスフォーム ツールとキーの Retime ツールが追加されました。
最新のカーブ エディタを使用するには、シーケンサまたは UMG (Unreal Motion Graphics) アニメーションを開いて [Curve Editor (カーブ エディタ)] ボタンをクリックするだけです。新しいトランスフォーム ツールおよび Retime ツールは、デフォルトで有効になっているプラグインを通じて提供されます。カーブ エディタ ウィンドウを削除して好きな場所にドッキングできるようになりました。シーケンサまたはエディタを閉じると位置が保存され、シーケンサを再度開くと保存された位置で表示されます。
カーブ エディタの拡張
更新されたカーブ エディタは、エンジン コードを変更することなくプラグインによって拡張することができます。カーブ エディタの拡張には、主に 3 つの方法があります。
- ツール モード - ツール モードは、エディタへのユーザー入力を最初に捉えることができる排他的なモードです。これにより、様々なツールを作成できます。ツールの例としては、FCurveEditorTransformTool と FCurveEditorRetimeTool があります。新しいカスタム ツールを作成するには、ICurveEditorToolExtension を実装し、自分の拡張機能をカーブ エディタ モジュールに登録します (例としては、FCurveEditorToolsModule::StartupModule() を参照してください)。
- ツールバー ボタン - ツールバー ボタンを使用すると、カーブ エディタのツールバーに新しいボタンを挿入できます。これらのボタンを使用することで、カーブ エディタを自由に操作できます。データに焦点を合わせるための追加のオプションを実装するサンプルもあります (デフォルトの Focus Selected だけではありません)。新しいツールバー ボタンを作成するには、ICurveEditorExtension を実装してカーブ エディタ モジュールに登録します (例としては、FCurveEditorToolsModule::StartupModule() を参照してください)。
- データ フィルタ - データ フィルタは、ユーザー指定の設定を使用して、選択したカーブを特異なアクションとして操作する新しい方法です。デフォルトでは、現在の選択で機能する 3 つのデータ フィルタが用意されています。
- Bake (ベイク) (UCurveEditorBakeFilter)
- Simplify (単純化) (UCurveEditorReduceFilter)
- Smoothing (スムージング) (UCurveEditorFFTFilter)
新しいフィルタの実装は、UCurveEditorFilterBase からクラスを派生させることで可能です。モジュールへの登録は不要です。新しい実装は自動的に [User Filter (ユーザー フィルタ)] ダイアログの中に現れます。EditAnywhere のマークが付いた UPROPERTY が自動的に表示されるので、フィルタを適用する前にそれらを操作できます。
ビュー モード
新しく、面白い方法でカーブを表示することができます。表示されているカーブは、カーブ エディタの左側にあるツリー ビューで表示できます。次に、下の図のように [View Mode (ビュー モード)] ボタンをクリックして、選択したカーブの表示方法を選択できます。表示モードは 3 つあります。
- Absolute View (絶対ビュー) は、絶対空間にプロットされたすべてのカーブを表示します。これは、慣れ親しんだ従来のバージョンと同じ動作です。
- Stacked View (積み上げビュー) は各カーブを正規化してから重ならないように描画します。
- Normalized View (正規化ビュー) は各カーブを (積み上げビューのように) 正規化しますが 、互いの上にそれらをすべて描画します。

新しいフィルタ メニュー
新しいフィルタ メニューでは、完全な [Details (詳細)] パネルと様々な設定を使用して、選択内容に対して様々なフィルタを適用できます。また、[Apply (適用)] ボタンをクリックした後も保持されるので、設定を簡単に繰り返すことができます。このダイアログに新しいオプションを追加するには、UCurveEditorFilterBase から派生する新しいクラスに関数を実装します。
複数のフレーミング オプション
複数の様々なフレーミング オプションが利用可能になりました。
[Frame Selection] (選択がない場合は [Frame All]) がビルトインされており、デフォルトは F です。
- [Frame on Playback Cursor] と [Frame on Playback Range] は新しいオプションです。これらは、プラグインを使用してツールバーを拡張する方法の良い例となります。
- 古い [Frame Horizontal]/[Frame Vertical] オプションは、[Focus All] に置き換えられ、その後 ALT キー、SHIFT キーを同時押しして右クリック で各軸を個別にズームします。また、 [Focus All] した後に ALT キーを押しながら右クリック で均等なスケーリングが可能です。

Retime ツール
Retime ツールは一次元の格子を作成し、自分のキーのタイミングを調整することができます。グリッド スナップ、複数選択などをサポートしています。このツールはデフォルトのプラグインで提供されています。

トランスフォーム ツール
トランスフォーム ツールは、(必要に応じて) 選択したキーの変換と X 軸と Y 軸の両方でのスケーリングをサポートします。反対側のエッジから中心へアンカー ポイントを変更するには、Alt キーを押します。
新規:シーケンサーのユーザビリティの改善
以下のようなワークフローとユーザビリティの改善が施されています。
- トラックのフィルタリングと検索- トラックとアクタをフィルタリングして検索できるようになりました。
- フレームの拡大 / 縮小 - オーバーラップしている要素がない限り、セクションとキーの間の時間を増減できます。
- 複数トラックの追加と編集 - Shift キーまたは Control キーを使って、複数トラックのグループでの追加と編集ができるようになりました。
- 複数の行にわたるオーディオ セクションのブレンド - オーディオ セクションをブレンドして、クロスフェード効果を実現できるようになりました。これは、トランスフォーム セクションのブレンドと同様に機能します。
- Restore State or Keep State for Skeletal Animation Poses (スケルタル アニメーション ポーズのステートの復元または保持) - このオプションは、[When Finished] プロパティを使用して、アニメーション セクションが評価された後、スケルタル メッシュをバインドポーズに復元するか、最後のアニメーション セクションのアニメーション ポーズを保持します。
- UMG マルチバインド - この機能は 4.22 以前にもありましたが、複数のウィジェット バインドを既存の 1 つのバインドに追加できるようになりました。これにより、他のウィジェットで使用できる 1 つのウィジェットをアニメートできます。
新機能:Data Validation の拡張性
Data Validation プラグインが拡張され、アセット検証用の C++、ブループリント、 Python ベースのルールをサポートするようになりました。これにより、ブループリントまたは Python で作業しているテクニカル アーティストは、C++ の実装を要求しなくても、アセット検証スクリプトを作成できます。開発に関しては、デフォルトのエンジン クラスが検証パスを通過できるようになりました。
新機能: DebugCameraController の改善
このリリースでは、DebugCameraController に新しい機能が追加されました。
- Orbit 機能により、選択したアクタの選択した位置またはそのアクタの中心をユーザーが周回できるようになりました。そのため、アセットをより詳細に確認できます。
- Buffer visualization (バッファ ビジュアリゼーション) には、全画面表示用のバッファを選択するオプションがあり、グラフィックカード バッファのコンテンツを調べることができます。
- View mode cycling では、処理中の様々な種類のシーン データを調べることができます。
Play-In-Editor(PIE) で Debug Camera Controller (デバッグ カメラ コントローラー) を使用している場合、この新しい機能によってゲーム内デバッグの機能が強化されます。ビューモードとグラフィック バッファを調べる機能は、ゲーム内で想定外のシーンの結果を診断するのに便利です。
PIE でデバッグ カメラ コントローラーを開くには、コンソール コマンドラインで「ToggleDebugCamera」と入力するか、新しいセミコロン ホットキー「;」を使用します。
新機能:マルチ ユーザー編集機能の改善 (ベータ版)
実際のプロダクション ユースケースにより適したものにすることを目的として、マルチ ユーザー編集が大幅に改善されています。
- 不要なダイアログを削除し、セッションを管理するために必要なすべての情報とコントロールを 1 か所にまとめて、ユーザー インターフェースが合理化されました。
(ツールバーの [Multi-User Editing (マルチ ユーザー編集)] アイコンは、デフォルトで非表示になりました。新しい Multi-User Editing Browser (マルチ ユーザー編集ブラウザ) は、[Window (ウィンドウ) > [Developer Tools (デベロッパーツール)] メニューから開くか、[Project Settings (プロジェクト設定)] ダイアログ ボックスの [Toolbar (ツールバー)] のアイコンから再度有効にできます。)詳細は、「マルチ ユーザー編集リファレンス」を参照してください。
- すべてのセッション参加者でトランザクション システムの信頼性が大幅に向上しました。
- セッションのオーナーに対して終了前にセッションで行われた変更を保存するよう促すことで、ユーザーの誤動作によってセッション データを不本意に失う可能性を最小限に抑えられるようにしました。また、サーバがシャットダウン時に現在実行中のすべてのライブ セッションも自動的にアーカイブするようになりました。必要に応じて、後でそのアーカイブからデータを回復できます。
- 複数のユーザーが同じアセットで作業しやすいように、アセット ロック システムが改善されました。セッション内の別のユーザーによってすでにロックされているアセットを変更しようとすると、通知が届くようになります。さらに、その他のユーザーがロックを解除すると、次回そのアセットを保存するまで、自動的にそのアセットにロックがかかります。
マルチ ユーザー編集システムの使用方法について詳しくは、「このドキュメント」を参照してください。
新機能:Disaster Recovery (実験的機能)
新しいオプトイン Disaster Recovery システムは、エディタの既存の自動保存システムを補強します。それにより、想定外のシャットダウンが発生した場合でも、プロジェクト コンテンツに加えた変更を元に戻せる可能性が高くなります。
作業中は、マルチ ユーザー編集システムの基盤となっている同じトランザクション システムを使用して、編集内容を記録します。変更が保存されずエディタが終了した場合は、次にプロジェクトを開いたときに、前回の保存以降に行ったすべてのトランザクションのリストが表示されます。表示されているすべての変更、または選択した任意のリカバリ ポイントまでのすべての変更を復元できます。
新機能:フィル配列へのドラッグアンドドロップ
コンテンツ ブラウザから複数のアセットを選択しそれらを配列ヘッダにドラッグアンドドロップして、配列をフィルすることができます。配列と同じタイプのアセットを選択して、コンテンツ ブラウザから配列ヘッダにドラッグします。これは、アセットを格納するすべての配列に対して機能し、大規模配列を使用するときのワークフローを簡素化します。
詳細については、「Array Control」のページを参照してください。
新機能: EditConditions メタデータの改善 (ベータ版)
UPROPERTY システムの EditCondition メタデータ用の新しい式であるパーサーを使用して [Details (詳細)] パネルでプロパティの編集を有効または無効にするために、単純なブール式を利用できるようになりました。列挙型と数値型もサポートされているので、最小限のオーバーヘッドで比較的複雑な式を書くことができます。
特定のプロパティのみ条件付きで有効となるアクタまたはコンポーネントなど、ユーザーによって編集されることを意図したクラスを作成する場合に、より直感的な UI をすばやく作成することができます。その際、カスタマイズ クラスを細部まで完全に記述する必要はありません。
EditCondition メタ タグは、ほぼすべての有効な C++ 式を受け入れるようになりました。例えば、以下はこの変更後の有効なプロパティ定義です。
UPROPERTY(EditAnywhere, Category=EditCondition, meta=( EditCondition="IntegerEditCondition >= 5" ))
以下は、有効な式の追加の例です。
MyInteger > 5 && MyFloat <= 10
MyEnum == EnumType::B
MyBool == true || MyInteger == MyFloat + 5
新機能:Editor Utility Blueprint のアップデート (ベータ版)
Editor Utility Blueprint が更新され、ブループリントでのエディタの拡張性が向上しました。それにより、ブループリントの拡張性が Python および C++ の拡張性とより近くなりました。Editor Utility Blueprint は、以前の Editor Utility Blueprint 用に自動生成されたボタンよりも UI の詳細なカスタマイズが可能になりました。
改善点は次のとおりです。
- 親クラスは、ウィジェットではない任意のエディタ専用クラスにすることができるようになりました。
- 関数呼び出しのインスタンス化を必要とするエディタ ユーティリティのインスタンスを作成できるようになりました。
- Editor Utility Blueprint または Editor Utility Widget に、エディタ起動時にスクリプトを実行する Run 関数を追加できるようになりました。これによりインスタンスが作成され、ステートフル エディタ イベントへのバインドが可能になります。
新規:無関係なノードを隠す機能
ユーザはノードを選択し、Hide Unrelated 機能を使用して選択したノードにリンクされていない他のすべてのノードを暗く表示することができます。それにより、はるかに簡潔で直接的な方法で、マテリアルとブループリントのデバッグを行ったりそれらの内容の理解がしやすくなりました。
新機能:ランドスケープ スプラインの改善
ALT キーを押しながら左マウスボタンでドラッグ することで、新しいスプライン コントロール ポイントとセグメントを作成できるようになりました。新しいスプラインの追加には、既に CTRL キーを押しながら左クリック で行えますが、このリリースからは上記でも行えます。 ALT キーを押しながら左マウスボタンでドラッグ した場合、カーソルをドラッグした際に新しいスプラインがどのように見えるかを確認できるという利点があります。また、このアクションでスプラインを分割することもできます。
新しいコントロール ポイントを追加するには、既存のコントロール ポイントを選択し、新しいポイントを配置したい方向に ALT キーを押しながら左マウスボタンでドラッグ します。既存のスプラインを分割するには、セグメントのいずれかの側でスプライン ポイントを選択し、カーソルを既存のセグメントに向かって Alt キーを押しながら左マウスボタンでドラッグ してパスを分割します。
新機能:エディタのパフォーマンス改善
日常的にこのバージョンで非常に大きなシーンを操作している場合、Unreal Editor での作業がより早くスムーズなものになり、パフォーマンスが大幅に向上していることに気がつくと思います。例えば、一度に何百または何千もの個別のアクタを選択したり選択を解除したり、何千ものアクタを含むレイヤーを表示したり非表示にしたり、他の何千ものアクタの親となっているアクタを選択して操作したり、数千ものアクタを含むレベルをロードしたりといった作業が、前のバージョンよりはるかに速くなっています。
新機能:マテリアル エディタの更新
マテリアル エディタとマテリアル インスタンス エディタのワークフローが改善され、マテリアルとマテリアル インスタンスのスクリプト機能が強化されました。

- マテリアル エディタのツールバーに [Hierarchy (階層)] ボタンが表示されるようになりました。これを使うと、すべての直接の子を表示するメニューを表示したり、それらの編集をすぐに行うことができます。
- マテリアル インスタンス エディタの [Hierarchy (階層)] メニューには、マテリアルとマテリアル インスタンスの親チェーンに加えて、すべての直接の子が表示されます。
- Editor Utility Widget、Editor Utility Blueprint、Python、C++ で使用するために、次のノードがマテリアル スクリプト ライブラリに追加されました。
- マテリアル インスタンス用に、GetStaticSwitchParameterValue。
- マテリアル用に、GetMaterialDefaultScalarParameterValue、GetMaterialDefaultVectorParameterValue、GetMaterialDefaultTextureParameterValue、GetMaterialDefaultStaticSwitchParameterValue、HasMaterialUsage (マテリアルが指定された使用フラグを持っているかどうかをチェックします)、GetChildInstances、Get ___ ParameterNames (スカラー、ベクトル、テクスチャ、スタティック スイッチ パラメーター名の配列を取得します)、Get___ParameterSource (ソース アセットを検索します。関数またはマテリアルであるかどうか、パラメータが定義されている場所、そしてスカラー、ベクターなどのソース アセットがあるかどうかの再検索など)
- マテリアル インスタンスのパラメータ名の上にマウスを置くと、そのパラメータが定義されていたアセットの名前が表示されます。これにより、多くのレベルでネストされた関数を持つマテリアルでの作業がやりやすくなります。
新機能:UMG アクセシビリティ スクリーン リーダーのサポート (実験的機能)
UE4 は、Windows または iOS でボイスオーバーのサードパーティ製スクリーン リーダーをサポートするようになりました。これにより、ゲーム UI にアクセスしやすくなり、CVAA 規格に準拠することができます。NVDA や JAWS などのスクリーン リーダーを使用すると、ソフトウェア アプリケーションの UI を読み上げることができます。これは、視覚障害者がソフトウェア アプリケーションを使用および操作できるようにするための重要な機能です。
4.23 には、サードパーティのスクリーン リーダーを使用して UI テキストを読み取ることができる API が UE4 に含まれています。この API は、テキスト ブロック、編集可能なテキスト ボックス、スライダー、ボタン、チェックボックスなど、多くの一般的な UMG ウィジェットをサポートしています。このビルトインの機能を使用することで、独自のテキスト読み上げテクノロジを実装する必要がなくなり、スクリーン リーダーのサポートが容易になります。
スクリーン リーダーのサポートを有効にするには、プロジェクトまたはエンジン コンソール変数 (Engine Console Variable) コンフィギュレーション ファイルのどちらかにアクセスする必要があります。ファイルにアクセスしたら、変数 Accessibility.Enable=1 を追加します。
詳細については、「スクリーン リーダーのサポート」を参照してください。
新機能:Wacom のタブレットのサポート (実験的機能)
ペイント プラグインやモデリング ツールなどの機能を扱うプログラマー向けに、Wacom スタイルのタブレットや Stylus systems から提供されている追加の入力にアクセス可能な新しいプラグインが使用できるようになりました。このプラグインを使用することで、筆圧や傾きなどの Stylus 入力を利用できるようになります。
すべてのタブレットで API がサポートする可能性のあるすべての値がサポートされるわけではありません。サブシステムは、サポートされているすべての値のスーパーセットを公開するように作成されています。どの値が必要かの判断は、サブシステムのユーザーに依ります。
これは実験的な機能であり、現時点ではどの Unreal Engine ツールでもサポートされていません。
新機能: UMG ウィジェットの差分
アクタや Animation ブループリントと同様にウィジェット ブループリントをサポートするためにブループリントの差分を拡張し改善を施しました。新しいツールでは、デフォルトのプロパティ値 (ウィジェットとウィジェット スロットのデフォルト プロパティがこの値に含まれるようになりました) とブループリント グラフの変更に加えて、ブループリントの構造に加えられた変更、プロパティと関数のフラグ、クラス設定、親クラス、追加されたコンポーネントも表示されます。

差分を入れたいカスタム ブループリント サブクラスをすでに作成している場合は、FindDiffs 関数をオーバーライドします。それにより、表示したい特定の変更をリストしたり、差分のためにサブ オブジェクトを要求したりすることができます。
新機能:非破壊的なランドスケープの編集 (実験的機能)
ランドスケープの高さマップとペイント レイヤーを非破壊レイヤーで編集できるようになりました。ランドスケープに複数のレイヤーを追加して互いに独立した編集が可能です。これらの新しいレイヤーは、ランドスケープをスカルプティングおよび描画するための基盤として機能します。これにより、ランドスケープをより効率的に操作および維持できるようになります。
レイヤーを追加する場合、変更したくないレイヤーをロックして、一度に 1 つのレイヤーの編集に集中することもできます。レイヤーを非表示にして特定のレイヤーに集中したり、特定のレイヤーなしでランドスケープがどのように見えるかを確認することもできます。最後に、[Layer Contribution] を有効にすると、レイヤーはビューポートで強調表示され、レイヤーに追加しても、そのレイヤー内のすべてのスカルプティングと描画を表示できます。また、レイヤーの並べ替えやレイヤーのアルファ ブレンドの調整など、他にも新しいオプションが追加されています。
そして、ランドスケープ スプライン テレインの変形と描画は、スプラインのレイヤーを予約することにより、非破壊的なプロセスになりました。それにより、スプラインを非破壊的に編集、変更、移動できるようになり、ランドスケープはユーザーのランドスケープを通る長い道路や小道となります。
詳細については、「非破壊ランドスケープ レイヤーとスプライン」を参照してください。
新機能:フォリッジ ツールでインタラクティブ アクタを配置する
フォリッジ ツール は、スタティック メッシュに加えて、インタラクティブ アクタのシーンへの追加もサポートされるようになりました。フォリッジ ツールによって配置されたアクタは、スタティック メッシュと同じように動作し、テレインをスカルプしたり、ペイントしたスタティック メッシュを移動すると自動的に散乱します。
例えば、このビデオ内であちこちに見られる木は、スタティック メッシュ コンポーネントとインタラクション ロジックを持っているブループリント アクタです。そして、テレインが後で変更されると、これら Tree アクタはテレインの新しい高さに合わせて自動的に更新されます。
Foliage アクタは、個別にレベルに手動で配置されたものとしてレンダラによって扱われるため、インスタンス化されたメッシュとしてレンダリングはされません。
追加情報については、「フォリッジ モード」を参照してください。
新機能: HDRI バックドロップ アクタ
新しい HDRI バックドロップ アクタで、単一の HDRI 画像から、レベルに合わせてリアルな背景とライティング環境を簡単に作成することができます。アクタをレベルに配置して、画像をバックドロップに投影する HDRI テクスチャ、画像から描画された環境光を追加するため自動的に設定されたスカイ ライト、正確な反射、レベル コンテンツから投影されるシャドウをキャプチャするフロア サーフェスに対して、そのアクタが割り当てられます。
ワークフローの詳細と投影の制御に使用する全ての設定の詳細については、「HDRI バックドロップ」を参照してください。
新機能:Exponential Height Fog (指数関数的高さフォグ) の二重の高さフォグ
指数関数的高さフォグ ボリュームを使用するとき、追加のフォグ レイヤーに [Fog Density (フォグの濃度)]、[Height Falloff (フォールオフの高さ)]、[Height Offset (高さのオフセット)] パラメータが追加されました。それらを使用することで、フォグがより制御しやすくなります。

1- 指数関数的高さフォグなし; 2 -指数関数的高さフォグ; 3 - 二重の指数関数的高さフォグ
新機能:動的シャドウ バイアスの改善
このリリースでは、コンソール変数を使用してライトごとまたはグローバルにライトごとに設定できる新しいパラメータをいくつか追加されました。それにより、可動ライトのシャドウ バイアスが改善されました。定数の [Shadow Bias (シャドウ バイアス)] パラメータに加えて、[Slope Bias (スロープ バイアス)] パラメータが追加され、シャドウ アーティファクトとシャドウ アクネに関するいくつかの問題を (全部ではありませんが) 解決することを助けます。指向性ライトでは、カスケード間のバイアス強度を制御するために Shadow Cascade Bias Distribution (シャドウ カスケード バイアス分散) に追加の [depth bias (デプス バイアス)] パラメータを追加されました。

1 - スロープ バイアスおよびシャドウ カスケード バイアス分散の前。 2 - スロープ バイアスとシャドウ カスケード バイアス分散の調整後
考慮すべき部分が 2 つあります。1 つ目は、スロープ バイアスはシャドウ マップのレンダリング中に使用されるということで、2 つ目はレシーバ バイアスはシャドウ マップのフェッチ中に使用されるということです。スロープ バイアスはライトごとに制御可能で、シャドウ (定数) バイアスに比例するということです。これら 2 つのパラメータ (定数バイアスとスロープ バイアス) を使用すると、シャドウの品質と精度がトレードオフになり、アーティファクトを解決できます。
レシーバ バイアスを制御するには、r.Shadow.* の下のコンソール変数を使用します。ライトごとにレシーバ バイアスをグローバルに設定するには、「0」(アーティファクトが多いほど精度が高くなります) と「1」(アーティファクトが少ないほど精度が低くなります) の間の値を設定します。コンソール変数を使用して、ライト タイプの定数とスロープ バイアスをグローバルに設定することもできます。
新機能:スキニング前のローカル境界のマテリアル表現
スケルタル メッシュのスキニング前のローカル境界 を返す新しいマテリアル式が追加されました。この式を使用すると、マテリアルを介してアクタの境界内の相対位置を計算できます。これらの境界は (たとえアニメーション化されても) 変わらないので、武器や乗り物に適用される装飾用ラップのようなパターンなど、一貫した方法または固定された方法でマテリアルを適用できます。アニメーション エディタでは、[Mesh (メッシュ)] カテゴリの下の [Character (キャラクター)] ドロップダウンから、任意のメッシュのスキニング前の境界を視覚化できます。
新機能:マテリアルへのカスタム プリミティブ データの保存
マテリアル インスタンス単位ではなく、プリミティブ単位でデータを保存できるようになりました。それにより、プリミティブを自動的な動的インスタンスの描画の対象にすることができます。
マテリアルに Use Custom Primitive Data でデータを保存すると、各プリミティブに独自のカスタム データが必要な場合でも、同様のジオメトリに必要な描画呼び出しの回数を減らすことができます。
新機能:From Material Expression シェーディング モデル
新しい From Material Expression シェーディング モデルを使用して、単一の マテリアルで複数のシェーダ モデルを使用できるようになりました。

マテリアル出力およびマテリアル属性ノードを使用した以前のワークフローがサポートされています。また、If ステートメント、BlendMaterialAttributes、スタティック スイッチ、マテリアル インスタンスを使用した一般的なワークフローも完全にサポートされています。
そのため、1 つのアセットが 2 つの別々のマテリアルを使用している場合は、使用される描画呼び出しの数を最適化および削減できる可能性があります。これは、レベル内のそのアセットの各インスタンスに対して 2 回描画呼び出しを行うことと同等です。2 つのシェーディング モデルで 1 つのマテリアルを使用すると、描画呼び出しを 1 回に減らすことができます。
更なる詳細については、From Material Expression を参照してください。
新機能: IES プロファイルの改善
今回のリリースでは、エディタでの IES プロファイルと様々なライト タイプの操作にいくつかの改善が施されました。
- IES テクスチャが割り当てられた、選択されたポイント ライトとスポット ライトは、フォトメトリック データの 3D ビジュアライゼーションを提供します。
- アーティファクトのない軸対称表示を改善する Type C IES ファイルのサポートが向上しました。
- コンテンツ ブラウザの IES テクスチャ アイコンは、フォトメトリック データのプレビューを表示するようになりました。
詳細については、IES ライト プロファイルを参照してください。
新機能:Render Dependency Graph (レンダリング依存関係グラフ)
Rendering Dependency Graph (RDG)、または単に「レンダー グラフ」は、最新のグラフィック API を活用して、より効率的なメモリおよびバリア管理、自動非同期計算スケジューリングを使用してパフォーマンスの改善を行います。
Unreal Engine のレンダラは RDG に積極的に移植されており、今後の新機能に用いられるレンダー パスを作成するための主要な API となっています。実装はまだ初期の開発段階で、現在パフォーマンス的にはまだまだ改善の余地はありますが、API は本番環境で使える程度には十分安定しています。
追加情報については、「レンダリング依存関係グラフ」を参照してください。
新機能:Composure の改善
このリリースでは、Composure にいくつかの追加オプションを追加されました。
- AlphaHoldOut ブレンド モード - この新しいマテリアル ブレンド モードを使用すると、オブジェクトがマテリアル内のアルファを隠し、その後ろのオブジェクトに穴を開けます。
- カラー グレーディング - Composure は、浮動小数点ポストプロセス ルックアップ テーブル (LUT) を使用したカラー グレーディングとホワイトバランスをサポートするようになりました。
- Composure レイヤーのシーン カメラからのポストプロセス パラメータの継承 - Composure レイヤーはシーン カメラからポスト プロセス パラメータを継承できるようになり、色補正コントロールを各 CG レイヤーで個別に有効にできるようになりました。
ランチャーの [Learn (ラーニング)] タブから利用できる「Composure」サンプルも、Unreal Engine でのコンポジットの最新のワークフローを反映したものに更新されています。
新機能: Python の FBX のインポート / エクスポート
Python スクリプトは、FBX アニメーションのインポートとエクスポートをサポートするようになりました。
新機能:Pro Video コーデック
Unreal Engine は追加のビデオ コーデックをサポートするようになり、Unreal をプロのビデオ制作パイプラインおよびワークフローと簡単に統合できるようになりました。
これで、Pro Media ファイルを Apple ProRes Encoder に次のようにエクスポートできます。
- 4444 XQ、4444、422 HQ、422、422 LT、422 Proxy といったコーデックのすべての形式のサポート
- 複数のフレームレートと解像度。
- 埋め込みタイムコード トラックがサポートされています。
- 埋め込みオーディオはありません。オーディオはミックスダウンされ、「.wav」ファイルとして別にエクスポートされます。
- Windows プラットフォームでのみサポートされています。
詳しくは、新しい操作ガイド「Apple ProRes への Pro メディア ファイルのエクスポート」を参照してください。
Media Framework は HAP コーデックでエンコードされたファイルを再生することができます。
- HAP、HAP Alpha、HAP Q、HAP Q Alpha といった、コーデックのすべての形式がサポートされています。
- 1x 4K 60 FPS 動画または 2x 4K 30 FPS 動画の再生をサポートしています。これらは 2x 4K 60 FPS 動画に拡張できます。
- アルファ チャンネルをフルサポートします。
- 複数のフレームレートと解像度。
- 埋め込みオーディオやタイムコードはサポートされていません。
- 現時点では 8K と 16K はサポートされていません。
詳細については、「Media Framework 技術リファレンス」の HAP コーデックの再生サポート セクションを参照してください。
新機能:Stereo Panoramic Capture ツールの改善 (実験的機能)
Stereo Panoramic Capture ツールの更新により、仮想ワールドの高品質の立体静止画像および動画を業界標準の形式でキャプチャして、それらキャプチャを Oculus または GearVR ヘッドセットで表示するのがはるかに簡単になりました。レンダリング設定、ビット深度、品質に対する制御が拡張がされました。キャプチャしたいグラフィック バッファを選択することもできます。これにより、他のアプリケーションでの画像のポストプロセスとコンポジットが可能になりました。
新機能:プラットフォームの SDK アップグレード
Unreal Engine 4 はリリースの都度、プラットフォームのパートナーからリリースされる最新の SDK に対応するようにアップデートしています。

- IDE バージョン ビルド ファームのコンパイル対象
- Visual Studio - Visual Studio 2017 v15.9.11 ツールチェーン (14.16.27023) と Windows 10 SDK (10.0.16299.0)
- 最小サポートバージョン
- Visual Studio 2017 v15.6
- NET 4.6.2 Targeting Pack 必須
- 最小サポートバージョン
- Xcode - Xcode 10.3
- Visual Studio - Visual Studio 2017 v15.9.11 ツールチェーン (14.16.27023) と Windows 10 SDK (10.0.16299.0)
- Android
- Android NDK r14b (新しい CodeWorks for Android 1r7u1 インストーラは、Windows および Mac 上の、以前の CodeWorks を置き換えます。Linux は 1r6u1 と修正版を使用します)
- ARCore
- 1.7
- HTML5
- Emscripten 1.38.31
- Linux "SDK" (クロスツールチェーン)
- v14_clang-8.0.1-centos7 - ダウンロードはこちら cdn.unrealengine.com/CrossToolchain_Linux/v14_clang-8.0.1-centos7.exe (インストーラが追加されました!)
- Oculus Runtime
- 1.37
- OpenXR
- 1.0
- Google Stadia
- 1.34
- Lumin
- 0.19.0
- Steam
- 1.42
- SteamVR
- 1.5.17
- Switch
- SDK 8.3.0 + optional NEX 4.6.3 (Firmware 7.x.x-x.x)
- サポートされている IDE: Visual Studio 2017, Visual Studio 2015
- PS4
- 6.508.001
- ファームウェア バージョン 6.510.011
- サポートされている IDE: Visual Studio 2017, Visual Studio 2015
- XBoxOne
- XDK: July 2019 QFE-9
- ファームウェア バージョン: May 2019 10.0.18362.3055
- サポートされている IDE: Visual Studio 2017
- MacOS
- SDK 10.14
- iOS
- SDK 12
- tvOS
- SDK 12
アップグレード ノート
エディタ
マチネ
- Unreal Engine 4.23 のリリース以降、マチネはサポートされなくなり、今後のリリースでエンジンから削除される予定です。削除後は、マチネのファイルにアクセスしたり開いたりすることができなくなります。 Matinee to Sequencer Conversion Tool (マチネからシーケンサへ変換するツール) を使用して、できるだけ早くマチネのシーケンスをシーケンサのシーケンスに変換を行ってください。
VR エディタ
- GDC 2017 でプレゼンテーションを行った VR メッシュエディタはサポートされなくなりました。今後のリリースでメッシュエディタプラグインは削除される予定です。
プラットフォーム
HTML5
- HTML5 プラットフォームのサポートは、コミュニティがサポートするプラットフォーム拡張機能として GitHub に移行され、今後のリリースでは Epic によって公式にサポートされなくなります。
iOS
- iOS 10 がサポートされなくなりました。そのため、iOS 11 がサポートを受けられる最低バージョンとなります。
- iOS での OpenGL サポートは将来のリリース、最速で 4.24 で削除される予定です。以降は iOSにおいて Metal だけがサポートされるレンダリングパスになります。