액터

기본적인 게임플레이 요소인 액터와 오브젝트에 대한 설명입니다.

Windows
MacOS
Linux

Actor, 액터란 레벨에 배치할 수 있는 오브젝트를 말합니다. 액터는 이동, 회전, 스케일과 같은 3D 트랜스폼을 지원하는 범용 클래스입니다. 액터는 게임플레이 코드(C++ 또는 블루프린트)를 통해 생성(스폰) 및 소멸 가능합니다. C++ 에서 AActor 는 모든 액터의 베이스 클래스입니다.

액터에는 여러가지 유형이 있으며, 몇 가지 예를 들면 다음과 같습니다: StaticMeshActor, CameraActor, PlayerStartActor.

참고로 액터는 트랜스폼 (위치, 회전, 스케일) 데이터를 직접 저장하지 않으며, 액터의 루트 컴포넌트에 트랜스폼 데이터가 존재하는 경우, 그 데이터를 사용합니다.

액터 생성

AActor 클래스 인스턴스를 새로 생성하는 것을 Spawn (스폰)이라 합니다. 그 방법은 범용 함수 SpawnActor() 나, 그 특수 템플릿 버전을 사용하면 됩니다.

게임플레이에 쓸 AActor 클래스 인스턴스를 생성하는 여러가지 방법에 대한 상세 정보는 액터 스폰하기 문서를 참고하세요.

컴포넌트

액터 는 한 편으로 보면, Component (컴포넌트) 라 불리는 특수 유형 Object (오브젝트)를 담는 그릇으로 생각해 볼 수 있습니다. 여러가지 유형의 컴포넌트를 사용하여 액터 의 이동 및 렌더링 방식 등을 제어할 수 있습니다. 액터 의 또다른 주요 기능은, 플레이 도중 네트워크를 통한 프로퍼티 및 함수 호출의 리플리케이션 입니다.

컴포넌트는 생성시 자신을 포함하고 있는 액터에 할당됩니다.

컴포넌트 핵심 유형 몇 가지입니다:

UActorComponent 액터 컴포넌트

베이스 컴포넌트입니다. 액터의 일부로 포함 가능합니다. 원한다면 Tick 시킬 수 있습니다. 액터 컴포넌트는 특정 액터에 연관지어지나, 월드의 특정 지점에 존재하지는 않습니다. 일반적으로 개념적 기능, 이를테면 AI 나 플레이어 입력 해석과 같은 것에 사용됩니다.

USceneComponent 씬 컴포넌트

씬 컴포넌트는 트랜스폼이 있는 액터 컴포넌트입니다. 트랜스폼은 위치, 회전, 스케일로 정의되는 월드상의 포지션을 나타냅니다. 씬 컴포넌트는 계층구조 형태로 서로에게 붙일 수 있습니다. 액터의 위치, 회전, 스케일은 계층구조의 루트에 위치한 씬 컴포넌트에서 취할 수 있습니다.

UPrimitiveComponent 프리미티브 컴포넌트

일정한 형태의 (메시 또는 파티클 시스템과 같은) 그래픽적 표현이 있는 씬 컴포넌트를 말합니다. 여기에는 재미난 피직스 및 콜리전 세팅이 들어있습니다.

액터는 씬 컴포넌트 계층구조를 갖는 것을 지원합니다. 각 액터 에는 어느 컴포넌트가 액터 의 루트 역할을 할 것인지 나타내는 RootComponent 프로퍼티도 있습니다. 액터 자체는 트랜스폼 정보가 없기에 위치, 회전, 스케일이 없습니다. 대신, 그 컴포넌트, 좀 더 구체적으로 루트 컴포넌트의 트랜스폼에 의존합니다. 이 컴포넌트가 씬 컴포넌트 인 경우, 액터 에 대한 트랜스폼 정보를 제공해 줍니다. 아닌 경우, 액터 에는 트랜스폼 정보가 없습니다. 부착된 다른 컴포넌트에는, 부착된 그 컴포넌트를 기준으로 한 트랜스폼 정보가 있습니다.

액터와 계층구조 예제는 이렇습니다:

GoldPickup 액터

계층구조

GoldPickupExampleActor.png

  • Root - SceneComponent: 액터의 월드 내 기반 위치 설정을 위한 기본 씬 컴포넌트입니다.

    • StaticMeshComponent: 금괴를 나타내는 메시입니다.

      • ParticleSystemComponent: 금괴에 부착된 스파클링 파티클 이미터입니다.

      • AudioComponent: 금괴에 부착된 금속성 울림 소리 반복 이미터입니다.

      • BoxComponent: 금괴 획득용 오버랩 이벤트의 트리거로 사용할 콜리전 박스입니다.

Tick (틱)이란 언리얼 엔진에서의 액터 업데이트 방법을 일컫습니다. 모든 액터는 매 프레임, 또는 최소, 또는 사용자 정의 간격마다 틱을 하여 필요한 동작이나 계산을 업데이트할 수 있습니다.

액터 는 모두 기본적으로 Tick() 함수를 통해 틱 가능합니다.

ActorComponent 역시, TickComponent() 함수를 사용해야 한다는 점이 다르지만, 기본적으로 업데이트 가능합니다. 자세한 정보는 Components 문서를 참고하세요.

수명

게임에서의 액터 생성/소멸 관련 상세 정보는 액터의 수명 주기 문서를 참고하세요.

리플리케이션

Replication (리플리케이션)은 네트워크 멀티플레이어 게임 처리시 월드의 동기화 상태를 유지하는 데 사용됩니다. 모든 클라이언트에서의 게임 상태에 대한 완벽 제어를 가능하게 하기 위해, 프로퍼티 값과 함수 호출 둘 다 리플리케이트시킬 수 있습니다.

액터 소멸

액터는 일반적으로 가비지 콜렉팅되지 않는데, 월드 오브젝트가 액터 레퍼런스 목록을 저장하기 때문입니다. 액터는 Destroy() 를 호출하여 명시적으로 소멸시킬 수 있습니다. 그러면 레벨에서 제거되어 pending kill (킬 대기) 상태로 마킹, 잠시 후 다음 가비지 컬렉션 때 지워진다는 뜻입니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼