1. 문제 상황 (The Problem)
- 현상: 공격 애니메이션 시 노티파이를 통해 무기 콜리젼을 QueryOnly로 켰음에도 불구하고, 몬스터와의 오버랩(Overlap) 이벤트가 전혀 발생하지 않음.
- 특이사항: 에디터에서 처음부터 콜리젼을 켜두면 잘 작동하지만, NoCollision으로 시작하면 코드로 켜도 반응이 없음.
2. 핵심 원인 분석 (Technical Insight)
언리얼 엔진의 물리 시스템은 성능 최적화를 위해 '규칙(Rule)'과 '상태(State)'를 엄격히 구분합니다.
- 에디터 설정의 함정: 프리셋을 NoCollision으로 설정하면, 엔진은 "이 물체는 물리 연산이 필요 없다"고 판단하여 오버랩 감지를 위한 내부 데이터를 아예 로드하지 않거나 물리 업데이트 목록에서 제외합니다.
- 런타임 제어의 한계: 게임 도중에 코드로 상태를 QueryOnly로 바꿔도, 이미 초기화 단계에서 '무시'된 데이터 구조가 즉시 갱신되지 않아 감지가 안 된 것입니다.
3. 최종 해결 방법 (The Solution)
작성하신 대로 다음의 단계를 거치는 것이 가장 표준적이고 안전한 방식입니다.
- 에디터 설정 (규칙 확립):
- 콜리젼 프리셋을 Weapon으로 설정합니다. (Pawn 채널을 Overlap 하겠다는 규칙을 물리 엔진에 미리 등록)
- Generate Overlap Events 체크박스를 반드시 켭니다.
- C++ 초기화 (상태 잠금):
- BeginPlay에서 WeaponCollision->SetCollisionEnabled(ECollisionEnabled::NoCollision);을 호출합니다. (규칙은 유지하되 상태만 꺼둠)
- 애니메이션 노티파이 (실행):
- 공격 순간에만 QueryOnly로 전환하여 판정을 시작합니다.
'언리얼엔진5 공부' 카테고리의 다른 글
| [TIL]UE 5 '신의 심판' 스킬 시스템 구현 (0) | 2026.02.20 |
|---|---|
| [TIL] UE 5 스킬 시스템 핵심 로직 - 스왑 및 장착 메커니즘 (0) | 2026.02.10 |
| [TIL] UE5 컴포넌트 기반 스킬/아이템 슬롯 시스템 설계 및 구현 (1) | 2026.02.05 |
| [TIL] Unreal Engine 5: 동적 록온 시스템 및 적응형 카메라 연출 (2) | 2026.02.04 |
| [TIL] UE5 C++: 캐릭터 강제 이동 및 회전 시스템 구현 (애니메이션 동기화 및 물리적 궤도 이탈 해결) (1) | 2026.02.04 |