내일배움캠프/TIL

TIL260415-260416

옆집히드라 2026. 4. 16. 22:22
사전캠프 프로젝트는 개인학습 아래에 있습니다.

개인학습

Hit vs Overlap(코드상에서도 실행 가능) 다름

Remove from Parent vs Destroy 전자는 뷰포트에서 제거

 

collision Channel

  • Object Channels: WorldStatic, WorldDynamic, Pawn, Vehicle etc
  • Trace Channels: Visibility, Camera etc; 레이캐스트 용도로 쓰이는 채널
  • Project Settings-Engine-Collision에서 사용자가 원하는 충돌 규칙을 추가로 정의 가능

 

사전캠프 프로젝트 개요

전체 맵 전경

사전 캠프 퀘스트로 움직이는 장애물을 피해 Goal에 도달하는 게임을 구상했다.

 

이때 온리업이라는 게임의 레벨 디자인이 기억에 남아서 Goal을 상층에 두고 장애물을 피해 상층으로 올라가도록 전체 스테이지를 구성했다.

 

게임 내 오브젝트(액터)는 총 5가지 종류가 존재한다.

  • Platform: 파란색으로 표시되었으며 평범한 벽 또는 발판이다.
  • JumpPlatform: 회색으로 표시되었으며 플레이어가 충돌 시 점프키를 연속해서 누르면 위로 빠르게 상승할 수 있다.
  • SpinObstacle: 원뿔을 길게 늘린 방해물로 회전한다. 플레이어는 충돌 시 사망한다.
  • CubeObstacle: 육면체 큐브로 주기를 가지고 왕복한다. 플레이어는 충돌 시 사망한다.
  • Goal: 노란색 공 오브젝트로 플레이어와 충돌 시 게임에 클리어한다.

블루프린트

캐릭터 블루프린트

위 이미지는 플레이어에 작성한 블루프린트 예시다. 이동과 점프 구현은 ThirdPersonProject 템플릿 그대로 사용했다. 여기서는 사망과 게임 클리어 시 호출되는 함수와 벽점프 구현과 관련된 블루프린트가 추가되었다.

플레이어의 콜리전 타입을 래그돌로 구성하고 사망 시 컨트롤러 제어를 반환하며 콜리전 판정을 껐다.

 

액터 블루프린트

위 이미지는 액터에 사용된 블루프린트다. 각각 SpinObstacle, CubeObstacle, Goal 오브젝트에 사용되었다. 여기서 CubeObstacle는 주기를 가진 sin 함수를 이용하여 구현했다.

레벨 블루 프린트

위는 레벨 블루 프린트에 구현된 블루프린트이다. 플레이어의 죽음을 체크하여 R키로 리스타트 할 수 있게 했다.

UI 함수

위는 UI와 관련된 함수 블루프린트이다. AddUI에서 Widget을 UserWidget의 부모 클래스로 받게하여 캐스팅 후 사용하게 했다. Dead, Clear, Restart에 대응하는 UI는 위 블루 프린트에서 클래스만 변경하는 것으로 재활용 가능하다.

실제 플레이 영상

Recording 2026-04-17 142533.mp4
17.69MB

 

초회 플레이는 정석대로 진행하다가 마지막 구간에서 장애물에 부딪혔다. 이후 2회차는 벽점프가 가능한 벽을 이용해서 순식간에 고층으로 올라가서 Goal에 도달하여 클리어하는 플레이 영상이다.

Recording 2026-04-17 145703.mp4
5.48MB

 

위 영상은 벽점을 최대한 활용하여 Goal에 도달하여 클리어하는 플레이 영상이다.

'내일배움캠프 > TIL' 카테고리의 다른 글

TIL260421  (0) 2026.04.21
TIL260420 - Unreal  (0) 2026.04.20
TIL260415  (0) 2026.04.14
TIL260414  (1) 2026.04.14
TIL260413  (0) 2026.04.13