이것 저것 개발하고 만들어보기
article thumbnail

 

 

 

 

 

 

리깅은 본 이라는 오브젝트에 의해서 버텍스가 제어되기 때문에 다수의 버텍스를 효율적으로 리깅하기 위해서는 다수의 버텍스의 상태를 한눈에 보는것이 중요합니다.

 

 

또한 다수의 버텍스가 여러 본에 얽히는 만큼 웨이트를 효율적으로 관리하기 위해 버텍스를 나눠주기 위한 그룹화도 매우 중요합니다.

 

 

이번에는 본에 의해 제어되는 버텍스를 보다 직관적으로 보고 버텍스 그룹을 효과적으로 관리하는 방법에 대해 알아보려 합니다.

 

 

 

 

 

2022.08.03 - [Blender/Blender Rigging] - [Blender] Rigging.02 Weights

 

[Blender] Rigging.02 Weights

Bone으로 오브젝트를 효과적으로 움직이게 하기 위해선 Weighs 작업이 필수입니다. 애니메이션을 하기 위해 영역을 지정해 오브젝트의 요소를 움직이게 해주는 Weights에 대해서 알아보려고 합니다.

tintana4168.tistory.com

 

 

 

이번 포스팅은 이전에 작성했던 Weights 다뤘던 버텍스 그룹에 관한 좀더 세부적인 내용을 다룹니다. 

 

 

 

Zero Weights

 

 

 

 

 

 

제로 웨이트(Zero Weight) 는 본에 제어 될 버텍스에 웨이트가 할당 될 때, 웨이트가 0일때를 뜻합니다.

 

 

다른 본이 움직여 해당 웨이트값을 움직이는것이 아니라면, 기본적으로 웨이트값이 0인 버텍스는 본의 위치나 회전이 바뀌어도 움직이지 않게 됩니다.

 

 

웨이트 페인트 모드일 때, Show Overlays - Weight Paint - Zero Weights 에서 Active 메뉴를 활성화 하면, 해당 본에서 웨이트가 0인 버텍스를 검게 보여줍니다.

 

 

 

 

 

 

 

 

Bone003에 의해 제어되는 버텍스들은 본의 회전에 따라서 잘 따라가는 모습을 보여주지만, 오브젝트의 중간 부분의 웨이트가 0인 부분은 아무런 변화가 없습니다.

 

 

위 사진을 통해 알 수 있는 점은 Bone003이 회전함에 따라 색깔이 들어간 버텍스들 사이의 버텍스는 반응하지 않지만, 오브젝트 위쪽 검은 부분은 본의 움직임에 따라 반응한다는 것 입니다.

 

 

 

 

 

 

 

 

이는 검게 표현된 버텍스들이 다른 본에 할당되어 있지만, 해당 본에는 할당되지 않은 버텍스도 검게 표현한다는 것을 알 수 있습니다.

 

 

웨이트값을 확인하기 위해 다른 본을 선택해 보았을 때, 어떤 차이가 있는지 위 사진을 통해서 알 수 있습니다.

 

 

 

 

 

Zero Weight Delete

 

 

 

 

 

 

위 사진에서는 본에 할당된 버텍스 그룹을 선택했을 때 검게 표시된 버텍스도 선택되는것을 알 수 있습니다.

 

 

이를 통해 알 수 있는건 제로 웨이트로써 버텍스가 영향을 받지 않는 상태일때도 버텍스 그룹에서는 해당 버텍스가 본에 할당되어 있을 수도 있습니다.

 

 

이것이 왜 문제가 되냐면, Auto Normalize 체크하고 웨이트 페인팅을 하거나, 웨이트의 총합을 1로 맞춰주기 위해서 엉뚱한 버텍스에 웨이트가 할당 될 수 있기 때문입니다.

 

 

 

 

 

 

 

 

위 사진들의 흰색 버택스들은 현재 본에 할당된 버텍스 그룹들이며, 빨간 원에 표시된 웨이트값은 브러시에 Auto Normalize 기능을 키거나 웨이트를 평균값으로 맞춰 주었을 때 사진처럼 엉뚱한 곳에 웨이트가 할당 될 수 있습니다.

 

 

이렇듯 영향을 주면 안되는 곳에 버텍스가 할당되면 리깅에서 에러가 생길 수 있음으로 제로 웨이트를 찾아 버텍스 그룹을 해제시켜주는 것이 매우 중요합니다.

 

 

 

 

 

 

 

 

뷰포트 상단 메뉴 Weights 에서 Clean 메뉴를 통해 제로 웨이트가 적용된 버텍스 그룹 할당을 해제시켜 줄 수 있습니다.

 

 

 

 

 

 

 

 

메뉴를 클릭하고 나면 좌측 하단에 메뉴가 나타나는데, 이 메뉴를 통해 세부 삭제 옵션을 지정해 줄 수 있습니다.

 

 

Limit는 0~1 사이의 웨이트값 중 해당 숫자보다 낮은 웨이트를 일괄 해제하며, Subset 메뉴에서는 그룹화된 타입을 지정해 해제시켜줄 수 있습니다.

 

 

 

 

 

 

 

 

이후 해당 그룹의 버텍스를 셀렉트 하면 제로 웨이트에 해당됐던 버텍스들이 그룹해제 된 것을 알 수 있습니다.

 

 

 

 

 

 

 

이렇듯 버텍스 웨이트를 효과적으로 관리해 주기 위해서는 이러한 그룹 관리가 매우 중요합니다.

 

 

사용하지 않는 버텍스는 그때그때 할당을 해제해 주어, 좀더 효율적인 스키닝 작업을 기대할 수 있습니다.

profile

이것 저것 개발하고 만들어보기

@Tintana'k