티스토리 뷰
🟧 Keep : 유지해야 할 성과
🟦 데이터 기반 무기 확장 시스템 설계
FWeaponStat 구조체를 설계하고 데이터 테이블을 연동하여 코드 수정 없이 무기를 확장하는 체계를 구축하였다. PelletCount 루프를 통해 단일 컴포넌트에서 권총부터 샷건까지 통합 처리한 점은 매우 효율적인 설계였다.
🟦 쿼터뷰 최적화 및 조준 로직 분리
캐릭터 본체의 회전(Body)과 탄환의 사격 벡터(Muzzle)를 물리적으로 분리하여 쌍권총 발사 시의 카메라 흔들림을 해결하였다. Z축 수평 보정 로직을 적용하여 쿼터뷰 환경에서 발생하는 조준 오차를 최소화하였다.
🟦 모듈화된 사격 로직 및 입력 예약 시스템
사격 로직을 CanFire, GetFireDirection, ProcessHit 등으로 부품화하여 코드 가독성과 유지보수성을 높였다. 수류탄 투척 중 사격 버튼을 누르면 애니메이션 종료 즉시 사격이 시작되는 입력 예약 기능을 구현하여 조작의 연속성을 확보하였다.
🟧 Problem & Solution : 문제와 해결
🟦 발사체 자가 충돌 문제
어깨 런처에서 발사된 수류탄이 플레이어 충돌체와 겹쳐 생성 즉시 폭발하는 버그가 발생하였다. 이를 해결하기 위해 물리 엔진 API인 IgnoreActorWhenMoving을 활용하여 주인 캐릭터를 물리적으로 무시하도록 설정하고 전방 오프셋을 추가하였다.
🟦 레벨 전환 시 데이터 유실
OpenLevel 실행 시 점수와 무기별 잔탄수가 초기화되는 문제를 확인하였다. 이를 해결하기 위해 GameInstance에 TMap<FName, int32> 형태의 저장소를 구현하여 스테이지 전환 시에도 데이터를 안전하게 캐싱하고 복구하도록 조치하였다.
🟦 이펙트 잔상 및 파라미터 불일치
Tracer 이펙트가 타겟 지점에 닿지 않거나 공중에 남는 현상이 있었다. Emitter Duration 설정값을 0.03으로 축소하여 잔상을 제거하고 Target Absolute 옵션을 통해 빔의 끝점을 목표물에 정확히 고정하였다.
🟧 Try : 향후 도전 과제
🟦 비동기 에셋 로딩(TSoftObjectPtr) 도입
현재 무기 데이터 테이블이 하드 레퍼런스 구조로 되어 있어 무기 교체 시 미세한 히치(Hitch)가 발생할 가능성이 존재한다. 이를 개선하기 위해 TSoftObjectPtr와 StreamableManager를 활용한 비동기 로딩 시스템을 구축하여 메모리 점유율을 최적화하고 심리스한 무기 교체를 구현하고자 한다.
🟦 나이아가라(Niagara) 기반 고도화 이펙트 구현
현재 적용된 Cascade 시스템의 한계를 넘어 Niagara를 활용한 고급 탄환 궤적 연출을 시도한다. 특히 탄환의 속도에 따라 동적으로 변하는 Ribbon 트레일과 피격 시 적의 물리 상태에 반응하는 파티클 시스템을 구축하여 타격감을 극대화한다.
🟦 실시간 무기 강화 및 모딩(Modding) 시스템
데이터 테이블의 정적 스탯을 넘어, 게임 진행 중 획득한 아이템에 따라 무기 스탯을 실시간으로 변조하는 Decorator 패턴 기반의 강화 시스템을 설계한다. 이를 통해 사거리 증가, 탄퍼짐 감소 등 플레이어의 선택에 따라 무기 성능이 진화하는 재미를 제공한다.
🟧 Feel : 기술적 성찰
단순히 '총알이 나가는 기능'을 만드는 단계를 넘어, 물리 엔진과 데이터 흐름을 제어하는 시스템 아키텍처의 중요성을 뼈저리게 느끼고, 포인터 하나를 다룰 때도 IsValid로 방어 코드를 작성하고 로직을 모듈화하는 습관이 디버깅 시간을 얼마나 비약적으로 단축해 주는지 확인하였다. 또한, 기획팀의 요구에 즉각 대응할 수 있는 데이터 중심 설계가 프로젝트 전체의 생산성에 얼마나 큰 기여를 하는지 깨달았다.
'내일배움캠프 Unreal_7기 > 본캠프' 카테고리의 다른 글
| 서버의 종류와 데디케이티드 서버 (1) | 2026.03.18 |
|---|---|
| 이동 입력 차단 버그 분석 및 AnimNotify 기반 상태 복구 설계 (0) | 2026.03.09 |
| [CH 3] 팀프로젝트 - 애니메이션 상하체 분리 및 사격 예약 시스템 고도화 (0) | 2026.02.27 |
| [CH 3] 팀프로젝트 - 파티클 트러블슈팅과 무기 로직 모듈화 (0) | 2026.02.24 |
| [CH 3] 팀프로젝트 - 수류탄 데칼 시스템 디버깅 및 발사 효과 구현 (0) | 2026.02.23 |

