스태틱 메시에 콜리전 구성하기

콜리전을 구성하는 방법을 살펴봅니다.

Choose your operating system:

Windows

macOS

Linux

언리얼 엔진 5에서는 스태틱 메시(Static Mesh) 를 사용하여 게임플레이 동안 텍스처 또는 머티리얼을 변경하거나, 마티네를 사용하여 레벨 내에서 움직이는 등의 많은 작업을 수행할 수 있습니다. 레벨에서 스태틱 메시로 어떤 작업을 수행하든 플레이어가 메시를 통과하거나 관통할 수 없도록 해야 합니다. 이를 위해서는 스태틱 메시에 콜리전을 구성하는 것이 좋습니다.

구성

시작하기 위해 '일인칭(First Person)' 게임 템플릿을 사용하여 새로운 프로젝트를 생성하고 시작용 콘텐츠(Starter Content) 를 활성화합니다. 언리얼 엔진에서 새 프로젝트를 생성하는 방법에 대한 자세한 내용은 새 프로젝트를 생성하기를 참고하세요.

작업할 레벨과 스태틱 메시가 이미 있을 수도 있습니다. 그렇다면 이 단계를 건너뛰어도 됩니다. 하지만 템플릿을 사용하면 발사체를 발사하여 나중에 다룰 지점을 직접 확인할 수 있으므로 예시를 따라하는 데 도움이 됩니다.

전체 크기로 보려면 이미지를 클릭하세요.

프로젝트가 열리면 콘텐츠 브라우저(Content Browser) 에서 StarterContent 폴더를 검색합니다. 아래 파일 경로에서 SM_Door 로 명명된 스태틱 메시를 찾습니다.

Content/StarterContent/Props/SM_Door

전체 크기로 보려면 이미지를 클릭하세요.

전체 크기로 보려면 이미지를 클릭하세요.

SM_DoorSM 은 'Static Mesh'의 약자로, 언리얼 엔진에서 권장하는 표준 명명 규칙을 따라 지어졌습니다. 일관된 명명 규칙을 따르면 프로젝트를 체계적으로 정리할 수 있습니다. 언리얼 엔진에서 파일의 이름을 짓는 명명 규칙에 대한 자세한 내용은 권장하는 에셋 명명 규칙을 참고하세요.

SM_Door 스태틱 메시를 찾았으면 아래 두 방법 중 하나로 스태틱 메시 에디터(Static Mesh Editor) 를 엽니다.

  • 에셋을 더블클릭 합니다.

  • 에셋을 우클릭하고 컨텍스트 메뉴에서 편집(Edit) 을 선택합니다.

에디터가 열리면 아래의 이미지와 비슷할 것입니다.

전체 크기로 보려면 이미지를 클릭하세요.

단순 셰이프 메시의 콜리전

기본적으로 이 메시에는 콜리전 세트가 없습니다. 콜리전이 없으면 플레이어는 메시를 통과하여 지나갈 수 있습니다.

콜리전과 플레이를 구성하기 전에 레벨에 문을 배치하여 이를 시험할 수 있습니다.

대체 텍스트]

또한 문에 발사체를 발사하면 문이 날아가게 하거나 문을 공중에 놓으면 바닥으로 떨어지게 하려면 디테일(Details) 패널에서 피직스 시뮬레이션(Simulate Physics)true 로 설정해야 합니다. 하지만 스태틱 메시에 콜리전이 없는 경우 이 옵션은 기본적으로 사용할 수 없습니다.

전체 크기로 보려면 이미지를 클릭하세요.

대부분의 경우에 이는 바람직하지 않기 때문에 이 메시를 위한 콜리전을 구성해야 합니다.

에디터 상단의 메뉴 바에 콜리전(Collision) 드롭다운 메뉴가 있습니다. 이것을 클릭하여 메시에 콜리전을 추가하기 위한 옵션을 확인합니다. 툴바에서 콜리전 드롭다운 메뉴(콜리전 버튼)를 클릭하여 이 옵션에 액세스할 수도 있습니다. '스태틱 메시 에디터'의 레이아웃에 대한 자세한 내용은 스태틱 메시 에디터 UI를 참고하세요.

전체 크기로 보려면 이미지를 클릭하세요.

문에 사용된 메시는 비교적 단순한 셰이프입니다. 셰이프가 단순하면 메시의 콜리전을 구성할 때 수월합니다.

콜리전 메뉴 상단의 세 개의 옵션은 메시로 막거나 오버랩할 수 있는 바운드와 그렇게 할 수 없는 바운드로 사용되는 단순한 셰이프를 가진 메시를 중심으로 구성되어 있습니다. 아래는 단순한 셰이프의 콜리전 메시를 가진 문 메시의 예시입니다.

Sphere 1

Capsule 1

Box 1

Sphere 2

Capsule 2

Box 2

구체 단순화 콜리전

캡슐 단순화 콜리전

박스 단순화 콜리전

메시에 단순화된 콜리전이 있고 다른 콜리전을 추가한 경우 새로운 콜리전이 다른 콜리전을 대체하는 것이 아니라 여기에 추가됩니다.

먼저 콜리전을 제거하지 않고 위의 세 가지 단순화 콜리전을 추가하면 다음 이미지와 같은 결과를 얻게 됩니다.

전체 크기로 보려면 이미지를 클릭하세요.

이를 해결하려면 다음 중 원하는 방법을 선택합니다.

  • 세 가지 콜리전 중 하나를 선택하고 Delete 키를 누릅니다.

  • 콜리전 드롭다운 메뉴에서 선택된 콜리전 삭제(Delete Selected Collision) 를 선택하여 선택된 콜리전을 하나씩 삭제합니다.

  • 콜리전 드롭다운 메뉴에서 콜리전 제거(Remove Collision) 를 선택하여 메시의 모든 콜리전을 제거합니다.

전체 크기로 보려면 이미지를 클릭하세요.

콜리전을 적용한 후에는 콜리전 메시를 클릭하여 이동 위젯을 확인합니다. 언리얼 엔진 5 내의 다른 오브젝트에서와 마찬가지로 콜리전 메시를 이동, 회전, 스케일 조절할 수 있습니다.

더 복잡한 메시의 콜리전

다음의 메시에 이전 섹션에서 구성한 단순 콜리전을 사용할 수 있습니다.

  • 캡슐 또는 박스에 쉽게 맞출 수 있는 메시

  • 정교한 콜리전이 필요하지 않은 메시

하지만 정교한 콜리전이 필요한 복잡한 셰이프의 메시가 있을 수 있습니다. 이 섹션에서는 이러한 메시를 구성하는 방법 대해 알아봅니다.

StarterContentProps 폴더로 돌아가 SM_Chair 스태틱 메시를 찾습니다. 섬네일을 더블클릭 하여 '스태틱 메시 에디터'를 엽니다.

이 메시는 이미 콜리전을 가지고 있으며 아래 이미지와 같이 보입니다.

전체 크기로 보려면 이미지를 클릭하세요.

플레이어가 의자의 쿠션 위에 앉을 수 있어야 한다고 가정해 보겠습니다. 의자의 디폴트 콜리전 메시에는 플레이어가 앉지 못하도록 하는 보이지 않는 차단물이 있습니다.

플레이어는 게임을 플레이할 때 콜리전 메시가 아닌 스태틱 메시만 볼 수 있습니다. 따라서 플레이어가 의자에 앉으려고 할 때 의자에 앉을 수 없는 이유를 알 수 없습니다.

콜리전 드롭다운 메뉴에서 콜리전 제거 를 선택하여 메시에서 콜리전을 제거합니다. 이전 섹션에서 사용한 프리미티브 셰이프를 사용할 수도 있지만 아래의 이미지에서 확인할 수 있는 것처럼 이는 적절한 모습이 아닙니다.

Chair Sphere

Chair Capsule

Chair Box

구체 단순화 콜리전

캡슐 단순화 콜리전

박스 단순화 콜리전

프리미티브 셰이프 중에는 여기서 필요로 하는 정교한 콜리전을 가진 셰이프가 없어 보입니다. 하지만 콜리전 드롭다운 메뉴에서 다른 옵션을 사용하면 정교한 콜리전에 근접한 결과를 얻을 수 있습니다. 이러한 옵션을 K-DOP 단순 콜리전 제너레이터라고 합니다.

K-DOP(K Discrete Oriented Polytope)는 일종의 바운딩 볼륨으로, K는 축 정렬 평면의 수를 나타냅니다. 기본적으로 K-DOP는 K축에 평행한 평면을 메시 쪽으로 최대한 가까이 밀어 붙입니다. 결과 셰이프는 콜리전 헐로 사용할 수 있습니다.

'스태틱 메시 에디터'에서 K는 다음과 같을 수 있습니다.

  • 10 - 4개의 변이 각진 박스 - 변이 X나 Y 또는 Z에 평행하도록 선택할 수 있습니다.

  • 18 - 모든 변이 각진 박스

  • 26 - 모든 변과 모서리가 각진 박스

전체 크기로 보려면 이미지를 클릭하세요.

다음은 10-DOP, 18-DOP, 26-DOP일 때 의자 메시의 모습입니다.

10-DOP

18-DOP

26-DOP

10DOP

18DOP

26DOP

이러한 콜리전 옵션은 여기서 필요로 하는 정교함에 좀더 근접하지만, 쿠션 사이에는 플레이어가 의자에 앉지 못하도록 할 수 있는 틈이 여전히 존재합니다.

콜리전 제거 를 한번 더 선택합니다. 그런 다음 콜리전 드롭다운 메뉴에서 자동 컨벡스 콜리전(Auto Convex Collision) 을 선택합니다.

전체 크기로 보려면 이미지를 클릭하세요.

아래 이미지와 같이 컨벡스 분해(Convex Decomposition) 패널이 '디테일' 패널에 표시됩니다.

전체 크기로 보려면 이미지를 클릭하세요.

아래 표에는 컨벡스 분해 패널의 각 옵션이 설명되어 있습니다.

옵션

설명

헐 개수(Hull Count)

콜리전을 나타낼 프리미티브의 개수를 결정합니다.

최대 헐 버텍스(Max Hull Verts)

콜리전이 가지고 있는 버텍스의 수를 늘리거나 줄입니다.

헐 정밀도(Hull Precision)

콜리전을 생성할 때 사용할 복셀 수입니다.

값이 높을수록 콜리전이 더 정교해지지만 그만큼 복잡해집니다. 적용(Apply) 을 클릭하면 메시에 이러한 세팅이 적용되고 콜리전 볼륨이 표시됩니다.

Auto Convex Collision

Auto Convex Collision

디폴트 세팅

최대 정확도 및 최대 헐 버텍스

복잡한 콜리전을 구성할 수 있는 또 다른 방법은 단순 셰이프 콜리전 메시를 사용하는 것입니다. 앞서 말했듯이, 또 다른 단순 콜리전 메시를 생성하면 원래 메시를 대체하는 것이 아니라 원래 메시에 추가됩니다.

또한 각 콜리전 메시는 자체 트랜스폼 위젯을 가지고 있어 개별적으로 이동, 회전, 스케일 조절할 수 있습니다. 이를 사용하여 스태틱 메시를 위한 커스텀 콜리전을 생성할 수 있습니다.

시작하려면 다음 단계를 따릅니다.

  1. 콜리전 드롭다운 메뉴에서 박스 단순화 콜리전 추가(Add Box Simplified Collision) 를 선택합니다.

  2. 콜리전 메시를 클릭 하여 메시의 트랜스폼 위젯을 가져옵니다.

  3. 콜리전 메시를 이동, 회전, 스케일 조절하여 의자의 팔걸이를 따라 바닥에 잘 배치되도록 합니다.

  4. 콜리전 메시가 선택된 상태에서 '콜리전' 드롭다운 메뉴에서 선택된 콜리전 복제(Duplicate Selected Collision) 를 선택하거나 Ctrl+D 를 눌러 콜리전 메시를 복제합니다.

  5. 이 콜리전 메시를 움직여 의자의 또 다른 팔걸이를 따라 바닥에 잘 배치되도록 합니다.

  6. 메시를 다시 복제합니다.

  7. 이 새 메시가 선택된 상태에서 이 메시를 이동, 스케일 조절 및 회전하여 의자의 하부를 따라 잘 배치되도록 합니다.

  8. 해당 콜리전 메시를 복제하고 움직여 의자의 좌석을 따라 잘 배치되도록 합니다.

  9. 메시를 한번 더 복제하고 회전하여 의자의 등받이를 따라 잘 배치되도록 합니다.

이렇게 하면 아래의 이미지와 같은 결과를 얻게 됩니다.

전체 크기로 보려면 이미지를 클릭하세요.

뒤로 되돌아가서 의자의 셰이프를 더 정교하게 따라할 수도 있지만, 현재의 콜리전 볼륨으로도 플레이어가 의자의 쿠션 위에 앉을 수 있습니다.

피직스 시뮬레이션 및 콜리전 프리셋

이제 스태틱 메시에 콜리전이 적용되었으므로 피직스를 시뮬레이션할 수 있습니다. '스태틱 메시 에디터' 툴바의 가장 왼쪽에 있는 저장(Save) 버튼을 클릭하여 의자 메시를 저장합니다.

콘텐츠 브라우저 에서 SM_Chair 를 찾아 레벨로 드래그합니다. SM_Chair가 선택된 상태에서 디테일 패널을 살펴봅니다.

디테일 패널의 피직스(Physics) 섹션에서 피직스 시뮬레이트(Simulate Physics) 옵션을 사용할 수 있으며 기본적으로 false 로 설정됩니다. '피직스 시뮬레이트'를 false 로 설정하고 레벨을 플레이하면 의자로 걸어가거나 발사체를 발사하더라도 메시에 영향을 미치지 않습니다. 하지만 이제 메시에 콜리전이 적용되어 있기 때문에 캐릭터는 메시를 통과하여 걸어갈 수 없습니다.

'일인칭' 슈터 템플릿을 사용하여 의자에 발사체를 발사하려면 캐릭터가 무기를 향해 걸어가서 무기를 수집하게 한 다음 발사를 클릭하면 됩니다.

전체 크기로 보려면 이미지를 클릭하세요.

레벨 플레이를 멈추고 피직스 시뮬레이트true 로 설정합니다. 다시 플레이할 때 플레이어가 의자를 향해 걸어가면 의자가 움직이는 것을 확인할 수 있습니다. 메시를 향해 발사체를 발사할 경우 메시는 레벨과 허공을 가로질러 날아온 발사체에 맞게 됩니다.

피직스 시뮬레이션 활성화

이는 메시가 피직스를 시뮬레이션할 뿐만 아니라 기본적으로 해당 메시가 피직스 액터콜리전 프리셋(Collision Preset) 으로 설정하기 때문입니다.

의자의 디테일 패널로 돌아가면 콜리전 섹션에서 콜리전 프리셋 이라는 이름의 드롭다운 메뉴를 찾을 수 있습니다. 메시의 이 인스턴스가 월드의 다른 오브젝트에 반응하는 방식은 메시의 콜리전 프리셋 이 무엇인지에 따라 달라집니다. 사용할 수 있는 옵션은 아래의 이미지에서 확인할 수 있습니다.

전체 크기로 보려면 이미지를 클릭하세요.

모두 오버랩(Overlap All) 으로 변경하면 플레이를 시작하자마자 메시가 레벨을 통해 바로 떨어지는 것을 볼 수 있습니다. 메시가 레벨의 다른 오브젝트에 반응하는 방식을 직접 설정할 수 있는 커스텀 프리셋도 있습니다.

폰을 막고 싶을 수도 있지만 발사체를 오버랩하면 모든 것이 무시됩니다. 커스텀 프리셋에서는 메시가 이를 수행하도록 명령할 수 있습니다.

레벨 에디터에서 스태틱 메시 액터(Static Mesh Actor) 를 선택하거나 블루프린트 에디터에서와 같은 스태틱 메시 컴포넌트(Static Mesh Component) 를 선택할 경우 디테일 패널 -> 콜리전 카테고리 -> 콜리전 프리셋디폴트(Default) 로 표시됩니다. 이는 처음에 설정된 콜리전 프리셋에서 변경된 것이 없음을 나타내는 것입니다. BlockAll 처럼 여기에 나열된 것과 다른 것이 나열되어 있으면 선택된 스태틱 메시 액터/컴포넌트의 콜리전 프리셋이 오버라이드된 것입니다.

전체 크기로 보려면 이미지를 클릭하세요.

이제 메시에 콜리전을 구성했으니 레벨에 메시를 배치하고 메시의 콜리전을 사용하여 메시가 다른 오브젝트에 영향을 미치는 방식과 메시가 다른 오브젝트로부터 영향을 받는 방식을 설정할 수 있습니다.

언리얼 엔진에서의 콜리전에 대한 자세한 내용은 콜리전을 참고하세요.

태그