언리얼 엔진은 비주얼 스크립팅과 C++ 프로그래밍을 모두 지원하는 인기 있는 게임 엔진이다. 비주얼 스크립팅은 언리얼 엔진을 시작하는 좋은 방법이지만, 결국에는 더 복잡한 게임 로직이나 성능에 중요한 시스템을 구현하기 위해 코드 작성을 시작할 수도 있다.

 

목차

     

     


     

     

    언리얼 엔진 C++

     

    언리얼 엔진 C++ 시스템의 몇 가지 주요 기능은 다음과 같다.

    UObject: 언리얼 엔진에서 모든 게임 객체는 UObject 기본 클래스에서 파생되어 게임 코드에 필요한 많은 기본 기능을 제공합니다. UObject는 가비지 수집, 직렬화, 네트워킹 및 리플렉션과 같은 기능을 제공합니다.

    Actor: Actor들은 언리얼 엔진 게임의 기본 구성 요소이다. C++에서는 Actor 클래스에서 자신의 클래스를 파생하여 캐릭터, 적 및 환경 개체와 같은 사용자 지정 게임 개체를 만들 수 있다. 행위자들은 물리 시뮬레이션이나 AI와 같은 추가적인 기능을 제공할 수 있는 Components를 부착할 수 있다.

    Components: ComponentsActor에게 부착될 수 있는 기능의 모듈화된 조각들이다. 구성 요소의 예로는 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
    1. PreProcessor (.h 헤더파일 처리)
    2. Compiler (.cpp 처리)
    3. Obj 
    4. Linker (.lnk)
    5. .exe 파일

     

    Unreal C++

    • 기존의 C++ 문법 사용.
    • 게임에 특화된 템플렛 많이 사용.
    1. UHT (.h 헤더파일 처리)
    2. Compiler (.cpp 처리)
    3. Obj
    4. Module
    5. .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

     

    직렬화, Serialization / 에셋과 패키지

    lifeisforu.tistory.com/360 UE4 의 Package, Asset, 그리고 Paths 에 대해... 주의 : 공부하면서 정리한 것이라 잘못된 내용이 포함될 수 있습니다. 1. 들어가며 UE4 와 관련한 프로그래밍을 하면서 처음에 가장

    mm5-gnap.tistory.com

    https://koreanfoodie.me/921

     

    언리얼 시리얼라이제이션 (Unreal Serialization)

    시리얼라이제이션 시리얼라이제이션이라는 개념은, 텔레포트와 같다고 이해하면 쉽다. 텔레포트로 사람을 전송한다고 했을 때, 정상적으로 작동하는 텔레포터는 사람 전체를 온전히 주고받는

    koreanfoodie.me

     

     


     

     

     

     

     

    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 폴더

     

     

    Config, Plugins, Shaders, Source는 삭제하면 안 된다. 꼭 필요한 경우가 아니면 수정도 하지 않는것이 좋다.

    • 솔루션의 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 삭제 방법

     

    1. 언리얼 콘텐츠 브라우저에서 파일을 수정/삭제해준다. 또는 (Intermediate 폴더가 아닌) 원본 파일 위치에서 파일을 삭제해준다.
    2. 파일 삭제 후 언리얼 내에서 컴파일을 실행한다. 파일을 수정하거나 삭제했을때는 언리얼에서 컴파일 하는것이 좋다.
    3. 언리얼을 껐다가 다시 켠다. 껐다가 다시 실행하면 파일이 사라져 있을것이다.

    ※ .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