[MyCraft] 0403 - UMG, UI, Save picked up block to quick slot

김훈래·2024년 4월 3일

UE5_[MyCraft]

목록 보기
5/9
post-thumbnail

Feat: UMG UI

  • UMG: Unreal Motion Graphics UI Designer

  • MyCraft에서 제작해야할 UI: 1~10번 아이템칸, 체력, 배고픔

1~10번 아이템칸


  • Number Input 관련 선택: 위 두 개 방법 중 나은 게 뭔지 모르겠음, 상단의 모든 키 입력에 대해 for each 문을 돌아야 해서 당연히 더 느릴 것 같긴 하지만, 하단의 방법은 각 키에 이벤트 리스너를 다는 것 같은데, 다른 부담이 생길 수도 있지 않을까? 우선 상단의 방법으로 구현하여 캐릭터의 변수에 현재 선택된 아이템의 인덱스를 저장함

  • 휠 업/다운 Input: 마인크래프트에선 휠로 아이템 선택을 변경할 수도 있어서 똑같이 구현, Input Action으로 구현할 수도 있지만 PC 환경이라 가정하고 빠르게 구현

  • 아이템칸 UI: Canvas panel에 아이템칸 역할을 수행할 Grid panel을 달고, 1~10개의 칸을 배치, Grid panel은 웹 개발 때 사용했던 display flex와 비슷한 듯, 각 칸에 블러된 뒷 배경을 넣어서 아무것도 없는 퀵슬롯을 똑같이 구현

  • 선택된 아이템칸 UI: 기본 아이템칸 위에 overlay를 배치, visibility를 다른 함수에 bind하여 특정 조건일 때만 해당 칸이 선택된 것으로 보이게 설정, 캐릭터의 Current_Item_Index가 해당 overlay의 인덱스와 일치할 경우에 Visibility를 Visible로, 불일치할 경우에 Hidden으로 설정하여 구현

체력, 배고픔

  • 체력이 닳거나 허기가 지는 기능 구현은 먼 미래의 일이 될 것 같아 우선 하트 10개 고기 10개 꽉 채워둬서 예뻐보이게 함

구현 결과

Feat: Save picked up block to quickslot

  • 블럭을 주우면 퀵슬롯에 등록되어야 함

  • 만들어 둔 UI의 배경 블러의 자식으로 이미지 위젯을 추가하고 비어 보이도록 색상을 투명하게 설정, 떨어진 블록을 먹었을 때 캐릭터 -> 퀵슬롯 위젯 -> 비어있는 슬롯들 중 제일 왼쪽의 슬롯 이미지 브러쉬를 먹은 블록 이미지로 설정

  • 먹은 블록이 차례대로 퀵 슬롯에 등록되는 것은 구현 완료, 번호 눌렀을 때 손에 들고 있는 블록 바뀌는 것 구현 필요

구현 결과

Future Work

  • 다른 블록 3가지 종류 추가 -> 퀵슬롯 번호 입력 시 해당 블록을 손에 들도록 변경 -> 블록 설치, 파괴 구현 -> 맵 구성 변경 -> PCG를 통한 블록/나무 생성

  • NPC 구현 -> ChatGPT API 연결

0개의 댓글