Let's Enjoy Unreal Engine

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

UE4 UMG等で日本語フォントが4.23以降で文字化けするのを何とかする

UE4.23以降で、日本語フォントをUMGのText Widgetなどで表示しようとすると文字化けが発生してしまいます。これは最初バグなのかと思っていましたが、4.23のリリースノートには以下のような文章があります。

docs.unrealengine.com

Deprecated: Legacy localized fonts are now disabled by default.
These have been "soft" deprecated since 2014, were formally deprecated (emitting a warning if used) in 4.22, and will be removed in 4.24.
They can be temporarily enabled again by setting Slate.EnableLegacyLocalizedFallbackFont to 1.
You should instead ensure that your font assets are set-up correctly by using this overview.

従来のLegacy localized fontsと呼ばれるものが、非推奨になり、デフォルトでオフになりました。4.23の時点ではまだ、"Slate.EnableLegacyLocalizedFallbackFont"を1に設定することで旧来のフォントも利用できますが、どの道4.24で完全に削除されることになります。代わりにフォントアセットを自前で用意、設定してくださいとのことですが、日本語を表示するために態々フォントを用意するのも手間です。

非推奨になったものは仕方がないので、別のやり方でなんとかしてみましょう。

続きを読む

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

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

続きを読む