Unity Gaming ServicesのCloud Content Delivery
Unity Gaming Services (UGS)
には、配信済みのゲームに対して一部アセットを更新したり、
運用を効率化するためのコンテンツ配信の仕組みがあります。
それが、Cloud Content Delivery(CCD)
です。
UGS
側で更新用アセットをアップロードしておくストレージが提供され、
バランス調整用のデータ更新を行ったり、
アップデート時の差分データを配信したりできます。
Cloud Content Deliveryを使用するための準備
UnityEditor上でPackage Manager
を開き、以下の手順でCCD Management
をインストールします。
- 左側の雲のアイコンを選択します。
UGS
のパッケージ一覧からCCD Management
を選択します。Install
をクリックします。
インストールが完了すると、Project Settings
のServices
内に
Cloud Content Delivery
が追加されます。
「Go to Dashboard」を押すと、ブラウザで Unity Cloud
の Cloud Content Delivery
管理画面を開けます。
料金形態について
UGS
の中には無料で使える機能も多くありますが、CCD
については従量課金制となっています。
2025年現在の目安としては以下の様になります。
項目 | 無料枠 | 超過後の課金 | 補足 |
---|---|---|---|
ストレージ容量 | 5 GB/月 | 約 $0.08/GB/月 | 使用中のアセットの合計サイズに基づく |
配信転送量 | 50 GB/月 | 約 $0.12/GB | プレイヤーへの配信量(CDN経由)に基づく |
API リクエスト | 無制限(現在は無料) | - | CCDの管理操作・リリース等に使用 |
月間のストレージ使用量が5GB
を超えなければ無料です。
ユーザーへの配信時の転送量は、月間50GB
までは無料になります。
それらを超えると超過分に応じて請求が発生します。
個人開発など、小規模なゲームであれば十分無料の範囲内で運用出来ると思います。
一方ある程度の規模があるアプリや、想定外にユーザー数が増えてしまった場合は注意が必要です。
Cloud Content Deliveryのセットアップ
バケットを作成する
バケットはアセットを保管する単位です。
Unity Cloud
のCloud Content Delivery
にアクセスします。- バケットを選択します。
Create Bucket
かCreate new bucket
のボタンを押します。
Bucket Name
(バケットの名前)Description
(説明文)
を入力し、Next
を押します。
問題なければCreate
を押します。
これでバケットが作成されました。
AddressablesとCCDを連動させる
Addressables
のセットアップがまだの場合はこちらもご確認ください。
Unity Editor
のメニューから、Window
→Asset Management
→Addressables
→Profiles
を選択します。
Addressables Profiles
ウィンドウが開くので、Remote
のドロップダウンリストを操作します。
今回は事前にバケットを作成しましたが、ここから環境やバケットを作成することも出来ます。
Custom
からCloud Content Delivery
→Specify the Environment
〜→production
→Test
→latest
を選択しました。
これで、production
環境のTest
バケットのlatest
(最新バージョン)と紐付けられました。
ビルドしたアセットをアップロードする
Addressables Groups
ウィンドウを開いて
新しく、CloudContents
というグループを追加しました。
Inspector
上で、Build & Load Paths
をRemote
に変更します。
次に、Addressables Groups
ウィンドウのBuild to CCD
→Default Build Script
を実行します。
ダッシュボードからバケットの内容を確認すると先ほどビルドしたファイルがアップロードされているのが分かります。
他にもAPI
やCLI
(コマンドラインツール)を使用したアップロード方法も提供されています。
ダウンロードについて
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("アセットのロードに失敗しました");
}
}
}
まとめ
今回は、UGS
のCloud Content Delivery
について解説しました。
Addressables
とCloud Content Delivery
に対応しておけば、
ある程度の内容ならストア上でアプリを更新しなくてもゲーム内容を調整出来ます。
ユーザーとしてもアプリの更新をダウンロードしてくる必要もなくなり、
ゲーム内でデータの更新が完了し新しい体験が出来ることになります。
便利な一方でCCD
は従量課金制となっています。
開発中のアプリの想定ユーザー数やファイルサイズを元に一度試算してみてください。
課金が発生する場合は、広告等利益が発生する仕組みも考える必要が出てきます。
もし使えそうなら導入を検討してみてください。
📣おしらせ!
Unity Asset Storeでサマーセールが開催中です。