XPackageChunkSelector
チャンクのセットを選択するための条件を定義します。
構文
typedef struct XPackageChunkSelector {
XPackageChunkSelectorType type;
union
{
const char* language;
const char* tag;
const char* feature;
uint32_t chunkId;
};
} XPackageChunkSelector
メンバー
type
型: XPackageChunkSelectorType
セレクターの種類です。
language
型: const char*
一致させる言語属性。"en-US" 英語 (米国) や "fr-FR" フランス語 (フランス) など。
tag
型: const char*
一致させるタグ属性。BigMap や SmallMap など。
feature
型: const char*
一致させる機能。"BigMaps" など。
chunkId
型: uint32_t
一致させるチャンク番号。
解説
インストール API の多くの操作に対するチャンクのセットを選択するには、XPackageChunkSelector
オブジェクトの配列を使用します。 このセクションでは、XPackageChunkSelector
オブジェクトの配列をチャンク ID のセットに変換するために使用されるルールについて説明します。 各 XPackageChunkSelector
には、セレクターの種類とセレクターの値があります。 チャンクで定義されているすべてのチャンク指定子がすべてのインストール セレクターと一致する場合、チャンクは含まれます。
パッケージには、ゲームを構成するすべてのファイルが含まれています。 ファイルは、チャンクと呼ばれる論理ユニットにグループ化できます。 チャンクには数値 ID があり、言語やユーザー定義タグなど、0 個以上のテキスト属性を持つこともできます。 多くの XPackage API はチャンクのグループに対して動作します。 これらの API は、XPackageChunkSelectors
の配列を使用して、API が使用するチャンクを記述します。 このセクションでは、XPackageChunkSelector
オブジェクトの配列をチャンク ID の配列に変換するために使用されるルールについて説明します。 各 XPackageChunkSelector
には、セレクターの種類とセレクターの値があります。 チャンクで定義されているすべての属性がすべてのチャンク セレクターと一致する場合、チャンクは含まれます。
次の表では、チャンク セレクター配列には、言語とタグという 2 つのセレクターがあります。
セレクターの種類 | セレクターの値 |
---|---|
言語 | en-US |
Tag | BigMap |
次の表に、さまざまな属性を持つチャンクのセットを定義する例を示します。
チャンク | Language | Tag |
---|---|---|
1 | en-US | (なし) |
2 | en-US; fr-FR | (なし) |
3 | fr-FR | (なし) |
4 | fr-FR | BigMap |
5 | fr-FR; en-US | BigMap; SmallMap |
6 | en-US | SmallMap |
上記の表では、チャンク セレクター配列で選択されたチャンクは、チャンク属性 1、2、5 を使用します。 チャンク セレクターで選択されていないチャンクは、チャンク属性 3、4、6 を使用します。
このチャンク配列の例では、次のことがわかります。
- チャンク セレクターの種類がチャンク属性と一致するのは、その指定子がチャンクで定義されている場合のみです。 チャンク 1 - 3 ではタグが定義されていないので、種類がタグのチャンク セレクターはこれらのチャンクについては無視されます。
- チャンクでは、値をセミコロンで区切ることにより、1 つの属性に対して複数の値を定義できます。 一致する必要があるのは 1 つの値だけです。
- いずれかのチャンク セレクターの種類が拒否された場合、他にどれだけ多くのセレクターが一致していても、チャンクは拒否されます。 チャンク 6 は、言語は一致していますが、SmallMap が BigMap と一致しないために拒否されます。
レイアウト ファイル内でのチャンクと同じように、セミコロンで区切ることによって 1 つのチャンク セレクターに複数の値を含めることができます。 また、1 つの配列で同じチャンク セレクターの種類を複数回指定してもかまいません。
これらは、次のコード例に示すものと同等です。
XPackageChunkSelector selectors1[] =
{
{ XPackageChunkSelectorType::Language, "en-US" },
{ XPackageChunkSelectorType::Language, "fr-FR" }
};
XPackageChunkSelector selectors2[] =
{
{ XPackageChunkSelectorType::Language, "en-US;fr-FR" },
};
プラットフォームでは、一致する領域のセットをさらにフィルター処理することができます。 たとえば、Devices
属性をチャンクに追加し、特定の本体のセットでのみ利用できるようにすることができます。 選択したチャンクは、システム属性とも一致した場合にのみ含まれます。 ドイツ語版をインストールしたいが、パッケージに含まれるドイツ語版チャンクは Xbox One X 本体でしか使用できないものである場合、インストール モニターは、Xbox One 本体での監視にこのチャンクを組み込みません。 組み込むと、ドイツ語版のインストールは完了しません。
Xbox One タイトルで使用されているパッケージ化テクノロジの詳細については、「パッケージ化の概要」を参照してください。 XVC パッケージを作成する手順については、「Xbox 本体用タイトルのパッケージ化を開始する」を参照してください。
要件
ヘッダー: XPackage.h
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体