포스트

UE5 C++ | Warehouse Wreckage, 프로젝트 세팅과 블루프린트 구조 이해 (유데미)

언리얼 강의 중 Section 2를 정리한 첫번째 글입니다.

UE5 C++ | Warehouse Wreckage, 프로젝트 세팅과 블루프린트 구조 이해 (유데미)

강의 정보 🎓


프로젝트 세팅 🔧

  1. 기본(빈 프로젝트) → 블루프린트 → Desktop, Maximum, 시작용 콘텐츠
    • 좌측 하단에 콘텐츠 드로어(Ctrl + Space)를 통해 기본 콘텐츠를 확인할 수 있고 Maps을 보면 3개의 기본 맵이 존재하는 것을 확인할 수 있다.
  2. 상단 바에서는 레벨 블루프린트를 열 수 있다.

드래그&드랍(콘텐츠 드로어)

옵션 이름의미
이동(Move Here)원본 파일을 새 위치로 ‘옮기는 것’ (원래 위치에서는 삭제됨)
복사(Copy Here)원본 파일은 그대로 두고, 새 위치에 복사본을 만든다
고급 복사(Advanced Copy Here)복사하면서 경로까지 업데이트할 수 있도록 추가 설정하는 옵션

블루프린트 기본 개념 🧩

이벤트 그래프란?

블루프린트 안에서 게임 로직을 구성하는 캔버스다.

함수처럼 특정 조건이 발생했을 때 어떤 동작을 수행할지 시각적으로 연결해 구성한다.

마우스 우클릭을 통해 다양한 노드를 추가할 수 있으며, 실행 흐름을 선으로 이어서 표현한다.

예: “BeginPlay” 이벤트에서 문을 자동으로 열거나, “OnOverlap” 이벤트에서 사운드를 재생하도록 설정할 수 있다.


노드 (Node)

블루프린트에서 기능을 수행하는 최소 단위다.

함수 호출, 변수 처리, 조건 분기 등 C++ 코드의 한 줄 한 줄을 시각화한 블럭이라고 볼 수 있다.

대표적인 예로 Print String 노드는 문자열을 화면에 출력하는 로그 기능을 제공한다.

팁: 다양한 노드는 우클릭 후 검색하거나, 블루프린트의 컨텍스트에 따라 자동으로 제안된다.


이벤트 (Event)

특정 조건이나 시점에서 자동으로 호출되는 노드다.

대표적으로 BeginPlay, Tick, OnActorBeginOverlap 등이 있으며, 게임 내에서 “언제” 어떤 동작을 실행할지 정의할 수 있다.

예: BeginPlay는 게임이 시작되자마자 실행되고, Tick은 매 프레임마다 호출된다.


핀 (Pin)

노드와 노드를 연결하는 접점이다.

실행 핀(흰색)은 흐름을, 데이터 핀(컬러별)은 값을 전달한다.

핀끼리 드래그해 연결하며, 데이터 타입이 일치해야 연결이 가능하다.

예: Set Visibility 노드는 실행 핀과 Boolean 타입의 데이터 핀을 가진다.


피직스 프로퍼티 (Physics Property)

액터에 물리 효과를 적용할 수 있는 속성이다.

Simulate Physics 옵션을 활성화하면 중력, 질량, 충돌 반응 등이 적용된다.

물리 기반 상호작용이 필요한 경우 반드시 활성화해야 한다.

예: 박스를 떨어뜨리거나, 플레이어가 밀 수 있는 오브젝트를 구성할 때 사용 할 수 있다.


오브젝트 구조: 액터 & 컴포넌트

언리얼에서의 오브젝트는 데이터와 기능의 집합이다.

  • 액터(Actor): 게임 월드에 배치할 수 있는 단위 (예: 캐릭터, 상자, 조명 등)
  • 컴포넌트(Component): 액터를 구성하는 요소로, 메시, 콜라이더, 스크립트 등이 포함된다.

구조적으로는 액터가 루트가 되고, 컴포넌트는 그 하위에 연결된다.


레퍼런스 (Reference)

다른 오브젝트를 가리키는 포인터 또는 주소값 개념이다.

에셋이나 액터를 복제하지 않고 위치만 참조해 효율적으로 다룰 수 있다.

이 방식은 성능과 메모리 사용 측면에서 유리하다.

예: Get Player Character 노드는 현재 플레이어 캐릭터의 레퍼런스를 반환한다.


UE 5.1 주의 사항: StartContent 폴더 ⚠️

프로젝트를 열었을 때 디폴트 맵의 변경사항이 전부 덮어씌워지므로, 디폴트 맵을 수정하려면 먼저 맵을 복제하고 StarterContent 폴더 외부에 저장해야 한다.

콘텐츠 브라우저에서 에셋을 우클릭하고 ‘복제’를 선택해 기존의 맵을 복제할 수 있고 그런 다음 Content 폴더에서 우클릭하고 ‘새 폴더’를 선택해 프로젝트 안에 새 폴더를 생성할 수 있다.

새 폴더의 이름을 ‘Maps’ 등으로 변경한 후, 복제된 맵을 드래그하면 다음에 UE 5.1 프로젝트를 열었을 때 덮어씌워지는 것을 방지할 수 있다.

해결법

  1. 파일 선택 → 2. 우클릭 → 3. Duplicate → 4. 복제본 생성 → 5. 새 폴더로 이동
    • 복제는 Ctrl + W 단축키로도 할 수 있다 (파일 선택 후 누르면 바로 복제).
    • StarterContent 안의 에셋은 절대 직접 수정하지 말고, 항상 복제본을 수정하여 사용해야 한다.

요약 및 느낀점 📝

  • 프로젝트 셋업에서는 콘텐츠 드로어(Ctrl + Space)를 활용하여 기본 맵과 블루프린트를 효과적으로 탐색하고 설정했다.
  • 중요한 점은 StarterContent의 안전한 관리로, 모든 수정작업은 반드시 복제본에서 진행해야 한다.
  • 블루프린트의 핵심 구성 요소들(이벤트 그래프, 노드, 핀, 오브젝트 구조)을 파악했으며, 앞으로 새로운 요소들도 체계적으로 정리할 계획이다.

느낀점 💡 블루프린트의 기본 개념들을 하나씩 익히면서 언리얼 엔진의 광활한 세계에 첫 발을 내딛은 것 같다. 시각적 프로그래밍의 매력을 느끼게 되었고, 앞으로 남은 강의들을 통해 이 개념들을 완벽하게 숙달하고 싶다. 특히 C++를 활용해서 더 복잡하고 효율적인 게임 시스템을 구현하는 것이 기대된다. 이런 기초 지식을 바탕으로 나만의 독창적인 게임 프로젝트를 만들어내고 싶은 열정이 생긴다.

다음 포스트 🧭

  • 다음 포스트에서는 발사체를 발사하기 위한 임펄스, 스폰 등을 다룰 예정
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.