CCD でのアプリケーションサイズ削減

プレイヤーにゲームのダウンロードを促すには、アプリケーションの初期サイズを小さくしておき、後で必要に応じて新しいレベルやアセットのファイルをダウンロードしてもらうことをお勧めします。

このセクションでは、CCD と Addressables を併用してアプリケーションのサイズを削減するプロセスを、サンプルプロジェクトを通じて説明します。

アプリケーションサイズの削減のサマリー

以下に、アプリケーション削減プロセスのサマリーを示します。各ステップについては、ドキュメントの後半で詳しく説明します。

  1. Addressables パッケージと CCD Management パッケージをインストールします。
  2. CCD でバケットを設定します。
  3. CCD 経由で送信するための新しいシーンをゲーム用に作成するか、既存のレベルを使用します。
  4. Unity エディターでアセットを設定します。
  5. Addressables を通じてコンテンツを呼び出すスクリプトを設定します。
  6. 新しいアセットを CCD ダッシュボードにリリースします。

これらのステップを完了するには、以下のものが必要です。

  • Unity エディター 2019.4 以降
  • Addressables (最新バージョン、この例ではバージョン 1.19.15 を使用)
  • CCD Management (最新バージョン、この例ではバージョン 2.0.1 を使用)

必要なパッケージをインストールする

最初に、必要な Addressables パッケージと CCD Management パッケージがインストールされていることを確認します。

  1. Unity エディターで、Window (ウィンドウ) > Package Manager (パッケージマネージャー) を選択します。
  2. Addressables を検索し、バージョン 1.19.15 以上を選択して Install (インストール) を選択します。
  3. CCD Management を検索し、バージョン 2.0.1 以上を選択して Install (インストール) を選択します。

CCD でバケットを設定する

以下のステップは、Unity Gaming Services ダッシュボードでバケットを作成して設定する方法を示しています。

  1. CCD ダッシュボード の手順を実行して、CCD 内でバケットにアクセスします。

  2. バケット の手順を実行してバケットを作成します。

    1. 必ず Bucket write conditions (バケットの書き込み条件) を Open to all (全員に公開) に設定してください。
    2. Environment (環境) を選択する際には production (本番) に設定します。
  3. Create (作成) を選択してバケットを作成します。

  4. バケットのリストからバケットを選択します。

  5. Upload Content (コンテンツをアップロード) を選択し、コンピューターから任意のファイルをアップロードします。

    このステップは、バケットの URL を作成して取得するためだけのものです。最初のリリースを作成したら、このファイルは削除してかまいません。

  6. ページを更新し、リリースを作成 します。

  7. Releases (リリース) タブからリリースを選択します。

  8. Addressable Remote Path URLs (アドレス指定可能リモートパス URL) タブを選択します。

  9. Badge: Latest (バッジ: 最新) の URL を、後で Unity エディターで使用するためにコピーします。

Unity エディターを設定する

Unity エディターで以下の設定を行い、アプリケーションのサイズ削減プロセスを続行します。

  1. Window (ウィンドウ) > Asset Management (アセット管理) > Addressables > Groups (グループ) に移動します。
  2. Addressable アセットを使用したことがない場合は、Create Addressables Settings (Addressables 設定を作成) を選択する必要があります。
  3. Addressables Groups (Addressables グループ) ウィンドウで、Profile (プロファイル) > Manage Profiles (プロファイルの管理) を選択します。
  4. Default (デフォルト) プロファイルを選択します。
  5. Remote (リモート) を Custom (カスタム) に設定します。
  6. Remote (リモート) フィールドを展開し、Remote.LoadPath を先ほど保存した URL に設定します。
  7. Unity エディターのメインウィンドウから、Window (ウィンドウ) > Asset Management (アセット管理) > Addressables > Settings (設定) を選択します。
  8. Build Remote Catalog (リモートカタログをビルド) を有効にします。
  9. Build & Load Paths (ビルドパスとロードパス) を Remote (リモート) に設定します。

シーンを準備する

次に、CCD を通じてロードするシーン (1 つまたは複数) を準備します。初期レベルとは異なるシーンを少なくとも 1 つ用意してください。

シーンの作成はこのユースケースの範囲外です。詳細については、Unity マニュアルの シーン ドキュメントを参照してください。

  1. Unity エディターの Project (プロジェクト) タブにあるアセットの中からシーンを見つけます。

  2. Inspector タブで、Addressable を有効にします。

    または、Project (プロジェクト) タブから Addressables Groups (Addressables グループ) タブの Default Local Group (デフォルトローカルグループ) にシーンをドラッグします。

  3. Addressables Groups (Addressables グループ) タブ内でアセットを右クリックし、わかりやすくするために Simplify Addressable Names (Addressable の名前を単純化) を選択します。

  4. Default Local Group (デフォルトローカルグループ) を選択します。

  5. Inspector で、以下を行います。

    1. Build & Load Paths (ビルドパスとロードパス) を (<カスタム>) に設定します。
    2. Build Path (ビルドパス) を RemoteBuildPath に設定します。
    3. Load Path (ロードパス) を RemoteLoadPath に設定します。
  6. Addressables Groups (Addressables グループ) ウィンドウに戻り、Build (ビルド) > New Build (新しいビルド) > Default Build Script (デフォルトビルドスクリプト) を選択します。

    すでにビルドを実行している場合は、Build (ビルド) > Update a Previous Build (以前のビルドを更新) を選択し、ビルドの .bin ファイルを選択することでそのビルドを更新できます。

ビルドを比較する (任意)

この任意のステップでは、シーンを含むアプリケーションを 1 回、シーンを含まないアプリケーションを 1 回ビルドして、ビルドサイズを比較します。このテストアプリケーションでは、およそ 30 MB の差があります。より多くのレベルやアセットを含む大規模なアプリケーションでは、サイズの差はさらに大きくなります。

シーンとアセットを含むリリースのサイズ (左) と、シーンを含まないリリースのサイズ (右)。

スクリプトを設定する

メインシーン (プロジェクトと共にビルドされるシーン) で、次のレベルをロードするボタンまたはイベントを必ずゲーム内に追加してください。

競合を避けるために、CCD を通じて送信するシーンはすべてビルドから除外してください。

以下のサンプルスクリプトをゲーム内のボタンにアタッチできます。Addressable の名前 (この例では sceneName) を必ず Inspector に入力してください。

C#

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
using UnityEngine.AddressableAssets;
 
public class LoadSceneCCD : MonoBehaviour
{
    public string sceneName = "";
 
    public void LoadTargetScene()
    {
        Addressables.LoadSceneAsync(sceneName, UnityEngine.SceneManagement.LoadSceneMode.Single, true);
    }
}

ダッシュボードにアップロードするためのアセットバンドルを準備する

以下のステップを実行して、ダッシュボードにアップロードするシーンアセットを準備します。

  1. Unity エディターで、Window (ウィンドウ) > Asset Management (アセット管理) > Addressables > Groups (グループ) を選択します。
  2. Build (ビルド) > New Build (新しいビルド) > Default Build Script (デフォルトビルドスクリプト) を選択します。
  3. ビルドが完了したら、ローカルドライブで、プロジェクトフォルダーに移動し、次に ServerData\StandaloneWindows64 に移動します。このフォルダーは、ビルド対象のプラットフォームによって異なる場合があります。
  4. 末尾が .hash と .bundle のファイルをメモします。

ダッシュボードにアップロードする

前のステップで生成した、最近ビルドされた .hash ファイルと .bundle ファイルをアップロードします。これが初めてのアップロードである場合は、すべてのファイルを選択してアップロードします。

  1. CCD ダッシュボード のバケットページに戻ります。
  2. 作成したバケットを選択します。
  3. Latest (最新) タブの Entries (エントリー) で、Upload Content (コンテンツをアップロード) タブを選択します。
  4. 前のステップでビルドしたファイルを参照して選択します。
  5. Upload Files (ファイルをアップロード) を選択します。
  6. アップロードが完了したら、Refresh Page (ページを更新) を選択します。
  7. Create Release (リリースを作成) を選択し、新しいコンテンツに Latest (最新) バッジを適用します。

ビルドをテストする

CCD シーンのロードをトリガーするボタンまたはアクションをクリックして、ビルドをテストできます。すべてがうまくいけば、少し遅れて CCD シーンがロードされるはずです。ビルドにはメインシーンのみが含まれ、CCD を通じてロードしたいレベルは含まれないようにする必要があります。そうしないと、アプリケーションのサイズが小さくなりません。