TIL

[UE5] 레벨 디자인 실습: 장애물 돌파와 상호작용 공간

think95592 2026. 4. 16. 17:15

이번 실습에서는 언리얼 엔진 5를 활용해 성격이 다른 두 가지 맵을 제작했습니다. 하나는 순발력이 필요한 '장애물 피하기 맵', 다른 하나는 다양한 기믹을 체험하는 **'상호작용 공간'**입니다.


🗺️ Map 1. 장애물 피하기 (Obstacle Course)

이 맵의 핵심은 자동화된 장애물도착 지점(Goal)의 판정입니다.

  • 동적 장애물 구현:


    • BP_Obstacle 액터를 만들어 일정한 범위를 왕복하는 로직을 짰습니다.
    • Tick 노드에서 Delta Time을 곱해 프레임에 독립적인 일정한 속도를 구현한 것이 핵심입니다.
    • 각 장애물을 클릭해 속도(Speed)를 다르게 설정하여 난이도를 조절했습니다.
  • 회전 트랩:
    • AddActorLocalRotation을 사용해 제자리에서 도는 회전 장애물을 배치해 점프 타이밍을 요구하도록 설계했습니다.
  • 클리어 시스템:
    • 맵 끝에 BP_Goal을 배치하고, 캐릭터가 닿으면 Clear UI 위젯을 생성합니다.
    • Set Input Mode UI Only를 통해 게임 조작을 막고 마우스 커서를 활성화해 다음 단계로 넘어갈 수 있게 했습니다.

 

 


🗺️ Map 2. 상호작용 공간 (Interaction Space)

두 번째 맵은 플레이어가 직접 E 키를 눌러 환경을 변화시키는 기능 위주로 구성했습니다.

  • E 상호작용 엘리베이터:
    • 단순 이동이 아니라, Box Collision 내부에 있을 때만 E 키 입력을 받도록 Enable Input을 활용했습니다.
    • Timeline과 Lerp를 결합해 아주 부드럽게 가속/감속하며 움직이는 엘리베이터를 완성했습니다.
    • 방어 코드: 엘리베이터가 움직이는 도중(Is Playing)에는 입력을 씹게(Ignore) 만들어 로직 꼬임을 방지했습니다.
     
  • 전망대 타워 디자인:
    • Modeling Mode의 Pipe 툴을 사용해 내부가 뚫린 원통형 전망대를 제작했습니다.
    • 유리 재질(Glass Material)을 적용해 전망대 특유의 개방감을 주었으며, 엘리베이터의 도착지를 이 전망대 높이에 맞췄습니다.
     

 


📝 오늘의 트러블슈팅 (Troubleshooting)

  1. 대각선 이동 오류: 엘리베이터 목적지 설정 시 X, Y값이 섞여 대각선으로 날아가는 현상을 확인했습니다. 목적지 벡터의 X, Y를 0으로 맞추거나 시작 위치의 X, Y를 고정해 해결했습니다.
  2. 재시작 후 조작 불능: 리플레이 시 게임 정지를 풀지 않거나 입력 모드를 돌려놓지 않으면 캐릭터가 굳어버립니다. Set Game Paused(False)와 Set Input Mode Game Only를 잊지 말아야 합니다.

🎯 마무리하며

장애물 맵에서는 **수학적 계산(벡터, 방향 반전)**을, 상호작용 맵에서는 **이벤트 흐름(입력 제어, 타임라인)**을 깊이 있게 다뤄볼 수 있었습니다. 다음 프로젝트에서는 이 기능들을 조합해 더 복잡한 퍼즐 요소를 넣어볼 계획입니다.