2. 액터 블루프린트 구성

위젯 컴포넌트가 포함된 액터 블루프린트를 사용해서 위젯 블루프린트를 3D 월드 스페이스에 표시합니다.

Windows
MacOS
Linux
On this page

표시하려는 위젯 블루프린트가 준비되었으니, 블루프린트 안에 위젯 컴포넌트 를 만든 뒤 그 블루프린트를 게임 월드에서 표시하려는 레벨에 배치해 주면 됩니다. 위젯 컴포넌트에는 위젯 표시를 월드 스페이스에 할지 스크린 스페이스에 할지 선택하는 옵션도 있습니다 (기본값은 월드입니다).

단계

  1. 콘텐츠 브라우저 에서 신규 추가 버튼을 클릭한 다음 Blueprint Class (블루프린트 클래스)를 선택합니다.

    Actor_1.png

  2. 뜨는 팝업 메뉴에서 Actor (액터)를 선택한 뒤, 이름을 3D_Menu 식으로 지어줍니다.

    Actor_2.png

  3. 새 블루프린트에 더블클릭하여 블루프린트 에디터에서 엽니다.

    Actor_3.png

  4. 컴포넌트 추가 버튼을 클릭한 뒤, Widget (위젯) 유형 컴포넌트를 검색 추가합니다.

    Actor_4.png

  5. 컴포넌트 이름을 MainMenu 라 한 뒤, 컴파일저장 버튼을 클릭합니다.

  6. 위젯 컴포넌트의 디테일 패널에서 Widget Class 아래 MainMenu 위젯 블루프린트를 사용하도록 설정해 줍니다.

    Actor_5.png

  7. Draw Size 세팅을 조절하여 위젯 스케일을 늘릴 수 있습니다.

    Actor_6.png

    여기서는 X1200 으로 설정하고 Y 값은 500 으로 놔뒀습니다.

  8. Max Interaction 이라는 옵션도 있는데, 플레이어가 위젯을 조작하기 위해 필요한 거리를 결정해 줍니다.

    Actor_7.png

    Max Interaction2000 으로 올렸습니다.

  9. 또한 위젯의 디테일 패널에서 Rendering 아래 Two Sided (양면) 옵션을 체크합니다.

    Actor_8.png

    그러면 이 위젯은 뒤에서 봐도 투명하지 않고 보이게 됩니다.

  10. 이벤트 그래프 탭을 클릭합니다.

    Actor_9.png

  11. 그래프에 우클릭 한 뒤 Get Player Controller 노드를 검색 추가합니다.

    Actor_10.png

  12. 그래프에 우클릭 한 뒤 Set Input Mode Game and UI 노드를 검색 추가합니다.

    Actor_11.png

  13. 노드 각각을 아래와 같이 기존 Event Begin Play 노드에 연결합니다.

    Actor_12.png

  14. Ctrl 키를 누르고 MainMenu 컴포넌트를 클릭하여 그래프 창에 끌어 놓습니다.

    Actor_13.png

  15. MainMenu 컴포넌트를 끌어놓고 Get User Widget Object 한 뒤 아래와 같이 연결합니다.

    Actor_14.png

  16. GetPlayerController 를 끌어놓고 Set Show Mouse CursorTrue 로 한 뒤 아래와 같이 연결합니다.

    Actor_15.png

    그러면 지정한 위젯에 초점이 잡혀 마우스 커서로 어디를 가리키는지 확인할 수 있게 됩니다.

  17. 블루프린트를 컴파일, 저장 후 닫습니다.

  18. 콘텐츠 브라우저 에서 블루프린트를 끌어 레벨에 놓습니다.

    Actor_16..png

    이동 (W), 회전 (E), 스케일 (R) 키를 사용하여 UI 를 월드의 원하는 위치에 놓을 수 있습니다.

최종 결과

에디터에서 플레이해 보면, 이제 UMG 에서 만든 UI 위젯이 3D 월드 스페이스에 나타나는 것을 볼 수 있습니다. 메뉴 항목에 마우스 커서를 올리면 현재 선택되어 강조된 부분이 바뀌는 것도 볼 수 있습니다. 이는 상호작용형 3D 메뉴를 구성해 보는 예제이지만, 같은 프로세스를 통해 생명력 표시 막대, 키패드와 같은 여러가지 상호작용형 UI 요소를 3D 위젯 형태로 게임 월드에 표시되도록 할 수 있습니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback