Unity Gaming ServicesのCloud Content Delivery

Unity Gaming Services (UGS)には、配信済みのゲームに対して一部アセットを更新したり、

運用を効率化するためのコンテンツ配信の仕組みがあります。

それが、Cloud Content Delivery(CCD)です。

UGS側で更新用アセットをアップロードしておくストレージが提供され、

バランス調整用のデータ更新を行ったり、

アップデート時の差分データを配信したりできます。

Cloud Content Deliveryを使用するための準備

UnityEditor上でPackage Managerを開き、以下の手順でCCD Managementをインストールします。

  1. 左側の雲のアイコンを選択します。
  2. UGSのパッケージ一覧からCCD Managementを選択します。
  3. Installをクリックします。

インストールが完了すると、Project SettingsServices内に

Cloud Content Deliveryが追加されます。

「Go to Dashboard」を押すと、ブラウザで Unity CloudCloud Content Delivery 管理画面を開けます。

料金形態について

UGSの中には無料で使える機能も多くありますが、CCDについては従量課金制となっています。 2025年現在の目安としては以下の様になります。

項目無料枠超過後の課金補足
ストレージ容量5 GB/月約 $0.08/GB/月使用中のアセットの合計サイズに基づく
配信転送量50 GB/月約 $0.12/GBプレイヤーへの配信量(CDN経由)に基づく
API リクエスト無制限(現在は無料)-CCDの管理操作・リリース等に使用

月間のストレージ使用量が5GBを超えなければ無料です。 ユーザーへの配信時の転送量は、月間50GBまでは無料になります。 それらを超えると超過分に応じて請求が発生します。 個人開発など、小規模なゲームであれば十分無料の範囲内で運用出来ると思います。 一方ある程度の規模があるアプリや、想定外にユーザー数が増えてしまった場合は注意が必要です。

Cloud Content Deliveryのセットアップ

バケットを作成する

バケットはアセットを保管する単位です。

  1. Unity CloudCloud Content Deliveryにアクセスします。
  2. バケットを選択します。
  3. Create BucketCreate new bucketのボタンを押します。
  • Bucket Name(バケットの名前)
  • Description(説明文)

を入力し、Nextを押します。

問題なければCreateを押します。

これでバケットが作成されました。

AddressablesとCCDを連動させる

Addressablesのセットアップがまだの場合はこちらもご確認ください。

Unity Editorのメニューから、WindowAsset ManagementAddressablesProfilesを選択します。 Addressables Profiles ウィンドウが開くので、Remoteのドロップダウンリストを操作します。 今回は事前にバケットを作成しましたが、ここから環境やバケットを作成することも出来ます。

CustomからCloud Content DeliverySpecify the Environment〜→productionTestlatest を選択しました。

これで、production環境のTestバケットのlatest(最新バージョン)と紐付けられました。

ビルドしたアセットをアップロードする

Addressables Groupsウィンドウを開いて 新しく、CloudContentsというグループを追加しました。

Inspector上で、Build & Load PathsRemoteに変更します。

次に、Addressables GroupsウィンドウのBuild to CCDDefault Build Scriptを実行します。

ダッシュボードからバケットの内容を確認すると先ほどビルドしたファイルがアップロードされているのが分かります。

他にもAPICLI(コマンドラインツール)を使用したアップロード方法も提供されています。

ダウンロードについて

Addressablesを使用しているので、Addressablesの仕組みに則ってダウンロードします。

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public class AssetLoader : MonoBehaviour
{
    public string assetKey = "RemoteAsset";
    
    private async void Start()
    {
        // 非同期でアセットをロード
        AsyncOperationHandle<GameObject> handle = Addressables.LoadAssetAsync<GameObject>(assetKey);
        GameObject loadedAsset = await handle.Task;
        
        if (handle.Status == AsyncOperationStatus.Succeeded)
        {
            Instantiate(loadedAsset);
        }
        else
        {
            Debug.LogError("アセットのロードに失敗しました");
        }
    }
}

まとめ

今回は、UGSCloud Content Deliveryについて解説しました。 AddressablesCloud Content Deliveryに対応しておけば、 ある程度の内容ならストア上でアプリを更新しなくてもゲーム内容を調整出来ます。 ユーザーとしてもアプリの更新をダウンロードしてくる必要もなくなり、 ゲーム内でデータの更新が完了し新しい体験が出来ることになります。 便利な一方でCCDは従量課金制となっています。 開発中のアプリの想定ユーザー数やファイルサイズを元に一度試算してみてください。 課金が発生する場合は、広告等利益が発生する仕組みも考える必要が出てきます。 もし使えそうなら導入を検討してみてください。

📣おしらせ!

Unity Asset Storeでサマーセールが開催中です。

🔗関連ページ