UE4のレンダリングパイプライン

UE4の描画パスについて Ver 4.18.1
http://monsho.hatenablog.com/entry/2017/12/16/012502

CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
https://www.slideshare.net/EpicGamesJapan/cedec2016-unreal-engine-4

Lightmassの仕組み ~Lightmap編~
https://www.slideshare.net/EpicGamesJapan/lightmass-lightmap-epic-games-japan

Lightmassの仕組み ~Precomputed Light Volume編~
https://www.slideshare.net/EpicGamesJapan/lightmass-deep-dive-part2-pub

なぜなにリアルタイムレンダリング
https://www.slideshare.net/SatoshiKodaira/ss-69311865

RHIの初期化

  • エンジン初期化の LaunchEngineLoop.cpp PreInit() の中から RHIInit() をコール
  • Windows であれば、WindowsDynamicRHI.cpp の PlatformCreateDynamicRHI() が呼ばれる
  • 起動時の引数やデフォルトのパラメータなどから、読み込まれる RHI が決定される

Unreal Engine 4 の Vulkan サポート

Vulkan API の歴史を遡ってみると、最初に Khronos から新しい API の発表があったのは GDC 2015 (3月) でした。自分も当時、ロサンゼルスのモスコーン・センターの会場にて発表の瞬間に立ち会っていた数少ないうちの一人でした。

それから最初の SDK 1.0 の提供が開始されたのは、約一年後の2016年2月ごろだったと思います。当時 Windows での動作は確認していましたが、Android 版は対応デバイスやOSがまだプレビューで夏頃になってようやく、正式な対応端末が出た記憶があります。

2016年6月1日リリースの UE 4.12 から Unreal Engine 4 は Vulkan のサポートが始まりましたが、この時点ではまだプレビュー版です。
http://api.unrealengine.com/JPN/Support/Builds/ReleaseNotes/2016/4_12/index.html

2016年11月15日リリースの UE 4.14 で Android Vulkan の正式サポート開始。出荷しても問題レベルに達しているとの記載あり。
http://api.unrealengine.com/JPN/Support/Builds/ReleaseNotes/2016/4_14/index.html

2018年12月 にリリースされた UE 4.21 で Linux のデフォルトレンダラーが Vulkan に変更。
http://api.unrealengine.com/JPN/Support/Builds/ReleaseNotes/4_21/index.html

Unreal Engine 4 の メモ

UE4 で言う Pawn とはチェスの駒のポーンとかのイメージ?

Spawn は配置の意味で使われる。ゲーム中に動的に何か Actor を配置したい時には SpawnActor を使う。UE4 で唯一動的に作る場合はこの SpawnActor しかない?

Actor

アクターはワールドに配置またはスポーン可能なオブジェクト。事前にレベル上に置いておけるし、動的に SpawnActor とかすることも出来る。基本的にはアイテムのような静的な prop とかに使われる。

Pawn

プレイヤーや AI コントローラからの入力を受け取れる。そのため NPC や敵を配置して動かしたい時は、これが使われる。

Character

Object <- Actor <- Pawn <- Character 継承関係。
Pawn のサブクラス。Player として使うことを想定しているため、プレイヤーのコリジョンや歩行速度などのパラメータを保持している。

Player Controller

Object <- Actor <- Controller <- PlayerController 継承関係。
プレイヤーが利用するPawn (Character)の制御を行うアクタ。ゲームパッドでボタンが押されたら、それを Pawn に通知する。