DLC の開発ワークフロー
MicrosoftGame.config を通じてベース ゲームとの関連付けを行う方法など、DLC コンテンツの構成方法の詳細については、Downloadable content (DLC) packages のドキュメントを参照してください。 DLC のインストールには次の 3 つの方法があります。1. Loose DLC 配置
Loose DLC の MicrosoftGame.config とアセット ファイルを指すディレクトリをインストールします。 XBOX:2. DLC パッケージのローカル インストール
makepkg で作成された .xvc/.msixvc をインストールします。 XBOX:3. Store から DLC パッケージをインストール
開発サンドボックスにサインインしたテスト アカウントで、Store アプリで DLC 製品ページを検索するかダイレクト リンクを開いてインストールします。DLC インストールの検証
XBOX:get-appxpackage を使用して、特定のタイトル用にインストールされた DLC を確認することもできます。Dependencies セクションに注目してください。
DLC の購入とインストール
カタログの列挙方法とアドオン購入の提供方法を理解するには、基本的な Store 操作を参照してください。アドオン製品は、[XStoreProduct](/reference/system/xstore/xstore_members).hasDigitalDownload を確認することで DLC かどうかを判定できます。
Store から DLC が購入されると、DLC はダウンロードのためにキューに入れられます。
XStoreShowPurchaseUiAsync を使用して DLC を購入した場合、DLC はダウンロードのためにキューに入れられません。代わりに、ゲームは以下のコードに従って手動でダウンロードを要求する必要があります。オプションとして、進行状況を追跡するモニターを作成できます。
パッケージ識別子は特定のパッケージを識別する不透明な文字列です。識別子はパッケージごとに一意ですが、ゲームの起動インスタンスごとに異なります。したがって、現在のセッション以外で識別子を保存または再利用しないでください。
シナリオに応じて、次の方法でパッケージの識別子を取得できます。
- XStoreDownloadAndInstallPackagesAsync を呼び出してパッケージをダウンロードおよびインストールした後、XStoreDownloadAndInstallPackagesResult を呼び出してそれらのパッケージのパッケージ識別子を取得できます。
- XPackageEnumeratePackages を呼び出し、列挙された各パッケージについて XPackageEnumerationCallback コールバック関数に渡される XPackageDetails 構造体からパッケージ識別子を取得することで、既にダウンロードおよびインストールされているパッケージのパッケージ識別子を取得できます。
- XPackageGetCurrentProcessPackageIdentifier を呼び出すことで、現在のゲームのパッケージ識別子を取得できます。
DLC パッケージの列挙
DLC のインストール方法に関係なく、使用する前にゲームでインストールされている DLC を列挙する必要があります。インストールされている DLC を列挙するときにパッケージ識別子が取得されます。DLC パッケージがインストールされたことの検出
DLC のライセンス取得
開発中は、開発中の DLC ライセンス供与のテストのメモを参照してください。 ベース ゲームは、ユーザーに DLC のコンテンツへのアクセスを許可すべきかを判断するために、DLC のライセンスを取得する必要があります。 ゲームは通常、制限的ライセンスを使用します。ゲームがパッケージのライセンスを取得すると、パッケージへのアクセスはそのデバイスと製品のインスタンスにロックされます。別のインスタンスまたはデバイスがアクセス権とライセンスを取得する前に、ゲームはライセンスを解放する必要があります。ゲームが制限的ライセンスを使用するように構成されていることを確認するには、Microsoft アカウント担当者にお問い合わせください (パートナー センターでは構成できません)。詳細については、オープン ライセンスと制限的ライセンスを参照してください。 ゲームはライセンスを解放する必要があるため、取得したすべての DLC ライセンスを追跡し、不要になったときや終了時にそれらを解放する責任があります。ゲームがライセンスの解放に失敗した場合、タイムアウト期間の後にライセンスは自動的に解放されます。DLC のライセンス ソースを判定する
識別子の種類に応じて XStoreCanAcquireLicenseForPackageAsync または XStoreCanAcquireLicenseForStoreIdAsync を使用すると、DLC の次の状況を判定できます。- ライセンス供与可能かどうか。可能でなければ購入オプションを提示できます
- ディスクによるライセンス供与か、デジタル ライセンスによるライセンス供与か
DLC のマウントとアンマウント
DLC ライセンスが正常に取得されると、DLC コンテンツをマウントしてアクセスできます。DLC のアンインストール
DLC パッケージをアンインストールするには XPackageUninstallPackage を使用します。パッケージは最初にアンマウントする必要があります。Smart Delivery と DLC
XBOX Series X/S タイトルは、XBOX One タイトル向けに作成された DLC をライセンス供与およびマウントできます。通常、このシナリオは DLC パッケージがゲームで使用されるデータを含まない場合に発生します。確認する唯一の方法は、ERA DLC の package.appxmanifest 内のAllowedProduct ID (GUID) が、パートナー センターで製品に割り当てられているレガシー XBOX 製品 ID と一致するかどうかを確認することです。
一致しない場合、そのタイトルはおそらく廃止された XBOX Developer Portal (XDP) から移行されたものであり、XBOX Series X/S 版が XBOX One の製品 ID に割り当てられているため、Store からダウンロードしたパッケージでのみ機能します。開発目的の場合、トラブルシューティングセクションのメモを参照してください。
