Let's Enjoy Unreal Engine

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

UE4 誰でもわかるアウトライン入門

この記事はUnreal Engine 4(UE4) #2 Advent Calendar 2019の5日目の投稿記事です。

qiita.com

前回の記事でセルシェーダー入門を書きました。

unrealengine.hatenablog.com

こちらはセルシェーダーのみで、いわゆるアニメ絵で必須と言われているアウトライン表示は行っていません。今回はアウトライン作成に焦点を当てていきます。

今回もあくまでもシェーダー初心者に対しての軽いネタなので高度なネタを期待されている方は改めて読む必要はないかもしれませんので、あしからず。

続きを読む

UE4 誰でもわかるセルシェーダー入門

この記事はUnreal Engine 4(UE4) Advent Calendar 2019の1日目の投稿記事です。

qiita.com

さて、今年のAdvent Calendar 1発目のネタはみんな大好きなセルシェーダーについてです。と、言っても今更なネタでもありますので、普段仕事でも散々NPR系のシェーダーを作っており、本当は高度なネタも沢山知っていますが、今回はシェーダー初心者に向けたセルシェーダーの原理についての解説です。タイトルにもある通り誰でもわかる程度の内容を想定しています。

もう散々解説されているネタではありますが、意外なくらい原理を解説しているくらい記事は見かけないので、今回はあくまでもその原理を解説するという趣旨です。

続きを読む

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.

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

続きを読む