초보 코린이의 성장 일지

UE4 Unreal C++ 세팅 및 시작 본문

언리얼

UE4 Unreal C++ 세팅 및 시작

코오린이 2023. 2. 27. 12:28

세팅을 하기 위한 작업을 시작해보겠다.

 

C++에서 컴파일 과정 - 전처리기 (.h 및 difine) ->  컴파일러 (결과를 가지고 cpp 번역) -> 오브젝트 파일 (obj) -> 링커(linker) -> 실행 파일(exe)

 

언리얼 C++ 컴파일 과정 - Unreal Header Toll (UHT) -> 언리얼 컴파일러 (cpp 처리) -> 동적 파일 -> 모듈화 -> dll

 

1. 동일하게 C++로 변경하여 생성해준다.

 

1. 만일 비주얼 스튜디오 버전중에 사용하고 싶은 버전으로 변경을 하고 싶다면, 위에 과정을 거처서 변경하면 된다.

2. 설정에 버전 표시없는 Visual Studio로 하게되면 자신의 컴퓨터에 깔려있는 최신 버전 Visual 버전이 실행된다.

 

1. 만일 오류가 발생하여 문제가 생겼을 경우 팅기거나 찾을 수 없는 상황이 온다면

2. Saved에 들어가 최신 log나 문제있는 log를 찾아낸다.

3. 그리고 프로젝트에 오른쪽 마우스를 클릭하여, Generate Visual Studio project files를 누른 후 들어간다

4. 빌드를 누르고 솔루션 빌드를 클릭해준다.

5. 그리고 성공이 뜬다면, Binaries가 생성이 된다.

6. 그리고 다시 프로젝트로 들어가면 정상적으로 돌아온다.

 

 

직렬화 (Serialization)

1. 기본적인 c++에 있는 Point를 사용하게 되면, 문제가 생긴다. 언리얼 c++에서는 모든 플랫폼이 다 사용할 수 있게 구성을 해야한다. 그로인해 Point 접근을 하게되면, 대상이 변경될때 찾을 수 없게 되거나 많은 오류가 발생한다.

그래서 통일하기위해 직렬화를 사용하게된다.

2. 정보를 다른 환경에서 불러와 동일한 상황으로 만드는 기법

3. 객체와 속성 정보를 안전하게 보관하여 로딩

4. 바이너리 데이터와 객체 데이터 사이의 인코딩과 디코딩

5. 데이터를 스트링, 혹은 일차원 배열 형태로 변환해서 외부로 전송해준다. byte형에 배열로 바꿔주는 형태

6. c++에서 에디터에 공개되어야 하는 것들은 전부 byte형태에 배열로 직렬화가 되어야한다. 직렬화가 안되면, 에디터에 공개되지가 않는다. 그리고 모든 것들을 공개하는게 아닌 필요한것만 공개해야 한다. 그래 직렬화가 되어야 에디터를 통한 블루프린트에서도 공개를 할 수 있다.

7. 그렇다고 반드시 직렬화가 필요한건 아니지만 반드시 해줘야 하는 객체들이 있다.

8. Object를 상속받는 객체들은 필요하지만, 우리가 따로 만들어주는 Object 범위를 벗어난 객체들은 필요하지가 않다.

 

 

 

1. Test를 한번 해 볼 것이다. 클래스를 하나 생성해주고 모두 다시 로드를 눌러서 들어간다.

 

1. 언리얼 Engine 폴더로 들어간다 -> Content -> Editor -> Templates -> 위에 보이는 ActorClass.cpp, ActorClass.h -> 메모장으로 옮겨서 수정 

 

ActorClass.h 수정 전
ActorClass.h 수정

1. 처음 실행하게 되면 주석들이 나오게 된다. 계속 나오는것을 방지해주자 설정을 하기 위해 주석들을 제거해 준다.

 

ActorClass.cpp 수정 전
ActorClass.cpp 수정

1. cpp도 동일하게 수정해준다.

 

Test 삭제 전

 

Test 삭제 후

1. 만들었던 Test를 들어가서 보면 주석들이 나오게 된다. 이제 삭제 시켜주자

2. 하지만 언리얼은 여기서 제거했다고 해서 컴파일이 안일어나지 않는다.

3. 탐색기 에서 표시를 들어가서 다시 한번 더 지워줘야 확정적으로 삭제가 된다.

4. 그리고 언리얼로 들어가서 컴파일을 눌러주고, 종료했다가 다시키면 이제 Test가 삭제된다.

 

 

1. 테스트가 끝났으니 클래스를 하나 다시 생성해준다.

2. 이제 프로젝트를 생성해도, 주석이 사라져있다.

 

 

1. 확장 관리 or 확장 및 업데이트를 눌러서 UnrealMacroGenerator를 설치해준다.

 

1. 설치하고 나서 이제 Alt + W 를 눌러주면 매크로 쓰는 것들이 나오게된다.

2. UPROPERTY 클릭 -> EditAnywhere 선택

1. UROPERTY(EditAnywhere) 가 생성되었다. 그 후 int A = 10이라고 선언해준다.

2. 만일 UROPERTY(EditAnywhere)를 주석처리하면 int A = 10은 나타나질 않는다.

1. EditDefaultsOnly로 선언 

2. int B 선언 후 cpp에서 20으로 초기화

 

1. EditInstanceOnly로 선언 -> int C 선언

2. C = 30으로 초기화

 

기존 C++에서는 위 초기화 방법에 따라 차이가 있지만, 언리얼 C++에서는 초기화 방법이 다 동일하게 작용한다.

생성자는 에디터에서에 기본 초기값을 설정해준다.

 

 

1. 기존 블루프린트에서는 클래스를 만들때 위와 동일하게 만들어 왔다.

2. 하지만 C++에서는 이제 만든 클래스를 클릭하여, 기반 블루프린트 클래스 생성을 눌러주면 된다.

3. 그럼 위와 같이 우리가 보던 이벤트그래프가 나오고, 오른쪽 상단위 부모 클래스를 보면 다른 걸 알 수 있다.

 

- 이제 언리얼 C++로 작업을 진행하게 될 것이다.

 

Comments