728x90
반응형
- 개요
래그돌은 캐릭터의 신체 부위에 Collider와 Rigidbody를 적용하여 물리 연산의 영향을 받도록 하는 시스템이다
래그돌을 사용하면 캐릭터의 사실적인 움직임을 표현할 수 있다
1) 래그돌 설정 방법

GameObject 패널 - 3D Object - Ragdoll 패널에서 래그돌을 생성할 수 있다

Ragdoll 패널을 선택하면 래그돌을 생성할 수 있는 Ragdoll Builder가 나타나는데,
Advanced Bone Setup 패널에서 각각의 신체 부위에 맞는 본을 드래그 앤 드랍하여 래그돌을 매핑한다
- Pelvis (Root) : 캐릭터의 중심이 되는 골반 본
- Left/Right Hips : 허벅지 시작 부분
- Left/Right Knee : 종아리 부분
- Left/Right Arm : 상완(위 팔) 부분
- Left/Right Elbow : 하완(아래 팔) 부분
- Middle Spine : 척추 중간 부분
- Head : 머리 본

Ragdoll Builder 패널에서 설정할 수 있는 속성들은 위와 같다
- Total Mass 속성 : 전체 래그돌의 무게 합계 + 각 부위별 Rigidibody의 밀도에 따라 자동 분배
- Strength 속성 : 래그돌의 각 Bone을 연결하는 Character Joint의 강도를 정의 + 낮을수록 흐물거리는 래그돌
- Flip Forward Axis 속성 : 래그돌이 생성될 때 캐릭터의 앞쪽 방향을 180도 뒤집을지 여부를 결정

래그돌이 생성되면 래그돌에 관련된 설정을 수행하는 Character Joint 컴포넌트가 캐릭터 메쉬에 생성된다
해당 컴포넌트를 포함하여 다른 컴포넌트에서 설정할 수 있는 사항은 다음과 같다
- Character Joint 컴포넌트 - Edit Angular Limits 설정 : Joint의 회전 제한 범위를 시각적 기즈모를 통해 수정
- Collider 컴포넌트 수정 : 캐릭터 체형에 맞게 생성된 캡슐 Collider의 크기나 중심점 변경
- 해당 수정을 통해 Collider끼리 겹치지 않도록 설정할 수 있음
- Animator 컴포넌트 비활성화 : 래그돌이 작동하려면 반드시 Animator 컴포넌트를 꺼야 물리 연산이 우선 적용됨
2) 래그돌 적용 방식
생성한 래그돌을 적용하는 방식은 크게 2가지로 구분할 수 있다
- 1) 드래그 앤 드롭을 통한 직접 부착 방식
- 장점 : 설정이 매우 간단함
- 단점 : 평상시에도 물리 연산 비용이 발생하여 성능에 부담을 줄 수 있음
- 2) 래그돌 프리팹을 사용한 방식
- 장점 : 성능 최적화에 매우 유리함
- 단점 : 필요한 애니메이션의 포즈와 래그돌의 포즈를 맞추기 위한 로직 필요
3) 래그돌 사용 팁
3 - 1) 재귀 함수를 이용한 원본 캐릭터의 Bone과 래그돌 동기화

위와 같이 재귀 함수를 사용하여 원본 캐릭터의 Bone의 Transform과 래그돌의 Transform을 일치시킬 수 있다
3 - 2) 재귀 함수를 이용한 효과별 래그돌 적용

위와 같이 재귀 함수를 사용하여 원본 캐릭터의 모든 신체 부위의 리지드바디를 순회하며
특정 지점으로부터 물리적인 힘을 가하여 래그돌을 적용할 수 있다
728x90
반응형
'유니티 엔진 > 유니티 엔진의 구성' 카테고리의 다른 글
| 유니티 엔진의 구성 - 40) JSON과 JsonUtility (0) | 2026.05.04 |
|---|---|
| 유니티 엔진의 구성 - 39) NullReferenceException 예외 해결 (0) | 2026.04.28 |
| 유니티 엔진의 구성 - 37) UI / Effects (0) | 2026.04.22 |
| 유니티 엔진의 구성 - 번외) WebRequests 클래스 (0) | 2026.04.20 |
| 유니티 엔진의 구성 - 36) Image 컴포넌트 VS RawImage 컴포넌트 + Sprite 타입 VS Texture 타입 (0) | 2026.04.01 |