次の方法で共有


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*

一致させるタグ属性。BigMapSmallMap など。

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 本体

関連項目

ストリーミング インストールとインテリジェント配信
XPackage