텍스트 음성 변환 퀵스타트

간단한 텍스트 음성 변환 위젯을 생성하고 활성화하는 방법을 알아봅니다.

Choose your operating system:

Windows

macOS

Linux

이 가이드에서는 두 개의 버튼이 있는 간단한 텍스트 음성 변환(Text To Speech) 위젯을 생성하고 활성화하는 방법을 설명합니다. 사용자는 각 버튼을 클릭하여 텍스트 스트링을 음성화할 수 있습니다.

필요한 사전 지식과 설정

이 페이지에 요약된 단계를 완료하려면 다음이 필요합니다.

  1. 언리얼 모션 그래픽(Unreal Motion Graphics, UMG) UI 에디터의 기본 원리를 이해합니다.

  2. 새로운 언리얼 엔진 프로젝트를 생성합니다. 원하는 템플릿을 사용하면 됩니다.

  3. 프로젝트에서 텍스트 음성 변환 플러그인을 활성화합니다. 이 단계를 완료하는 데 도움이 필요하면 플러그인으로 작업하기 페이지를 참조하세요.

새로운 위젯 블루프린트 생성

이 단계에서는 화면에 표시되는 위젯을 생성합니다.

  1. 콘텐츠 브라우저(Content Browser) 또는 콘텐츠 드로어(Content Drawer) 의 빈 영역을 우클릭합니다. 컨텍스트 메뉴 에서 유저 인터페이스(User Interface) > 위젯 블루프린트(Widget Blueprint) 를 선택합니다.

    새로운 위젯 블루프린트 생성

  2. 사용자 위젯(User Widget) 클래스를 선택하고 선택(Select) 을 클릭하여 위젯을 생성합니다.

    위젯 클래스 선택

  3. 새로운 위젯의 이름을 MyWidget 으로 지정합니다.

  4. 위젯 블루프린트(Widget Blueprint) 를 더블클릭하여 위젯 에디터(Widget Editor) 에서 열고, 다음과 같이 두 개의 버튼이 있는 단순한 레이아웃을 생성합니다. 이 튜토리얼에서 버튼의 크기와 배치는 중요하지 않습니다. 버튼을 쉽게 클릭할 수 있기만 하면 됩니다.

    위젯 레이아웃 예시

  5. 위젯을 컴파일(Compile) 하고 저장(Save) 한 후 위젯 에디터를 최소화합니다.

레벨 블루프린트에 위젯 추가

다음으로 레벨 블루프린트(Level Blueprint)에 위젯을 추가하여 게임이 시작될 때 화면에 표시되게 합니다.

  1. 메인 툴바(Main Toolbar) 에서 레벨 블루프린트(Level Blueprint) 를 엽니다.

    레벨 블루프린트 열기

  2. 레벨 블루프린트(Level Blueprint)Event BeginPlay 노드의 실행 핀으로부터 드래그합니다. Create Widget 을 검색해 선택하고 Enter 를 눌러 노드를 생성합니다.

    새로운 위젯 노드 생성

    새로운 위젯 노드 생성

  3. Create Widget 노드의 실행 핀으로부터 드래그하여 Add to Viewport 노드를 생성합니다.

    새로운 Add to Viewport 노드 생성

  4. Add to Viewport 노드의 실행 핀으로부터 드래그하여 Set Input Mode UI Only 노드를 생성합니다.

    Set Input Mode UI Only 노드 생성

    이 노드는 플레이어 입력에 반응하는 유일한 게임 엘리먼트가 UI임을 위젯에 알립니다. 사용자의 다른 입력은 게임플레이 액션으로 변환되지 않습니다. 해당 컨트롤에 액션이 바운드되어 있어도 마찬가지입니다.

  5. 블루프린트 에디터(Blueprint Editor) 의 빈 영역을 우클릭하여 Get Player Controller 노드를 생성합니다.

    Get Player Controller 노드 생성

  6. 2단계에서 생성한 Construct Widget 노드의 반환 값(Return Value) 핀을 다음 핀에 연결합니다.

    • Add to Viewport 노드의 타깃(Target)

    • Set Input Mode UI Only 노드의 In 포커스할 위젯(In Widget to Focus)

  7. 5단계에서 생성한 Get Player Controller 노드의 반환 값(Return Value) 핀을 Set Input Mode UI Only 노드의 플레이어 컨트롤러(Player Controller) 핀으로 연결합니다.

    이 단계에서 레벨 블루프린트는 다음 이미지와 같이 됩니다.

    일부 레벨 블루프린트

  8. Get Player Controller 노드의 반환 값(Return Value) 핀으로부터 드래그하여 Set Show Mouse Cursor 노드를 생성합니다. 이 노드의 마우스 커서 표시(Show Mouse Cursor) 체크박스를 활성화합니다.

  9. Set Input Mode UI Only 노드의 출력 핀을 Set Show Mouse Cursor 노드의 입력 핀에 연결합니다.

    Set Show Mouse Cursor 노드 연결

  10. Create Widget 노드의 클래스(Class) 값을 이전 섹션에서 생성한 MyWidget 위젯으로 설정합니다.

    위젯 클래스를 MyWidget으로 설정

  11. 블루프린트를 컴파일(Compile) 하고 저장(Save) 합니다.

완성된 레벨 블루프린트는 다음과 같이 됩니다.

이제 레벨 블루프린트를 닫으면 됩니다.

텍스트 음성 변환 스트링 추가

다음으로 각 버튼이 '음성화'할 때 사용할 채널을 생성하고, 음성화할 텍스트 스트링을 입력합니다.

  1. 위젯 에디터(Widget Editor) 의 위젯으로 돌아갑니다. MyWidget 위젯을 닫았다면 콘텐츠 브라우저(Content Browser) 에서 이 위젯을 더블클릭하여 다시 엽니다.

  2. 생성한 버튼 중 하나를 클릭합니다. 그런 다음 오른쪽의 디테일(Details) 패널에서 이벤트(Events) 로 스크롤한 후 더하기 부호(+) 를 클릭하여 클릭 시(On Clicked) 이벤트를 새로 추가합니다.

    클릭 시 이벤트 추가

    이렇게 하면 위젯의 그래프(Graph) 가 열리고 이 버튼의 On Clicked 노드가 새로 생성됩니다.

  3. 그래프 내에서 우클릭한 후 새로운 Get TextToSpeechEngineSubsystem 노드를 생성합니다.

    Get Text To Speech Engine Subsystem 노드 생성

    이 노드가 표시되지 않으면 프로젝트에서 텍스트 음성 변환(Text To Speech) 플러그인이 활성화되어 있는지 확인합니다.

  4. Text to Speech Engine Subsystem 노드로부터 드래그하여 새로운 Add Default Channel 노드를 생성합니다. 클릭 시(On Clicked) 이벤트를 Add Default Channel 노드의 입력 핀에 연결합니다.

    Add Default Channel 노드 생성

  5. Add Default Channel 노드에서 새 채널 ID(New Channel ID) 프로퍼티를 우클릭하고 컨텍스트 메뉴의 변수로 승격(Promote to Variable) 을 선택합니다.

    새 채널 ID 프로퍼티를 변수로 승격

  6. 오른쪽의 디테일(Details) 패널에서 변수 이름(Variable Name) 프로퍼티를 사용하여 변수 이름을 Channel One 으로 지정합니다.

    변수 이름 변경

  7. 다시 Text to Speech Engine Subsystem 노드로부터 드래그하여 새로운 Activate Channel 노드를 생성합니다. Add Default Channel 노드의 출력 핀을 Activate Channel 노드의 입력 핀에 연결합니다.

    Activate Channel 노드 생성

  8. 4단계에서 생성한 Channel One 변수를 Activate Channel 노드의 채널 ID(Channel ID) 핀에 연결합니다.

    이 단계에서 블루프린트는 다음과 같이 됩니다.

  9. 다시 Text to Speech Engine Subsystem 노드로부터 드래그하여 새로운 Speak on Channel 노드를 생성합니다. Activate Channel 노드의 출력 핀을 Speak on Channel 노드의 입력 핀에 연결합니다.

    Speak on Channel 노드 생성

  10. 4단계에서 생성한 Channel One 변수를 Activate Channel 노드의 채널 ID(Channel ID) 핀에 연결합니다.

  11. Speak on Channel 노드의 음성화할 스트링(String to Speak) 핀으로부터 드래그하여 새로운 To String (Text) 노드를 생성합니다.

    String to Speak 노드 생성

  12. 이전 단계에서 생성한 To String (Text) 노드의 입력 핀으로부터 드래그하여 새로운 Format Text 노드를 생성합니다.

    Format Text 노드 생성

  13. Format Text 노드의 포맷(Format) 박스에 음성화할 텍스트를 입력합니다.

    음성화할 스트링 입력

  14. 생성한 두 번째 버튼에도 위의 1~12단계를 반복하되, 해당하는 경우 Channel One을 Channel Two로 변경합니다.

    여러 블루프린트 노드를 클릭하고 드래그하여 복사하고 붙여넣을 수 있습니다. 이렇게 하면 수동으로 단계를 반복하는 수고를 줄일 수 있습니다.

  15. 블루프린트를 컴파일(Compile) 하고 저장(Save) 합니다.

완성된 위젯 블루프린트는 이제 다음과 같이 됩니다.

위젯 테스트

이제 위젯을 테스트할 차례입니다.

레벨 뷰포트(Level Viewport)메인 툴바(Main Toolbar) 에서 플레이(Play) 버튼을 클릭하여 에디터에서 플레이(Play in Editor) 모드로 전환합니다.

메인 툴바의 플레이 버튼

이제 위젯이 뷰포트 안에 표시된 것을 볼 수 있습니다. 버튼을 클릭하여 해당 스트링이 음성화되는 것을 듣습니다.

레벨 뷰포트의 완료된 위젯