> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GDK のダウンロード可能コンテンツ (DLC) パッケージ

> Microsoft Game Development Kit のダウンロード可能コンテンツ (DLC) パッケージ

Microsoft Game Development Kit (GDK) のダウンロード可能コンテンツ (DLC) パッケージは、メインのゲームとは別のパッケージです。DLC パッケージは、ゲーム本体とは独立して、または購入バンドルの一部として販売およびダウンロードされます。

DLC パッケージの作成、公開、および利用のプロセスは、XBOX One コンソール タイトルと概念的には同じですが、一部のパッケージ ファイル形式やランタイム API は更新されて、より使いやすくなっています。

DLC パッケージは同じパッケージング構造を使用して PC でもサポートされ、コンソールと PC の両方で同じランタイム API を使用してアクセスされます。

XBOX Series X|S および XBOX One コンソールでは、両方のプラットフォームで使用できる DLC パッケージ スタブ ファイルを生成できます。DLC パッケージに実際のコンテンツの違いが含まれる場合は、`TargetDeviceFamilyForDLC` 要素を使用してプラットフォーム固有の DLC パッケージを生成します。

## メイン パッケージの ID の設定

1. メイン ゲーム製品の **Game Setup** ページで、メイン アプリケーション パッケージの Store ID (12 文字の英数字文字列) を確認します。(例: 9PNX12345AAA)

2. メイン パッケージの MicrosoftGame.config ファイルに `StoreId` 要素を追加します。

```xml theme={null}
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- Content omitted for brevity. -->
    <StoreId>**REPLACE WITH STOREID**</StoreId>
</Game>
```

## DLC パッケージの作成

1. メイン製品の下にある **Add-Ons** メニューから、Partner Center 内で DLC パッケージ アドオンを作成します。

2. すべての DLC パッケージ コンテンツを 1 つのディレクトリに配置します。

3. DLC パッケージ コンテンツと同じディレクトリに、以下のサンプル データを使用して MicrosoftGame.config ファイルを作成します。

4. この DLC パッケージが作成される対象の **Target Device Family** を `TargetDeviceFamilyForDLC` フィールドに指定します。使用できる値は XBOX One、XBOX Series X|S、または PC です。XBOX One および XBOX Series X|S では指定が必要で、PC では makepkg.exe を使用して DLC .MSIXVC ファイルを生成する際に `/pc` フラグが使用される限り任意です。

5. Partner Center の **Game Setup** ページでメイン アプリケーション パッケージの **Package/Identity/Name** フィールドを確認し、Identity Name を `MainPackageDependency` フィールドに入力します。たとえば、MyPackageName。

6. Partner Center から アドオン/DLC パッケージの Store ID (12 文字の英数字文字列) を確認し、次のように `StoreId` フィールドに入力します。

7. メイン ゲーム製品の **Game Setup** ページで、メイン アプリケーション パッケージの Store ID (12 文字の英数字文字列) を確認します。次のように `AllowedProduct` フィールドに入力します。たとえば、9PNX12345AAA。

```xml theme={null}
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <Identity Name="**REPLACE**"
        Publisher="**REPLACE**"
        Version="1.0.0.0"/>
    <ShellVisuals DefaultDisplayName="**REPLACE**"
                  PublisherDisplayName="**REPLACE**"
                  StoreLogo="Storelogo.png"
                  Square150x150Logo="Logo.png"
                  Square44x44Logo="SmallLog.png"
                  Description="**REPLACE**"
                  BackgroundColor="#000040"
                  SplashScreenImage="SplashScreen.png"/>
    <StoreId>**REPLACE WITH STOREID OF ADD-ON / DLC**</StoreId>
    <TargetDeviceFamilyForDLC>**REPLACE**</TargetDeviceFamilyForDLC>
    <AllowedProducts>
      <AllowedProduct>**REPLACE WITH STOREID OF BASE GAME**</AllowedProduct>
    </AllowedProducts>

<!-- The Desktop Registration section is for PC only. -->
    <DesktopRegistration>
      <MainPackageDependency Name="**REPLACE_WITH_IDENTITY_OF_PARENT_PRODUCT**" />
      <ProcessorArchitecture>x64</ProcessorArchitecture>
    </DesktopRegistration>
</Game>
```

8. すべてのゲーム コンテンツを含む単一のフォルダーを含むフォルダーで Microsoft Game Development Kit (GDK) コマンド プロンプトを開き、次のコマンドを実行します。

`MakePkg genmap /f layout.xml /d <Your_dlc_folder>`

9. PC 用の DLC を作成する場合は、次のコマンドを使用します。

`MakePkg pack /f layout.xml /lt /d <Your_dlc_folder_name> /pc /pd <Output_Folder_Name>`

10. コンソール用の DLC を作成する場合は、次のコマンドを使用します。

`MakePkg pack /f layout.xml /lt /d <Your_dlc_folder_name> /pd <Output_Folder_Name>`

以前の SDK では、`/ProductID` フラグを付けてメイン ゲームの Product ID GUID をコマンド ラインで渡していました。
DLC パッケージの関係を構成する MicrosoftGame.Config モデルでは、`/ProductID` パラメーターを使用しないでください。MakePkg は、MicrosoftGame.config ファイルにリストされた StoreID に基づいて、適切な情報をパッケージに自動的に配置します。

## 実行時にゲームから DLC パッケージにアクセスする

DLC パッケージ内のコンテンツを利用する基本的な手順は次のとおりです。

1. [パッケージを列挙する](/reference/system/xpackage/functions/xpackageenumeratepackages)
2. [対象パッケージに対する有効なユーザー ライセンスを確認する](https://learn.microsoft.com/build/store/commerce/fundamentals/xstore-manage-and-license-optional-packages)
3. 列挙結果から `packageIdentifier` を取得し、[XPackageMount](/reference/system/xpackage/functions/xpackagemount) API に渡します。

XBOX Series X|S コンソールでは、MicrosoftGame.config の `DlcCompatibility` フィールドに `XboxOne` を指定しない限り、XBOX Series X|S 用の `TargetDeviceFamilyForDLC` を持つ DLC パッケージのみを利用できます。

```xml theme={null}
    <VirtualMachine>
        <DlcCompatibility>XboxOne</DlcCompatibility>
    </VirtualMachine>
```

XBOX Series X|S の DLC は高速ストレージにのみインストールできる一方、XBOX One の DLC にはそのような制限がないため、ゲームをオプトインする前にこの点を考慮に入れるようにしてください。

## DLC パッケージのデプロイとテスト

DLC パッケージをインストールする前に、必ずメインのゲーム パッケージをインストールしてください。

XBOX コンソールの場合は、次のコマンドで DLC パッケージをインストールします。
`xbapp install <Your_DLC_Package.xvc>`

PC の場合は、次のコマンドで DLC パッケージをインストールします。
`wdapp install <Your_DLC_Package.msixvc>`

DLC コンテンツはルース ファイルを含むディレクトリからも登録でき、Microsoft Store からダウンロードしたパッケージでのテストも可能です。

詳細については、[ダウンロード可能コンテンツの管理とライセンス](https://learn.microsoft.com/build/store/commerce/fundamentals/xstore-manage-and-license-optional-packages) を参照してください。

## リファレンス API ドキュメント

* [XPackage (API の内容)](/reference/system/xpackage/xpackage_members)
  * 関数
    * [xpackageenumeratepackages](/reference/system/xpackage/functions/xpackageenumeratepackages)
    * [XPackageMount](/reference/system/xpackage/functions/xpackagemount)


## Related topics

- [ダウンロード可能なコンテンツ (DLC) の管理とライセンス供与](/ja-jp/publishing/xstore-commerce/xstore-dlc.md)
- [Games-as-a-Service (GaaS) のサポート](/ja-jp/build/core-features/common/packaging/supporting-games-as-a-service.md)
- [クロスネットワークマルチプレイヤーの実装例: MMO](/ja-jp/services/xbox-services/multiplayer/concepts/live-console-xr007-mmo-example.md)
- [Certification PC BVT ガイド](/ja-jp/publishing/game-publishing/concepts/certification/certification-pc-bvt-guide.md)
- [Submission Validator の品質チェック](/ja-jp/build/core-features/common/packaging/subval/submissionvalidator-tests.md)
