この記事の3行まとめ
- アンリアルエンジンにおけるベストプラクティスに関する記事がEpic Developer Community上で公開
- ベストプラクティスとされる俗説に対し、Epic Gamesスタッフが見解を示す
- 扱うトピックは「ブループリントの処理速度はC++より遅い」など
Epic Gamesは2024年10月3日(現地時間)、「Myth-busting “Best Practices” in Unreal Engine」と題した記事をEpic Developer Communityにて公開しました。
(画像はEpic Developer Communityより引用)
同記事では、アンリアルエンジンにおいて「ベストプラクティス」だとされている俗説の真偽について、Epic GamesのエバンジェリストであるAri Arnbjörnsson氏による見解が根拠とともに示されています。
記事中で取り上げられているトピックは以下の通り。
- ゲームのパフォーマンスが低下するため、Tickは使用すべきでない
- アンリアルエンジンで2Dゲームは開発できない
- ブループリントの処理速度はC++より遅い
- ブループリントにおいてCastノードは使用すべきでない
- 全てのメッシュに対してNaniteを適用すべき
- GetAllActorsOfClassは処理負荷が高い
- ChildActorComponentは問題を抱えており、使うべきではない
- アンリアルエンジンはデフォルトで全てのアセットをクックする
- リダイレクタは可能な限り生成を避けるか、早急にクリーンアップすべき
「ゲームのパフォーマンスが低下するため、Tickは使用すべきでない」という俗説に対しては、ブループリント/C++それぞれのTickにおけるオーバーヘッドを実際に測定。最も長い約3.6マイクロ秒であっても、Tickで実行される関数に要する時間と比較するとわずかなものであるとAri氏は主張します。
例えば、『Lyra Starter Game』(※)で使用されるPlayerCharacterのTickでは、CharacterMovementComponentの処理に約241マイクロ秒、PlayerControllerの処理に約125マイクロ秒かかっており、オーバーヘッドよりはるかに長い時間を要します。このことから、Tick自体にかかる処理時間はほとんどパフォーマンスに影響を与えないとしています。
※ Unreal Engine 5におけるゲームのサンプルプロジェクト
エディタ上のブループリント内のTickで発生するオーバーヘッドであっても約3.6マイクロ秒と、『Lyra Starter Game』における射撃アニメーションの処理時間(Lyra Rifle_SKM)よりも短い(画像はEpic Developer Communityより引用)
一方で、何も処理を行わないTickや、大量のアクタでTickを使用する場合ではオーバーヘッドが問題となります。「Tickを使用すべきでない」は間違いだが、不要なTickや、Tickを使うアクタの数には注意すべきだと同氏は結論づけています。
また、「アンリアルエンジンでは2Dゲームを開発できない」という俗説については、アンリアルエンジンを用いた2Dゲーム開発のチュートリアルを提供するCobra Code氏のYouTube動画を紹介し、「いくつかの制限を回避した上なら開発が可能」と述べています。
Cobra Code氏による、アンリアルエンジンにおける2Dゲーム開発について紹介されたYouTube動画
そのほかの俗説についての詳細は、Epic Developer Communityをご確認ください。
「Myth-busting "Best Practices" in Unreal Engine」Epic Developer Community