GameDevelop/UnrealEngine

UnrealEngine 5.4 - 랙돌 적용, 랙돌 적용 시 바닥 뚫음 현상

Une_ 2026. 3. 10. 23:52

 

랙돌 적용

몬스터가 죽을 때 랙돌 기능을 적용하여 타격감을 살리고자 한다.

랙돌 적용 자체는 아주 간단했다.

 

적용하고 싶은 시점에 아래 코드를 호출하면 된다.

GetMesh()->SetCollisionProfileName(TEXT("Ragdoll"));
GetMesh()->SetSimulatePhysics(true)

콜리전 프로필을 언리얼에서 제공하는 Ragdoll 프로필로 변경 후

피직스를 켜주면 바로 흐느적거린다.

 

단, 아래와 같은 조건이 적용되어 있어야 동작을 할 것이다.

스켈레탈 메시에 피직스 애셋이 적용되어 있어야 한다.

피직스 애셋의 PhysicsType이 Kinematic이 아니어야 한다.

 

잘 적용되어있다면 피직스 애셋에서 시뮬레이트를 눌러 잘 흐느적거리는지 확인해보자.

 

랙돌 적용 시 바닥 뚫음 현상

나는 죽는 시점에 랙돌을 켜줬다.

그런데 랙돌을 켜니 자꾸 바닥을 뚫고 떨어지는 문제가 생겼다...

 

검색해봐도 나같은 문제가 발생하는 사람이 없었는데.. 당연했다.

죽을 때 부모 클래스에서 액터의 콜라이더를 끄는 코드가 있었는데, 복붙을 하다보니 뒤늦게야 발견했다.

아래는 문제의 코드.

SetActorEnableCollision(false);

 

충돌 비활성화를 한 상태에서 SetSimulatePhysics 을 실행함으로 인해

중력의 영향으로 바닥을 뚫고 떨어지는 문제가 생긴 것이였다.

 

액터 전체의 콜리전을 꺼버리면 메시 콜리전이 꺼지므로 랙돌을 적용할 수 없다.

캡슐만 꺼주기로 하자...

GetCapsuleComponent()->SetCollisionEnabled(ECollisionEnabled::NoCollision);

 

바보같은 실수이지만 가끔 이런 일이 생기곤 한다..

혹시나 같은 문제로 고민 중이라면 검색을 통해 도움이 될까 하여 올려본다.