負荷を事前に検討する
必要なエフェクトを作成する際、結局のところ、主要な要素を確実に示してくれる参照映像または参照画像の存在が多くの場合、重要となります。リファレンスを利用してエフェクトを主要な要素に分解することによって、制作時間を大幅に削減することができるとともに、以下のような問題に対する情報を得ることができます。
- 主要なコンポーネントは何か。パフォーマンスの配分をどのように使用すべきか。
- こうした主要な要素を実行するには、どのようなマテリアル、テクスチャ、アセットが必要となるだろうか。
- このエフェクトを実行するのにいくつのパーティクルが必要となるか。
- 最小限のマテリアルインストラクション、描画コール、エミッタを使用して、このエフェクトを作成するにはどうすべきか。
- このエフェクトはどのように利用されるのか。これは、プレイヤーに貴重な情報を伝える際に不可欠なものだろうか。あるいは、装飾的なものであって、シーンの実行速度が遅い場合に真っ先に削除すべきものなのか。
- このシーンで他に何が起こるか。表示距離はどれくらいか。現在、どのような透過処理が存在しているか。シーンがどの程度うまく実行しているか。どの程度のアクション (戦闘など) が行われているか。
こうした各問題について、情報を得るためのツールが用意されています。良好なパフォーマンスは、こうした情報の活用に帰着します。
エフェクトを作成するための代替的方法
作成すべきエフェクトがパーティクル エフェクトではない場合があります。パーティクル システムのかわりにメッシュを使用してエフェクトを作成する方が合理的な場合が数多くあります。たとえば、プロジェクトで、はるかかなたに煙と火の大きな柱が描画される場合が数回あるかもしれません。パーティクルを使用してこれらの柱をレンダリングすると、次のような複数の問題が発生します。
- ティックに基づいてエミッタを保持することに関連して、パーティクル システム更新に必要なゲームスレッド負荷。
- パーティクルの大きなグループがレンダリングされ、互いに重なるように描画されてボリュームを作成する際の GPU 負荷。
流れる水を作成する場合や、大量のパーティクルが必要となるような密度の高いボリュームを作成しなければならない場合にも、このことが当てはまるでしょう。静的メッシュの配置に関係する負荷は、パーティクル システムを配置して更新するために必要な負荷よりも、著しく低いです。静的メッシュとパーティクル システムを混在させて、非常にダイナミックな結果を得られる場合もあります。実験しながら、自分のシナリオを最もよく実現することができるソリューションを見つけてください。
有能なエフェクトアーティストは、UE4 内の複数のシステムを使用して、ビジュアルとパフォーマンスのバランスを図る方法を見つけるでしょう。