[MyCraft] 0406, 0407 - Map building

김훈래·2024년 4월 8일

UE5_[MyCraft]

목록 보기
8/9
post-thumbnail

Fix: Place block when right click- wrong location placement issue

  • 블록의 Static mesh가 얇아서 Impact point가 이미 설치되어 있는 블록의 위치로 조정되는 이슈

  • Character Forward Vector에 -1을 곱한 값을 impact point에 더해서 impact point를 플레이어쪽으로 약간 당겨 와서 해결

  • 해결하는데 1시간 정도 소요

Feat: Map Generation

  • 자면서 생각해 봤을 때 아무래도 Voxel은 블록 하나 단위로 두거나 파괴하기가 너무 힘들 것 같음

  • 최적화 방법론을 찾다 보니 여러 액터를 하나의 스태틱 메시로 만들어 배치하고 일정 거리 내의 스태틱 메시만 다시 블록 액터로 변환시키는 방법이 가능할 듯하여 시도

  • 스태틱 메시에서 피봇 위치를 바꾸고 BP를 만들 수 있음! 기존 BP_Block_Placed 블록의 6면 큐브들을 Merge하여 하나의 Static mesh component로 만들고 피봇 위치를 0,0,0으로 변경한 뒤 BP를 만들고 로직 복사하여 생성, 더이상 큐브 크기의 절반만큼 +/-하여 배치하지 않아도 됨

  • Platform 생성, 8*8 크기의 BP_Block_Placed를 합친 static mesh, BP_Platform 생성, SM_Platform을 사용하여 만든 블루프린트, 플레이어와 위치가 가까워질 경우 블록으로 변경, 멀어질 경우 블록들을 다시 스태틱 메시로 변경하는 방법도 있다함

  • 합친 SM 도입 -> 6개의 큐브 SM을 하나의 SM으로 대체, 넓은 플랫폼 도입 -> 64개의 SM을 하나의 SM으로 대체로 최적화 시도

  • 합친 SM 도입 만으로도 8000개 액터 수에도 프레임 드랍이 없음, 더 좋은 최적화를 위해 레벨 스트리밍 등을 시도해 볼 수 있겠지만 우선 플랫폼과 SM 기반 최적화로 맵 구현하는것과 NPC 생성을 우선해야함

  • 방법 서칭 및 구현에 0406 6시간 0407 1시간 총 7시간 정도 소요

  • 1차 기본 환경 생성 완료, 1시간 정도 소요 / 유리, 나무 계단 블록 추가 1시간 정도 소요

  • 나중에 만들 것: 문, 토치, 집 빠르게 만들고 NPC 구현 진행

  • 집, 나무 추가

  • 보행로, 밭 추가

  • 풀, 꽃 추가 (퀵셀 에셋 활용 폴리지 브러시로 빠르게 생성하려 했지만 왠지 폴리지가 땅을 인식하지 못해서 땅 블록의 collision을 BlockAllDynamics -> Default로 변경하여 해결)

  • 맵 구현 완료, 3시간 정도 추가 소요

0개의 댓글