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

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

作成 Alexander Paschall

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

Anton Olkhovik (Sektor), Alessandro Osima (AlessandroOsima), Alex Widener, Alexandru Pană (alexpana), Andreas Axelsson (judgeaxl), Andreas Schultes (andreasschultes), Artem (umerov1999), Artem V. Navrotskiy (bozaro), Ben Reeves (BGR360), bensch228, Black Phoenix (PhoenixBlack), Brandon Wamboldt (brandonwamboldt), Cameron Angus (kamrann), Christoph Becher (chbecher) ,Clay Chai (chaiyuntian), Dan Ogles (dogles), David Baack (davidbaack), Don Williamson (dwilliamson), Eli Tayrien (ETayrienHBO), Eren Pinaz (erenpinaz), G4m4, Hannah Gamiel (hgamiel), Hevedy (Hevedy), Hyeon-Cheol Cho (crocuis), Igor Karatayev (yatagarsu25), Jason (Abatron), Jefferson Pinheiro (Ixiguis), kallehamalainen, Kiqras, Konstantin Nosov (gildor2), Leon Rosengarten (lion03), Manny (Manny-MADE), Marat Radchenko (slonopotamus), Markus Breyer (pluranium), marynate, Matthias Huerbe (MatzeOGH), Maxim Pestun (maxpestun), Moritz Wundke (moritz-wundke), Mustafa TOP (MSTF), Nikos Tsatsalmas (ntk4), Pablo Zurita (pzurita), Pavel Dudrenov (dudrenov), Peter Oost (Sirrah), Piotr Bąk (Pierdek), projectgheist, Rama (EverNewJoy), Rene Rivera (grafikrobot), Rob Ray (robdeadtech), Robert Khalikov (nbjk667), sackyhack, sankasan, Sébastien Rombauts (SRombauts), Simon Taylor (simontaylor81), Skylonxe, Spencer Brown (JedTheKrampus), Tam Armstrong (tamarmstrong), Thomas Mayer (tommybear), Thomas McVay (ThomasMcVay), unktomi, Verdoso, ZehM4tt.

新機能

今回のリリースには、新機能とパフォーマンス最適化が数多く含まれています。現在、次作タイトル Paragon の出荷準備段階にあるため、パフォーマンスが極めて重要となりました。4.11 では、オーディオ機能とツールの改善に加えて、キャラクターのリアルなレンダリングに特化したレンダリングとアニメーション機能が新たに追加されています。UE4 の VR は進化し続けています。ゲームを出荷できるように、VR レンダリングを改善し、最新の SDK をサポートしました。

主要機能

パフォーマンスとマルチスレッディング

この数ヶ月間は、次作ゲーム Paragon を PC および PlayStation 4 で動かすために UE4 の最適化に重点的に取り組んできました。

Paragon はチームにとって、ユニークな挑戦の連続でした。Paragon では、長い見通し線の美しい詳細マップを 60fps でレンダリングしながら、10 人のヒーローと 120 超のミニオン (子分) を大量の FX で一度にアニメートする機能をサポートしなければなりませんでした。Paragon はエンジンの限界への挑戦でした。特にアニメーションとレンダリングに力を注ぎました。

image alt text

細かい最適化をエンジン全体で数多く実施することで Paragon のパフォーマンスを大幅に改善しました。UE4 で作成されたすべてのゲームの改善にもつながるでしょう。これらの最適化の多くが 4.11 で実現され、今後のリリースで更に最適化されます。最適化作業の成果を幾つかを紹介します。

Parallelization (並列化): PC やコンソール上での高いフレームレートの実現には今やマルチコア スケーリングが極めて重要となるので、 スレッド アーキテクチャ をいくつかの方法で改善しました。タスク作成の負荷を減らして、優先度の高いタスクへのサポートを追加し、同期ポイントを多数取り除きました。

レンダリング パフォーマンス: GPU でオーバーヘッドを増やさずに最大の並列処理を実現するために、レンダラが GPU に生成された作業者タスクとコマンド バッファのサイズのバランスを保持できるようになりました。レンダラの同期ポイントも取り除いたので、利用可能なコアが使いやすくなりました。

クロス シミュレーション: が劇的に速くなり、マルチスレッディングが使いやすくなりました。アセットごとに APEX ソルバをワーカースレッドから直接呼び出せるようになりました。そのため、スケジューリングが簡単になり、同期ポイントとオーバーヘッドが多数取り除かれました。クロスは、アニメーション後 (ブレンドが必要ない場合) あるいはスケルタル メッシュ コンポーネントのアップデート後にアップデートされるようになりました。

ガーベジ コレクションの高速化: ガーベジ コレクション "クラスタ" がサポートされて、エンジンがオブジェクト群をひとつのユニットとして処理できるようになったので、考慮すべきオブジェクト数が大幅に減りました。今のところ、マテリアルとパーティクル システムのサブオブジェクトのみクラスタ化されます。さらに、マーク フェーズおよび破壊フェーズがさらにキャッシュ コヒーレントになり、処理時間は 9 分の 1 に短縮、到達可能性分析中のメモリ チェーンも少なくなりました。

マルチスレッド アニメーション: アニメーション グラフのアップデートがワーカースレッド上で実行できるようになったので、アニメートされたキャラクター数をコアの数でスケールすることが可能になりました。アップグレード ノートを確認してください。多くのアニメーション関連の API を非推奨とし、ワーカースレッド上で実行できるアニメーション グラフを制限しました。

アニメーション変数へのインスタント アクセス: アニメーション グラフ アップデートに変数アクセスのためのファスト パスが追加されました。ブループリント コードを実行せずに、内部でパラメータを簡単にコピーできるようになりました。メンバ変数、無効の Boolean メンバ変数、ネスティングされた構造体のメンバをコンパイラで、最適化できるようになりました。

加算アニメーションのベイク処理: ベイクした加算アニメーションをオンにするオプションが付きました。 加算アニメーション が約3 倍 の速さになります。加算アニメーションのデルタ ポーズの計算に関わる作業はランタイムではなくクックタイムで処理されます。加算デルタ作成の計算作業のみならず、ランタイム時に必要がなくなったベース アニメーション解凍のメモリ アクセスと割り当ても保存されます。この機能によりクック時間が増加するので、cvar "a.UseBakedAdditiveAnimations" を 1 に設定して有効にする必要があります。今後のバージョンでは、この負荷が発生しないようにして、最適化された状態が永久に保たれるようにエンジンのアニメーション クック処理を改善します。

新規:リアルなヘアシェーディング

映画からの最新の研究にもとづいて リアルなヘアを実現するための物理ベースのシェーディング モデル が追加されました。

image alt text image alt text

2 つのスペキュラ ローブ、トランスミッションとスキャタリングをモデル化します。この機能を使うには、マテリアル エディタのシェーディング モデル リストから [Hair] を選択します。

新規:リアルなアイシェーディング

アンリアル エンジンの新な物理ベースである目のシェーディング モデルを使えば、キャラクターの 目をかなりリアルに 作成することができます。

image alt text

シェーディング モデルにより、強膜のサブサーフェス スキャタリング、虹彩上のコースティクス、濡れたレイヤー上のスペキュラが近似されます。提供されている目のマテリアルおよび眼球のジオメトリと一緒に使用します。角膜での屈折、瞳の外側の境界線の暗化、瞳の拡張制御も追加されています。

新規:スキンシェーディングの改善点

 リアルな皮膚を作るためのシェーディング モデルであるサブサーフェス スキャタリング プロファイルの クオリティとパフォーマンス が改善されました。

image alt text

アップデートされたシェーディング モデルはこれまでの半分の解像度、必要な GPU メモリも減りました。スキャタリングは独立した解像度となり、オブジェクトのエッジでのカラー シフトがなくなりました。ひとつのピクセルに両方パックするのではなく、基盤の目状で別々にディフューズとスペキュラ ライティングを保存することで、テクスチャとライティングの詳細が保存されやすくなりました。

新規:リアルなクロスシェーディング

 クロスを作るためのシェーディング モデルが追加されました。不明瞭なレイヤーをシミュレートし、これまでよりもリアルなクロスの生成が可能になりました。この機能は、マテリアル エディタで [Cloth shading model] を選択します。

image alt text

新規:カプセル シャドウ

アンリアル エンジンは、キャラクターの カプセル表現 による 非常にソフトな間接シャドウ キャストをサポートするようになりました。

image alt text

間接的に照らされている場合、スクリーン空間アンビエント オクルージョンの場合を除き、通常はシャドウは付きません。間接的なシャドウイングは非常にソフトにする必要があります。間接的なライティングは多方向から入ってくるので、通常のシャドウ マップではうまくいきません。間接的なシャドウ方向とソフトさは、ライティング ビルド中に Lightmass によって配置および計算された Folume Lighting Samples によるものです。

ゲームでは、間接的なカプセル シャドウがキャラクターを背景に配置します。

image alt text

直接シャドウにもカプセルを使うことができます。ライトのソース半径またはソース アングルは、ソフトさによって決まります。効率的にベイクされたライティング背景の中での非常にソフトなキャラクター シャドウの作成が、今回初めて可能になりました。

image alt text

このカプセル シャドウの実装は非常に効率的です。深度を意識したアップサンプルを使って半分の解像度でシャドウイングを計算し、スクリーン タイル カリングを使ってシャドウイング作業を必要な場所のみに制限します。

GPU 負荷は、カプセル数およびキャストされたシャドウが影響するピクセル数に比例します。

カプセル シャドウを有効にする方法

  1. カプセルのみを使って、物理アセットを新規作成します。球体でもできますが、柔軟性が欠けます。カプセルはジョイントでわずかにオーバーラップします。足のカプセルは、キャラクターが地上にいるように見せる調整のために、もっとも重要です。腕は、地面を覆ったり這ったりする以外は、あまり必要ありません。
  2. 物理アセットをスケルタル メッシュ アセットの Shadow Physics アセットに割り当てます。
  3. 最後に、スケルタル メッシュ コンポーネントでカプセルの直接シャドウを有効にします。

新規:パーティクルの DOF (被写界深度)

新しいマテリアル関数で焦点ずれしている小さなパーティクルを拡大して、不透明なパーティクルと同じ方法の  DOF レンダリングが可能になりました。

image alt text

左の画像は、パーティクルが数多くグラウンドに配置されているシンプルなシーンです。右の画像では、Circle DOF が有効にされており、この新しいマテリアル関数がパーティクルをその他のすべてのジオメトリのようにぼかしてレンダリングします。ノイズ アーティファクトが発生しないので、クオリティはむしろ良くなります。ぼかしたパーティクルは常に 1 ピクセル分拡大して、ちらつきを避けます。

この機能は、パーティクル マテリアルで変更する必要があります。

image alt text

新規:Dithered Opacity Mask (ディザ処理したオパシティ マスク)

Dithered Opacity Mask を使って、不透明なマテリアルを使った 透過サーフェスのエミュレーション ができます。

image alt text

マテリアル エディタの [Dithered Opacity Mask] チェックボックスは、テンポラル アンチエイリアシングが有効の場合、順番に依存しない透過性のストキャスティック フォームを提供します。テンポラル AA は、フォアグラウンド オブジェクトをバックグラウンドとブレンドするために利用します。これにより、半透明のオブジェクトですべてのディファード シェーディング機能をノイズとゴーストの負荷がほとんどなく使用できます。

新規:Dithered LOD Crossfades (ディザ処理した LOD クロスフェード)

アニメートされたディザ パターンを使って、スタティックメッシュが LOD 間をスムーズにクロスフェード できるようになりました。

image alt text

注意:この機能は有効化してもパフォーマンス負荷は低いので、マテリアル上で有効にしておかなければなりません。

image alt text

新規:階層 LOD の改善点

今回のリリースでは 階層的な Level-of-Detail (HLOD) システムが 大幅に改善されました 。階層的な LOD により、遠くにある大量の細かいメッシュをシンプルなメッシュ数個に自動的に置き換えることができます。これにより、至近距離のオブジェクトが極めて高品質に見せることができ、レベル全体のパフォーマンスも速くなります。

image alt text

Paragon の Agora -- トライアングル数 2,560,000 個、ドローコール数 5690 (それぞれ 3,940,000 個と 7060 から削減)

HLOD を最も効率よく使うためには、Simplygon SDK が必要です (Simplygon のライセンスが必要です)。Simplygon は、少ないポリゴンでプロキシ メッシュを生成するために必要です。これがないと、異なるマテリアルを使うセクションを、ひとつのドローコールへ焼き付けてまとめるだけの処理になります。

新機能の Hierarchical LOD Outliner には新しい設定がたくさんあります。レベルの HLOD の設定に役立ちますので、こちらも確認してみてください。

新規:VR Instanced Stereo Rendering

Instanced Stereo Rendering を使うと、VR ヘッドセットのステレオスコピック画像のレンダリングが効率的に行われる最適化機能です。

これまでは、左目に対してすべてを描画したら右目に対してすべてを描画するという方法でステレオスコピック画像をレンダリングしてました。これに対して Instanced Stereo Rendering は、両目を同時にレンダリングするので、CPU 処理が大幅に減り、GPU 効率が改善されます。では 2 つの技術を比較してみましょう。

image alt text

Bullet Train をテスト用コンテンツに使ってみると、何も手を加えていないのに、CPU 時間は約 14 %、GPU は約 7 %の改善が確認されました。ほとんどのレンダリング機能は Stereo Instancing と一緒に使えますが、まだサポートされていない機能もたくさんあります (DFAO など)。

プロジェクトでこの機能を有効にするには、エディタの [Project Settings (プロジェクト設定)] の [Instanced Stereo] のボックスにチェックを入れます。

image alt text

新規:Anim Dynamics (キャラクタ用の高速物理シミュレーション)

Anim Dynamics は、アニメーション ブループリント用の最新の 独立した  シンプルな物理シミュレーション で、全部の物理ソリューションを使わずに、動的なモーションをプロシージャルにスケルタルメッシュに追加することができます。

image alt text

Anim Dynamics の主要機能の概要です。

  • 剛体の簡易シミュレーション
    • アニメーション評価ステップで実行します。
    • アニメーションに反応するため、コンポーネント空間で実行します。
    • 高速シミュレーションなのでコリジョンは使えません。
    • イナーシャの計算には、ボックスのみサポートしています。
  • 剛体コンストレイント
    • Angular - 3 本目の軸をロックして 2 本の軸に制約をかけます。剛体は自由な 2 本の軸の周りを所定の角度範囲で回転できます。Prismatic と Planar コンストレイントと一緒に機能します。
    • Cone - コンストレイントの指定角度内に剛体を維持する自由回転のコンストレイントです。Prismatic と Planar コンストレイントと一緒に機能しますが、Angluar が選択されていると Angular に変わります。
    • Prismatic - 3 本の軸の線形コンストレイントで、指定された制限内で 3 本すべての主軸と平行に移動ができます。
    • Planar - 剛体が交わることができない無限に広がる平面のリストです。グラウンド平面として使用してオブジェクトをぶらさげたり、オブジェクトがキャラクターを突き抜かないようにするために使用します。各平面は、ワールド空間に配置するか、キャラクター上のボーンから操作されるトランスフォームを持つことができます。
  • チェーン
    • 各ノードは、ひとつの動的ボーンか、同類のコンストレイント データを共有する動的ボーンの連続的なチェーンのいずれかを表します。沢山のボディを結合した場合、そのシミュレーションを行うとビヘイビアのリアルさが増します。
    • ノードがひとつの場合は力はチェーンの一方向だけ伝え、絶対に戻しません。チェーン モードを使えば力が双方向に伝わるのでチェーンが良くなります。
  • スプリング ターゲット
    • 線形および傾斜ばね作用は、ばねのようなエフェクトを出すために使います。独立した設定が可能で、異なるスプリング定数を付けることができます。
  • 風作用
    • Anim Dynamics は、APEX クロス オブジェクトに影響を与えるのと同じ風を起こすアクタと使用できます。ノードごとの切り替えが可能で、スケーリングすることで風の完璧に反応させることができます。
  • 補正サブステップ機能
    • シミュレーションは、物理プロジェクト設定にもとづいた法線ティック設定による実行、あるいは適応設定による実行が可能です。
    • シミュレーションはノードごとに設定できるので、あるノードで収束のシミュレーション用にイタレーションがさらに必要であれば、他のシミュレーションに影響を与えずに必要なだけ増やすことができます。
    • このモードでは、シミュレーションを実際に実行する時間とは別に、チックするゲームの総合時間をトラックします。開始が遅れれば、時間の負債を維持してシミュレーションを複数回実行します。問題のスパイラル化を止めるために使われますが、複雑なシミュレーションに安定性を追加することができます。
  • ビジュアライゼーション
    • ノード上で、様々なものを視覚化するオプションを選択することができます。以下のビジュアライザーが利用できます。
      • Angular limits

      • Prismatic limits

      • Planar limits

      • Planar exclusion methods (平面制限のある球体コリジョン)

新規:ゲームプレイからのアニメーションのライブ録画

 ライブ ゲームプレイ  にスケルタルメッシュの アニメーションを記録  し、Anim Sequence アセットとして保存できるようになりました。

image alt text

エンジン内で使用したり、FBX としてエクスポートしてサードパーティ ツール内で使用することができます。ライブでもリプレイ中でも、アクティブになっているゲームシナリオにはすべて機能します。

使用方法:

  • アニメーションを記録するためには、コンソールを開いて  RecordAnimation MyActorClass_05 /Content/Foo/RecordedAnimation と打ち込みます。
  • 記録を停止するためには、StopRecordingAnimation MyActorClass_05 or StopRecordingAnimation all と打ち込みます。
  • 無効なアセット パスを省略あるいは提供すると、選択した場所にピッカー ポップアップが表示されます。ワールド アウトライナーでアクタ名の検索ができます (アクタ名にカーソルを乗せると "ID Name" が確認できます)。

新規:DOF のクオリティがアップ

パフォーマンス コストは変えずにノイズを減らして品質を高めるために、DOF のサンプリング回数 ("Circle DoF") を増やすことができるようになりました。

image alt text

新規:プラットフォームと SDK のアップデート

通常のアップデートと合わせて、各種 VR プラットフォームの起動ウィンドウでのタイトル シッピングに備えて最新の SDK を使うためにすべての主要な VR プラットフォームもアップデートしました。今回のアップデートは安定性と仕上げに重点を置きました。UE4 4.11 で作成したタイトルは VR 出荷ができる状態のはずです!

image alt text

今回のリリースのプラットフォームのハイライトは以下のとおりです。

  • アンリアル エンジン 4.11.1 ホットフィックスで Oculus Rift 1.3.0 SDK が間もなく登場。(アンリアル エンジン 4.11.0 では Oculus Rift SDK 0.8.0 ベータでした)
  • Oculus Mobile SDK 1.01
  • Playstation VR SDK 3
  • SteamVR 0.9.12
  • PS4 SDK 3.008.201 (w/ PSVR)
  • Xbox One XDK November QFE 1
  • HTML5 SDK (Emscripten) 1.35.0
  • Linux Clang 3.7.0
  • Apple tvOS 9.0 サポート (GitHub のみ)

新規:DirectX 12 の改善点

image alt text

レンダリング コマンドを生成しながら CPU をさらに賢く使うために、Microsoft からアンリアル エンジンの DirectX 12 へのアップデートを統合しました。複数のルート署名へのサポート、デフォルトでアシンメトリなパイプライン ステート ディスク キャッシュを有効にしたり、メモリ フットプリントや修理したリークの削減、リソース トランジションの最適化、メモリ割り当ての高速化、アイドル GPU 時間中に作業をフラッシュすることで GPU 不足を制限などを改善しました。

Xbox One 向け DirectX 12

Microsoft が実験的に Xbox Oneの DirectX 12 にサ