애니메이션 FAQ(Animation FAQ)
플레이어블 API(Playables API)

Blender 및 Rigify 사용

이제 Blender 는 메카님과 함께 작동하는 바이패드 리그를 모델에 제공하는 Rigify라는 무료 애드온과 함께 제공됩니다. 애드온은 신규 및 캐주얼 게임 개발자들에게 매우 유용합니다.

이 가이드에서는 Rigify를 활용하여 3D모델에 리그 된 데이터를 입력하고 또 해당 데이터를 Unity 메카님으로 임포트하는 것을 보여줍니다. Rigify는 모델에 완전한 리그(rig)를 생성하고, 아마추어를 템플릿으로 사용해 휴머노이드 캐릭터를 위한 멋지고 간편한 리그로 만들 수 있습니다. Blender 안에서 Rigify의 기능을 사용할 수 있도록 활성화하는 것부터 시작해야 합니다. 그런 다음 프로젝트 중간에 문제가 발생하는 것을 방지하기 위해 3D 모델을 임포트하고 모델과 아머추어를 올바르게 설정하기 시작합니다. 모든 설정을 마치면 골격의 포지션을 정하고 메인 리그를 생성할 수 있습니다. 가장 어려운 부분은 메시를 사용할 골격에 스키닝하고 골격이 상위 오브젝트와 올바르게 연결되었는지 확인하는 것이며, 마지막으로(어느 정도 테스트 및 개선 후에) 이 모델을 Unity로 임포트할 수 있습니다.

다음이 필요합니다.

  • Unity
  • Blender
  • 3D 휴머노이드 모델. 모델링에 도움이 필요한 경우 MakeHuman이 매우 유용합니다.

Rigify 활성화

먼저 Rigify 애드온이 Blender에 설치되고 활성화되었는지 확인해야 합니다.

  1. File > User preferences로 이동합니다.
  2. 애드온 탭을 선택하고 맨 아래까지 스크롤하여 “Rigify” 옆 확인란을 클릭합니다.
  3. “사용자 설정 저장”을 클릭합니다.

그러면 애드온이 활성화되고 필요한 버튼과 기능에 접근할 수 있습니다. 기본값으로 설정하면 이후의 모든 프로젝트에 포함됩니다.

아머추어 설정

Rigify에서 템플릿으로 사용할 기본 휴머노이드를 선택합니다. 이 리그는 매우 기초적이지만, Rigify는 이 리그를 사용해 상대 골격 포지션 주위에 스스로를 빌드할 수 있습니다.

  1. 휴먼 아머추어를 추가합니다. (SHIFT + A) > Armature(Human) 추가로 이동합니다.

  2. 아머추어와 모델이 모두 0,0,0 중심에 있는지 확인합니다.

  3. 모델을 스케일하거나 이동하는 경우 아머추어 및 모델의 스케일 또는 이동 값을 재설정해야 합니다.

  4. 편집 모드로 전환합니다. 탭을 눌러 모드를 편집하기도 합니다.

  5. 골격을 모델의 해당 포지션에 배치합니다.

  6. “X-Ray”를 사용하여 모델을 투과해 골격이 보이도록 합니다.

  7. 완료 후 오브젝트 모드로 돌아갑니다.

  8. 아머추어를 방해되지 않도록 옆으로 옮깁니다. 휴먼 생성을 사용하는 경우, 하나의 완전한 메시에 다른 다양한 메시를 합치고 싶을 수도 있습니다. 이 때는 모든 메시를 선택하고 CTRL + J를 누르십시오.

리그 생성

  1. 아머추어가 선택되어 있는 동안 맨 오른쪽의 오브젝트 데이터탭을 클릭합니다.

  2. “Rigify 버튼”에서 생성을 클릭합니다.

  3. 포즈 모드로 전환하고 다음 작업을 수행합니다.

  4. (A)키를 눌러 리그를 선택한 다음 (H)키를 눌러 불필요한 레이어를 숨깁니다.

  5. 아래의 아머추어 레이어를 Shift 키를 누른 상태로 클릭합니다.

그러면 메시에 변형 골격이 나타납니다. 변형 골격에 메시를 스키닝하고 가중 페인팅해야 합니다.

모든 변형 골격이 나타나지 않으면 File > User Preferences>File에서 “파이썬 스크립트 자동 실행” 옵션을 선택하고 다시 생성합니다.

WGT 골격 제거

씬 계층 구조의 오른쪽 상단에 WGT 골격이 많이 있음을 볼 수 있습니다. WGT는 Widget의 약자입니다.

이 골격은 메시에 스키닝되거나 전혀 사용되지 않으므로, Unity 프로젝트에 할당되지 않은 메시가 포함되지 않도록 해당 골격을 삭제해야 합니다. 골격을 오른쪽 마우스 단추로 클릭하고 “제거”를 선택합니다. 씬의 각 WGT 골격마다 이 작업을 수행합니다.

모델에 리그 스키닝

  1. 모델을 변형 골격에 스키닝합니다.

    시작하기 전에 오브젝트 모드에 있는지 확인합니다. 메시를 선택한 다음 shift를 누른 상태로 리그를 선택하고 Ctrl + P 키를 누르고 Armature deform > With Automatic weights를 선택합니다. 그러면 메시가 골격에 할당되어 버텍스 그룹이 생성되고, 이 그룹이 스키닝 프로세스에 사용됩니다. 블렌더의 스키닝에 대한 지식이 없거나 부족한 경우 튜토리얼을 참조하십시오. 변형 골격은 팔과 다리에 각각 뼈대를 두 개씩 사용합니다. 2번째 골격에 스키닝하지 말고, 메카님이 골격을 올바르게 연결하도록 골격이 상위 오브젝트에 다시 연결되었는지 확인합니다.

  2. 어깨를 “DEF-shoulder.R”과 “DEF-shoulder.L”에 스키닝하고 상위 오브젝트가 “ORG-ribs”인지 확인합니다.

  3. 팔 위쪽을 “DEF-upper_arm.R.01” + “DEF-upper_arm.L.01”에 스키닝하고 상위 오브젝트가 각각 “DEF-shoulder.R” 또는 “DEF-shoulder.L”인지 확인합니다.

  4. 팔 아래쪽을 “DEF-forearm.R.01” + “DEF-forearm.L.01”에 스키닝하고 상위 오브젝트가 각각 “DEF-upper_arm.R.01” 또는 “DEF-upper_arm.L.01 ”인지 확인합니다.

  5. 넓적다리를 DEF-thigh.R.01 + DEF-thigh.L.01에 스키닝하고 상위 오브젝트가 “ORG-hips”인지 확인합니다.

  6. 정강이를 DEF-shin.R.01 + DEF-shin.L.01에 스키닝하고 상위 오브젝트가 각각 “DEF-thigh.R.01” 또는 “DEF-thigh.L.01”인지 확인합니다. 그러면 골격까지 스키닝되고 관통하는 X 없이 표시된 리그가 얻어집니다. 예비 골격은 무엇으로도 스키닝해서는 안 됩니다.

    손에도 동일한 작업을 수행합니다. 이때 메카님은 손 뼈와 각 손가락과 엄지 뼈 세 개만 사용한다는 점을 기억하십시오. 즉, 아래 그림과 같이 모델의 손을 관통하는 십자 표시 없이 골격까지 스키닝합니다.

  7. 같은 방법으로 손을 올바른 상위 골격에 연결해야 합니다. 손을 “DEF-hand.R” + “DEF-hand.L”에 스키닝하고 상위 오브젝트가 각각 “DEF-forearm.R.01” 또는 “DEF-forearm.L.01”인지 확인합니다.

왼손을 예로 들었을 때 각 손가락과 엄지에 다음을 사용합니다.

* 엄지: "DEF-thumb.01.L.02", "DEF-thumb.02.L", "DEF-thumb.03.L"
* 검지: "DEF-finger_index.01.L.02", "DEF-finger_index.02.L", "DEF-finger_index.03.L"
* 중지: "DEF-finger_middle.01.L.02", "DEF-finger_middle.02.L", "DEF-finger_middle.03.L"
* 약지: "DEF-finger_ring.01.L.02", "DEF-finger_ring.02.L", "DEF-finger_ring.03.L"
* 소지: "DEF-finger_pinky.01.L.02", "DEF-finger_pinky.02.L", "DEF-finger_pinky.03.L"

각 손가락 뼈는 항상 마지막 뼈에 연결하고 첫 번째 뼈는 손에 연결하여 메카님이 다룰 수 있는 원활한 링크를 제공해야 합니다.

익스포트(Export)와 임포트(Import)

모델을 .fbx로 익스포트하고 프로젝트와 분리된 폴더에 저장합니다(file > Export > AutoDesk FBX (.fbx) > Export). 완료한 후 Unity로 임포트하고 메카님에 연결하기 시작할 수 있습니다.

  1. Unity를 열고, “Rigify Test”라는 새 프로젝트를 만듭니다. 열리면 간단히 모델을 프로젝트 창으로 끌어다 놓습니다.

  2. 프로젝트 창에서 모델의 프리팹을 선택하고 인스펙터에서 리그를 클릭합니다. 애니메이션 타입을 휴머노이드로 변경하고 설정을 클릭합니다.

    이제 모든 골격이 메카님에 잘 연결되어 있을 것입니다.

  3. 모든 골격이 올바른 위치에 있고 오류가 없는지 확인합니다.

애니메이션 FAQ(Animation FAQ)
플레이어블 API(Playables API)