다음을 통해 공유


터치 적응 번들

터치 적응 번들(줄여서 TAB)은 다양한 장치와 폼 팩터를 통해 다양한 지역에서 게임을 플레이하는 데 사용되는 독립형 콘텐츠 세트입니다.

번들은 다음으로 구성됩니다.

  • 레이아웃: 플레이어에 표시할 수 있는 터치 컨트롤 레이아웃의 JSON 표현입니다.
  • 자산: 터치 컨트롤의 모양을 사용자 지정하는 데 사용할 수 있는 PNG 이미지입니다.
  • 컨텍스트 및 상태: 여러 레이아웃에서 사용할 수 있고 특정 레이아웃의 표시에 영향을 줄 수 있는 공유 컨텍스트입니다.
  • 구성: 버전 관리 및 기본 레이아웃을 포함하는 번들 주변의 메타데이터 집합입니다.

레이아웃

각 탭에는 터치 컨트롤로 게임을 플레이하는 데 필요한 모든 레이아웃이 포함되어 있습니다. 레이아웃 디렉터리에는 게임이 참조할 수 있는 각 개별 레이아웃이 포함됩니다. XGameStreaming 레이아웃 관련 API에서 사용할 레이아웃 이름은 확장자가 없는 레이아웃의 파일 이름으로 결정됩니다.

레이아웃은 플레이어에 표시할 수 있는 특정 터치 컨트롤 세트의 JSON 표현입니다.

레이아웃 파일은 지역화 지원에 설명된 알고리즘을 사용하기 위해 선택됩니다.

예 1: 모든 로캘에서 동일한 레이아웃
이 예제에는 모든 로캘에서 사용할 수 있는 두 가지 레이아웃이 있습니다.

/
layouts/
    neutral/
        menu.json
        driving.json

예 2: 특정 로캘에서 사용자 지정된 일부 레이아웃
이 예에는 운전 및 메뉴라는 두 가지 레이아웃이 있습니다. 메뉴 레이아웃은 모든 언어에 공통적이지만 운전 레이아웃은 영국용으로 사용자 지정됩니다.

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

자산

자산은 개별 터치 컨트롤의 모양을 사용자 지정하는 데 사용할 수 있는 PNG 이미지 세트입니다. 플레이어의 특정 장치에서 최상의 환경을 지원할 수 있도록 이미지가 다양한 해상도로 제공됩니다.

각 이미지에 대해 1.0, 1.5, 2.0, 3.0, 4.0의 해상도로 제공해야 합니다.

각 이미지에 필요한 차원은 사용된 위치에 따라 다르며 각 컨트롤의 스타일링 비고에서 확인할 수 있습니다.

레이아웃 파일은 지역화 지원에 설명된 알고리즘을 사용하기 위해 선택됩니다.

예를 들어 모든 로케일에 사용할 수 있는 두 개의 사용자 지정 이미지가 있는 경우:

/
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

자산 최적화

기본적으로 tak.exe 또는 serve 자산 집합을 pack 사용하는 경우 크기를 줄이기 위해 최적화된 다음 플레이어의 디바이스에 배포됩니다.

자산 최적화를 원하지 않는 경우 --no-asset-optimization 옵션을 사용하여 수정 없이 PNG 이미지를 보존하세요.

컨텍스트 및 상태

context JSON 파일은 다음을 포함하는 번들에 포함될 수 있습니다.

  • definitions: 번들의 모든 레이아웃에서 사용할 수 있는 정적 변수의 정의입니다.
  • state: 번들의 모든 레이아웃에서 사용할 수 있는 상태 변수(및 초기 상태)의 정의. 상태 변수는 게임에서 런타임에 데이터를 동적으로 변경할 수 있습니다.
  • allowedStateValues: 주어진 자산에 대해 허용된 자산 이름과 같이 주어진 상태에 대해 허용된 상태 값을 포함합니다.
  • styles: 번들의 모든 레이아웃에서 참조할 수 있는 재사용 가능한 스타일 모음을 포함하는 스타일 개체입니다.

defaultDeadzone에 대한 정의, 명명된 작업 매핑 및 다양한 요소의 활성화 상태에 대한 상태, 무기에 허용되는 자산 값 세트, 공유 색상 정의 및 시스템 색상 재정의가 포함된 색상 블록이 포함된 샘플 context.json 파일입니다.

{
    "$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 언어 태그를 사용하여 디렉터리로 세분화됩니다. 모든 번들은 MUST 중립적이라는 이름의 디렉터리로 이동하는 중립적 레이아웃을 가져야 합니다. 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와 같은 언어는 중립 디렉터리에서 모든 레이아웃을 선택합니다.