언리얼 엔진 본캠프 6주차-2 언리얼 엔진 C++ : Actor 클래스

정재훈·2025년 1월 20일
0

unreal engine

목록 보기
14/45

<아트 리소스 셋업>

Migrate

언리얼 엔진의 에셋(리소스)은 서로서로 연관되어 있는 경우가 많은데(특히 애니매이션) 이런 연결 구조가 끊어지게 되면 리소스를 사용할 수 없게 된다. 이런 것들을 유지하기 위해 프로젝트 형태로 되어 있다

이렇게 만들어져있는 리소스를 내 프로젝트에 가져오기 위해서는 Migrate(이주)를 하면 된다.

Migrate할 때 migrate할 경로를 정해야하는 데 이 때 내 프로젝트 폴더의 Content 폴더로 경로를 지정해야 한다

  • 이주는 복사하는 것이 아니고 말 그대로 옮기는 것이기 때문에 원본 프로젝트(에셋 프로젝트)는 비워지게 되고 타깃 프로젝트(내 프로젝트)에는 원본 프로젝트와 동일한 구조를 가진 폴더와 파일들이 생김

=> 이렇게 프로젝트 간의 에셋 이동에 유용하게 사용할 수 있는 기능이 Migrate이다.

그러면 1. 이주말고 복사하는 방법은 없나? 2. 추가로 현재 내가 작업하고 있는 프로젝트를 다른 사람에게 똑같이 복사해 주려면? 2번은 그냥 프로젝트 폴더를 넘겨주면 가능할 것 같고 1번은?

<Actor>

Actor와 Object

Object는 모든 클래스의 부모 클래스, 데이터와 로직을 담당하는 추상적 개념이기 때문에 world에 배치할 수 없음
Actor는 Object를 상속받기는 하나 world에 배치할 수 있음

  • 캐릭터, 몬스터 + 작은 효과, 이펙트 같은 것들은 world에 배치가 되야하니까 Actor를 상속받고 캐릭터의 스텟, 좌표(?) 같은 데이터들은 Object를 상속받는다

Actor 클래스 생성

12
              3             4

사진 1 ~ 4 까지 순서를 따르면 클래스가 하나 만들어지고 visual studio 솔루션 탐색기와 언리얼 에디터의 Content Browser에서 확인 할 수 있다

사진 3에 Class Type이라는 게 있는 데 선택한 것에 따라 솔루션 탐색기에도 Public 폴더와 Private 폴더가 생김

  • Class Type
    • Public
      • .h가 Public 폴더에, .cpp가 Private 폴더에 저장
      • 프로젝트의 다른 모듈에서 .h#include할 수 있음
    • Private
      • .h.cpp 모두 Private 폴더에 저장
      • 해당 모듈에서만 접근 가능

이렇게 만든 클래스를 언리얼 에디터에서 원하는 클래스를 드래그하여 뷰포트에 드롭하면 world에 배치 가능(하지만 아직 모습이 보이지 않음)

※ visual studio에서도 원래 방식대로 프로젝트(or 폴더) 우클릭 → 추가 → 새 항목(or 클래스)을 클릭하여 클래스를 만들 수도 있지만 언리얼 클래스에는 기본적으로 필요한 .h와 매크로들이 있는데 이것들을 직접 타이핑해야되기 때문에 에디터 상에서 클래스를 만드는 것을 권장

Actor 클래스 삭제

클래스를 삭제하기 위해서는 일련의 과정을 따라야 완전히 삭제할 수 있다

  1. 언리얼 에디터 종료
  2. visual studio 솔루션 탐색기에서 삭제하고 싶은 클래스의 .h.cpp 제거(Remove) -> 전체 저장(ctrl + shift + s)
    • 현재는 visual studio의 가상 폴더 구조에서 .h.cpp를 제거한 것
  3. 프로젝트 폴더 → Source → 프로젝트명 → Private과 Public 폴더에서 제거할 클래스의 .h.cpp 파일 삭제(Delete)
  4. visual studio로 돌아가서 재빌드 후 언리얼 에디터를 실행하면 Content Browser에서 해당 클래스가 사라진 것을 확인할 수 있음

=> 에디터 종료 → 솔루션 Remove → 물리 파일 삭제 → (Visual Studio 빌드) → 에디터 재실행

MyActor ~ MyActor3 클래스들이 삭제된 것을 확인할 수 있다

위 과정 중 2, 3번 과정을 어겼을 때 어떤 에러가 발생하는지 확인해보았다

  • 3번을 어겼을 때는 visual studio의 가상 폴더에서만 지워져서 언리얼 에디터에 그대로 아이템이 있었다
  • 2번을 어겼을 때는 물리 파일이 삭제되어 언리얼 에디터에서 클래스는 삭제되었지만 visual studio의 가상 폴더에는 그대로 남아있어 에러가 뜨긴 했는데 빌드할 때는 이전 빌드가 남아있어서 그런가 에러가 발생하지 않았고 컴파일하니 에러가 발생했다
    • 그런 다음 빌드 문제 복구 과정을 따르고 나서 visual studio를 열어보니 파일들이 지워졌다는 문구와 함께 파일들이 지워져있었다

그럼 물리 파일을 지웠을 때 빌드 시에도 에러가 나러면 어떻게 해야할까 생각해보다가 visual studio를 켜놓고 물리 파일들을 지우고 거기에 Binaries, DerivedDataCache, Intermediate, Saved 같은 임시 파일 또는 컴파일 관련 파일들을 저장하는 폴더들을 삭제하고나서 visual studio에서 전체 빌드를 하니 에러가 발생했다






profile
드가자

0개의 댓글