Unreal 엔진의 기초

Unreal은 월드 안의 요소(게임 객체)들의 유형이 정해져 있다.

Unity는 컴포넌트를 조립하여 요소의 유형을 결정한다.

 

Unreal은 C++ 게임 객체를 만들 때 부모 클래스의 종류를 정해주며 시작한다. (만들 때 부모 클래스를 지정한다.) 

Unity는 아무것도 없는 객체에 컴포넌트를 붙이는 방식이라면 Unreal은 종류가 정해진 객체에 컴포넌트를 붙이는 방식

이런 관점에서는 Unity가 Unreal보다 자유도가 더 높다.

 

Object (Unreal 게임 객체의 최상위 클래스)

ㄴ Actor

    ㄴ Pawn

        ㄴ Character

 

Actor 클래스 (AActor를 상속받음)

ㄴ BeginPlay() : 스폰될 때 한 번 실행되는 함수

ㄴ Tick() : 매 프레임 호출되는 함수

 

Unreal 특징

ㄴ C++ 클래스를 삭제하려면 엔진을 끄고 파일 탐색기에서 삭제해야 한다.

ㄴ 컴포넌트들을 스마트포인터 멤버로 관리한다.

ㄴ 컴포넌트를 추가할 때 컴포넌트들 중 하나는 루트 컴포넌트여야 한다.

ㄴ 빌드는 Visual Studio에서 해도 되고 엔진의 컴파일 버튼을 눌러도 된다.

ㄴ 유니티와 비슷하게 멤버를 private으로 관리하고 리플렉션 기능을 활용하여 엔진에서 수정할 수 있다.

ex) UPROPERTY(VisibleAnywhere) UPROPERTY(EditAnywhere, Category=BattleStat)

 

로그와 디버깅

로그

UE_LOG(카테고리, 로그 수준, 형식, 인자)

UE_LOG(LogTemp, Warning, TEXT("hello %d"), 3);

카테고리별로 로그를 볼 수 있다.

 

디버깅

엔진 끄고 솔루션 구성 Development editor나 debuggame editor로 설정 후 디버깅 시작하면 엔진이 켜짐

엔진의 플레이 버튼 누르면 중단점에 걸림

 

솔루션 구성의 Debug와 Development는 debug와 release의 관계와 비슷하다.

editor와 editor가 안붙은 것의 차이 

ㄴ editor 붙은 건 dll을 만들고 안 붙은건 exe를 만든다.

 

게임플레이 프레임워크

GameModeBase 클래스

ㄴ 게임의 규칙을 정의하는 클래스

월드 세팅

 

ctrl + n 단축키로 map을 생성할 수 있다.

ㄴ 세팅 -> 프로젝트 세팅 -> 맵&모드 -> 기본 맵 세팅

 

Pawn 클래스 (입력을 받을 수 있는 객체)

축과 액션에 대한 정보 세팅

ㄴ 세팅 -> 프로젝트 세팅 -> 엔진-입력 -> 축 매핑 이름 맞춰주기

 

Character 클래스

카메라가 캐릭터를 3인칭 시점으로 보이게 하기

ㄴ SpringArm은 CapsuleComponent에 붙인다.

ㄴ Camera는 SpringArm에 붙인다.

 

BluePrint

C++만을 사용하여 게임을 만들 수도 있지만 C++와 BluePrint를 적절히 섞어 사용하여 게임을 만들 수도 있다.

컴포넌트를 붙이거나 규칙을 정하는 과정을 시각화하여 표현한 것이다.

블루프린트 클래스가 C++ 클래스에 비해 느리긴 해도 유용하게 사용될 수 있다. 외형을 둘러볼 수도 있고 속성을 에디터에서 변경하여 적용해 볼 수도 있다.

기존에 만들어져 있는 C++ 클래스를 상속받는 블루프린트 클래스를 만들 수도 있다. 

 

'언리얼 5 > 정리' 카테고리의 다른 글

라이팅 설정  (0) 2022.10.05
컨테이너  (0) 2022.09.15
AI Controller & Behavior Tree  (0) 2022.09.14
충돌과 UI  (0) 2022.09.14
애니메이션  (0) 2022.09.13

+ Recent posts