NPC의 애니메이션이나 회전에 의해 상호작용 판정이 불안정해지는 현상을 해결한 코드입니다. 충돌체(Capsule)를 QueryOnly로 설정하여 물리적인 밀림 현상(Physics Interaction)을 제거하고, 판정 전용 컴포넌트를 분리하여 안정적인 상호작용 환경을 구축했습니다.
//NPC.cpp
void ANPC::SetupCollisionForMovingNPC()
{
//NPC 이동/회전 시 상호작용 판정이 튀는 현상 방지
UCapsuleComponent* Capsule = GetCapsuleComponent();
UCharacterMovementComponent* MoveComp = GetCharacterMovement();
//캡슐 컴포넌트 설정: 명확한 충돌 판정(Query)을 위해 캡슐 사용
Capsule->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
Capsule->SetCollisionResponseToAllChannels(ECR_Block);
Capsule->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap); //플레이어와는 겹치도록(밀림 방지)
//물리 연산 최소화: 불필요한 물리 간섭 제거
MoveComp->bUseRVOAvoidance = false; //AI 회피 연산 비활성화
MoveComp->bEnablePhysicsInteraction = false; //물리 충돌 비활성화
}