Publisher Content パッケージ
Publisher Content は、プラットフォームがインストール、バックグラウンド ダウンロード、整合性の検証、ユーザー エクスペリエンスの管理を引き続き行いながら、補足的なゲーム コンテンツを独自のコンテンツ配信ネットワーク (CDN) でホストできるパッケージの種類です。Publisher Content パッケージは、XBOX One ファミリ本体と、October 2026 GDK (GDK 2610) 以降の XBOX Series X|S 本体でサポートされています。 Publisher Content パッケージは、実行時にはダウンロード コンテンツ (DLC) と同様に動作します。ベース ゲームと共にインストールされ、プロセスにマウントされ、ゲームの終了時にマウント解除されます。DLC とは異なり、Partner Center を通じて取り込まれることはなく、ストア ID を持たず、Microsoft Store を通じて販売またはライセンス付与されることもありません。どのコンテンツを出荷するか、いつ更新するか、誰が受け取るかについては、お客様のサービスが信頼できる情報源となります。Publisher Content を使用する場合
次のいずれかを行う場合は、Publisher Content の使用を検討してください。- ストアへの取り込みを経ずに、小規模なライブサービスの更新 (構成データ、調整テーブル、小さなアセット パック) を出荷する。
- ベース ゲームのすべてのプレイヤーが自動的に受け取る、パブリッシャー ブランドのアドオン コンテンツを配信する。
- 他のプラットフォームのゲーム向けに既に運用している既存の CDN とコンテンツ パイプラインを再利用する。
- CDN レイヤーでロールアウトのタイミング、地域ターゲティング、または A/B テストを制御し続ける。
要件と制約
- ベース ゲームごとに 1 つの Publisher Content パッケージ。
- ベース ゲームを所有するすべてのプレイヤーが利用できます。ユーザーごとのライセンス チェックはありません。
- XBOX One ファミリ本体と XBOX Series X|S 本体でサポートされています。
- ベース ゲームと Publisher Content パッケージは、同じパッケージ形式を使用する必要があります。たとえば、ベース ゲームが MSIXVC2 としてパッケージ化されている場合、Publisher Content パッケージも MSIXVC2 である必要があります。
- Publisher Content パッケージは小さい、つまりサイズが 1 GB 未満である必要があります。
- Publisher Content パッケージはパブリッシャーが提供する署名素材で署名され、ベース ゲームには対応する公開素材が埋め込まれるため、プラットフォームはそのベース ゲームに属すると主張する Publisher Content を検証できます。ベース ゲーム自体は、他のタイトルと同じ方法で署名されます。署名素材はパッケージ形式によって異なります。
- XVC および MSIXVC — 未加工の CNG 署名キー。RSA-4096 が必要です。
- MSIXVC2 — RSA-4096 キーを持つ X.509 証明書。証明書は現在有効であり、アクセス可能な RSA 秘密キーを持ち、デジタル署名が許可されている必要があります。
プラットフォームは、Publisher Content パッケージのコンテンツの機密性を提供しません。Microsoft Store の DLC とは異なり、Publisher Content は配信用に暗号化されないため、CDN からファイルをダウンロードした人は誰でもその内容を調べることができます。ペイロードの一部に機密性が必要な場合は、パッケージ化する前に、コンテンツ自体の内部でその部分を暗号化してください。
各要素の連携のしくみ
大まかな流れは次のとおりです。- MicrosoftGame.config で、ベース ゲームに マニフェスト URL を宣言します。この URL は、CDN でホストし、いつでも更新できる小さな JSON ファイルを指します。
- ストア ID でベース ゲームを参照する Publisher Content パッケージ を作成します。
- パブリッシャーの署名素材で Publisher Content パッケージに署名します。ベース ゲームには対応する公開素材が埋め込まれるため、プラットフォームはそのベース ゲームに属すると主張する Publisher Content を検証できます。
- プレイヤーがベース ゲームをインストールすると、プラットフォームはマニフェストを取得し、現在の Publisher Content パッケージの CDN URL を読み取って、そのインストールをキューに登録します。
- 実行時に、ゲームはインストール済みのパッケージを列挙し、DLC をマウントするのと同じ方法で Publisher Content パッケージをマウントします。
ベース ゲームを設定する
ベース ゲームの MicrosoftGame.config ファイルに、ManifestUrl 子要素を含む PublisherContent 要素を追加します。URL は、ゲームを実行するすべてのデバイスから到達可能である必要があります。
Publisher Content パッケージを作成する
Publisher Content のペイロードと共に MicrosoftGame.config を作成します。PublisherContentBaseProduct 要素を使用して、ストア ID でベース ゲームを参照します。
Publisher Content パッケージには
AllowedProducts 要素を含めないでください。この要素はパッケージを標準の DLC として識別するものであり、PublisherContentBaseProduct と相互に排他的です。マニフェストを作成する
ベース ゲームで宣言したManifestUrl に、小さな JSON マニフェストをホストします。マニフェストには、CDN 上の現在の Publisher Content パッケージを指す単一の url フィールドが含まれます。公開後は、その URL にある Publisher Content を変更しないでください。代わりに、新しい Publisher Content パッケージのバージョンはそれぞれ新しい URL に公開し、それに応じてマニフェストを更新してください。
パブリッシャーの署名素材を生成する
パブリッシャーの署名素材はビルド マシン上に置かれ、makepkg がベース ゲームと Publisher Content パッケージをパックする際に名前 (または拇印) で参照されます。正確な形式は、対象とするパッケージ形式によって異なります。
パブリッシャーの署名キーまたは証明書の秘密キーは、運用環境のシークレットとして扱ってください。秘密素材にアクセスできる人は誰でも、プラットフォームがお客様からのものとして受け入れる Publisher Content パッケージを作成できます。
XVC および MSIXVC パッケージの場合
ビルド マシン上の Windows CNG キー記憶域プロバイダーに RSA-4096 署名キーを作成します。 次の PowerShell の例では、MyTestPubXvcSigningKey という名前のエクスポート可能な RSA-4096 署名キーを Microsoft Software Key Storage Provider に作成します。
/usepublisherkey で makepkg pack に渡します。既定以外の CNG キー記憶域プロバイダーを使用する場合は、/publisherkeyprovider でその名前も渡します。
MSIXVC2 パッケージの場合
サブジェクト キーが RSA-4096 キーである X.509 証明書を作成し、証明書とその秘密キーをCurrentUser\My 証明書ストアにインストールします。
次の PowerShell の例では、CurrentUser\My に自己署名 RSA-4096 証明書を作成し、その .cer ファイルをエクスポートします。
.cer のパスまたは証明書の拇印を、/usepublishercert で makepkg pack に渡します。証明書が My 以外のストアにインストールされている場合は、/publishercertstore でその名前も渡します。
ベース ゲームと Publisher Content をパッケージ化する
両方のpack の呼び出しで、同じキーまたは証明書を参照する必要があります。
XVC および MSIXVC パッケージの場合
ベース ゲームをパッケージ化します。/publisherkeyprovider <providername> を追加します。
MSIXVC2 パッケージの場合
ベース ゲームをパッケージ化します。CurrentUser\My 以外のストアにインストールされている場合は、両方のコマンドに /publishercertstore <store> を追加します。
詳細については、パッケージの作成 (makepkg.exe) を参照してください。
公開と更新
Publisher Content パッケージは CDN でホストされ、Partner Center にアップロードすることはできません。
makepkg upload は、ルーズ形式とパッケージ形式のどちらの Publisher Content パッケージも拒否します。ベース ゲーム パッケージは、標準の Partner Center フローを通じて通常どおりアップロードされます。- パッケージ化された Publisher Content XVC を、マニフェストで参照した URL で CDN にアップロードします。
- マニフェスト JSON を、ベース ゲームの
ManifestUrl要素で宣言した URL にアップロードします。 - 通常どおり、Partner Center を通じてベース ゲームを申請して出荷します。
- 新しい Publisher Content パッケージを、新しい URL で CDN にアップロードします。古い Publisher Content パッケージは置き換えないでください。
- 新しいパッケージを指すように、マニフェストの
urlの値を更新します。 - 更新した JSON ファイルを、ベース ゲームの
ManifestUrl要素で宣言した URL にアップロードします。
