1. 구현 개요
- 현재 개발 중인 'AFO(Arena Fighters Online)' 프로젝트에서 타격감을 극대화하기 위해, 공격 성공 시 적의 머리 위에 데미지 수치가 뜨는 시스템을 구현했다.
2. 기술적 구현 내용
- UI 위젯 구성: UserWidget을 상속받아 데미지 수치를 표시할 텍스트와 서서히 위로 올라가며 사라지는 애니메이션을 제작했다. 이를 캐릭터의 Widget Component와 연동하여 월드 공간에 표시한다.
- 네트워크 동기화 (Multiplayer):
- 데미지 판정은 서버에서 엄격하게 처리한다.
- 서버에서 계산된 데미지 값을 NetMulticast RPC를 통해 모든 클라이언트에게 전달하여, 모든 플레이어가 타격 효과를 동시에 볼 수 있도록 설계했다.
- 성능 최적화 (Object Pooling): 전투 시 수많은 데미지 텍스트가 빈번하게 생성되고 소멸되는 과정은 CPU 부하를 일으킬 수 있다. 따라서 메모리 할당과 해제 비용을 줄이기 위해 '오브젝트 풀링' 방식을 도입하여 미리 생성된 위젯을 재사용하도록 구조를 잡았다.
3. 발전 방향
- 크리티컬 히트 시에는 폰트의 색상이나 크기를 다르게 하여 시각적인 차별화를 주고, 네트워크 레이턴시가 발생해도 어색하지 않도록 연출적인 보완이 필요할 것 같다.
'언리얼엔진5 공부' 카테고리의 다른 글
| TIL: Unreal Engine 5 멀티플레이 킬 로그 시스템 구현 (0) | 2025.12.24 |
|---|---|
| [25.12.06 TIL] 언리얼 엔진 5 멀티플레이어 환경에서의 HUD 위젯 동기화 및 C++ 바인딩 (0) | 2025.12.23 |
| 리팩터링 (Refactoring) (0) | 2025.12.19 |
| 2025-12-18 TIL: 멀티플레이어 게임 UI 시스템 및 리스폰 로직 구현 (0) | 2025.12.18 |
| Unreal Engine: 객체지향 설계의 핵심, Actor Component (0) | 2025.12.17 |