터치 적응 번들
터치 적응 번들(줄여서 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와 같은 언어는 중립 디렉터리에서 모든 레이아웃을 선택합니다.