UDN
Search public documentation:

ImportingSkeletalLODsKR
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 홈 > 스켈레탈 메시 > 스켈레탈 LOD 임포트하기
UE3 홈 > 캐릭터 아티스트 > 스켈레탈 LOD 임포트하기

스켈레탈 LOD 임포트하기


문서 변경내역: Andrew Moise 작성. Laurent Delayen 업데이트. 홍성진 번역.

개요


스켈레탈 메시의 본과 버텍스 전부를 업데이트하는 것은 꽤나 비쌀 수 있기 때문에, 언리얼 엔진 3는 스켈레탈 메시를 보는 거리에 따라 상대적으로 스켈레탈 메시의 다른 버전 LOD를 렌더하여 속도를 높이는 기능이 있습니다. 한 씬에 렌더되는 스켈레탈 메시가 많을 때는 이 기능으로 엄청난 최적화가 가능합니다.

언리얼 엔진 2 에서는 스켈레탈 메시의 로우 폴리곤 버전을 자동 생성했었으나, 아티스트의 수제 LOD에 비하면 개발에 때만도 못한지라 버려버렸습니다.

언리얼 엔진 3 에서는 스켈레탈 메시에 대한 메시와 본 LOD 둘 다 지원합니다. 낮은 LOD 메시를 자동 생성하는 툴 같은건 없으며, 파이프라인에 사용되는 콘텐츠 제작 패키지에서 아티스트가 수작업을 해 줘야 합니다. 그런 다음 애님세트 에디터 를 사용하여 그 수제 메시를 기존 스켈레탈 메시로 임포트해 오는 것입니다. 거기서 게임의 어느 정도 거리에 LOD 를 사용할지 제어할 수 있습니다. 메시의 낮은 LOD 버전을 렌더할 때는, 애니메이션 시스템 역시 그만큼 낮아진 본만 애니메이트하고 업데이트하면 되는 것입니다.

낮은 LOD 메시 조건


메시의 낮은 LOD 버전을 임포트할 때, 다른 것에 대한 LOD로 사용할 메시가 갖춰야 하는 필수 조건이 있습니다:

  • 본을 제거할 때, 계층구조 끝의 것만 제거할 수 있습니다. 즉 LOD 용이라면 손가락을 제거하는 정도여야지, 예를 들어 척추뼈를 제거할 수는 없을 것입니다.
  • 베이스 메시와 LOD 의 루트 본은 같아야 합니다.
  • 베이스 메시와 LOD 의 계층구조 역시 같아야 합니다.

낮은 LOD 버전 메시의 버텍스 별로 딱 하나의 영향력만 끼치도록 하는 것이 좋은데, 그래야 스키닝 비용이 감소되기 때문입니다. 'soft' 버텍스가 포함된 LOD 를 임포트하려 하면 경고창이 뜨는데, 게임의 Editor.ini 파일에서 (AnimSetViewer 부분의 CheckSingleInfluenceLOD 옵션을 통해) 끌 수 있기는 합니다.

LOD 보기


애님세트 뷰어 툴바에 있는 버튼으로 한 메시의 여러 LOD가 어때 보이나 확인할 수 있습니다:

LODButtons.jpg

  • Auto - 사용할 LOD 레벨을 화면상의 메시 크기에 따라 자동 선택합니다. 게임에서 메시가 어때 보이는지 미리볼 수 있습니다.
  • B - 강제로 '베이스' 메시(, 즉 LOD 0)를 표시합니다.
  • 1 - 강제로 LOD 1 을 표시합니다.
  • 2 - 강제로 LOD 2 를 표시합니다.
  • 3 - 강제로 LOD 3 을 표시합니다.

레벨에 임포트된 LOD 메시가 없는 경우 1, 2, 3 버튼은 회색으로 변해 누를 수 없습니다.

3D 뷰포트 상단에 현재 사용중인 LOD와 함께 그 버텍스와 본 수까지 약간의 정보가 표시됩니다. 애님세트 에디터에서 Show Bones 나 Show Bone Name 을 켜 뒀다면, 현재 표시되는 LOD 에 업데이트되는 본만 나타날 것입니다.

SkeletalLODCathode.jpg

LOD 임포트하기


먼저 LOD를 추가시킬 스켈레탈 메시를 애님세트 뷰어로 엽니다. 그런 다음 '파일' 메뉴에서 '메시 LOD 임포트'를 선택합니다. 그 메시의 낮은 디테일 버전이 포함된 PSK 파일을 선택하라는 창이 뜹니다. 임포트할 .PSK 파일을 선택하면, 이 메시를 어느 LOD 레벨로 임포트해 올 것인지 선택할 수 있는 콤보 박스가 뜹니다. LOD 0 이 '베이스' 또는 가장 폴리곤이 많은 메시입니다. LOD 1 은 그보다 적은 단계고, 그 뒤로 주욱 이어집니다. 이미 있는 LOD 로 임포트하면 기존 LOD 메시를 덮어쓰게 됩니다.

임포트가 잘 끝나 에러가 나지 않으면, 툴바에서 그에 해당하는 '강제 LOD' 버튼을 눌러 메시를 제대로 가져왔는지 확인할 수 있습니다.

LOD 환경설정하기


LOD 가 제대로 돌아가도록 하기 위해 조절해 줄 세팅이 조금 있습니다. 왼편 [메시] 탭에 있는 LODInfo 배열 안에는 각 레벨에 맞는 칸이 있습니다.

LODInfo.jpg

이 배열의 0 번 칸은 베이스 메시 LOD 칸이니 무시해도 됩니다.

  • DisplayFactor 표시 팩터 - 화면상의 메시 크기에 따라 LOD 사용 여부를 결정하는 옵션입니다. 수치가 작아질 수록 메시가 멀리 있을 때 LOD 를 사용한다는 뜻입니다. 3D 창 상단의 메시 미리보기 대한 Display Factor 부분에서 이 값을 확인할 수 있습니다. 지속되는 LOD 레벨에 대한 DisplayFactor 는 지난 번 것보다 작아질 것입니다.
  • LODHysteresis LOD 밀어내기 - 딱 경계에 있어서 두 LOD 레벨이 전환되느라 메시가 깜빡이는 현상을 피하고자, 이 파라미터로 전환시 약간의 '편향치'를 둘 수 있습니다.
  • LODMaterialMap LOD 머티리얼 맵 - 메시의 LOD 버전은 베이스 메시와 같은 머티리얼을 사용해야 합니다. 그러나 메시를 임포트할 때 머티리얼은 다른 순서로 임포트될 수도 있습니다. 스켈레탈 메시의 Materials 배열 중 어느 엘리먼트를 각 LOD 섹션 매핑시킬지, 이 배열로 선택할 수 있습니다.

머티리얼과 LOD


LOD 를 가장 쉽게 셋업하는 방법은 베이스 메시와 같은 머티리얼을 사용하는 것입니다. 각 스켈레탈 메시 컴포넌트(스켈레탈 메시의 인스턴스)에는 자체적으로 Materials 배열이 있어서 스켈레탈 메시의 Materials 배열에 있는 머티리얼을 덮어쓰니, 그 배열 안에 LOD에 사용된 머티리얼 전부를 유지할 수 있습니다. 인스턴스별 덮어쓰기의 예제라면 다양한 팀 스킨이나 면을 적용하는 것입니다. 여기에 베이스 메시가 사용하지 않는 머티리얼을 사용하는 LOD를 만들려는 경우 역시도 가능합니다. 스켈레탈 메시의 Materials 배열에 새 엘리먼트를 추가하면, 베이스 메시는 이 엘리먼트를 사용하지 않을 것이니, 거기에 새 머티리얼을 넣을 수 있습니다. 그 후 그 LOD에 대한 LODMaterialMap 을 사용하여 새 슬롯을 지정해 주면 됩니다.

LOD, 소켓, 피직스 애셋


모든 LOD에 나타나는 본에만 소켓을 만들 수 있습니다. 새 소켓을 만들 때, 본 선택 콤보창에는 모든 LOD 에 있는 본들만 나타날 것입니다. 소켓에 필수인 본이 빠져있는 LOD 를 새로 임포트해 보면, 에러가 날 것입니다.

피직스 애셋에 필수인 본은, 그 LOD 메시에 필수인 경우가 아니라 할지라도 항상 업데이트됩니다. 왜냐하면 누군가가 자기보다 멀리 있어도 변하지 않아야 하는 본별 콜리전 디텍션에 사용되기 때문입니다.