기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon GameLift Streams의 사용자 지정 스트림 해상도
기본적으로 Amazon GameLift Streams는 표준 16x9 종횡비로 1920 × 1080픽셀의 업계 표준 Full HD 해상도로 대화형 스트림을 제공합니다. 플레이어 디바이스의 화면 모양 또는 종횡비와 일치하도록 각 세션에 대한 사용자 지정 해상도를 설정할 수 있습니다. 사용자 지정 해상도는 가로, 세로 및 사각형 종횡비를 지원합니다.
사용자 지정 해상도를 사용하여 다음을 수행할 수 있습니다.
-
패딩이나 자르기 없이 네이티브 디바이스 종횡비로 휴대폰과 태블릿에 전체 화면 경험을 스트리밍합니다.
-
기본 와이드스크린 경험을 위해 초광각 모니터 종횡비를 일치시킵니다.
-
non-full-screen 웹 경험에 임베딩하기 위한 임의 차원으로 게임 스트림을 지원합니다.
스트림 클래스 또는 런타임 환경에 관계없이 모든 Amazon GameLift Streams 서비스 구성에 사용자 지정 해상도를 사용할 수 있습니다.
해상도 작동 방식
사용자 지정 해상도를 설정하면 Amazon GameLift Streams가 세션의 가상 모니터를 원하는 해상도로 구성합니다. 세션의 모니터 해상도가 됩니다. 최상의 시각적 품질을 위해 애플리케이션은 구성된 모니터 해상도로 렌더링해야 합니다.
모니터 해상도는 가상 모니터의 차원과 프레임이 캡처되는 해상도를 결정합니다. 두 가지 추가 웹 SDK 설정은 플레이어에 전달되는 스트림의 해상도에 영향을 줍니다.
-
최대 해상도: 스트림 해상도를 제한하는 웹 SDK 설정입니다. 지정하지 않으면 캡이 적용되지 않고 전체 모니터 해상도가 스트리밍됩니다. 최대 해상도와의 상호 작용을(를) 참조하세요.
-
동적 해상도: 스트림 해상도를 자동으로 조정하여 최종 사용자의 네트워크 연결이 유지할 수 있는 최상의 시각적 품질을 제공합니다. 동적 해상도와의 상호 작용을(를) 참조하세요.
두 설정 모두 세션의 모니터 해상도를 변경하지 않습니다.
사용자 지정 해상도 제약 조건
지정하는 해상도는 다음 요구 사항을 충족해야 합니다.
| 제약 조건 | 값 |
|---|---|
| 최대 총 픽셀 | 2,073,600(1920 × 1080) |
| 너비 및 높이 범위 | 320~4096픽셀 |
| 차원 패리티 | 너비와 높이는 모두 짝수여야 합니다. |
이 서비스는 세션을 시작할 때 이러한 제약 조건을 검증합니다. 해결 방법이 요구 사항을 충족하지 않으면 확인 오류와 함께 요청이 실패합니다.
사용자 지정 해상도 설정
콘솔, AWS CLI 또는 API를 사용하여 스트림 세션을 시작할 때 사용자 지정 해상도를 설정할 수 있습니다.
Amazon GameLift Streams 콘솔 사용
사용자 지정 해상도로 스트림을 테스트하려면:
-
Amazon GameLift Streams 콘솔
을 열고 스트림 그룹으로 이동합니다. -
스트림 테스트를 선택합니다.
-
해상도 드롭다운에서 데스크톱, 태블릿 또는 모바일 디바이스의 해상도를 선택합니다.
-
스트림 테스트를 선택하여 세션을 시작합니다.
스트림이 활성화되면 실시간 통계 오버레이에서 현재 해상도를 볼 수 있습니다.
AWS CLI 사용
--display-configuration 파라미터와 함께 start-stream-session 명령을 사용하세요.
aws gameliftstreams start-stream-session \ --identifier sg-ExampleStreamGroup \ --application-identifier a-ExampleApp \ --protocol WebRTC \ --signal-request "your-signal-request" \ --display-configuration '{"Resolution":{"Width":1920,"Height":1080}}'
API 사용
StartStreamSession API 요청에 DisplayConfiguration 파라미터를 포함합니다.
{ "ApplicationIdentifier": "a-ExampleApp", "Protocol": "WebRTC", "SignalRequest": "your-signal-request", "DisplayConfiguration": { "Resolution": { "Width": 1920, "Height": 1080 } } }
디바이스에 대한 최적의 해상도 계산
해상도 제약 조건을 충족하는 모든 해상도를 사용할 수 있습니다. 다음 공식은 특정 종횡비에 대해 가장 큰 해상도를 찾는 데 권장되는 접근 방식 중 하나입니다. 최상의 시각적 품질을 위해 사용 가능한 픽셀을 최대화합니다.
height = floor_to_even( sqrt(2,073,600 * H / W) ) width = floor_to_even( height * W / H )
이 공식에서 W:H는 대상 종횡비이고 2,073,600는 최대 총 픽셀 수(1920 × 1080)입니다. 함수는 가장 가까운 짝수 정수로 floor_to_even(x) 내림됩니다.
예 19.5:9(휴대폰)
height = floor_to_even( sqrt(2,073,600 * 9 / 19.5) ) = floor_to_even(978.2) = 978 width = floor_to_even( 978 * 19.5 / 9 ) = floor_to_even(2118.3) = 2118 → Resolution: 2118 × 978 (2,071,404 pixels, 99.9% utilization)
세로 해상도의 경우 가로 해상도를 계산하고 너비와 높이 값을 바꿉니다.
디바이스의 공통 해상도 값
다음 값은 일반적인 디바이스 범주를 포함하는 일반 표준 비율을 사용합니다. 개별 디바이스의 기본 종횡비가 약간 다를 수 있으므로 시각적으로 무시할 수 있는 검은색 막대가 될 수 있습니다. 픽셀 단위 채우기의 경우 위의 공식과 함께 디바이스의 정확한 기본 종횡비를 사용합니다.
| 카테고리 | 가로 세로 비율 | 풍경 | 세로 | 일치하는 디바이스 |
|---|---|---|---|---|
| 데스크톱 | 16:9 | 1920 × 1080 | 1080 × 1920 | 데스크톱 모니터, TVs, HD 모바일 |
| 데스크톱 | 16:10 | 1820 × 1138 | 1138 × 1820 | 와이드스크린 모니터, Amazon Fire 태블릿 |
| 데스크톱 | 21:9 | 2198 × 942 | 해당 사항 없음 | Ultrawide 모니터 |
| Tablet | 3:00 | 1760 × 1174 | 1174 × 1760 | 다양한 iPads |
| Tablet | 4:3 | 1660 × 1246 | 1246 × 1660 | iPads Android 태블릿 |
| Mobile | 20:9 | 2142 × 964 | 964 × 2142 | Google Pixel, Samsung Galaxy |
| Mobile | 19.5:9 | 2118 × 978 | 978 × 2118 | iPhones Samsung Galaxy |
| Mobile | 18:9 | 2036 × 1018 | 1018 × 2036 | 기타 Android 휴대폰 |
| 기타 | 1:1 | 1440 × 1440 | 해당 사항 없음 | 사각형 모니터 |
최대 해상도와의 상호 작용
사용자 지정 해상도와 최대 해상도의 용도는 다음과 같습니다.
-
사용자 지정 해상도: 사용자 지정 해상도를 설정하면 세션의 모니터 해상도가 됩니다. 이는 캡처된 프레임의 종횡비 및 픽셀 차원을 포함하여 서버가 렌더링하는 것입니다.
-
최대 해상도: 스트림 해상도를 제한하는 웹 SDK 설정입니다. 캡은 선택한 계층의 방향 경계 상자 내에 맞습니다(예: 720p의 경우 1280 × 720). 전체 해상도 이미지를 디코딩할 수 없는 하위 엔드 디바이스를 대상으로 하려면이 설정을 사용합니다.
최대 해상도 파라미터에 대한 자세한 내용은 Amazon GameLift Streams 설명서 페이지의 Amazon GameLift Streams Web SDK API 참조를 참조하세요.
동적 해상도와의 상호 작용
동적 해상도는 스트림 해상도를 자동으로 조정하여 최종 사용자의 네트워크 연결이 유지할 수 있는 최상의 시각적 품질을 제공합니다. 이 기능은 Amazon GameLift Streams Web SDK 버전 1.3.0 이상에서 사용할 수 있습니다.
동적 해상도는 세션의 모니터 해상도에 영향을 주지 않습니다. Amazon GameLift Streams는 플레이어에게 전달되는 스트림 해상도만 조정합니다. 대역폭이 제한되면 종횡비를 유지하면서 스트림 해상도가 축소됩니다. 대역폭이 복구되면 전체 모니터 해상도 또는 최대 해상도 한도까지 다시 확장됩니다.
예를 들어 사용자 지정 해상도를 1080 × 1920(모바일 세로, 9:16)으로 설정하면 플레이어는 정상 대역폭에서 전체 1080 × 1920 스트림을 수신합니다. 플레이어의 네트워크가 제한되는 경우 동적 해상도는 9:16 종횡비를 유지하면서 스트림을 더 낮은 해상도(예: 720 × 1280)로 축소할 수 있습니다. 서버의 모니터 해상도는 전체적으로 1080 × 1920으로 유지됩니다.
동적 해상도 파라미터에 대한 자세한 내용은 Amazon GameLift Streams 설명서 페이지의 Amazon GameLift Streams Web SDK API 참조를 참조하세요.
모범 사례
Amazon GameLift Streams에서 사용자 지정 해상도를 사용할 때는 다음 모범 사례를 따르세요.
-
플레이어의 디바이스 종횡비와 일치시켜 레터박싱이나 필라박싱 없이 화면을 채웁니다. 공통 해상도 값 또는 계산 공식을 사용하여 지정된 종횡비에 대한 최적의 해상도를 찾습니다. 세로 방향 모바일 게임의 경우 세로 해상도를 사용하여 네이티브 수직 환경을 제공합니다.
-
스트리밍 환경에 맞게 프런트엔드를 최적화합니다. 모바일 디바이스 또는 태블릿으로 스트리밍할 때 웹 클라이언트가 스트림의 종횡비를 올바르게 처리하는지 확인합니다.
-
플레이어에게 배포하기 전에 사용자 지정 해상도로 애플리케이션을 테스트합니다. 대부분의 애플리케이션은 전체 화면에서 실행될 때 모니터 해상도에 자동으로 적응합니다. 그러나 일부 애플리케이션은 16:9가 아닌 해상도를 정상적으로 처리하지 못할 수 있습니다.
-
게임 내 카메라와 UI가 종횡비에 맞게 조정되는지 확인합니다. 뷰포트를 자르지 않고 적절한 양의 장면을 표시하도록 게임 카메라의 시야를 조정합니다. 새 종횡비에 맞게 UI 요소를 리플로우하거나 재배치합니다.
-
애플리케이션 내에서 런타임 시 가상 모니터 해상도를 변경하지 마세요. Amazon GameLift Streams는 세션이 시작될 때 모니터 해상도를 설정합니다. 게임 플레이 중에 수정하는 애플리케이션은 예상치 못한 결과를 생성할 수 있습니다.
-
애플리케이션 및 프런트엔드에서 디바이스 교체를 처리합니다. 모니터 해상도는 세션 기간 동안 고정됩니다. 미드스트림 디바이스 교체를 지원하려면를 통해 교체 신호를 애플리케이션애플리케이션과 웹 클라이언트 간의 데이터 채널 통신으로 전송하는 것이 좋습니다. 애플리케이션이 렌더링을 교체하도록 하고 그에 따라 프런트엔드를 업데이트합니다.
문제 해결
다음 표에서는 일반적인 문제, 원인 및 제안된 해결 방법을 설명합니다.
| 문제 | 원인 | 솔루션 |
|---|---|---|
| 유효성 검사 오류로 세션이 시작되지 않음 | 해결 방법이 제약 조건을 충족하지 않음 | 해상도가에 나열된 모든 제약 조건을 충족하는지 확인합니다사용자 지정 해상도 제약 조건. |
| 애플리케이션이 잘못된 해결로 렌더링됨 | 애플리케이션이 전체 화면에서 실행되지 않거나 윈도우 모드에서 다른 해상도로 렌더링됩니다. | 전체 화면에서 실행되도록 애플리케이션을 구성합니다. 애플리케이션은 구성된 해상도에 대해 시스템을 쿼리할 수 있습니다. |
| 스트림 해상도가 예상보다 낮습니다(동일한 종횡비). | 최대 해상도 상한 또는 동적 해상도가 활성 상태입니다. | 이는 최대 해상도 또는 동적 해상도가 활성 상태일 때 예상되는 동작입니다. 두 기능 모두 종횡비를 유지하면서 스트림 해상도를 축소합니다. 웹 SDK에서 최대 해상도 또는 동적 해상도 설정을 확인합니다. |
| 스트림 해상도가 사용자 지정 해상도와 다름(종횡비 다름) | 애플리케이션은 시작 또는 미드스트림 중에 모니터 해상도를 변경합니다. | 최대 해결 방법 및 동적 해결 방법에서는이 문제가 발생하지 않습니다. 이는 모니터 해상도를 재정의하는 일부 애플리케이션에 대해 알려진 동작입니다. 모니터 해상도를 재정의하지 않는 애플리케이션을 사용하거나 전체 화면에서 모니터 해상도로 렌더링하도록 애플리케이션을 구성합니다. |
| 플레이어 화면에 검은색 막대가 나타납니다. | 스트림과 디바이스 간의 종횡비 불일치 또는 내부적으로 블랙 바가 있는 애플리케이션 렌더링 | 검은색 막대가 클라이언트에서 왔는지(종횡비 불일치) 또는 애플리케이션 자체 내에 있는지 확인합니다. 플레이어의 디바이스 종횡비와 일치하는 해상도 값을 사용하거나의 공식을 사용하여 최적의 해상도를 계산합니다디바이스에 대한 최적의 해상도 계산. |