Unreal Engine 4.21 Released
2018年11月7日

Unreal Engine 4.21 がリリースされました!

作成 Jeff Wilson

 

 

新機能

Unreal Engine 4.21 は、プラットフォームを問わず、すべてのプロジェクトの効率性、パフォーマンス、安定性を絶えず追求しています。ユーザーの想像力の限界まで表現できるよう、 よりスマートな作業と、より高速な作成を容易に 実現できるようになりました。 エンジンに対しては、デベロッパーから求められる高い水準を満たすまで、すべてのプラットフォームにおいて実際に即したシビアなテストが行われました。 その結果、ユーザーのプロジェクトは、公開の準備が一度できれば、多くのプレイヤーに向けて高い完成度での魅力を放つことができるでしょう。

デベロッパーが有意義でエキサイティングで魅力的なエクスペリエンスを作り出すことに専念できるよう、日々の作業を合理化する方法を私たちは常に模索しています。業界をリードする当社の ナイアガラのエフェクトツールセットが、さらに強力で使いやすく なりました。これにより、次世代のリアルタイムな視覚効果の構想に注力できるようになります。実稼働環境に対応したレプリケーション グラフ機能を使用して、 以前は実現できなかった規模でのマルチプレイヤー体験を作り上げる ことができます。最適化により コンテンツのクックが最大 60% スピードアップ し、イテレーションが以前より高速化しました。また、新しい Gauntlet Automation Framework を使用して自動テストを実行し問題を発見できます。さらに、アニメーション システム、ブループリント ビジュアル スクリプティング、シーケンサなどのユーザビリティの向上で、 日々のワークフローがスピードアップ します。

あらゆるプレイヤーが、選んだフォーム ファクターにかかわらず、ユーザーの意図したように作品を楽しむことができるようにすることが、当社の務めです。以前のリリースをベースに、 Android や iOS の Fortnite 向けに開発された最適化をさらに追加 し、モバイル デバイス向けの開発プロセスをさらに改善しました。ベータとして使用できる Pixel Streaming は、 使用障壁をなくし、レンダリング品質に妥協することなく、Web ブラウザにアプリケーションをデプロイするまったく新しい手段 となります。また、Linux、拡張現実デバイス、仮想現実デバイス、Mixed Reality デバイスのサポートも改善しました。

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

Aaron Franke (aaronfranke)、Adam Rehn (adamrehn)、Adrian Courrèges (acourreges)、aladenberger、Alan Liu (PicaroonX)、Cengiz Terzibas (yaakuro)、Cerwi、Chris Conway (Koderz)、cmp-、Damianno19、Deep Silver Dambuster Studios (DSDambuster)、Dorgon Chang (dorgonman)、DSCriErr、Dzuelu、Eliot (BillEliot)、Erik Dubbelboer (erikdubbelboer)、fieldsJacksonG、Franco Pulido (francoap)、Frank Stähr (phisigma)、George Erfesoglou (nonlin)、Hao Wang (haowang1013)、Henri Hyyryläinen (hhyyrylainen)、Homer D Xing (homerhsing)、 IlinAleksey、Jacob Nelson (JacobNelsonGames)、Jerry Richards (r2d2Proton)、Jesse Fish (erebuswolf)、Josef Gluyas (Josef-CL)、Joshua Harrington (thejhnz)、Kalle Hämäläinen (kallehamalainen)、KelbyG、Layla (aylaylay)、LizardThief、Lucas Wall (lucaswall)、Mai Lavelle (maiself)、malavon、Marat Radchenko (slonopotamus)、Marat Yakupov (moadib)、Marco Antonio Alvarez (surakin)、Markus Breyer (pluranium)、marshal-it、Martin Gerhardy (mgerhardy)、Mathias Hübscher (user37337)、Michael Kösel (TheCodez)、Morva Kristóf (KristofMorva)、Muhammad A. Moniem (mamoniem)、Nick Edwards (nedwardsnae)、nrd2001、Oliver (oliverzx)、phoenxin、projectgheist、Rene Rivera (grafikrobot)、Rick Yorgason (Skrapion)、Riley Labrecque (rlabrecque)、Sahil Dhanju (Vatyx)、Sam Bonifacio (Acren)、scahp、Sébastien Rombauts (SRombauts)、Tom Kneiphof (tomix1024)、Troy Tavis (ttavis)、Truthkey、UristMcRainmaker、Wiktor Lawski (wlawski)、yhase7、Zeno Ahn (zenoengine)

主要機能

ナイアガラ プラットフォームのサポートとユーザビリティの向上

業界最高のエフェクト ツールを提供するため日々努力を重ね、ナイアガラでは、機能拡張に加えて、日々のユーザーの作業を行いやすくする改善も行いました。また、この度 Nintendo Switch でナイアガラ のエフェクトがサポートされることになりました

 

 

ナイアガラの GPU 専用テクスチャ サンプリング

パーティクル スクリプトで、2D テクスチャまたは擬似ボリューム 2D テクスチャをサンプリング できるようになりました!シーン キャプチャ アクタを使用してシーンの深度、カラー、および法線情報をレンダリングした後に、その情報を使ってナイアガラ パーティクル システム内の環境を再構成し、パーティクルの位置エネルギー、運動エネルギーをエミッシブ ライトとして視覚する、といった目覚ましいエフェクトを作成できます。

この機能の動作を確認するには、Content Examples プロジェクトの ナイアガラ レベルをご覧ください。

ナイアガラ スケルタル メッシュ データ インターフェースの改善

スケルタル メッシュのデータ インターフェースで、スケルタル メッシュの頂点データの直接サンプリングと、スケルタル メッシュ上の特定のボーンまたはソケットへのアクセスが可能になりました。

リボン パーティクルのパフォーマンスの改善

CPU ではなく GPU でリボンのジオメトリを生成することで、リボンの全体的なパフォーマンスが改善しました。

ナイアガラ GPU シミュレーションのサポート

すべての非モバイル プラットフォームでナイアガラ GPU シミュレーションがサポートされるようになりました。

システムとエミッターの作成の単純化

ナイアガラのダイアログが扱いやすいものになりました。そのため、システムとエミッターの作成が、これまで以上に簡単になります!あらかじめ用意されたテンプレートのセットから新しいエミッターとシステムを作成できるので、 開発をスピードアップし、チームが確実にベスト プラクティスに従うこと を期待できます。

 

 

 

 

 

振り子のコンストレイント

このコンストレイントは、物理的力、オプションのスプリング ドライバで計算されます。位置エネルギー計算も含みます。エネルギーが指定されたしきい値を超えた場合、速度を継承させたパーティクルをスポーンするなど、エキサイティングでダイナミックなエフェクトを作成できるようになりました。

モジュールの追加と改善

  • 消滅イベントの生成と受信
  • 質量を複数のモジュールに分解
  • スケルタル メッシュ データ インターフェースの拡張機能を補完する新規の SampleSkeletalMeshSkeleton、SampleSkeletalMeshSurface、SkeletalMeshSkeletonLocation、SkeletalMeshSurfaceLocation モジュール
  • 新規の AddVelocityInCone モジュール
  • 新規の力モジュールは次の通りです。FindKineticAndPotentialEnergy、GravityForce、SpringForce、他の力モジュールにもユーザビリティを改善する調整が行われました
  • 新規の KillParticlesInVolume モジュール
  • 新規の SpriteRotatationRate モジュール
  • 新規の RecreateCameraProjection モジュール。レンダー ターゲットとカメラ トランスフォームを使用して、シーン キャプチャーを変形可能なパーティクル システムに変換します。
  • テクスチャをサンプリングするための新しいモジュールは次の通りです。SamplePseudoVolumeTexture、SampleTexture、SubUV_TextureSample、WorldAlignedTextureSample
  • 時間的補間とフレーム カウンタ用の新しいユーティリティ モジュール
  • 多くの新しいダイナミックインプットと関数

新規:レプリケーション グラフ

レプリケーション グラフ プラグインを使用すると、大規模なマルチプレイヤー ゲームの構築に向けてネットワークのレプリケーションをカスタマイズ することができます。それにより、従来のレプリケーション戦略では実現できないことが可能になります。例えば、Epic の Fortnite Battle Royale では、ゲーム開始時に 100 人のプレイヤーと約 50,000 個のレプリケートされたアクタがいます。各レプリケートされたアクタが、各クライアント接続を介してアップデートの必要性について判断するとなると、サーバーの CPU パフォーマンスへの影響は非常に大きくなります。

しかし、レプリケーション グラフ プラグインは、大人数のマルチ プレイヤー ゲームに向けた代替戦略を提供することで、この問題を解決します。これは、レプリケーション ノードにアクタを割り当て、クライアントにがアップデートの必要があるアクタのリストを取得するために使用する事前計算された情報を格納することによって動作します。それにより、あらゆるフレームで多数のクライアントのために同じデータを再計算するということがなくなり CPU の負担を下げることができます。エンジンと共に同梱される標準ノードに加えて、デベロッパーはゲーム内のアクタの特定のニーズに合わせて独自のノードを書くことができます。

新規:モバイル プラットフォームでのシッピングの最適化

モバイル ゲーム開発プロセスは、Android での Fortnite の初回リリース用に開発されたあらゆるモバイルの最適化と、現在進行中のアップデートに含まれる iOS に関するあらゆる改良のおかげで向上しています。

 

 

Android の Vulkan サポートの向上

サムスンからの支援で、Fortran を Samsung Galaxy Note 9 でシッピングするために行った Vulkan エンジニアリングと最適化のための開発のすべてが Unreal Engine 4.21 に含まれています。また、 OpenGL ES 3.1 との機能互換性も 100% あります。Vulkan を使用するプロジェクトは、OpenGL ES を使用する同じプロジェクトよりも 最大 20% 高速で実行できる可能性があります。

Android 用 Config Rules System

Android Config Rules System の使用で、プロジェクト開始プロセスの早い段階で問題を把握できるようになりました。このツールは、デバイスのサポートを素早く確認し、古いドライバやサポートされていない GPU など問題が発見された場合に、警告またはエラー ダイアログでユーザーに知らせます。ここで変数を設定して、後で C++ で FAndroidMisc::GetConfigRulesVariable(TEXT("variablename")) を使用して照会することができます。

このシステムを使用するには、 「configrules.txt」 ルール ファイルをプロジェクトの 「Build/Android」 ディレクトリに配置します。そして UPL を使用して、APR のパッケージ化中に ConfigRulesTool を使用して圧縮し、暗号化するための Gradle タスクを追加します。詳細については、ドキュメントを参照してください。

Android 用プログラム バイナリ キャッシュ

 

 

プログラム バイナリ キャッシュを使用すると、シェーダー ロードのパフォーマンスを向上させることができます。また、Android デバイスのシェーダー ロードによるヒッチングも削減できます。プログラム バイナリ キャッシュは、次回実行した際に、シェーダーをロードするとき使用されるデバイス上のシェーダー プログラムの、最適化されたバイナリ表現を生成することによって機能します。最適化されたバイナリからシェーダー プログラムをロードすることで、シェーダーのロード時間を大幅に短縮することができます。アプリケーションの最初の実行中に、プログラム バイナリ キャッシュにデータが格納されるので、シェーダー パイプライン キャッシュ ツールと併用する必要があります。プロジェクトのプログラム バイナリ キャッシュを有効にするには、「AndroidEngine.ini」またはデバイス プロファイルに次のコマンドを追加する必要があります。

  • r.ProgramBinaryCache.Enable=1

注意:デバイスの中には、使用するプログラムのバイナリの拡張子をサポートしていないデバイスもあります。そのようなデバイスは、従来の動作にフォールバックします。

Android 上のエミュレートされたユニフォーム バッファ

OpenGL ES3.1 の機能レベルをターゲットとするプロジェクトでは、エミュレートされたユニフォーム バッファを使用できるようになりました。そのため、アプリケーションの複雑さに応じて メモリ使用量が大幅に削減され、レンダリングのパフォーマンスが向上 します。エミュレートされたユニフォーム バッファは、プロジェクトのパッケージ化の際に GPU に転送されるデータのサイズを縮小するよう最適化されています。OpenGL ES3.1 の機能レベルを使用時、エミュレートされたユニフォーム バッファを有効にするには、次の行を [/Script/Engine.RendererSettings] の下にある DefaultEngine.ini に追加します。

[/Script/Engine.RendererSettings]
OpenGL.UseEmulatedUBs=1

Android 上の CPU スレッド アフィニティ制御

ConfigRules システムでリトルコアアフィニティ マスクを使用するかどうかを登録できるようになりました。これを有効にすると、次に挙げるスレッドではリトルコアを使用します。レンダリング、プール、タスク グラフ、統計、タスクグラフのバックグラウンド、非同期ロード。これにより、ビッグコアとリトルコアが切り替わるヒッチをなくし、バッテリの寿命を延ばし、パフォーマンスを安定化します。設定方法の詳細については、 「Config Rules」 を参照してください。

モバイルでの GPU パーティクル シミュレーションのパフォーマンス向上

パーティクル シミュレーションに GPU を利用するモバイル パーティクル エフェクトが大幅に改善されました。シミュレートされたパーティクルの使用可能最大数を制限することで、GPU パーティクル シミュレーションのメモリ使用量を減らすことができます。デフォルトでは、同時にシミュレートできる GPU パーティクルの最大数は約 100 万個に設定されており、約 32 MB のメモリを使用します。プロジェクトの [/Script/Engine.RendererSettings] の下にある DefaultEngine.ini に次のコードを追加することで、使用するパーティクルの最大数を調整できます。

[/Script/Engine.RendererSettings]
fx.GPUSimulationTextureSizeX=512
fx.GPUSimulationTextureSizeY=512
  • 値を 512 から 256 に設定すると、メモリ使用量が約 8 MB に減少します。
  • SimulationTextureSize のサイズは 2 の累乗でなければなりません。
  • これらの改善点は、ARM Mali GPU を使用するデバイスで特に顕著となります。

LOD 遷移のディザリング

LOD 遷移のディザリングがモバイル プラットフォームでサポートされるようになりました。有効にすると、[Dithered LOD transitions] オプションが有効になっているマテリアルを持つオブジェクトが、ほぼシームレスに 1 つの詳細度 (LOD) から別のレベルにフェードします。デフォルトでは、LOD 遷移のディザリングは、モバイル プラットフォームでは無効になっています。有効にするには、[Project Settings] > [Rendering] > [Mobile] で、[Allow Dithered LOD Transitions] オプションをオンにしてください。

注意:ディザリングされた LOD 遷移が 有効 になっているマテリアルは、「マスクされたマテリアル」としてレンダリングされます。これは、モバイル プラットフォームのパフォーマンスに悪影響を与える可能性があります。そのため、このエフェクトは、マスクされたマテリアルでのみ有効にすることをお勧めします。

新規:クッカのパフォーマンス

クックのプロセスが最適化され、クック時間が最大 60% 短縮されました!低レベルのコードによる不要なファイル システム操作の実行を回避することで、クッカ タイマーが合理化されました。アセットの依存関係に関した不要なアセットの処理も、スケーリングするようにリファクタリングされています。これらの変更は、大規模プロジェクト (100,000 以上のアセットを持つプロジェクト) で最も効果を発揮します。

新規:Pixel Streaming (ベータ)

クラウド内のデスクトップ PC でパッケージ化された Unreal Engine アプリケーションを実行し、任意のプラットフォーム上の任意の最新ウェブ ブラウザに、ビューポートを直接ストリームできます!モバイル デバイスであっても、軽量のアプリから最高品質のレンダリングを実現できます。ダウンロードやインストールの必要はありません。

 

 

Unreal Engine によってレンダリングされ、Web UI に埋め込まれたビューポート。McLaren のご厚意で提供されたイメージとモデル。

リンクを共有するだけで、1 つのゲーム セッションを複数の視聴者に ブロードキャストしたり、接続している各ユーザーにそれぞれ別のゲーム セッションを送信したりできます。

Engine ビューポートをホストする Web ページは、自動的にキーボード、マウス、タッチといったイベントをエンジンに返します。独自の HTML5 UI を使用してページをカスタマイズしたり、独自の JavaScript イベントを使用してゲームプレイ イベントをトリガーしたり、それに応答させたりすることもできます。

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

新規:アニメーション システムの最適化と改善

アニメーション システムは、新しいワークフローの改善、より良い情報の提供、新しいツールなどにより、その最高クラスの機能を発展させています!

Animation Compression のアップデート

最適なコーデックのホワイトリストを使用することで 圧縮時間を大幅に短縮 します。選択肢として使用されない組み合わせの順列を回避することで、圧縮を試行するコーデックの数を大幅に削減できます。マルチコア システムでは、ほとんどのコーデックが自動圧縮中に並行して評価されます。そのため、アニメーション シーケンスを圧縮するのにかかる時間がさらに短縮されます。

[Animation Compression Stat Dialog] ウィンドウに次のアップデートが行われました。

  • ダイアログに間違った結果が表示されるバグを修正
  • 圧縮時間の統計を追加
  • 圧縮されたアニメーションの数を追加
  • 平均誤差が最も大きいアニメーションの追跡を追加
  • 比較的悪い結果のアイテムだけではなく、ワースト 10 アイテムの追跡を追加
  • ダイアログのラベルを改善
  • 再計算する代わりに FBoneData 配列をパススルーする場合を増加

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

アニメーション通知の改善

ダイナミクスとクロスのシミュレーションの状態を管理できる新しいアニメーション通知が追加されました。また、Notify add / replace メニューが更新され、クラス ピッカーによる BP とネイティブ通知の検索を改善しました。通知を追加するには、[Notifies track] を右クリックして [Add Notify] で、追加する通知のタイプを選択します。

詳細については、 「Animation Notifications (Notifies)」 を参照してください。

ルート モーションのオリジナル スケールを維持

ルート モーションのオリジナル スケールを維持するために、Use Normalized Root Motion Scale(ノーマライズされたルート モーション スケールを使用する)オプションが追加されました。このオプションは、デフォルトでオンになっています (この Engine リリース以前に存在していた機能です)。このオプションを無効にした場合、代わりに最後にブレンドしたアニメーションが使用されます。

詳細については、 「Enabling Root Motion」 を参照してください。

Sync Marker の名前にキャッシングとオートコンプリートを追加

Sync Marker を作成するとき、既存の Sync Marker メニュー オプションから、スケルトンに割り当てられた Sync Marker にアクセスできるようになりました。検索ボックスにテキストを入力すると、その入力に基づいて Sync Marker も除外されます。

 

 

アニメーション シーケンス フレームレート

アニメーション シーケンスのフレームレートが、アニメーション ツールのビューポートとコンテンツ ブラウザのツール チップに表示されるようになりました。

 

 

アニメーション モンタージュの自動ブレンドを有効化

アニメーション モンタージュに、自動ブレンドを有効または無効にするオプションが追加されました。このオプションはデフォルトで有効になっています。しかし、無効にすることで、モンタージュを自動的にブレンドせず最後のポーズを保持させることができます。

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

CCDIK スケルタル制御ノード

新しい CCDIK (Cyclic Coordinate Descent Inverse Kinematics) スケルタル制御ノードは、肩から指先など、比較的短い IK チェーンのリアルタイム計算に適した軽量の IK アルゴリズムです。

詳細については、 「CCDIK」 のスケルタル制御ノードに関するセクションを参照してください。

Set Master Pose Component Force のアップデート

Set Master Pose Component 関数には、Force Update と呼ばれる 2 番目の入力ピンがあります。このピンは、情報がマスター コンポーネントと同じであるか、ランタイム情報のアップデートを強制する場合は、すべてのランタイム情報のアップデートをスキップさせることができます。これは、シリアライズできる登録プロセスのみに適用されますが、その時点で、すべてのランタイム データを更新する必要があります。

 

 

詳細については、 「Master Pose Component」 を参照してください。

その他の改善とアップデート

  • Live Animation Blueprint Recompilation は実験段階ではなくなりました
  • ローカル空間がアニメーション エディタのデフォルトの座標空間になりました
  • 最小 LOD が適用されているときにアニメーション ツール ビューポートに通知が表示されるようになりました

新規:Gauntlet Automation Framework (ベータ)

新しいベータとして追加された Gauntlet Automation Framework を使用すると、ビルドをデバイスにデプロイし、1 つ以上のクライアントかサーバー (または、クライアントとサーバー) を実行し、結果を処理するプロセスを自動化できます。

関心がある部分について自動的にプロファイルしたり、ゲームプレイ ロジックを検証したり、バックエンド API からの戻り値を確認したりといった、Gauntlet スクリプトを作成できます。Gauntlet は、Fortnite を最適化する過程で数ヶ月にわたってテストされ 、 すべてのプラットフォームで円滑に動作することが重要視されました。

Gauntlet は、時間における 2 つの点の間で重要なパフォーマンス値を記録できる、新しいプロファイリング ヘルパーを提供します。それにより、欠落した Vsync、ヒッチ、CPU 時間、GPU 時間、RHI 時間、ドローコールなどを追跡できます。また、Gauntlet にはログからこれらを収集するためのヘルパー関数もあります。そのため、警告を生成したり、データベースに格納したり、トレンド ラインを作成したりすることができます。テスト中にキャプチャされたすべての情報は、任意の方法でレポートに出力できます。

これがどのように機能するかについて、以下のサンプルで説明します。

 

 

各 Gauntlet テストは、クライアント数、サーバー数、渡すパラメータなど、テスト用のシンプルな構成を表す C# スクリプトです。Gauntlet は、プールからのマシンの割り当て、ビルドのデプロイと実行、クラッシュ、アサート、タイムアウトなどの一般的なエラーのチェック、ログ ファイルやその他のアーティファクトの収集を行います。

新規:Submix エンベロープ フォロワー

新しい Unreal Audio Engine のユーザーは、Submix にエンベロープ フォロワー デリゲートを設定できるようになりました。Submix の個々のチャンネルの振幅分析が可能になります。これにより、ユーザーは、Submix を適用したオーディオの振幅特性に基づいて、ビジュアライズの調整や Blueprint イベントの使用ができるようになります。

 

 

新規:Filter Sound Submix Effect

新しい Unreal Audio Engine のユーザーは、マルチモード フィルタを Submix に追加することで、単一の Submix に動的なフィルタ効果を与えることができます。

 

 

新規:Sound Submix Effect Reverb Dry Level

新しい Unreal Audio Engine の Submix Effect Reverb は、パラレル ウェットとドライ レベルをサポートしています。そのため、ウェット/ドライの比率を指定しインサート スタイル エフェクトやセンド スタイル エフェクトとして使用できます。

新規:Source Effect API に対する最適化

新しい Unreal Audio Engine の Source Effect API は、オーディオがフレームごとではなくフル バッファを処理するように最適化されています。これにより、ソース エフェクトは以前より効率的に処理されます。

 

 

新規:Linux で Vulkan Renderer をデフォルトに設定

Vulkan が利用可能な際は、それを Linux のデフォルトのレンダラーとして使用できるようになりました。API を初期化できない場合、エンジンは通知なしに OpenGL を戻します。

[Project Settings] で、Target RHIs を使用して特定の RHI を追加または無効にするか、コマンドライン スイッチ「-vulkan」「-opengl4」を使用してフォールバックを無効にすることができます。

新規:Linux Media Player

バンドルされた WebMedia プラグインを使用することで、Linux プラットフォームで .webm VPX8/9 ビデオを再生できるようになりました。

新規:Linux Crash Report Client GUI

Linux 上で Crash Reporter GUI がサポートされるようになりました。これにより、Linux プラットフォームのサポートを改善するためのレポートを送ることができます。問題が発生した場合は (繰り返し発生する場合も)、その都度ご報告ください。弊社のエンジニアがその頻度を評価し、どのような状況でクラッシュが発生するのかを調査いたします。

新規:Professional Video I/O の改善 (ベータ)

プロ品質の SDI ビデオカードを使用することで、Unreal Editor でビデオフィードを簡単に取り込むことができます。プロジェクトのコンフィギュレーション設定を変更することなく、異なるハードウェア設定の複数のコンピュータで、同じ Unreal Engine プロジェクトを使用できるようになりました。

各コンピュータに MediaProfile を作成し、それらでコンピュータで処理に使用するビデオカードと使用フォーマットの設定を行います。また、同じパネルから、プロジェクトのタイムコードとゲンロックのソースをオーバーライドすることもできます。

 

 

メディア プロファイルを新しいプロキシ メディア ソース、プロキシ メディア出力アセット タイプと組み合わせると、プロジェクトのメディア コンテンツとメディア プロファイルの設定との間で入出力チャネルを自動的にリダイレクトできます。別のメディア プロファイル (例えば、異なるメディアカードまたは異なる配線設定を備えた異なるコンピュータ上のもの) に切り替えると、そのマシンのハードウェアの入出力チャネルが自動的にプロキシを経由してルーティングされるため、プロジェクトのコンテンツを変更する必要はありません。

詳細については、 「Using Media Profiles and Proxies」 を参照してください。

さらに、このリリースでは次の機能が追加されました。

  • ドッキング可能なタイムコード プロバイダ パネル ([Window] > [Developer Tools] > [Timecode Provider])。Unreal Engine の現在のタイムコードとそのタイムコードのソースを次の通り表示します。
  • 10 ビット入力、オーディオ I/O 、インターレース /PsF 入力をサポート。
  • 新しい Blackmagic Media Player プラグイン。Blackmagic Design の SDI カードをサポートします。 「Blackmagic Video I/O Quick Start」 を参照してください。

注意:AJA Media Player と Blackmagic Media Player プラグインは、Unreal Engine で自動的にはインストールされなくなりました。Epic Games Launcher の [Marketplace] タブから入手してください。それらのソースは GitHub から無料で取得できます。それにより、他のデベロッパーは、Engine の Media Core API 上でビデオ I/O プラグインを開発する方法の見本を知ることができます。

新規:地理的に正確な太陽位置 (ベータ)

現実世界では、空にある太陽の位置は指定した位置の緯度と経度、日付、時刻で決定されます。Unreal Engine のレベルで、現実世界と同じ数学方程式を使用して太陽の位置を制御できるようになりました。

これは、大規模な建築プロジェクトや建設プロジェクトなど、地球上の特定の場所での実際の照明条件をシミュレートする必要がある場合に特に効果的です。また、地球の位置、時刻に基づいてリアルな太陽の位置づけと動きの再現を行いたい場合でも役に立ちます。

詳細については、 「Geographically Accurate Sun Positioning」 を参照してください。

新規:スタティック メッシュ処理

Unreal Editor に、新しいスタティック メッシュ処理のオプションをいくつか追加しました。スタティック メッシュから不要な UV マッピングを削除してメモリを節約することができます。

さらに、Unreal Editor 内で Python スクリプトと Blueprint スクリプトを使用すると、次のことが可能になります。

新規:ブループリントのユーザビリティ向上

Blueprint Graph Editor に「Quick Jump」ナビゲーション機能が追加されました。それにより、既存のブックマーク機能に加えて、Blueprint Editor 上にて現在位置とズーム レベルを Ctrl + 0~9 キーで保存できるようになりました。別のブループリント アセットで作業している場合でも、Blueprint Editor ウィンドウが開いている時はいつでも SHIFT + 0~9 キーを押すことで、その場所とズーム レベルのグラフにすばやく戻ることができます。「Quick Jump」ブックマークは、エディタのセッションを超えてユーザーまたはマシンのローカルの場所に保持されます。

コンテキスト メニューを使用して、Sequence ノードのターゲット ピンの前後にピンを挿入することができるようになりました。以前はピンを最後に追加することだけが可能でした。

プロジェクト設定として、ネイティブ化されたブループリント クラスの C++ コードからのモノリシック エンジン ヘッダ ファイルの除外が可能になりました。コード サイズが問題となっている場合、これにより、モノリシックなゲームの exe ファイルのコード サイズを全体的に縮小できます。このオプションには、[Blueprint Nativization Method] オプションの [Advanced] セクションから [Project Settings] -> [Packaging] でアクセスできます。既存のオブジェクトとの互換性を維持するため、このオプションはデフォルトでは無効になっています。

新規:HTML5 テンプレートの改善

HTML5 プロジェクトでは、以前の単一で巨大なテンプレート ファイルに代わって、個別の HTML、JavaScript、CSS テンプレートを使用するようになりました。プロジェクト単位でのカスタム テンプレート ファイルもサポートされています。

プロジェクト単位で使用する場合は、以下のファイルを

.../Engine/Build/HTML5/GameX.*.template

以下の場所にコピーします。

[project]/Build/HTML5/.

ビルド プロセスは自動的にプロジェクトのパスにあるファイルを選択します。見つからない場合は、Engine のバージョンにフォールバックします。

これは GitHub PR#4780 に基づいています。

新規:HTML5 README ファイルのアップデート

HTML5 README ファイルは、カテゴリごとに次のように複数の README ファイルに分割されました。

  • Building UE4 HTML5
    • ソース ファイルを取得する
    • サポート プログラムをコンパイルする
    • UE4 Editor をコンパイルする
    • UE4 Editor を実行する
    • HTML5 のプロジェクトをパッケージする
    • HTML5 パッケージ プロジェクトをテストする
  • Debugging UE4 HTML5
    • スタックをダンプして Cpp からプリントする方法
    • BugHunting GLSL
  • Emscripten and UE4
    • EMSDK
    • Emscripten ツールチェーンと Thirdparty ライブラリ
    • UE4 C# スクリプト
    • テスト ビルド、チェックイン、CIS

新規:IPv6 のサポートの改善

IPv4 と IPv6 のサポートは、以前は各プロトコルが特定のサブシステムごとに分かれてサポートされていましたが、単一のソケット サブシステムに統合されました。これにより、BSD サブシステムの 1 つを使用していたプラットフォームで、IPv4 と IPv6 の両方を同時にサポートすることができ、呼び出しコードに対して透過的に処理できます。

新規:DDoS の検出と軽減

DDoS (distributed denial of service) 攻撃は、通常、ゲームサーバーに非常に多くのパケットを流すことによって、サーバーを妨害します。サーバーは、他のプレイヤーのパケットをロックアップしたり押し流すことなしにすべてのパケットを処理できなくなるため、プレイヤーがタイムアウトしたり、ゲームプレイを妨げる重大なパケット損失が起こることになります。

通常、これらの攻撃には、送信元 IP が確認できない、偽装された UDP パケットが使用されます。DDoS 検出 (オプション) は、この状況に特に焦点を合わせ、既存の既知のクライアント接続に由来しない、偽装された UDP パケットを設定可能なしきい値に基づいて DDoS 攻撃を検出/緩和します。ただし、これはサーバーがすべての攻撃から守られるということを保証するものではありません。攻撃が、サーバーを実行しているハードウェアまたは OS を圧倒する可能性はあるためです。

新規:物理インターフェースのアップデート

物理インターフェースは、高度なレベルで物理オブジェクトのオーナーシップの強化をサポートするため、リファクタリングされました。そして、APEX Destruction での使用のみが推奨されていた非同期シーンは非推奨となりました。同期シーンを使用しても、同じ視覚効果を得ることができます。

これらの変更の結果、物理関連の C++ コード API の多くも変更されました。機能的に API は同じなので、現在使用している方法とほぼ同様の方法で使えるはずです。物理インターフェースは、a) 依存関係を 1 つの制御された場所に再編成すること、b) Unreal とやり取りする際に物理的相互作用の共通モデルを作成することを目的として、変更されました。

詳細については、 「4.21 Physics Technical Notes」 を参照してください。

新規:Pipeline State Object (PSO) キャッシング

Pipeline State Object (PSO) キャッシングが、Metal (iOS/Mac)、DX12、Vulkan プラットフォームでサポートされるようになりました。PSO キャッシングは、マテリアルが新しいシェーダーをコンパイルする必要がある場合に起こる可能性があるプロジェクトでのヒッチを減らすことができます。PSO キャッシングは、マテリアルが必要とするすべての必要なシェーダーのリストを作成します。これらのシェーダーで、プロジェクトで最初に遭遇したシェーダーのコンパイル処理をスピードアップすることができます。PSO キャッシングは、[Project Settings] > [Packaging] セクションで有効にすることができます。

UE4 のプロジェクトにおける PSO キャッシングの設定方法や使用方法の詳細については、 「PSO Caching」 を参照してください。

新規:物理ライト単位のアップデート

コミュニティのフィードバックに基づいて、物理的ライト 単位のワークフローとユーザビリティを改善しました。これらのアップデートの一部として、以下の変更が行われました。

  • すべての光源タイプで、Intensity 値の隣に単位タイプが表示されるようになりました。
  • 指向性ライトが、intensity の範囲が拡大した LUX で表示されるようになりました。
  • 指向性ライトが、intensity の範囲が拡大した cd/m2 で表示されるようになりました。
  • ポスト プロセス自動露出設定は、シーン輝度の拡張範囲にて EV-100 で表されます。これは、以下の手順で設定することができます。
  • Pixel Inspector で、シーン カラーの事前露光を表示できるようになりました。これは、以下の手順で設定することができます。
  • HDR (明暗順応) 視覚化は以下のようにリファクタリングされました。
    • HDR 現在のシーン ビュー上のピクチャーインピクチャーの表示を分析して、即時にフィードバックし、調整を行うことができます。
    • 視覚化は EV100 で表されるようになりました。
    • Pixel Inspector のようなフィードバックは削除されました。

追加情報については、 「Physical Lighting Units」 を参照してください。

新規:シーケンサーのイベント トラック

シーケンサーのイベント トラックは完全にリファクタリングされました。そのため、イベントはブループリント グラフと密接に結合されており、よりユーザー体験が向上し、より堅牢なものになりました。ブループリントとインターフェースを利用することで、構造体のペイロードと匿名の名前付きイベントを使用した以前の実装と比較して、より優れた制御や安定性の向上が可能になります。

詳細については、 「Event Track Overview」 および 「Calling Events through Sequencer」 を参照してください。

新規:Geometry Cache トラック (実験的機能)

Geometry Cache トラック は、ジオメトリ キャッシュをスクラブし、フレーム精度でレンダリングする実験的な新機能です。

詳細については、 「Using the Geometry Cache Track」 を参照してください。

新規:シーケンサーオーディオのベイク (ベータ)

[Render Movie Settings] ウィンドウからオーディオを Master Audio Submix にベイクできるようになりました。オーディオをベイクするプロセスは別のレンダリングパスで行われ、ムービーをレンダリングするときにシーケンス内のオーディオを単一のファイルにエクスポートします。

詳細については、 「Render Movie Settings」 を参照してください。

新規:シーケンサーのガイドマーク

タイムライン上に垂直方向のガイドマークを配置して、タイムライン内の主要なポイントをスナップしたり、識別したりするために使用できます。

 

 

詳細については、 「Using Frame Markers in Sequencer」 を参照してください。

新規:Windows Mixed Reality のサポート

Unreal Engine 4 は現在、HP Mixed Reality ヘッドセットや Samsung HMD Odyssey ヘッドセットなど、Windows Mixed Reality (WMR) プラットフォームとヘッドセットをネイティブにサポートするようになりました。ネイティブな WMR サポートを使用するには、Windows 10 の 2018年4月のアップデート以降を適用済みであることと、対応するヘッドセットが必要です。詳細については、 「Windows Mixed Reality Development」 を参照してください。

 

 

画像提供: HP

新規:Magic Leap の資格を有するデベロッパー向けリリースサポート

Unreal Engine 4 は、Magic Leap の Lumin ベースのデバイスでのアプリケーション開発に必要なすべての機能を完全にサポートするようになりました。レンダリング、コントローラーのサポート、ジェスチャーの認識、オーディオ入出力、メディアなどをサポートしています。デベロッパーになる方法の詳細については、 https://www.magicleap.com/ を参照してください。

 

 

新規:Oculus Avatars

Oculus Avatar SDK には、Rift コントローラー、Touch コントローラーの一人称視点における手のプレゼンスの実装について、デベロッパーを支援する Unreal パッケージが含まれています。パッケージには、ソーシャル アプリケーションで他のユーザーに対して表示可能な、アバターの手と体のアセットが含まれています。Avatar SDK でサポートされている一人称の手のモデルと三人称の手と体のモデルは、Oculus Home で作成したアバター設定の選択肢が自動的に適用され、アプリケーション間で一貫性のあるアイデンティティを提供します。詳細については、 『Avatar SDK Developer Guide』 を参照してください。

新規:Round Robin Occlusions

Unreal Engine 4 は Round Robin Occlusions をサポートするようになりました。新たに追加された vr.RoundRobinOcclusion フラグを有効にすると、ステレオスコピック フレームが交互にスキームを使用してフレームごとに片目ずつオクルージョン クエリを開始します (すなわち、奇数フレームは、左目用のクエリのみを実行し、偶数フレームだけが右目用のクエリを実行します)。このアプローチのおかげで、1 フレームあたりのオクルージョンの描画呼び出しの数を半減できます。場合によっては、パフォーマンスが大幅に向上することもあります。

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

Unreal Engine 4 はリリースの都度、プラットフォームのパートナーからリリースされる最新の SDK に対応するようにアップデートしています。

 

 

  • ビルド ファームによるコンパイルの対象である IDE のバージョン
    • Visual Studio:Visual Studio 2017 v15.6.3 ツールチェーン (14.13.26128) と Windows 10 SDK (10.0.12699.0)
      • 最小サポート バージョン
        • Visual Studio 2017 v15.6
        • Visual Studio 2015 Update 3
    • Xcode:Xcode 9.4
  • Android:
    • Android NDK r14b (新しい CodeWorks for Android 1r7u1 インストーラは、Windows および Mac 上の、以前の CodeWorks を置き換えます。Linux は 1r6u1 と修正版を使用します)
  • HTML5:Emscripten 1.37.19
  • Linux "SDK" (クロスツールチェーン):
    • v12_clang-6.0.1-centos7
  • Lumin:0.16.0
  • Steam:1.39
  • SteamVR:1.39
  • Oculus Runtime:1.28
  • Switch:
    • SDK 5.3.0 + 任意で NEX 4.4.2 (Firmware 5.0.0-4.0)
    • SDK 6.4.0 + 任意で NEX 4.6.2 (Firmware 6.0.0-5.0)
    • サポートされている IDE:Visual Studio 2017、Visual Studio 2015
  • PS4:
    • 6.008.001
    • ファームウェア バージョン 6.008.021
    • サポートされている IDE:Visual Studio 2017、Visual Studio 2015
  • Xbox One:
    • XDK:2018年6月 QFE-4
    • ファームウェア バージョン:2018年6月 (バージョン 10.0.17134.4056)
    • サポートされている IDE:Visual Studio 2017
  • macOS:SDK 10.14
  • iOS:SDK 12
  • tvOS:SDK 12