インテリジェント配信: デバイス指定子
デバイス指定子は、インストール チャンク内のコンテンツをどの Xbox One ファミリー コンソールと Xbox Series コンソールに適用できるようにするかを宣言するものです。 デバイス指定子は、その世代で最もハイエンドの本体を使用していないユーザーにとって、不必要なダウンロードを引き起こさずに、1 つの本体世代において最高品質の体験を提供することができます。 Xbox One ファミリのデバイスでは、HDR グラフィックスなどの一部のコンテンツを、Xbox One X デバイスにのみダウンロードする必要があるチャンクとしてマークできます。 これにより、Xbox One と Xbox One S のユーザーは、これらのデバイスにサポートされていない HDR アセットを含まない、より効率的なダウンロードを行うことができます。 一部のコンテンツは、両方の本体で共通となります。 たとえば、オーディオ アセットは、タイトルが実行されるすべてのデバイスについて同一となる可能性があります。 これらのアセットを含むチャンクには、デバイス指定子はありません。
デバイスの指定子では、以下のシナリオが可能になります。
Xbox One 本体ファミリー全体のデバイスを対象に新タイトルをリリースする場合には、よりハイエンドの本体ファミリーのみに必要とされるコンテンツを宣言することができます。 コンテンツにデバイス指定子がない場合、そのコンテンツはすべての本体にインストールされます。 詳細については、「新タイトルのパッケージ化デザイン」セクションを参照してください。
高品質のアセットを持つ新しいチャンクを追加することで、既存のタイトルを更新し、Xbox One X または Xbox Series X デバイスでの高解像度をサポートできるようにすることができます。 これらの新しいチャンクを正しいデバイス指定子でマークした場合でも、Xbox One、Xbox One S、または Xbox Series S の本体で既にタイトルをインストールしているプレイヤーに対して、悪影響が及ぶことはありません。 詳細については、「Xbox One X または Anaconda デバイスに対してのみアセットを指定する」のセクションを参照してください。
デバイスごとに専用のアセットを使用して同じ世代の複数のデバイスで実行される新タイトルのパッケージ化デザイン
Xbox One、Xbox One S、Xbox One X デバイスまたは Xbox Series S および Xbox Series X デバイスで出荷される新しいタイトルでは、インテリジェント配信を使用して、特定のコンテンツを含む特定のデバイス タイプをターゲットにすることができます。 アセットをターゲットするには、2 つの一般的な方法があります。
デバイス クラスに応じたコンテンツの調整
異なるデバイスのアセットをターゲットにするための 1 つ目の戦略は、同じ世代内のデバイスごとに特定のコンテンツを調整することです。 これは、特定のデバイスをターゲットとしたチャンク内に、デバイス固有のアセットをパッケージ化するという方法です。
注意
複製を含むチャンクのうち、一度にインストールされるチャンクが 1 つだけの場合でも、異なるチャンク間でファイル名やパスを複製することはできません。 推奨の方法として、フォルダー名に応じたファイルをチャンクにグループ化する (すべての高解像度アセットを特定のフォルダーにグループ化するなど) か、タイトルが区別できるようにファイル名を変更する (ファイル名に "_sco" や "_ana" を付け足すなど) ことをお勧めします。
次に示す layout.xml ファイルのセグメント例では、各種のデバイスをターゲットにした 2 つのチャンクを宣言しています。 インストール時には、ハードウェア デバイスの種類に応じて、チャンク 2001 とチャンク の2002 のどちらをインストールするかが決定されます。
Xbox One の世代の場合:
<Chunk Id="2001" Devices="Xbox-Durango">
<FileGroup DestinationPath="\Data\Maps\XboxOneOnly\LightMaps" SourcePath="Y:\Maps\Level1\XboxOneOnly\LightMaps" Include="*.map"/>
<Chunk>
<Chunk Id="2002" Devices="Xbox-Scorpio">
<FileGroup DestinationPath="\Data\Maps\Scorpio\HiResLightMaps" SourcePath="Y:\Maps\Level1\Scorpio\HiResLightMaps" Include="*.map"/>
<Chunk>
Lockhart デバイスと Anaconda デバイスの場合:
<Chunk Id="2001" Devices="Xbox-Lockhart">
<FileGroup DestinationPath="\Data\Maps\LockhartOnly\LightMaps" SourcePath="Y:\Maps\Level1\LockhartOnly\LightMaps" Include="*.map"/>
<Chunk>
<Chunk Id="2002" Devices="Xbox-Anaconda">
<FileGroup DestinationPath="\Data\Maps\Anaconda\HiResLightMaps" SourcePath="Y:\Maps\Level1\Anaconda\HiResLightMaps" Include="*.map"/>
<Chunk>
デバイス タイプの取得
タイトルでは、実行時に、XSystemGetDeviceType メソッドを使用してタイトルが実行されているデバイスを特定し、その情報に基づいて適切な資産のセットを使用する必要があります。
#include <XSystem.h>
XSystemDeviceType deviceType = XSystemGetDeviceType();
switch (deviceType)
{
case XSystemDeviceType::Pc: ... break;
case XSystemDeviceType::XboxOne: ... break; //Xbox-Durango device specifier tag
case XSystemDeviceType::XboxOneS: ... break; //Xbox-Durango device specifier tag
case XSystemDeviceType::XboxOneX: ... break; //Xbox-Scorpio device specifier tag
case XSystemDeviceType::XboxOneXDevkit: ... break;
case XSystemDeviceType::XboxScarlettLockhart: ... break; //Xbox-Lockhart device specifier tag
case XSystemDeviceType::XboxScarlettAnaconda: ... break; //Xbox-Anaconda device specifier tag
case XSystemDeviceType::XboxScarlettDevkit: ... break;
case XSystemDeviceType::Unknown: ... break;
}
リテール版本体の XSystemGetDeviceType 値は、layout.xml ファイルで使用するデバイス指定子タグに対応します。 Xbox-Durango は、Xbox One と Xbox One S の両方のデバイス指定子タグであることに注意してください。
デバイス指定子タグ | XSystemDeviceType |
---|---|
Xbox-Durango | Xbox One Xbox One S |
Xbox-Scorpio | Xbox One X |
Xbox-Lockhart | Xbox Series S |
Xbox-Anaconda | Xbox Series X |
デバイス指定子タグは、layout.xml ファイルで使用する値です。
Xbox One X 固有または Anaconda 固有のアセットの宣言
特定のデバイスをターゲットにするための 2 つ目の戦略は、世代内の特定の本体デバイスだけにインストールされる追加のアセットを宣言する方法です。 その場合、両方の本体に共通するアセットはすべて、デバイス指定子のないチャンクに配置されます。 Xbox One X 固有または Anaconda 固有のアセットは、専用のチャンクに配置されます。
Xbox One X または Anaconda デバイスに対してのみアセットを指定する
デバイスに固有のアセットをタイトルに追加するには、そのデバイスだけに適用できるアセットを特定し、それらを layout.xml ファイルで新しいチャンクに分離した後、それらに Xbox-Durango または Xbox-Anaconda のデバイス指定子を適用します。 これを次の例に示します。
Xbox One の世代
<Chunk Id="2002" Devices="Xbox-Scorpio">
<FileGroup DestinationPath="\Data\Maps\Scorpio\HiResLightMaps" SourcePath="Y:\Maps\Level1\Scorpio\HiResLightMaps" Include="*.dat"/>
<Chunk>
Xbox Series X|S 世代
<Chunk Id="2002" Devices="Xbox-Anaconda">
<FileGroup DestinationPath="\Data\Maps\Anaconda\HiResLightMaps" SourcePath="Y:\Maps\Level1\Anaconda\HiResLightMaps" Include="*.dat"/>
<Chunk>