この記事の3行まとめ
2023年7月24日、ユニティ・テクノロジーズ・ジャパンは『Unity ECS で高速化!とりあえずキャラを 5,000 体出してみよう!』と題した動画をYouTubeに公開しました。
本動画は、2023年5月30日リリースの「Unity 2022 LTS」で正式に実装された、Entity Component System(以下、ECS)における最適化手法について、サンプルプロジェクトを用いて解説しています。
Unity ECS チュートリアルの第2弾です。前回はパフォーマンスの話を敢えて避けましたが、今回はいよいよ高速化に取り組みます。前回は3体だけだった人形を、とりあえず 5,000 体にまで増やしてみました。ECS なら大丈夫! https://t.co/MytiuIXCqJ pic.twitter.com/WL8xJv4yJo
— ユニティ・テクノロジーズ・ジャパン (@unity_japan) July 24, 2023
ユニティ・テクノロジーズ・ジャパンによるECSのチュートリアル動画は今回で2つ目。前回の動画では、ECSの概要や、従来の設計との相違点などを紹介しました。
今回公開された動画では、ECSを活用して5,000体の人形の生成処理およびアップデート処理の最適化方法を解説しています。
動画の前半では、5,000体の人形インスタンスを生成する処理の最適化について解説。
生成処理は「SpawnSystem」のOnUpdateメソッドで実行されるよう実装しています。そこで、OnUpdateにBurstCompileアトリビュートを付けることで、3.23msかかっていた生成処理を0.559msにまで短縮できたとのこと。
なお、BurstCompileはマネージドクラスを使っていないなどの制約を満たしたメソッドにのみ使用できます。
動画後半では、各人形のアップデート処理を最適化する手法が紹介されています。
アップデート処理では、BurstCompileに加え、C# Job Systemを使って、処理の並列化を実装。
これにより、元々6.70msかかっていた処理を、0.07msにまで高速化しています。
動画では、コードの内容や各機能の使用条件などについて詳細に解説しています。動画はこちらをご確認ください。
また、動画で使用されたサンプルプロジェクト「ECS-StrawmanParallel」は、GitHubにて公開されています。
Unity ECS で高速化!とりあえずキャラを 5,000 体出してみよう!|YouTubekeijiro / ECS-StrawmanParallel|GitHub