icon
3장 : 클래스와 객체 지향 설계

액터 블루프린트의 기본 개념


이제 블루프린트의 기본적인 요소들을 익히셨으니, 언리얼 엔진에서 게임 월드를 구성하는 핵심적인 단위인 액터(Actor) 와 그 액터를 정의하는 액터 블루프린트(Actor Blueprint) 에 대해 알아볼 차례입니다. 언리얼 엔진의 모든 게임 오브젝트는 계층적인 구조를 가지고 있으며, 이 구조를 이해하는 것은 효율적인 게임 개발에 필수적입니다.


액터란 무엇인가?

언리얼 엔진에서 액터(Actor) 는 게임 월드에 배치될 수 있는 모든 오브젝트의 기본 클래스입니다. 즉, 게임 화면에 보이고, 움직이고, 상호작용할 수 있는 모든 것들은 액터라고 생각할 수 있습니다. 예를 들어, 플레이어 캐릭터, 적 몬스터, 문, 램프, 바닥, 심지어 게임 월드 자체도 모두 액터입니다.

액터는 3차원 공간상의 위치(Location), 회전(Rotation), 크기(Scale) 정보를 가지며, 게임 플레이 중에 생성되거나 파괴될 수 있습니다. 액터는 단순히 보이는 것 이상의 기능을 수행할 수 있도록 다양한 컴포넌트들을 담는 '컨테이너' 역할을 합니다.


액터 블루프린트의 역할

그렇다면 액터 블루프린트는 무엇일까요? 이는 우리가 월드에 배치할 액터의 '설계도' 또는 '청사진' 입니다. 액터 블루프린트는 특정 액터가 어떤 시각적 요소(3D 모델, 파티클 등), 어떤 기능(움직임, 상호작용 등), 그리고 어떤 로직(AI, 이벤트 반응 등)을 가질지 정의합니다.

우리가 1장에서 만들었던 BP_WelcomeMessage 또한 액터 블루프린트의 한 종류였습니다. 이 액터 블루프린트는 Print String이라는 로직을 포함하고 있었고, 우리가 이 액터를 월드에 배치하자 게임 시작 시 메시지가 출력되는 것을 확인할 수 있었죠.


액터 블루프린트가 중요한 이유

액터 블루프린트는 언리얼 엔진에서 다음의 이유로 매우 중요한 역할을 합니다.

재사용성: 한 번 만든 액터 블루프린트는 여러 번 복사하여 게임 월드에 배치할 수 있습니다. 예를 들어, 문 액터 블루프린트를 하나 만들어두면, 게임 내의 모든 문에 동일한 기능(열고 닫기)을 적용할 수 있습니다.

모듈성: 액터는 여러 개의 컴포넌트(Component) 로 구성됩니다. 컴포넌트는 액터에 특정 기능이나 속성을 추가하는 독립적인 블록입니다. 예를 들어, Static Mesh Component는 3D 모델을 보여주고, Movement Component는 움직임을 담당합니다. 이러한 모듈 방식 덕분에 필요한 기능만 액터에 추가하여 복잡도를 낮출 수 있습니다.

시각적 개발: 코딩 없이 노드 기반의 비주얼 스크립팅으로 액터의 모든 로직과 기능을 구현할 수 있습니다. 이는 프로그래밍 지식이 없는 개발자나 디자이너도 게임 개발에 적극적으로 참여할 수 있게 합니다.

객체 지향 개념: 액터 블루프린트는 언리얼 엔진의 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 개념을 시각적으로 구현한 것입니다. 각각의 액터 블루프린트는 독립적인 '클래스' 역할을 하며, 월드에 배치되는 액터들은 그 클래스의 '인스턴스(Instance)'가 됩니다. 이는 게임 로직을 체계적으로 관리하고 확장하는 데 큰 이점을 제공합니다.


액터 블루프린트의 구성 요소 (복습 및 심화)

1장에서 잠시 언급했던 액터 블루프린트 에디터의 패널들을 액터의 관점에서 다시 살펴보겠습니다.

  • 컴포넌트 패널 (Components Panel): 이 액터 블루프린트가 어떤 컴포넌트들을 가지고 있는지 계층 구조로 보여줍니다. 이곳에서 필요한 컴포넌트를 추가, 제거, 재배치하여 액터의 기능을 구성합니다.
  • 뷰포트 패널 (Viewport Panel): 액터 블루프린트가 게임 월드에서 어떤 모습으로 보일지 시각적으로 보여줍니다. 컴포넌트들의 위치, 회전, 크기를 이곳에서 직접 조절하며 배치할 수 있습니다.
  • 이벤트 그래프 (Event Graph): 이 액터가 어떤 이벤트에 반응하고, 어떤 로직을 수행할지를 정의하는 곳입니다. 플레이어와의 상호작용, 다른 액터와의 충돌, 시간 경과 등 다양한 이벤트에 대한 반응을 이곳에서 노드 기반으로 구현합니다.
  • 디테일 패널 (Details Panel): 선택된 액터, 컴포넌트, 또는 노드의 상세 속성을 표시하고 편집합니다. 액터의 기본 속성이나 컴포넌트의 특정 파라미터를 여기서 조정합니다.
  • 변수/함수/매크로 패널: 이 액터 블루프린트 내에서 사용될 변수, 함수, 매크로를 정의하고 관리합니다.

액터 블루프린트는 언리얼 엔진 게임의 모든 기능과 콘텐츠를 담아내는 핵심적인 그릇입니다. 이 개념을 명확히 이해하는 것은 복잡한 게임을 효율적으로 개발하기 위한 첫걸음입니다. 다음 절에서는 이 액터에 기능을 부여하는 핵심 요소인 컴포넌트에 대해 더 자세히 알아보겠습니다.