ゲームを作ったり作らなかったり

ゲームを作ったり作らなかったり。作ってる時はUE4/モデリング/レベル・サウンドデザイン等、作ってない時はインディゲーム・SteamやModの話題等。

UE4.24がリリース&気になる機能など

既に1ヶ月ほど経っていますが、UE4.24がリリースされました。

現時点で4.24.1になっています。

www.unrealengine.com

docs.unrealengine.com

今回は視覚的な影響の大きい機能追加が多めです。

 

ランドスケープ非破壊的編集機能

docs.unrealengine.com

これはいくつかの要素があり、まずハイトマップのレイヤーを複数持てるようになっています。以前のLandscape Layer Systemの事です。

バックアップとしてレイヤーを複製しておく事で、ランドスケープを編集した後にいつでも進捗を戻せるので非破壊的な編集が可能になっています。

次に、ブループリントブラシという今までのランドスケープ用ブラシをブループリントで編集出来るようになったものが追加されました。

ブループリントブラシはレベル上にアクタを配置する形でランドスケープを編集出来るので、後から位置を調整したり削除する事が出来、非破壊的なランドスケープ編集が出来るようになっています。

ブループリントブラシはLandmassプラグインで提供されるのでこれを有効にする必要があります。

また、Landmassプラグインにはプラグインコンテンツとして様々な使用例が含まれています。

ちなみに、この機能の影響かは定かではありませんが、ランドスケープからの物理マテリアル取得が出来なくなっています。

SkyAtmosphereコンポーネント

docs.unrealengine.com

SkyAtmosphereは空の表現に関する機能で、SkyAtmosphereコンポーネントをレベル上に置くだけでDirectional Lightを自動的に参照して太陽の向きに応じた空の色を計算してくれます。

Atomospheric Fogを置き換えるものと考えていいかもしれません。

参照するDirectional Lightは2つまで対応しているので太陽と月として使い分けることが出来ます。

また、Tick等で自動的にDirectional Lightに回転を加えるだけで昼夜のサイクルを再現出来ます。

但し、SkyAtmosphereはSkyLightには標準で対応していないようなのでそこだけは自分でサイクルに対応した実装をする必要があります。

Exponential Height Fogに関してはSkyAtmosphereが自動的に適用してくれますが、各自で追加する事も可能で、その場合はプロジェクト設定を有効化すればSkyAtmosphereによって個別のExponential Height Fogが制御されるようです。(ただ、試した所変化はありませんでした。)

SkyAtmosphereを使用したテンプレートはエンジンコンテンツのフォルダに含まれています。Engine/Maps/Templates

https://youtu.be/gwobU3BqY1o?t=739

こちらの動画によると負荷はPS4で~0.3ms以下とのこと。

スケーラビリティにも対応しており、エフェクト扱いになっています。

Screen Space Global Illumination

docs.unrealengine.com

Light Propagation VolumeやDistance Field Global Illuminationに次ぐ新たな間接光機能です。

スクリーンスペースなのでゲームで十分使える程度のパフォーマンスに収めつつそれなりの間接光を再現出来るのが利点でしょうか。

また、オクルージョンに対応していてSSGIを有効にすると既存のSSAOを置き換える?ようです。

但し、現時点ではSSAOが機能していないようです。

SSGIを有効化するには、プロジェクト設定で有効化する必要があります。

コンソールコマンドでr.SSGI.Enableを使うことでも切り替えることが出来ます。

r.SSGI.Qualityで品質を1~4の範囲で変更できます。

2~4は結構な負荷になるので、個人的にはSSAOがかなり粗いのを気にしないのであれば軽量な1でもいいと思います。

スケーラビリティ設定ではエフェクト扱いになっているので、エフェクトがエピックになっているとQuality 4になります。

単体の機能にしては結構負荷があるので、可能なら各自でSSGIを個別に設定できるようにした方が良さそうです。

https://youtu.be/gwobU3BqY1o?t=877

負荷はPS4Proの1080pで2.5ms以下との事。

僕が試した所、GTX1060でもそれくらいでした。Quality 4で+2.5msほど。

髪と毛皮のレンダリングとシミュレーション(ストランドベースのレンダリング)

docs.unrealengine.com

こちらはレンダリングとシミュレーションの両方を備えていて、Alembicとナイアガラを利用することが前提となる機能のようです。

DCCツール(現在はMayaとHoudiniが前提)でストランド型の髪の毛をAlembicでエクスポートし、UE4でインポートする事でシミュレーションが可能になります。

以前のデジタルヒューマンのデモでは全体でカード型の髪の毛を使いつつ、生え際等をストランド型で補う手法が使われていましたが、これは全てストランド型で髪の毛を再現するようです。

現時点ではまだビジュアル重視でパフォーマンスはこれから、という事でハイエンドPCが前提のようです。

ドキュメントでは

例えば、2080Ti 上で 1080p の解像度の「ヒューマン」グルームでは、30Hz 以上のフレームレートを期待できます

との事。

https://youtu.be/gwobU3BqY1o?t=1121

この動画によると今後はコンソールで動作するようなパフォーマンスになる予定とのことなので、最終的にはゲーム用途で使用できる機能になるかもしれません。

こちらの機能もスケーラビリティに対応しており、なんと個別の項目が用意されています。

ShadingQuality(ヘアとは書かれていないので注意)がヘア専用のスケーラビリティ設定になっています。

アニメーションの慣性ブレンド

docs.unrealengine.com

ブレンドノードの最後の項目で解説されています。

こちらはアニメーションBPのステート制御やブレンドにて補間方法をInertializeに設定出来るようになっています。

最終ポーズに至るまでのノードにInertializeノードを挟み、後は各ステートやノードのプロパティを変えるだけなので非常に簡単に対応出来ます。

ドキュメントによると、慣性ブレンドが開始されるとポーズの評価が止まってアニメーション通知が発行されなくなるようなので注意が必要です。

 

アーティストの方にとっては4.24は新機能が目白押しだったのではないでしょうか。

4.24ではSkyAtmosphereに合わせてボリューメトリッククラウドの追加も予定されていたようですが、ロードマップによると4.25に移動したようです。

 エピックの開発者の方によるとボリューメトリックプラグインとして4.25から提供されるそうで、既にGithubリポジトリには含まれておりテスト出来るようです。