시각 인터페이스는 이를 잘 보지 못하는 사람에게 심각한 장벽이 될 수 있습니다. 인터페이스의 접근성을 높이는 전략에는 크기와 대비 등 여러 가지가 있지만, 시각 장애인에게 특히 필수적인 것이 하나 있습니다. 텍스트 음성화(text-to-speech) 입니다.
즉 인터페이스의 시각 정보를 합성 음성으로 전달하는 것입니다. 가능하다면 인터페이스 내 텍스트뿐 아니라 인터페이스 엘리먼트의 유형 및 각 엘리먼트의 상태에 대한 정보도 포함합니다.
이 기능은 다른 업계에서 표준이며 게임 개발에서는 빠르게 확산되고 있습니다. 이는 시각 장애인 게이머, 시력이 좋지 않은 게이머(예: 게임플레이로부터 눈을 보호하고자 하는 게이머), 특정 인지 조건이 있는 사람에게 유용하며 일부 영역에서는 CVAA 규제를 준수하는 데도 도움이 됩니다.
CVAA는 미국에서 판매되는 모든 게임에 적용되는 접근성 법입니다. 이에 따르면 게임은 음성, 텍스트 및/또는 영상 채팅 기능을 갖춰야 합니다.
CVAA의 법적 요구 사항에 대해 더 자세히 알아보려면 IGDA 게임 접근성 SIG(IGDA-GASIG) 웹 사이트에 대한 CVAA 알아보기 페이지를 참조하세요.
언리얼 엔진 5 에는 개발자가 시각 장애인 사용자를 위한 CVAA 요구 사항을 준수할 수 있도록 지원하는 3가지 플러그인이 있습니다. 해당 플러그인은 다음과 같습니다.
-
TextToSpeech
-
ScreenReader
-
SlateScreenReader
TextToSpeech 플러그인
텍스트 음성 변환(Text to speech, TTS)은 디지털 합성 음성 형식으로 청각 정보를 출력하는 데 사용되는 소프트웨어 기술입니다. TTS의 예시 중 하나는 목적지를 안내하면서 디지털 음성으로 방향을 알려 주는 GPS 디바이스입니다. 다른 예시로는 사용자의 명령에 대한 응답을 소리 내어 읽는 휴대전화의 스마트 비서가 있습니다.
언리얼 엔진의 TextToSpeech 플러그인은 프로젝트 내의 텍스트 스트링을 음성으로 변환하여 시각 장애인 사용자의 접근성을 지원하는 기본 기능을 제공합니다. 이 플러그인을 사용하면 예를 들어 '볼륨, 슬라이더, 30%'와 같이 라벨, 타입, 인터페이스 엘리먼트를 읽거나 온라인 게임의 텍스트 채팅에서 들어오는 메시지를 음성화할 수 있습니다.
현재 TTS 플러그인은 영어에 한해 모든 플랫폼에서 지원됩니다. 향후 다른 언어도 지원할 계획입니다.
ScreenReader 플러그인
스크린 리더는 시각 장애인 사용자가 소프트웨어 애플리케이션과 상호작용할 수 있도록 지원하는 보조 기술입니다. 텍스트나 이미지와 같은 화면상의 시각 정보를 텍스트 음성 변환이나 점자와 같은 비시각적인 수단으로 전달합니다. 또한 시각 장애인에게 화면상의 유저 인터페이스(UI) 요소와 상호작용할 대안적 수단을 제공합니다. 예를 들어 시각 장애인 사용자는 마우스를 사용하는 대신 키보드의 특정 키 조합을 사용하여 화면에서 포커스되는 오브젝트를 변경할 수 있습니다.
스크린 리더는 UI 요소를 우클릭하거나 UI 요소의 경계 안에서 마우스 휠을 스크롤하는 것처럼 시각 장애인 사용자가 수행하기 어려울 수 있는 액션을 시뮬레이션할 수 있습니다.
언리얼 엔진의 ScreenReader 플러그인은 텍스트 음성 변환 기능을 확장하여 더욱 다양한 기능 세트를 제공합니다. 이를 베이스 프레임워크로 삼아 커스텀 스크린 리더 솔루션을 구현할 수도 있습니다.
이 플러그인의 기능은 다음과 같습니다.
-
TTS를 통한 텍스트 음성 변환 요청
-
TTS를 통해 음성으로 변환될 접근 가능한 안내 문구의 대기열 생성
-
사용자에게 음성으로 변환될 접근 가능한 UI 요소의 내용 요청
이 플러그인이 활성화되면 텍스트 음성 변환 플러그인도 자동으로 활성화됩니다.
슬레이트를 사용해서 UI를 구현한다면, SlateScreenReader 플러그인을 사용하는 것도 고려하세요.
SlateScreenReader 플러그인
SlateScreenReader 플러그인은 스크린 리더 플러그인이 제공하는 베이스 프레임워크를 기반으로 합니다. 이 플러그인은 스크린 리더를 커스텀 UI 솔루션으로 구현하기 위한 샘플로 참조할 수 있으며, 슬레이트를 사용해서 UI를 구현하는 경우 그대로 사용해도 됩니다.
이 플러그인의 목표는 접근성에서 '플러그 앤드 플레이'를 실현하는 것입니다. 이 플러그인이 활성화되면 사용자가 UI 요소를 포커싱할 때 현재 지원되는 모든 접근 가능한 슬레이트 및 UMG UI 요소의 내용이 음성으로 변환됩니다.
이 플러그인이 활성화되면 텍스트 음성 변환 및 스크린 리더 플러그인이 자동으로 활성화됩니다.
현재 지원하는 위젯 타입은 다음과 같습니다.
-
버튼
-
체크박스
-
콤보 박스
-
하이퍼링크
-
이미지
-
레이아웃
-
스크롤바
-
슬라이더
-
텍스트
-
편집 가능한 텍스트
-
창
-
목록
-
목록 항목
-
알 수 없음
사용할 플러그인 선택
아래 정보를 활용하여 프로젝트에 알맞은 접근성 플러그인을 선택하세요.
-
간단한 UI만 사용하여 복잡한 사용자 인터랙션이 불필요한 경우, 시각 장애인 사용자에게 기본적인 접근성을 제공하기 위해 TextToSpeech 플러그인을 가벼운 솔루션으로 고려하세요.
-
슬레이트를 UI 솔루션으로 사용하는 경우, SlateScreenReader 플러그인을 사용하세요.
-
슬레이트가 아닌 UI 솔루션을 사용하는 경우, 커스텀 스크린 리더를 구현해야 할 수도 있습니다. ScreenReader 플러그인을 베이스 프레임워크로 사용하세요.
SlateScreenReader 플러그인을 구현 샘플로 참고하여 커스텀 스크린 리더를 개발해도 됩니다.
플러그인 활성화
세 플러그인 모두 메인 메뉴의 편집(Edit) > 플러그인(Plugins) 에서 활성화할 수 있습니다. 플러그인을 활성화하는 방법을 자세히 알아보려면 플러그인으로 작업하기 페이지를 참고하세요.
ScreenReader 및 SlateScreenReader 플러그인을 활성화하려면 먼저 프로젝트 및 언리얼 엔진 설치에서 접근성 기능을 활성화해야 합니다.
절차는 동일하지만, 접근성 기능을 특정 프로젝트에서만 활성화할지 언리얼 엔진 전체에서 활성화할지에 따라 편집해야 하는 환경설정 파일이 다릅니다.
-
프로젝트에서만 활성화:
Config\DefaultEngine.ini
파일을 엽니다. -
언리얼 엔진 전체:
C:\Program Files\Epic Games\UE_[버전]\Engine\Config
폴더로 이동하여BaseEditorSettings.ini
또는BaseEngine.ini
파일을 엽니다.
열린 .ini
파일에 다음 행을 추가합니다.
Accessibility.Enable=1
파일을 저장하고 닫습니다. 언리얼 엔진이 실행 중이라면 재시작해야 변경 사항이 적용됩니다.