Unityによる最適化蚈画





Unityには、ゲヌムでスムヌズなグラフィックスを実珟するための倚くの蚭定ずツヌルが含たれおいたす。 このプロゞェクトでは、困難が生じる可胜性のあるものを遞択し、Intel GPUでのゲヌムのパフォヌマンスぞの圱響を分析したした。



ゲヌム開発者の芳点からUnityの䜿甚を怜蚎したす。 パフォヌマンスが䜎䞋しおいる領域を芋぀け、次にUnityの組み蟌みツヌルを䜿甚しおアプリケヌションのパフォヌマンスを改善する方法を決定しようずしたした。 Unityの利点の1぀は、コンテンツをすばやく䜜成できるこずですが、特にモバむルデバむスやタブレットでパフォヌマンスを実珟するには、開発者は組み蟌みのパフォヌマンス最適化メカニズムの䜿甚を慎重に蚈画する必芁がありたす。 この蚘事では、新芏および既存のUnityナヌザヌに、レベルずゲヌムを䜜成する際のパフォヌマンスを改善するためのヒントを提䟛し、コンテンツを䜜成する新しい方法に぀いお説明したす。



はじめに



Unityを䜿甚したゲヌムの䜜成は比范的簡単です。 Unityには、モデル、既補のスクリプト、デモ、完党なゲヌムなど、さたざたなアむテムを賌入できるストアがありたす。 テストのために、既存のゲヌムず協力しお、パフォヌマンスを改善できる領域ずそうでない領域を特定したした。 Boot Campリ゜ヌスストアから無料でダりンロヌド可胜ず呌ばれるUnity技術デモを䜿甚しお、問題の耇雑さを評䟡したした。



ゲヌムパラメヌタを䜜成し、すべおのシヌンを実行するために、Unity 3.0を䜿甚したした。 テストは、Intel HD Graphics 4000 GPUを搭茉した第3䞖代Intel Coreプロセッサを搭茉したコンピュヌタヌで実斜されたしたが、テスト結果はモバむルデバむスには適甚されたせん。



品質管理者



Unityでは、ゲヌムの远加のレンダリングオプションを利甚できたすメニュヌの[線集]-> [プロゞェクト蚭定]-> [品質]図1。 これらは、個別にカスタマむズできるカスタムレンダリングオプションです。 Unityには、品質蚭定ず、UnityスクリプトAPIを䜿甚しお蚭定する方法を説明する組み蟌みのドキュメントが含たれおいたす。





図1.タグずレむダヌぞのアクセスは、[線集]-> [プロゞェクト蚭定]-> [タグむンスペクタヌ]メニュヌから行いたす。



Unityで最適化の機䌚を芋぀けるために、利甚可胜なすべおのパラメヌタヌをテストしたせんでしたが、勝ち負けを理解するために品質蚭定を倉曎しおみるこずにしたした。



テクスチャ品質



品質蚭定むンスペクタヌには、テクスチャのレンダリング解像床を遞択できるドロップダりンメニュヌがありたす。 1 / 8、1 / 4、1 / 2、たたはフル解像床の解像床を遞択できたす。 さたざたなテクスチャ解像床でパフォヌマンスの増枛を評䟡するために、Unityで利甚可胜なすべおのデフォルト品質蚭定Fastest、Fast、Goodなどでテストシヌンのフレヌムレヌトを枬定し、各枬定の前にテクスチャ品質のみを倉曎したした。

図 図2ず3は、1/8テクスチャ解像床ずフルテクスチャ解像床のシヌンの比范を瀺しおいたす。





図2. Unity *解像床が1/8のBoot Campシヌン





図3. Unity * Boot Campのフル解像床のシヌン



テクスチャ解像床を倉曎した埌、Intel Graphics Performance AnalyzerIntel GPAを䜿甚しおフレヌムレヌトフレヌム/秒を枬定したした。 Fantastic品質レベル衚1では、テクスチャサむズを倉曎しおもパフォヌマンスはあたり倉化しなかったこずがわかりたす。





è¡š1. Unityで異なるテクスチャ品質を切り替える際のフレヌムレヌトの倉化



Intel GPUを搭茉したコンピュヌタヌでは、理論䞊、テクスチャのサむズに応じおパフォヌマンスは倉化したせんが、デバむスメモリやアプリケヌションメモリの総䜿甚量など、他の芁因を考慮する必芁がありたす。



圱の距離



圱の距離は、ゲヌムオブゞェクトの圱に䜿甚されるカリングの深さを決定するパラメヌタヌです。 ゲヌムオブゞェクトがカメラから指定された距離内にある堎合、このオブゞェクトの圱が描画されたすが、オブゞェクトがこの距離より遠い堎合、そのようなオブゞェクトの圱は衚瀺されたせんレンダリングから陀倖されたす。

䜿甚されるパラメヌタによっおは、シャドりの蚈算ずレンダリングはリ゜ヌスを倧量に消費する操䜜であるため、パフォヌマンスに悪圱響を䞎える可胜性がありたす。 圱の距離パラメヌタヌの効果のテスト



このテストでは、これらのモヌドではシャドりが無効になっおいるため、FastestおよびFastの品質レベルは䜿甚されたせんでした。





図4.このパラメヌタヌは、むンスペクタヌメニュヌで䜿甚できたす線集->プロゞェクト蚭定->品質





図5. Unity * Boot Campテクニカルデモ





è¡š2. Unity * Boot CampテクニカルデモでShadow Distanceパラメヌタヌ倀を倉曎した堎合のフレヌムレヌトの倉曎



圱はパフォヌマンスに倧きく圱響したす。 テストでは、シンプルモヌドで距離を0から50に切り替えるず、フレヌムレヌトがほが2倍䜎䞋するこずが瀺されたした。 ゲヌムオブゞェクトが実際に衚瀺されるかどうかを怜蚎し、䞍芁な圱が描画されないようにするこずが重芁です。 さたざたな状況でUnityスクリプトを䜿甚しお、シャドりキャストの深さを調敎できたす。 シャドり陀去の深さの効果のみを確認したしたが、他のシャドり品質パラメヌタヌを構成するず、同様のパフォヌマンスの倉曎が発生する可胜性がありたす。



レむダヌ



Unityのすべおのゲヌムオブゞェクトには、䜜成時にレむダヌが割り圓おられたす。 図に瀺すように、最初はすべおのオブゞェクトにデフォルトのレむダヌが割り圓おられたす。 6、ただし、独自のレむダヌを䜜成できたす。 これを行うには2぀の方法がありたす。 [レむダヌ]フィヌルドをクリックしお、[新しいレむダヌを远加]を遞択するだけです。 メニュヌの[線集]-> [プロゞェクト蚭定]-> [タグ]を䜿甚するこずもできたす。





図6.ゲヌムオブゞェクトのむンスペクタヌりィンドりのレむダヌメニュヌ





図7.むンスペクタヌりィンドりのタグマネヌゞャヌ



[むンスペクタヌ]りィンドり図7で、新しいレむダヌを䜜成し、どのレむダヌ番号に属するかを指定できたす。 䞡方の方法を䜿甚するず、同じタグマネヌゞャヌりィンドりが開きたす。 レむダヌを䜜成した埌、[レむダヌ]フィヌルドのゲヌムオブゞェクトの[むンスペクタヌ]りィンドりのパラメヌタヌりィンドりで目的のレむダヌを遞択するこずにより、このレむダヌにゲヌムオブゞェクトを割り圓おるこずができたす。 このようにしお、同じレむダヌ䞊のオブゞェクトをグルヌプ化し、それらを䞀緒に凊理できたす。 この蚘事で他のレむダヌ機胜に぀いお説明するずきは、レむダヌずは䜕か、それらを䜜成およびカスタマむズする方法を芚えおおいおください。



局陀去距離



カメラはUnityのクリッピングプレヌンの倖偎にあるゲヌムオブゞェクトを描画したせん。 Unityスクリプトを䜿甚するず、特定のレむダヌのクリッピングプレヌンに短い距離を指定できたす。





図8.レむダヌ陀去距離を倉曎するUnityドキュメントのサンプルスクリプト



ゲヌムオブゞェクトの拒吊距離を短く蚭定するには、いく぀かの䜜業が必芁です。 たず、オブゞェクトをレむダヌに配眮する必芁がありたす。 次に、この特定のレむダヌのカリング距離を倉曎するスクリプトを䜜成し、カメラにスクリプトを割り圓おる必芁がありたす。 図のサンプルスクリプト 図8は、䜿甚可胜な32のレむダヌに察応する32の浮動小数点倀の配列を䜜成する方法を瀺しおいたす。これは、[線集]-> [プロゞェクト蚭定]-> [タグ]を䜿甚しお䜜成できたす。 この配列のむンデックス倀を倉曎しおcamera.layerCullDistancesに割り圓おるず、察応するレむダヌの拒吊距離が倉曎されたす。 むンデックスに番号を割り圓おない堎合、察応するレむダヌはカメラのファヌクリッピングプレヌンを䜿甚したす。



layerCullDistancesのパフォヌマンスをテストするために、䜎、䞭、高の耇雑さのオブゞェクトで満たされた3぀のシヌンを䜜成したした。 これらのシヌンでは、同䞀のゲヌムオブゞェクトが集められ、カメラから埐々に離れた行に配眮されたす。 Intel GPAを䜿甚しおフレヌムレヌトを枬定し、レむダヌ陀去距離を埐々に増やしお、各枬定にオブゞェクトのグルヌプを远加したした぀たり、最初の枬定でオブゞェクトの1぀のグルヌプ、6番目の枬定でオブゞェクトの6぀のグルヌプ。



図9、10、および11は、さたざたなタむプのオブゞェクトでテストするために䜿甚したシヌンを瀺しおいたす。



ブヌツポリゎン-278、ピヌク-218



図9.ブヌツを䜿甚したテストシヌン-ポリゎンず頂点の数が少ないオブゞェクト



恐竜ポリゎン-4398、ピヌク-4400



図10.恐竜を含むシヌンのテスト-平均数のポリゎンず頂点を持぀オブゞェクト



航空機ポリゎン-112 074、ピヌク-65 946



図11.飛行機でのテストシヌン-倚数のポリゎンず頂点を持぀オブゞェクト



è¡š3、4、および5は、すべおのテストシヌンでのフレヌムレヌトの倉化を瀺しおいたす。





è¡š3.ブヌツのあるシヌンで取埗したデヌタ図9





è¡š4.恐竜のいるシヌンで埗られたデヌタ図10





è¡š5.航空機のあるシヌンで埗られたデヌタ図11





è¡š6.ファンタスティックモヌドでのすべおのテストシヌンのデヌタ



このデヌタは、UnityのlayerCullDistances関数を䜿甚しお達成できるパフォヌマンスの改善を瀺しおいたす。



è¡š6は、特に耇雑なオブゞェクトの堎合、画面䞊のオブゞェクトの数が増えるずパフォヌマンスがどのように倉化するかを瀺しおいたす。 ゲヌム開発者の芳点から、 layerCullDistancesを正しく䜿甚するず、パフォヌマンスが倧幅に向䞊したす。 たずえば、カメラから離れた堎所にある耇雑なモデルを持぀小さなオブゞェクトの堎合、これらのオブゞェクトがすでに区別できる堎合にのみ、十分な近䌌倀でレンダリングを調敎できたす。 レベルを蚈画および䜜成するずき、開発者はモデルの耇雑さずカメラから遠く離れた堎所にあるオブゞェクトの可芖性を考慮する必芁がありたす。 初期蚈画では、 layerCullDistancesを䜿甚しおより良い結果を達成できたす。



カメラ



Unityずその蚭定でカメラを操䜜する可胜性を研究したした。 さたざたなパラメヌタヌを遞択しお、他のコンポヌネントやアドオンを䜿甚しおみたした。





図12.カメラを遞択した埌に開くむンスペクタヌメニュヌ



新しいシヌンを䜜成するずき、デフォルトでは、メむンカメラず呌ばれるカメラのゲヌムオブゞェクトが1぀だけ衚瀺されたす。 別のカメラを远加するには、たず空のゲヌムオブゞェクトを䜜成したすゲヌムオブゞェクト->空を䜜成したす。 次に、この空のオブゞェクトを遞択し、カメラコンポヌネントを远加したすコンポヌネント->レンダリング->カメラ。

Unityのカメラは、図に瀺すように、広範なカスタマむズオプションをサポヌトしおいたす。 12.私が芋た蚭定は次のずおりです。レンダリングパスずHDR。



レンダリングパス



Render Pathパラメヌタヌを䜿甚するず、ゲヌム内でラむトずシャドりのレンダリングを凊理する方法をUnityで指定できたす。 Unityは3皮類のレンダリングをサポヌトしたす。ここでは、最もリ゜ヌスを消費するものから最もリ゜ヌスを消費しないものぞず順番に䞊んでいたす。 いずれの堎合も、シャドりずラむトの凊理方法は少し異なり、それらを凊理するには、異なる量のCPUおよびGPリ゜ヌスが必芁です。 適切なレンダラヌを遞択するには、どのプラットフォヌムおよびどの機噚開発が進行䞭であるかを理解するこずが重芁です。 グラフィックアダプタヌでサポヌトされおいないレンダラヌを遞択するず、Unityは自動的にリ゜ヌスをあたり䜿甚しないレンダリング方法に切り替わりたす。





図13. Player Settings Inspectorりィンドり



レンダリングパスの倀を蚭定するには、2぀の方法がありたす。 最初の方法

線集->プロゞェクト蚭定->プレヌダヌ図13。 [レンダリングパス]ドロップダりンリストは、[その他の蚭定]タブにありたす。 2番目の方法Camera Inspectorナヌザヌむンタヌフェむスりィンドりを䜿甚する図14。 [プレヌダヌの蚭定を䜿甚]以倖のオプションを遞択するず、デフォルトの蚭定が眮き換えられたすが、このカメラの堎合のみです。 したがっお、光ず圱のレンダヌバッファ蚭定が異なるカメラを䜿甚できたす。





図14. [カメラ]りィンドりで[レンダリングパス]オプションを遞択したずきのドロップダりンリスト



開発者は、Unityを構成するさたざたな照明レンダリングモヌドがどのように機胜するかを知る必芁がありたす。 このドキュメントの最埌にある参照セクションには、Unityドキュメントぞのリンクが蚘茉されおいたす。 ゲヌムの察象ナヌザヌず、朜圚的なナヌザヌがこのゲヌムをプレむするプラットフォヌムを正確に把握しおください。 これは、このプラットフォヌムに適したレンダリング方法を遞択するのに圹立ちたす。 たずえば、ゲヌムに遅延レンダリングを䜿甚する耇数の光源ずグラフィック゚フェクトが含たれおいる堎合、䜎電力グラフィックアダプタヌを搭茉したコンピュヌタヌでは、そのようなゲヌムをプレむするこずは䞍可胜になりたす。 タヌゲットオヌディ゚ンスに、高い蚈算胜力を持たないデバむスを持぀カゞュアルなゲヌマヌが含たれおいる堎合、問題も発生する可胜性がありたす。 開発者は、ゲヌムの察象ずなるタヌゲットプラットフォヌムを把握し、ゲヌムで照明をレンダリングおよび凊理する適切な方法を遞択する必芁がありたす。



HDRハむダむナミックレンゞ



通垞のレンダリングでは、各ピクセルの赀、緑Gおよび青Bの色の倀は10進数で衚され、その倀は0〜1です。これらの色の倀の範囲を制限するず、照明は非珟実的に芋えたす。 より自然な光を実珟するには、Unityで拡匵ダむナミックレンゞHDRを有効にしたす。 この堎合、各ピクセルのR、G、Bの倀が正垞範囲倖になる可胜性がありたす。 HDRは、0〜1の範囲倖の倀をサポヌトするむメヌゞバッファヌを䜜成し、がかしやグレアなどのグラフィック効果の埌凊理を実行したす。 埌凊理の効果を蚈算した埌、画像バッファヌ内のR、G、Bの倀は、Unity色盞マッピングテクノロゞヌによっお0〜1の範囲内の倀にリセットされたす。 色盞マップの構築がHDRを䜿甚しお実行されない堎合、ピクセルは蚱容範囲倖になる可胜性がありたす。これが、シヌンの䞀郚の色が他の色ず比べお正しく芋えない理由です。



HDRを䜿甚する堎合、パフォヌマンスに圱響するパラメヌタヌに泚意しおください。 高床なシヌンレンダリングを䜿甚する堎合、HDRはグラフィック効果がある堎合にのみ機胜したす。 それ以倖の堎合、HDRを有効にしおも䜕にも圱響したせん。 遅延レンダリングでは、HDRが垞に䜿甚されたす。

シヌンが遅延レンダリングを䜿甚しお凊理され、カメラにグラフィック効果が割り圓おられおいる堎合、HDRを有効にする必芁がありたす。 図 15は、シヌンのレンダリング呌び出しの数ず、HDRがオンおよびオフの堎合の゚フェクトおよび遅延レンダリングを比范しおいたす。 HDRを䜿甚しない堎合、シヌンに゚フェクトが含たれおいる堎合、HDRを䜿甚する堎合よりもレンダリング呌び出しの数が倧幅に倚くなりたす。 図 図15では、レンダリング呌び出しの数は別々の青いバヌで衚され、各バヌの高さはGPの各呌び出しの負荷に察応したす。





図15. Intel Graphics Performance Analyzerを䜿甚した枬定では、HDRをオフにするず2000回を超えるレンダリング呌び出しが行われ、HDRをオンにするず900回を超えるレンダリング呌び出しが行われるこずが瀺されおいたす。



UnityのHDRドキュメントをチェックしお、この機胜がどのように機胜するかを確認しおください。 たた、これによるパフォヌマンスの向䞊を埗るために、どの堎合に拡匵ダむナミックレンゞを䜿甚する必芁があり、どの堎合にそれが意味をなさないかを知る必芁がありたす。



グラフィック効果



Unity Proには、シヌンの倖芳を向䞊させる倚くのグラフィック効果が含たれおいたす。 プロゞェクトの䜜成埌に画像効果コンポヌネントを远加するには、アセット->パッケヌゞのむンポヌト->画像効果メニュヌを䜿甚したす。 むンポヌト埌、2぀の方法でカメラに゚フェクトを远加できたす。 カメラゲヌムオブゞェクトをクリックし、カメラりィンドりで[コンポヌネントの远加]、[画像効果]の順に遞択したす。 [コンポヌネント]-> [画像効果]を遞択しお、メニュヌのカメラオブゞェクトをクリックするこずもできたす。



スクリヌン空間の散乱シェヌディング-SSAO



Screen SpaceSSAOの散垃シェヌディングは、Unity ProのImage Effectパッケヌゞに含たれるグラフィック効果です。 図 図16は、SSAOの有効化ず無効化の違いを瀺しおいたす。 画像は䌌おいたすが、パフォヌマンスは倧きく異なりたす。 SSAOを䜿甚しないシヌンでは、フレヌムレヌトは32フレヌム/秒で、SSAOを䜿甚するず、24フレヌム/秒、぀たり25䜎䞋したした。





図16. SSAOが無効䞊ずSSAOが有効䞋の同じレベルの比范



グラフィック効果を远加するずきは、パフォヌマンスに悪圱響を䞎える可胜性があるため泚意しおください。 このドキュメントの準備では、SSAOのみをテストしたしたが、他の効果を䜿甚する堎合も同様の結果が期埅できたす。



劚害されたオブゞェクトの陀倖



隠されたオブゞェクトの陀倖は、カメラのクリッピングプレヌンを超えたオブゞェクトだけでなく、他のオブゞェクトの埌ろに隠れおいるオブゞェクトのレンダリングも無効にするこずです。 これは、凊理する必芁がある情報の量が倧幅に削枛されるため、パフォヌマンスの点で非垞に有益です。 ただし、䞍明瞭なオブゞェクトの陀倖を蚭定するのは簡単ではありたせん。 遮られたオブゞェクトを陀倖するようにシヌンを蚭定する前に、䜿甚される甚語を理解する必芁がありたす。

劚害オブゞェクト-劚害ずしおマヌクされたオブゞェクトは障害物ずしお機胜したす劚害ずしおマヌクされたオブゞェクトに囲たれたすべおのオブゞェクトは描画されたせん。

キャストするオブゞェクト-この方法でオブゞェクトにマヌクを付けた堎合、ブロッキングオブゞェクトによっお隠されおいる堎合、Unityでは描画されたせん。

たずえば、家の䞭にあるすべおのオブゞェクトを芆い隠すようにマヌクするず、家自䜓が邪魔になるようにマヌクできたす。 ゲヌムキャラクタヌがこの家の倖にいる堎合、家の䞭で䞍明瞭ずマヌクされおいるすべおのオブゞェクトは描画されたせん。 同時に、CPUおよびGPUでの凊理が高速化されたす。

隠されたオブゞェクトの陀倖の䜿甚ず蚭定はUnityに文曞化されおいたす。 構成情報ぞのリンクに぀いおは、参照セクションを参照しおください。

パフォヌマンスの倉化劚害されたオブゞェクトの陀倖に䟝存を瀺すために、前景に壁があり、背埌に耇雑なモデルを持぀オブゞェクトがあるシヌンを䜜成したした。 シヌンのフレヌムレヌトを、䞍明瞭なオブゞェクトを陀き、枬定しおから枬定したした。 図 図17は、異なるフレヌムレヌトのシヌンを瀺しおいたす。





図17.巊偎の画像では、遮られたオブゞェクトの陀倖が無効になっおおり、壁の埌ろにあるすべおのオブゞェクトが描画されおいるため、フレヌムレヌトは毎秒31フレヌムです。 右偎の画像では、劚害されたオブゞェクトの陀倖がオンになり、壁に劚害されたオブゞェクトは描画されないため、速床は毎秒126フレヌムに増加したした。



劚害されたオブゞェクトの陀倖は、開発者が手動で構成する必芁がありたす。 ゲヌムの蚭蚈時に障害物を陀倖するこずを忘れないでください。これにより、機噚の芁件が枛り、生産性が向䞊したす。



詳现レベルLOD



詳现レベルLODを䜿甚しお、1぀のゲヌムオブゞェクトにさたざたな耇雑さの耇数のモデルを割り圓お、オブゞェクトずカメラ間の距離に応じおそれらを切り替えるこずができたす。 これは、カメラから遠く離れた耇雑なゲヌムオブゞェクトのパフォヌマンスの点で有益です。 詳现レベルを䜿甚するず、モデルを自動的に簡玠化できたす。 詳现レベルの䜿甚ず蚭定の詳现に぀いおは、Unityのドキュメントを参照しおください。 リンクは参照セクションにありたす。

詳现レベルを倉曎するずきにパフォヌマンスの向䞊をテストするために、3぀の異なるモデルが割り圓おられた家のグルヌプでシヌンを䜜成したした。 カメラを同じ堎所に配眮した埌、最も耇雑なモデルを䜿甚しお家でシヌンのフレヌムレヌトを枬定したした。 次に、詳现距離を倉曎しお詳现床の䜎いモデルを䜿甚し、再床枬定を行いたした。 3぀のレベルのモデルに察しおこの手順を実行し、埗られたデヌタを衚5に蚘録したした。

図 図18、19、20では、モデルの耇雑さの3぀の異なるレベルが、各モデルのポリゎンず頂点の数ずずもに瀺されおいたす。



最高品質-詳现レベル0
構築

•ピヌク-7065

•ポリゎン-4999

B棟

•ピヌク-5530

•ポリゎン-3694



図18.詳现レベル0。これは最高です。

䜿甚される詳现レベル

最も耇雑なモデルクリックしお拡倧

䞭品質-詳现レベル1
構築

•ピヌク-6797

•埋め立お地-4503

B棟

•ポリゎン-5476

•ピヌク-3690



図19.詳现レベル1.このレベルは

詳现のスケヌルで1぀䞋のレベル

䞭皋床の耇雑さのモデルを䜿甚クリックしお拡倧

䜎品質-詳现レベル2
構築

•ピヌク-474

•ポリゎン-308

B棟

•埋め立お地-450

•ピヌク-320



図20.詳现レベル2.これは最埌のレベルです

詳现、最も耇雑でないモデルはここで䜿甚されたす

クリックしお拡倧



さたざたな詳现レベルを切り替えお、比范のためにフレヌムレヌトを枬定したした衚7。





è¡š7.さたざたな詳现レベルでのフレヌムレヌトの比范



è¡š7は、さたざたな詳现レベルを蚭定しお䜿甚した堎合のパフォヌマンスの向䞊を瀺しおいたす。 耇雑床の䜎いモデルに切り替えるず、フレヌムレヌトが倧幅に増加したす。 ただし、これにより、各オブゞェクトの耇数のモデルを䜜成する必芁があるアヌティストの䜜業量が増加したす。 ゲヌムの蚭蚈者は、パフォヌマンスを向䞊させるために、远加のモデルの描画に远加の時間を費やす必芁があるかどうかを自分で決定する必芁がありたす。



バッチ凊理



過床のレンダリング呌び出しは、過剰なCPU䜿甚率ずパフォヌマンス䜎䞋に぀ながる可胜性がありたす。 画面䞊のオブゞェクトが倚いほど、より倚くのレンダリング呌び出しが必芁になりたす。 Unityは、いわゆるバッチ凊理をサポヌトしおいたす。これにより、1回のレンダリング呌び出しで耇数のゲヌムオブゞェクトを配眮できたす。 静的バッチ凊理は静的オブゞェクトを察象ずしおおり、動的-移動オブゞェクトを察象ずしおいたす。 すべおの芁件が満たされるず動的バッチ凊理が自動的に実行されバッチ凊理に関するドキュメントを参照、静的バッチ凊理は手動で蚭定する必芁がありたす。

動的バッチ凊理ず静的バッチ凊理の䞡方のオブゞェクトの共同レンダリングには、特定の芁件がありたす。 これらの芁件はすべお、参照セクションで参照されおいるバッチ凊理ドキュメントにリストされおいたす。

静的バッチ凊理䞭のパフォヌマンスゲむンをテストするために、飛行機の圢をした耇雑なゲヌムオブゞェクトを含むシヌンを䜜成し図21、バッチ凊理のある堎合ずない堎合のフレヌムレヌトを枬定したした衚8。





図21.非垞に耇雑な飛行機モデルを䜿甚したテストシヌンの静的バッチ凊理





è¡š8.静的バッチ凊理が有効な堎合ず無効な堎合の人員の速床ずレンダリング呌び出しの数の違い図21



Unityは、動的ず静的の2皮類のバッチ凊理をサポヌトしおいたす。 バッチ凊理を最倧限に掻甚するには、できるだけ倚くのオブゞェクトを1぀のレンダヌ呌び出しのバッチに結合しおみおください。 どのオブゞェクトが動的たたは静的バッチ凊理に適しおいるかに぀いおは、Unityのドキュメントを参照しおください。



おわりに



Unityでは、プロゞェクトの䜜業を簡単に開始できたすが、それでも簡単に、アプリケヌションのパフォヌマンスが䞍十分になる可胜性がありたす。 Unityは、ゲヌムでスムヌズなグラフィックスを実珟するための倚くの蚭定ずツヌルをサポヌトしおいたすが、これらのツヌルのすべおが䟿利に構成され、盎感的ではありたせん。 さらに、Unityの䞀郚の蚭定は、有効にしたり誀っお䜿甚したりするず、ゲヌムのパフォヌマンスに悪圱響を䞎える可胜性がありたす。 Unityを䜿甚しお開発する堎合、事前に蚈画を準備するこずが重芁です。䞀郚のパフォヌマンス関連機胜は手動構成を必芁ずするため、事前に蚈画しないずプロゞェクトの䜜成時はるかに困難になる可胜性があるためです。



トピックに関する远加資料



元の蚘事Unityで最適化を蚈画する方法*



品質文曞

品質蚭定甚のスクリプティングAPI

Boot Campテクニカルデモ

詳现レベルのドキュメント

非衚瀺のパヌツ陀倖ドキュメント

バッチ凊理ドキュメント

レンダリングパスのドキュメント



Intel GPA

Unityぞのマルチタッチ入力サポヌトの远加* Microsoft Windows甚ゲヌム* 7およびクラシックWindows * 8むンタヌフェむス

TouchScriptラむブラリを䜿甚しおUnity * 3Dでゞェスチャシヌケンスを実装する

タッチゞェスチャを䜿甚しおUnity * 3Dの物理蚭定をTouchScriptで制埡する

暙準のUnity * 3D GUIをTouchScriptリ゜ヌスず組み合わせお䜿甚​​する



All Articles