Ragdoll 이란?

레그돌은 본래 어린이들의 장난감을 일컫는다고 한다.

전통적으로 옷감이나 천등을 사용해서 어머니나 가족들이 아이들에게 인형을 만들어줬는데, 이를 레그돌이라고 한다.

게임에서의 Ragdoll 은 캐릭터의 몸 전체가 물리 엔진에 의해 움직인다는 의미를 담고있다.

대부분의 FPS나 RPG 게임들을 보면, 캐릭터가 죽을 때, 온 몸에 힘이 풀려 팔과 다리나 몸이 흐느적 거리는 것을 볼 수 있다.

이 같은 상태를 레그돌 상태라고 부른다.

레그돌 상태를 만드는 법

Physics Asset이 Skeletal Mesh에 제대로 붙어있는지 확인하자. 이것 때문에 1시간을 까먹었다.

기본적인 캐릭터 Skeletal Mesh Component가 존재하고, 스켈레탈 메시가 적용된 캐릭터가 있다면, Skeletal Mesh의 SetAllBodiesSimulatePhysics를 true로 바꿔주기만 하면 된다. 그리고 가능하면 Collision Preset 이름을 Ragdoll로 바꿔두는 것이 좋다.

void ATESTCharacter::DoRagdoll()
{
	GetMesh()->SetCollisionProfileName("Ragdoll");
	GetMesh()->SetSimulatePhysics(true);
}

F키를 누르면 레그돌 상태로 진입하게 바꿔 두었다. 결과는 이렇다.

재밌당 ㅋㅋㅋㅋㅋ