본문 바로가기
Unreal Engine

Unreal Engine 게이트 (Gate) 및 멀티 게이트 (Multi-Gate) 노드 설명

by hfgraphic 2025. 10. 28.
반응형

 

게이트 (Gate) 및 멀티 게이트 (Multi-Gate) 노드 설명

 

이제 마지막 흐름 제어(Flow Control) 노드에 대해 이야기해 봅시다. 블루프린트를 클릭하고 레벨 블루프린트를 열어 보겠습니다.

오늘 다룰 내용은 바로 게이트 (Gate) 노드와 멀티 게이트 (Multi-Gate) 노드입니다.


 

게이트 (Gate) 노드

  1. Begin Play (게임 시작) 노드를 만듭니다.
  1. 실행 핀(Execution pin)에서 드래그하여 Gate를 검색하고 노드를 만듭니다. (게이트와 멀티 게이트 노드를 볼 수 있습니다.) Gate 노드부터 시작하겠습니다.
  1. 게이트 노드는 성의 문(Gate)이라고 상상할 수 있습니다.
    • 문을 닫을(Close) 수도 있고 열 (Open) 수도 있습니다.
    • 문이 열려 있을 때만 다음의 Exit (종료) 실행 핀에 연결된 코드가 실행됩니다.
    • 문이 닫혀 있으면 이 코드는 실행되지 않습니다. 이것이 이 노드의 주요 원리입니다.
  2. 테스트를 위해 E 키 이벤트를 사용해 보겠습니다.
    • Begin Play에서 연결을 끊고, E 키보드 이벤트를 만듭니다.
    • E 키를 누를 때 게이트를 통해 코드가 실행되도록 연결합니다.
    • Exit 실행 핀에 Print String 노드를 연결하고 임시로 "Hello"라고 출력해 봅시다.
  3. 테스트 및 Start Closed (닫힌 상태로 시작) 설명
    • Play를 누르고 E 키를 눌러도 아무 일도 일어나지 않습니다.
    • 이유는 게이트(Gate)가 닫힌 상태로 시작 (Start Closed) 하기 때문입니다. (노드에서 Start Closed 옵션을 확인할 수 있습니다.)
    • 게이트가 닫혀 있으면 Exit 쪽 코드를 실행할 수 없습니다.
    • Start Closed 비활성화합니다. (게이트가 열린 상태로 시작)
    • 컴파일하고 Play를 누른 후 E 키를 누르면 "Hello"가 출력됩니다. 이제 게이트가 열린 것입니다.
  4. 게이트 열고 닫기
    • 게이트를 사용하는 예시는 게임이 일시 정지(Paused) 되었을 때처럼, 특정 코드가 더 이상 실행되지 않기를 원할 때 사용할 수 있습니다. 게이트를 닫고, 원하는 시점에 다시 열 수 있습니다.
    • Open (열기) 핀과 Close (닫기) 핀을 사용하여 게이트를 제어할 수 있습니다.
    • **커스텀 이벤트(Custom Event)**를 두 개 만듭니다.
    • 하나는 Open Gate라고 이름 짓고 Open 핀에 연결합니다.
    • 다른 하나는 Close Gate라고 이름 짓고 Close 핀에 연결합니다.
    • R 키 이벤트를 만들고 Open Gate 이벤트 호출(Call) 합니다. (R 키를 누르면 게이트가 열립니다.)
    • T 키 이벤트를 만들고 Close Gate 이벤트 호출합니다. (T 키를 누르면 게이트가 닫힙니다.)
    • (참고: R 키를 Open 핀에 바로 연결할 수도 있지만, 게임 개발에서는 보통 이처럼 커스텀 이벤트를 통해 제어하는 경우가 많습니다.)
  1. 게이트 노드 테스트
    • 컴파일하고 Play를 누릅니다. Start Closed를 비활성화했으므로 게이트는 처음에 열려 있습니다.
    • E 키를 누르면 "Hello"가 출력됩니다. (게이트 열림)
    • T 키를 누릅니다. (게이트 닫힘)
    • E 키를 다시 누르면 아무 일도 일어나지 않습니다. (게이트 닫힘)
    • R 키를 누릅니다. (게이트 열림)
    • E 키를 다시 누르면 "Hello"가 출력됩니다. (게이트 열림)
  1. Toggle (전환) 기능
    • 게이트 노드에는 Toggle 핀도 있습니다.
    • R 키 Toggle 핀에 연결하고, 커스텀 이벤트를 삭제합니다. (Start Closed는 비활성화된 상태)
    • Play를 누릅니다. E 키를 누르면 실행됩니다. (시작 시 열림)
    • R 키를 누릅니다. E 키를 누르면 실행되지 않습니다. (닫힘으로 전환)
    • R 키를 다시 누릅니다. E 키를 누르면 다시 실행됩니다. (열림으로 전환)
    • Toggle은 게이트의 상태를 닫힘에서 열림으로, 또는 열림에서 닫힘으로 전환합니다.

 

멀티 게이트 (Multi-Gate) 노드

 

이제 Multi-Gate 노드를 살펴보겠습니다.

  1. Multi-Gate 노드를 검색하여 만듭니다.
    • 이 노드는 게이트 노드와 원리는 같지만, 여러 개의 출력(Output) 실행 핀을 가집니다.
  2. E 키 이벤트 Multi-Gate Enter 핀에 연결합니다.
  3. Print String 노드를 4개 만듭니다.
    • "Hello 1"
    • "Hello 2"
    • "Hello 3"
    • "Hello 4" (노드에 4개의 출력 핀이 필요합니다. 핀이 부족하면 노드 내부에서 추가할 수 있습니다.)
  4. 이 4개의 Print String 노드를 각각의 출력 실행 핀 (Out 0, Out 1, Out 2, Out 3)에 순서대로 연결합니다.
  1. 순차 실행 (Sequential Execution)
    • 컴파일하고 Play를 누릅니다.
    • E 키를 누르면 "Hello 1"이 출력됩니다.
    • E 키를 다시 누르면 "Hello 2"가 출력됩니다.
    • E 키를 다시 누르면 "Hello 3"이 출력됩니다.
    • E 키를 다시 누르면 "Hello 4"가 출력됩니다.
    • Multi-Gate 노드는 활성화될 때마다 **Start Index (시작 인덱스)**에서부터 시작하여 다음 순서의 핀에 연결된 코드를 실행합니다.
    • Start Index 어떤 핀(출력)부터 시작할지 선택합니다. 기본값은 -1(또는 0부터 시작)이므로 항상 첫 번째(0) 핀부터 시작합니다.
    • 만약 Start Index 2를 입력하고 Play를 누른 후 E 키를 누르면 "Hello 3"부터 출력됩니다. (인덱스는 0부터 시작하므로 인덱스 2는 세 번째 핀입니다.)
  2. 실행 중지 (Stop after last)
    • E 키를 눌러 Hello 4까지 모두 출력한 후, E 키를 다시 누르면 아무 일도 일어나지 않습니다.
    • Multi-Gate 노드는 마지막 실행 핀까지 코드를 모두 실행하면 멈춥니다.
  3. Loop (반복) 기능
    • 코드를 처음부터 다시 실행하고 싶다면 Loop 옵션을 활성화해야 합니다.
    • Loop를 활성화하고 Play를 누릅니다.
    • E 키를 눌러 Hello 1, 2, 3, 4를 모두 출력합니다.
    • E 키를 다시 누르면 코드가 처음부터 다시 반복(Loop) 되어 "Hello 1"이 다시 출력됩니다.
  4. Is Random (무작위 실행) 기능
    • Loop를 끄고 Is Random 옵션을 활성화합니다.
    • Is Random은 여러 실행 핀 중에서 **무작위(Random)**로 하나의 핀을 선택하여 코드를 실행합니다.
    • Play를 누르고 E 키를 누릅니다. (예: "Hello 4" 출력)
    • E 키를 다시 누릅니다. (예: "Hello 2" 출력)
    • 실행할 때마다 임의의 출력 핀이 선택됩니다.
    • Loop가 활성화되지 않으면, 모든 핀이 한 번씩 선택된 후에는 더 이상 실행되지 않습니다.
  1. Reset (리셋) 기능
    • Loop가 꺼져 있을 때, 코드가 끝난 후 처음부터 다시 실행하려면 Reset 핀을 사용해야 합니다.
    • R 키 이벤트를 만듭니다.
    • 커스텀 이벤트를 만들고 이름은 Reset Gate라고 합시다.
    • Reset Gate 이벤트 Multi-Gate Reset 핀에 연결합니다.
    • R 키 이벤트에서 Reset Gate 이벤트를 호출합니다.
    • Play를 누르고 E 키를 눌러 코드를 끝까지 실행합니다. (더 이상 실행되지 않음)
    • R 키를 누릅니다. (게이트 리셋)
    • E 키를 다시 누르면 코드가 처음부터 다시 실행됩니다.

 

요약:

  • Gate 노드 Open Close 핀을 통해 하나의 코드가 실행될지 여부를 제어합니다.
  • Multi-Gate 노드 여러 개의 코드 순서대로(Sequential), 무작위로(Random), 또는 반복(Loop) 여부를 설정하여 실행할 수 있도록 제어합니다.

 

반응형