Version: 2020.1
언어: 한국어
최적의 성능을 위한 캐릭터 모델링
다른 애플리케이션에서 FBX 파일 사용

휴머노이드 에셋의 익스포트 준비

Unity의 휴머노이드 애니메이션 시스템과 리타게팅의 장점을 최대한 살리기 위해서는 riggedskinned 휴머노이드 타입 메시가 있어야 합니다.

캐릭터 준비 단계(모델링, 리깅, 스키닝)
캐릭터 준비 단계(모델링, 리깅, 스키닝)
  1. 일반적으로 캐릭터 모델(Model) 은 3D 모델링 소프트웨어의 폴리곤으로 구성되거나 익스포트되기 전에 복잡한 메시 타입에서 폴리곤이나 삼각형 메시로 전환됩니다.

  2. 캐릭터의 움직임을 제어하려면 메시 내부의 뼈대와 서로 간의 움직임을 정의하는 조인트 계층 구조(joint hierarchy) 또는 골격(skeleton) 을 생성해야 합니다. 조인트 계층 구조를 만드는 과정을 리깅(rigging) 이라고 합니다.

  3. 그런 다음 메시 또는 스킨(skin) 을 조인트 계층 구조에 연결해야 합니다. 그러면 특정 조인트를 애니메이션화할 때 캐릭터 메시의 어떤 부분이 움직일지 정의할 수 있습니다. 골격을 메시에 연결하는 과정을 스키닝(skinning) 이라고 합니다.

휴머노이드 모델을 얻는 방법

Unity 애니메이션 시스템에서 휴머노이드 모델을 얻는 방법에는 세 가지가 있습니다.

  • Poser, Makehuman 또는 Mixamo 등 순차적 캐릭터 시스템이나 캐릭터 제너레이터를 사용합니다. 이런 시스템의 일부는(예: Mixamo) 다른 시스템과 달리 메시를 리깅 및 스키닝할 수 있습니다. 또한 이런 방법을 사용하면 Unity에서 사용하기에 적합하도록 오리지널 메시의 폴리곤 숫자를 줄여야 할 수 있습니다.

  • Unity 에셋 스토어에서 데모 예제와 캐릭터 콘텐츠를 구입합니다.

  • 3D 모델링 애플리케이션을 사용하여 처음부터 자체 캐릭터를 모델링, 리깅스키닝합니다.

모델링

이 단계는 Autodesk® 3ds Max®, Autodesk® Maya®, Blender 등과 같은 3D 모델링 소프트웨어에서 휴머노이드 메시를 직접 만드는 프로세스입니다. 이 단계 자체를 하나의 주제로 다룰 수도 있지만, 다음의 가이드라인에 따라 모델이 Unity 프로젝트에서 애니메이션과 함께 작동하도록 할 수 있습니다.

  • 형태가 올바른 구조(well-formed structure) 의 토폴로지를 사용합니다. “형태가 올바른” 메시 구조의 정확한 성질은 규정하기 힘들지만, 일반적으로 모델의 버텍스와 삼각형이 애니메이션화될 때 어떻게 왜곡되는지 생각해야 합니다. 토폴로지가 좋지 않은 경우 모델을 이동시키면 메시가 왜곡됩니다. 기존 3D 캐릭터 메시를 조사하여 토폴로지의 배열 방식 및 이유를 알아보십시오.

  • 메시의 스케일(scale) 을 확인합니다. 임포트 테스트를 수행하고 임포트된 모델의 크기를 “미터 큐브”와 비교합니다. 스탠다드 Unity 큐브 프리미티브는 변의 길이가 1 단위이므로 대부분의 용도에서 1m 큐브로 간주할 수 있습니다. 3D 모델링 소프트웨어에서 사용되는 단위를 확인하고 모델 크기가 큐브와 정확하게 비례하도록 익스포트 설정을 조정합니다. 모델의 스케일에 대한 개념 없이 모델을 만들기가 쉽고, 그에 따라 모델을 Unity로 임포트할 때 크기가 불균형한 여러 오브젝트가 생길 수 있습니다.

  • 캐릭터가 모델의 로컬 원점 또는 “앵커 포인트”에 발로 서 있도록 메시를 배열합니다. 캐릭터는 일반적으로 바닥 위에 똑바로 서서 걸으므로 앵커 포인트(즉, 트랜스폼 포지션)가 같은 바닥에 있으면 훨씬 더 다루기 쉽습니다.

  • 가능하면 T-포즈(T-pose) 로 모델링합니다. 그러면 필요한 부분(예: 팔 아래)의 폴리곤 디테일을 다듬는 데 유용하고 메시에 릭을 더 쉽게 배치할 수도 있습니다.

  • 빌드 중 모델을 정리(clean up your Model) 합니다. 가능한 경우 구멍을 막고 버텍스를 밀착시키고 숨은 면을 제거합니다. 그러면 스키닝과 특히 자동화된 스키닝 프로세스에 유용합니다.

텍스처를 입히고 삼각형으로 나눈 스킨 메시
텍스처를 입히고 삼각형으로 나눈 스킨 메시

리깅

리깅은 모델의 움직임을 제어하기 위해 조인트 골격을 만드는 프로세스입니다.

3D 모델링 소프트웨어를 사용하여 여러 가지 방법으로 휴머노이드 릭의 조인트를 만들 수 있습니다. 이런 방법은 메시에 맞게 확대/축소할 수 있는 기성품 두 발 골격부터, 뼈대 구조를 직접 만드는 데 사용할 수 있는 개별 뼈대 생성 및 부모 지정 툴까지 광범위합니다. Unity에서 애니메이션을 사용하여 작업하려면 골격 계층 구조의 루트 요소여야 합니다. 골격에는 뼈대가 최소 15개 이상 필요합니다.

Unity의 유효한 매치 생성을 위해서는 골격에 최소한으로 필요한 뼈대 수가 있어야 합니다. 아바타 매치를 찾기 위한 가능성을 높이려면 뼈대 이름을 지정할 때 나타내는 신체 부위를 반영하도록 만드십시오. 예를 들어 “LeftArm”과 “RightForearm”은 이 뼈대가 제어하는 신체 부분을 잘 알 수 있습니다.

조인트/뼈대 계층 구조는 만들려는 캐릭터의 자연스러운 구조를 따라야 합니다. 팔과 다리는 2개씩 있으므로 일관성이 있는 명명 규칙을 사용해야 합니다(예: 왼팔은 “arm_L”, 오른팔은 “arm_R”). 다음과 같은 계층 구조가 가능합니다.

* HIPS - spine - chest - shoulders - arm - forearm - hand
* HIPS - spine - chest - neck - head
* HIPS - UpLeg - Leg - foot - toe - toe_end
T-포즈 포지션의 두발 스켈레톤
T-포즈 포지션의 두발 스켈레톤

스키닝

스키닝은 메시를 골격에 연결하는 프로세스입니다.

스키닝하려면 메시의 버텍스를 골격에 직접 바인딩(리지드 바인드)하거나 블렌드된 인플루언스로 여러 골격에 바인딩(소프트 바인드)해야 합니다. 3D 모델링 소프트웨어에 따라 사용되는 방법이 다릅니다. 예를 들어 개별 버텍스를 할당하고 골격당 인플루언스의 가중치에 따라 메시에 페인트할 수 있습니다.

초기 설정은 일반적으로 가장 가까운 인플루언스를 찾거나 히트맵 을 사용하는 등의 방법으로 자동화됩니다. 스키닝에는 일반적으로 만족스러운 스킨 변형 결과를 보장하기 위한 많은 애니메이션 작업 및 테스트가 요구됩니다.

여러 스키닝 방법 중 하나인 인터액티브 스킨 바인드
여러 스키닝 방법 중 하나인 인터액티브 스킨 바인드

이 프로세스에 대한 일반적인 가이드라인은 다음과 같습니다.

  • 처음에는 자동화된 프로세스를 사용하여 일부 스키닝을 설정합니다(3D 모델링 소프트웨어에서 제공하는 스키닝 튜토리얼 참조).

  • 릭의 간단한 애니메이션을 만들거나 애니메이션 데이터를 임포트하여 스키닝 테스트를 수행합니다. 그러면 동작 중에 스키닝이 좋아 보이는지 간편하게 평가할 수 있습니다.

  • 스키닝 솔루션을 점진적으로 편집하고 다듬습니다.

  • 성능상의 이유로 소프트 바인딩을 사용할 때 인플루언스 수를 Unity가 지원하는 최대 개수인 4개로 제한합니다. Unity는 기본적으로 최대 4개를 지원합니다. 메시가 4개가 넘는 인플루언스를 사용하면 다음 옵션 중에서 하나를 선택할 수 있습니다.
    • Skin Weights 프로퍼티를 사용하여 최대 인플루언스 수를 증가시킵니다.
    • Bake Deformer 툴(Maya의 상단 메뉴에서 Skin > Skin > Bake Deformers to Skin Weights로 이동)을 사용하여 Maya에서 모델을 익스포트하기 전에 변형 조인트를 베이크하십시오. 자세한 내용은 Autodesk 문서의 캐릭터에서 디포머 베이크를 참조하십시오.

익스포트 및 검증

Unity는 다양한 일반 및 네이티브 3D 파일 포맷을 임포트합니다. 모델을 익스포트하고 확인할 때는 FBX 포맷을 사용하기를 권장합니다. 그러면 다음과 같은 작업을 수행할 수 있습니다.

  • 골격 계층 구조, 노멀, 텍스처 및 애니메이션이 있는 메시를 익스포트합니다.
  • 메시를 3D 모델링 소프트웨어에 다시 임포트하여 애니메이션화된 모델이 예상하는 대로 구현되었는지 검증합니다.
  • 메시 없이 애니메이션을 익스포트합니다.
최적의 성능을 위한 캐릭터 모델링
다른 애플리케이션에서 FBX 파일 사용