본문 바로가기

공부/언리얼엔진

블루프린트 통신

다수의 블루프린트 작업 시

그 사이의 정보를 전달하거나 공유하기 위해서 일정한 형태의 통신이 필요하다.

그 종류로는 간단하게

 - 직접 블루프린트 통신

 - 이벤트 디스패처

 - 블루프린트 인터페이스

 - 블루프린트 형변환

이렇게 네 가지의 방법으로 나누어진다.

각각의 방법에 대해 알아보도록 하자.

 

직접 블루프린트 통신

가장 흔한 통신 방법으로 1:1 방식의 통신 유형이다.

작업 블루프린트가 타깃 블루프린트로의 접근을 요청하는 방식이다.

공개적으로 노출된 오브젝트 변수를 통해 타깃 블루프린트로의 레퍼런스를 구한 다음 

접근하고자 하는 블루프린트의 인스턴스를 지정하는 방식이 가장 보편적이다.

일반적으로 먼저 작업할 것은 어떤 블루프린트와 통신할 것인지 식별하는 것이다.

이를 위해 작업 블루프린트 내부에 공개적으로 노출되는 변수를 생성하고

타깃 블루프린트을 지정해야한다. (작업 블루프린트 내의 변수를 Editable 설정)

 

함수와 함께 직접 블루프린트 통신

  블루프린트에서 함수 작업을 할 때 타깃 블루프린트 유형을

  함수의 파라미터로 지정하면 여전히 직접 블루프린트 통신이 가능하다.

  타깃 블루프린트를 찾을 수 없을 때 통신 오류가 발생하기도 하는데

  이는 IsValid? 노드를 통해 해결할 수 있다.

 

이벤트 디스패처

이벤트 디스패처는 이벤트 발생 여부를 리스닝하는 다른 블루프린트에 알릴 때 사용된다.

이벤트가 발생하면 리스닝 중이던 블루프린트는 그에 반응하여

서로간에 독립적으로 작업을 실행할 수 있다.

이를 이용하는 경우는 다음과 같다.

  • 캐릭터 블루프린트에서 레벨 블루프린트로 통신하고자 합니다.
    • 플레이어 캐릭터가 레벨 업 하여 기존에 잠긴 영역을 열고자 합니다.
    • 플레이어 캐릭터가 레벨에 무언가가 벌어지는 액션 버튼을 눌렀습니다.
  • 스폰된 액터에 무언가 실행되면 이벤트가 발동되도록 하고 싶습니다.
    • 보스를 스폰하고, 보스가 죽으면 월드에 보상이 스폰되는 이벤트가 발동됩니다.
    • 레벨에 (웨폰, 헬쓰 등의) 아이템을 스폰하고, 픽업시 아이템과 캐릭터에게 알립니다.

 

블루프린트 인터페이스

특정 함수성을 공유하는 여러 유형 오브젝트와 상호작용할 때 쓰이는 방법이다.

건물과 사람처럼 다른 유형의 오브젝트도 대미지를 입힐 수 있다는 공통점을 가지는 경우 쓰이기도 한다.

인터페이스는 일종의 계약으로 지정된 함수를 구현하고 호출될 시 반응한다는 약속이다.

 

블루프린트 형변환

Cast 노드를 사용하는 통신형태.

오브젝트가 특정 오브젝트의 특수버전인지 묻고 경우에 따라 접근을 허가하는 형태이다.

 

 참고 https://docs.unrealengine.com/5.1/ko/introduction-to-blueprints-visual-scripting-in-unreal-engine/

'공부 > 언리얼엔진' 카테고리의 다른 글

컴포넌트  (0) 2023.03.25
개요 - 용어  (0) 2023.03.20