모델링에서 관절 웨이팅은 어렵다.
무릎도 마찬가진데
![7cf3c028e2f206a26d81f6e64f85776ec1](/api/file/54810303)
다리를 굽히게 되면 무릎 아래 메쉬가 무릎 위 메쉬를 뚫는 경우가 생긴다.
![7ff3c028e2f206a26d81f6ec4f847568](/api/file/54810304)
그나마 마누카는 굉장히 웨이팅이 잘 됐고 메쉬 구조도 괜찮아서 엄청 구부리지 않으면 괜찮은데
원래는 이런 느낌임
이를 해결하기 위해 모델링 하는 사람들은 2중 관절 기법을 사용한다.
적용 된 아바타들도 있을진 모르겠는데 우선 사진을 보자.
![7ef3c028e2f206a26d81f6e64582716c20](/api/file/54810305)
이는 2중 관절이 적용된 무릎의 모습이다.
![79f3c028e2f206a26d81f6e647817764ee](/api/file/54810306)
이는 2중 관절이 적용되지 않은 무릎의 모습이다.
![78f3c028e2f206a26d81f6e74781706897](/api/file/54810307)
앞모습은 이렇다. 우측이 2중관절
그래서 2중 관절이 뭔데?
![7bf3c028e2f206a26d81f6e74081726826](/api/file/54810308)
기존의 아바타는 하나의 관절만 존재한다. 이는 현실의 인간과도 맞지 않다.
![74f3c723e7c218986abce8954786736eaaac](/api/file/54810309)
참고) 인간 무릎 관절 실제 움직임
![7af3c028e2f206a26d81f6e74e837c6ad7](/api/file/54810310)
2중 관절은 윗 다리와 아랫다리 사이에 본이 하나 더 추가된 형태다(사진의 2번 본)
1번 본은 여전히 윗다리랑 부모 - 자식 관계를 유지한다.
2번 본도 윗다리와 부모 - 자식 관계를 유지한다.
계층으로 표현하면 이렇다.
![75f3c028e2f206a26d81f6e7408771](/api/file/54810311)
윗다리 본
ㄴ2번 본
ㄴ3번 본
ㄴ아랫다리 본
![75f3c723e7c218986abce89540817d6e86ef](/api/file/54810312)
작동 원리는 다음과 같다.
1. 아랫다리가 회전하면 2번 본은 그 절반만큼 회전한다.
2. 아랫다리는 3번본의 위치를 따라간다. (본에는 길이가 없으나 이해하기 쉽게 3번 본의 머리)
블렌더에서는 포즈모드에서 제약 조건이란 것을 통해 구현할 수 있고
유니티에서는 position constraint와 rotation constraint로 구현 할 수 있다.
즉, 1번 본에는 position constraint를 두고 3번 본을 따라가게 하고
2번 본에는 rotation constraint를 둬서 1번 본의 회전의 절반(0.5) 만큼 따라하게 만들면 된다.
계층 구조가 바뀌지 않기 때문에 풀트해도 문제 없이 잘 된다. (내가 해봄)