UDN
Search public documentation:

FBXSkeletalMeshPipelineKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > FBX 콘텐츠 파이프라인 > FBX 스켈레탈 메시 파이프라인
UE3 홈 > 캐릭터 아티스트 > FBX 스켈레탈 메시 파이프라인

FBX 스켈레탈 메시 파이프라인


문서 변경내역: Jeff Wilson 작성. 홍성진 번역.

개요


FBX 임포트 파이프라인의 스켈레탈 메시가 지원되어, 효율적인 방식으로 게임에서 사용할 애니메이션 메시를 3D 어플리케이션에서 언리얼로 구해올 수 있게 되었습니다. 임포트되는 메시에 더해, 애니메이션과 모프 타겟도 원한다면 모두 같은 파일 안에서 FBX 포맷으로 전송할 수 있습니다. 또한 3D 어플리케이션에서 그 메시에 적용되었던 머티리얼에 사용된 텍스처( 디퓨즈와 노멀맵만이긴 해)도 임포트하여 머티리얼을 자동으로 만든 다음 임포트된 메시에 적용합니다.

FBX 를 사용한 스태틱 메시 임포트에 지원되는 것들은:

주: 현재 각 스켈레탈 메시에 대해 하나의 애니메이션만 하나의 파일로 임포트할 수 있습니다. 다만 한 스켈레탈 메시에 대한 여러 모프 타겟은 한 파일로 전송할 수 있습니다.

이 문서는 언리얼 에디터로 스켈레탈 메시를 임포트하기 위해 FBX 콘텐츠 파이프라인을 사용하는 법에 대한 기술적인 개요서입니다. 개발 환경에서 FBX 콘텐츠 파이프라인 작업에 관련된 자세한 정보, 팁과 꼼수에 대해서는 FBX Best Practices KR (FBX 우수 사례) 페이지를 확인하시기 바랍니다.

ALERT! 중요: 2011년 11월 부로 UE3 FBX 임포트 파이프라인에서 FBX 2012 버전이 사용됩니다. 익스포트에 다른 버전을 사용하면 호환성에 문제가 생길 수 있습니다.

일반 셋업


단일 메시 vs 다조각 메시

스켈레탈 메시는 하나의 연속적인 메시로, 아니면 모두 동일한 스켈레탈 메시에 스키닝된 여러 개의 메시로 이루어질 수도 있습니다.

multipart.jpg

여러 개의 메시를 사용하면 LOD 를 각 부분마다 다르게 할 수도 있고, 모듈식 캐릭터 시스템에서 사용할 부분을 별도로 익스포트할 수도 있습니다. 스켈레탈 메시를 이런 식으로 만든다고 별도의 퍼포먼스 비용이 드는 것은 아닙니다. 언리얼 에디터로 임포트될 때 모든 각각의 부분이 합쳐집니다.

리깅

리깅(Rigging)이란 메시를 본/조인트의 스켈레탈 계층구조에 바인딩하는 것을 말합니다. 그렇게 하면 아래 놓인 스켈레톤의 본/조인트가 움직이면서 메시의 버텍스를 변형(deform)시키는 식으로 영향을 끼치게 할 수 있습니다.

스켈레톤

사용하는 3D 어플리케이션과 개인설정에 따라 스켈레톤 생성 방법은 여러가지 있습니다.

3dsMax

3dsMax 에서 스켈레탈 계층구조를 어떻게 만들 것인가는 여러분께 달렸습니다. 아주 잘 돌아가는 표준 Bones Tools 를 사용해도 되고, 완전 자신만의 모양으로 제어되는 자체 오브젝트 계층구조를 만들어도 됩니다. 스키닝 방법은 많이 있으며, 게임 캐릭터의 애니메이션 릭을 만드는 법에 대한 튜토리얼도 쌓여 있습니다. 툴 작동법에 대한 세부적인 내용은 3dsMax 도움말을 참고해도 됩니다.

max_rig.jpg

Maya

마야에서는 스켈레탈 메시용 스켈레톤을 만드는 데 보통 Joint Tool 을 사용합니다. 여기서도 물론, 마야 툴 사용법이나 릭 제작법 관련 튜토리얼은 셀 수도 없습니다. 마야 도움말 역시 괜찮은 정보원입니다.

maya_rig.jpg

바인딩

메시를 스켈레톤에 바인딩하는 절차는 사용하는 3D 어플리케이션에 따라 달라집니다.

3dsMax

3dsMax 에서, 메시는 Skin 모디파이어를 사용하여 스켈레톤에 바인딩해야 합니다. 스켈레탈 메시가 하나의 온전한 메시로 되어 있든, 여러 메시 조각으로 기워져 있든, 절차는 같습니다.

  1. 바인딩할 메시를 선택합니다.
    max_skin_1.jpg
  2. Modifier List 에서 Skin 모디파이어를 추가합니다.
    max_skin_2.jpg
  3. Skin 모디파이어의 Parameters 롤아웃(펼쳐나오는 부분)에서, skin_add_button.jpg 버튼을 클릭하여 메시에 영향을 끼칠 본을 추가합니다. Select Bones 창이 열릴 것입니다.
    max_skin_3.jpg
  4. Select Bones 창에서 본을 선택한 다음 skin_select_button.jpg 버튼을 클릭하여 본을 추가합니다.
    max_skin_4.jpg
  5. 본이 모디파이어의 Bones 목록에 표시됩니다.
    max_skin_5.jpg
  6. 이제 각 본에 대한 메시의 버텍스 웨이트를 조절하여 어느 버텍스가 어느 본에 어느 정도로 영향받는지를 결정할 수 있습니다. 이 작업은 엔벨롭이든 버텍스 웨이티를 직접 입력해서든 다른 어떤 방법으로든 좋을 대로 해 주면 됩니다.
    max_skin_6.jpg

Maya

마야에서는, Smooth Bind 명령을 사용하여 메시를 스켈레톤에 바인딩합니다. 스켈레탈 메시가 하나의 온전한 메시로 되어 있든, 여러 메시 조각으로 기워져 있든, 절차는 같습니다.

  1. 바인딩할 메시를 선택합니다.
    maya_skin_1.jpg
  2. 스켈레톤의 루트 조인트를 Shift + 선택합니다.
    maya_skin_2.jpg
  3. Skin > Bind Skin 메뉴에서 Smooth Bind 를 선택합니다.
    maya_skin_3.jpg
  4. 이제 각 본에 대한 메시의 버텍스 웨이트를 조절하여 어느 버텍스가 어느 본에 어느 정도로 영향받는지를 결정할 수 있습니다. 이 작업은 Paint Skin Weight Tool 이든 다른 어떤 방법으로선 좋을 대로 해 주면 됩니다.
    maya_skin_4.jpg

피벗 포인트

언리얼 엔진 내 메시의 피벗 포인트는 트랜스폼(트랜슬레이션, 로테이션, 스케일)이 이루어지는 중심점을 결정합니다.

pivot.jpg

스켈레탈 메시의 피벗 포인트는 항상 스켈레톤의 루트 본/조인트에 위치합니다. 즉 스켈레톤의 루투는 씬 어디에 있어도 상관 없다는 뜻입니다. 그렇기에 3D 모델링 어플리케이션에서 익스포트할 때 원점(0,0,0)에 있습니다.

pivot_root.jpg

트라이앵글화

그래픽 하드웨어는 트라이앵글만 취급하기에 언리얼 엔진의 메시는 트라이앵글화 시켜야 합니다.

tris.jpg

메시를 확실히 트라이앵글화 시키는 방법은 여럿 있습니다.

  • 메시 모델링을 트라이로만 - 최상책으로, 최종 결과물에 최고의 콘트롤이 가능합니다.
  • 3D 앱에서 매시를 트라이앵글화 - 차선책으로, 익스포트 전 정리(cleanup)와 변경이 가능합니다.
  • 임포터가 메시를 트라이앵글화 - 그럭저럭, 정리는 안되지만 단순 메시에는 괜찮을 수 있습니다.
  • FBX 익스포터가 메시를 트라이앵글화 - 그럭저럭, 정리는 안되지만 단순 메시에는 괜찮을 수 있습니다.

주: FBX 익스포터가 메시를 트라이앵글화 시킬 수 있도록 하면, Split Non-Matching Triangles (불일치 트라이앵글 분할) 옵션을 켰을 때 스무딩이 완전히 뒤섞입니다. FBX 트라이앵글화된 메시를 Maya 로 도로 임포트한 뒤 다시 익스포트하면 스무딩이 제대로 나옵니다.

3D 어플리케이션에서는 항상 에지의 방향과 위치를 조절하여 메시를 수동으로 트라이앵글화해 주는 것이 좋습니다. 자동 트라이앵글화는 바람직하지 못한 결과가 날 수 있습니다.

tris_bad.jpg

노멀맵 만들기

메시에 대한 노멀맵은 저해상도 렌더 메시와 고해상도 디테일 메시를 둘 다 만드는 식으로 대부분의 모델링 어플리케이션 안에서 직접 만들 수 있습니다.

SideBySide.jpg

고해상도 디테일 메시의 지오메트리가 노멀맵의 노멀을 만드는 데 사용됩니다. 정확한 노멀맵 생성 과정에 대한 세부적인 내용은 소프트웨어의 문서를 참고하시기 바랍니다.

머티리얼

외부 어플리케이션에서 모델링한 메시에 적용된 머티리얼은 메시와 함께 익스포트된 다음 언리얼 에디터로 임포트됩니다. 텍스처를 따로 언리얼 에디터에 임포트한다거나, 머티리얼을 만들어서 적용한다거나 할 필요가 없으니, 그 과정이 효율화됩니다. FBX 파이프라인 사용시 임포트 과정에서 이러한 모든 작업을 해줄 수 있습니다.

이 머티리얼은 특정한 방식으로 셋업해 줄 필요도 있는데, 메시에 머티리얼이 여러 개 있거나 메시에 있는 머티리얼의 순서가 중요하거나 할 때 (즉 머티리얼 0 은 몸통이 되고 머티리얼 1 은 머리가 되어야 하는 모델인 경우) 특히나 그렇습니다.

익스포트용 머티리얼 셋업 관련 자세한 내용은 FBX Material Pipeline KR 페이지를 참고하시기 바랍니다.

버텍스 컬러

스켈레탈 메시용 버텍스 컬러는 (한 세트만) FBX 파이프라인을 사용하여 전송 가능합니다. 별다른 셋업은 필요치 않습니다.

vertex_color.jpg

3D 앱에서 메시 익스포트


스켈레탈 메시는 개별적으로 익스포트하거나 여러 메시를 하나의 FBX 파일로 익스포트할 수도 있습니다. 임포트 파이프라인은 여러 개의 스켈레탈 메시를 대상 패키지 안에 여러 개의 애셋으로 나누어 넣습니다.

3dsMax

  1. 뷰포트에서 익스포트할 메시와 본을 선택합니다.
    max_export_1.jpg
  2. File 메뉴에서 Export Selected (또는 선택된 것과 상관없이 씬에 있는 모든 것을 익스포트하려면 Export All) 를 선택합니다.
    max_export_2.jpg
  3. 메시를 익스포트할 FBX 파일 위치와 이름을 선택한 다음 max_save_button.jpg 버튼을 클릭하십시오.
    max_export_3.jpg
  4. FBX Export 대화창에서 적절한 옵션을 선택한 다음 max_ok_button.jpg 버튼을 클릭하여 메시를 담는 FBX 파일을 만듭니다.
    max_export_4.jpg

Maya

  1. 뷰포트에서 익스포트할 메시와 조인트를 선택합니다.
    maya_export_1.jpg
  2. File 메뉴에서 Export Selection (또는 선택된 것과 상관없이 씬에 있는 모든 것을 익스포트하려면 Export All) 를 선택합니다.
    maya_export_2.jpg
  3. 메시를 익스포트할 FBX 파일 위치와 이름을 선택한 다음 FBX Export 대화창에서 옵션을 적절히 선택해 주고 maya_export_button.jpg 버튼을 눌러 메시를 담는 FBX 파일을 만듭니다.
    maya_export_3.jpg

메시 임포트


  1. 콘텐츠 브라우저에서 import_button.jpg 버튼을 클릭합니다. 열리는 파일 브라우저에서 임포트하려는 FBX 파일 위치로 찾아가 선택합니다. 주: 불필요한 파일을 걸러내려면 드롭다운에서 import_fbxformat.jpg 를 선택하면 됩니다.
    import_file.jpg
  2. Import 대화창에서 적절히 세팅해 줍니다. 대부분의 경우 디폴트로 충분할 것입니다. 모든 세팅에 대한 세부적인 내용은 FBX 임포트 대화창 부분을 참고하시기 바랍니다. import_settings.jpg
  3. import_ok_button.jpg 버튼을 눌러 메시를 임포트합니다. 임포트에 성공하면 결과 메시, 머티리얼, 텍스처가 콘텐츠 브라우저에 표시됩니다.
    import_result.jpg

    애님세트 에디터에서 임포트된 메시를 살펴보면, 임포트가 제대로 되었는지 확인할 수 있습니다. 이미 호환 애니메이션을 임포트한 경우, 선택하여 재생해 보면 메시가 제대로 임포트되었는지 확인할 수 있습니다.

    import_anim.jpg

스켈레탈 메시 LOD


스켈레탈 메시가 카메라에서 멀어져 감에 따라 그 영향력을 제한하기 위해, 게임내 레벨 오브 디테일(LOD) 을 활용할 수 있습니다. 일반적으로 각 레벨 오브 디테일에는 트라이앵글 수도 적고, 스켈레톤도 단순하며, 적용된 머티리얼(들)도 단순하게 마련이라는 뜻입니다.

이러한 LOD 메시를 익스포트/임포트하는 데 FBX 파이프라인을 사용할 수 있습니다.

LOD 구성

일반

일반적으로 풀-디테일의 베이스 메시에서 최저-디테일의 LOD 메시에 이르기까지, 복잡도가 다양한 모델을 만들어 LOD 를 처리합니다. 이들 모두 같은 기준점으로 정렬되어 같은 공간을 차지하면서, 모두 같은 스켈레톤에 입히(skin)기도 해야 합니다. 3D 어플리케이션에서 다수의 개별 메시로 스켈레탈 메시를 이루는 것도 가능합니다. 이들 각 부분에 나머지 메시와 다른 LOD 를 갖게 할 수 있습니다. 즉 일부는 각기 다른 LOD 버전을 사용하면서 일부는 높은 디테일 버전을 계속 사용할 수 있는 것입니다. 각 LOD 메시에 완전히 다른 머티리얼을, 그 갯수 조차 달리 해서 할당할 수도 있습니다. 즉 베이스 메시는 여러 머티리얼을 통해 확대시 바라는 만큼의 디테일을 낼 수 있도록 하면서도, 디테일이 눈에 띄지 않는 부분에는 단일 머티리얼을 사용하여 낮은 디테일 메시를 사용할 수도 있습니다.

3dsMax

  1. 모든 메시를 (베이스와 LOD, 순서와 무관하게)선택한 다음 그룹 메뉴의 그룹 명령을 선택합니다.
    max_lod_group.jpg
  2. 열리는 대화창에 새 그룹 이름을 입력하고 max_lod_ok_button.jpg 버튼을 눌러 그룹을 만듭니다.
    max_lod_group_name.jpg
  3. max_utilities_button.jpg 버튼을 눌러 유틸리티 패널을 띄운 다음 레벨 오브 디테일 유틸티를 선택합니다. 주: max_utility_more_button.jpg 를 클릭한 다음 목록에서 선택해 줘야 할 수도 있습니다.
    max_lod_utility.jpg
  4. 그룹을 선택한 상태로 max_lod_create_button.jpg 버튼을 눌러 새로운 LOD 세트를 만들고, 선택된 그룹에 있는 메시를 추가합니다. 메시의 순서는 복잡도에 따라 자동으로 결정됩니다.
    max_lod_contents.jpg

Maya

  1. 모든 메시를 (베이스와 LOD) 베이스에서 마지막 LOD 까지 순서대로 선택합니다. 순서대로 추가되니 복잡도 순서를 유지하기 위해서는 중요합니다. 편집 메뉴에서 레벨 오브 디테일 > 그룹 명령을 선택합니다.
    maya_lod_group.jpg
  2. LOD Group 아래 모든 메시가 그룹되어 있을 것입니다.
    maya_lod_contents.jpg

다조각 LOD

다조각 스켈레탈 메시용 LOD 구성 작업은, LOD 를 가진 개별 조각마다 LOD 그룹이 있다는 점만 제외하고는, 풀 메시용 LOD 구성 작업과 거의 같습니다. 그 개별 LOD 그룹 구성 과정도 위에 서술한 과정과 같습니다.

LOD 익스포트

스켈레탈 메시 LOD 를 익스포트하려면:

3dsMax

  1. 익스포트할 LOD 세트와 본을 이루는 메시 그룹을 선택합니다.
    max_lod_export_select.jpg
  2. 베이스 메시에 사용한 (위의 메시 익스포트 부분) 익스포트 절차를 그대로 따릅니다.

Maya

  1. 익스포트할 LOD 그룹과 조인트를 선택합니다.
    maya_lod_export_select.jpg
  2. 베이스 메시에 사용한 (위의 메시 익스포트 부분) 익스포트 절차를 그대로 따릅니다.

LOD 임포트

스태틱 메시 LOD 는 콘텐츠 브라우저에서 베이스 메시와 함께 임포트할 수도 있고, 애님세트 에디터를 통해 개별적으로 임포트할 수도 있습니다.

메시와 LOD

  1. 콘텐츠 브라우저에서 import_button.jpg 버튼을 클릭합니다. 열리는 파일 브라우저에서 임포트하려는 FBX 파일 위치로 이동하여 선택홥니다. 주: 필터를 적용하려면 import_fbxformat.jpg 드롭다운을 선택하면 됩니다.
    import_file.jpg
  2. Import 대화창에 적절한 세팅을 선택합니다. Import LODs 가 켜져있는지 확인합니다. 주: LOD 를 임포트할 때, 임포트하는 메시 이름은 기본 작명 규칙 을 따릅니다. 모든 세팅에 대한 상세 설명은 FBX Import 대화창 부분을 참고하시기 바랍니다.
    lod_import_settings.jpg
  3. 메시와 LOD 를 임포트하려면 import_ok_button.jpg 버튼을 클릭합니다. 성공했다면 콘텐츠 브라우저에 결과 메시, 머티리얼, 텍스처가 표시됩니다.
    lod_import_result.jpg

    애님세트 에디터에서 임포트한 메시를 띄운 상태로 툴바에 있는 lod_mesh_buttons.jpg 버튼을 사용하면 LOD 를 순환해 가며 볼 수 있습니다.

개별 LOD

  1. 콘텐츠 브라우저에서 베이스 메시를 더블클릭하거나 우클릭 > 애님세트 뷰어를 사용하여 편집 을 선택하여 애님세트 에디터로 엽니다.
  2. 애님세트 에디터의 파일 메뉴에서, 메시 LOD 임포트 를 선택합니다.
    lod_mesh_menu.jpg
  3. 파일 브라우저에서 LOD 메시를 담고 있는 FBX 파일 위치로 이동하여 선택합니다. 주: 파일 포맷을 lod_mesh_fbx_button.jpg 로 설정하지 않으면 파일이 보이지 않을 수 있습니다.
    lod_mesh_file.jpg
  4. Import LOD 대화창의 드롭다운 메뉴에서 임포트하려는 메시의 LOD 레벨을 선택합니다. 그런 다음 lod_mesh_ok_button.jpg 버튼을 눌러 LOD 메시를 임포트합니다.
    lod_mesh_dialog.jpg
  5. 임포트가 성공하면 알림창이 뜨며, lod_mesh_buttons.jpg 툴바 버튼 중 임포트한 LOD 에 대한 버튼이 켜집니다.
    lod_mesh_success.jpg
  6. 임포트하려는 LOD 메시에 대해 위 과정을 반복합니다.
  7. 모든 LOD 메시 임포트를 마친 후, 툴바의 lod_mesh_buttons.jpg 버튼을 사용하여 LOD 메시를 미리볼 수 있습니다.

언리얼 에디터에서 FBX 로 익스포트


예전에 언리얼 에디터로 임포트한 스켈레탈 메시는 콘텐츠 브라우저 안에서 FBX 파일로 다시 익스포트할 수 있습니다.

ALERT! 주: 쿠킹된 패키지에 있는 애셋은 익스포트 불가능합니다. 쿠킹해 버리는 소스 데이터가 익스포트 과정에 필요하기 때문입니다.

  1. 콘텐츠 브라우저에서 익스포트하려는 스켈레탈 메시를 선택합니다.
    export_select.jpg
  2. 스켈레탈 메시에 우클릭하고 파일로 익스포트 를 누릅니다.
    export_context.jpg
  3. 뜨는 파일창에서 익스포트할 파일 위치와 이름을 선택합니다. 주: 파일 종류로 FBX 파일 (*.FBX) 가 선택되었는지 확인하세요.
    export_file.jpg

애니메이션


FBX 콘텐츠 파이프라인을 사용하여 애니메이션을 만들고 임포트하는 법 관련 세부 내용은, FBX Animation Pipeline KR (FBX 애니메이션 파이프라인) 페이지를 확인하시기 바랍니다.

모프 타겟


FBX 콘텐츠 파이프라인을 사용하여 모프 타겟을 만들고 임포트하는 법 관련 세부 내용은, FBX Morph Target Pipeline KR (FBX 모프 타겟 파이프라인) 페이지를 확인하시기 바랍니다.