Choose your operating system:
Windows
macOS
Linux
매크로 라이브러리 는 매크로, 다른 말로 타 블루프린트에 노드로 배치할 수 있는 자체 독립적 그래프 모음을 저장하는 컨테이너입니다. 실행은 물론 데이터 전송도 가능한 입출력이 완비되어 있어 자주 사용되는 노드 시퀀스를 저장할 수 있으므로 시간을 절약시켜 줍니다.
매크로 라이브러리 만들기
이 예제에서는 두 개의 매크로로 구성된 매크로 라이브러리를 만들어 볼텐데, 하나는 "Health" 변수를 추가, 다른 하나는 지정된 액터의 크기를 조절합니다.
이 예제에서는 시작용 콘텐츠 를 포함시킨 블루프린트 삼인칭 프로젝트 를 사용합니다.
-
콘텐츠 브라우저 의 빈 공간에 우클릭 한 다음 컨텍스트 메뉴에서 블루프린트 아래 블루프린트 매크로 라이브러리 를 선택합니다.
-
나타나는 부모 클래스 선택 창에서 부모 클래스 를 선택하세요 (이 예제에서는 Actor 입니다).
-
매크로 라이브러리의 이름을 입력한 뒤 더블클릭 하여 엽니다.
그러면 블루프린트 매크로 인터페이스가 표시됩니다.
-
우상단의 내 블루프린트 창에서 F2 키를 눌러 기본 매크로 이름을 ScaleUp 으로 바꿉니다.
-
ScaleUp 매크로의 디테일 패널에서, 아래 표시된 입력 과 출력 을 추가합니다.
위에서 입력을 둘 생성했는데, 하나는 실행 유형으로 설정된 In , 다른 하나는 Actor 유형으로 설정된 InActor 입니다. 추가된 출력은 Out 이라 불리며, Exec 유형으로 설정됩니다. 이를 사용해서 이 매크로를 통해 영향을 끼치고자 하는 액터를 결정합니다.
-
ScaleUp 매크로에 대한 그래프에서, 아래와 같이 노드를 재구성합니다.
위에서 이 매크로가 호출되면 InActor 에 제공된 액터를 구한 뒤 그 현재 스케일에 1.25 를 곱한 다음 타깃 (여기서는 InActor 로 지정된 액터)에 대한 새로운 스케일 3D 값으로 설정합니다. 이제 어느 액터에도 이 매크로를 사용해서 그 스케일에 영향을 끼칠 수 있습니다.
-
내 블루프린트 창에서 AddHealth 라는 매크로를 또하나 추가합니다.
-
AddHealth 의 디테일 패널에서 아래와 같이 입력 과 출력 을 추가합니다.
위에서 GetHealth 라는 float 값을 받아 더해준 뒤 SetHealth 출력 노드를 통해 전달합니다.
-
AddHealth 매크로에 대한 그래프에서, 아래와 같은 노드 망을 재구성합니다.
위에서 GetHealth 값으로 제공된 float 값에 50 을 더한 다음 결과값을 SetHealth 에 출력합니다.
-
블루프린트 매크로 라이브러리를 저장 하고 닫습니다.
-
Content/ThirdPersonBP/Blueprints 폴더 안에서 ThirdPersonCharacter 블루프린트를 엽니다.
-
내 블루프린트 창에서 Health 를 나타내는 Float 변수를 추가합니다 (기본값은 0 으로 놔뒀습니다).
-
이벤트 그래프에서, 아래와 같이 노드 망을 재구성합니다.
위에서 Q 를 누를 때마다 AddHealth 매크로를 호출하는데, Health 값을 받아 (값을 올리는 매크로 스크립트를 실행하고) SetHealth 출력 핀으로 업데이트한 뒤 화면에 출력하는 매크로입니다. 그리고서 E 를 누르면 Health 가 100 보다 큰지 확인한 뒤 액터 Self , 즉 ThirdPersonCharacter 에서 ScaleUp 매크로를 호출하도록 합니다.
-
컴파일 후 에디터에서 플레이 합니다.
화면에 출력된 텍스트 확인을 위해서는, 위 비디오를 전체화면으로 시청해 주시기 바랍니다.
위 비디오에서 13 단계의 블루프린트 스크립트를 포함, 스크립트가 언제 발동되는지 확인할 수 있도록 했습니다. E 키를 눌러 ScaleUp 매크로를 호출하려 할 때, 먼저 기본값이 0 인 Health 값을 검사합니다. 그런 다음 Q 를 눌러 AddHealth 매크로를 호출, 누를 때마다 Health 변수 값을 50 씩 늘립니다. 몇 번 누른 뒤 다시 ScaleUp 매크로 호출을 시도하면 이제 Health 값이 늘어 100 을 초과했기에 호출되는 것을 확인할 수 있습니다.
이 매크로는 Health 에 대한 입력과 타깃 액터가 제공된 한 어느 블루프린트에서도 호출 가능합니다.