본문 바로가기
Unreal Engine

Unreal Engine 매크로(Macros) 이해하기

by hfgraphic 2025. 10. 20.
반응형

 

매크로(Macros) 이해하기

 

마지막으로 이야기할 것은 **매크로(Macros)**입니다. 매크로는 함수와 거의 같지만, **지연되거나 시간 기반의 함수(timed functions)**를 포함할 수 있다는 차이점이 있습니다.


 

1. 매크로의 필요성: 지연(Delay) 함수

함수지연되거나 시간 기반의 함수를 포함할 수 없습니다.

  1. 코드 예시: Event Begin Play에서 **Print String ("Hello")**을 출력하고, **Delay (0.2초)**를 준 다음, **Print String ("Hello again")**을 출력하는 코드가 있다고 가정해 봅시다.
  2. 함수 생성 시도 실패: 이 모든 노드를 선택하고 마우스 오른쪽 버튼을 눌러 **'Collapse to Function (함수로 접기)'**를 시도하면 "Collapsing to function failed (함수로 접기 실패)" 메시지가 뜹니다.
  3. 실패 이유: 메시지 로그를 확인하면 **"Delay cannot be placed in a function graph (Delay는 함수 그래프에 배치할 수 없습니다)"**라고 나옵니다. 함수는 시간 기반 함수를 포함할 수 없다는 것을 아는 것이 매우 중요합니다.

 

2. 매크로 생성 및 특징

시간 기반 함수가 포함된 코드를 정리하고 싶다면 함수 대신 매크로를 사용해야 합니다.

  1. 매크로 생성: 코드를 선택하고 마우스 오른쪽 버튼을 클릭하여 **'Collapse to Macro (매크로로 접기)'**를 선택합니다.
  2. 매크로 이름: 매크로에 이름을 지정합니다 (예: 'Message').
  3. 매크로 내부 확인: 매크로를 더블 클릭하면 내부로 들어갈 수 있습니다. 매크로는 Function과 마찬가지로 입력(Input)출력(Output) 노드를 가집니다.

3. 매크로의 차별점: 다중 실행 핀

매크로의 가장 큰 장점은 여러 개의 실행 핀을 가질 수 있다는 것입니다.

  1. 출력 실행 핀 추가: 매크로 내부의 'Output (출력)' 노드를 클릭합니다.
  2. 실행 핀 추가: Details (디테일) 패널에서 **'+'**를 클릭하고 **'Execution Pin (실행 핀)'**을 추가할 수 있습니다. (함수에서는 할 수 없는 작업입니다.)
  3. 이름 변경: 핀 이름을 의미 있게 변경합니다 (예: 'Return').
  4. 다중 핀: 여러 개의 실행 핀을 추가할 수 있습니다 (예: 'Win', 'Lose').
  5. 결과: 이제 이벤트 그래프에서 매크로를 호출하면 여러 개의 출력 실행 핀이 생기며, 이를 사용하여 조건에 따라 여러 코드를 실행할 수 있습니다.

4. 매크로 사용 시점

 

  • 지연 함수 포함 시: Delay와 같은 시간 기반 함수가 포함된 코드를 접어야 할 때 매크로를 사용합니다.
  • 다중 실행 경로 필요 시: 하나의 함수 호출에서 **여러 개의 분기(예: Win/Lose)**로 코드를 나누고 싶을 때 매크로를 사용합니다.

💡 개발 습관: 일반적으로 프로그래밍 시, 다중 실행 핀이 필요하거나 Delay 함수를 접어야 하는 경우가 아니면 함수를 사용합니다.

출처 입력

 

5. 사전 제작된 매크로 예시

  • Is Valid (유효한가): **'Is Valid'**를 검색하여 찾을 수 있는 이 노드는 실제로 사전 제작된 매크로입니다.
  • 용도: 이 매크로는 우리가 연결한 **오브젝트(예: Floor Reference)**가 유효한지(존재하는지) 확인합니다. 오브젝트가 존재하지 않으면 코드를 계속 진행할 이유가 없으므로, 코드의 안정성을 높이는 데 사용됩니다.

 

6. 매크로 관리

 

  • 매크로 탭: 만든 매크로는 왼쪽의 'Macros (매크로)' 탭에서 볼 수 있습니다.
  • 새 매크로 생성: '+' 버튼을 클릭하여 새 매크로를 만들고 그 안에 로직을 구성할 수도 있습니다.

이것으로 매크로에 대한 설명이 끝났습니다. 혼란스럽지 않기를 바랍니다. 다음 강의에서는 곧 실제 예제를 통해 이벤트, 함수, 매크로를 함께 사용하여 배우는 시간을 가질 것입니다.

 

반응형