본문 바로가기
언리얼 엔진 부트캠프/TIL

[DAY 25] Resource Migrate

by minjoothi 2025. 1. 21.

 

  • 1-3 C++ Actor 클래스 생성 및 삭제

 

ArtResource 폴더를 압축 해제 해준다

 

 

압축해제 해도 ArtResource 파일이 두개인 것을 확인해 볼 수 있다.

이는 언리얼 엔진의 머테리얼과 몬스터과 연결되어 있기 때문.

잘라내기를 이용하여 하나로 만들어준다.

 

 

그럼 이제 언리얼 에디터로 돌아와

ArtResouce 프로젝트가 생성되었는지 확인한 후 ArtResource 프로젝트를 실행시켜준다.

 

 

그럼 이렇게 흑백이 화면이 생성되게 된다.

 

 

콘텐츠 드로어를 선택한 후 콘텐츠 - Resources 폴더를 클릭 해준다.

 

 

이걸 열면 Audio, Characters 등 우리가 프로젝트를 진행할때 사용할 수 있는 여러 파일들이 존재한다

 

 

Resource 우측 클릭 후 migration (이주) 를 클릭.

 

 

그럼 어떤 에셋을 옮길지 물어보는 창이 나옴.

 

 

우리가 만들어 놓은 프로젝트 중 콘텐츠 폴더에 에셋들을 전부 옮김.

 

 

 

이주중

 

위 migrate (이주) 란 기능은

에셋들이 가지고 있는 관계를 깨트리지 않으면서도 누락없이 깔끔하게 옮겨주는 기능이다. 

 

 

옮겨준뒤 프로젝트는 삭제를 하도록 함.

 

 

다시 본 프로젝트로 돌아와서 Resource 폴더가 잘 옮겨졌는지 확인

이때 보이는 화면은 Level : 게임의 Map이나 Scene  이다.

 

 

콘텐츠 폴더 안에 Maps 라는 새로운 폴더 생성.

 

 

새 Level 을 만들어줌. 

파일 -> 새 레벨 -> 기본 -> 생성

 

 

그럼 이런 기본 화면이 나옴.

기본 Level 학습을 하기위한 최적이 조건이 있는 공간임.

 

 

원하는 위치 (Maps) 에 레벨 저장 까지 해준다 !

 

하지만

우리가 프로젝트를 오픈 했을때 우리가 만든 레벨이 아닌 초반의 레벨으로 보여지기 때문에

새로 만든 레벨을 기본 레벨로 설정 해주는 과정이 필요하다.

 

 

상단메뉴의 편집 (Edit) - 프로젝트 세팅 - 프로젝트_Maps & Modes 로 들어간다

 

 

 

에디터 시작 맵 ( Editor Startup Map ) : 에디터를 킬 때 마다 시작되는 맵

게임 기본 맵 ( Game Default Map ) : 게임을 실행할 때 시작되는 맵

 

이거 두개를 방금 만든 맵인 MainLevel 로 변경해주고 창을 닫으면 자동으로 저장된다.

 

Class 생성법

 

UObject :  object 란 객체지향프로그래밍을 배울때 객체를 의미,

즉 object 클래스란 이 언리얼 엔진에서 모든 클래스의 뿌리, 조상이 되는 클래스

하지만 object 클래스는 이곳에 배치할 수 있는 클래스가 아님. 추상적인 개념 (data & logic)

 

 

AActor : actor란 월드에 직접 배치할 수 있는 클래스,

actor도 object를 상속받는 클래스임, 좌표를 가짐,

 

캐릭터*몬스터 *Item *파티클 모두 actor를 상속하는 것임

플레이어의 스탯 같이 시각적으로 보이지 않지만 어떤 데이터를 담는 구조라면 

보통 object를 상속받아서 만들게 됨.

 

 

Tools (도구) - New c++ 클래스 에 들어가면

Object 클래스안에 많은 클래스들이 들어있는것을 확인해 볼 수 있다.

 

 

우린 다시 일반클래스에 들어가서 액터를 눌러준다.

그다음 가장 default 상태인 Public으로 클래스 타입을 지정해준다.

클래스 이름은 Item으로 지정해준다.

 

 

생성하면 이렇게 비쥬얼 스튜디오가 틀리면서 주의 창이 뜬다.

 

 

다시 실행후 비쥬얼스튜디오의 솔루션 탐색기를 보면 

public 폴더와 private 폴더가 생긴후 이런 Item 파일이 잘 만들어진 것을 확인해 볼 수 있다.

 

이때 파일을 public 으로 만드련

header 파일은 public에 있고 cpp 파일은 private에 나눠져서 생성되는 것을 확인해 볼 수 있다.

 

 

이는 Source 라는 거대한 폴더안에 Sparta 라는 하나의 모듈 (구성) 이 존재한다고 생각하면 된다.

지금은 프로젝트가 작아서 Sparta라는 모듈 밖에 없지만

프로젝트가 커질수록  Source 폴더 내에 UI, Character, Battle 등등의 여러 모듈을 만들어야 한다.

 

 

근데 이 public 안에 header file 을 생성한 경우

이 모듈 (Sparta) 뿐만 아니라 다른 모듈에서도 public에 생성된 header file을 참조할 수 있다

 

하지만 public 안에 header file을 생성한 경우엔 참조할 수 없음

 

지금은 초기단계라서 public에 거의모든 파일을 생성하게 되지만

시간이 지난후 어떤거는 private로 파일을 숨길 수도 있다.

 

 

 

다시 언리얼 엔진으로 돌아와서 콘텐츠 브라우저 (ctrl + space) 를 눌러서

파일을 탐색해보면 C++ 클래스 - Sparta - Public - Item 이라는 파일이 생성된 것을 확인해 볼 수 있다.

 

이렇게 클래스 생성하는것을 권장한다.

 

Class 삭제 하는법

 

 

비쥬얼 스튜디오에 들어와서 private과 public에 있던 Item 파일들을 삭제해준다

 

 

그 다음 Source - Private / Public 폴더에 들어가서 지워지지 않은

Item 파일들을 삭제해준다

 

 

삭제 후 비쥬얼 스튜디오는 모두 저장 후 나가기

언리얼 에디터 같은 경우 X 누르면 레벨저장이 나옴, 저장 후 나가기

 

회고

어렵다.. 낯설다