본문 바로가기
Game Engine/Unreal

(Unreal) 블루프린트 매크로 (Blueprint Macro)

by MeisterTJ 2022. 11. 2.

https://docs.unrealengine.com/5.0/ko/macros-in-unreal-engine/

 

매크로

다른 그래프에서 실행 또는 호출할 수 있는 접힌 노드 네트워크입니다.

docs.unrealengine.com

C++의 매크로와 비슷하게 블루프린트에도 매크로라는 것이 존재한다.

 

언뜻보면 블루프린트의 함수와 매크로는 굉장히 유사해보이고, 매크로를 왜 쓰는 것이지? 할 수 있지만

다른 점은 분명히 존재한다.

 

함수는 하나의 개별 단위로 컴파일된 노드 모음이다. 또한 하나의 입력과 하나의 출력 만이 존재한다.

반면에 매크로는 노드용 템플릿이고, 다중 입력과 출력을 지원한다.

 


[함수]

  • 컴파일 된 후 계속해서 호출할 수 있는 단일 단위를 나타낸다.
  • Latent Node 들을 지원하지 않는다.
  • 하나의 입력, 출력 와이어가 존재한다.
  • 네트워크 게임에서 리플리케이트 될 수 있다.

[매크로]

  • 노드들의 템플릿을 나타낸다. 그리고 실제로 컴파일 시간에 매크로의 위치가 실제 노드들로 대체된다.
  • Latent Node 들을 지원한다.
  • 여러개의 입력, 출력 와이어를 가질 수 있다.
  • 리플리케이트 될 수 없다.

[블루프린트에서 함수 호출]

위와 같은 블루프린트 함수가 있다고 생각해보자.

 

그리고 블루프린트 그래프에서 위와 같이 연결하였을 경우, 이 로직은 함수를 다섯 번 호출하는 것이 된다.

 

[블루프린트에서 매크로 호출]

함수와 비슷하게 위와 같은 매크로가 있다고 생각해보자.

 

그리고 블루프린트 그래프에서 위와 같이 연결하였을 경우 이는 함수의 경우 처럼 매크로를 다섯 번 호출하는 것이 아니다.

 

컴파일 시에 실제로 매크로 부분이 전부 저렇게 대체가 되어서 들어간다고 보면 된다.

함수처럼 호출되어서 내부 동작을 실행하는게 아닌, 내부 동작 자체가 매크로 위치를 대체하게 되는 것이다.