비히클을 위한 기본적인 최소 아트 구성은 단순한 스켈레탈 메시 입니다. 비히클 타입에 따라 필요한 아트 구성의 복잡성이 결정되며, 서스펜션에 특별한 고려 사항이 필요할 수도 있습니다. 탱크의 경우 서스펜션이 거의 항상 보이지 않을 것이므로 복잡한 서스펜션 구성을 필요로 하지 않지만 비히클 게임 에 등장하는 것과 같은 사막용 소형 자동차의 경우 노출된 컴포넌트 전체가 그럴 듯하게 움직일 수 있도록 더 많은 조인트를 필요로 합니다.
기초
비히클 메시는 양의 X축을 향해야 합니다.
언리얼 엔진에서 사용하려면 휠의 반경을 cm 단위로 측정해야 합니다.
위 이미지에서는 Maya의 Distance Measurement 툴을 사용하여 휠에서 서로 반대편에 위치한 2개 버텍스 사이의 거리를 기반으로 휠의 지름을 구합니다. 휠의 반경은 이 값의 절반입니다.
3D Studio Max의 Helpers 섹션에도 유사한 툴이 제공됩니다.
조인트
휠 4개를 갖춘 비히클에 필요한 최소 조인트 수는 5:1 루트와 휠 4개입니다. 휠과 루트 조인트는 X 앞쪽, Z 위쪽으로 정렬되어야 합니다.
그러면 Y축으로 롤링하고 Z축으로 스티어링할 수 있습니다.
나머지 조인트는 적절하게 배치할 수 있지만 애니메이션 블루프린트 에 대한 Look At 노드 등은 X 앞쪽을 가정합니다.
시각적으로 어색하게 보이는 것을 방지하려면 휠 조인트를 정확하게 중앙으로 설정해야 합니다. 휠 메시가 중앙에서 벗어나면 비주얼 메시가 콜리전 탐지에 사용되지 않습니다. 그러면 휠이 깨진 것처럼 보이고 모션 블러로 인해 도드라져 보이게 됩니다.
바인딩
Maya의 표준 스무드 바인드나 3DS Max 휠의 스킨 모디파이어는 조인트 하나에 대해서만 가중치를 가지므로 어색해 보이는 디포메이션 없이 자유롭게 스핀할 수 있습니다. 쇼크와 스트러트의 경우 화려한 스키닝으로 어떻게든 처리할 수 있지만 언리얼 에디터 측면에서는 더 많은 고민이 필요합니다.
익스포트
비히클은 스켈레탈 메시 로 익스포트되며, 특별한 고려 사항은 없습니다.
임포트
비히클은 스켈레탈 메시를 위한 표준 FBX 임포트를 사용하여 임포트됩니다. 임포터의 피직스 에셋 생성(Create Physics Asset) 옵션을 활성화하는 것이 좋습니다.
피직스 에셋
피직스 에셋은 비히클에서 매우 중요한 부분을 차지하므로 간과하거나 건너뛰어서는 안 됩니다. 언리얼 엔진에서 처음 피직스 에셋을 생성하면 다음과 같은 모습이 될 것입니다.
이는 피직스 에셋 툴(Physics Asset Tool)(phAT)이 조인트에 스킨 지정된 버텍스를 최대한 적절하게 래핑하려고 시도하기 때문입니다. 하지만 모두 삭제하고 다시 생성해야 합니다. 그 이유는 PhAT는 현재 모든 피직스 바디를 포함하는 컨스트레인트를 깔끔하게 재생성할 수 없기 때문입니다. 따라서 중간 피직스 바디를 삭제하는 경우 계층구조에 새 컨스트레인트를 생성하지 않습니다. 하지만 피직스 바디를 모두 삭제하고 비히클 루트 조인트부터 빌드하기 시작하면 모든 컨스트레인트가 올바르게 생성됩니다.
디폴트 디스플레이 옵션(피직스 바디만)이 선택된 스켈레톤 트리(Skeleton Tree) 패널에서 모든 항목을 선택하여 삭제합니다. 그러면 에셋에서 모든 피직스 바디가 삭제됩니다.
피직스 바디 생성 구성
-
스켈레톤 트리 패널에서 옵션(Options) 드롭다운 메뉴를 열고 모든 본 표시(Show All Bones) 를 선택합니다.
-
각 생성 단계에서 툴(Tools) 패널의 바디 생성(Body Creation) 세팅을 확인합니다. 특히 두 가지 세팅에 주의를 기울여야 합니다.
- 최소 본 크기(Min Bone Size) 는 피직스 바디 생성에 필요한 본 크기를 정의합니다. 스켈레탈 메시에 적절한 크기로 설정해야 합니다. 이 예시에서는 5로 설정했습니다.
- 프리미티브 타입(Primitive Type) 은 생성된 피직스 바디의 기본 셰이프를 제어합니다. 생성되는 피직스 바디에 따라 타입을 변경해야 합니다.
- 이 예시의 목적에 따라 나머지 옵션은 그대로 둡니다.
바디 콜리전 생성
이제 루트 조인트부터 시작해서 피직스 바디를 생성합니다. 물리적으로 시뮬레이션되거나 비히클 바운드에 영향을 미치는 조인트에서만 피직스 바디가 필요합니다.
이 소형 자동차의 경우 바디에 사용할 박스와 휠에 사용할 스피어로 시작해도 충분하지만 원하는 행동을 얻기 위해 다른 피직스 바디가 몇 개 필요합니다.
- 바디 생성 프리미티브 타입(Body Creation Primitive Type) 을 박스(Box) 로 변경합니다.
- 스켈레톤 트리 패널에서 rootJNT 본을 우클릭하여 컨텍스트 메뉴 를 엽니다.
-
바디 추가/대체(Add/Replace Bodies) 를 선택합니다.
-
그런 다음 새 피직스 바디를 이동, 회전, 스케일 조절 하여 비히클의 셰이프를 좀 더 다듬어 줍니다.
생성된 피직스 바디는 나머지 메시용으로 생성된 컨스트레인트 및 피직스 바디 계층구조의 루트가 됩니다. 그래프(Graphs) 패널에서 '스켈레톤 트리' 패널의 본과 함께 그 관계를 직접 확인할 수 있습니다.
휠 콜리전 생성
휠에 사용할 스피어를 생성하려면 다음 단계를 따릅니다.
-
바디 생성 프리미티브 타입 을 스피어(Sphere) 로 변경합니다.
- 스켈레톤 트리 패널에서 휠 조인트 본을 선택하고 우클릭하여 컨텍스트 메뉴 를 엽니다.
-
바디 추가/대체 를 선택합니다.
- 새로 생성된 휠 피직스 바디를 선택하고 우클릭하여 컨텍스트 메뉴 를 엽니다.
-
피직스 타입(Physics Type) 에서 키네마틱(Kinematic) 을 선택합니다.
디테일(Details) 패널의 피직스(Physics) 섹션에서 피직스 타입 을 변경할 수도 있습니다.
이렇게 해야 휠이 비히클 바운드에 영향을 미치기 때문에 섀도 및 컬링이 올바르게 발생하며, 게임이 시작되면 비히클이 굴러가는 것을 방지할 수 있습니다.
휠 피직스 바디는 콜리전에 사용되지 않습니다. 현재 휠은 월드와의 인터랙션을 위해 레이 캐스팅을 사용합니다.
더 알아보기
지금까지 임포트된 기본 비히클 메시를 위한 단순한 구성을 살펴봤습니다. 비히클 게임에서 비히클을 위한 피직스 에셋을 살펴보면 다음과 같습니다.
휠 외에 모든 콜리전 바디가 비히클의 루트 조인트에 있습니다. 이는 휠이 특정 게임 엘리먼트에 걸리지 않게 하며 휠 메시가 벽 또는 난간에 클리핑되지 않도록 방지합니다.