매크로 만들기

플레이어의 에너지가 점프하기에 충분한지 검사하는 매크로입니다.

Choose your operating system:

Windows

macOS

Linux

Macro 매크로는 본질적으로 노드들이 접힌 그래프와 같습니다. 터널 노드로 지정된 입구와 출구가 있습니다. 각 터널은 실행 또는 데이터 핀을 몇 개든 가질 수 있으며, 이는 다른 블루프린트와 그래프에서 사용되는 매크로 노드에서 확인할 수 있습니다.

매크로 만들기

이 예제에서는 플레이어가 점프하기에 충분한 에너지를 가졌는지 아닌지 검사하는 데 사용되는 매크로 를 만들어 보겠습니다. 점프하기에 충분한 에너지가 있으면, 플레이어의 에너지를 조금 감소시킨 다음 현재 값을 화면에 출력시키고 점프를 허용합니다. 에너지가 충분치 않으면 에너지가 없다고 화면에 출력한 다음, 점프를 허용하지 않습니다.

이 예제에서는 시작용 콘텐츠 포함 블루프린트 삼인칭 프로젝트 를 사용합니다.

  1. Content/ThirdPersonBP/Blueprints 폴더에서 ThirdPersonCharacter 블루프린트를 엽니다.

  2. 내 블루프린트 창에서 매크로 추가 버튼을 누릅니다.

    MacroHT1.png

  3. 새 매크로가 생성되면 선택한 다음 F2 키를 눌러 이름을 EnergyCheck 로 변경해 줍니다.

    MacroHT2.png

  4. 매크로를 선택한 채 디테일 패널에서 추가 버튼을 눌러 입력 하나, 출력 두 개를 만듭니다.

    MacroHT3.png

    그러면 매크로 노드 자체에 입력/출력 노드가 생성되어, 매크로와 데이터를 주고받는 데 사용할 수 있습니다.

  5. 입력 은 글상자에 이름을 BeginCheck 라 입력하고 유형을 실행 (실행 핀)이라 설정합니다.

  6. 출력 은 둘 다 실행 유형으로 만들고 이름은 하나는 HasEnergy , 나머지는 NoEnergy 라 합니다.

    MacroHT4.png

    입력의 경우, BeginCheck 라는 실행 핀을 사용하여 매크로를 시작합니다. 플레이어의 에너지가 충분한지 검사(해서 그렇다면 HasEnergy 핀에 연결)하는 스크립트를 만들겠습니다. 에너지가 충분치 않다면, NoEnergy 핀에 연결합니다. 그 매크로 구현 후 HasEnergy 핀은 Jump 명령에 물려주는 반면, NoEnergy 핀은 놔둡니다.

  7. 내 블루프린트 창에서 변수 추가 버튼을 클릭합니다.

    AddVariableButton.png

  8. 변수 이름을 Energy 라 하고 Float 유형으로 변경한 다음, 툴바의 컴파일 을 클릭하고 값을 100 으로 설정합니다.

    MacroHT5.png

    플레이어의 에너지 변수가 생겼으며, 100 으로 초기화되었습니다.

  9. 그래프에서 입력 옆에 B 키를 누른 채 좌클릭 하여 Branch (분기) 노드를 만듭니다.

  10. Ctrl 키를 누른 채 내 블루프린트 창의 Energy 를 클릭하여 그래프에 놓은 다음 > 노드에 연결하고 Branch (분기)에 연결합니다.

    MacroHT6.png

    여기서는 분기를 사용하여 Energy 가 0 보다 크면 True 가 실행되고, 아니면 False 가 실행됩니다.

  11. Alt 키를 누르고 Energy 변수를 끌어놓아 Set 노드를 추가합니다.

  12. Ctrl 키를 누르고 Energy 를 다시 끌어 놓은 다음 - 노드에 연결하고, 10 로 설정한 다음 Set 노드에 꽂습니다.

    MacroHT7.png

    이 스크립트는 에너지가 0 보다 크면, 현재 에너지 값에서 10 을 빼라고 하는 것입니다.

  13. 그래프에 우클릭 하고 Print String 노드를 추가한 뒤, Energy In String 핀에 연결합니다.

    MacroHT8.png

    Conversion 변환 노드가 추가되어 Energy 값을 화면에 출력되는 String 으로 변하여 그 값을 표시해 줍니다.

  14. 분기 False 핀에서 Print String 노드를 추가한 다음 칸에 Out of Energy! 라 입력합니다.

  15. Print String 노드를 HasEnergy NoEnergy 핀에 연결합니다.

    MacroHT9.png

    이제 매크로 구성이 완료되었습니다. Energy 변수를 검사해서 (가능하면 빼기를 한 다음) 플레이어의 에너지가 충분한지 아닌지 출력하고, 플레이어가 점프할 수 있는지 없는지 결정합니다. 이제 Jump 실행 전 "Jump" 키가 눌린 이후의 매크로를 구현해 줘야 합니다.

  16. 이벤트 그래프 에서 InputAction Jump 노드의 Pressed 핀을 끌어놓은 다음 EnergyCheck 을 검색합니다.

    MacroHT10.png

    앞서 만든 매크로가 Utilities 아래 나열되어 그 이름 옆에 매크로 아이콘이 있는 것이 보일 것입니다.

  17. 매크로가 추가되면, Jump 스크립트는 아래와 비슷해 보일 것입니다.

    MacroHT11.png

  18. 컴파일 , 저장 후 블루프린트를 닫습니다.

  19. 메인 툴바의 플레이 버튼을 눌러 에디터에서 플레이합니다.

    이제 스페이스바 를 누르면 점프하고, 화면 좌상단 구석에 Energy 값이 출력되는 것이 보일 것입니다. Energy 가 0 이면 더이상 점프할 수 없습니다.

    지금까지 스크립트를 하나의 노드로 통합시켜 실행하는 기본적인 매크로 사용법 예제로, 이벤트 그래프와 메인 캐릭터 스크립트의 가독성을 향상시켜 줍니다. 추가적으로 다른 인스턴스에서도 이 매크로를 호출할 수 있습니다. 이를테면 플레이어의 에너지가 필요한 다른 동작, 공격 동작이 있다고 칩시다. 공격하기 전 에너지가 충분한지 검사가 필요하겠지요. 공격 키를 누르면 플레이어의 에너지가 충분한지 이 매크로를 실행시켜 검사한 다음, HasEnergy 실행 핀에서 공격을 실행시키면 되겠습니다.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기