개발자 면접 공부/언리얼 엔진

#2 언리얼 엔진 용어 소개

chogyujin 2020. 7. 27. 23:46
728x90

1.목차

-언리얼 엔진

 -언리얼 엔진 용어 소개
 -언리얼 엔진 용어 별 설명
 -언리얼 엔진 용어 요약 표


2. 언리얼 용어 소개

언리얼 엔진에는 많은 기능을 가지고있습니다. 그 많은 기능중에 오늘 포스팅은 언리얼 엔진4 공식 문서에 있는 공식 용어에 대해서 포스팅할려고 합니다. 많은 용어가 있지만 단축해서 설명하고 요약하는것으로 마무리 하겠습니다.


3. 언리얼 엔진 용어 별 설명

1. 프로젝트: 각각의 게임을 이루는 콘텐츠와 코드 전부가 들어있는 독립적인 유닛

언리얼 엔진에서 기초적인 용어입니다. 프로젝트란 말 자체로 하나의 게임을 만들려면 그 게임의 전체의 파일들이 다
여기에 담겨져있습니다.
ex) 리그 오브 레전드 프로젝트= 리그 오브 레전드에 안에 있는 모든 파일들이 프로젝트에 있음

 

2. 오브젝트: 언리얼 엔진의 기본 구성 요소 언리얼 엔진4의 모든 것이 오브젝트를 상속(캐릭터, 무기, 등)

 

오브젝트는 언리얼 엔진 구성에서 제일 기초적인 구성입니다. 모든 구성들이 UObject 라는 클래스 부터 상속을 받아
사용합니다.
ex) 캐릭터는 오브젝트가 제일 최상위 클래스 이자 조상격 클래스이다.

 

3. 클래스: 엑터 또는 오브젝트의 작동방식 및 프로퍼티를 정의 c++코드 또는 블루프린트에서 생성

 

클래스는 우리가 알고있는 클래스가 맞습니다. 계층구조로 되있고 부모 클래스를 상속받거나 정보를 자식에게 전달
할수 있습니다.

클래스는 최상위 클래스 오브젝트가 있으며 자식으로 액터,폰, 캐릭터 등 여러 자식 클래스가 있습니다.
프로퍼티는 맴버 변수라고 생각하는것이 무방합니다.
ex) 상속받는 자식이 정보를 더 모아 다시 상속을 하고 그 상속을 받은 자손이 다시 상속을 하는 시스템
보통 객체지향 클래스에 최고 장점중 하나

 

4. 액터: 레벨에 배치할수 있는 모든 오브젝트 액터는 이동, 회전, 스케일을 지원

 

액터는 흔히 레벨에 지정할수 있는 모든 오브젝트를 말합니다. 액터를 통해 레벨에서 지형을 꾸미거나 캐릭터를
생성하거나 어느 이벤트가 발생하면 액터를 생성할수있습니다.

레벨은 11번 용어에서 설명하겠습니다.
ex) 캐릭터, 잔디밭, 의자 등

 

5. 컴포넌트: 액터에 추가시키는 함수성 조각(함수의 기능), 보통 이벤트 처리(스포트라이트의 빛, 로테이팅 무브먼트가
액터를 회전시킴, 오디오등등)

 

컴포넌트는  독립적인 단위 모듈이라고 사전상 설명합니다.
언리얼 엔진에서는 오브젝트->액터를 통해 추가적인 이벤트를 설정할수 있습니다.

ex) 오브젝트 ->탈것 액터->자동차,배,비행기 컴포넌트-> 자동차의 핸들, 배의 조타, 비행기의 스틱 등

 

6. 폰: 액터의 서브 클래스 게임내 아바타 또는 NPC 역활을 가능 AI를 통해 NPC 제어

 

폰은 액터의 자식 클래스로서 게임내에 메인 캐릭터나 NPC를 만들수 있습니다. NPC는 AI를 통해 상호작용을
할 것이고 메인 캐릭터는 다음에 나오는 용어에서 폰의 서브클래스로 사용됩니다.
ex) NPC 및 메인 캐릭터 정의

 

7. 캐릭터: 폰 엑터의 서브 클래스 플레이어의 이동에 대한 부가 코드가 있음

 

위에 폰에서 언급한 캐릭터입니다. 흔히 우리가 플레이하는 용어를 캐릭터라고 하며 플레이의 이동에 대한 다양한
코드가 부여됩니다.

 

여기서 이제 생각을 해야합니다 액터하고 폰하고 캐릭터 이 세개의 관계는 무엇인지?
액터는 레벨에 배치할 수 있는 오브젝라고 설명했습니다. 그럼 폰과 캐릭터는 액터의 자식 클래스인데 뭐가 다른지
설명해드리겠습니다.
액터->폰->캐릭터 순으로 상속을 합니다. 쉽게 설명해서 액터는 모든 사물체를 얘기하고 폰은 사물체중에 캐릭터 NPC위주로 얘기합니다. 폰은 그 중에서 플레이어나 AI가 제어할수 있게 만들어줍니다.(주인공이 상자를 옳길때 상자 또한
폰이다) 캐릭터는 폰의서 더 많은 기능을 추가하기 위해 나왔습니다. 캐릭터의 이동 애니메이션이라던지, 점프, 수영
등으로 더 많은 기능을 추가하기 때문입니다.
따라서 액터=모든 사물체 폰=사물체 및 캐릭터 NPC = 주인공 플레이어로 정의할수 있습니다.

 

8. 플레이어 컨트롤러: 모든 게임에는 최소 하나의 플레이어 컨트롤러가 있고 게임 내 플레이어의 표상으로 폰 또는 
캐릭터의 빙의

 

위에서 언급한 폰과 캐릭터의 컨트롤러를 얘기합니다. 모든 게임의 하나씩 있고 온라인으로 진행될경우 게임 내
모든 플레이어에 대해 하나의 플레이어 컨트롤러를 가져갑니다.
ex) 메인 캐릭터의 조작을 한다.

 

9. AI 컨트롤러: 게임내 NPC에 표상으로 폰을 빙의

 

흔히 NPC에 빙의하여 메인 유저와 상호작용을 합니다. 별도에 AI 컨트롤러가 없으면 기본적인 AI컨트롤러를 가지게
됩니다.

ex) 게임 주인공이 NPC인 잡화상점에서에 상호작용

 

10. 브러시: 게임 플레이 볼륨을 정의하기 위해 레벨에 배치하는 3d 볼륨

 

브러시는 레벨 지오메트리 및 게임플레이 볼륨을 정의하기 위해 레벨에 배치하는 3d 볼륨을 말합니다.

볼륨:일정한 공간을 정의하는 투명 지오메트리 보통 주인공 플레이어가 볼륨으로 지정된 영역 안에 있을 때
특수한 기능을 키는 역활을 한다.

지오메트리: 흔히 맵에 벽을 넣거나 그 벽에 문을 만들다거나로 예시로 들수 있습니다. 아니면 바닥에 구멍을 뚫어
캐릭터를 떨어지게 만들게 합니다.

기본적으로 윤곽 작업을 하고 이벤트를 처리합니다. (블로킹 불륨, 페인 코징 불륨, 트리거 불륨 등이 있음)

브러시는 액터에 기능중 하나입니다. 이를 통해 더욱더 흥미진지한 게임을 만들수있습니다.

ex) 벽의 윤곽을 작업, 통과를 못하게 하는 벽 이벤트 처리, 어느 구간에 머물면 서서히 데미지를 입히는 곳,
액터가 만약 어느 부분에 다달았을때 이벤트로 불이켜진다던가 등
스타크래프트의 언덕 싸움 (언덕 아래에 있는 유닛이 공격을 할경우 위에있는 유닛은 확률적으로 공격을 회피)

 

11 레벨: 게임 플레이에 사용자 정의된 영역 (게임의 맵)

 

위에 언급한 레벨입니다. 레벨은 다수가 될수있고 하나가 될수있지만 주로 레벨안에 액터를 배치하고
이벤트를 적용하거나 플로퍼티를 편집하는 용도로 사용, 어느 구간에 다달으면 새 레벨을 생성해
다음 장소를 갈수있게 마련 보통 레벨을 맵이라고 얘기하기도함

보통 한 게임의 예를들어 메이플 스토리에 빅토리아 아일랜드에서 헤네시스로 갈때에 포탈을 타고 이동하는데
그 이동할때 로딩 시간이 짧지만 있는 이유도 다 그 해당 레벨을 불러오기 위함이다.

ex) RPG 게임 장르에 도시나 마을 및 보스방

 

12 월드: 로드된 레벨 목록 레벨 스트리밍 및 동적인 액터 스폰을 처리

 

모든 레벨을 가지고 있으며 어느 부분에 다달으면 다음 레벨로 이동하는 것을 편히 볼수있게 해주는 용어입니다.
대규모의 레벨을 관리합니다.

 

13 게임모드: 게임 모드 클래스 플레이중인 게임의 규칙 설정을 담당

 

게임의 규칙 및 일시정지 가능 여부, 레벨 전환, 승리 조건과 같은 게임 전용 작동방식을 포함합니다.
프로젝트 세팅: 기본 게임 모드 설정이 가능, 레벨 단위로 덮어쓸 수 있다.
레벨당 항상 단 하나의 게임모드가 존재
ex) 한 레벨에 승리조건이 토끼 10마리를 잡고 다음 레벨에는 토끼 100마 일종의 퀘스트 느낌

 

14 게임스테이트: 게임의 상태

 

게임의 점수나 게임의 스폰시킬 AI 수, 기타 게임 관련 정보가 포함이 되어있습니다.

ex) 배틀그라운드에 킬 점수, 스폰시킬 봇의 수, 아이템 파밍의 위치 등

 

15 플레이어 스테이트: 플레이어의 상태를 나타내는 용어

 

플레이어의 상태를 나타내는 용어로서 메인 플레이어 또는 봇과 같은 게임내 참여자의 상태를 나타냄
ex) 나의 캐릭터의 레벨, 체력, 마나 등  보스의 체력, 마나, 레벨 등


3. 언리얼 용어 요약 표

1. 프로젝트 각각의 게임을 이루는 콘텐츠와 코드 전부가 들어있는 
독립적인 유닛
2. 오브젝트 언리얼 엔진의 기본 구성 요소 언리얼 엔진 4의 모든 것이 오브젝트를 상속(캐릭터, 레벨 , 무기 등)(모든것)
3. 클래스 엑터 또는 오브젝트의 작동방식 및 프로퍼티를 정의 C++코드 또는 블루프린트에서 생성
4. 액터 레벨에 배치할 수 있는 오브젝트 액터는 이동, 회전, 스케일과 같은 3D 트랜스 폼을 지원(카매라 지형 등)
5. 컴포넌트 액터에 추가시키는 함수성 조각(함수의 기능), 보통 이벤트 처리
6. 폰 액터의 서브 클래스 게임내 아바타 또는 NPC 역활을 가능 (게임 캐릭터 및 NPC) AI를 통해 NPC 제어
7. 캐릭터 폰 액터의 서브 클래스(플레이어의 캐릭터에 쓰임) 플레이어의 이동에 대한 부가 코드가 있음
8. 플레이어 컨트롤러 모든 게임에는 최소 하나의 플레이어 컨트롤러가 있음 게임 내 플레이어의 표상으로 폰 또는 캐릭터에 빙의
9. AI컨트롤러 게임내 NPC 에 표상으로 폰을 빙의
10. 브러쉬 게임플레이 볼륨을 정의하기 위해 레벨에 배치하는 3d 볼륨
11. 레벨 게임플레이에 사용자 정의된 영역 (게임의 맵)
12 월드 로드된 레벨 목록 레벨 스트리밍 및 동적인  액터 스폰을 처리
13. 게임모드 게임 모드 클래스 플레이중인 게임의 규칙 설정을 담당(다음 레벨에 도달할수있는 조건, 규칙 등)
14 게임스테이트 게임의 상태 (게임 점수, 경기 시작 여부, AI수 등 정보 포함)
15 플레이어 스테이트:  플레이어의 상태를 나타냄(레벨, 체력바, 마나 등)

 


마무리

포스팅을 통해 언리얼 엔진 4의 기본 적인 용어를 정리해보았습니다. 다음 포스팅에는 레벨 디자이너 퀵스타트 가이드를 포스팅 할 생각입니다.
감사합니다.