Post

UE - World, Actor, Component

World, Actor, Component

UE - World, Actor, Component

언리얼의 GameScene과 Actor, Component

World : World와 Level

World는 게임의 전체적인 세계를 나타낸다.

World는 Level이라는 단위로 나뉘며, 하나의 Level은 다양한 Actor들로 구성된다. 예를 들어, 게임의 한 스테이지가 하나의 Level이 될 수 있다.

World과 Level은 기본적으로 게임의 공간과 레이아웃을 정의 하는 역할을 한다.

Actor : 게임 세상의 기본 단위

액터(Actor)는 World에 배치할 수 있는 기본 단위 객체 다.

게임 내에서 움직이거나 상호작용할 수 있는 모든 객체가 액터를 기반 으로 만들어진다.

액터는 Transform 정보를 가지고 있으며, 이는 World 내에서 물리적, 논리적 역할을 수행한다.

Component : Actor의 기능적 구성 요소

컴포넌트(Component)는 액터의 특정 기능이나 속성을 구현 하는 모듈화된 단위다.

액터에서 정의한 기능에 대한 세부적인 기능을 구현한 것이 컴포넌트이다.

컴포넌트의 특징

재사용성

  • 컴포넌트는 다양한 액터에서 재사용할 수 있어, 중복 코드를 줄이고 개발 효율성을 높인다.

모듈화

  • 개별 컴포넌트는 특정 역할에 집중하여 독립적으로 동작할 수 있다.

유연성

  • 컴포넌트를 추가, 제거, 교체하여 액터의 동작과 특성을 손쉽게 변경할 수 있다.

즉, 액터는 기능과 동작을 정의 하고, 컴포넌트는 액터가 설정한 기능과 동작을 구현하고 구체화 하는 데 사용된다.

컴포넌트 종류

Scene Component

  • transform 데이터를 제공하고, 다른 컴포넌트들의 부모 역할을 한다.

Static Mesh Component

  • 3D 모델 데이터를 렌더링하는 데 사용된다.

Camera Component

  • 카메라의 시점을 정의한다.

Audio Component

  • 소리를 재생할 수 있다.



이해를 위해 예시를 들어본다.

새(Bird) Actor 설계

1. Bird Actor의 기본 동작 정의

먼저, Bird라는 Actor를 만들어보자.

Bird는 새가 할 수 있는 기본적인 동작인 Fly와 Swim을 정의한다.

2. 세부 동작 구현을 위한 컴포넌트

새의 다양한 특성을 나타내기 위해 다음과 같은 컴포넌트를 만듭니다:

CannotFly: 날 수 없는 새를 위한 컴포넌트 CanFly: 날 수 있는 새를 위한 컴포넌트 CannotSwim: 헤엄칠 수 없는 새를 위한 컴포넌트 CanSwim: 헤엄칠 수 있는 새를 위한 컴포넌트

3. 다양한 새 구현

이제 Bird Actor를 상속받아 각 새의 특성에 맞는 컴포넌트를 조합해보자

Chicken

  • 날 수도, 수영할 수도 없음
  • 컴포넌트: CannotFly, CannotSwim

Pigeon

  • 날 수 있지만, 수영할 수 없음
  • 컴포넌트: CanFly, CannotSwim

Duck

  • 날 수도, 수영도 가능
  • 컴포넌트: CanFly, CanSwim

4. 컴포넌트의 유연성

컴포넌트를 교체하는 것만으로 동작을 쉽게 변경할 수 있다는 장점이 있다.

예시 : Chicken이 날 수도 있고 수영할 수도 있게 하려면 CannotFly, CannotSwim 대신 CanFly, CanSwim 컴포넌트를 적용하기만 하면 된다.

This post is licensed under CC BY 4.0 by the author.