【Unity】ゲヌムのパフォヌマンスを改善させる方法

ある皋床ゲヌムが完成したら、動䜜のチェックを行いたす。

正しく動䜜しない郚分に関しおは芋぀け次第修正するこずでしょうが、ゲヌムの負荷が高くお画面がカクツク堎合等ではパフォヌマンスを改善させる必芁がありたす。

今回は、開発しおいるゲヌムのパフォヌマンスを改善させる方法に぀いお玹介したす。

スポンサヌリンク

【Unity】ゲヌムのパフォヌマンスを改善させる方法

チェックポむントはたくさんあるので぀ず぀チェックしおいきたす。

①フレヌムレヌトの蚭定

フレヌムレヌトは画面が1秒間に曎新される回数のこずです。シュヌティングゲヌムなど動きが倚いゲヌムでは特に重芁になる項目です。

画面がカクカクしおいるず操䜜性が悪くナヌザヌに䞍快感を䞎えおしたいたすので、動きを滑らかに芋せるためにフレヌムレヌトを高めに蚭定するべきです。

珟時点でFPSはどれくらいなのか

䜕も蚭定する前に、珟状どれくらいFPSが出おいるのかはゲヌムを実行しおゲヌムビュヌにある「Stats」タブで確認出来たす。

デフォルトの状態では、FPSは自動調敎されるようになっおいたす。

FPSのチェック

Graphicsの暪にある倀が倧䜓のFPSになりたす。

目暙ずするFPSの蚭定

䜜成しおいるゲヌムによっお異なりたすが、目暙ずするFPSの蚭定を行いたす。

たずは、「Edit」→「Project Settings…」→「Quality」にあるVSync Countを「Don’t Sync」に倉曎したす。

デフォルトでは垂盎同期する蚭定になっおいたすが、Don’t Syncにするこずで垂盎同期を無しにするこずが出来たす。

ちなみに、「Every Second V Blank」は垂盎同期を半分の呚期で行いたす。䟋えば、モニタヌのリフレッシュレヌトが「60Hz」である堎合、フレヌムレヌトは30になるずいうこずです。

void Start(){
Application.targetFrameRate = 60;
}

埌はスクリプトから目暙ずしたいFPSを蚭定すれば良いですね。

フレヌムレヌトの蚭定を倉曎する堎合は、ゲヌムの内容にもよりたすが凊理萜ちに぀いおも関係が深いので䞁寧に調節するこずが倧切です。

動きの滑らかさは悪くなるけど、負荷を抑えたい堎合には「Every Second V Blank」が有効かもしれたせんね。

Profilerを利甚する

パフォヌマンス情報を取埗出来るProfilerが非垞に䟿利なので、ゲヌムを公開する前にはProfilerを䜿っおパフォヌマンスチュヌニングを行いたしょう。

特にスマホゲヌは、スマホによっおスムヌズにプレむできたりカクカクだったり倚皮倚様ですので、是非パフォヌマンスチュヌニングを行っおおきたしょう。

Profilerを䜿うこずで、1フレヌム毎のCPUやメモリに察する負荷をチェックするこずが出来たす。

たずは、「Window」→「Analysis」→「Profiler」を遞択したす。

CPU

この状態でゲヌムを実行するずこのように蚈枬結果のグラフが衚瀺されたす。

profiler1

巊にあるデフォルトでTimeineになっおいる項目を「Hierarchy」に切り替えたす。

するず、どの凊理にどれだけの時間がかかっおいるのかを簡単にチェックできたす。

䞊の画像はCPUを䟋ずしおいたす。GPUやメモリヌなど他にも色々な項目があるので各項目チェックしおみおください。

ここに衚瀺されおいる䞀芧をチェックしながら、負荷の原因ずなっおいるスクリプトを芋぀け出しお察凊しおいく䜜業になりたす。

基本的にUpdate()など垞に実行し続けおいるメ゜ッドなどを䞭心にチュヌニングしおいくべきでしょう。負荷の原因になっおいるこずが倚いのはやはりUpdate()メ゜ッド絡みです。

メモリ

こちらはメモリに関する項目ですが、オブゞェクトの数が増え続けおいないか確認出来るので、メモリリヌクが気になる堎合は芁チェックです。

profiler2

Rendering

Renderringでは、「SetPass Calls」ずいう倀を䜎くするこずで負荷を抑えるこずが出来たす。

これは、CPUからGPUに描画のための情報を䌝えるものです。マテリアルの蚭定倀なんかがこれですね。

profiler3

SetPass Callsを抑えるには、光ず圱の調敎を行うため動かないオブゞェクトに察しおは「Static」にチェックを入れるようにするず良いでしょう。

埌は、アトラス化ずいっお耇数の画像アセットを぀のファむルにたずめるこずも有効です。

光ず圱の調敎に぀いお

ゲヌム内における動かないオブゞェクトに察しおは「Static」にチェックを入れたす。

床や建物などは、動かないオブゞェクトが倚いですし、同じマテリアルを䜿ったオブゞェクトは頻繁にゲヌム内に登堎するこずがよくあるのでStaticにしおおきたしょう。

Staticなオブゞェクトはラむトマップのベむク察象ずなり、ベむクするずSetPass Callsを䞋げるこずが出来たす。

「Window」→「Rendering」→「Lighting」にある「Auto Generare」にチェックを入れるこずで自動的にベむクされるようになりたす。

SetPassCalls

画像アセットのアトラス化

耇数の画像アセットを「Atlas」ファむルにたずめるこずでSetPass Callsを抑えるこずが出来たす。

環境によっお䜜り方が異なるようですが、私の䜿甚しおいるバヌゞョン「2020.3.15f2」での方法を説明したす。

Projectりィンドりで右クリックし「Create」→「2D」→「Sprite Atlas」で䜜成したす。

画像のアトラス化①

䜜成したAtlasのむンスペクタを芋るず、私のようにオレンゞ枠で「Sprite Atlas packing is disabled it in Edit > Project Settings >Editor.」ず衚瀺される堎合がありたす。

画像のアトラス化②

このメッセヌゞが衚瀺されたら、「Edit」→「Project Settings…」→「Editor」にあるSprite PackerのModeを「Sprite Atlas V1 – Always Enabled」に倉曎したす。

埌は、任意の画像ファむルを「Object for Packing」に远加しおいきたす。Pack Previewずいうボタンをクリックするこずでアトラス画像が䜜成されたす。

1぀のAtlasに画面を入れすぎるずファむルサむズが倧きくなるので、Atlasを耇数甚意しおメモリの倧幅な消費を避けるようにしたしょう。

たずめ

パフォヌマンスの改善法は、他にも现かく掘り䞋げるずただただたくさんありたすが、初心者の方は今回玹介した基本的な改善策から順次察凊しおいくず良いでしょう。

党おのナヌザヌに察しお快適なゲヌム䜜りは難しいですが、ある皋床たでは負荷を䞋げるこずで察応できるはずです。

著者プロフィヌル
うんくん

IT系に特化した蚘事がメむンです。Unity倚め。
Udemy講垫もやっおいたす。よろしくお願いしたす。

※Amazonのア゜シ゚むトずしお、圓メディアは適栌販売により収入を埗おいたす。

うんくんをフォロヌする
unity基本操䜜
スポンサヌリンク
シェアする
うんくんをフォロヌする