> ## 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.

# XPackageChunkSelector

> XPackageChunkSelector

# XPackageChunkSelector

チャンクのセットを選択するための条件を定義します。

<a id="syntaxSection" />

## Syntax

```cpp theme={null}
typedef struct XPackageChunkSelector {  
    XPackageChunkSelectorType type;  
    union  
    {  
        const char* language;  
        const char* tag;  
        const char* feature;  
        uint32_t chunkId;  
    };  
} XPackageChunkSelector  
```

<a id="membersSection" />

### Members

*type*\
型: [XPackageChunkSelectorType](/reference/system/xpackage/enums/xpackagechunkselectortype)

セレクターの種類。

*language*\
型: const char\*

一致させる言語属性。たとえば、"en-US" (英語 (米国)) や "fr-FR" (フランス語 (フランス)) など。

*tag*\
型: const char\*

一致させるタグ属性。たとえば、*BigMap* や *SmallMap* など。

*feature*\
型: const char\*

一致させる機能。たとえば、"BigMaps" など。

*chunkId*\
型: uint32\_t

一致させるチャンク番号。

<a id="remarksSection" />

## Remarks

`XPackageChunkSelector` オブジェクトの配列は、インストール API の多くの操作でチャンクのセットを選択するために使用されます。このセクションでは、`XPackageChunkSelector` オブジェクトの配列をチャンク ID のセットに変換するために使用されるルールについて説明します。各 `XPackageChunkSelector` にはセレクター タイプとセレクター値があります。チャンクは、そのチャンクに定義されているすべてのチャンク指定子がすべてのインストール セレクターに一致する場合に含まれます。

パッケージには、ゲームを構成するすべてのファイルが含まれます。ファイルはチャンクと呼ばれる論理ユニットにグループ化できます。チャンクには数値 ID があり、言語やユーザー定義のタグなどの 0 個以上のテキスト属性を持つこともあります。多くの XPackage API はチャンクのグループに対して動作します。これらの API は、`XPackageChunkSelectors` の配列を使用して、API が使用するチャンクを記述します。このセクションでは、`XPackageChunkSelector` オブジェクトの配列をチャンク ID の配列に変換するために使用されるルールについて説明します。各 `XPackageChunkSelector` にはセレクター タイプとセレクター値があります。チャンクは、そのチャンクに定義されているすべての属性がすべてのチャンク セレクターに一致する場合に含まれます。

次の表では、チャンク セレクター配列に 2 つのセレクター、language と tag があります。

| セレクター タイプ | セレクター値 |
| --------- | ------ |
| Language  | en-US  |
| Tag       | BigMap |

次の表は、さまざまな属性を持つチャンクのセットを定義する例です。

| Chunk | Language     | Tag              |
| ----- | ------------ | ---------------- |
| 1     | en-US        | (none)           |
| 2     | en-US; fr-FR | (none)           |
| 3     | fr-FR        | (none)           |
| 4     | fr-FR        | BigMap           |
| 5     | fr-FR; en-US | BigMap; SmallMap |
| 6     | en-US        | SmallMap         |

前述の表を参照すると、チャンク セレクター配列によって選択されるチャンクはチャンク属性 1、2、5 を使用します。チャンク セレクターによって選択されないチャンクはチャンク属性 3、4、6 を使用します。

このチャンク配列の例に関する補足:

* チャンク セレクター タイプは、その指定子がチャンクに定義されている場合にのみチャンク属性と照合されます。チャンク 1 ～ 3 にはタグが定義されていないため、これらのチャンクに対してタイプが tag のチャンク セレクターは無視されます。
* チャンクは、複数の値をセミコロンで区切ることで、1 つの属性に複数の値を定義できます。一致するのは 1 つの値だけで構いません。
* いずれかのチャンク セレクター タイプが拒否された場合、他のセレクターがいくつ一致してもチャンクは拒否されます。チャンク 6 は言語は一致しますが、SmallMap が BigMap に一致しないため拒否されます。

チャンク セレクター値には、レイアウト ファイル内のチャンクと同様に、セミコロンで区切って複数の値を含めることができます。また、同じチャンク セレクター タイプを 2 回以上定義した配列を作成することも合法です。

これらは次のコード例に示すように等価です。

```cpp theme={null}
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 タイトルで使用されるパッケージ技術については、[パッケージ化の概要](/build/core-features/common/packaging/overviews/packaging) を参照してください。XVC パッケージを作成する手順については、[XBOX 本体用にタイトルをパッケージ化する開始方法](/build/core-features/common/packaging/overviews/packaging-getting-started-for-console) を参照してください。

<a id="requirementsSection" />

## Requirements

**ヘッダー:** XPackage.h

**サポートされているプラットフォーム:** Windows、XBOX One ファミリー本体および XBOX Series 本体

<a id="seealsoSection" />

## Conceptual documentation

* [インテリジェント デリバリー: カスタム タグ指定子](/build/core-features/common/packaging/intelligentdelivery-custom)
* [インテリジェント デリバリー: 機能とレシピ](/build/core-features/common/packaging/intelligentdelivery-features-recipes)
* [インテリジェント デリバリー: 言語指定子](/build/core-features/common/packaging/intelligentdelivery-language)

## See also

[ストリーミング インストールとインテリジェント デリバリー](/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)\
[XPackage](/reference/system/xpackage/xpackage_members)
