액터

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

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

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback