3. 쏠 수 있는 바위 스폰하기

이번 단계에서는 플레이어가 버튼을 누르면 스폰 위치 중 하나에서 쏠 수 있는 바위를 스폰시키도록 하겠습니다.

Windows
MacOS
Linux

이번 단계에서는, 플레이어가 버튼을 누르면 (다른 조건은 충족되었다 가정하고) 쏠 수 있는 바위를 스폰시킬 수 있도록 하는 로직을 구성하겠습니다. 우리 레벨에서, 스폰 지점을 몇 개 정의하고, 그 중 하나의 위치를 구하여 캐릭터 블루프린트로 전송시키는 (다음 단계에서 만들) 레벨 블루프린트 의 이벤트를 발동시키는 이벤트 디스패처 를 사용할 것입니다.

먼저, 플레이어가 키를 눌러 쏠 수 있는 바위를 스폰시킬 수 있도록 합시다.

  1. FirstPersonCharacter 블루프린트 안에서 그래프의 빈 공간 아무데나 우클릭 한 다음 F Key Event 를 추가합니다.

    FKeyEvent.png

  2. B 키를 누르고 그래프에 좌클릭 하여 Branch (분기) 노드를 추가합니다.

  3. IsActive 변수를 Alt 드래그한 다음 체크박스를 체크하고 아래와 같이 연결합니다.

    BranchAdded.png

  4. Control 키를 누르고 IsActivePulls 변수를 끌어놓습니다.

  5. IsActiveNOT Boolean (true 아님) 노드에, Pulls 를 (0 으로 설정된) > 노드에 연결합니다.

    TwoNodesAdded.png

    NOT Boolean 노드는 엔진 이전 버전의 != 노드를 가리킵니다.

  6. 두 출력 모두 And 노드에 연결한 다음 BranchCondision 에 물려줍니다.

    AndAdded.png

    여기서 IsActive 라는 변수가 True 가 아닌지 & 플레이어의 Pulls 카운트가 0 보다 큰지 검사하여 플레이어가 바위를 스폰시킬 수 있는지 결정하는 로직을 구성합니다. 이 두 조건 모두 True 인 경우, Branch (분기) 노드의 True 쪽을 타고 내려가 바위를 스폰시킵니다 (스크립트 그 쪽 부분은 이제 곧 구성해 줄 것입니다).

  7. Pulls 변수를 Alt 드래그한 다음 Set IsActive 노드 뒤에 연결해 줍니다.

  8. Pulls 변수를 Control 드래그한 다음 (1 로 설정된) Int - Int 노드에 연결한 뒤 Set Pulls 에 연결합니다.

    PullsSet.png

  9. 컴파일 을 클릭한 다음 Set Pulls 노드를 끌어놓고 ResetShots Custom Event 를 추가합니다.

    CallCustomEvent.png

    구성 상태가 아래와 비슷할 것입니다.

    ScriptBeforeEventDispatcher.png

    언제 플레이어가 바위를 스폰시킬 수 있는지에 대한 로직이 구성되었으니, 이제 레벨과 통신하여 스폰 위치를 구해와야 합니다. 그 작업은 F 키가 눌리면 호출되는 이벤트 디스패처 를 사용해서 해 주겠습니다. 레벨 블루프린트 는 이벤트 디스패처를 기다리다가 호출되면 자체 이벤트를 발동시켜 스폰 지점 중 하나의 위치를 구하여 캐릭터 블루프린트로 반환시킵니다.

  10. 내 블루프린트 창에서 + 이벤트 디스패처 버튼을 클릭합니다.

    AddEventDispatcher.png

  11. 새로운 이벤트 디스패처를 클릭하여 선택한 채로 F2 키를 눌러 이름을 GetSpawnLocation 으로 변경해 줍니다.

    RenameEventDispatcher.png

  12. 그래프에서 Reset Shots 함수 다음 Call GetSpawnLocation 노드를 추가합니다.

    CallEventDispatcher.png

    이벤트 디스패처가 추가되며, 노드 우상단에 봉투 모양 아이콘이 표시되어 있습니다.

    NewNodeAdded.png

  13. GetSpawnLocation 를 끌어놓고 Spawn Actor from Class 노드를 추가합니다.

    SpawnActorNode.png

  14. Spawn Actor 노드에서 ClassBP_Rock 로 설정합니다.

  15. 또한 Spawn Actor 노드에서 SpawnLocation 변수를 끌어 SpawnTransform 핀 위에 놓습니다.

    SpawnActorComplete.png

    쏠 수 있는 바위를 스폰시키고, 그 바위를 스폰시킬 트랜스폼 위치를 받아오도록 하는 캐릭터 블루프린트 구성이 완료되었습니다.

다음 단계에서는 레벨 블루프린트 를 사용하여 캐릭터 블루프린트의 이벤트 디스패처가 호출되면 스폰 지점 중 하나의 위치를 구한 다음 그 정보를 캐릭터 블루프린트에 전달하도록 하겠습니다 (즉 캐릭터 블루프린트에서 레벨 블루프린트로, 그리고 다시 캐릭터 블루프린트로 정보를 전달하게 됩니다).

태그

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

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

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

네이버 카페
공식 포럼