MAKING 3D ITEMS - BLENDER

리깅

19min

Blender로 작업할 때 고려해야 할 사항

ZEPETO 릭은 Maya에서 설정되며 Maya의 기본 관절 방향을 사용합니다. Maya에서는 관절 체인을 모든 축에 정렬할 수 있는 반면, Blender에서는 뼈가 엄격하게 Y축을 따라 향하게 됩니다. 이상하게 보일 수 있지만 ZEPETO 아바타와의 호환성을 위해 기본 뼈의 뼈 방향을 변경하지 않는 것이 중요합니다.

Document image


Blender는 뼈대의 휴식하지 않는 포즈에 메쉬를 바인딩하는 것을 지원하지 않습니다. 뼈대에 웨이트를 결합할 때는 권장된 휴식 포즈에 적용된 뼈대를 사용하거나 A-포즈로 설정된 복제 장치를 사용합니다.

리깅이란?

리깅은 데이터를 적용하여 ZEPETO 아바타와 함께 아이템을 움직이는 과정입니다. 리깅 없이는 아이템이 앱의 아바타와 함께 이동하지 않습니다. 리깅 과정을 통해 아이템이 아바타의 골격을 따라가게 됩니다. 보다 기술적인 관점에서: 3D 응용 프로그램에서 캐릭터의 3D 형상은 종종 관절이나 뼈에 의해 제어됩니다. 이러한 관절이나 뼈는 캐릭터가 움직이는 방식에 대한 규칙을 설정하는 렌더링에 표시되지 않는 특수 3D 개체로, 종종 피벗 포인트 역할을 합니다. 리깅은 메쉬의 버텍스가 주어진 관절이나 골격을 얼마나 가깝게 따라가야 하는지 알려주는 데이터를 저장하는 과정입니다. Blender에서는 이러한 유형의 데이터를 "버텍스 그룹"이라고 합니다. 웨이트는 숫자로 지정하거나 모델에 "페인트"할 수 있습니다. 사실상 가상 페인팅이 개별 버텍스에 십진수를 할당하는 것보다 접근하기 쉽기 때문에 우리는 시간을 절약하기 위해 이 웨이트 페인팅 방법에 초점을 맞출 것입니다. 관절과 뼈는 3D 소프트웨어에서 유사한 기능적 용도로 사용되지만 용어 상에는 약간의 차이가 있습니다. 관절은 소프트웨어에서 정의한 기본 방향이 없는 3D 공간의 단일 지점을 나타냅니다. Maya는 관절을 사용하며 일반적으로 체인의 다음 뼈를 가리키는 X축에 관절들을 맞추는 경향이 있습니다. 뼈는 기능적으로도 공간의 단일 점을 나타내지만, 다른 캐릭터들이 따를 것으로 예상되는 소프트웨어에 의해 정의된 방향성을 가지고 있습니다. Blender는 체인의 다음 뼈를 가리키도록 설계된 Y축과 함께 뼈들을 사용합니다. 이러한 뼈와 관절의 차이로 인해 Blender에서 리그를 처리하는 방식에 몇 가지 문제점들이 발생합니다,

리깅 요구 사항

  • "hips"와 "hips_scale"뼈가 포함되어야 합니다.
  • 일반적으로 웨이트 페인팅을 하는 동안 마스크가 아이템을 찌르고 들어가지 않도록 하세요.
  • 뼈대를 움직일 때 몸체와 아이템이 저절로 무너지지 않도록 하세요.
  • 최대 피부 무게 영향은 4로 고정됩니다.
    • 이 값은 Blender의 기본값이지만, 웨이트 영향을 수동으로 설정하려면 아이템 메쉬에 대한 웨이트 페인트 모드로 들어갑니다. 3D 뷰포트의 웨이트 메뉴에서 "합계 제한"을 선택합니다. 뷰포트의 왼쪽 하단에 나타나는 메뉴에서 "제한" 값이 4로 설정되어 있는지 확인합니다.

일반적으로, 드레스는 리그의 상부와 하부의 뼈대를 사용하는 반면 다른 아이템들은 더 제한되어 있습니다. 크리에이터 베이스 세트와 함께 제공되는 마스크 개체에는 ZEPETO 아바타의 웨이트가 있습니다. 마스크 개체의 웨이트를 아이템에 웨이트를 부여하기 위한 기준으로 사용하는 것이 유용합니다. 마스크 웨이트를 아이템의 무게로 전송하려면 Blender의 웨이트 전송 기능을 사용하세요.



프로세스

크리에이터 베이스 세트 콘텐츠 사용

creatorBaseSet_zepeto.fbx 파일에 포함된 마스크 및 뼈대 개체를 사용합니다. 이러한 개체들은 ZEPETO studio가 앱에서 아이템을 작동시키기 위해 정의된 개체 이름, 뼈 이름, 및 뼈 방향 세트를 가지고 있습니다. 나중에 Unity에서 변환 프로세스를 혼동하지 않도록 이름을 비슷하게 유지하는 것이 중요합니다.



T-포즈가 아닌 휴식 포즈

Blender는 초기 웨이트 데이터를 뼈대의 "휴식 자세"에 적용합니다. 즉, A-포즈에서 아이템을 모델링하고 T-포즈 휴식 자세 뼈대에 적용하려고 하면 아이템이 초기 바인딩 작업 중에 올바른 위치에서 벗어날 수 있습니다. 이 문제를 해결하려면 휴식 포즈가 아이템의 모델링된 포즈로 설정된 뼈대에 아이템을 바인딩하는 것이 유용합니다. T-포즈가 아닌 휴식 포즈 뼈대를 갖는 유용한 방법은 원래 뼈대와 마스크의 복제본을 만들고 휴식 포즈를 새로 복제된 뼈대에 적용하고 휴식 포즈를 기반으로 의류 아이템을 리깅하는 것입니다. 정리하기 위한 목적으로 복제된 마스크와 리그는 새 포즈에 따라 이름을 변경해야 합니다. 각 뼈대와 마스크 세트를 자체 컬렉션에 넣는 것도 구성에 도움이 될 수 있습니다. 뼈대에 휴식 포즈를 적용하는 것은 비교적 간단합니다:

  1. 원하는 포즈로 뼈대의 포즈를 설정합니다.
  2. 부착된 마스크 요소를 선택하고 수정자 속성 탭 에서 뼈대 수정자를 찾습니다. a. 뼈대 수정자의 드롭다운 메뉴에서 "적용"을 선택합니다.
Document image


3. 뼈대 요소를 선택하고 포즈 모드로 이동합니다

  • 모든 뼈대를 선택하고 뷰포트 상단의 포즈 메뉴로 이동합니다
  • "적용"으로 이동한 다음 "휴식 자세로 포즈 적용"으로 이동하십시오
Document image




4. 개체 모드로 돌아가서 마스크 요소를 선택합니다.

  • 수정자 탭에서 새 뼈대 수정자를 추가합니다.
Document image

  • 개체 대상 지점에서 포즈를 취한 뼈대를 찾아 선택합니다.
Document image


이제 뼈대에 새로운 휴식 포즈가 적용되고 마스크 요소가 이 새로운 휴식 포즈를 따릅니다.

📘 ZEPETO는 상단 요소가 있는 ZEPETO 템플릿 아이템에 나타나는 A-포즈에 대해 특정 회전을 지닙니다.

ZEPETO A-포즈는 총 4개의 뼈대에 걸쳐 회전합니다:

  • 어깨 뼈 "shoulder_L"와 "shoulder_R"은 Z 축에서 -7.5도 회전합니다
  • 팔 뼈 "upperArm_L"과 "upperArm_R"

Blender의 기본 쿼터니언 설정보다 오일러 XYZ 회전을 사용하여 뼈에 회전을 적용하는 것이 더 쉬울 수 있습니다. 사용하기 쉽도록 뼈대 환경 설정 탭에서 이러한 회전 축을 변경합니다.

Document image

Document image


일반 워크플로우

creatorBaseSet_zepeto.fbx 파일에 포함된 마스크 및 뼈대 개체를 사용합니다. 이러한 개체들은 ZEPETO studio가 앱에서 아이템을 작동시키기 위해 정의된 개체 이름, 뼈 이름, 및 뼈 방향 세트를 가지고 있습니다. 나중에 Unity에서 변환 프로세스를 혼동하지 않도록 이름을 비슷하게 유지하는 것이 중요합니다.

  1. 뼈대가 아이템에 맞고 휴식 자세로 설정되어 있는지 확인하세요.
  2. 의상이 T-포즈에 맞게 모델링된 경우 변경되지 않은 크리에이터 베이스 세트 뼈대가 기본적으로 작동합니다. a. 옷이 ZEPETO의 A-포즈에 있는 경우 뼈대를 A-포즈에 맞게 설정해야 합니다.
  3. 의상 아이템을 선택한 다음 뼈대를 선택하세요.
  4. 빈 가중치를 뼈대에 적용합니다.
Document image


5. 마스크의 웨이트를 아이템에 전송합니다.

  • 마스크를 선택한 다음 아이템 선택
  • 웨이트 페인트 모드로 이동
  • 웨이트 > 웨이트 전송에서 ""웨이트 전송"" 작업 사용
  • 웨이트 전송 작업이 ""이름별""로 완료되었는지 확인
Document image

Document image


6. 관절을 회전하여 아이템의 웨이트가 올바르게 설정되었는지 확인합니다.

  • 웨이트 브러시 도구를 사용하여 관절 웨이트를 편집합니다. 디포머 웨이트가 정상화되었는지 확인합니다.
Document image


7. 뼈 무게 보정이 완료되면 모든 뼈의 변형을 재설정합니다.

ZEPETO 아바타는 스케일 뼈대를 사용하여 기본 아바타를 다양한 신체 크기에 맞게 조정합니다.

골격에 scale와 scale이 없는 뼈대 모두 있는 경우, scale이 있는 뼈대만 웨이트를 적용하고 그렇지 않은 뼈대는 미적용 상태로 둡니다.

Blender의 대칭 및 골격 명명 시스템은 제공된 리그가 내장된 웨이트 미러링 도구를 사용하여 쉽게 미러링되는 버텍스 그룹이 없도록 방지합니다. 웨이트 미러링은 수동으로 적용하거나 추가 기능을 통해 미러링해야 합니다.

스커트

스커트 요소를 리깅하는데는 추가적인 주의를 기울일 필요가 있습니다. ZEPETO에서 스커트는 다리 요소가 있는 표준 동작 때문에 리깅하기가 더 어렵습니다. 스커트는 확장된 바지 세트처럼 아이템의 다리를 따라옵니다. 이로 인해 다리를 벌릴 때 스커트의 중간 부분이 늘어날 수 있습니다. 이것은 피할 수 없는 일이지만 신중한 웨이트 페인팅을 통해 늘어나는 현상을 보완할 수 있습니다.



리깅 정리

A-포즈에서 T-포즈로

리깅 바인딩과 수정이 완료되면 리그를 T-포즈로 되돌려서 내보내야 합니다. 이를 위해 우리는 A-포즈 뼈대에 리깅된 아이템을 T-포즈에 넣고 T-포즈에 아이템을 적용한 다음 아이템을 T-포즈 골격에 다시 바인딩합니다. 더 자세히:

  1. 포즈 모드에서 A-포즈 뼈대를 선택합니다.
  2. 뼈대 뼈를 다시 T-포즈로 옮깁니다. a. ZEPETO A-Pose의 경우 shoulder_L 뼈대와 shoulder_R 뼈대를 Z축에서 7.5도 회전하고 upperArm_L 뼈대와 upperArm_R뼈대를 Z축에서 40도 회전하면 쉽게 할 수 있습니다.
  3. 개체 모드에서 아이템을 선택합니다.
  4. 수정자 속성 탭에서 뼈대 수정자를 찾습니다.
  • 드롭다운 메뉴를 클릭하고 적용을 누르세요.
Document image


5. 아이템에 뼈대 수정자를 추가합니다.

  • 뼈대 개체를 기본 creatorBaseSet T-포즈 뼈대를 향하게 합니다.
Document image


6. 웨이트 이동에서 나타나는 오류에 대해 아이템의 메쉬 또는 웨이트를 수정합니다.

변형 작동 방식 때문에 T-포즈로 다시 이동한 메쉬는 어깨/상완 영역에서 약간의 볼륨을 잃을 가능성이 있습니다. 볼륨을 다시 추가하기 위해 메쉬를 편집하는 것은 비교적 간단한 수정 작업입니다. T-포즈 마스크를 메쉬 경계 영역에 대한 참조로 사용하세요.

뼈대 삭제

모든 웨이트가 완성되고 내보낼 준비가 되면 아이템에 영향을 주지 않고 뼈대 세트를 삭제합니다. ZEPETO 스튜디오는 아이템을 업로드할 수 있는 뼈대 수를 100개로 제한합니다. 사용하지 않는 뼈대를 삭제하면 버텍스 그룹이나 웨이트가 없는 경우에도 제한된 뼈대 개수와 관련된 문제가 해결됩니다. 한 아이템에 추가적으로 많은 뼈대가 필요한 경우 뼈대 수를 줄이기 위해 스케일이 아닌 뼈대를 제거해야 할 수 있습니다. 필요한 경우 해당 스케일 뼈대와 상응하는 스케일이 아닌 뼈대를 삭제합니다. 이때 트위스트 뼈 또는 골반 뼈는 제외합니다. 골반 뼈가 포함되어 있지 않으면 아이템이 부러지기 때문입니다.

Document image




업데이트됨 11 Oct 2024
Doc contributor
Doc contributor
이 페이지가 도움이 되었습니까?