hljs.initHighlightingOnLoad();

Unreal

Unreal

Class Default Object(CDO)에 대한 간단한 이해

언리얼 엔진의 Object인 UObject는 Default Object인 기본 세팅으로 초기화된 CDO를 미리 만들어 두고 이를 복사하는 방식으로 다른 Instance를 만든다. 클래스를 예로 들어 설명하겠다.클래스의 정의가 있을 때 인스턴스를 생성하지 않으면 실제론 아무것도 존재하지 않은 것이다.마찬가지로, 언리얼 엔진에선 CDO를 미리 생성해 놓고 이것을 복사하는 방식으로 인스턴스들을 만든다.  위 캡처에서 Item이란 클래스가 있을 때, 이것을 CDO로 미리 만들어 두고, 그것을 다시 복사하여 사용한다.에셋에 Item의 미리보기가 뜨는 것도 클래스의 정의를 이미 CDO를 포함한 인스턴스 형태로 만들었기 때문에 볼 수 있는 것이다. (저 에셋이 CDO라는 소리는 아니다! 저 에셋은 CDO를 포함한 인..

Unreal

언리얼 엔진 Actor의 라이프 사이클

언리얼 엔진에서 Actor는 게임 도중에 언제든지 생성(Spawn)될 수 있고, 필요 없어지면 파괴(Destroy)될 수 있다. 이를 Actor 라이프 사이클이라 부르며, 이 과정을 이해하면 게임 로직을 보다 효율적이고 안정적으로 작성할 수 있다. 1. 액터 라이프 사이클을 알아야 하는 이유1. 초기화 시점 결정생성자(Constructor), PostInitailizeComponents, BeginPlay 등이 각각 언제 호출되는지 알아야 적절한 곳에 코드를 배치할 수 있다.예) 컴포넌트 생성(CreateDefaultSubobject)은 생성자에서, 다른 액터 참조나 월드 접근은 BeginPlay에서 처리. 2. 성능 관리매 프레임마다 호출되는 Tick 함수는 비용이 클 수 있다.따라서 필요한 액터만 T..

Unreal

언리얼에서 컴포넌트란?

컴포넌트는 언리얼 엔진에서 Actor가 어떤 역할을 하거나 특정 속성을 갖도록 만들어주는 부품(파츠) 개념이다.하나의 Actor가 여러 종류의 컴포넌트를 조합하여 다양한 기능을 구현할 수 있다. 예를 들어, StaticMesh + Audio + Collision을 조합하여 충돌 시 소리가 나는 아이템을 만들 수도 있다. 루트 컴포넌트와 Scene Component모든 Actor는 최상위 컴포넌트인 루트 컴포넌트를 가져야 한다. 루트 컴포넌트는 액터의 트랜스폼(위치, 회전, 크기)를 정의하며, 모든 하위 컴포넌트가 이를 기준으로 동작한다.일반적으로 SceneComponent를 루트로 설정하여 액터의 트랜스폼을 관리하고, 그 아래 다양한 컴포넌트를 계층적으로 붙인다. SceneComponentSceneCom..

Unreal

기본 Actor 클래스 코드 구조

언리얼 엔진에서 C++ 클래스를 새로 만들면, 일반적으로 헤더 파일과 구현 파일이 한쌍으로 자동 생성된다.1. 헤더 파일 코드 분석1 - 1. 헤더 파일 상단 코드 #pragma once이 헤더 파일이 여러 번 포함되더라도, 컴파일 시 단 한 번만 처리하도록 해주는 지시어이다.과거에는 #ifndef ~ #define ~ #endif 방식을 사용했지만, 대부분의 최신 C++ 프로젝트에서 #pragma once를 권장한다.#include "CoreMinimal.h"언리얼 엔진에서 자주 사용하는 기본 타입(FString, TArray 등)과 매크로(UE_LOG 등), 각종 유틸 함수들이 정의되어 있다.#include "GameFramework/Actor.h"AActor를 상속받기 위해 필요한 헤더파일이다.#i..

Unreal

Object와 Actor 차이점 정리

1. Object1 - 1. UObjectUObject는 언리얼이 설계한 새로운 시스템의 단위 오브젝트로 언리얼의 모든 객체가 상속하는 베이스 클래스이다. C++ 오브젝트(네이티브 클래스)저수준의 빠른 처리를 위한 기능 구현에 사용한다.접두사 FUObject 오브젝트C++ 오브젝트에 객체지향 설계를 위한 다양한 기능을 추가한 오브젝트이다.콘텐츠 제작에 관련된 복잡한 설계 구현에 사용한다.접두사 U1 - 2. UHT(Unreal Header Tool)UObject를 상속하면 다양한 기능을 제공하는데, 이 기능을 사용하기 위해서는 헤더 파일에서 전처리 단계를 거쳐 필요한 정보를 수집해야 한다. 이러한 전처리 단계는 UHT에서 이루어진다. 언리얼 프로젝트 빌드 시 우선 UHT는 소스 코드를 분석하여 .gene..

Unreal

C++ Actor 클래스 삭제하는 법

작업 중에 사용하지 않게 된 클래스는 삭제해야 할 때가 있다. 단순히 언리얼 에디터 콘텐츠 브라우저에서 삭제만 하는것으로는 완전히 제거되지 않으니(삭제 버튼 조차 없다!), 아래 절차를 따라야 안전하게 삭제할 수 있다.1. Unreal Editor 종료하기2. Visual Studio 솔루션에서 파일 제거 언리얼 에디터를 먼저 종료한 뒤, VS를 열어 Solution Explorer에서 삭제할 클래스를 찾는다.헤더 파일과 cpp 파일을 각각 우클릭해서 삭제해 준다.  그 다음, VS 상단 메뉴 File -> Save All로 저장한다.하지만 이 작업들은 솔루션 (프로젝트 구성 정보)에서만 제거하는 것이므로, 실제 디스크의 파일은 아직 남아 있다. 3. 프로젝트 폴더에서 물리적 파일 삭제 윈도우 탐색기로 ..

Unreal

Unreal 엔진 빌드 프로세스

1. VS C++ 솔루션 구조 이해하기언리얼 프로젝트 폴더에서 솔루션 파일을 클릭해 VS를 실행한 후, 프로젝트 폴더 구조를 파악해 보자. 이렇게 프로젝트 폴더들이 계층적으로 표시되는데, 실제 Windows 탐색기에서 보았던 프로젝트 폴더 구조와는 조금 다를 수 있다. VS는 빌드와 관리를 용이하게 하기 위해 디스크의 실제 폴더 구조와는 별개로 가상 폴더 구조를 생성하기 때문이다. 따라서 Windows 탐색기의 실제 폴더 구조와 1:1로 대응되지 않을 수 있음을 유의해야 한다. 빌드 규칙이나 엔진 소스 파일은 가상 폴더 구조에서 위치가 다르게 보이더라도, 실제로는 엔진 설치 폴더와 프로젝트 폴더에 그대로 존재한다. 1 - 1. 솔루션 구조 내 주요 폴더Engine 언리얼 엔진 자체 소스 코드와 리소스가 ..

Unreal

프로젝트 폴더 구조 이해하기

에픽 게임즈 런처에서 라이브러리 > My Project > 프로젝트 우클릭을 하게 되면 폴더를 파일 탐색기에서 열 수 있다.  프로젝트 폴더 내 주요 파일.sinC++ 소스 코드와 빌드 설정이 연결된 핵심 파일이다.더블 클릭하면 VS에서 .cpp, .h 파일을 열어 수정할 수 있다..uproject언리얼 에디터가 프로젝트 설정(콘텐츠, 맵, 플러그인 등)을 불러올 때 사용하는 파일이다.더블 클릭 시 언리얼 에디터에서 바로 프로젝트를 열 수 있다. .vsconfigVisual Studio Configuration 파일로, VS 프로젝트에서 사용되는 특정 설정과 구성 요소 설치 요구 사항을 정의한다.프로젝트를 열 때 VS가 필요한 워크로드와 구성 요소를 자동으로 감지한다. 프로젝트 폴더 내 주요 폴더 .vs..

(ꐦ •᷄ࡇ•᷅)
'Unreal' 태그의 글 목록 (2 Page)