icon안동민 개발노트

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


 언리얼 엔진에서 액터(Actor)는 게임 월드에 배치될 수 있는 모든 객체의 기본 클래스입니다.

 액터 블루프린트는 이러한 액터를 시각적 스크립팅으로 구현한 것으로, 게임 내 객체의 동작과 속성을 정의하는 데 사용됩니다.

액터의 개념과 역할

  • 정의 : 액터는 위치, 회전, 스케일과 같은 변형(Transform) 정보를 가진 게임 내 객체입니다.
  • 역할 : 게임 월드에 배치되어 플레이어와 상호작용하거나 게임플레이에 영향을 미치는 모든 요소를 표현합니다.
  • 예시 : 캐릭터, 아이템, 무기, 환경 오브젝트 등

액터 vs 일반 블루프린트

특성액터 블루프린트일반 블루프린트
게임 월드 배치가능불가능
변형(Transform)기본 제공수동 구현 필요
생명 주기 이벤트BeginPlay, Tick, EndPlay 등직접 구현 필요
주요 용도게임 내 객체 표현재사용 가능한 로직 구현

액터 블루프린트 생성 방법

  1. 콘텐츠 브라우저에서 우클릭
  2. '블루프린트 클래스' 선택
  3. 'Actor' 또는 그 하위 클래스 선택
  4. 블루프린트 이름 지정 (예 : BP_InteractiveObject)
액터 블루프린트 생성 과정

액터 블루프린트의 기본 구성 요소

  1. 이벤트 그래프 (Event Graph)
  • 액터의 동작을 정의하는 비주얼 스크립트
  • 주요 이벤트와 로직을 구현하는 공간
  1. 컴포넌트 (Components)
  • 액터에 추가되는 기능 모듈
  • 예 : StaticMeshComponent, ParticleSystemComponent
  1. 변수 (Variables)
  • 액터의 상태를 저장하는 속성들
  1. 함수 (Functions)
  • 재사용 가능한 로직 블록
액터 블루프린트 구성 요소

액터의 생명 주기와 주요 이벤트

  1. Construction Script
  • 액터가 생성될 때 한 번 실행
  • 초기 속성 설정에 사용
  1. BeginPlay
  • 게임 플레이 시작 시 또는 액터가 스폰될 때 실행
  • 초기화 로직 구현에 적합
  1. Tick
  • 매 프레임마다 실행
  • 지속적인 업데이트가 필요한 로직에 사용
  1. EndPlay
  • 액터가 파괴될 때 실행
  • 정리 작업 수행에 사용
액터 생명 주기 다이어그램

간단한 액터 블루프린트 예제 : 회전하는 코인

 이 예제에서는 지속적으로 회전하며, 플레이어가 접근하면 획득되는 코인 액터를 만들어보겠습니다.

  1. 컴포넌트 설정
  • StaticMeshComponent 추가 (코인 메시 할당)
  • SphereComponent 추가 (충돌 감지용)
  1. 변수 설정
  • RotationSpeed (Float) : 회전 속도
  • PointValue (Integer) : 획득 시 얻는 점수
  1. 이벤트 그래프 구현
[Event Tick] --> [RotateComponent]
                    ^
   [RotationSpeed] --|
 
[SphereComponent.OnComponentBeginOverlap] --> [IsValid(OtherActor)] --> [Cast To PlayerCharacter]
                                                                              |
                                            [AddPoints] <-- [GetPlayerController] <-- [Success]
                                                 |
                                         [PointValue] <--|
                                                 |
                                          [DestroyActor]
회전하는 코인 액터 블루프린트

액터 블루프린트 사용 시 주의사항

  1. 성능 고려
  • Tick 이벤트 사용 최소화 (필요 없는 경우 비활성화)
  • 복잡한 로직은 함수로 분리하여 관리
  1. 모듈화 및 재사용성
  • 공통 기능은 부모 클래스 또는 인터페이스로 분리
  • 컴포넌트를 활용하여 기능 모듈화
  1. 레벨과의 상호작용
  • 레벨에 배치된 액터의 인스턴스 속성 활용
  • 레벨 블루프린트와의 통신 고려
  1. 네트워크 동기화
  • 멀티플레이어 게임의 경우, 복제(Replication) 설정 주의

 액터 블루프린트는 언리얼 엔진에서 게임 객체를 만들고 동작을 정의하는 강력한 도구입니다. 액터의 생명 주기를 이해하고 적절한 이벤트에 로직을 구현함으로써, 다양하고 상호작용적인 게임 요소를 쉽게 만들 수 있습니다. 액터 블루프린트를 효과적으로 사용하기 위해서는 지속적인 연습과 실험이 필요하며, 언리얼 엔진의 다른 시스템들과 어떻게 상호작용하는지 이해하는 것이 중요합니다.