Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4 BPとC++のパフォーマンス比較検証

今年のUnreal Fest East 2019では様々なセッションがありましたが、その中でもよく話題になっていた以下のセッション。

www.famitsu.com

途中でブループリントとC++のパフォーマンスについての話があります。ブループリントの速度がC++に比べても遅いのは当然ですが、さすがにいくらなんでも差がありすぎるだろうと思って、実際に比較検証をしてみました。

『ForLoopがマクロなのでハンデになっている』という説明があるので、BPが極力不利にならないようにその部分は意地でもマクロを使わずに実装を行います。

なるべく計算量が多くなるようなアルゴリズムを採用し、わかりやすい結果がでるように最も有名なソートアルゴリズムのひとつ、"バブルソート"をC++とBP両方でやります。実際のコードとノードは以下に載せていますので、参考に。

バブルソート参考

qiita.com

続きを読む

UE4 Disaster Recoveryでエディタークラッシュ時の作業を修復する

UE4.23の新機能でDisaster Recovery(災害時回復)というものが追加されました。これまでもオートセーブ機能によりクラッシュした際に作業を以前の状態に戻したり出来ましたが、Disaster Recoveryはもっと強力なリカバリー機能です。4.23時点ではあくまでもExperimental(実験的機能)という事を念に置いて使ってみます。

ちなみに4.23のリリースノートは以下から。
docs.unrealengine.com

続きを読む

UE4 SSGI スクリーンスペースグローバルイルミネーションについて

現在Preview 8までリリースされているUE4.23から新機能としてSSGI(Screen Space Global Illumination)が導入されます。

これは4.23段階では実験的機能(Experimental)なものとして提供されており、まだ正式に使える状態ではありませんが、かなり綺麗に動いている状態です。

今回追加されたSSGIは全てリアルタイムに処理され、焼き付けられたライトマップの上に動的光源を追加することができます。UE4には既に他のGI機能がありますが、それらとも別物となります。

使い方は以下のコマンドをコンソール上で入力するだけです。

r.SSGI.Quality x

x には"1~4"の数値を入力します。0がデフォルトでこの状態ではSSGIが効いていないので、1以上の値を設定します。4が一番描画品質が高い分、描画負荷も高くなります。

ではここから実際に使ってみた画像を載せてみます。

続きを読む

UE4 Blutilityという名前が4.23からなくなるようなので色々調べてみた

これまでお手軽なエディター拡張の手段として、Blutilityという機能があることを紹介してきました。

unrealengine.hatenablog.com

unrealengine.hatenablog.com


現在4.23のPreview 3まで公開されていますが、色々と手が入っており、そもそもBlutilityという名前自体が使われなくなったようです。どうやら公式ドキュメントにも2019年7月28日現在、それについて言及されている部分はありません。4.23 Previewでこれについて言及されているのは公式フォーラム内の以下の内容のみです。

forums.unrealengine.com

Editor Utility Blueprints Updates. Utility Blueprints have been updated to improve the Editor’s extensibility with Blueprints, bringing Blueprints extensibility more in line with Python and C++ extensibility.

では具体的にどう変わったのかを調べてみました。

続きを読む

UE4 Instanced Static MeshとHierarchical Instanced Static Meshの違い

よくInstanced Static Mesh(以下ISM)とHierarchical Instanced Static Mesh(以下HISM)の違いがわからなくなるので、ここでまとめておこうと思います。

そもそも一般的にInstanced Static Meshというのは1つのメッシュをインスタンシング描画することで、Draw Callを最低限の回数行うことでCPU負荷を最小限に抑えることができる機能です。数を沢山出したいメッシュを利用する際には非常に便利なものです。

以下のような記事が詳しいので詳しくはそちらで。
qiita.com

ではここにISMとは別にHISMと呼ばれるものがUE4にはあります。これHierarchical(階層付き)ということはISMが何かしら構造を持っているということなのですが、なんのことかよくわかりません。

なのでちょっとだけ検証してみました。

続きを読む

UE4 Animation Budget Allocatorを試してみる

UE4.22からの新機能でAnimation Budget Allocatorというものが追加されました。

これは決められたバジェット(予算)内でアニメーション処理に使えるCPUリソースを自動的に調整、制限してくれるという機能です。公式のドキュメントは以下から。

docs.unrealengine.com

ただし、このドキュメントには重要な導入の仕方の部分が一切記載されておらず、このままでは利用することができません。今回は実際に試してみて動作させることに成功したのでここで解説してみます。

続きを読む

UE4 レンダリングレイヤー機能を使ってリアルタイムコンポジットする

どうも、こんにちは。今回が平成最後の更新となります。元号が令和になってもここは引き続き更新していく予定ですので、どうぞよろしくお願いします。

今回はUE4.22から導入された非常に強力な新機能であるレンダリングレイヤー機能を使ってリアルタイムコンポジットを行います。本来コンポジットはAfter Effectsなどの専用ツールを使って行いますが、UE4内でも強力なコンポジットを行う事が可能となりました。ちなみにリアルタイムコンポジットについては既に英語だけですが、ドキュメントが用意されており、こちらを読むことで今回の内容についての全容を知ることが可能です。

docs.unrealengine.com

これまでもUE4内でコンポジットするのであれば可能でしたが、それなりに手間がかかってしまっていた事と、レンダリングレイヤーが導入されたので非常に簡単に扱う事が出来るようになりました。

それでは早速使ってみましょう。

続きを読む