본문으로 건너뛰기

안동민 개발노트

본문 시작

비주얼 스크립팅 기본 개념

노드와 핀, 실행선과 데이터선을 구분하고 그래프의 실행 순서와 값 전달 과정을 올바르게 읽는 법을 익힙니다.

앞선 절에서는 블루프린트가 언리얼 엔진의 비주얼 스크립팅 시스템이라는 점을 다뤘습니다.

이번 절에서는 비주얼 스크립팅의 의미와 블루프린트가 이를 구현하는 방식을 정리합니다.

비주얼 스크립팅은 시각적인 요소로 프로그램을 작성하는 방식입니다.

텍스트 기반 프로그래밍이 코드를 타이핑해 논리를 만드는 방식이라면, 비주얼 스크립팅은 그림을 그리듯 흐름을 설계합니다.

코드를 직접 쓰는 대신 기능이 담긴 노드(Node)를 배치하고, 노드 사이를 선(Wire)으로 연결해 데이터 흐름과 실행 순서를 표현합니다.

즉, 코드 문법보다 로직 구조를 먼저 이해하기 좋은 방식이라고 볼 수 있습니다.

블루프린트가 비주얼 스크립팅 시스템의 핵심적인 특징들을 어떻게 구현하고 있는지 구체적으로 살펴보겠습니다.


노드 (Node)

블루프린트에서 모든 기능의 최소 단위는 바로 노드입니다.

각각의 노드는 특정한 작업을 수행합니다.

예를 들어, 수학적 연산(덧셈, 곱셈), 변수 값 설정, 특정 함수 호출, 조건 확인 등 다양한 역할을 담당합니다.

노드는 종류에 따라 다음 요소를 가집니다. 이벤트에는 실행 입력이 없고, 변수 Getter나 Pure 함수에는 실행 핀이 없습니다.

  • 실행 핀 (Execution Pin): 일반적으로 입력은 왼쪽, 출력은 오른쪽에 위치하며, 다른 노드로부터 실행 흐름을 받거나 다른 노드로 실행 흐름을 전달하는 역할을 합니다. 마치 전기 스위치처럼 지금 이 노드를 실행하라는 명령을 전달하는 통로라고 생각할 수 있습니다.
  • 데이터 핀 (Data Pin): 노드의 측면에 위치하며, 데이터를 입력받거나 결과를 출력하는 역할을 합니다. 노드가 특정 작업을 수행하기 위해 필요한 정보(입력)를 받거나, 작업의 결과(출력)를 다른 노드로 넘겨줄 때 사용됩니다. 데이터 핀은 데이터의 종류(예: 숫자, 문자열, 불리언 등)에 따라 색깔이 다르게 표시되어 시각적으로 쉽게 구분할 수 있습니다.
  • 노드 이름 (Node Name): 노드가 어떤 기능을 수행하는지 알려주는 이름입니다.

선 (Wire)

은 노드들을 서로 연결하여 데이터의 흐름이나 실행 순서를 정의하는 역할을 합니다.

선은 크게 두 가지 종류로 나눌 수 있습니다.

  • 실행 선 (Execution Wire): 실행 핀과 실행 핀을 연결하며, 노드들이 어떤 순서로 실행될지 결정합니다. 예를 들어, A 노드가 실행된 후 B 노드를 실행하라는 순서를 지정할 때 사용합니다.
  • 데이터 선 (Data Wire): 데이터 핀과 데이터 핀을 연결하며, 한 노드에서 다른 노드로 데이터를 전달합니다. A 노드의 계산 결과를 B 노드의 입력으로 사용하라와 같은 데이터의 흐름을 나타냅니다.

Pure 노드는 연결된 값이 필요할 때 평가됩니다. 데이터선을 연결해도 실행 입력이 필요한 노드의 실행선이 생략되지는 않습니다.

실행 입력과 값 입력은 서로 다른 역할입니다

실행 입력과 값 입력은 서로 다른 역할입니다

Print String으로 들어가는 두 연결BeginPlay의 실행 연결은 Print String을 실행한다. Get PlayerScore의 점선은 출력할 값을 공급한다. Getter에는 실행 핀이 없다.실행 순서값 입력Event BeginPlayPrint String실행할 때 값을 사용Get PlayerScore실행 핀 없음
Print String으로 들어가는 두 연결BeginPlay의 실행 연결은 Print String을 실행한다. Get PlayerScore의 점선은 출력할 값을 공급한다. Getter에는 실행 핀이 없다.실행 순서값 입력Event BeginPlayPrint String실행할 때 값을 사용Get PlayerScore실행 핀 없음

실선은 실행 순서, 점선은 값 의존성입니다. 정수에서 문자열로 바꾸는 변환 노드는 생략했습니다.

이처럼 노드와 선을 조합하여 복잡한 로직도 직관적으로 구성할 수 있습니다.

텍스트 코드와 달리, 프로그램의 전체적인 흐름을 한눈에 파악하기 쉽다는 것이 비주얼 스크립팅의 큰 장점입니다.

문제가 발생했을 때도 어느 노드에서 어떤 데이터가 잘못 전달되었는지 시각적으로 추적하기 용이합니다.

블루프린트는 이러한 비주얼 스크립팅의 기본 개념을 충실히 따르면서도, 언리얼 엔진의 강력한 기능들과 완벽하게 통합되어 있습니다.

다음 절에서는 블루프린트를 효율적으로 활용할 수 있는 개발 환경, 즉 블루프린트 에디터에 대해 자세히 알아보겠습니다.

학습 체크포인트

이번 절을 마치기 전에 아래 항목을 스스로 설명할 수 있는지 점검해 보세요.

  • 노드와 선이 각각 실행 흐름데이터 흐름에서 어떤 역할을 하는가
  • 실행 선과 데이터 선을 혼동했을 때 어떤 버그가 발생하는가
  • 텍스트 스크립팅 대비 비주얼 스크립팅의 장단점은 무엇인가
  • 블루프린트 그래프를 읽을 때 시작 노드부터 추적해야 하는 이유는 무엇인가

그래프에 역할 중심의 이름과 Comment를 남기고, 오류가 나면 실제 디버그 인스턴스에서 마지막으로 도달한 실행 노드와 그 입력값을 나누어 확인합니다.