블루프린트로 플레이어 리스폰

언리얼 엔진 4 에서 블루프린트를 통해 플레이어 캐릭터를 리스폰하는 하우투 안내서입니다.

Windows
MacOS
Linux

여기서는 블루프린트 로 싱글 플레이어 게임의 플레이어 캐릭터를 리스폰하는 법을 배워보겠습니다.

플레이어 리스폰 (싱글 플레이어)

싱글 플레이어 게임에서 플레이어가 죽으면 리스폰하는 데 필요한 절차는 다음과 같습니다.

여기서는 블루프린트 삼인칭 템플릿 프로젝트를 기반으로 하지만, 어떤 프로젝트를 사용해도 됩니다.

  1. 프로젝트 안에서, 게임 모드 블루프린트를 엽니다 (ThirdPersonGameMode 블루프린트를 사용합니다).

  2. 그래프에 우클릭 한 다음 Event Begin Play 노드를 추가한 뒤, 다시 우클릭 하고 Get Player Character 노드를 추가합니다.

  3. Get Player Character 노드의 Return Value 를 끌어놓고 Cast To ThirdPersonCharacter 노드를 추가한 다음 노드를 연결합니다.

    GHT3B_1.png

    플레이어 캐릭터 블루프린트, 여기서는 ThirdPersonCharacterCast To (형변환)하고 싶습니다. 그러면 그 블루프린트에 접근 및 On Destroyed 이벤트를 사용하여 플레이어 캐릭터의 사망 시점을 알아내고, 새 플레이어 캐릭터를 스폰시킬 수 있습니다.

  4. As ThirdPersonCharacter C 핀을 끌어놓고 Assign On Destroyed 노드를 추가합니다.

  5. 새로 추가된 OnDestroyed_Event 노드에서 Delay 노드를 추가하고 리스폰 지연 시간을 설정합니다 (옵션).

    GHT3B_2.png

    여기서는 한 이벤트를 다른 블루프린트의 이벤트로 바인딩하고 있습니다. 이를 통해 다른 블루프린트의 이벤트 (ThirdPersonCharacter 의 OnDestroy Event)가 발생하면 이 블루프린트의 이벤트를 발동시킬 수 있습니다. 이를 일컬어 Event Dispatcher (이벤트 디스패처)라 하며, 레벨 블루프린트 와의 통신을 통해 월드에 이벤트가 발생했음을 알리는 데도 사용 가능합니다.

    자세한 정보는 이벤트 디스패처 문서를 참고하세요.

  6. Delay 노드를 (추가했다면) 끌어놓고 SpawnActorFromClass 노드를 추가한 뒤 Class 드롭다운을 ThirdPersonCharacter 로 설정합니다.

  7. 트랜스폼 변수를 새로 만들고 Spawn Transform 이라 한 뒤, Spawn Actor 노드의 Spawn Transform 에 연결합니다.

    GHT3B_3.png

  8. 그래프에 우클릭 한 다음 Possess 노드를 추가합니다.

    GHT3B_4.png

    컨텍스트에 따라 옵션 체크를 해제해야 메뉴에 노드가 나타날 수 있습니다.

  9. Spawn Actor 에서 Return ValuePossess 노드의 In Pawn 에 연결한 다음 실행 선을 연결합니다.

  10. Possess 노드의 Target 핀을 끌어놓고 Get Player Controller 노드를 추가합니다.

    GHT3B_5.png

  11. Event Begin Play 노드 근처에서, 그래프에 우클릭 한 다음 Custom Event 를 추가하고 이름을 Respawn 이라 합니다.

    GHT3B_6.png

    컨텍스트에 따라 옵션 체크를 해제해야 메뉴에 노드가 나타날 수 있습니다.

  12. 커스텀 이벤트를 Cast To ThirdPersonCharacter 노드에 연결합니다.

  13. Possess 노드를 끌어놓고 Respawn 이벤트를 호출, 전체 그래프 모습은 아래와 비슷할 것입니다.

    이미지를 클릭하면 원래 크기로 봅니다.

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

  15. ThirdPersonCharacter 블루프린트를 열고, 그래프에 우클릭 한 다음 Event Begin Play 노드를 추가합니다.

  16. 다시 우클릭 한 다음 Get Game Mode 노드를 추가한 뒤, 거기서 끌어놓고 Cast To MyGame (아니면 별도의 게임 모드)를 추가합니다.

    GHT3B_8.png

  17. As My Game C 핀을 끌어놓고 Set Spawn Transform 노드를 추가합니다.

  18. 그래프에 우클릭 한 다음 Get Actor Transform 노드를 추가한 뒤 Set Spawn Transform 노드에 연결합니다.

    GHT3B_9.png

    그러면 게임 시작시 플레이어 위치를 구해 리스폰 위치로 설정합니다.

  19. 그래프에 우클릭 한 뒤 F Key Event 를 추가하고, Pressed 핀에서 Destroy Actor 노드를 연결합니다.

    GHT3B_10.png

    이는 테스팅 목적으로, F 키를 누르면 킬(액터를 Destory, 소멸)합니다. 보통은 플레이어가 일정량의 생명력을 잃거나 보통 플레이어를 사망에 이르게 할만한 이벤트가 생기면 Destroy Actor 노드를 호출하게 됩니다.

컴파일 후 에디터에서 플레이하면, F 키를 누를 때마다 잠깐 사라진 다음 시작 위치에서 리스폰될 것입니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼