본문 바로가기

숙제

본 캠프 3일차 (숙제 : 게임을 더 재미있게 만들어보기)

숙제 설명

10분간 플레이할 수 있는 게임으로 만들기

  • 지금까지 학습한 내용을 바탕으로 플레이가 가능한 게임을 만들 수 있게 되었습니다.
  • 이번에는 이 게임을 조금 더 “게임같게” 만들어봅시다.
  • 내가 구현한 발판, 장애물, AI 캐릭터를 더 다양하게 직접 배치하여 난이도 높은 게임으로 만들어보세요!

필수숙제

  • 내 언리얼 게임 프로젝트에서 작업하던 레벨에 발판을 추가해주세요.
    1. 발판의 위치와 개수를 더 다양하게 배치하여 더 많은 발판을 밟아야 클리어 할 수 있도록 구성해보세요.
    2. 추가한 동작이 실제로 동작하는지 시뮬레이션을 통해 확인하며 변경해보세요.
  • 내 언리얼 게임 프로젝트에서 작업하던 레벨에 장애물을 추가해주세요.
    1. “장애물을 이쯤 넣으면 게임의 난이도가 올라가겠지..?” 를 생각하며 장애물을 추가합니다.
    2. 너무 많은 장애물은 오히려 게임을 피곤하게 만들겠죠? 적절하게 배치해봅시다.
  • 내 언리얼 게임 프로젝트에서 작업하던 레벨에 AI 캐릭터를 추가해주세요.
    1. AI 캐릭터를 더 배치하는 것으로 발판에 오르는 것과 동시에 적에게서 벗어나는 챌린지를 줄 수 있습니다.
    2. AI 캐릭터도 너무 많으면 게임이 어려워지니 시뮬레이션으로 적절하게 조절해보세요.

목표 : 쫓아오는 AI를 피해 발판을 옮겨가며 생존하는 게임을 만들기.

발판은 시간이 지남에 따라 캐릭터의 주변에 랜덤한 위치, 회전 값을 가지고 생성된다.

BP_DownCube(발판)

발판은 스태틱 메시를 이용했고 콜리전 박스를 위에 배치하여 밟으면 아래로 내려가고 맵에서 안보이면 파괴되도록 구현했다.

그리고 안에 큐브 스태틱 메시를 넣어서 발판이 소환될 때 AI가 파괴되도록 구현했다.

발판 내부의 큐브 스태틱 메시(AI 파괴용)
타임라인 노드와 Lerp, Set Actor Location을 이용하여 캐릭터가 콜리전에 겹쳐지면 발판이 아래로 내려가는 로직을 구현함.
내려가다가 Location의 Z값이 -500이 되면(시야에서 안보이면) 발판이 파괴됨.

BP_Character(플레이어 캐릭터)

캐릭터에 시간이 지나면 주위에 랜덤한 위치에 랜덤한 회전값을 가진 발판을 소환되게 구현했다.(발판의 최대 개수는 15개)

Branch 조건에 And 노드를 사용하여 타이머가 0이하, 큐브 개수가 15 미만일 때 발판이 소환되도록 구현함.
발판이 소환 될 때 공중에 소환되지 않도록 Z값(높이)은 고정된 수치를 입력하고 회전값을 랜덤한 값을 받아서 발판을 회전시켜서 소환했다.

BP_AICharacter

AI의 이동로직은 강의에서 배운 그대로 사용하고 캐릭터에 닿으면 캐릭터가 쓰러지도록 구현했다.

결과