[UE5] Blueprint Interface 개념과 구현

SunowMin·2024년 4월 4일
0

Unreal

목록 보기
12/21
post-thumbnail

Blueprint Interface 블루프린트 인터페이스의 개념을 알아보고 직접 만들어서 적용해보기

1. Blueprint Interface란?

언리얼 내 설명


이름만 있고 구현은 없는 하나 이상의 함수 모음으로, 다른 블루프린트에 추가시킬 수 있습니다.
다른 블루프린트에 추가시킨 다음에는 고유한 방식으로 블루프린트 인터페이스의 함수를 구현해 줘야 합니다.


개념

  • Interface 뜻 : 접속기, 접속하다
  • 객체 간의 통신을 가능하게 하는 시스템으로
  • 이를 사용하면 유형이 다른 블루프린트 사이에 명확하게 정의된 메시지를 전송할 수 있음
  • 예를 들어, 차량과 나무처럼 완전히 다른 유형의 오브젝트일지라도, 둘 다 무기로 공격하여 대미지를 입힐 수 있다는 한가지 속성의 공유가 가능함

필요성

  • 원래는 cast해서 다른 블루프린트에 있는 함수(A함수라고 칭함)를 사용할 수 있게 해줬는데, 다양한 블루프린트에서 A함수를 쓰려면 쓸 때마다 cast해줘야하는 번거로움 + cast하는 블루프린트 내 함수, 변수를 모두 갖고오게 되는 낭비 발생
    => 직접 참조없이 여러 블루프린트에 메시지를 보낼 수 있는 블루프린트 인터페이스 사용





2.블루프린트에서 인터페이스 사용하기

캐릭터가 Box와 Overlap되면 'HAHAHA' 로그 출력해보기


1) 블루프린트 인터페이스 생성하기

  • 블루프린트 인터페이스 생성 (이름 : BP_Hello)

  • 블루프린트 인터페이스 안에 원하는 함수 생성 (함수명 : TriggerEventExample)


2) 인터페이스 추가하기

블루프린트 인터페이스는 물론 C++코드로 정의된 인터페이스도 추가 가능

  • 캐릭터가 박스에 Overlap 되는게 조건이니까, 캐릭터에 Hello 인터페이스 추가

3) 인터페이스 멤버 구현하기

블루프린트는 반드시 인터페이스의 함수를 구현해야 호출되었을 때 어떠한 동작을 하도록 할 수 있음

  • 인터페이스를 추가한 캐릭터 블루프린트에 Print string 로직 구현


4) 인터페이스 함수 호출하기

인터페이스 함수는 인터페이스 노드를 사용하여 실행함

  • 인터페이스 노드 : 함수 호출과 비슷한데, 타깃이 인터페이스를 구현하지 않는 경우 조용히 실패한다는 점만 다름


제대로 작동되는지 TEST

조건

큐브를 레벨 위에 올려놓고 캐릭터가 큐브에 닿으면 HAHAHA가 출력되는지 확인

결과


로그를 보면 'HAHAHA'가 제대로 출력되는 걸 알 수 있음






언리얼 공식 문서
https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/Blueprints/UserGuide/Types/Interface/UsingInterfaces/
유튜브
https://www.youtube.com/watch?v=96vJiKrAa9k

profile
게임, AR, VR 개발자

0개의 댓글