4. 레벨에서 캐릭터로 정보 전달하기

이번 단계에서는 레벨 블루프린트를 사용해서 스폰 지점 위치를 구하여 캐릭터 블루프린트로 넘겨주도록 하겠습니다.

Windows
MacOS
Linux
  1. 메인 에디터 뷰의 툴바에서, 블루프린트 버튼을 클릭한 다음 레벨 블루프린트 열기 를 선택합니다.

    OpenLevelBlueprint.png

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

    GetPlayerCharacter.png

  3. Get Player CharacterReturn Value 를 끌어 놓은 다음 Cast To FirstPersonCharacter 노드를 추가합니다.

    CastToNode.png

    여기서는 Cast 노드를 사용하여 먼저 플레이어 캐릭터를 구한 다음, 그 플레이어에 사용되는 캐릭터 블루프린트를 구합니다 (여기서는 FirstPersonCharacter 이며, 플레이가능 캐릭터의 다른 스크립트를 구성하는 곳입니다). Cast 노드를 사용하여 플레이어 캐릭터의 블루프린트와 그 안의 변수, 이벤트, 함수에 접근할 수 있습니다.

    Cast, 형변환 관련 상세 정보는 블루프린트의 형변환 문서를 참고하세요.

  4. 노드를 아래와 같이 연결한 다음, Cast To 노드의 Return Value 에서 변수로 승격 을 선택합니다.

    PromoteToVariable.png

    플레이어가 사용중인 FirstPersonCharacter 블루프린트로의 레퍼런스를 저장할 변수를 만들어 매번 Cast 를 사용하지 않고도 접근할 수 있도록 하겠습니다. Event Begin Play 즉시 이 작업을 해 주면 나중에 시간이 절약될 것입니다.

  5. 승격된 변수를 선택한 다음, 디테일 패널에서 이름을 MyCharacter 로 변경합니다.

    RenamedMyCharacter.png

  6. MyCharacter 노드의 Return Value 를 끌어놓고 Assign Get Spawn Location 노드를 추가합니다.

    AssignSpawnLocation.png

    생성한 이벤트 디스패처 입니다. 이것을 선택하면 두 개의 노드가 추가됩니다.

    목록에 이 노드가 보이지 않는다면, FirstPersonCharacter 블루프린트에서 컴파일 버튼을 누르고 재시도해 보세요.

  7. Bind Event 에서 새로 추가된 노드를 연결했는지 확인합니다.

    ConnectAddedNodes.png

    이제 캐릭터 블루프린트에서 GetSpawnLocation 이 호출되면, 새로운 Custom Event 역시도 호출됩니다.

  8. 내 블루프린트 창에서 Control 키를 누르고 MyCharacter 변수를 끌어 놓은 다음, 거기에다 Set Spawn Location 노드를 추가합니다.

    SetSpawnLocation.png

  9. 메인 에디터 창으로 돌아와 월드 아웃라이너 에서 Target Point 를 검색한 뒤 각각을 Ctrl 클릭으로 선택합니다.

    SelectAllTargetPoints.png

  10. 레벨 블루프린트 로 돌아와 그래프에 우클릭 한 다음 3 개의 선택된 액터로의 레퍼런스 생성 을 선택합니다.

    AddReferences.png

  11. 그래프에 우클릭 한 다음 Make Array 노드를 추가한 뒤, 거기에 각 Target Point 를 연결합니다.

    MakeArray.png

    핀 추가 버튼을 클릭하여 핀을 추가시킬 수 있습니다. 이 배열에는 접근할 수 있는 타깃 포인트 집합이 저장됩니다.

  12. Array 핀을 끌어놓고 Get 노드를 추가합니다.

  13. Get 노드를 끌어놓고 Random Integer in Range 노드를 추가한 다음 Min 은 0, Max 는 2 로 설정합니다.

    GetNodeAdded.png

    여기서는 스폰 지점으로 사용할 임의의 타깃 포인트를 구합니다. 스폰 지점이 더 있는 경우, 배열에 추가한 다음 Random Integer in Range 노드의 Max 값을 증가시켜 포함시킵니다.

  14. Get 노드를 끌어놓고, Get Actor Transform 노드를 추가한 다음 Set Spawn Location 노드에 연결합니다.

    전체 스크립트는 위와 비슷할 것이며, 클릭하면 원래 크기로 봅니다.

이 페이지에서 많은 작업을 했습니다! Cast 노드를 사용하여 캐릭터 블루프린트에 접근한 다음, 그 안의 이벤트 디스패처에 Custom Event 를 바인딩했습니다. 이를 통해 이벤트 디스패처가 호출될 때마다 레벨 블루프린트에 있는 Custom Event 를 발동시킬 수 있습니다. 그런 다음 스폰 지점 중 하나를 임의로 구해온 다음 그 변수를 (바위 스폰 위치로 사용되는) Spawn Location 으로 캐릭터 블루프린트에 돌려줍니다.

다음 단계에서는, 바위에 총을 쏠 수 있도록 하고, OnHit 라는 이벤트에서 Bind Event 를 사용하여 (즉 바위에 맞으면) 파괴되도록 하겠습니다.

태그
Select Skin
Light
Dark

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

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

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

네이버 카페
공식 포럼