[UE] Unreal C++ Settings, 파일이 안 열리는 문제해결 방법, 언리얼 코드 수정과 삭제
언리얼 엔진은 비주얼 스크립팅과 C++ 프로그래밍을 모두 지원하는 인기 있는 게임 엔진이다. 비주얼 스크립팅은 언리얼 엔진을 시작하는 좋은 방법이지만, 결국에는 더 복잡한 게임 로직이나 성능에 중요한 시스템을 구현하기 위해 코드 작성을 시작할 수도 있다.
목차
언리얼 엔진 C++
언리얼 엔진 C++ 시스템의 몇 가지 주요 기능은 다음과 같다.
UObject: 언리얼 엔진에서 모든 게임 객체는 UObject 기본 클래스에서 파생되어 게임 코드에 필요한 많은 기본 기능을 제공합니다. UObject는 가비지 수집, 직렬화, 네트워킹 및 리플렉션과 같은 기능을 제공합니다.
Actor: Actor들은 언리얼 엔진 게임의 기본 구성 요소이다. C++에서는 Actor 클래스에서 자신의 클래스를 파생하여 캐릭터, 적 및 환경 개체와 같은 사용자 지정 게임 개체를 만들 수 있다. 행위자들은 물리 시뮬레이션이나 AI와 같은 추가적인 기능을 제공할 수 있는 Components를 부착할 수 있다.
Components: Components는 Actor에게 부착될 수 있는 기능의 모듈화된 조각들이다. 구성 요소의 예로는 static meshes, particle system 및 오디오 소스가 있습니다. C++에서 사용자 지정 구성 요소를 직접 만들어 게임별 기능을 추가할 수 있다.
Blueprint: Blueprint는 비프로그래머가 드래그 앤 드롭 인터페이스를 사용하여 게임 로직을 만들 수 있도록 하는 시각적 스크립트입니다. 그러나 C++에서 사용자 지정 Blueprint 노드를 생성하여 Unreal Engine의 시각적 스크립팅 기능을 확장할 수도 있습니다.
Gameplay framework: 언리얼 엔진은 입력 처리, 충돌 감지 및 물리 시뮬레이션과 같은 기능을 포함하는 강력한 게임 플레이 프레임워크를 제공한다. 이러한 기능을 사용하여 C++에서 복잡한 게임 플레이 메커니즘을 만들 수 있습니다.
Editor integration: 언리얼 엔진의 Editor는 C++ 시스템과 긴밀하게 통합되어 있다. Editor를 사용하여 새 C++ 클래스를 만들고, 기존 클래스를 편집하고, 코드를 디버그할 수 있습니다. Editor는 또한 자동 완성, 코드 강조 표시 및 오류 검사와 같은 유용한 도구를 제공한다.
전반적으로 언리얼 엔진의 C++ 시스템은 복잡한 게임 로직과 시스템을 만들기 위한 강력하고 유연한 프레임워크를 제공한다.
표준 단체들 및 IDE
IEEE(국제전기전자기술자협회)
ISO: C86, C99(STL 추가), C++0x
Visual Stuido (IDE)
- 개발환경
- .net Framework 위에서 동작
- IL 언어 사용. 기계어 코딩어 중간에서 번역하는 언어.
- Visual C++ 9.0
- PreProcessor (.h 헤더파일 처리)
- Compiler (.cpp 처리)
- Obj
- Linker (.lnk)
- .exe 파일
Unreal C++
- 기존의 C++ 문법 사용.
- 게임에 특화된 템플렛 많이 사용.
- UHT (.h 헤더파일 처리)
- Compiler (.cpp 처리)
- Obj
- Module
- .dll: 중간언어 기능. decompile 가능. 코드 까보기 가능. 난독화 과정에 해석해서 활용.
Unreal 폴더 설명
.vs: Visual Stuidio Intellisence data가 들어가 있다.
Binary: Build된 결과가 저장(.dll이 저장되어 있다)된다. Binary가 없으면 rebuild가 일어난다.
Saved: LogFile이 나온다.
Intermediate: 중간파일이 다 들어간다. ex. dat, pch 등등. Intermediate이 없으면 rebuild가 일어난다.
Source: 소스가 저장된 폴더
파일저장 Tip
- Config
- Content
- Source
- 언리얼 실행파일 .upproject
- 위의 4개 파일을 저장. 나머지 파일은 지워도 빌드하면 재생성된다.
직렬화
CPU
RAM
I/O: ssd, N/W, 바이트 스트림
#pragma pack
pack(8);
struct A
{
double a;
int b;
}
A obj;
운영체제(OS) 마다 메모리 구조체계가 다르다.
다른 운영체제를 사용하면 주소가 바뀌는 문제를 해결하기 위해서 언리얼은 직렬화를 사용하다。
바이트 스트림(=변수를 바이트형 배열로 만들어준다)을 사용한다。
c++ → Editor →BP
- C++에서 직렬화된 것들이 Editor에 보여지고
- Editor에서 직렬화된 것들이 BP에 보여진다。
#include "coreM-"
#include "______"
#include "_____.generated.h"
UCLASS(); //직렬화
class ____API A___ : public AActor
{
GENERATED-BODY();
int a; //클래스는 직렬화되지만 멤버인 a는 직렬화되지 않는다
UPROPERTY int a; //직렬화됨.
UFUNCTION void Add(); //직렬화됨.
}
https://mm5-gnap.tistory.com/359
Unreal C++ 설정하기
에디터 개인설정
에디터 개인설정 - 소스 코드 - 사용할 IDE를 설정
받은 프로젝트 파일이 빌드에 문제가 생겨 안 열릴때 해결방안
간혹 받은 프로젝트 파일이 빌드에 문제가 생겨 안 열릴때가 있다. 다음은 빌드가 제대로 되지 않아 켜지지 않는 문제 해결방안이다.
- rebuild를 해줄건지 물어본다.
- 예(Y)를 눌러서 일단 실행시켜준다.
- 위의 화면처럼 build가 진행된다. build가 정상적으로 진행되면 문제없이 진행된다.
- build가 제대로 진행되지 않고 꺼지는 문제가 발생하면 아래의 과정을 진행한다.
1.
- Error 팝업이 뜬다. 확인을 눌러준다.
2.
- ...\Saved\Logs 폴더 안의 .log파일을 열어준다.
- 아래쪽에 error가 난 부분을 찾는다.
3.
- 언리얼 프로젝트 폴더
- 언리얼 실행파일 - 마우스 우클릭 - Generate Visual Studio project files 클릭
- .sln 파일이 생성된다.
4.
- 생성된 .sln파일 실행
5.
- 문제된 부분을 수정해준다.
- 수정 후에 솔루션 빌드를 해준다.
6.
- Build가 끝나면 Binaries 폴더가 생성된다.
- .uproject를 실행하면 언리얼이 정상적으로 실행된다.
솔루션 내의 Engine 폴더
- 솔루션의 Engine 부분에 해당하는 것이 위의 Engine 폴더 위치이다.
- 해당 부분을 삭제 또는 수정할 경우 언리얼 프로그램에 문제가 생길 수 있기 때문에 삭제와 수정에 유의해야 한다.
- 전 프로젝트에 영향을 줄 수 있다.
언리얼 클래스 저장위치
D:\Unreal\폴더명\폴더명\Intermediate\ProjectFiles
D:\Unreal\폴더명\폴더명\Source
에 저장된다.
자동 생성되는 주석 지워주기
C:\Program Files\Epic Games\UE_4.26\Engine\Content\Editor\Templates
언리얼 엔진 저장위치 열어서 ActorClass.h와 ActorClass.cpp 내의 주석을 삭제하여 클래스가 생성될 때마다 주석이 생기는 것을 방지해주자.
ActorClass.h
ActorClass.cpp
- Unreal 4.18부터는 모든 파일이 미리 컴파일된 헤더 취급된다. 따라서 %PCH INCLUDE DIRECTIVE%는 필요없다.
언리얼에서의 .h .cpp 삭제 방법
- 언리얼 콘텐츠 브라우저에서 파일을 수정/삭제해준다. 또는 (Intermediate 폴더가 아닌) 원본 파일 위치에서 파일을 삭제해준다.
- 파일 삭제 후 언리얼 내에서 컴파일을 실행한다. 파일을 수정하거나 삭제했을때는 언리얼에서 컴파일 하는것이 좋다.
- 언리얼을 껐다가 다시 켠다. 껐다가 다시 실행하면 파일이 사라져 있을것이다.
※ .h .cpp 파일 이름 수정이나 삭제는 경로 문제가 발생할 수 있으므로 항상 주의하자!
'⭐ Unreal Engine > UE FPS TPS' 카테고리의 다른 글
[UE] Character Animation, Collsion (0) | 2023.03.08 |
---|---|
[UE] Character, GameMode (0) | 2023.03.07 |
[UE] Log 출력하기, Draw Debug 구현 (0) | 2023.03.03 |
[UE] Mesh, Log (0) | 2023.03.02 |
[UE] Properties (0) | 2023.02.28 |
댓글
이 글 공유하기
다른 글
-
[UE] Character, GameMode
[UE] Character, GameMode
2023.03.07 -
[UE] Log 출력하기, Draw Debug 구현
[UE] Log 출력하기, Draw Debug 구현
2023.03.03 -
[UE] Mesh, Log
[UE] Mesh, Log
2023.03.02 -
[UE] Properties
[UE] Properties
2023.02.28