Arm Mobile Studio は、モバイルゲーム開発者がコンテンツを管理し、Arm CPU および Mali GPU を搭載したモバイルデバイスでコンテンツをスムーズに実行できるようにするために利用できる、無償の分析ツールスイートです。これは、さまざまなパフォーマンス上の問題を特定して解決するのに役立ちます。新しい Unity 用 Mobile Studio プラグインが登場したことで、皆さんのモバイルゲームの最適化をもっと簡単に行うことが可能になりました。
このパッケージを使ってプロジェクトにアノテーションを簡単に組み込むことができます。組み込んだアノテーションは、Arm Mobile Studio プロファイリング ツール、Streamline および Performance Advisor で利用できます。これらのアノテーションからはパフォーマンスを分析するための有用な文脈情報を取り出すことができ、この情報から特定のアクションまたはイベントがゲーム内でいつ発生し、パフォーマンスにどのように影響を与えるかを確認することができます。
たとえば、Streamline のタイムラインに沿ってアノテーションを表示できます。この例は、敵の集団が出現するところを示すマーカーのセットを示したものです。
ゲームのリージョンを開始マーカーと終了マーカーで囲って定義することで、Performance Advisor はリージョンごとに分析結果を個別にレポートできます。この例では、「Battle」リージョンのパフォーマンス情報を確認できます。
Mobile Studio パッケージは、Unity エディターバージョン 2018.4 LTS 以降でサポートされています。次のように、Unity パッケージ マネージャーを介してパッケージをインストールします。
1. Unity プロジェクトを開き、 Window > Package Manager と移動して、パッケージマネージャーを開きます。
2. パッケージマネージャー内で、「+」アイコンをクリックし、Add package from git URL... を選択します。
3. ボックスに次の URL を入力し、Add をクリックします。
https://github.com/ARM-software/mobile-studio-integration-for-unity.git
パッケージがプロジェクトにインポートされ、パッケージのリストに自動的に表示されます。
これでパッケージを起動できました。さまざまなタイプのアノテーションとその使用方法を見てみましょう。
マーカーは、Streamline のタイムラインの上部にある単純なアノテーションです。マーカーは Mobile Studio ライブラリを呼び出すだけで追加できます。サンプルは以下の通りです。
以下のように、オプションで Color オブジェクトを渡すと Streamline 内のマーカーの色を指定することができます。
「Region Start」および「Region End」で始まるマーカーのペアを指定して、関心のあるゲーム内のリージョンを定義できます。これらのリージョンは、Performance Report レポートのフレームレート分析チャートに表示され、レポートの末尾で各リージョンの専用チャートを生成するために使われます。
「Region Start」および「Region End」で始まるマーカーを追加して、関心のあるリージョンを示すには、以下のようにします。
注:Performance Advisor は、Android 9 を実行しているデバイスから Unity 2021.2 以降でビルドされたアプリのフレームデータをキャプチャできません。詳細は、こちらの Q&A トピックをご覧ください。
チャンネルは、スレッドに関連付けられたカスタムイベントタイムラインです。チャンネルが作成されたら、その中にアノテーションを配置できます。マーカーと同様に、アノテーションにはテキストラベルと色がありますが、マーカーとは異なり、アノテーションは一定範囲の時間にまたがって置くことができます。
チャンネルを作成するには、以下のようにします。
Streamline でこのチャンネルを表示するには、Core Map ビューを選択します。このビューで、UnityMain スレッドの下に追加されたチャンネルを見ることができます。
カスタムアクティビティマップ(CAM)は、グローバルな(スレッドごとではない)タイムラインを集めたものです。各 CAM は、Streamline の UI の下半分に名前付きの個別ビューとして表示され、CAM で名前付きの行として表示される複数のトラックで構成されます。アクティビティは、登録されたジョブを通じてトラックに記録されます。
トラックを作成して CAM に追加するには、以下のようにします。
CAM を作成してトラックを追加したら、以下のいずれかの方法でトラック内にジョブを登録できます。最初の方法は、関連させるアクティビティを開始するときと同じようにジョブを作成することです。アノテーションで行ったように、完了したらすぐにジョブを終了します。以下のようにします。
もう 1 つの方法は、作業の開始時刻と終了時刻を保存し、後でそれらをトラックに追加することです。
このアプローチの利点は、getTime() メソッドが CPU サイクルの観点で安価であることです。Unity ジョブスケジューラー内で実行されているジョブから安全に呼び出すこともできます。
Streamline で追加した CAM に切り替えて、追加されたすべてのトラックとジョブを表示できます。
ゲームにアノテーションを付けたら、開発ビルドを生成してデバイスに配置します。次に、Streamline でキャプチャを取得し、注釈を含む Performance Advisor レポートを生成します。こちらの動画では、プロセスについて解説されています。
プリプロセッサ定義を設定して、コードを変更したり、パッケージを使っていることでコードのエラーを発生させるリスクを冒したりすることなく、リリースビルドからパッケージが簡単に削除されるようにできます。
1. Mobile Studio API を参照するスクリプトのアセンブリ定義ファイルがまだない場合は、作成します。ファイルを作成するフォルダーに移動し、プロジェクトビューで右クリックし、Create > Assembly Definition を選択します。
2. asmdef ファイルを編集して、以下を追加します。
a. Assembly Definition References に、MobileStudio.Runtime を追加します。
b. Version Defines に以下のルールを追加します。
このルールは、Unity に com.arm.mobile-studio パッケージがプロジェクトに存在し、かつそのバージョンが 1.0.0 より大きい場合に MOBILE_STUDIO を定義するように指示します。
3. コード内で Mobile Studio API を使っている部分を MOBILE_STUDIO でラップします。以下のようにします。
#if MOBILE_STUDIO // パッケージを使うコード #endif
新しい Unity 用 Mobile Studio パッケージを使用すると、Arm Mobile Studio のツールを最大限に活用し、モバイルアプリのパフォーマンスをさらに詳しく把握してゲームを最適化できます。
パッケージの完全なドキュメントは こちらから入手できます。Arm Mobile Studio ツールを試したことがなくても、ツールは無料で使用でき、それに開始に役立つスターターガイドが付属しているので、気楽に始めることができます。
Arm と Unity は引き続き協力し、モバイル向けのパフォーマンスプロファイリングツールをより優れた形で取り入れられる環境を整備してまいります。皆さんからの継続的なインプットは非常にありがたく、貴重なものです。