2014년 5월 9일

블루프린트 매크로와 블루프린트 라이브러리

저자: Michael Noland 홍성진 번역

블루프린트 매크로는 일정한 노드 세트를 반복 재사용할 수 있도록 해 주는 것으로, 어느 블루프린트에서도 ('내 블루프린트' 툴바의 '매크로 추가' 버튼을 사용하여) 만들 수 있습니다. 선택된 노드에 우클릭한 다음 'Collapse to Macro' (매크로로 접기) 옵션을 사용하여 선택을 매크로로 변환할 수도 있습니다. 매크로는 접힌 그래프와 비슷하게 작동하며, 매크로 인스턴스를 배치할 때마다 핀으로 나타나는 입력과 출력을 임의로 정의할 수 있습니다.  오브젝트 핀이 유효한지를 확인하는 IsValid 라는 이름의 매크로 예제는 이렇습니다:

IsValid macro declaration

[IsValid 매크로 선언]

그런 다음 다른 그래프에 이 매크로를 거기 속한 노드들에 대한 약칭으로 인스턴스 배치함으로써 코드를 재사용하고 복잡도를 숨길 수 있습니다:

IsValid macro usage

[IsValid 매크로 활용]

매크로에 Description (설명)과 Category (카테고리)설정하는 것 잊지 마세요.  설명은 노드 인스턴스 상의 툴팁 일부로 표시되어, 무슨 작업을 하는 매크로인지 열어보지 않고도 기억을 하는 데 도움이 됩니다 (물론 언제든 인스턴스에 더블클릭하여 살펴볼 수 있습니다).  카테고리는 그래프 액션 메뉴에서 매크로가 어디에 나타나는지를 정의합니다.  인스턴스의 색을 선택할 수도 있는데, 인스턴스 상의 노드 제목줄 색을 제어할 수 있습니다 (이 예에서는 흐름 제어 노드임을 나타내기 위해 흰색을 사용하여, 실행 핀과 와이어의 색을 일치시키고 있습니다).

Specifying Description and Category

[설명과 카테고리 지정하기]

매크로 라이브러리

매크로는 어느 블루프린트에도 추가할 수 있지만, 보통은 해당 블루프린트에서만 사용 가능합니다.  여러 블루프린트에 하나의 매크로를 공유하기 위해서는, Macro Library(매크로 라이브러리)에 추가해 주면 됩니다.  Engine 콘텐츠 디렉토리에 내장된 매크로 라이브러리가 둘 정도 있지만 (for 루프같은 다수의 기능은 사실상 매크로로 제작), Engine 의 콘텐츠는 절대로 직접 수정해서는 안됩니다. 앞으로 있을 엔진 업데이트시 뭉개질 수가 있기 때문입니다.  그 대신 콘텐츠 브라우저를 사용해서 프로젝트용 매크로 라이브러리를 생성하세요.

Creating a new Macro Library

[새 매크로 라이브러리 만들기]

일반 블루프린트와 마찬가지로 매크로 라이브러리의 부모 클래스를 선택하라는 창이 뜹니다 (무슨 소린지 잘 모르겠으면 Actor 를 선택하면 됩니다).  그러면 라이브러리에 있는 매크로가 마치 같은 영역 내 있는 것처럼 부모 클래스에 선언된 변수와 함수를 접근할 수 있게 됩니다.  예를 들어 Pawn 을 기반으로 한 라이브러리의 매크로는 Pawn 에 전달되지 않고도 GetController 를 호출할 수 있으며, Pawn 이나 좀 더 파생된 Character 같은 클래스를 기반으로 한 블루프린트용 맥락 메뉴에만 옵션으로 표시됩니다.

매크로 라이브러리를 처음 만들 때 에디터 인터페이스를 안내해 드리는 튜토리얼도 준비되어 있습니다 (이미 넘겨버린 경우 도움말 메뉴에서 다시 열어볼 수 있습니다).

코멘트나 질문이 있으신 경우, 언리얼 엔진 포럼 또는 트위터 @joatski 를 찾아주시기 바랍니다.