UE4

Ureal) 언리얼 게임엔진의 이해

PJNull 2021. 11. 3.
728x90
반응형

 

게임 엔진을 사용하는 이유

 

게임 엔진의 장점은 Low-Level을 감싸고 있는 이미 완성된 기반 코드를 제공한다. 개발자는 DirectX등의 기타 게임 개발에 필요한 엔진 및 랜더링을 직접 개발할 필요 없이 게임 엔진에서 이미 구현되어 제공되는 기능들을 재사용하기만 하면 되기에 시간 단축과 효울성이 높아진다.

단, 게임엔진을 사용하여 개발할 경우 나오는 수익의 일부는 엔진개발사에게 돌아가는 단점이 존재한다.

 

 

 

언리얼 엔진의 특징

 

언리얼 구조

유니티엔진은 컴포넌트 위주로 Empty에서 시작해서 하나하나 쌓아가는 형식의 엔진이라고 한다면 언리얼 엔진은 언리얼 엔진 자체의 타이트한 구조를 바탕으로 게임을 제작하기 때문에 전자와 비교하면 다소 자유도및 범용성이 낮다고 생각되는 단점이 있지만, 엔진에 익숙해진다면 이러한 구조가 제작효율을 높히는 장점이 될수도 있다. 

 

언리얼 상속

언리얼의 객체들은 기본적으로 상속의 관계를 가지고 있으며, 대표적으로 액터(Actor),폰(Pawn),캐릭터(Charater)이 있다.

 

  • 액터: 액터란 레벨에 배치할 수 있는 오브젝트를 말하며, 컴포넌트(Component)를 담을수 있는 그릇으로 생각되어진다. 여러가지 유형의 컴포넌트를 사용하여 액터의 이동 및 렌더링 방식 등을 제어할 수 있다.
  • : 폰은 액터를 상속받으며, 플레이어나 AI 가 제어할 수 있는 모든 액터의 베이스 클래스를 의미한다. 플레이어나 AI 개체의 시각적인 모습 뿐만 아니라, 콜리전이나 기타 물리적 반응과 같은 측면에서 월드와의 상호작용 방식도 폰 이 규정한다는 뜻이다.
  • 캐릭터: 캐릭터는 폰을 상속받으며,CharacterMovementComponent,CapsuleComponent,SkeletalMeshComponent와 같은 컴포넌트 추가를 통해 폰 클래스를 캐릭터클래스로 확장한것이며 폰클래스 보다 고급 애니메이션을 구사할수 있다. 이러한 컴포넌트는 월드에서 걷기, 달리기, 점프, 비행, 수영 등이 가능한 직립 플레이어를 표현하기 위해 디자인된 것이다.

※주의) 언리얼의 오브젝트들은 삭제/수정이 까다롭기때문에 가급적 신경을 써서 만들어야됨.

ex)오브젝트의 삭제를 원할시 저장되어 있는 경로로 직접가서 삭제하는 방식으로 강제삭제를 해야됨.

 

언리얼 리플랙션

 

C++에서 리플랙션은 C++11부터 사용이 가능해 졌고, 언리얼 엔진은 그보다 전에 나왔기 때문에 언리얼에서 자체적으로 만든 리플랙션을 사용하게 되었다.이러한 리플렉션은 프로그램이 실행시간에 자기 자신을 조사하는 기능이다.(컴파일러의 주석과도 비슷하다.)

리플리케이션 시스템은 옵션이다. 리플렉션 시스템에 보이도록 했으면 하는 유형이나 프로퍼티에 주석을 달아주면, UHT(Unreal Header Tool)가 프로젝트를 컴파일 할 때 해당 정보를 수집한다.

대표적으로 다음과 같은 계층 구조를 가지게 된다.

 

  • UFiled
    • UEnum (C++ enumeration)
    • UProperty (C++ 매개 변수 , 함수 매개 변수)
    • UStruct
      • UClass (C++ class)
      • UScriptStruct (C++ struct)
      • UFunction (C++ function)
728x90
반응형

'UE4' 카테고리의 다른 글

Ureal) 로그와 디버깅  (0) 2021.12.01

댓글