언리얼엔진5 공부

데미지 플로팅 (Damage Floating) 구현

Client Side 2025. 12. 22. 23:49

1. 구현 개요

  • 현재 개발 중인 'AFO(Arena Fighters Online)' 프로젝트에서 타격감을 극대화하기 위해, 공격 성공 시 적의 머리 위에 데미지 수치가 뜨는 시스템을 구현했다.

2. 기술적 구현 내용

  • UI 위젯 구성: UserWidget을 상속받아 데미지 수치를 표시할 텍스트와 서서히 위로 올라가며 사라지는 애니메이션을 제작했다. 이를 캐릭터의 Widget Component와 연동하여 월드 공간에 표시한다.
  • 네트워크 동기화 (Multiplayer):
    • 데미지 판정은 서버에서 엄격하게 처리한다.
    • 서버에서 계산된 데미지 값을 NetMulticast RPC를 통해 모든 클라이언트에게 전달하여, 모든 플레이어가 타격 효과를 동시에 볼 수 있도록 설계했다.
  • 성능 최적화 (Object Pooling): 전투 시 수많은 데미지 텍스트가 빈번하게 생성되고 소멸되는 과정은 CPU 부하를 일으킬 수 있다. 따라서 메모리 할당과 해제 비용을 줄이기 위해 '오브젝트 풀링' 방식을 도입하여 미리 생성된 위젯을 재사용하도록 구조를 잡았다.

3. 발전 방향

  • 크리티컬 히트 시에는 폰트의 색상이나 크기를 다르게 하여 시각적인 차별화를 주고, 네트워크 레이턴시가 발생해도 어색하지 않도록 연출적인 보완이 필요할 것 같다.