次の方法で共有


タッチ アダプテーション バンドル

タッチ アダプテーション バンドル (短い場合は TAB) は、さまざまなデバイスやフォーム ファクターにわたるさまざまなリージョンでゲームをプレイするために使用される自己完結型のコンテンツ セットです。

バンドルは次のもので構成されます。

  • レイアウト: プレイヤーに表示できるタッチ コントロール レイアウトの JSON 表現。
  • アセット: タッチ コントロールの外観をカスタマイズするために使用できる PNG 画像。
  • コンテキストと状態: レイアウト間で使用でき、特定のレイアウトの表示に影響を与える共有コンテキスト。
  • 構成: バージョン管理や既定のレイアウトなど、バンドルに関するメタデータのセット。

レイアウト

各 TAB には、タッチ コントロールを使用してゲームをプレイするために必要なすべてのレイアウトが含まれています。 レイアウト ディレクトリには、ゲームが参照できる個々のレイアウトが含まれています。 XGameStreaming レイアウト関連 API で使用するレイアウト名は、拡張子のないレイアウトのファイル名によって決まります。

レイアウト は、プレイヤーに表示できる特定のタッチ コントロールセットの JSON 表現です。

ローカリゼーション サポートで説明されているアルゴリズムを使用するために、レイアウト ファイルが選択されています。

例 1: すべてのロケールで同じレイアウト
この例では、すべてのロケールで使用できる 2 つのレイアウトがあります。

/
layouts/
    neutral/
        menu.json
        driving.json

例 2: 特定のロケールでカスタマイズされた一部のレイアウト
この例では、driving と menu の 2 つのレイアウトがあります。 menu レイアウトはすべての言語で共通ですが、driving レイアウトは英国向けのカスタムです。

/
layouts/
    en/
        en-GB/
            driving.json
    neutral/
        menu.json
        driving.json

アセット

アセットは、個々のタッチ コントロールの外観をカスタマイズするために使用できる PNG 画像のセットです。 画像は、プレイヤーの特定のデバイスで最適なエクスペリエンスを実現するために、さまざまな解像度で提供されます。

イメージごとに、解像度 1.0、1.5、2.0、3.0、4.0 の倍数で提供する必要があります。

各イメージに必要なサイズは、それが使用される場所に基づいており、各コントロールのスタイル設定の注釈で確認できます。

ローカリゼーション サポートで説明されているアルゴリズムを使用するために、レイアウト ファイルが選択されています。

たとえば、すべてのロケールで使用できる 2 つのカスタム イメージがある場合は、次のようになります。

/
assets/
    neutral/
        @1.0x/
            customImage1.png
            customImage2.png
        @1.5x/
            customImage1.png
            customImage2.png
        @2.0x/
            customImage1.png
            customImage2.png
        @3.0x/
            customImage1.png
            customImage2.png
        @4.0x/
            customImage1.png
            customImage2.png

アセットの最適化

既定では、一連のアセットを pack または serve するために tak.exe を使用する場合、アセットはサイズを縮小するように最適化され、その後プレイヤーのデバイスに配布されます。

アセットの最適化を行わない場合は、--no-asset-optimizationオプションを使用して、PNG 画像を変更せずに保持してください。

コンテキストと状態

contextJSON ファイルは、次を含むバンドルに含めることができます。

  • definitions: バンドル内のすべてのレイアウトで使用できる静的変数の定義。
  • state: バンドル内のすべてのレイアウトで使用できる状態変数 (および初期状態) の定義。 状態変数は、ゲームによって実行時に動的にデータを変更されます。
  • allowedStateValues: 特定の状態に対して許可される状態値 (特定のアセットに対して許可されるアセット名など) を格納します。
  • styles: バンドル内のすべてのレイアウトで参照できる再利用可能なスタイルのコレクションを含む Styles オブジェクト。

context.json ファイルのサンプルです。defaultDeadzone の定義、さまざまな要素の有効状態の名前付きアクション マッピングと状態、武器に対して許可されるアセット値のセット、共有カラー定義とシステム カラー オーバーライドを含むカラー ブロックを含みます。

{
    "$schema": "https://raw.githubusercontent.com/microsoft/xbox-game-streaming-tools/main/touch-adaptation-kit/schemas/context/v3.0/context.json",
    "definitions": {
        "defaultMovementDeadzone": 0.1,
        "jumpAction": "gamepadA",
        "fireAction": "rightTrigger",
        "reloadAction": "leftBumper"
    },
    "state": {
        "enableReload": false,
        "switchWeaponVisible": false,
        "fireWeaponImage": "defaultWeapon"
    },
    "allowedStateValues": {
        "fireWeaponImage": [
            "defaultWeapon",
            "fist",
            "knife",
            "bow",
            "grenade"
        ]
    },
    "styles": {
        "colors": {
            "default": {
                "system_contentPrimary": "#ff0000ff",
                "myColor1": "#00ff00ff"
            }
        }
    }
}

構成

バンドルをpackまたはserveするときに、tak.exe を使用して設定できるバンドルの構成オプションのセットがあります。

  • 既定のレイアウト: ゲームが API 呼び出しを介してレイアウトを変更していない場合に、セッションの開始時にプレイヤーに表示されるレイアウト。
  • バージョン: バンドルのコンテンツ バージョン (例: 1.0.0.0)。 Xbox ゲームストリーミング サービスに送信される各バージョンは、一意のコンテンツ バージョンである必要があります。
  • バージョン名: バンドルのコンテンツ バージョンの名前 (例: DLC1)。 バージョン名を使用すると、ゲームに対して同じセマンティックな意味を持つ複数のバージョンをグループ化できます。

ローカリゼーション サポート

ゲームは複数の言語をサポートする可能性があるため、TAB のコンテンツは、そのディレクトリ内のコンテンツの IETF 言語タグを使用してディレクトリに分割されます。 すべてのバンドルにはニュートラル レイアウトが 必要 です。neutral という名前のディレクトリに移動します。 TAB コンテンツの読み込みに使用される言語は、Xbox サービス構成されたユーザーの地域に基づいて決定されます。

TAB 内のファイルをプローブする場合、アプリケーションは最も厳密に一致する言語を探し、一致するファイルが見つかるまで、あまり厳密に一致していないディレクトリに順にフォールバックします。 例:

/
layouts/
    en/
        en-GB/
            driving.json
        driving.json
    neutral/
        menu.json
        driving.json

この構造では、コンテンツの en-GB セットを探すときに、次のレイアウトが選択されます。

en/en-GB/driving.json
neutral/menu.json

同様に、en-US は次を選択します。

en/driving.json
neutral/menu.json

fr-CA などの言語では、ニュートラル ディレクトリからすべてのレイアウトが選択されます。