Unity を検索

Cloud Content Delivery と Addressable に関するご質問について

2021年1月5日 カテゴリ: Engine & platform | 6 分 で読めます
取り上げているトピック
シェア

Is this article helpful for you?

Thank you for your feedback!

Addressable アセットシステムは、多くの Unity ユーザー、特に管理すべきコンテンツをたくさん持っているユーザーにとって不可欠な機能です。Cloud Content Delivery を使ったプレイヤーへのアセット配信についていくつかご質問を受けましたので、この記事においてクイックスタートガイドという形でお答えいたします。

Cloud Content Delivery(CCD)は、非常に強力な技術スタックを組み合わせて、ゲーム開発者とプレイヤーの双方にとって、シームレスなコンテンツ更新のビルドと公開を可能にします。簡単なアセット管理と、全世界に広がる巨大なコンテンツ配信ネットワーク(CDN)を組み合わせることで、ゲーム開発者が運営中のゲームへ更新を配信するためのサービスとしては初めて、本当にエンドツーエンドなサービスとしてご提供するものとなっています。

現状の作り付けがどのようなものであっても、俊敏性と使いやすさを追求できるように、Cloud Content Delivery は設計されています。また、すでに Unity エンジンを使用している場合は、より簡単に使い始めることができます。

フォーラムでは、クライアントのパートナーとのやり取りやアンケート回答の中で、Cloud Content Delivery のエンジン内統合を活用する方法について質問されています。この記事では、その中でも最も重要なものの 1 つである Addressable に焦点を当てます。

コンテンツ管理を短時間で済ませる

簡単に言えば、Addressable アセットシステムは、ゲームのアセットを保存してカタログ化し、自動的に検索して呼び出すことができるようにするものです。Cloud Content Delivery は、コードから完全に分離された CDN パートナーである Akamai を介して、これらのアセットを直接プレイヤーにプッシュします。これにより、ビルドサイズが大幅に削減され、アップデートを行う際にプレイヤーに新しいバージョンのゲームを丸ごとダウンロードしてインストールしてもらう必要がなくなります。

この機能の組み合わせは、ライブゲームの運営において非常に便利です。例えば、基本プレイ無料(F2P)モデルのゲームでは、ほとんどのプレイヤーはゲームをある程度進める前にプレイを止めてしまいます。ユーザーの 70% は初日のプレイを終えたらもう戻ってこないのです。また、大多数のプレイヤーに無関係なアセットをダウンロードさせることは、不必要なストレスを生じさせ、ダウンロードの待ち時間を長くしてしまい、さらにはプレイヤーをもたつかせたり、フラストレーションを溜めさせたりした結果、離脱させてしまうことにもなりかねません。

Cloud Content Delivery と Addressable アセットシステムを組み合わせて使用すると、特定のゲームモード、ミッション、イベントに必要なすべてのアセットを簡単にパッケージ化することができ、必要なときに必要なプレイヤーにのみプッシュされるようにすることができます。この原則をコンテンツパイプライン全体に拡大することで、プレイヤー体験とビジネスの両方に大きなプラスの影響を与えます。ライブゲームには常に更新が必要ですが、Cloud Content Delivery は、新しいコンテンツの展開プロセスを持続可能で、自動化され、俊敏で信頼性の高いものにしてくれます。

Cloud Content Delivery は純粋に使用量に応じて課金されるシステムで、配信されたアセットに対してのみ課金が発生します。つまり、アセットを一部のプレイヤーにのみ配信することで、使用する帯域幅を大幅に削減し、最終的にはコストを削減することができます。さらに、最初の 50GB の帯域幅を毎月無料で提供しているため、コンテンツを開発してテストしている間はコストをかけずに、ソフトローンチ時にサービスを試すことができます。

問題解決と実験

コンテンツの更新に適用される原則は、バグ修正にも適用されます。Addressable アセットシステムは、プレイヤーの手元で起きる問題の原因となっている、欠陥のあるアセットをすぐに見つけることができるように機能します。問題を特定して修正した後は、すべてのプレイヤーにゲームの再ダウンロードを強制することなく、新しいアセットを配置することができます。

Cloud Content Delivery のバッジ付与システムは、異なるビルドまたはバージョンを識別して自由に切り替えることができるため、実験が非常に簡単になります。例えば、異なるリソースバケットに「staging」や「production」などのタグを付けることで、ビルドパイプラインの中で様々なプロジェクトのサイクルを回すことが簡単になります。同様に、アセットをビルドの繰り返し更新されるバージョンとしてバンドルすることで、ボタンをクリックするだけで、不要な変更を取り消したり、失敗したアップデートをロールバックしたりできるように、簡単に前後にジャンプすることができます。

Cloud Content Delivery と Addressable アセットシステムを接続する

ここまで紹介したように Cloud Content Delivery を動作させるためには、Addressable をコマンドラインインターフェイス(CLI)に接続する必要があります。以下の 4 つの手順を実行してください。

  1. アセットを Addressable に設定する

    Cloud Content Delivery で Addressable アセットを管理する最初のステップは、必要なアセットを Addressable アセットとしてマークすることです。詳細は「Marking assets as Addressable」をご覧ください。

  2. グループを設定する

    次の重要な手順は、アセットをグループに配置することです。後でこれらのグループに基づいてアセットバンドルを生成する必要があるためです。詳細は「Using the Addressables window」をご覧ください。

  3. Cloud Content Delivery URL を使ってプロファイルを設定する

    次に、プロジェクトを Cloud Content Delivery プロジェクトにリンクする必要があります。これを行うには、カスタム URL を、希望する Addressables プロファイルの RemoteLoadPath として挿入します。この段階では、2 つのワークフローのパスを選択することができ、それぞれに独自のカスタム URL が存在します。

  • 基本的なワークフローでは、特定のバケットの最新のコンテンツが、次のような URL で指定されます:https://(ProjectID).client-api.unity3dusercontent.com/client_api/v1/buckets/(BucketID)/entry_by_path/content/?path=
  • バッジを使うワークフローでは、プロジェクトが特定のバッジで指定されたコンテンツにリンクされます。次のような URL で指定されます。
    https://(ProjectID).client-api.unity3dusercontent.com/client_api/v1/buckets/(BucketID)/release_by_badge/(BadgeName)/entry_by_path/content/?path=

     

上記の URL の例において使われているプレースホルダーは、以下の意味を持ちます。

  • 「(ProjectID)」は、Cloud Content Delivery プロジェクトの ID です。
  • 「(BucketID)」は、プロジェクト中で対話に用いる Cloud Content Delivery バケットのバケット ID です。
  • 「(BadgeName)」は、それを使って対話を行う特定の Cloud Content Delivery バッジの名前です。

カスタム URL を取得したら、次の手順を実行します。

  1. エディターで、Window > Asset Management > Addressables > Profiles を選択します。
  2. 対象のプロファイル行の RemoteLoadPath フィールドに URL を入力します。

URL を入力したプロファイルについて、プロジェクトはどこで Addressable アセットを取得するかを把握します。

  1. Addressable コンテンツのビルドと Cloud Content Delivery へのアップロードを行います。

    次に、Cloud Content Delivery で使用するプロファイルについては、後に Cloud Content Delivery プロジェクトに配置する Addressable コンテンツを生成する必要があります。

Addressable コンテンツをビルドすると、コンテンツカタログ(.json)、ハッシュファイル(.hash)、アセットバンドル(.bundle)ファイルが生成されます。この時点で、これらのファイルを Cloud Content Delivery CLI 経由で上記の手順で指定したバケットにアップロードする必要があります。

ここで Cloud Content Delivery の真価が発揮されます。Addressable バンドルがリンクされたバケットの場所を特定するとすぐに、そこにあるすべてのコンテンツを管理し、QA を行い、ステージングと本番環境の間を簡単に移動させることができます。

Unite Now 講演:Nifty backend management for live games

2020 年後半から、Nifty Games 社はさまざまな Unity 製品の中でも、特に Cloud Content Delivery と Addressable を使い込んでおり、同社のゲームタイトル『NFL Clash』で無駄のないスムーズなプレイヤー体験を実現しています。この講演では、Nifty 社の技術責任者である Ibs Rageh 氏が、ユーザーへの要求を最小限に抑えながらリリースを管理し、コンテンツをデプロイするための同社のプロセスについて、解説しています。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

Cloud Content Delivery の使用を開始する

以下に掲げた動画では、Cloud Content Delivery がゲームにどのような効果をもたらすのかを大まかに説明しています。こちらの動画をご覧いただいた上で、Cloud Content Delivery にぜひご登録ください。毎月最初の 50 GB の帯域幅は無料でご利用いただけます。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

2021年1月5日 カテゴリ: Engine & platform | 6 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

取り上げているトピック