블렌더 리깅하기 02 : Weight
이전 장에서는 Single Bone을 생성하고 모델링에 연결하는 기본적인 리깅 과정을 살펴보았습니다. 이번 장에서는 리깅을 더 세밀하게 수정하기 위해 Weight 값을 조절하는 두 가지 방법에 대해 알아보겠습니다.
보통 웨이트 페인트 (Weight Paint)에서는 브러쉬를 사용하는 리깅을 많이 활용하는데요, 이번 장에서는 브러쉬를 통한 리깅뿐만 아니라, 버텍스 그룹을 사용하여 정확한 수치로 웨이트를 조정하는 방법도 알아보겠습니다.
Vertex Groups에서 Weight 수정하기
버텍스에 직접 Weight 값을 할당하는 방법을 먼저 알아보겠습니다.
블렌더 리깅을 다룰 때, 어떤 Bone이 오브젝트에 적용되어 있는지 확인하려면 어떻게 해야 할까요?
Blender에서는 Data 속성 안에 있는 Vertex Groups에서 Bone이 적용된 것을 확인할 수 있습니다.
버텍스 그룹은 선택한 버텍스들을 묶어서 그룹으로 만들고, 그룹에 이름을 붙이는 기능입니다.
위 이미지에서 볼 수 있듯이, ‘Bone.001’이라는 버텍스 그룹은 ‘Bone.001’ 뼈에 해당하는 버텍스들이 속해 있는 그룹입니다.
*여기서 Vertex Gorups의 네이밍을 바꾸게 되면 리깅 관계가 끊기게 됩니다. (그룹 네이밍에 의한 연결 관계)
여기서 버텍스 그룹에 속한 버텍스들의 Weight 값을 수정할 수 있습니다. 각 버텍스에는 1부터 0까지의 Weight 값을 할당할 수 있습니다.
이렇게 할당된 Weight 값은 리깅이 어떻게 작동할지 결정합니다. 이 정보를 기반으로 모델이 자연스럽게 움직이도록 조절할 수 있습니다.
리깅된 오브젝트의 버텍스 웨이트를 수정하려면 다음과 같이 진행하면 됩니다.
Edit Mode로 진입, 리깅된 오브젝트를 선택하고 Edit Mode ( 단축키 : Tab )로 진입합니다. 이렇게 하면 Vertex Groups 메뉴가 활성화됩니다.
Vertex Groups 옵션
- Assign: 선택한 버텍스에 Weight 값을 할당합니다. 1을 주면 최대값, 0을 주면 최소값을 나타냅니다.
- Remove: 버텍스 그룹에서 선택한 버텍스를 제거합니다.
- Select: 버텍스 그룹에 속한 버텍스를 선택합니다. (Weight가 0인 버텍스도 그룹에 속해있는 버텍스로 인식합니다)
- Deselect: 선택된 버텍스들을 선택 해제합니다.
Weight 조절: 웨이트 값의 강도를 지정합니다. 1을 할당하면 최대값이 적용되고, 0을 할당하면 최소값이 적용됩니다.
주의사항: 버텍스 그룹에서 Weight를 조절할 때, 같은 버텍스에 두 개 이상의 Bone에서 1의 Weight 값을 주면 두 본 모두 해당 버텍스에 영향을 미칩니다.
*Weight Paint에서 브러쉬를 활용하면 자동으로 Weight 값을 조절하며, Weight 값의 총합이 1이 되도록 리깅을 도와줍니다. 세부적인 조작이 필요한 경우를 제외하고는 브러쉬 도구를 활용하는 것이 편리합니다.
Weight Paint에서 Weight 수정하기
블렌더 리깅중, 오브젝트를 선택하고 (Ctrl+Tab 단축키 사용) Weight Paint 모드로 들어가면, 브러쉬를 활용하여 Weight 정보를 조절할 수 있습니다.
더 편리한 사용을 위해 투명화 모드(Alt+Z 단축키)를 활성화한 후 Bone을 선택하고 Ctrl을 활용해 오브젝트를 다중 선택합니다.( 오브젝트를 나중에 선택해야 합니다. )
이렇게 하면 Weight Paint에서 해당 본을 직접 선택 ( 단축키 : Ctrl + 본 클릭 )할 수 있습니다.
선택한 본에 따라 웨이트 강도가 색상으로 표현되며, 일반적으로 1부터 빨강 – 노랑 – 초록 – 파랑 순으로 0에 가까워집니다.
Weight Paint에서 사용하는 주요 브러쉬 옵션으로는
- weight : 웨이트의 강도를 조절합니다. (포토샵 브러쉬의 투명도 (opacity) 설정과 유사하게 웨이트의 총량을 조절합니다.)
- Radius : 브러쉬의 크기를 조절합니다.
- Strength : 브러쉬의 강도를 조절합니다. (포토샵 브러쉬의 흐름 (Flow) 설정과 유사하게 중첩 사용 시 웨이트의 최대값까지 높일 수 있습니다.)
기본 Draw 브러쉬로 리깅을 해보겠습니다.
Bone과 Bone.001이 만나는 관절 부분을 Weight 값을 0.5로 세팅하고 그려보겠습니다.
그러면 컬러가 0.5 (녹색)로 변합니다. 현재 ‘Bone.001’을 선택하고 0.5의 웨이트를 준것인데요. 웨이트의 총합은 1이기때문에 ‘Bone’의 동일한 부분 버텍스는 0.5의 웨이트로 수정되었을까요?
아닙니다. 기본적인 Weight Paint의 세팅은 Vertex Groups처럼 버텍스마다 중첩된 웨이트값을 가질 수 있습니다.
총합 1을 기준으로 하여 자동으로 Weight값을 보정해주는 기능을 따로 켜주어야 합니다. 옵션에 Auto Normalize를 활성화 해주면 되겠습니다.
블렌더의 Weight Paint 모드에서 기본적으로 브러쉬가 보이는 버텍스에만 웨이트를 부여하는 것은 문제가 될 수 있습니다.
특히 리깅의 경우 물체의 뒷면까지 웨이트 값을 설정해야 할 때 이런 제약이 불편할 수 있습니다. 이 문제를 해결하려면 브러쉬의 설정을 바꾸어 주어야 합니다.
브러쉬 세팅에서 “Falloff Shape”를 “Sphere”에서 “Projected”로 변경하면 보이지 않는 뒷면에도 웨이트를 부여할 수 있습니다.
이렇게 설정을 변경하면 브러쉬가 뷰포트 화면에 보이는 것뿐만 아니라 뒷면의 버텍스에도 웨이트를 적용할 수 있어 리깅 작업이 훨씬 편리해집니다.
이러한 변경으로 인해 자연스럽게 블렌더의 Weight Paint 모드를 사용할 수 있게 됩니다.
두 옵션을 활성화하고 Front View에서 적당한 웨이트를 엣지의 흐름에 맞춰 넣어줘 보겠습니다.
*움직임에 맞춰 Weight강도를 조절합니다. Pose Mode에서 리깅을 수정하며 모델링을 확인하면 더 좋습니다.
모델링의 자연스러운 움직임을 위해서 각 본에 가까운 위치에 맞춰 (1.0, 0.8, 0.5, 0.2 , 0) 을 넣어보면 아래와 같은 이미지가 나오게 되겠습니다.
현재 2개의 본만 적용되어 있고, Auto Normalize를 활성화 했기 때문에 하나의 본에만 적절한 웨이트 값을 주어도 다른 본에 자동으로 웨이트값이 맞춰 지네요.
블렌더 리깅 Tip 정리
Weight Paint 작업 시
자동으로 웨이트의 총합을 1로 유지하려면 Auto Normalize 옵션을 활성화하세요.
보이지 않는 버텍스까지 Weight를 부여하려면 Brush 설정에서 Falloff Shape를 Projected 변경하세요.
이렇게 하면 편리하게 웨이트값을 조절할 수 있습니다.