2025-05-15 TIL

알고리즘 문제

오늘 풀어본 알고리즘 문제는 자료구조를 선택하는 것과 어떤 알고리즘을 구현할지에 대한 어려움이 있었습니다.
자료구조의 선택은 결국 직접 답을 찾지 못해서 다른 사람들이 구현한 방법들을 살펴보았고, 찾아낸 자료구조에서 알고리즘은 최대한 직접 구현해보았습니다.
문제를 맞추긴 했지만 완전히 제가 풀어낸 것은 아니기 때문에 다음에 다시 한번 풀어볼 필요가 있을 것 같습니다.
3레벨 문제도 어렵다라고 느껴지지만 연습하고 풀어보다보면 어느정도 풀어낼 수는 있을 것 같습니다.
[프로그래머스][C++] 베스트앨범

최종 프로젝트

최종 프로젝트에서 무기의 슬롯 개념을 구현했습니다.

추가로 구한 애셋에서 4k 텍스쳐를 사용하는데, 이 텍스쳐를 최적화 할 수 있는 방법에 대해서 알아보았습니다.

무기 슬롯 개념

무기 슬롯이라는 개념으로, 플레이어 캐릭터가 무기로 2개 가지고있을 수 있도록 구현했습니다.

  • 1번 무기를 들고 있을 경우 2번 슬롯을 선택했을 때 2번 슬롯의 무기로 전환되도록 했습니다.
  • 무기가 하나도 없을 때 무기를 획득하면 1번 슬롯부터 무기가 추가됩니다.
    • 이때, 무기를 바로 들지 않습니다.
  • 1번 무기를 들고 있을 때 해당 무기를 버린다면, 맨손이 됩니다.

  • 무기 슬롯은 TArray를 사용했습니다.
  • enum class를 사용해 현재 사용 중인 무기에 대한 정보를 저장할 수 있도록 했습니다.
  • 함수에 무기 액터를 전달하면 슬롯에 저장될 수 있도록 구현했습니다.
    • EquipWeaponToSlot 라는 함수명을 가집니다.
  • 함수에 무기 슬롯에 대한 값이 전달되면, 해당 값으로 캐릭터가 무기를 전환할 수 있도록 구현했습니다.
    • EquipWeaponToCharacter 라는 함수명을 가집니다.

현재, 무기를 전환할 때 애니메이션과 UI에 대한 작업은 진행하지 않았습니다.

구현하기 전에 구조에 대한 부분이 좀 고민이 됐는데, 프로토타입을 제작하는 중에서 구조에 대해 크게 고민하는 것은 의미가 없다고 생각해서 빠르게 구현해보았습니다.

4K 텍스쳐

4K 텍스쳐는 메시의 퀄리티를 높아보이게 해주지만, 다음과 같은 단점들이 있다고 합니다.

  • 텍스쳐의 메모리가 크다면 GPU메모리 영역에 부담이 가고, 메모리를 과도하게 사용한다면 CPU와 GPU간에 데이터가 이동하면서 충돌이 발생할 수 있게된다고 합니다.
  • 언리얼 엔진에서 4k 텍스쳐는 머티리얼에서 불러오거나 그려질 때 로딩 시간이 길어질 수 있습니다.

이를 위한 해결 방법으로 다음과 같은 방법을 알게되었습니다.

  • 텍스쳐의 LOD설정으로 Mipmap을 조정하여 퀄리티를 낮춘다.
  • 이미지의 사이즈 자체를 줄인다.

4K 텍스쳐의 경우 일반적으로 최적화 할 때 2K로 사용한다고 합니다.

이외에 텍스쳐를 추가적으로 최적화 하는 방법으로는 Compress Without Alpha를 사용해서 최적화 할 수 있다고 합니다.

현재 팀에 아트적인 부분을 총괄하시는 부분이 있기 때문에 그분께 4K의 텍스쳐를 최적화 할 수 있도록 부탁드렸습니다.

Date:     Updated:

카테고리:

태그:

TIL 카테고리 내 다른 글 보러가기

댓글남기기