Unreal Engine 4.6 リリースノート

Windows
MacOS
Linux

アンリアル・エンジン 4.6 には、光源処理およびマテリアルに関する多数の改善、ならびにネットワーク デモを再生およびキャプチャするためのサポート、さらにはアニメーションのワークフローのための大規模なアップデート (ルートモーションのブレンドとマルチ モンタージュのサポート) が含まれています!新たな Mobile Preview レンダリング モードを使用すれば、モバイル デバイス上とまったく同じように表示させながらシーンを編集することができます。Unreal Motion Graphics による UI 作成が大幅に強化され、インタラクティブな UI ウィジェットを 3D シーンに配置できるようになりました。また、数百に及ぶその他の機能の実装およびバグフィクスとともに、4.6 におけるモバイルおよびコンソール プラットフォームへの改善も継続してきました。

今回のリリースには、アンリアル・エンジンの素晴らしいコミュニティのデベロッパーの方々による 88 個の大規模な変更がともなっています。下記の方々に感謝の意を表したいと思います。

Alex Silkin (alexSilkin)、alwei、 Allegorithmic、Artem V. Navrotskiy (bozaro)、Cengiz Terzibas (yaakuro)、Flenzine、Gigantoad、Rama (EverNewJoy)、Joel Riendeau (joelriendeau)、Jakub Stasiak (jstasiak)、Joe Hegarty (JoeHegarty)、Marat Radchenko (slonopotamus)、Michael Kösel (TheCodez)、Michelle12188、Marcin Polaczyk (mpolaczyk)、MyDigitalLife、mordentral、Kazumasa Ohashi、 leobenaducci、Lukasz (iniside)、Nicholas Hughes (piinecone)、Sebastian Köcke (byte3)、Salamanderrake、Stephen Whittle (stephenwhittle)、Tomas Jedlicka (jedlickat)、Rick Yorgason (Skrapion)、Kyle Rocha (kylawl) の方々に感謝いたします。

主要な新機能

実験的:3D アンリアル モーション グラフィックス UI

UI ウィジェットをコンポーネントにアタッチして、3D シーンに表示できるようになりました!

3DumgUI01.png

  • この機能を使用するためには、新たな “Widget Component” をアクタに追加して、Widget アセットをそれに割り当てるだけです。この機能は、まだ実験的と考えられていますが、改善を実施し、さらに機能を追加していきます。

  • 作成した UI はオフスクリーン ターゲットにレンダリングされ、アクタに付属されている 3D クワッドにマッピングされます。入力もサポートされているので、ゲームによってマウスカーソルが表示された場合は、ユーザーがボタンをクリックして他のインタラクションを実行することもできます。

  • Widget Component (ウィジェット コンポーネント) の details view (詳細ビュー) で 3D ウィジェットのためのレンダリング設定項目を調整することができます。レンダー ターゲットの Draw Size を設定することを忘れないでください。この Draw Size (描画サイズ) は、UI がレンダリングされるレンダー ターゲットのサイズを制御するためのものです。

3DumgUI02.png

エミッシブなマテリアルからの静的光源処理

エミッシブなマテリアルが周囲のオブジェクトを直接照らすことができるようになりました!

StaticLightingfromEmissiveMaterials.png

  • この機能を有効にするためには、Mobility (可動性) が Static (静的) に設定されたシャドウキャスティング コンポーネント上で、Use Emissive For Static Lighting (静的光源処理にエミッシブを利用する) という新オプションを使用します。有効化されると、ライトマスによって、エミッシブなテクスチャ ソースから、ベイクされた直接的なライティングが生成されます。

  • 注記:この機能は、エミッシブ光源処理の高速かつ限定バージョンです。直接的なライティングのみが計算されますが、ビルド時間は影響を受けません。他に光源があるシーンに使用するのが最適です。

フォーリッジ上の静的光源処理

事前計算された光源処理とシャドウが、フォーリッジ オブジェクトとインスタンス化メッシュ上でサポートされるようになりました。この機能によって、Stationary (固定) ライトまたは Static (静的) ライトをともなったシーンにおけるレンダリングの効率性が大きく向上します。

StaticLightingonFoliage.png

静的光源処理は、中規模サイズのレベルに適しており、ビルド時間やメモリ要件の点で巨大なシーンまでスケールアップできません。何回もインスタンス化されることになるメッシュ上では、解像度が非常に小さいライトマップを使うようにしてください。

デモ録画機能 (ネットワーク リプレイ キャプチャ)

この機能を使用すると、ゲームプレイの instant replay (即時リプレイ) を保存することができます!ゲームのネットワーク ストリームが demo ファイルにキャプチャされるので、それを後で再生したり、他の人と共有することができます。タイムワープ機能も搭載されており、ゲームの速度を落とした り、素早く先送りすることができます。

DemoRecording.png

Demo Recording は、ネットワークが有効化されている、アンリアル・エンジン搭載のゲームで自動的に機能するようになっています。

  • 録画を開始するためには、コンソール コマンドの “DemoRec <リプレイ名>” を使用します。

  • 以前に録画したゲームを再生するためには、コンソール コマンドの “DemoPlay <リプレイ名>” を使用します。

  • スローモーション機能と先送り機能をお試しください!コンソール コマンドの “Demo.TimeDilation <倍率>” を使います。たとえば、速度を半分にするためには、“Demo.TimeDilation 0.5” とします。

  • ShooterGame サンプルがアップデートされ、保存済みのリプレイを見ることができる機能が組み込まれました。ゲーム内メニューで新規項目の Demos を使います。ぜひご覧になってください!(なお、予め DemoRec を使ってリプレイを保存しておかなければなりません。)

実験的:エディタ内モバイル プレビュー機能

モバイル デバイス上での表示をエディタのビューポート上で直接再現できるようになりました!シェーダーによって、OpenGL ES2 の表示と機能がエミュレートされ、シームレスに切り替えることができるようになります。

MobilePreviewInEditor.png

  • Editor Preferences (エディタの設定) の Experimental (実験的な) セクションある Feature Level Preview (レベル プレビュー機能) を有効にする必要があります。

  • メイン エディタのツールバー上で Settings -> Feature Level Preview -> ES2 をクリックします。

実験的:Web Browser UI (ウェブ ブラウザ UI) ウィジェット

Web Browser UI ウィジェットを使って、ゲームまたはエディタ ツール内にウェブページを組み入れます。

WebBrowserUIwidget.png

  • Slate (SWebBrowser) のための新たな Web Browser ウィジェットを使用すると、インタラクティブなウェブページに簡単に進み、UI の一部として表示できるようになります。この機能は、搭載されている Chromium web framework (CEF3) によって動作します。まだ実験的な機能であり、Windows プラットフォームでのみサポートされています。

ブループリントの Steam Online Sessions (Steam オンライン セッション)

ブループリントのスクリプト処理によって、オンラインのセッションをホストし、検索し、参加する機能がアンリアル・エンジンでサポートされるようになりました!

SteamOnlineSessions.png

  • オンライン セッション (Steam や Local Area Network (LAN) のセッション等) をホスト、参加、退去、検索するためのブループリント ノードを新たに追加しました。

  • 以下はその新たなノードです。

    • Create Session(セッション作成):ネットワークで検索できるセッションをホストします。

    • Find Sessions (セッション検索):参加可能なセッションをネットワークから検索します。

    • Join Session (セッション参加):Find Sessions で発見したセッションに参加します。

    • Destroy Session (セッション破棄):これまでに作成され参加したセッションから去ります。

マテリアル システムの新たな機能

多数のテクスチャを使用できるマテリアル
  • 新たな shared (共有) テクスチャ サンプラーを利用することによって、最大 128 個のユニークなテクスチャをマテリアルで使用できるようになります。これらは、SamplerSource プロパティを設定することによって、TextureSample ノードでセットされます。これまでは、最大 13 個のテクスチャしか使用できませんでした。

MaterialsWithManyTextures.png

*この機能は、テレインやハイクオリティのキャラクター マテリアル、高度なフォワード シェーディング マテリアルといったレイヤード マテリアルには実に重要な改善です。

  • DirectX 11 とコンソールでは一度に 128 個のテクスチャがサポートされていますが、OpenGL のレンダリング パス (Windows または Mac 上における) では、依然として、マテリアル 1 つにつき 13 個のテクスチャまでしか使用できません。この上限を超えると、シェーダーは、GL のためのコンパイルに失敗します。

スカラおよびベクタ パラメータのデフォルト値のリアルタイム プレビュー
  • スカラまたはベクタ パラメータのデフォルト値を変更し、すべての 3D ビューポートで即座に結果を表示させることができるようになりました。

  • この機能は、レイヤーを実装するマテリアル関数に特に便利です。マテリアル関数を使用するシーンにあるすべてのマテリアルにおけるレイヤーの調整結果を表示できるからです。また、右クリックすることによって、定数をパラメータに素早く変更し調整を簡単に行うことができます。さらに、調整が終了した時に元に戻すことができます。

マテリアル関数からパラメータをエクスポーズする
  • マテリアル インスタンスのパラメータが関数でサポートされるようになりました。これによってパラメータをマテリアル インスタンスに簡単にエクスポーズできるようになります。また、関数とマテリアルに機能の同等性がもたらされ、同じノード グラフがどちらでも使用できるようになります。唯一の例外は、関数の input と output のノードです。これは関数専用です。

  • なお、マテリアル内のパラメータは名前によってセットされます。したがって、そのマテリアルに参照されている異なる関数に wetness という名前のパラメータが 2 つある場合は、両方がマテリアル インスタンスで同じ値によってオーバーライドされることになります。これは意図的に使用できますが、パラメータを共有したくない場合は、一意の名前を付けてください。

アニメーション:複数のモンタージュを再生

これまでは 1 度に 1 個のモンタージュしか再生できませんでした。これからは任意の数のモンタージュが再生できるようになりました!

機能の詳細は以下のとおりです。

  • アニメーションをグループ分けできるようになりました。グループ 1 つにつき、1 個のモンタージュを再生することができます。同時に別のモンタージュを再生するには、そのためのグループを新たに作成するだけです。

  • スロットおよびグループの作成は、ペルソナ内の新たな Anim Slot Manager タブで集中管理されるようになりました (以下を参照)。

  • 有効なスロットを選択するためのドロップダウン UI が新たにできました。アニメーション スロット名を手入力する必要がなくなりました。

  • Networked Root Motion Montage (ネットワーク化されたルート モーション モンタージュ) を再生する場合は、依然として、1 度に 1 個のモンタージュに制限されています。

  • 新たなモンタージュ アセットと Slot ノードは 1 個の Default Slot から始まるため、ただちに機能します。

Anim Slot Manager (アニメーション スロット マネージャ)

  • Anim Slot Manager は、スロットおよびグループ名を管理するツールです。階層を表示したり、変更を行うことができます。

AnimSlotManager01.png

  • グループとスロットは、スケルトンのアセット内に保存されるので、同一ファミリーの AnimBlueprints と AnimMontages はすべて、同一の設定を使用します。

  • 便利な Save ボタンがマネージャに追加されたため、変更を行った際にスケルトン アセットを保存するように求められた時にあわてなくても大丈夫です。

  • スロット名をクリックすると、コンテキストメニューが表示されて、異なるグループへの移動が可能になります。

AnimSlotManager02.png

Montage のトラックでスロットを編集する

下は Montage エディタの画像です。トラックの右側にある Combo Box に注目してください。そのトラックで利用可能なスロットがすべてリスト表示されます。

EditingSlotsonMontageTracks01.png

​新たなスロットを作成する場合は、虫眼鏡のアイコンをクリックすると、Anim Slot Manager が開かれます。

EditingSlotsonMontageTracks02.png

最上部のステータスバーには、モンタージュが属しているグループが表示されます。これは最初のトラックのスロットによって決まります。

EditingSlotsonMontageTracks03.png

複数のスロットがあり、その構成について問題がある場合はステータスバーで通知されます。たとえば、異なるグループに属するスロットを組み合わせた場合は、小さな警告が表示されます。マウスオーバーすると問題の詳細について見ることができます。

EditingSlotsonMontageTracks04.png

アニメーション ブループリントでスロットを編集する

  • AnimGraph では、Slot ノードにそのスロット名とグループ名が表示されます。

EditingSlotsinAnimationBlueprints01.png

  • ノードが選択された状態にすると、Montage トラック ビューで表示されるものと同じオプションが Details パネルに表示されます。

EditingSlotsinAnimationBlueprints02.png

  • ここから、コンボボックスを使って既に存在しているスロット名を選択し、拡大鏡のアイコンを使って Anim Slot Manager を開くことができます。

  • 補足

    • 以前の構成と下位互換性があります。既存のスロットがデフォルト グループの一部になっていること以外に違いは目に付かないはずです。

    • Anim Slot Manager ではスロット/グループの名前変更および削除がまだできません。後日追加されることになります。

    • モンタージュ ブループリントと C++ API が強化されて、モンタージュ アセットの参照を受け取れるようになりました。これによって、異なるモンタージュを同時に制御できるようになります。たとえば、アップデートされた “Set Play Rate” (再生速度の設定) をご覧ください。

Root Motion from Everything (あらゆるものからのルート モーション)

アンリアル・エンジンは、複数のアニメーションからブレンドされるルート モーションをサポートするようになりました!

  • アニメーション ブループリントでルート モーションを扱うためにさまざまなモードが追加されました。モードは、アニメーション ブループリント エディタの Root Motion Mode ドロップダウンから設定できます。動的な動作が必要な場合は、コードによって実行時にこの設定を変更することができます。

RootMotion01.png

  • 以下のオプションがあります。

    • No Root Motion Extraction (ルート モーションの抽出なし) - ルート モーションがそのまま残されます (ルート ボーンに適用されます)。

    • Ignore Root Motion (ルート モーションの抽出なし) - ルート モーションが抽出され (かつルート ボーンから削除され) ますが、キャラクターには適用されません。

    • Root Motion from Everything(あらゆるものからのルート モーション) - ルート モーションを扱うための新たな方法です (下記参照)。

    • Root Motion from Montages Only (モンタージュからのみのルート モーション) - 元来のルート モーションの動作です (すべての新たなブループリントのためのデフォルトにもなっています)。

アセットでルート モーションを設定する

RootMotion02.png

  • アニメーション シークエンスに Enable Root Motion (ルート モーションを有効化する) という設定項目が新たにできました。これは、これまで AnimMontage にあった Enable Root Motion Translation (ルート モーションの移動を有効化する) と Enable Root Motion Rotation (ルート モーションの回転を有効化する) オプションの代わりとなるものです。(これらはロード時に自動的に更新されます)

  • 注意:AnimMontage における元来の設定項目は、依然として残っており、非推奨にはまだなっていません。これは意図的な措置です。それらをアニメーション シークエンスに正しく伝えることができるからです。それらはペルソナから編集できなくなりました。また、それらを読み取るコードやそれらに書き込むコード は書くべきではありません。

Root Motion from Everything (あらゆるものからのルート モーション):

  • 最終的なキャラクターのポーズに寄与する各アニメーション アセット (シークエンス、ブレンドスペース、モンタージュなど) は、ルート モーションが抽出されます (ただし、ルート モーションを含むものとして設定されていた場合)。抽出されたルート モーションのそれぞれは、ソース アセットのポーズに寄与する重みに基づいてブレンドされます。

RootMotion03.png

  • たとえば、上のグラフでは Jog_Loop_Fwd_RMJog_Loop_Right_RM のルート モーションは、それぞれ 0.5 の重みでブレンドされます。その結果、アニメーションでキャラクターは斜め前に走り、マップを横切ることになります。

  • 注意:元々のシステム (現在は Root Motion from Montages Only という名前になっています) は、ネットワーク ゲームを念頭に設計されました。そのため、制限的な機能となっています。Root Motion from Everything はまったく制約がないため、アニメーションがネットワークを通じてレプリケートされることがないようなゲームで使用すべきです。

アニメーション:Humanoid Rig の迅速な選択

  • エンジンに組み込まれている Humanoid Rig (人型リグ) を選択できる新機能がペルソナに追加されました。このリグは、アンリアル・エンジンのマーケットプレイスに置かれているアニメーションのためによく使用されているものです。

HumanoidRigQuickSelect.png

新たなブループリント エディタのメニュー

ブループリント エディタの右クリック メニューの機能を再設計することによって、より正確で関連性の高い結果がもたらされるようにしました。

BlueprintEditorMenus01.png

  • 通常は、ノードをドラッグして、その種類のノードに直接関係するノードを伴ったコンテキスト メニューを表示します。この機能を調整するためには、ブループリント エディタの Preferences (設定) の新たなオプションを使用します。

BlueprintEditorMenus02.png

3D ワールドの拡大

個々のワールドの最大サイズが約 20km まで拡大されました。また、3D のワールド原点の移動機能も追加しました (単なる 2D の移動機能に代わって)。

  • この値は C++ コードの WORLD_MAX 定数によって定義されています。4 倍の増加となります (約 5km から)。

  • なお、アンリアル・エンジンの World Composition 機能を使って複数のワールドをつなげれば、任意の広さのワールドを作成することができます!

パッケージ化とクックの高速化

エディタ内におけるコンテンツのパッケージ化またはクックがかつてないほど高速になりました!

  • エディタ内からクックする場合、新たなプロセスを起動する必要がなくなりました。つまり、エディタ内に読み込まれたアセットが直接メモリからクックされ、処理が著しく向上することを意味します。

  • この機能はデフォルトで有効になっていますが、必要に応じて以前のシステムに戻す場合は、Disable Cook in Editor (エディタ内のクックを無効にする) という設定項目を使います。

ナビゲーション メッシュのストリーミング

アンリアル・エンジンは、事前計算されたナビゲーション データをオンザフライでメモリにまたはメモリからストリームできるようになりました。

  • 静的ナビゲーション メッシュ データを異なるサブレベルに保存することができます。エンジンは、そのレベルとともにこのデータをストリームします。

  • デフォルトでは、ナビゲーション ボリュームと交差するナビゲーション メッシュのどの部分も、そのボリュームが配置されている同一のサブレベルに保存されます。

アンリアルの C++ プログラミング

クラス宣言の簡略化

  • 現在、作成するクラスには通常の C++ のコンストラクタが定義および使用されています。これからは、引数のないコンストラクタも使用できるようになりました!

  • エディタまたはブループリントにプロパティをエクスポーズするために、プロパティのためのカテゴリを供給する必要がなくなりました。デフォルトのカテゴリが取得できるようになりました。

  • FPostContructInitializeProperties が非推奨になり、FObjectInitializer に置き換えられました。これは本当に必要な場合にのみ指定します。

  • ユーザーが設定した保護レベルが GENERATED_BODY によってリセットされなくなりました。ユーザーの設定が保存されるようになります。

  • GENERATED_UCLASS_BODY の代わりに新たな "GENERATED_BODY" 指定子を使用するようにしてください。これらの新たな改善の多くはこの指定子によって可能になります。

キャスティングの簡略化

  • 改善された Cast() によって、Unreal クラス間のキャストが容易になりました。インターフェイスとクラス間のキャストも可能になります。dynamic_cast を使用して Unreal 型間のキャストを実行する機能もサポートされました。

その他の C++ の改善点

  • デリゲートをともなう C++ ラムダ、および、TFunction クラス (軽量なラムダのラッパ) のサポートが新たに加わりました (以下参照)。

  • 混乱を招き、異常な振る舞いの TSubobjectPtr を削除します。サブオブジェクトへの通常のポインタを使用するようにしてください。

  • ソースファイルに構造体と列挙型しかない場合は、ダミーの UObjects を合成する必要がなくなりました。

UI:ゲーム コントローラーのサポート

UI エレメント間をジョイスティックでナビゲートできるようになりました!

  • デフォルトでは、方向キー、十字キー、左ジョイスティックを使ってナビゲートします。Tab や Shift+Tab も変わらず使用することができます。Slate と Unreal Motion Graphics の両方で機能します。

  • 「キーボードのフォーカス」「コントローラーのフォーカス」「ユーザーのフォーカス」の概念を統合しました。ユーザーのフォーカスを変更すると、そのユーザーのコントローラーおよびキーボードすべてに影響が及びます。

UI:コンポジット フォント

Slate と UMG でフォント ファミリーとコンポジット フォントがサポートされました。これらによって、複数のサブフォントから構成されるフォントを作成することができるようになり、各フォントがさまざまな範囲の文字に使用できるようになります。ローカライズされたテキストを表示するのに実に便利な機能です。

フォント アセット

  • フォント アセット タイプが更新されて、コンポジット フォントおよびそれに関連する TTF または OTF フォント ファイル データを埋め込む機能がサポートされました。

  • フォント アセットで 2 つのキャッシング方式がサポートされるようになりました。1 つは新たなコンポジット フォント方式であり、もう 1 つは旧来の事前計算されたフォント アトラス方式です。これら 2 つの方式はフォント エディタで容易に切り替えることができるため、既存のフォント アセットを置き換えることなく簡単に変えることができます。

  • 新たなフォント アセットを作成する場合、デフォルトでは、空のコンポジット フォントを作成することになります。TTF または OTF ファイルをコンテンツ ブラウザにインポートすることによってもコンポジット フォントを作成することができます。

フォント エディタ

  • フォント エディタがアップデートし、コンポジット フォント アセットを作成できるようになりました。

FontEditor.png

  • コンポジット フォントには必ずデフォルトのフォント ファミリーが含まれます。また、所定の範囲の文字に使用されるべき任意の数のサブフォント ファミリーを含めることができます。各フォント ファミリー自体は、スタイルに基づいて命名することができる任意の数のフォントから構成されます。

  • 実行時に、各文字のための使用に最も適したフォントを選択します。その際、その文字範囲のためのフォント ファミリーでそれらフォントが利用可能であることが選択の基準となります。

  • 上のプレビューでご覧になれるように、日本語のテキストは、日本語のフォント ファミリーの文字範囲に入ります。したがって、Roboto ではなく Source Han Sans を使用して描画されます。サブフォント ファミリーのフォントは名前の一致 (Regular、Bold、Light などのように) によって優先的に選択されます。ただし、デフォルトのフォントの特性による一致をその代替とすることができます (Bold Italic の場合のように。この場合、自動的に Bold Japanese が選択されました。そのフォントが Bold 特性を含み、最も一致するものだったからです)。

Unreal Motion Graphics (UMG) のフォント

  • TFF または OTT ファイルを指定できる UMG の古いインターフェイスが削除されて、アセット ピッカーに置き換えられました。ここからは、コンポジット フォント アセットを選択し、さらにデフォルトのフォント ファミリーからフォントを選ぶことができます。

FontsInUMG01.png FontsInUMG02.png

  • 既にあるファイルベースのフォント設定が失われることはありませんが、将来的には、UMG でフォント アセットを使用しなければならなくなります。

  • UMG では現在のところ「実行時」にキャッシュされるフォント アセットのみサポートされています。

Slate のフォント

  • C++ ベースの Slate スタイル セットに入っている既存のフォント コードはどれも依然として使用できます。しかし、コンポジット フォントを利用するためには、スタイル セットの更新を検討すべきかもしれません。

  • C++ の Slate のコードでコンポジット フォントを扱う場合は、フォント アセットではなく FStandaloneCompositeFont を使用することを推奨します。

  • その理由は、Slate のスタイル セット内に含まれているフォント オブジェクトがガーベジコレクターから見えないことによります。フォント アセットを直接使用するのであれば、FGCObject などを使用して、外部の参照をご自分で保守しなければなりません。

Canvas のフォント

  • Canvas ではフォント アセットのキャッシングの両方式がサポートされています。ただし、Canvas は弊社ツールのローカリゼーションを改善するためのものです。

  • 新たなゲーム UI のために Canvas を使用することはお勧めできません。UMG の使用を推奨します。

学習リソース

エディタ内のヘルプ
  • Skeletal Editor Walkthrough (スケルタル エディタの手引) チュートリアルにおけるウィンドウのフォーカスに関する問題を修正しました。

API のドキュメント
  • New:統計システムに基本的なドキュメンテーションを追加しました。

  • ProjectileMovement のサブステップ機能に関するコメントを修正しました。

  • Pawn::PossessedBy() に関するコメントを修正しました。

  • ACharacter::Landed() / OnLanded() に関するドキュメンテーションを改善しました。これによって、動きのモードがこの時間中にまだ「落下中」であることが示されており、代替の OnMovementModeChanged() イベントが指摘されています。

  • FString ドキュメントへのリンクを追加しました。ESearchCase, ESearchDir のドキュメントを作成しました。

  • 複数のフレームワーク クラスのためのクラスの解説を追加または修正しました。

  • FNavAgentProperties および FMovementProperties に関するコメント/ドキュメントを追加しました。

  • FVector、FVector2D のためのドキュメントを改善しました。

  • ENetMode、EVariableReplication のためのコメントを追加または改善しました。また、オンライン ドキュメント ページへのリンクを張りました。

  • Object.h 内のコメントを除去しました。(コア オブジェクトのモジュールのためのスケルトンの定義)

    • 実際のソースファイルにリンクを追加しました。intellisense/VA は、実際のソースファイルではなくあまり役に立たないスケルトンのファイルに誘導することが多いです。

  • FTransform クラスのコメントが拡充され、トランスフォーメーションが適用および構成される方法について解説が含まれるようになりました。KismetMathLibrary::ComposeTransforms() についても同様の変更が行われました。

  • クォータニオンのためのドキュメンテーションでは、乗算中の合成順序について説明しています。

リリース ノート

アニメーション

  • New:アニメーション プレビュー メッシュ

    • 特定のメッシュを選択してアセットをプレビューするためには、ペルソナのアセット ブラウザのコンテキストメニューを使用することができます。

    • 1 つのスケルトンに多数のさまざまなメッシュがあり、かつ、特定のメッシュのアセットだけをプレビューしたい場合に便利です。

  • New:Animation Record Feature (アニメーション録画機能) を改善しました。Record (録画) をクリックすることによって、最大 10 分間までアニメーションをキャプチャできるようになりました。録画を完了させる場合は、Stop (停止) を押してください。

  • New:スタティック メッシュおよびスケルタルメッシュ、アニメーションに適用するインポート時間のトランスフォームを指定するオプションを追加しました。

  • New:ペルソナでスケルトンのリターゲット オプションの表示を切り替えるための新しいチェック ボックスを追加しました。

  • New:ペルソナで、最近新たに追加されたソケットがビューポートで自動的に選択されるようになりました。

  • New:派生したアニメーション ブループリントを開くと、アセットのオーバーライド エディタが自動で開かれるようになります。

  • New:モンタージュで、相対的かつ比例的リンクがエレメントに追加されました。これによって、エレメントが関係のあるセグメントにリンクされ続けることになります。

  • New:Notifies のためのトリガーの重み閾値が詳細パネルにエクスポーズされるようになりました。

  • New:Layered Blend per Bone (ボーン別レイヤーブレンド) ノードを変更して、デフォルトで 2 つのポーズのピンから始まるようにするとともに、Add Pin (ピンの追加) ボタンを追加しました。

  • Blendspaces の Create メニューの名前を変更して、エディタの他の箇所との一貫性をもたせました。

  • 開いているモンタージュにおいてアニメーション セグメントの終わりに余分なスペースが残ることによって、再インポート後にアニメーションのフリーズが生じることがないようにしました。

  • リグ アセットの Reset All (すべてをリセット) 時に生じるクラッシュを修正しました。

  • クロスが存在する場合にベース ポーズをリターゲットする際のクラッシュを修正しました。

  • スケルトン 1 個につき複数のメッシュが存在する場合に生じるリターゲットのクラッシュを修正しました。

  • アニメーションのキャッシュされた GUID とスケルトンの GUID が合致しない場合にアニメーションの圧縮データが失われる問題を修正しました。

  • ペルソナを開く際、ロード時にスケルトンがダーティーになる問題を修正しました。(プレビュー メッシュの設定が原因でした)

  • ペルソナで、モンタージュ ルート モーションのプレビューについて修正しました。

  • ボーンが失われた際のリターゲットについて修正しました。

  • StateMachine :最初のフレームでエントリ ステートが常にアクティブになる問題を修正しました。現在は、適切なステートをアクティベートするようになりました。

  • ブループリント派生 AnimNotify がコンパイルされている時に生じる AnimNotify State のクラッシュを修正しました。

  • スロット ノード上のスロット名の表示について修正しました。(スロット名が選択された時でも表示されていませんでした)

  • ターゲットのスケルトンと異なる順序のスケルトンをリターゲットする際に生じるクラッシュを修正しました。

  • プレビュー メッシュが失われた場合にアニメーションのリターゲットでクラッシュする問題を修正しました。

  • 親のスペースの Transform Bone ノードがルート ボーンで使用された場合に生じる AnimationBlueprints のクラッシュを修正しました。

  • 重み毎に Mesh Space ブレンドを使用すると、長いボーン チェーンでクォータニオン正規化のアサートが潜在的に発生する問題を修正しました。

オーディオ

  • New:アプリがフォーカスされていない場合にオーディオのボリュームをコントロールするためのコンフィグ設定項目を追加しました。

  • 内部のボリュームが徐々に変化するのではなく突然ターゲットの値になる問題を修正しました。

オートメーション

  • New:エディタのテストにおけるマップの動作を変更して、シェーダーがコンパイルされるまで待ってからデータがキャプチャされるようにしました。

  • New:バージョン化されていないビルド番号を FEngineVersionSupport.FromString にパースする機能を追加しました。

    • バージョン化されていないビルド番号をパースできるようにするためには、bAllowNoVersion=true (optional であり、デフォルトは false になっています) をパラメータとして渡します。

    • バージョン化されていないビルド番号は、++depot+UE4-ProductName-CL-12345678 という形式で、ブランチ名と変更リスト番号から構成されます。

  • New:-archivemetadata オプションを BuildCookRun に追加しました。build.properties ファイルをアーカイブ化されたビルドにコピーできます。ビルドを作成するために使われた変更リストを調べるために便利です。

  • エディタの UI にサポートされていない言語が選択された場合に、エディタが日本語で表示される問題を回避するために、国際化のスモークテストを無効化しました。

  • BuildCookRun のオートメーションが原因で、設定にも関わらずデフォルトの言語が英語になってしまう問題を修正しました。

  • 言語を表示することによって、必要な親言語が正しく表示されるようになりました。

  • コード内の重複するコメントを修正しました。

  • マップ エディタのパフォーマンス テストをリファクタリングすることによって、より効率的にパフォーマンス データを把握保存できるようにしました。

ブループリント

  • New:Component モードと Graph モードを切り替えることによって、そのモード内でその前に選択されていた項目が選択解除されるようになります。

  • New:見つからないプロパティ ノードとローカル変数を右クリックによって置き換えることができるようになりました。

  • New:コンパイラのプロファイリング結果がより詳細で正確になりました。また、Compiler Results (コンパイラの結果) タブで付加的な詳細情報を有効化するためのオプションを Blueprint エディタの設定項目に追加しました。このオプションを有効にすると、コンパイルされたばかりのブループリントのイベントのタイミングが詳細かつ階層化して表示されます。

  • New:ブループリントの変数が、他のブループリントからアクセスできるようにするためには、public/editable に設定しなければならなくなりました。

  • New:Orthographic ビュー (正投影) のオプションが、Components モードのブループリント エディタのプレビューに追加されました。

OrthoViewBlueprintEditor.png

  • New:誤差許容範囲の入力が、vector/rotator 型の Equal 関数ノードに追加されました。

    ErrorTolerance.png

    • このピンのデフォルトは、小さなイプシロン値に設定されているので、処理中に生じる可能性のある浮動小数点精度の誤差によって値が正確に一致しない場合に、その同等性を確保するのに便利です。

  • New:bool 型の Select ノードでピンのために true/false が表示されるようになりました。

  • New:Set/GetActorLocation、AddActorWorld/LocalOffset、AddLocal/WorldOffset にキーワードが追加されました。

  • New:テキスト関係の関数が TextRenderActor にエクスポーズされました。

  • New:Rep Notify グラフがともなう変数の Get/Set ノードをダブルクリックすると、そのグラフにジャンプするようになりました。

  • New:SaveCachedPose ノードをリネームすることによって、それを参照するあらゆる UseCachedPose ノードが自動的に更新されるようになります。

  • New:Get/Set 変数ノードを右クリックすると、別の変数に置き換わるようになりました。

  • New:オブジェクトのピン接続が、クラスの入力ピンに入る時、自動的に変換ノードが生成されるようになりました。

  • New:ブループリントのコンパイラ エラー ログをダブルクリックすると、問題のあるノードにジャンプするようになりました。

  • New:AutoCreateRef が UK2Node_CallFunction::Expand ノードで処理されるようになりました。そのためにローカル スコープの追加の変数が作成されました。

  • New:(コンパイル時に) エラーの原因となっているノードにジャンプできる新たなオプションをブループリントのコンパイラに追加しました。

  • New:GameInstance ブループリントが扱う新たなイベント、NetworkError と TravelError を追加しました。

    • これらのイベントを使うとエラーを上手に処理できるようになります。たとえば、ユーザーにカスタムのメッセージを表示できるようになります。

  • New:pure / const 関数のためにインターフェイスのメッセージ ノードを使うことができるようになりました。

  • New:Cast ノードを使用して、インターフェイスのピンから明示的なオブジェクト型に変換できるようになりました。

  • New:ブループリントを作成中にsave-on-compile (コンパイル時に保存)

  • New:GetAllActorsOfClass が、選択されたクラスに応じて、出力の型を変更するようになりました。

  • New:ワールド内の頂点ペイントされたメッシュからブループリントを作成できるようになりました。(ペイントされた頂点のデータがコピーされます)

  • New:Reinstance Only When Necessary (必要な場合にのみ再インスタンス化): 再コンパイルされた BPGC のインスタンスを再コンパイル中 (例: 新たな関数または変数を追加) に再インスタンス化すべきか否かを見分ける機能を追加しました。

    • 必要ない場合は、コンパイル後に再インスタンス化をスキップします。これによって、コンパイル プロセスの時間を大幅に削減することができます。

  • New:新たなブループリント メニュー システムのために、ユーザーが GetMenuActions() でノードのカテゴリ/名前/ツールチップを直接指定することができるようになりました。

  • New:ブループリントのコンテキストメニューにおける Target の on/off を切り替えるために使える新たなブループリント エディタの設定。

  • New:Cast ノードにおいて実行ピンの有無を切り替えられるようになりました (Anim Graph で Cast を使用できるようになります)。注意: Cast は依然として失敗し、無効なオブジェクトを返す可能性があります。

  • New:ユーザーがブループリント エディタにフックして、独自のホットキー コマンドを供給できるようになりました。(FBlueprintEditorModule::GetsSharedBlueprintEditorCommands から)

  • グラフのクリッピング ガード バンドにおける消失分を、グラフの各エッジのサイズの半分から 1/4 に削減しました。* これは、クリッピングをよりアグレッシブなものに (理想的にはビジュアル上の差異がないように) することによって、性能を高めることを目指しています。

  • Composite ノードでリンクをクリックしようとする際にドキュメンテーションのツールチップが移動しないようにするための小規模な修正。

  • namelist の値が、ピンへの最初の値と同期しない問題を修正しました。最初の値がピンの値と一致しない場合は、ピンの値が UI で表示されている値と同期されます。

  • カーブ グラフの最大および最小が、ブループリントの変更および保存中に保存されるようになりました。

  • Math Expression (数式) のグラフが読み取り専用になりました。

  • アニメーションの Property Matrix が開いている間にアニメーション ブループリントをコンパイルすると生じるクラッシュを修正しました。

  • bool 型 Select ノードにピンを追加またはそこから除去できなくなりました。

  • Math Expression ノードをマクロ グラフに配置する際に生じるクラッシュを修正しました。

  • アクタ ブループリントが、データのみの場合、最初 Components モードで、続いて Defaults で正しく開くようになりました。

  • デフォルトの回転トランスフォームの値が、ライブの編集中に伝播するようになります。

  • BlueprintSpawnable と設定されていない Component ノードのコピー/複製を防止しました。

  • 再インスタンス化中に、連鎖した子クラスが原因で過剰に生じるコンパイル回数。

  • 安全ではない関数を Construction script に配置できなくしました。

  • ブループリントのグラフ パネルの更新時に重複するノード作成パスを削除しました。パネルの更新時間がおよそ半分になります。

  • ストリーミングの非同期ロード時にブループリントのパッケージをダーティーに設定しなくなります。

  • ブループリントのアクション データベースがリフレッシュされるようにするために、入力されたアクションまたは軸マッピングが変更した場合に通知が必要なノードにフックアップするデリゲートを追加しました。

  • Array 関数のためのエラーメッセージをノードの最下部に移動しました。

  • BaseAsyncTask から派生した潜在的なアクションのノードがマクロでサポートされるようになりました。

  • FText を exposed on spawn (スポーン時にエクスポーズされる) パラメータにできる機能をサポートしました。

  • Switch ノード上にあるデフォルトの出力ピンが、output pin ではなく exec pin として表示されるようになりました。

  • UEdGraphSchema_K2::GetFriendlySignitureName のスペルが GetFriendlySignatureName に修正されました。

  • @param エントリを含むコメントをもつブループリント ノードに関するツールチップを整理しました。

  • 大規模なグラフで生じるパフォーマンス上の問題に対処するために、ブループリント内の接続のためのクリッピングを追加しました。

  • ブループリントのコンパイル エラーをもっと分かりやすくするために変更しました。

  • ロード時にブループリントを再コンパイルすると生じる、「Failed to load Super / Parent」(スーパー/親の読み込みに失敗しました) というリンカの誤った警告を修正しました。

  • Online カテゴリのブループリント ノードが、それらが実行される Play In Editor ウィンドウに対応する正しいオンライン サブシステム インスタンスを使用するようになります。

  • ブループリントと関数の互換性を考慮するために、pure (純粋) なノード上にあるターゲット ピンを非表示にするためのロジックを変更しました。これによって、パレットからドロップした時に、互換性のないターゲット上にある pure な関数が呼び出し可能となります。

  • 「parent class」(親クラス) のハイパーリンクのスタイルを調整するとともに、それと検索ボックスの間にパディングを追加しました。

  • SpawnActorFromClass において、ExposeOnSpawn と設定されているプロパティのためのオリジナルのツールチップが使われるようになります。

  • ユーザーが advanced view (高度なビュー) を編集可能な場合にのみ、ノードを再構成する際にピンの advanced view のステートをコピーするようになります。* そうでない場合は、メタデータの高度なピンのステートへの変更は伝播しません。

  • インスタンス化された UserDefinedStruct のデータ レイアウトを変更する際のクラッシュ。

  • Construciont script を編集した後にブループリントをコンパイルしている間に生じるクラッシュ。

  • ブループリントを削除した後に同名のブループリントを作成するとクラッシュが生じます。

  • 構造体型の単一のメンバー変数をともなった、Object に基づくブループリントを複製すると生じるクラッシュ。

  • USE_UBER_GRAPH_PERSISTENT_FRAME define を false に設定することによって UberGraphPersistentFrame のコードを無効にすることができます。* UberGraphPersistentFrame は、クラスが構造的に変更されていない場合に再インスタンス化をスキップするために使用されます。

  • UserDefinedStruct - プロパティは、リンカによって不必要に再ロードされなくなります。

  • static 関数が、必要な場合にのみ WorldContext パラメータをともないます。

  • ExpandNode 関数は、フル コンパイル中に呼び出されるか否かをチェックしません。この関数は、必要な場合にのみ呼び出されるはずです。

  • ChildActor コンポーネントをともなったブループリントをコンパイルする際にまれに生じるクラッシュを修正しました。

  • BSP ブラシ ブループリントを作成することができなくなりました。

  • レベル ブループリント内の BSP ブラシを参照できなくなりました。

  • Construction script 内で atmosphere のパラメータが変更されるブループリントをともなったマップをクックすると発生するクラッシュを修正しました。

  • コードからあるノードタイプを削除すると (かつ、そのノードを使用するブループリントがあると) 起こっていたクラッシュを修正しました。

  • CallOnMember ノードによって参照されているメンバーが削除されると起こっていたクラッシュを修正しました。

  • 参照されている変数/関数を変数/関数ノードが見つけられない場合に生じるクラッシュを修正しました。

コア

  • New:デリゲートおよびスレートでラムダがサポートされました。

    • デリゲートは CreateLambda と BindLambda を得ます。

    • スレートは、Attribute_Lambda と Event_Lambda を得ます。

    • 変数のキャプチャをサポートしました。ただし、参照のループが簡単に生じるため、TSharedRef/Ptr のキャプチャは回避します。

  • New:TFunction と TFunctionRef

    • TFunction は、std::function のように機能することによって、ラムダが渡され、所有されるようになります。

    • TFunctionRef は、所有権のない std::function のように機能します。また、呼び出し元でラムダを発動させることだけが必要な (その所有権を取らない) 非テンプレート関数にラムダを効率的に渡すためにのみ使用されるべきです。

  • New:TOptional のための新たなデバッガー ビジュアライザー。

  • New:エンジンのディレクトリ ツリーに同一の名前をもつプロジェクトが 2 つある場合、UBT によって警告が発せられます。

  • New:クック時に -map フラグをともなった長いパッケージ名を使用できる機能が追加されました。

  • New:エンジンの初期化中に StartupModule メソッドを呼び出す新たな機能を追加しました。この機能を使用するためには、モジュール ルールのコンストラクタ内で bIsAutoStartupModule を true に設定するだけです。

  • New:ジョブの数を制限するためのオプションを UBT に追加しました。

  • UHT で、モジュール生成の include ディレクトリを ShouldExportClassesForModule に追加しました。

  • New:スクリプト統合ヘルパを UObject システムに追加しました。

  • TArray メソッドをドキュメント化しました。

  • New:WIDECHAR FString と FName クラスが、ANSI 文字と比較中に、一時的なオブジェクトを作成しなくなりました。

  • New:レイバウンスの計算のために FMath::GetReflectionVector(Direction, SurfaceNormal) を追加しました。

  • New:UPROPERTY にカテゴリが必要なくなりました。存在しない場合は、それが定義されたクラス名に設定されます。

  • New:DB アクセスのクラスを分割して、モジュールを分離するとともに、SQLiteSupport モジュールを追加しました。このモジュールによって、SQLite をエンジンに簡単に統合することができるようになります。

  • New:GameName のリダイレクトを動的に追加できるようになりました。

  • New:ビルドすべきディレクトリを指定することによって、UnrealPak.exe を使って Pak ファイルを作成することができるようになりました。

  • New:コマンドラインから UnrealPak.exe を実行している場合、Pak ファイルに入っているすべてのファイルを圧縮または暗号化するように指定できるようになりました。

  • New:ファイル名によってのみではなく、既存のアーカイブから FPakFile を初期化できるようになりました。

  • New:プラグインが config ファイルをもてるようになりました。

  • New:さまざまな型の TArray の効率的な生成と追加

    • ある型の TArray が、他の型の TArray から作成または他の型の TArrayに追加できるようになりました (ただし、それらの型がアサイン可能な場合)。

    • その実装では、可能な限り効率的にコピーが実行されます。たとえば、TArray を TArray に追加すると、要素が memcpy されます。

    • 新たな TIsBitwiseConstructible trait はユーザーの型に特化できます。ただし、その型がそのような方法で memcpy されることができる場合にこれが該当します。

  • New:統計

    • 統計メッセージをフラッシュするためのより有効な仕組みが追加されました。これによって、統計のパケットの量が削減され、メモリ使用も削減され、パフォーマンスが改善されます。また、1 フレームにつき1 回のみ実行されます。

  • New:統計

    • 新たなコマンド stat toggledebug ― 最もメモリ負荷がかかる統計情報の追跡を切り替わります。

  • New:STAT_FindObject(Fast) をSTATGROUP_ObjectVerbose に移動しました。これは、デフォルトでは無効になっています。メモリ使用を改善します。

  • New:レンダリング スレッドの起動後に統計情報を明示的にフラッシュする機能を追加することによって、メモリ使用を改善しました。

  • New:新たなコンソール コマンド

    • コマンド Obj MemSub -class=[classname] -cull=[no of kb] を追加しました。特定のクラスのすべてのオブジェクトに関するメモリ統計情報を出力します。包括的な統計情報であり、すべてのサブオブジェクトを含めます。

    • -class=[classname] というオプションを Obj Mem コマンドに追加しました。結果を特定のクラスに絞り込むためのものです。

  • New:Internationalization (国際化) データのプリセットが、一定限度の数のプリセットから選択できるようになりました。これによって、製品のためにパッケージ化された ICU データの量を最小限に抑えることができます。

  • New:メモリの事前割り当て機能を TMaps に追加しました。

  • New:STAT_FindObject(Fast) を STATGROUP_ObjectVerbose に移動しました。これは、デフォルトでは無効になっています。メモリ使用を改善します。

  • New:FMallocAnsi のために GetAllocationSize() を改善しました。

  • New:C++ のデリゲートの可変個引数によるテンプレート実装

  • TArray::FindMatch を非推奨にしました。TArray::IndexOfByPredicate と同じ機能だからです。

  • const 参照パラメータによって渡される時に、UHT が誤った関数宣言を生成していました。

  • FInternationalization の Use After Free バグを修正しました。

  • モジュールロード順を変更することによって、SlateRHIRenderer がクラッシュせずにシャットダウンできるようになりました。

  • 前回コンソール コマンドを設定したものにより透明性を加えました。(コンソールで cvar 名前によって表示されるようになります。)

  • コンソール変数 Set() の動作を変更しました。各 Set において priority (優先度) が指定される必要があります。priority が高ければ、order (順序) が問題にならなくなりました (多数のコーナーケースを解決できました)。イテレーションが必要となる場合が考えられます。

  • サポートされていないにも関わらず、UE4 プロジェクト Win32 エディタのビルドが依然として UBT によって可能となっていましたが、エラーを修正しました。

  • 指定されていない Perforce の設定が発見された場合に、ワークスペースからホスト名を取得し無限ループする問題を修正しました。

  • デバッグ ビジュアライザーのデリゲートの静的初期化順序について修正しました。

  • クッカのクラッシュを引き起こす SlowTask システムへの、安全ではないスレッディング コールを修正しました。

  • FDateTime::UTCNow / FDateTime::Now の不適合によって、利用可能なセッションが UFE で更新されない問題を修正しました。

  • enum クラスをパラメータとして受け取る UFunction のためにコード修正を行いました。

  • IInterface* がプロパティとして使用された場合のエラーメッセージを改善しました。代わりにTScriptInterface の使用を促します。

  • noexcept() をサポートしているプラットフォームのために new/delete 演算子のオーバーライドが追加されました。

  • ICU ブレークイテレータが ICU のシャットダウン以降も残ることによって引き起こされていたクラッシュを修正しました。

  • 誤った ini ファイルをユーザーに指摘するエラーメッセージの誤りを修正しました。

  • ツールチップを生成する際に、コメントから有効な使用の「」「 」等を削除しなくなるように HeaderParser を修正しました。空白の後ろに置かれている行の先頭のアスタリスクのみが削除されます。

    • たとえば、 java-doc の中にある「A B」は、「A B」になっていました。

  • float が使えるバージョンの LerpStable() を追加しました。以前のように単なる double ではありません。

  • パフォーマンス: tick 関数自身がティックできる場合にのみ、その関数に Prerequisite を追加します。

  • iOS におけるクラッシュ統計を修正しました。

  • 書き込み可能な FStreamingNetworkFileHandle のための Seek に、失われた SendSeekMessage を追加しました。

  • 統計を CSV に変換する機能について修正しました。

  • SetStoredValue/GetStoredValue がプラットフォーム固有の実装を使用します (リグレッションを修正しました)。

  • 統計 ― 詳細グループに非サイクル統計が含まれている場合に発生するクラッシュを修正しました。また、見つからないデータに関しても修正しました。

  • tick 関数の参照をコピーする際の問題について修正しました。

  • UObject

    • TRACK_BULKDATA_USE が 1 に設定されている場合にコードがスレッドセーフとなるようにしました。

  • テキストのローカリゼーション リソースが、ハイフンでつながれたカルチャー名を使っているディレクトリからロードできるようになりました (アンダースコアを使用しているディレクトリからだけではなく)。

  • ICU メモリの使用が大幅に改善されました。必要に応じてデータファイルを一度キャッシュするようになりました。

  • ローカリゼーション データが、言語およびスクリプト、地域の組み合わせに基づいて、親のカルチャー データに依存するようになりました。

    • Language_Script_Region, Language_Region, Language_Script, Language

  • 慣例に従い、簡体字中国語のためのローカリゼーション データの名前を zh-Hans-CN から zh-CN に変更しました。

  • DLL の検索パスに、ゲーム、プラグイン、エンジンのフォルダすべてが含まれるようになりました。さまざまな出力フォルダのモジュール DLL が、特定の起動順序を要せずに、互いと暗黙的にリンクできるようになりました。

  • SIZE_T に関する不適切なコメントを修正しました。

  • クラスおよび構造体を非推奨にする場合に生じる、UHT による DEPRECATED マクロのパースにおける問題を修正しました。

  • ケース インセンシティブなファイル システムにおける不必要なフル リビルドを修正しました。

  • TMultiMap::MultiFindPointer のシンタックス エラーを修正しました。

  • UObject を参照しているデリゲートを FCoreDelegates から FCoreUObjectDelegates に移動しました。

  • UnrealHeaderTool によって生成されるすべてのコードにおける非推奨の警告を無効化しました。

  • TBasePlayerControllerIterator のコードにおける小さな矛盾を修正しました。

  • ヘッダファイルから使用されていないさまざまな C++ のマクロを削除しました。

  • pak ファイルに追加されたファイルをスキャンする場合に素早く UnrealPak を実行するようになりました。

  • New:タスク グラフのために Perfect Forwarding を使用します。また、シャドウのレンダリングのためにラムダの機能を使用します。

  • ICU データを Content/Localization から Content/Internationalization に移動しました。

  • テスト ビルドのアサートが有効化されました。ただし、シッピング ビルドでも有効化されている場合です。

  • UnrealHeaderTool の実行に失敗した時に表示されるエラーメッセージを改善しました。(読解可能なエラーコードを表示します)

  • 使用されていない bChangesTopology メンバー変数を FPropertyChangedEvent から削除するとともに、大半の使用を削除しました。これは、3 引数のコンストラクタを非推奨にするための準備です。

エディタとツール

  • New:新規追加のための + ボタンをクリックすると Action/Axis のマッピングが展開するようになりました。

  • New:セッションとセッションの間にタイプしたものが Output Log ウィンドウに保存されるようになりました。(ゲーム内のコンソールと同じ動作です)

  • New:新たな 2D Pixels テクスチャ グループを追加しました。2D Games における、スケーリングおよびミップマップ化、フィルタリングがされていないテクスチャのためのものです。

  • New:使用するアセットを選択した時に現れる Asset Picker から新たなアセットを作成できるようになりました。メニューのコンボボックスに適宜 New asset の項目が含まれるようになりました。

  • New:使い勝手を向上させるために、メインの Window (ウィンドウ) メニューを改変しました!

    • 現在のエディタに基づいてセクション分けとラベル付けを行います。

    • 実験的なツールのためのセクションができました。

    • Undo History (アンドゥの履歴) を Edit メニューに移動しました。

  • New:コンテンツ ブラウザ内のコンテキスト メニューを使いやすくするために改変しました。

    • すべてのアセットについて、Details (詳細) オプションを Edit (編集) オプションに差し替えました。

    • Source Control (ソース管理) オプションをサブメニューに移動して、サイズを小さくしました。

    • あまり一般的ではないアクションをサブメニューに移動しました。

    • インポートされたアセットすべてに、再インポートおよび配置、元のソースを開くためのオプションが備わりました。これらは、種類の異なる、複数のインポートされたアセットが選択された場合でも機能します。

  • New:メッシュを結合させるツールによって、ミラーされたメッシュがサポートされます。

  • New:コンポーネント ビジュアライザーが DrawVisualizationHUD をオーバーライドするようになり、2D のビジュアライゼーションも可能になりました。

  • New:クラス ビューアー (およびピッカー) において、UMG および Blutility、GameplayAbility ブループリント (ロードされたものとロードされていないものの両方) が表示されるようになりました。

  • New:実験的でインタラクティブなクック: クックされたコンテンツを無効化する、ini の変更と DDC バージョンの変更のためのサポートが含まれます。(エディタのために -iterate コマンドライン オプションを追加しました。)

  • New:Windows 上でパッケージ化されたゲームにおいて、実行ファイルがルートディレクトリに含まれるようになりました。これによって、欠けている必要物がゲーム起動前にインストールされるようになります。

    • コンテンツ オンリーのゲームにおいて、エディタ内の Packaging Settings (パッケージ化設定項目) を使用して、アプリケーションのアイコンをカスタマイズできるようになりました。

  • New:UE4 Prerequisites Installer が Windows XP、Windows Vista、32bit Windows 7 をサポートするようになりました。

  • New:パッケージ化する時にチャンク生成のためにプロジェクトを設定できるオプションがプロジェクト設定に含まれるようになりました。PS4 PlayGo、Xbox Streaming Install 等をサポートしています。

  • New:curve linear color struct (カーブ リニア カラー構造体) を追加しました。これは、プロパティとして追加することができるとともに、Details (詳細) パネルで編集することができます。

    • 内部によって PR #529 から統合されます。

  • New:エディタツールのために事前コンパイル イベントを追加しました。

    • ペルソナにコールバックを追加することによって、再コンパイルの前に、実行中のブループリント Notify ステートを除去するようにしました。

  • New:PkgInfo -export -simple がソートをサポートするようになりました。

  • 複数行のテキスト プロパティ:Enter が変更に係るようになりました。新たな行を入力するには、Shift+Enter が必要です。

  • 正しいパラメータを表示するために更新された剛体メッシュに関する FBX インポートエラー。

  • 現在のファイル表示を FBX インポート UI に再度追加しました。

  • スケルタルメッシュの FBX ファイルからアニメーションのみをインポートできる機能を再度追加しました。

  • 縮んだ場合に再び拡大されないチュートリアル リストにおいて、自動ラップされたテキストを修正しました。

  • Super Search を独立したウィンドウで表示するのではなく、オーバーレイ表示するようにしました。これによって、アクティブの IME コンテキストが無効化される問題に対処しました。

  • Cook on the Fly の安定性に関する修正、および、パフォーマンスの改善。

  • Simulate モードにおいて、FLevelEditorViewportClient::GetWorld が正しい World を返すようになりました。

  • x64 UE4 Prerequisites Installer が vcomp100.dll をインストールするようになりました。

  • x64 UE4 Prerequisites Installer が 32bit OS 上で実行された場合にユーザーに警告を出すようになりました。

  • UE4 64bit Prerequisites Installer が vcomp100.dll をインストールするようになりました。

  • UE4 Prerequisites Installer が Windows Installer v4.5 の有無をチェックするようになりました。

  • レベルの「別名で保存」機能が、保存のための上書き対象となるアセットの削除に失敗する問題を修正しました。

  • Asset Registry (アセット レジストリ) が、アセット発見の完了について早まった報告をしなくなりました。

  • ある Play In Editor インスタンスが、別の Play In Editor インスタンスのホストに接続している場合に、新たなマップに移動することができなくなるバグを修正しました。

  • 異なる Play In Editor インスタンスが同一のオンライン サブシステム インスタンスを使用するようになるバグを修正しました。

  • Mobility (可動性) のコンボ ボタンのツールチップを破損する loctext キー コリジョンを修正しました。

  • MapCheck_Message_SimulatePhyNoSimpleCollision メッセージのスペルミスを修正しました。

  • PIE ウィンドウが開いている時に出力ログが打ち込まれる際に生じるクラッシュを修正しました。

  • モーダルなウィンドウが開いている場合にエディタで発生するキーボードのフォーカスに係る問題を修正しました。

  • SpeedTree ファイルをインポートすると、ライトマップの UV が SpeedTree のファイルから使用されず、生成される問題を修正しました。

  • カラーピッカーにおいてアルファの値がデフォルトでは表示されない問題を修正しました。

  • Visual Studio 2013 のためのダウンロード リンクを修正しました。

  • コンテンツ ブラウザからレベルを削除すると発生するクラッシュを修正しました。

  • FTransform の詳細パネルのカスタマイゼーションを修正しました。roll と yaw の値を交換しました。

  • FBX インポーターにある Auto-Generate Lightmap UVs の設定項目が無視される問題を修正しました。

  • 詳細パネルが操作されている最中に、ブループリントを再コンパイルして詳細パネルを更新しようとすると発生するクラッシュを修正しました。

  • ムービーが再生されていない時でも、起動ムービー プレイヤーが Slate ウィジェットを生かしたままにしている問題を修正しました。

  • 正投影法のビューポートがデフォルトで Lit (リット) に設定されている状態を修正しました。

  • BSP サーフェスに適切なマテリアル ピッカーを追加しました。

  • 複数のオブジェクトでユニークなアクタ名を設定する機能のための最適化。

  • マップがパッケージ化プロセスに正しく含まれない問題を修正しました。

  • UAT からゲームを実行すると roles コマンドラインがゲームに渡されない問題を修正しました。

  • Launch On 機能または Cook in Editor 機能を使用すると、初期マップが正しくセットされない問題を修正しました。

  • マップがナビゲーション システムを有効にしている場合、BSP の操作で生じる数秒の処理落ちを修正しました。

  • フォーリッジが誤ったスケールでペイントされる問題を修正しました。

  • GEditor が依然として NULL であるにも関わらず、エディタの一部がすでに初期化されている間にキーの押下イベントを扱うことで発生するエディタのクラッシュを修正しました。

  • UnrealSwarm が、ファイルをクライアント マシンにプッシュしている間に、optional (オプションの) ファイルを required (必須の) として扱うために発生していたエラーを修正しました。

  • チュートリアル中に表示される 「Failed to find object 'Class None'」(オブジェクト「クラスなし」を発見できませんでした) という警告を修正しました。

  • エディタのネットワーク ユーザビリティーを理解しやすくするためのさまざまな改善。

  • PIE クライアント/サーバー ウィンドウの位置/サイズが、デスクトップ領域の範囲内で維持されるようになりました。

  • マルチプロセス PIE (ビューポート) クライアントが、サーバーと接続できるようになりました。

  • サービスノードを選択する際に Behavior Tree Editor がクラッシュする問題を修正しました。

  • DataTable ― UObject が再構成中に正しく扱われるようになりました。

  • MallocProfiler2: 4.0 GB を超える大きさのファイルに対応するようになりました。

  • 初めてシェルエクステンションを使用してプロジェクト ファイルを生成する場合、UnrealBuildTool が自動でビルドされます。

  • Mac OS X における CycleTransformGizmoCoordSystem のデフォルトの Key Equivalent (ショートカットキー) を Ctrl+~ に変更しました。これは、Cmd+~ が OS X の Window Cycling 機能によって使用されていたためです。

  • テキスト圧縮タイプ TC_EditorIcon が TC_UserInterface2D として表示されるようになりました。

  • UFactory::ValidGameNames が削除されました。

  • • ProjectHasCodeFiles、GenerateBasicSourceCode、GetCurrentProjectModules、DetermineModuleIncludePath を GameProjectGenerationModule からエクスポーズしました。

  • ローカリゼーションのリソース生成中に internationalization archive (国際化アーカイブ) がロードできない場合のフィードバックを改善しました。

ランドスケープ
  • New:ランドスケープの Hole がモバイル プラットフォームでサポートされました。(OpenGL ES2)

  • New:ランドスケープのサイズと合わない高さマップのインポートをサポートしました。(パディングまたはクリッピングされて自動的にフィットするようになります。)

  • 見つからないフォーリッジとランドスケープのツールチップを修正しました。

  • Z オフセットをともなった Reapply Tool (最適用ツール) を使用する場合にフォーリッジ ツールがクラッシュする問題を修正しました。また、Erase Density (消去密度) 機能と Reapply Density (再適用密度) 機能を修正しました。

  • Play モードで別のマップに移動する場合に、World Composition マップが正しく機能しない問題を修正しました。

  • ブループリントで作成された InstancedStaticMesh 上でフォーリッジ モード選択ツールを使用すると生じる警告を修正しました。

  • スプラインがない場合のためにスプライン コンポーネントの境界を修正しました。(これまでは world 0,0,0 でした。)

  • 斜面の境界がランドスケープの境界を超える場合にランドスケープの Ramp (斜面) ツールが不具合を起こす問題を修正しました。

  • New Landscape (新規ランドスケープ) の Rotation Z スライダーをドラッグしても、リアルタイムの更新がなされない問題を修正しました。

マテリアル エディタ
  • New:Customマテリアル ノードで TextureObject を使用できるようになりました。(古い Custom Texture ノードは不要になったため削除しました。)

  • テキストから作成されたマテリアルが Expression (式) を重複することがないようにしました。

  • Const マテリアル パラメータ値がクラシュしないようにしました。

ペルソナ
  • セクションのバーの近くをクリックしてもバーが小幅に動かなくなりました。

  • ペルソナのホーバープレビューが更新されず、アニメーションの静止画像が表示される問題を修正しました。

シーン アウトライナー
  • シーン アウトライナーのアクタ カウンターが正確なアクタ数をレポートしない問題を修正しました。

スタティック メッシュ エディタ
  • New:新たなスタティック メッシュのコリジョンを作成することによってコリジョンのビューが有効化されます。(すでに有効化されていない場合)

ソース管理
  • ソース管理を使ってアセットをリバートすると生じるメモリ破損バグを修正しました。

  • Mac OS X 上では File > Connect からソース管理に接続してファイルを開くことができます。モーダルなウィンドウが開いている間にダイアログが表示されますが、これもモーダルでなければならず、そうでない場合は表示されません。

UI
  • New:UMG:Designer で複数選択がサポートされるようになりました。

  • New:UMG:パレット ビューの項目をダブルクリックするとウィジェットを直接開くことができるようになりました。

  • New:UMG:UI によるカスタムのウィジェットのために、Edit Blueprint (ブループリントを編集する) を右クリック メニューに追加しました。

  • New:UMG:ブループリントのプロパティを使ってウィジェット ブループリントに役に立つ説明文を供給することができるようになりました。これはコンテンツ ブラウザおよびパレット内でウィジェットのためのツールチップとして表示されることになります。

  • New:UMG のマルチライン テキスト ブロックでテキストをラップするか否かを切り替える機能を追加しました。自動ラップはデフォルトで有効化されています。

  • New:さまざまな Play In Editor のモードのためのアイコンを更新して、より一貫性のあるスタイルとしました。

  • New:ソース管理履歴で複数行の説明文を示すツールチップを追加しました。

  • New:Play Sound 関数を User Widgets に追加しました。

  • New:マチネのアクタに欠いていた設定項目を追加しました。ゲームの HUD を非表示にすることができる設定です。

  • UMG UI エディタで Slate カラー プロパティをアニメートできない問題を修正しました。

  • アニメーションが作成されていない場合に Auto-Key が UMG で動作する問題を修正しました。

  • ウィジェットがアニメーションとともに使用されると UMG ウィジェット ブループリントが保存されない問題を修正しました。

  • UMG の選択ハイライト表示に現れるエイリアシングを修正しました。

  • UMG ウィジェットがビューポートの外側をクリッピングする問題を修正しました。

  • By the book が単純なプロファイルで機能しない問題を修正しました。

  • さまざまな Play In Editor のモードのためのアイコンを更新しました。追加アップデート。

  • ウィンドウ内に欠けているクラスのアイコンに、再び「デフォルト」のオブジェクト アイコンが使われるようになります。

  • プロジェクト ランチャーの UI が堅牢になり、バリアント リストの破損を処理できるようになりました。

  • 起動したゲーム セッションがセッション マネージャに表示されない問題を修正しました

  • デフォルトの設定 (configuration) を変更して、新たな起動プロファイルが development (開発) となるようにしました。

  • UWidget のすべての Getter/Setter が、MyWidget を直接使用するのではなく、GetCachedWidget を使用するようにしました。

  • Sort が TPanelChildren で機能するようにしました。

  • スレートのマテリアル ブラシを破棄した時にクラッシュする問題を修正しました。

  • パフォーマンス上の理由で、SWidget::RenderTransform を TOptional に変更しました。

  • immersive (没入型) モードに一旦入ると抜け出せなくなる問題を修正しました。

  • Project Packaging 設定項目の Cultures to Stage が変更されるとファイルに保存されない場合がある問題を修正しました。

フレームワーク

  • New:ParticleSystemComponent OnSystemFinished デリゲートをブループリントにエクスポーズしました。

  • ULevelBase が削除されました。

  • New:アセット エディタにおいてチュートリアルがタブにフォーカスできる機能をサポートしました。

  • New:CanvasTileItem マテリアル内の VertexColor をレンダリングのコードに渡し、CanvasTileItem を使ってレンダリングされるマテリアルとともにこのパラメータが使えるようにするコードを追加しました。

  • New:GameViewportClient::Tick が virtual になりました。

  • New:UGameUserSettings::ApplyNonResolutionSettings が virtual になりました。

  • New:すべての AZERTY キーが EKeys によって表現できるようになりました。また、アクション/軸のマッピングにバインドできるようになりました。これによってコンポーネントを直接入力できるようになります。また、ブループリントのインターフェイスから可能です。

    • アンダースコアまたは引用符がシフトされていない値であり、ハイフンとアポストロフィが代わりにそれぞれ使用されるキーに EKeys::Underscore および Quote がマッピングされるようになります。

  • New:UPrimitiveComponent::SetCullDistance が Set Max Draw Distance としてブループリントから呼び出せるようになりました。

  • New:GameMode プロパティの MinRespawnDelay、NumPlayers、NumTravellingPlayers、NumSpectators、NumBots がブループリントで読み取り可能になりました。また MinRespawnDelay が GameMode の デフォルトから編集可能になりました。

  • New:GameInstance の初期化とシャットダウンの改善

    • UGameInstance::Init を PIE と Standalone の両方で実行可能としました。

    • 現在の UGameInstance::Init が ::InitializeStandalone に、::InitPie が InitializePIE にリダイレクトされます。両方とも非 virtual となりました。

    • UGameInstance::Shutdown を追加することによって、ゲーム インスタンスのシャットダウン時の動作を実行できるようにしました (アクタ上の Quit および EndPlayInEditor のための EndPlay と類似しています)。

    • Init と Shutdown のために、ブループリントの実装可能なイベントをエクスポーズします。

  • New:参照ボーン ポーズのオーバーライドを FSkeletalMeshMerge に追加しました。

    • FSkeletalMeshMerge::DoMerge() が FPoseOverride 構造体のoptional の配列を受け取るようになりました。

    • FPoseOverride は、結合されたメッシュ内で、指定されたソース メッシュの対応するボーンでオーバーライドすべきボーンを指定します。

    • これによって、異なる参照スケルトンを使って、ソース メッシュから結合されるスケルトンをより柔軟に作成できるようになります。

  • New:ENGINE_API を ACameraActor に追加しました。これによって、ゲーム プロジェクトの中から派生させることができるようになります。

  • New:Vector 関数 ProjectOnToNormal()、VectorPlaneProject() を追加しました。

  • New:ProjectileMovementComponent::ComputeMoveDelta() を変更しました。位置を更新するために ComputeAcceleration() ではなく、ComputeVelocity() を使用するようになります。

    • これによって、ベロシティ (速度) の変化のためのカスタムの実装が可能になり、加速度を計算することなく、シミュレーションに直接影響を与えることができるようになります。

  • New:さまざまなフリップブック アセットのメソッドをブループリントにエクスポーズしました。

  • New:非両面マテリアルを使用しているスプライトおよびフリップブックのコンポーネントのためにマップ チェックの警告を追加しました。

  • New:エディタ内の BreakHitResult のためのコメント/ツールチップを改善しました。Time 値を出力に追加します。

  • New:DefaultProjectile コリジョン プロファイルのために static FName を追加しました。

  • New:両方の編集可能なプロパティを取る FWalkableSlopeOverride のためのコンストラクタを追加しました。

  • New:SetWalkableSlopeOverride() を PrimitiveComponent と FBodyInstance に追加しました。これによって、オーバーライドを容易にセットアップできるようになり、ブループリントで実行時に変更できるようになりました。

  • New:AirControl のサポートを改善しました。潜在的に歩行不能なサーフェスに向かって移動できるようになります。ただし、壁を登ることがないようにするために依然として制約のあるブーストとなっています。

    • これによって、プレイヤーは垂直の壁に向かって効果的にドッジできるようになります。また、このような場合にすべての空中制御を剥奪するのではなく、歩行不能なスロープに沿って横に進むことができるようにもしています。

    • 取り込まれるベロシティに関わらず、HandleSlopeBoosting() が上方向のブーストを防ぐようになりました。これまでは、上方向に動く場合にのみ制限をかけていましたが、水平方向または下方向に動いてこのチェックを回避し、上方向を歪めることができるためです。

    • これまで、段の側面にぶつかった場合に HandleSlopeBoosting() がプレイヤーを真っ直ぐ下に向かわせていました。これは落下の動きでチェックされるようになったため、削除されました。

  • New:AITestSuite モジュールが作成され、AI コードの単体テスト的な試験が可能になりました。

  • New:ProjectileMovementComponent: friction ― バウンドに新たなオプションの動作がある場合のモードです。sliding (スライド)/rolling (回転) のコードを修正し、より関連のある変数をエクスポーズしました。

    • 新たなプロジェクタイル (発射物) の friction (摩擦) モードです。インパクトによる垂直抗力 (垂直からの場合は高くなり、斜めからの場合は低くなります) に基づいてバウンドが摩擦を変更する場合のモードです。bBounceAngleAffectsFriction を有効にするとこの新たな動作が有効になります。

    • バウンドが前と同じ場合は、デフォルトの friction の動作となります。

    • bIsSliding を追加しました。これは、プロジェクタイルがスライドする/回転するかを示します。また、フレーム間の複数のインパクトに関する動作を修正しました。フレームレートに応じて friction が一貫性のない振る舞いをする問題を修正しました。

  • New:プロジェクタイルの動きにともなう摩擦の使用に関する問題を修正しました。また、サーフェスに沿ってスライドする場合の動作を改善することによって、異なる時間ステップにおける差異を解消し、一貫した摩擦が適用されるようにしました。

    • スライドの動きに加速度が考慮されるようになりました (どの方向についても。重力だけではなく)また、新たな関数 HandleSliding() で処理されるようになりました。

    • 動きがサーフェスに対して平行であり、サーフェスにインパクトを与える (「スライドする」) 場合に摩擦が適切に適用されるようになります。

  • New:MovementComponent 平面の制約/軸固定の動作を制御する列挙型を追加しました。モードには、カスタム、X、Y、Z、グローバルの物理軸設定を使用するためのオプションがあります。

    • グローバルの物理軸設定を使用するためのオプションによって、複数のブループリントに同一の平面の制約を簡単に使用させ続けることができるようになります。

  • New:FVector::Parallel() を修正し、FVector::Orthogonal() を追加しました。

    • 2 つの法線が許容範囲内で直交/垂直であるか否かを判定するための FVector::Orthogonal() を追加しました。

    • FVector::Coplanar() が、平行テストを制御するための閾値を受け取るようになりました。

    • 直交テストのための THRESH_NORMALS_ARE_ORTHOGONAL を追加しました。

    • THRESH_VECTORS_ARE_PARALLEL を THRESH_NORMALS_ARE_PARALLEL に名前変更しました。また、その意味を、比較対象の角度のコサインに変更しました。

    • 反対の方向を指す平行のベクタについて FVector::Parallel() が false を返す問題を修正しました。方向が問題の場合は、FVector::Coincident を使用してください。

  • New:Blackboard のブループリント インターフェイスを改善しました。

    • GetBlackboardValueAsRotator と SetBlackboardValueAsRotator がエクスポーズされました。

    • Blackboard のキー値をクリアするための関数を 1 つ追加しました。

  • New:ビークルが RVO Avoidance (回避) を実行できるようになりました。

  • New:エディタで所有しているアクタを動かした後で NavRelevantComponents の境界が更新される問題を修正しました。

  • PIE を終了させるとカメラの回転が破損する問題を修正しました。カメラは、PIE 終了時に存在していた位置に留まるようになるはずです。

  • ドキュメンテーション アクタのリンク フィールドの不正な \ を修正するコードを追加しました。

  • ドキュメンテーション アクタのリンクで、¥ を ./ に差し替えるコードを追加しました。

  • ドキュメンテーション アクタのリンクの妥当性をチェックするコードを訂正しました。

  • ドキュメンテーション アクタのドキュメント リンクをクリックすると、2 ページ開く問題を修正しました。

  • USkeletalMeshComponent の Use After Free エラーを修正しました。

  • HitBox のヒット テストが、タッチスクリーンを搭載するラップトップで正しく動作するようになりました。

  • FGameplayAbilityTargetData_SingleTargetHit::GetEndPoint() を変更しました。HitResult.ImpactPoint ではなく、HitResult.Location を返すようになりました。

  • FGameplayAbilityTargetData_ActorArray::GetOrigin() を修正して、正しい回転を返すようにしました。

  • GameplayAbilityTargetActor が、ネットワーク関連性を判定する際に、アビリティのアバターをチェックするようになりました。

  • native 定義のサブコンポーネントを有する、ブループリントで追加されたコンポーネントが、再生成時に正しく登録されるようになりました。

  • World Teardown (ワールドの分解) が、HandleExitCommand ではなく GameEngine::PreExit で起きるようになりました。

    • SlateApplication Shutdown が、Engine および App の PreExit 後に起きるようになりました。

  • ブループリントのコンテキストメニューで、エミッタに有効ではないイベントが表示されません。

  • UDN で問題提起されていた DrawDebugCylinder の計算を修正しました。int 型を使って float 型の計算を実行していたため、不正な動作が生じていました。

  • コンストラクタで SetIsReplicated を呼び出しません。単に bIsReplicates を直接セットします。

  • SSpinBox によって、スクリーン上のランダムな位置にカーソルがテレポートされなくなりました。

  • マウス入力が 1 フレーム遅れる問題を修正しました。

  • 合成 Slate マウスの動きによって誤ったツールチップが表示されることがなくなりました。

  • マウスをタッチとして使用する場合に、左マウスボタンを押下しながらマウスをビューポート外に動かすと発生する問題を修正しました (特に Mac 上で生じた問題)。

  • 親/子のアクタの Mobility が互いと同期できなくなる問題を修正しました。

  • Actor の ReplicatedComponents 配列が正しく更新されるようになり、OwnedComponents と同期を保つようになりました。

  • コンポーネントを除去するための関数を呼び出す順に関する問題を修正しました。

    • BeginDestroy が、OnComponentDestroyed より先に ExecuteUnregisterEvents を呼び出します。

    • UninitializeComponent が DestroyComponent から呼び出されるようになりました。

    • Owner Actor が初期化された場合に、InitializeComponent が RegisterComponentWithWorld によって呼び出されるようになりました。

    • SceneComponent が DestroyComponent ではなく OnComponentDestroyed をオーバーライドするようになりました。これによって、ScopedMovementStack と Detachment が実行され、UninitializeComponent が常に UnregisterComponent よりも前に呼び出されるようになります。

  • ブループリントで追加されたある種のコンポーネントをもっている場合に、トランザクションをアンドゥする (元に戻す) とネイティブのルート コンポーネントが (0, 0, 0) に移動するアクタを修正しました。

  • マウスがビューポート外にある場合に GetMousePosition が true を返す問題を修正しました。

  • 頂点カラーが別のソース メッシュでも使用されている場合に、FSkeletalMeshMerge が頂点カラーを結合するようになりました。

  • FPhysicsScene2D のメモリリークを修正しました。

  • 2D スプライト レンダー シーン プロキシから、不正な bWillEverBeLit=false を削除されました。

  • CharacterMovementComponent の Path Following を修正しました。より素早くターンし、目標速度に達しようとする場合に現在のベロシティを考慮するようになります。

    • bRequestedMoveUseAcceleration を修復しました。加速度を無効にして、要求されているパスファインドのベロシティを直接使う (即座のターン) ために false にセットすることができます。

  • APlayerController::PostProcessInput() が IgnoreLookInput 変数を直接読み取らずに、 IsLookInputIgnored() virtual を使用します。

  • プロジェクタイルの動きにともなう摩擦の使用に関する問題を修正しました。また、サーフェスに沿ってスライドする場合の動作を改善することによって、異なる時間ステップにおける差異を解消し、一貫した摩擦が適用されるようにしました。

    • スライドの動きに加速度が考慮されるようになりました (どの方向についても。重力だけではなく)また、新たな関数 HandleSliding() で処理されるようになりました。

    • 動きがサーフェスに対して平行であり、サーフェスにインパクトを与える (「スライドする」) 場合に摩擦が適切に適用されるようになります。

  • MovementComponent の Tick 関数の自動登録が、InitializeComponent() ではなく、OnRegister() に移動しました。

  • ProjectileMovementComponent のベロシティ初期化が InitializeComponent() から OnRegister() に移動しました。

  • 登録中に実行すると、MovementComponent::SetUpdatedComponent() の PhysicsVolume の更新を回避します。いずれにしても、登録の UpdateOverlaps() の一部として更新されます。

  • CharacterMovementComponent::SetUpdatedComponent() によって、OnComponentBeginOverl がデリゲートとして独自に追加されるようになります。

  • ローカルのプレイヤーが存在しない場合に、AHUD::GetCoordinateOffset() が 初期化されていない FVector2D を返す問題を修正しました。

  • 前方への動きによって位置が実質的に変化しない場合は、CharacterMovement StepUp() 関数が中止します。

    • 歩いていない場合は、ステップダウンもステップアップの高さに制限されます。

    • 飛んでいるキャラクターが、垂直のサーフェスに衝突した場合に、移動方向が若干上方であっても下方に動く問題が修正されます。

    • キャラクターの動きにおけるスイープの最悪の場合の数も削減されます (これまでは、コーナーに押し入った場合に起きました)。

  • SceneComponent::GetPhysicsVolume() における重複した GetWorld() の呼び出しを削除しました。

  • 平面の制約が有効になっている場合に、MovementComponent::ComputeSlideVector() が誤った偏位ベクタを計算する問題を修正しました。

    • 最終結果を移動平面に射影するのではなく、法線がまず平面に射影され、正規化されます。

    • 移動平面の外に曲がっているジオメトリとのコリジョンによって、偏位されずに動きが停止する問題が修正されます。

  • テレポートがある場合、落下中のキャラクターのベロシティを再計算しません (通常、penetration [貫通] から脱するための調整)。

  • 複数のオブジェクト/サーフェスにオーバーラップする場合の、Pawn の物理 penetration 処理を改善しました。

  • 結合された MTD の結果を利用して、両方のオブジェクトから出る調整を得ます。

  • MovementComponent::TwoWallAdjust() が明示的なベクトル射影ではなく ComputeSlideVector() を使用します。

    • CharacterMovementComponent::PhysFalling() 内で HandleSlopeBoosting() への余計な呼び出しが削除されました。TwoWallAdjust() による ComputeSlideVector() への呼び出しによって処理されるようになったためです。

  • Air Control の制限コードを調整しました。垂直のサーフェスへの押し込みが可能になることによって、hit イベントが依然として得られます。通常 Air Control が制限される角度のついたサーフェスは、重力による接触のために依然として hit イベントを得ることができます。

  • SceneComponent::MoveComponent() を修正し、制御パスに関わらず、常に out HitResult を満たすようにしました。

  • FHitResult のデフォルトのコンストラクタが Time 変数を 1.0 に初期化します。

  • bBlockingHit bool 型を BreakHitResult に追加しました。

  • New:C++ およびブループリントにおいて、Hit Result をすべてのアクタおよび SceneComponent トランスフォーム関数に追加しました。

    • ブループリントで、スイープされた動きの Hit Result を得る方法が加わりました。これによって、C++ のコードを必要とせずに、より複雑な動きを実装できるようになります。

  • CharacterMovement の Falling (落下) が、最初の動きの前に Air Control のチェックを必要としなくなりました。これは、deflection (偏位) によって非 Air Control のベロシティが使用されることによります。

  • UpdatedComponent を NULL にセットすると CharacterMovementComponent でクラッシュする問題を修正しました。

  • MovementComponent::SetUpdatedComponent は、オブジェクトがキル保留状態の場合に、Physics Volume (物理ボリューム) の変更およびデリゲートのバインド解除を回避します。

  • DetachFromParent() における UpdateOverlaps() の呼び出しを修正しました。これは、AttachTo() から呼び出されると誤った通知を引き起こし、オブジェクトがワールド位置を維持できませんでした。

  • Actor.InitialLifeSpan がインスタンス上で編集可能になりました。(EditDefaultsOnly の代わりに EditAnywhere)

  • 平面の制約が有効になっている場合にプロジェクタイルが正しく動作するようになりました。

    • UMovementComponent::ConstrainNormalToPlane() を追加しました。これは、ベクタの方向を制約した後にベクタを正規化するものです。

  • いくつかの BT ノードが AIMODULE_API としてエクスポーズされない問題を修正しました。

  • AI 関数のシグネチャのいくつかに小さな変更を加えました。ポインタが参照に変わり、null が無効になりました。

  • AAIController へのハード参照を APawn から削除しました。

  • ナビゲーションを作成する必要があるか否かを判定するのに、誤った条件がチェックされる問題を修正しました。

  • New:UE4 の Recast 統合ヘッダ ファイルをエクスポーズしました(public ディレクトリに移動しました)。

  • BT ノードで使用できる GetBlackboard 関数の名前を GetOwnersBlackboard に変更しました。

  • NavigationTestingActor によって描画されるデバッグ ラベルが、カメラの視錐台の外側にあるアイテムのために描画される問題を修正しました。

  • navmesh の外側から始まるクエリに navmesh のレイキャストが適切に対応していない問題を修正しました。* それらの結果を blocked としました。

  • Construction Script で使用するために、SpawnAIFromClass BP ノードを unsafe (非安全) としてマークしました。(理由は、安全ではないからです!)

  • Collision Profile (コリジョン プロファイル): * プロファイルのための Object Type として Trace Type を受け取らないように修正しました。

  • ChildActorComponent によって Mobility spam log が継承時に作成される場合に生じる問題を修正しました。

  • static 修飾子適用後に、低すぎる空間のための特別なナビゲーション領域が削除されるようになりました。

  • ジオメトリ ブラシ (BAP) の変更時に実施される navmesh の更新について修正しました。

  • navmesh の再ビルド時に FPS が低下する問題を修正しました。

  • オリジナルのキーコードをキーボード イベントに追加し、入力イベントから AreCapsLocked をエクスポーズしました。

  • navmesh タイルの生成を管理する方法を内部的に大きく変更しました。ユーザー視点からは何ら変化は見られないはずです。

  • AReverbVolume が AAudioVolume という名称に変更されました。

  • FComponentInstanceDataBase が、TSharedPtr を使って保存されなくなりました。

  • FInputChord::RelationshipType が FInputChord::ERelationshipType という名称に変更されました。

  • DEPRECATED_SaveGameSummary が削除されました。

  • Push To Talk が デフォルトの Debug Exec Bindings から削除されました。

  • 使用されていなかった UWorld::bDebugStepExecution が削除されました。

  • プロジェクタイルをもつテンプレートを変更して、エンジン内にできた DefaultProjectile のコリジョン プリセットを使用するようになりました。

  • GameViewportClient ヘッダ内のドキュメンテーションを改善しました。

  • FSoundParseParameters が AudioComponent.h から ActiveSound.h に移動しました。

  • FKeyDetails が TAttribute を使用するようになりました。FName を返す Delegate メンバーと FName メンバーは使用しなくなりました。

  • Slate イベントのルーティングがより体系的になり、将来的に、より強力なイベントのトラッキングとデバッグのための機能を実現できるようになりました。

  • •Slate イベントのルーティングの実装がより体系的になったため、より強力なイベント ログとデバッグ機能が将来可能になります。

  • 破棄されつつあるワールドにアクタをスポーンすることができなくなり、警告が出されるようになりました。

  • メディア:Windows メディア プレイヤーのプラグインにおけるメモリ リークを修正しました。

  • メディア:ムービーファイルの相対パスが不正に処理されている問題について修正しました。

  • FlushLevelStreaming がすべてのレベルのステートをフラッシュしない問題を修正しました。

  • ドキュメンテーションを Hud.h に追加し、構造体などをそれら固有のファイルに分割しました。

  • UActorComponent において UPROPERTY が内部のステート bool 型から削除されました。

  • アクタに所有されていないコンポーネントがその OwnedComponents 配列に追加されていないことを検証します。

  • AController::IsInState() が const になりました。

  • すべての CharacterMovementComponent::PhysFalling の加速度処理を GetFallingLateralAcceleration() に統合します。

  • ProjectileMovementComponent.MaxSimulationIterations が、他の関連する設定項目 (MaxSimulationTimeStep、bForceSubStepping) とともに、高度な表示プロパティではなくなりました。

  • CharacterMovementComponent::AdjustUpperHemisphereImpact() と UpperImpactNormalScale を非推奨としました。

  • CharacterMovementComponent を一掃して、すべてのコンパイラ固有の pragma in-line に代わって、非推奨の有効化/無効化の新たなマクロを使うようにしました。

ネットワーキング

  • New:ソケット: UDP/TCP ソケット ビルダー上で送信および受信バッファ サイズを指定するための API を追加しました。

  • New:ネットワーク デモが再生されはじめた時をゲームコードが検出できるようにしました。

  • New:ネットワーク デモの再生速度を増減できる機能を追加しました。

  • New:デモの録画速度を制御できる機能を追加しました。

  • New:Native NetSerialize のサポートを FastArrayReplication パスに追加しました。

  • MulticastSocket の作成を optional としました。(マルチキャストに対応していないパフォーマンスのために)

  • achievement (成績) のリセットを行うためには有効な FUniqueNetId を必要とするプラットフォーム上でachievement (成績) のリセットを行うとクラッシュする問題を修正しました。

  • サーバーへの接続に失敗した後に、マルチクライアントの Play-In-Editor を終了するとクラッシュする問題を修正しました。

  • 非同期のネットワーキング読み込みが無効化されていて、パッケージが完全に読み込まれない場合に生じる問題を修正しました。

  • FVector_NetQuantize10、FVector_NetQuantize100、FVector_NetQuantizeNormal のコンストラクタを修正しました。

  • ガーベジ コレクションされたオブジェクトとレプリケーションによって生じる可能性があるクラッシュを修正しました。

  • アクタが dormant (ドーマント) になった場合に、レプリケートされなくなるプロパティが出る問題を修正しました。

  • Windows における ESocketReceiveFlags::WaitAll の動作を修正しました。

オンライン

  • ローカルのトーカ (talker) のための正しい最大値に照らして関数がチェックしないために生じる境界外 (out of bounds) クラッシュを回避しました。

    • alexSilkin 氏によって PR #495 から統合されました。

  • OnlineSubsystemNull のバグを修正しました。

    • OnlineSubsystemNull によって作成された LAN セッションが、ネット ドライバーによって使われる実際のポートを通知するようになります。

    • これによって、同一のコンピュータ上で複数のインスタンスをともなうマルチプレイヤーのテストを行うことが容易になりました。セッションをホストする時に各インスタンスが異なるポートを通知するためです。

  • OnlineSubsystemNull によって作成された LAN セッションが、作成されるとすぐに通知しないバグを修正しました。

物理

  • New:GetCenterOfMass 関数をブループリントにエクスポーズしました。

  • New:center of mass (重心) のビジュアライゼーションを追加しました。

  • New:Destructible (被破壊性の) コンポーネントが自動的に非同期シーンを使用するようになりました。(シーンが有効化されている場合)

  • New:非同期シーンのためにサブステップ機能を切るオプションを追加しました。

  • New:PhysX の新たな統計情報を追加しました。また、PhysX のパフォーマンスをプロファイリングするのに役立つようにイベントに名前を付けました。

  • New:mass (質量) のオーバーライドを追加することによって、密度値のことを考えずに簡単に質量を設定できるようにしました。

  • New:• New: 衝突によるダメージをシミュレートするために、Destruction (破壊) が hit イベントを生成しなくてもよくなりました。

  • New:プロジェクトの設定として、専用サーバー上でラグドールのシミュレーションをエクスポーズします。

  • Collision Analyzer (コリジョン アナライザー) が有効化されていない場合に、レイキャストのクエリおよび単一のスイープにおいてヒープ割り当てを回避します。

  • movable な InstancedStaticMeshComponents において 128 より大きいインスタンス インデックス上のコリジョンを修正しました。

  • TriMesh と HeightField にオーバーラップする際の Depenetration Vector を改善しました。

    • これまでは、FaceIndex が有効な場合に、供給される Impact Normal を試しに使用してみましたが、これは、エッジから離れるのではなく、エッジの内側にいて、法線方向に動こうとすることになります。

    • 現在は、誇張テストとともに MTD を使用することによって、Depenetration Vector を得ています。

  • 物理のブレンドに関する問題を改善しました。

    • これによって、ルートボーンが Identity ではない場合に生じる問題が修正されました。

    • これによって、物理アセットのルートボーンがメッシュのルートボーンではない場合に生じる問題が修正されました。

    • コードを整理して、static 変数ではなくローカル変数を使用するようにしました。

プラットフォーム

  • New:r.MobileContentScaleFactor を 0 にして使用できる機能を追加しました。これによって、iOS および Android のネイティブのフルの解像度を使用できることになります。これは iPhone 6 (以上) において、スケールダウンされることになるフルの仮想解像度 (2208x1242) ではなく、ネイティブの解像度 (1920x1080) を得るための最も良い方法です。

  • New:ICU データを読み込む前に ICU がエラーをローカライズしようとすると (特に、-filehostip を使用した場合) 起きるクラッシュを修正しました。

  • New:Shootergame の認証パスから初めて修正を結合しました。OSS システムに関する多くの問題を修正しました。

  • FLightmassProcessor::BeginRun() を変更して、Windows 上と同じく、Mac および Linux 上で常に Development ビルドの UnrealLightmass を使用するようになりました。

  • Windows AVIWriter における AVI 拡張機能を修正しました。

  • Android、iOS、Linux について、Http Request をキャンセルすると、意図したとおりにリクエスト オブジェクトが除去されるようになりました。

  • cookonthefly を使用すると、ファイルリストの処理から、ステージングされたビルドのディレクトリを除外します。cookonthefly の起動時間を短縮することができます。

  • CreateGuid を修正して、すべてのプラットフォーム上で一意な Guid が正しく作成されるようにしました。これまでは、Microsoft と Apple のプラットフォーム以外で、頻繁に呼び出される場合、同一の Guid が作成されていました。

Android
  • New:Google Play Store の IAP に最初のパスを追加しました。さらに変更が追加されていくことになります。

  • New:権限のないデバイスの検出、SDK とリリース バージョンのクエリを行うための Android のデバイス検出ロジックを改善しました。デバイス マネージャで OS バージョンを表示します。

  • New:Android のツールチェーンをいくつかアップデートしました。

    • Android 5.0 (SDK 21 および NDK 21) をサポートするためにアップデートしました。ただし、デフォルトでは NDK 19 を使用します。NDK 21 のヘッダをともなってコンパイルすると、5.0 以前のデバイスで動かないコードが生成されるためです。

    • インクリメンタルな APK 生成機能を実装して、最終的な .apk ファイルの生成にかかる時間を削減しました。(コンパイルおよびパッケージ化時に)

    • UnrealBuildTool コードをアップデートしなくても Java ライブラリを簡単に追加できる機能も加わりました。(lib を\Build\Android\JavaLibs に置くだけです。これは、私たちが Google を Engine\Build\Android\Java\JavaLibs に置いているのと同様です。)

    • APK 生成コードを変更して、大量に表示される出力を非表示とし、もっと有益な進行情報を表示するようにしました。

  • Android のロギング機能を改善しました。ログ メッセージを改行で分割し、バッファの制限に対応しました。

  • JNI の呼び出し (AndroidThunkCpp_IsMusicActive) を修正して、CallBooleanMethod を使用するようにしました。

  • マイナスのデルタ タイムによる致命的なエラーを削除しました。(Android デバイスのいくつかで起きていました。)

  • Google Play のサインインをキャンセルできない場合がある問題を修正しました。

  • for distribution (配布) モードで Android 用ゲームを作成する場合に生じるエラーを修正しました。

  • Android ADPCM サンプルに関するループと再生の問題を修正しました。

iOS
  • New:ゲームが対応する最低の iOS のバージョン、および、サポートされている機種を指定できるようになりました。これらの設定は、Project Settings (プロジェクトの設定) の iOS セクションで可能です。

  • New:モバイル プロビジョンと署名証明書が iOS Project Settings から指定できるようになりました。[Install Provision](プロビジョンのインストール) または [Install Certificate](証明書のインストール) ボタンをクリックすると、選択したアイテムがインストールされます。

  • New:iOS で C++11 のサポートを有効化しました。

  • New:iOS 用の Facebook SDK を 3.16 にアップグレードしました。

  • iOS and Mac Media Player を追加しました。これによって、ユーザーはゲーム内のスレート テクスチャ上にムービーをストリームできるようになります。

  • New: iPhone6/6+ 解像度のサポートを追加しました。

  • New:Tappy Chicken のために Metal のサポートを追加しました。(少なくともバッテリー使用が削減されます。)

  • New:• Metal がサポートされていないデバイス上で Metal のみのアプリを実行する際に表示されるオンスクリーン メッセージを追加しました。(App Store では許可されていないはずですが、依然として非 Metal デバイスでアプリを入手することができます。)

  • New:iOS 用の Shipping および Test の設定に、arm64 の実行ファイルが含まれるようになりました。これは、2 月になると App Store にアプリを置くために必要となります。それまでにユーザーの皆さんに大きくなるサイズに慣れていただきたいという意図で行われた措置です。

  • New:プロビジョンと署名証明書の検出のために IPhonePackager が Mac 上で使用されるようになりました。これによって、PC と Mac 両方のワークフローのためのコードパスが統一されるプロセスが開始されます。

  • New:iOS framepacer を追加しました。これによってユーザーは、iOS frame ticker とレンダリングをどのくらいの頻度で同期させるか指定できるようになります。

  • New:Receipt (受け取り) が、iOS のためのアプリ内課金のペイロードの一部として返されるようになりました。

  • New:Copy Repository (レポジトリのコピー) 機能が、UFE の iOS デプロイ ステージに追加されました。

  • New:デプロイの方式に Copy Repository が選ばれている場合に、UFE の追加コマンドライン引数のファイルを使って、デバイス上で起動するためのコマンドラインを指定できるようになりました。

  • サンプルの名前がランチャーから変更されていた場合に Xcode のプロジェクト生成に関して発生する問題を修正しました。不正なスキームが生成され、コード署名に関する問題を引き起こしていました。

  • iOS デバイスでランドスケープ モードを使用すると生じるクラッシュを修正しました。

  • モバイル プロビジョン ファイルから UTC 時間を適切にパースできるようにしました。有効なプロビジョンを正確に検出できるようになります。

  • IPhonePackager をアップデートして、インストールされているモバイル プロビジョンのバンドル ID (bundle identifier) が、それに対応するゲームのバンドル ID と合致しない場合に、より適切なメッセージを出すようにしました。

  • Stat Macro の名前を変更することによって、Apples Core Animation API のものと一致しなくなる問題を回避しました。

  • Xcode から iOS にデプロイする際に、dSYM ファイルを生成できるようになりました。

HTML5
  • New:メソッドを追加して、HTML5 で Stack Walking を利用できるようにしました。

  • New:Emscripten SDK を 1.25 にアップデートしました。

  • New:HTML5 のために ICU (International Components for Unicode = Unicode 国際コンポーネント) を有効にしました。

  • HTML5 と Chrome のために Launch On を修正しました。

  • HTML5 でキーリピートが機能しない問題を修正しました。

  • HTML5 によって使用される Python exe が emscripten config ファイルから読み込まれるようになりました。見つからない環境変数 PYTHON が使用されている場合、empty の時は PATH が探されます。

Linux
  • New:透明のウィンドウを実装しました。

  • Core 3.2 GL Profile が Linux のツールを使用するために適切なものとなりました(これまでは、互換性機能が使用されていました)。

  • モジュールのバージョンが一致しないために (bogus) モジュラー型専用サーバーを起動できない問題を修正しました。

  • 専用サーバーの複数のインスタンスが互いのログに対して不具合を起こす問題を修正しました。

  • 空白をともなったパスに位置するライブラリへのリンクを修正しました。

  • Linux で見つからないプラットフォーム固有の機能を追加しました。

  • 127.0.1.1 アドレスハックに起因して Debian において発生する接続問題を修正しました。

  • Linux on ARM のための (未サポートの) サードパーティ製ライブラリを追加しました。

  • Linux on ARM (未サポート) のためにコンパイルで必要になるファイルを追加しました。

  • UBT が clang 3.4 および gcc の使用を拒否します。

Mac
  • New:* Mac OS X のフルスクリーン モードのためのサポートを完全に実装しました。

    • OS X のフルスクリーン モードによって、ディスプレイの現在の解像度を取るのではなく、解像度を指定できるようになりました。

  • New:Project Preferences (プロジェクトの設定) で Mac 用のスプラッシュスクリーンとアイコンをカスマイズできる機能をサポートしました。

  • New:Mac 上で、GameStop バージョンの Xbox 360 コントローラーのためのサポートを追加しました。

  • New:OS X 10.10 Yosemite 上で、ウィンドウを閉じる/最小化/ズームするボタンの外見をネイティブのものにしました。

  • Yosemite 上で必要とならなくなった OpenGL のワークアラウンドを無効にしました。ただし、Mavericks 上では依然として使用されます。

    • depth-stencil clears および depth-fetch-during-depth-test を結合したものが、AMD 7xx0 および Dxx0 GPU で機能するようになりました。

    • Intel カード上で、ブレンド ステートへの変更のフラッシュが必要なくなり、それらの GPU におけるパフォーマンスが著しく改善されました。

  • Yosemite において、破損したスケルタルメッシュが NVIDIA のカードでレンダリングされる問題を修正しました。

    • 基盤となるバッファが変更された場合は必ず SRV が再バインドされることになります。パフォーマンスへの影響はないはずです。

  • new 演算子のオーバーライドとシステムのライブラリ間における不正なインタラクションによって Yosemite で報告されているクラッシュを修正しました。

  • OS X 上での起動プロセスを変更して、クラッシュするのではく不具合の報告をするようにしました。

  • Mac OS X 上で、フルスクリーン モードに繰り返し入ったり出たりすると、タイトルがついたウィンドウがスクリーンをさまよう問題を修正しました。

  • OS X 上で、高解像度のスクリーンショットを撮るとクラッシュする問題を修正しました。

  • Mac OS X 上で、keydown/keyup のメッセージ処理順序を反転させて、スレートが OS の前にメッセージを処理する機会を得られるようにしました。

  • ビューポートが常に key-down と key-up のペアを受け取るようにするとともに、私たちが誤って menu key-equivalents をアクティベートしないようにしています。

  • Mac OS X 上で、ウィンドウ メニューに項目が正しく入っていない問題を修正しました。

  • Mac OS X 上の別ゲーム スレッドのイベント ディスパッチ機能を書き直すことによって、カスタムの実行ループ ソースを使用し、デッドロックが生じるリスクをいくつか回避しました。

  • OS X のシステムのモーダル ダイアログ入力を修正しました。システムのモーダル ダイアログがアクティブであることを示すために、MacApplication でフラグをセットしました。

  • OS X 上で終了リクエストをキャンセルしてから Cocoa の背後で終了するのではなく、適切な遅延メカニズムを使用して、Cocoa が、アプリケーションを破棄する前に、別ゲーム スレッドの終了を待つようにさせます。

  • UE4 のアプリケーションは、シャットダウン、再起動、ログアウトのリクエストをもうキャンセルしないはずです。

  • OS X 上で、ウィンドウが閉じた後でも再度表示されることがないようにしました。

  • Play-as-Client のためにゲームを起動する時にコマンドラインの引数を正しくエスケープします。これによって、正しい表示モードで開かれるようになりました。

  • OS X 上で、UE4 のアプリケーションがフォーカスを失い、モーダルのウィンドウが通常のウィンドウのレベルまで押し下げられると、フォーカス取得時にウィンドウが回復されて、他のアプリケーションに重なってフロート表示されないようになります。

  • クラッシュしたアプリケーションにおいて project and ensure がハングアップを引き起こすことなく、エディタ起動時に OS X 上でクラッシュしたアプリケーション名をレポートする機能を修正しました。

  • FMacWindow イベントの誤ったオーダー想定を修正して、ウィンドウを開いた時に正しい動作を確保しました。

  • クラッシュ ビデオがあれば、OS X 上のクラッシュ レポート フォルダにコピーします。

  • エディタがアクティブではない場合に、ウィンドウの順序が変わる問題を修正しました。

  • 他のアプリからエディタのウィジェットにドラッグされたテキストの処理について修正しました。

  • 初期の位置を不正確に設定することによって引き起こされる、メニューおよびツールチップのアニメーションに関する問題を修正しました。

  • エディタの実験的な設定でアイテムを有効または無効にした場合に Window メニューのコンテンツが更新しない問題を修正しました。

  • メニューバーからメニューを開いた時にエディタがフリーズする問題を修正しました。

  • ソース管理のログイン ダイアログが他のウィンドウの背後に表示される問題を修正しました。

  • マチネは、拡張子が .avi ではなく .mov の動画を保存するようになります。

  • チュートリアル エディタのウィジェット ピッカーでクラッシュする問題を修正しました。

  • Background エディタ オプションの Use Less CPU (CPU使用量を減らすオプション) は、異なるユーザーへの素早い切り替え後に CPU の使用量を減らすようになりました。

  • サブメニューに項目が正しく入っていない問題を修正しました。

  • バイナリ:Mac 上で、エディタが起動した時にランチャーがすでに動いていて非表示になっている場合にはランチャーをアクティベートしません。

  • Mac 上で Cmd+W によってエディタを終了させようとするとフリーズする問題を修正しました。

  • トラックパッドを使用しながら W/E キーを押しても、エディタ ビューポートにおけるアクティブのウィジェット モードが変化しなくなりました。

  • openFile に関する問題 (無効な引数を使って呼び出すと別のプロセスを発生させる) を修正しました。

  • エンジンのコードをアップデートして、OS X 10.10 SDK を使って正しくコンパイルできるようにしました。MacToolChain に SDK の検出機能を追加しました。

  • OS X 上で、エディタ内でさまざまなウィンドウのための明示的なウィンドウ レベルを指定します。これによって、モーダル/ツールチップ/メニュー ウィンドウは最上部に、親をもつウィンドウまたはユーティリティ ウィンドウ、通常のウィンドウは、下部にきます。

Playstation 4
  • New:SN-DBS (分散ビルドシステム) のための初のサポート。SN-DBS がインストールされておりかつ Incredibuild が使用可能/有効になっていない場合に、PS4 のためにコンパイルするために使用されます。

  • New:BC4 テクスチャのサポートを追加しました。

  • New:Visual Studio デバッグ ビジュアライザーのために PS4 と互換性のある .natvis を追加しました。Extras\VisualStudioDebugging\PS4UE4.natvis を SCE\orbis-debugger にコピーします。

  • New:PS4 のための Project Settings (エディタ内の) によって、各プロジェクトのためのさまざまなコンパイル時間のオプションがエクスポーズされるようになりました。RazorCPU のサポート、GPU Debugger のサポートなど。

  • 1 つのビジュアライザーで複数のタイプが natvis によってサポートされていないために FWeakObjectPtr ビジュアライザーが機能しない問題を修正しました。

  • GBufferFormat が高精度に設定されるとランダムに発生するスクリーン上の不具合を修正しました。

  • Shootergame の certification パスの最終修正。OSS の呼び出しによる非同期タスクに関するさまざまな問題を修正しました。

  • 動的なキューブマップ反射のキャプチャが破損するバグを修正しました。

  • UFE から起動されたビルドを動作させている PS4 の電源を切ると、UFE がクラッシュする問題を修正しました。

  • VS2013 しかインストールされていないシステムにおける VSI 検出とプロジェクトの生成に関する問題を修正しました。

  • コマンド バッファが 4MG を超えると PS4 で GPU が潜在的にハングアップする問題を修正しました。

  • 誤った配列スライス/非 cmask 2D テクスチャのための mip ベースのクリアに関する問題を修正しました。

Xbox One
  • New:ジオメトリ シェーダーがオンチップ メモリを使用するようになりました。これにより、ジオメトリ シェーダーが使用される場合に、帯域幅が節約され GPU を高速化されることになります。

  • DirectX のセッション ステートにおけるメモリ リークを修正しました。

  • Xbox One のビルドのために、June 2010 DirectX インストールへの依存を取り除きました。

  • いくつかのコードからノーブレークスペースを削除しました。これによって日本語 Windows でコンパイルが可能になります。

  • ムービー ストリーマーによって使用される XAudio2 デバイスのための SHAPE の使用を取りやめました。サードパーティによるオーディオを阻害していたためです。

  • DirectX のセッション ステートにおけるメモリ リークを修正しました。

  • Live セッションを作成する際に発生する可能性のある Use After Free エラーを修正しました。

  • ホストが切断した後で Live セッションに参加しようとすると発生する可能性のあるクラッシュを修正しました。

  • 例外をキャッチできないために生じる可能性がある、Live オンライン サブシステムにおけるクラッシュを修正しました。

レンダリング

  • New:毎フレーム更新するシーン キャプチャが、オクルージョン クエリの恩恵を受けるようになりました。

  • New:コンポーネントに [Self Shadow Only](セルフシャドウのみ)を追加しました。(例: ワールドにシャドウがキャストされない、ファーストパーソンのセルフシャドウイングの武器)

  • New:Ambient Occlusion の静的な量を Project Settings (プロジェクトの設定) で調整できるようになりました。これによって、ベイクされているライトを使用しない場合にパフォーマンスが向上します。

  • New:サブサーフェス スキャタリングのビジュアルのクオリティを改善しました。(半分の解像度のアップサンプルにおいてアーティファクトが減少。より明瞭な非サブサーフェス)

  • New:r.ProfileGPU.Root を追加しました。これは指定されたルートまで階層をフィルタリングするために使用することができます。

  • New:DX11 上でレンダリングのためにキューに格納できるフレーム数を設定するために使用する RHI.MaximumFrameLatency。

  • New:Visualize HDR ビュー モードによって、ヒストグラム バケットがカラー表示されるようになりました。

  • New:ゲームのための D-Buffer 要件をエクスポーズする新たなプロジェクト設定。

  • New:Scene Capture アクタのための表示フラグを設定するためのサポートを追加しました。これによって、Scene Capture のための半透明や動的シャドウイングといった機能を無効化できるようになります。また、これらは、異なる Scene Capture アクタについて個別に調整できます。

  • New:スケーラビリティ ini r.EmitterSpawnRateScale に新たな CVar を追加しました。これは、グローバル スケールとして、スポーン モジュールにおいて bApplyGlobalSpawnRateScale が true に設定されているエミッタすべてのスポーンレートに適用されます。bApplyGlobalSpawnRateScale のデフォルト値は true です。

  • New:Distance Field AO の最適化。

    • 距離フィールド表現をともなわないオブジェクト (キャラクター) が DFAO を受け取らなくなりました。これは、きわめて大きな補間コストがかかっていました。

    • 背景は補間スプラット パスからステンシル アウトされます。

    • サーフェスのキャッシュ リソースは、現在の解像度のワーストケースに基づいてアロケートされ、メモリを節約し、オーバーフローを防ぎます。

  • New:反射キャプチャが更新されるとスカイライト キャプチャも更新されるようになりました。

  • New:GPU エミッタが、イベントのスポーンをサポートするようになりました。

  • New:更新可能なテクスチャを追加しました。毎フレーム簡単にテクスチャに書くことができます。

  • New:Cylinders を描画する際、LifeTime パラメータが LineBatcher に送られます。

  • New:SlopeMask: メッシュのスロープをマスクするために使用するマテリアル関数です。テレインのテキスチャリングとオブジェクトの上に雪を追加する場合に役立ちます。

  • New:MatLayerBlend_OverrideOpacity: Opacity をオーバーライドするマテリアル レイヤー関数です。

  • New:MatLayerBlend_ModulateSpecular: Specularity 属性を調節するマテリアル レイヤー関数です。

  • New:VectorDisplacement: xNormal でレンダリングされるベクタ ディスプレイスメントを使用するためのマテリアル関数を追加しました。

  • New:SplineThicken: 円の法線を生成するために使用される UV をオーバーライドするための新たな入力が追加されました。髪を処理する場合に、1 つのシートに複数の円柱をもつ場合に役立ちます。

  • New:Metal シェーダー上で ddx/ddy 関数をサポートするようになりました。

  • New:UPrimitiveComponent::bRenderInMainPass を変更しても効果が出ない問題を修正しました。プロパティを SetRenderInMainPass 関数に差し替えました。

  • New:cvar オーバーライド r.SceneCaptureResizeMethod を追加しました。シーン キャプチャのレンダリング ターゲットがゲームモードでクランプされないようにします。

  • New:スカイライト コンポーネントのための SetOcclusionTint および SetMinOcclusion ブループリント関数。

    • SetCastShadows がスカイライト コンポーネントにアクセスできるようになりました。

  • New:マテリアル エディタで重視されていないコネクタが、かなり明るく描画されるようになりました。コメントの背景のビジビリティが向上します。

  • New:MatLayerBlend_TenLayerBlend:マテリアル レイヤーが扱いやすくなるノードです。最大 10 個のレイヤーをブレンドできる修正済み関数ノードです。レイヤーの入力またはマスクを使用しない場合は、コンパイラが最適化して取り除きます。

  • New:DFAO のアート的制御のためにスカイライトに OcclusionTint, MinOcclusion を追加しました。

  • New:新たな cvars の名前を変更し、r.Shaders.Optimize および r.Shaders.KeepDebugInfo としました。

  • New: PostprocessInput0..6 のために SceneTextures にフィルタリングされたオプションを追加しました。OpenGL 上ではまだ機能しません。

  • New: 新たな PostProcessMaterial の位置をエクスポーズすることによって、トーンマッパの代わりとします。これは、来るべきポストプロセスの変更の基礎となるものです。

  • New:デカールのための D-buffer のアプローチが Project Setting としてエクスポーズされました。

  • OpenGLRHI において null テクスチャを設定することによって、D3D と適合できるようにしました。また、複数のクラッシュ バグを修正しました。

  • シャットダウン時のクラッシュを避けるために、OpenGLTexture および SlateRHIResourceManager における破棄された RHI へのアクセスを回避するようになりました。

  • GSystemResolutionが、作成されているオブジェクトに間に合うようにセットアップされない場合があり、UTextureRenderTarget2D のサイズが 0,0 になる問題を修正しました。

  • Flowmap マテリアル関数: ミップマップの調整を無効にする機能を追加しました。これによって、この関数がワールド ポジションのオフセットまたはディスプレイスメントで使用できるようになります。

  • パーティクルの破損を修正しました。

  • メイン パスでレンダリングされていないオブジェクトが、まだモーションブラーに影響を与える問題を修正しました。

  • モバイル プロジェクトにおけるシーン キャプチャを修正しました。

  • スカイライトがない場合であっても、黒いライトマップが破棄されるようになりました。

  • 半透明サブサーフェス光源処理を修正しました。

  • GetDynamicMeshElements によるエディタのプリミティブ深度テストを修正しました。

  • アーティファクトにより、DFAO 補間深度テストを無効にしました。また、キューブマップが指定されていない状態でライティングをビルドすると発生するスカイライトのクラッシュを修正しました。

  • DFAO からまれに生じる GPU のハングアップを修正しました。

  • 分割スクリーンで使用する場合の、Screenspace Subsurface Scattering (スクリーン空間サブサーフェス スキャタリング) を修正しました。

  • サブサーフェス プロファイルのクオリティを改善しました。(半分の解像度のアップサンプルによりアーティファクトが減少しました。)

  • 単一の float がマテリアル内でサブサーフェスのカラーとして供給される場合に生じる問題について修正しました。

  • ライトマスにおけるマテリアルのプロパティが、エクスポートされる前に有効な範囲にクランプされるようになります。フォトンマッピングに関して光の爆発を防ぎます。

  • ライトマスにおけるマテリアルのプロパティが、ソースにおいて有効な範囲にクランプされるようになります。ALU が少し追加されますが、クロス プラットフォームにおける互換性と整合性が改善されます。

  • 半透明のマテリアルをライトマスにエクスポートする際も DiffuseColor の入力が使用される問題を修正しました。

  • ヒストグラム シェーダーを最適化しました。特に、AMD の GPU と高解像度についての措置です。

  • Fog インスキャタリング指数が 1 にクランプされなくなりました。

  • シャドウのパスが、GetDynamicMeshElements をともなって適切に実装されました。

    • これまでは、メインビューのメッシュを再利用していましたが、シャドウビューのメッシュがメインビューからは見えない場合がありました。

  • 法線がマッピングされたメッシュ パーティクルがメッシュのスケーリングに関して正しく動作しないバグを修正しました。

  • 並列レンダリングに関する小さな修正。Xbox の RHI のためのコンストラクタを改善しました。コメントおよび不適切な部分を削除しました。並列シャドウを切りました。すべてのプラットフォーム上で反射キャプチャの前にフラッシュします。

  • シャドウおよび並列レンダリングのためにステンシルのクリアに関するバグを修正しました。

  • togglerhithread を修正しました。

  • シェーダーの再コンパイルについて修正しました。

  • 並列レンダリングに関する小さな修正。RHI のスレッドのためにバイパスがただちにラッチされるようになります。また、書き込みアドレスがない場合には PS4 上でステンシルがクリアされなくなります。

  • ワイヤフレームに切り替えてから戻した後で、ワイヤフレームでメッシュ エミッタのレンダリングが継続するバグを修正しました。

  • 並列レンダリング ― PS4 および Xbox One における 2 件の深刻な競合状態を修正しました。GPU のハングアップなどの問題を引き起こしていました。

  • OpacityMask と Masked のマテリアルが、マテリアルの属性を使用する場合に正しく動作するようにしました。

  • Light および SkyLight コンポーネントにおいて SetIntensity のために UFunction のリダイレクトを追加しました。これまでこの関数は、SetBrightness という名前でした。

  • Windowed Fullscreen モード (ウィンドウ表示によるフルスクリーン モード) を修正しました。これによって、不正にウィンドウがスクリーンのコーナーに表示されることなく、ネイティブのデスクトップよりも小さい解像度を指定できるようになります。

  • null の RHI を使用すると発生するクラッシュを修正しました。

  • モバイル プレビュー モードでのガンマ補正に関する問題を修正しました。スレートのアイテムが不正にレンダリングされていました。

  • FPrimitiveSceneProxy::GetScene() を変更して、ポインタではなく参照を返すようにしました。

  • RHI スレッドでベロシティ マップのレンダリングが正しく動作しないバグを修正しました。モーションブラーが強調される問題が生じていました。

  • スキンキャッシュで BUF_VOLATILE の使用方法が不適切であった問題を修正しました。BUF_VOLATILE のライフタイムが 1 フレームになりました。

  • UTextureDynamic2D を修正して、役に立つ静的な作成関数をもつようにしました。

  • プルリクエスト #284 により、パーティクルを著しく最適化しました。

  • Initial Rotation モジュールの使用と連動して、PSA_Velocity と PSA_AwayFromCenter に関する問題を修正しました。

  • ISlateViewport Tick 関数にジオメトリと現在時間を追加しました。

  • 不適切なコリジョン関連のプロパティを Billboard と MaterialBillboard コンポーネントで非表示にしました。

  • XboxOne ディファード コンテキストに関する作業が進行しています。

  • PC 版の分割 d3d11rhi から Xbox を削除しました。

  • 並列レンダリング ― RHI スレッドをサポートするプラットフォームにおいてデフォルトで有効にしました。

  • Xbox RHI を分割しました。Xbox One のためのディファード コンテキスト、parallel velocity rendering (並行ベロシティレンダリング) を修正し、RHI スレッドをサポートするプラットフォームにおいてデフォルトで再有効化しました。

  • World Aligned Material 関数をアップデートしました。共有テクスチャ サンプラーを使用するようになりました。

  • GitHub のプルリクエスト #68。サードパーティによるオクルージョンのソリューションのためのシンプルなインターフェイス。

  • DEC_* マクロを描画イベントから削除しました。

  • エディタまたはゲームである種のプロジェクトを起動すると生じるクラッシュを修正しました。

  • r.UseDiffuseSpecularMaterialInput を削除しました。(通常、使用されておらず、GBuffer の最適化を阻害していました。)

  • メイン パスでレンダリングされていないオブジェクトでもモーションブラーに影響を与える問題を修正しました。

  • ある種のポストプロセス エフェクトが有効になっている場合に、1 ピクセルの黒い境界線がスクリーンショットに表示される問題を修正しました。

  • コンポーネントの mobility の設定を使用して、テクスチャのためのストリーミングの方式を改善しました。

  • エディタのテクスチャ ストリーミングのためにパーシスタント レベルが常に登録されます。ランドスケープはすべての従属テクスチャをストリーミングのために登録します。

  • ランドスケープの高さマップ テクスチャのために TexelFactor の計算を修正しました。高さマップ テクスチャのストリーミングを改善しました。

  • Metal が Shader Resource View パラメータをサポートしました。

  • Metal は、フィーチャーレベルの ES 3.1 として動作しています。

  • 一部のクロス コンパイル ソース ファイルを移動しました。

  • hlslcc*.exe を CrossCompilerTool.exe と差し替えました。

  • シェーダーのクロスコンパイラーのための OpenGL バックエンドが ShaderFormatOpenGL に常駐するようになりました。

  • シェーダーのクロスコンパイラーのための Metal バックエンドが MetalShaderFormat に常駐するようになりました。

  • Metal シェーダー バックエンドが GLSL バックエンドを使用しなくなりました。FramebufferFetchMRT() intrinsic を追加しました。

  • GRHIFeatureLevel は非推奨です。

更新ノート

C++ API の変更

  • UMaterialExpressionTextureSample および UMaterialExpressionTextureSampleParameter の ConstMipValue の値、ならびに、UMaterialExpressionIf の ConstAEqualsB の値には、これまでそのまま使われていましたが、今回、コンパイラによって加工されるようになりました。そのため、マテリアルに何か妙なことがあったら、まずこれらの値をチェックしてみてください。

  • 新たな GENERATED_BODY マクロの使用に切り替えると、再定義コンパイラ エラーが生じる可能性があります。この問題を修正するためには、以下のどちらかを実行します。

    • ヘッダファイルで FObjectInitializer コンストラクタを宣言する。または、

    • ソースファイルから FObjectInitializer コンストラクタの定義を削除する。(デフォルトのコンストラクタしか実行しない場合)

    • GENERATED_BODY() マクロによって一様ではない保護レベルが保存され、古いマクロは常に public に設定されていたため、保護レベルを変更する必要が生じる場合があります。

  • 非推奨の警告を回避するためには、コードのクラス名を変更しなければならない場合もあります。

  • すべての SCOPED*DRAW_EVENT* 関数がイベント カラーを略するようになりました。

  • GetBoneLocation と GetBoneQuaternion の API を変更しました。

  • 異なる Montage アセットを同時に制御するために、すべての Montage API が optional の Montage ポインタを受け取るようになりました。

  • ULevelBase が除去されました。ただし、すべてのものは ULevel をとにかく継承/参照してきたはずです。

  • C++ において現在使用している AReverbVolume を AAudioVolume に変更しなければならなくなります。

  • GetBoneLocation、GetBoneQuaternion を変更して、int ではなく bone space enum を使用するようにしました。

  • AnimMontage の bEnableRootMotionTranslation と bEnableRootMotionRotation を結合して、AnimSequence の bEnableRootMotion に移動しました。AnimMontages 上には値が依然として存在していますが、使用すべきではありません。

    • UAnimMontage::Advance が、ルートモーションをブレンドすべきか否かを指定するフラグを受け取るようになりました。

    • UAnimSequence::ResetRootBoneForRootMotion が、所有している FAnimExtractContext の代わりに、直接 ERootMotionRootLock::Type RootMotionRootLock のための値を受け取るようになりました。

  • デリゲートを参照する API が、異なる修飾されたリンカ シンボルをもつようになりました。

    • 内部のデリゲート実装タイプ (例: TBaseDelegate_NoParams) を参照するコードがコンパイルされなくなります。また、これに相当する DECLARE_* マクロに差し替えるべきです。

  • RemoveFromViewport が非推奨となりました。RemoveFromParent を使用してください。

  • InterfaceCast が非推奨となりました。代わりに cast または dynamic_cast を使用してください。

  • CopyConstructItems と RelocateItems が非推奨となりました。

    • これらは、ConstructItems と RelocateConstructItems に差し替えられるべきです。これらは、異なる型間での生成/リロケーションをサポートしています。

  • FAnimNotifyEvent StartTime が非推奨となりました。GetTime() および SetTime() メソッドに差し替えられました。

    • FBranchingPoint DisplayTime が非推奨となりました。GetTime() および SetTime() メソッドに差し替えられました。

    • FCompositeSection DisplayTime が非推奨となりました。GetTime() および SetTime() メソッドに差し替えられました。

  • API の変更 (変更されなければなりません):

    • FViewport::CaptureJoystickInput(bool Capture) が FViewport::SetUserFocus(bool bFocus) に名称変更されました。

      • EKeyboardFocusCause が EFocusCauseに名称変更されました。

      • FKeyboardFocusEvent が FFocusEvent に名称変更されました。

      • FKeyboardEvent が FKeyEvent に名称変更されました。

      • SWidget::OnKeyboardFocusReceived(...) が SWidget::OnFocusReceived(...) を使用します。

      • SWidget::OnKeyboardFocusLost(...) が SWidget::OnFocusLost(...) を使用します。

      • SWidget::OnKeyboardFocusChanging(...) が SWidget::OnFocusChanging(...) を使用します。

      • SWidget::OnControllerButtonPressed(...) が SWidget::OnKeyDown(...) を経由するようになりました。

  • UGameInstance::InitPIE が削除されました。UGameInstance::Init が PIE と スタンドアロンのために呼び出されます。

  • このアップグレードには、IHeadMountedDisplayInterface への小さな変更も含まれています。このインターフェイスを使用している場合は、新たな関数シグネチャに合わせるように実装をアップグレードしてください。

  • GVolumeMultiplier を削除しました。これに相当するものを FApp に追加することによって、config からフォーカスされていないボリューム マルチプライヤをロードするためのコードが含まれるようにしました。

  • FPrimitiveSceneProxy::GetScene() が FScene への参照を返すようになりました。* 多くのコードではシーンの存在が前提とされているので、このことによって、それがよりしっかりとしたものになりました。プロキシを作成する際にシーンが有効であることを確認する check() を追加しました。

  • Media.h の代わりに、実際に使用するインターフェイス ヘッダファイルを使用してください。(すなわち、IMediaPlayer.h または IMediaTrack.h またはその両方)

  • ApplyRequestedMove() のパラメータが再編成されました。また変更が加わり、Friction と Braking を含むとともに、すべて out パラメータを最後にもつようになりました。

  • 変数または関数の中には、削除または名称変更されたものがあります。

    • 不適切な bGravityEnabled フラグをさまざまなベロシティおよび加速度の関数から削除しました。

    • 古い CalculateVelocity() メソッドを非推奨として、ComputeVelocity() に名称変更し、クラス内の他の関数に合わせました。

  • CharacterMovementComponent::AdjustUpperHemisphereImpact() と UpperImpactNormalScale を非推奨としました。

    • AdjustUpperHemisphereImpact() の実装によって、ComputeSlideVector() がオーバーライドされなければなりません。

  • THRESH_VECTORS_ARE_PARALLEL を THRESH_NORMALS_ARE_PARALLEL に名称変更しました。また、その意味を、比較対象の角度のコサインに変更しました。

    • 古い許容範囲は非常に不明瞭でした (11.4 度)。新しい許容範囲は約 1 度です。

  • FindAirControlImpact() を改変して、現在とルックアヘッド タイムを識別できるようにしました。また、ベロシティと重力を受け取るようにしました。ただし、この関数は、現在使用されていないため非推奨となりました。

  • 不適切な bGravityEnabled フラグをさまざまなベロシティおよび加速度の関数から削除しました。

    • 古い CalculateVelocity() メソッドを非推奨として、ComputeVelocity() に名称変更し、クラス内の他の関数に合わせました。

  • 空中制御に関係する CharacterMovementComponent 関数が変更されて、よりフレキシブルになりました。

    • GetAirControl() が float ではなく FVector を返すようになりました。これによって、空中制御のコードが必要に応じて不均一に振る舞うようになれます (すなわち、異なる横方向と前方)。

    • GetFallingLateralAcceleration()/GetAirControl() が、空中制御を制限するべきか否かの判定に間に合うように、先にスイープ テストを実施しなくなりました。

    • LimitAirControl() が float ではなく FVector を返すようになりました。この動作によって、水平面において加速度をサーフェスに平行にすることができたり、サーフェスから完全に離れるようにすることができるようになります。

    • 落下の動きの更新中に LimitAirControl() を複数回呼び出すことができます。

  • ユーザーは、AI API 関数の呼び出しを更新する必要が生じる可能性があります。

  • FConfigFile::CombineFromBuffer と ProcessInputFileContents から未使用のパラメータを削除しました。

  • FConfigFile::ProcessInputFileContents が、他のモジュールから呼び出せるようにするために CORE_API にセットされました。

  • 他のモジュールから使用できるように FAES が CORE_API にセットされました。

  • すべての UK2Node GetMenuEntries() 関数が、非推奨/未使用となりました。GetMenuActions() に差し替えられました。 *Emscripten SDK の必要なバージョンが 1.25 になりました。1.22 は機能しなくなります。

  • コンソール変数の使い方によっては、動作の変更が生じるかもしれません (ログのエラーに注意してください)。コンソール変数 Set() では、優先度を指定する必要があります。

  • これは Fortnite 以外のプロジェクトに使用されていないはずです。

  • ISettingsEditorModule::GetRef() を使用する代わりに、FModuleManager::GetModuleChecked("SettingsModule") を使用してください。SettingsEditor.h の代わりに、実際に使用しているインターフェイス ヘッダをインクルードしてください。

  • ISettingsModule::Get() の代わりに、FModuleManager::GetModulePtr("Settings") を使用してください。FSettingsSectionDelegates を使用しないで、新たな ISettingsSection メソッドを使って直接デリゲートをアサインしてください。

  • SWidget::RenderTransform が TOptional になりました。

  • FWorkspaceMenuStructure::AssetEditorCategory が削除されました。また、FWorkflowTabFactory::TabIcon が FSlateIcon になりました (これまでは FSlateBrush でした)。 カテゴリを修正するためには、FAssetEditorToolkit::LocalWorkspaceCategory を使用し、FTabManager::AddLocalWorkspaceMenuItem() を使って設定してください。 タブのアイコンを修正するためには、同じアイコンとスタイルを使って、FSlateBrush の代わりに FSlateIcon を作成します。 エンジンのエディタでこれらの変更についての参考情報をご覧になれます。

ブループリント

  • ロード時に、すでにある vector/rotator 型の Equal ノードに誤差許容範囲値 0.0 がアサインされます。これは、正確な同等性に基づいていたかもしれない前回の動作を保存するための措置です。

    • vector/rotator 型のための Equal ノードを新たに配置すると、新たな誤差許容範囲値がデフォルト値になります。したがって、デフォルトでは NearlyEquals (ほぼ等しい) タイプの動作をもちます。

  • 独自の UK2Nodes を実装する場合は、GetMenuEntries() から移植して、GetMenuActions()/GetMenuCategory()/GetNodeTitle(ENodeTitleType::MenuTitle)/GetTooltipText()/GetSignature() を実装する必要があります。これによって、ブループリントのメニューでノードが正しく表示されるようになります。

コア

  • デリゲートを受け取るか返す非エンジン ライブラリは、最新のエンジンコードに対して再コンパイルすることによって、正しいシンボルがインポート/エクスポートされるようにする必要があります。

  • 可変個引数のデリゲートによって、任意の数の引数または任意の数の引数を取る関数へのバインドが可能になります。ただし、まだ VS2012 コンパイラを使用している場合は、非可変個引数のバージョンのデリゲート (VS2012 でまだ使用されています) に、これまでと同じ制約が課せられます。

    • バインドされている関数の引数の上限は 8 個です。バインドされている引数の上限は 4 個です。

  • FPropertyChangedEvent のインスタンスの手動生成では、1 個の引数または 2 個の引数という形態が取られなければなりません(ただし、この種の生成はゲームコード内で生じる可能性は低いです)。

  • 英語以外の言語をターゲットにするプロジェクトについては、Project Packaging Settings (プロジェクトのパッケージ化の設定) 内にある Internationalization Preset (国際化プリセット) の設定を更新して、必要なカルチャー (言語) へのサポートを維持するようにしてください。

フレームワーク

  • FSoundParseParameters を参照している場合は、AudioComponent.h ではなく ActiveSound.h をインクルードしなければならない可能性があります。

  • OnFinishedPointerInput() を追加しました。これは、イベント処理の後、かつ、GEngine->Tick() の前に呼び出されます。SViewport と FSceneViewport は、ProcessInput() の代わりにこの関数を使用して、高精度のマウスイベントを蓄積させます。

  • EKeys::Underscore と EKeys::Quote を C++ で使用しても、期待通りに機能しなくなります。それぞれ EKeys::Hyphen と EKeys::Apostrophe に切り替える必要があります。

  • 関数 Applying および Getting ComponentInstanceData が、TSharedPtr の代わりに FComponentInstanceDataBase* を受け取る/返すようになりました。

  • InitializeComponent を明示的に呼び出していた、動的に作成されたコンポーネントが、その呼出を行わなくなりました。RegisterComponent から処理されるようになり、InitializeComponent が複数回呼び出されることに起因してアサートするようになるからです。

  • これまで FVector::Paralllel() が使用されていたケースで、方向が問題となる場合は、FVector::Coincident() を使用します。

  • 関数名は自動的に更新されますが、BT アセットを再保存することをお勧めします。

ランドスケープ

  • ランドスケープのコードがエンジン モジュールから自身のモジュールに移動しました。

Oculus Rift

  • エンジンがアップグレードされて、Oculus の 0.4.3 SDK が使用できるようになりました。お使いのランタイム インストレーションをアップグレードしてください。http://developer.oculus.com から 0.4.3 ランタイムをダウンロードすることができます。

物理

  • 以下によって、パフォーマンスが著しく改善されます。プレイヤーとインタラクトとする破壊可能なコンポーネントがあり、かつ、非同期のシーンを使用している場合は、それらが同期のシーンに置かれるように手動で設定する必要があります。

  • これはデフォルトでは無効になっています。破壊にこれを必要とすることがまれであり、パフォーマンスが大いに向上するためです。

レンダリング

  • FPrimitiveSceneProxy のサブクラスにある DrawDynamicElements が 4.7 で非推奨となり、GetDynamicMeshElements に置き換えられることに関するリマインダー。

  • hlslcc*.exe が、エンジンの Binaries フォルダで CrossCompilerTool.exe に置き換えられました。

  • 直接 bRenderInMainPass を設定しているコードは、それに代わって SetRenderInMainPass( value) を呼び出す必要があります。

  • GRHIFeatureLevel の使用は、ワールドまたはビューの FeatureLevel プロパティに差し替えられる必要があります。

  • r.UseDiffuseSpecularMaterialInput が削除されて、G-Buffer の最適化を向上させることができるようになりました。

  • CustomTexture ノードが完全に削除されました。以前のバージョンで機能していた回避策とともにこの CustomTexture を使用していたマテリアルは、修正される必要があります。

    • 代わって、Custom ノードが TextureObject または TextureObjectParameter の接続を受け入れるようになりました。

    • MyTex という名前の Custom ノード にパラメータを追加し、TextureObject ノードと接続すると、MyTexSampler という名前の追加サンプラー パラメータがその Custom ノードの HLSL 内で利用できるようになります。

    • Texture2DSample(MyTex,MyTexSampler,UV) などの HLSL の式を使用してテクスチャをサンプリングすることができます。

その他

  • バインディングの設定のされ方によっては、古いバインディングのせいで不具合が生じる場合があります。バインディングを Pure にして、返り値の型が一致するようにしてください。

既知の問題

  • 新たな Anim Notify のために AnimBP の EventGraph でイベントを作成できない。

    • この問題を回避するには、エディタを再度開きます。

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信