ユニティ・テクノロジーズ・ジャパン、DOTSの一部「Unity ECS」を活用した最適化について動画で解説。6.70msの処理を0.07msに短縮

2023.07.31
ニュースUnity
この記事をシェア!
twitter facebook line B!
twitter facebook line B!

この記事の3行まとめ

  • Unity ECSの最適化手法を解説する動画がYouTubeに公開
  • ユニティ・テクノロジーズ・ジャパンによるECSチュートリアル動画の第2弾
  • 動画で使用されているサンプルプロジェクトもGitHubにて公開

2023年7月24日、ユニティ・テクノロジーズ・ジャパンは『Unity ECS で高速化!とりあえずキャラを 5,000 体出してみよう!』と題した動画をYouTubeに公開しました。

本動画は、2023年5月30日リリースの「Unity 2022 LTS」で正式に実装された、Entity Component System(以下、ECS)における最適化手法について、サンプルプロジェクトを用いて解説しています。

ユニティ・テクノロジーズ・ジャパンによるECSのチュートリアル動画は今回で2つ目。前回の動画では、ECSの概要や、従来の設計との相違点などを紹介しました。

関連記事
ユニティ・テクノロジーズ・ジャパンがUnity ECSの解説動画を公開。データと処理を分離する、データ指向型のフレームワークをどう使うか
2023.07.04

今回公開された動画では、ECSを活用して5,000体の人形の生成処理およびアップデート処理の最適化方法を解説しています。

動画の前半では、5,000体の人形インスタンスを生成する処理の最適化について解説。

生成処理は「SpawnSystem」のOnUpdateメソッドで実行されるよう実装しています。そこで、OnUpdateBurstCompileアトリビュートを付けることで、3.23msかかっていた生成処理を0.559msにまで短縮できたとのこと。

メソッド定義の前に[BurstCompile]を付けることでBurstCompileが適用される(画像は『Unity ECS で高速化!とりあえずキャラを 5,000 体出してみよう!』より引用)

なお、BurstCompileはマネージドクラスを使っていないなどの制約を満たしたメソッドにのみ使用できます。

動画後半では、各人形のアップデート処理を最適化する手法が紹介されています。

アップデート処理では、BurstCompileに加え、C# Job Systemを使って、処理の並列化を実装。

元のコード(左)とC# Job Systemを使った処理の並列化後のコード(右)(画像は『Unity ECS で高速化!とりあえずキャラを 5,000 体出してみよう!』より引用)

これにより、元々6.70msかかっていた処理を、0.07msにまで高速化しています。

(画像は『Unity ECS で高速化!とりあえずキャラを 5,000 体出してみよう!』より引用)

動画では、コードの内容や各機能の使用条件などについて詳細に解説しています。動画はこちらをご確認ください。

また、動画で使用されたサンプルプロジェクト「ECS-StrawmanParallel」は、GitHubにて公開されています。

Unity ECS で高速化!とりあえずキャラを 5,000 体出してみよう!|YouTubekeijiro / ECS-StrawmanParallel|GitHub

関連記事

PLATEAU、3D都市モデルを使った位置情報共有ゲームをつくるチュートリアル記事を公開。ゲームの制作から、サーバーの準備、アプリの配信まで詳細に解説
2024.03.01
UnityのURPを解説した無料の公式電子書籍がアップデート。デカールや「Fullscreen Shader Graph」などのセクションを追加
2024.02.23
「Steam Audio」がオープンソース化。UnityやUEに統合できる、ゲームやVRアプリ用の空間オーディオツール
2024.02.22
Shader Graphに対応したUnity UIについて、ユニティ・テクノロジーズ・ジャパンが紹介動画を公開
2024.02.21
国土交通省が主導する「PLATEAU」、Unity向けSDKを使ったサンプルプロジェクト『Urban Scape』を公開。時間や天気の変更も可能な3D都市ビューワーアプリを作成可能
2024.02.15
ユニティ・テクノロジーズ・ジャパン、GitHubで『Project_TCC v.1.0.0』を公開。キャラクターを制御するシステムやゲーム開発をサポートする機能が詰まったツール
2024.02.14

注目記事ランキング

2024.02.26 - 2024.03.04
1
『フォートナイト』で動く本格的なゲームが作れるツール「UEFN」とは?従来のクリエイティブモードから進化したポイントを一挙紹介!
2
【CHALLENGE1】「クリエイター ポータル」を使って、UEFNで作成した島を世界中に公開する
3
【2022年5月版】今から始めるフォートナイトの「クリエイティブ」モードープレイ開始から基本的な操作方法まで解説
4
UEFNで使えるプログラミング言語「Verse」のノウハウが集結。『UEFN.Tokyo 勉強会 03 Verse Night』レポート
5
フォートナイトとUEFNがv28.30にアップデート。「NPCスポナー」が、スポーン・撃破時のエフェクトや移動速度のカスタマイズに対応
6
フォートナイト クリエイティブとUEFNで使える仕掛け一覧
7
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.1「アイテム系」
8
【STEP2】UEFNの基本的な使い方を覚えよう
9
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.5「島の設定」
10
【CHALLENGE2-1】フレンドと一緒にゲームを作ろう――UEFNプロジェクトをチームメンバーとリアルタイムで共同編集する
11
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.7「NPC系」Part1
12
まるで『マイクラ』?ボクセル地形を生み出す無料アセット「VoxelPlugin Free」で”地形を掘ったり積み重ねたり”して遊んでみよう
13
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.4「ゲームシステム系」
14
【STEP1】「UEFN」を入手しよう
15
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.2「ユーティリティ系」
16
フルカラー書籍「UEFN(Unreal Editor For Fortnite)でゲームづくりを始めよう!」、ついに本日発売!全国書店で好評発売中!
17
NIKEのAir Maxをテーマにしたフォートナイトの島『Airphoria』、制作に関するチュートリアルが公開
18
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.10「UI系」Part1
19
【CHALLENGE3】UEFNの機能「ランドスケープ」を使ってオリジナルの地形を作る
20
『フォートナイト』で建築ビジュアライゼーション!?UEFNでオリジナルの世界観をどう作り上げたか、その手法を解説【UNREAL FEST 2023 TOKYO】
21
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.10「UI系」Part2
22
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.3「プレイヤー系」
23
【STEP6-1】「オリジナルキャラクターを登場させよう」――Fabでアセットをダウンロードしよう
24
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.6「チーム・対戦系」Part1
25
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.7「NPC系」Part2
26
フォートナイトとUEFNがv26.30にアップデート。ロビー画面が一新され、クリエイターが島ごとにロビー背景を自由にカスタムできるように
27
【STEP5-1】スタート時のカウントダウンを作る
28
「UEFN」って実際どうなの? 編集部が3時間で「みんなで遊べるアクションゲーム(?)」を作ってみた
29
【STEP4-1】コース外に出たらデスする仕組みを作る
30
【STEP4-2】リスポーンとチェックポイントの仕組みを作る
VIEW MORE

イベントカレンダー

VIEW MORE

今日の用語

ローパスフィルター(Low-Path Filter)
ローパスフィルター
  1. 電気信号のうち、指定した周波数(カットオフ周波数)以下の信号を通し、それより上を大きく低減させるフィルター。
  2. ゲーム開発において、基本的にはサウンド用語として用いられる。例として、特定のセリフをローパスフィルターによってくぐもった音に加工することで、隣の部屋や遮蔽物の後ろで話しているかのような表現を行うことができる。
VIEW MORE

Twitterで最新情報を
チェック!