목표
좌우로 이동하면서 장애물을 피하고, 끝까지 가면 클리어되는 게임을 만든다.
1. 플레이어 자유 이동 (상하좌우)
2.바닥 + 벽으로 맵 구성
3. 장애물(큐브) 좌우 이동 (속도 각각 다르게)
4. 장애물 충돌 시 게임오버 UI + 다시하기
5. 골 도달 시 클리어 UI + 다시하기
6. 게임 시작 시 플레이어 정상 스폰
※ 본 실습은 C++ 코딩 없이 진행됩니다.
※ 모든 기능은 블루프린트로 구현하며, 코드를 작성하지 않아도 됩니다.
※ 언리얼 기본 기능만으로 게임을 완성하는 것이 목표입니다.
장애물 만들기
1. 장애물 Blueprint 만들기
콘텐츠 드로어 → 블루프린트 클래스 → 액터 BP_Obstacle 생성



2. 움직임 컴포넌트 추가
컴포넌트 → 장애물이 될 Cube 생성 → InterpToMovement 추가

3. 이동 경로 설정
Details 패널에서 설정
- Control Points 추가 (2개 이상)
- 시작 위치와 이동할 위치 설정
Point 0: 시작 위치
Point 1: 오른쪽 이동 위치

4. 반복 이동 설정
- Duration → 이동 속도 조절 (값 작을수록 빠름)
- Behaviour Type → Ping Pong (왕복 이동)

5. 맵에 배치
- BP_Obstacle을 여러 개 배치
- 각각 Control Points 위치를 다르게 설정

장애물 닿으면 게임오버
6. 충돌 설정
BP_Obstacle → 컴포넌트 → Cube
Details 패널 설정
- Collision Presets → OverlapAllDynamic
- Generate Overlap Events → 체크



7. 이벤트 만들기, 플레이어 입력 막기
- OnComponentBeginOverlap → Print "Game Over"
- Get Player Controller → Set Input Mode UI Only → Show Mouse Cursor 체크
- Cast To BP_ThirdPersonCharacter → 큐브끼리 충돌해도 GameOver 가 떠서 따로 추가하였음

게임오버 UI 만들기
8. UI 생성
- Content Browser 우클릭
- User Interface → Widget Blueprint
- WBP_GameOver 생성



9. UI 구성
- Text: "Game Over"
- Button: "Retry"
[캔버스 패널] 안에 텍스트와 버튼을 넣어야 작동함


10. 다시하기 기능
버튼 클릭 이벤트
OnClicked → Open Level (현재 맵 이름)
게임오버 시 UI 띄우기
Create Widget (WBP_GameOver) → Add to Viewport
Get Player Controller / Set Input Mode Game Only
Retry 버튼을 눌렀을 때 움직이지 않는 상황이 생겨 따로 추가하였음

골 만들기
골 Blueprint 만들기 → 콘텐츠 드로어 → 블루프린트 클래스 → 액터 BP_Goal 생성


11. 클리어 처리
GameOver 동일 구조
OnComponentBeginOverlap → Create Widget (Clear UI) → Add to Viewport → Disable Input


12. 플레이어 스폰
- 맵에 PlayerStart 있으면 거기서 시작
- 없으면 자동 위치 생성됨
13. 테스트
1) Play 클릭
2) 캐릭터 이동
3) 장애물 피하기
4) 닿으면 게임오버
5) 골 도달하면 클리어
6) 다시하기 버튼 눌러 재시작


느낀 점
- 이제는 컴포넌트 추가, Details 패널는 어느정도 익숙해졌지만, 블루프린트는 아직 많이 어색하고 연습이 필요하다.
- 위젯 블루프린트를 처음 써봤는데 쉬우면서도 어려운 느낌이 들어 이것도 익숙해질때까지 연습이 필요해보인다.
- 장애물 만들기 재밌다.
'사전캠프 TIL' 카테고리의 다른 글
| 26.04.17 미니 프로젝트: 장애물 피하기 게임 만들기 (2) (0) | 2026.04.17 |
|---|---|
| 26.04.15 간단한 상호작용 구현 (문 열기 또는 아이템 줍기) (0) | 2026.04.15 |
| 26.04.14 Steam 출시 Unreal 선배기수 게임 진행 (0) | 2026.04.14 |
| 26.04.13 캐릭터 이동 구현 (0) | 2026.04.13 |
| 26.04.10 Unreal 게임개발종합반 (0) | 2026.04.10 |