# 충돌

### 콜라이더

콜라이더(또는 바운딩 박스)는 게임 내에서 어느 한 애셋이 다른 애셋과의 물리적 상호작용을 할 때 발생하는 3차원 경계선입니다.\
콜라이더를 통해 단단한 벽이나 찰 수 있는 오브젝트를 만들 수 있습니다.

{% hint style="info" %}
간단히 말해, 애셋이 안에 들어있는 투명한 상자라고 생각하면 쉽습니다.
{% endhint %}

콜라이더는 모델의 최대 지점에 의해 정의되며 전체 애셋을 포함하는 메시를 생성합니다.

![](https://1352604173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyuSOsS6ZU5Q6idzJx5f%2Fuploads%2FmlRvqJw98Bp5Xw5rAgWe%2Fimage.png?alt=media\&token=dbf9c0d1-6556-4699-b79a-4c5e2a45f390)![](https://1352604173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyuSOsS6ZU5Q6idzJx5f%2Fuploads%2FseT5Z7bYw9qy67JwkLW6%2Fimage.png?alt=media\&token=4a207aeb-38c4-4a0e-bc88-7e7806605aa6)

#### 간단한 정적 애셋

단일 모델로 구성된 애셋이며, 콜라이더는 볼륨 박스 그 자체가 됩니다.

볼륨 박스가 애셋보다 클 경우 콜라이더는 빈 공간과 관계없이 함께 커지게 됩니다.

![](https://lh6.googleusercontent.com/4rP48gaUhbD6_lUFm92S_CboFn-vIktcQiQs0PmFS43XfGVLUwSQ9ucjebuwQoB5nkpUYdqZ31G_iZTVydbEd-gthMOiqJo25YNElkszXOzXAe2jtZgHn1mae3roJymP8NZPkopW)

콜라이더는 VXM 오브젝트의 빈 공간을 고려하지 않습니다.

가령, 연결되지 않은 부분이나 오목한 표면에는 별도의 콜라이더가 생성되지 않습니다.

![](https://1352604173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyuSOsS6ZU5Q6idzJx5f%2Fuploads%2FBSDvyDoKYfVMmJ3vBznH%2Fimage.png?alt=media\&token=1fe76d2d-6796-4df5-9fd4-4c7297fb97e2)

위 이미지의 신호등은 컨벡스(convex)입니다. 전체 모양에는 곡선이 있으며 플레이어가 그 아래로 지나가게 만들고 싶지만, 이는 단일 애셋이기 때문에 바운딩 박스가 직사각형으로 취급되어 단단한 벽 역할을 하게 됩니다.

이를 피하고 올바르게 작동하게 만들기 위해, 오브젝트는 애니메이터에서 작게 분리된 부분들을 조립하여 만들어져야 합니다. 따라서 최종 모델은 복합 엔티티가 됩니다.

![](https://1352604173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyuSOsS6ZU5Q6idzJx5f%2Fuploads%2FqWHpTXxilP6DcmhaHWHo%2Fimage.png?alt=media\&token=e718a872-e74a-411a-b6b0-5fa8d40c3505)

꽃병과 벤치 사이의 틈은 신호등에서 발생했던 문제와 유사한 문제를 발생시키지만 이 경우에는 복합 엔티티 제작이 해결 방법이 될 수 없습니다. 대신, 두 개의 간단한 엔티티(꽃병과 벤치)를 각자 내보내기 하여 게임 메이커에서 개별 오브젝트로 원하는 위치에 정렬합니다.

#### 복잡한 정적 애셋

다수의 노드 골격으로 연결된 2개 이상의 모델로 구성된 애셋입니다.

{% hint style="info" %}
복합 애셋을 제작하려면 애니메이터를 이용해야 합니다.
{% endhint %}

정적 애셋에는 단일 프레임의 1개 애니메이션이 적용되어 있습니다. 게임 메이커에서는 이를 애니메이션으로 인식하지 않습니다.

이러한 애셋의 경우, 각 모델에는 고유한 콜라이더 볼륨이 있습니다.

![](https://lh6.googleusercontent.com/ZoQpANzZchSIj6SlkcFcS3zQZSxV56P2fv-6fsYI4-Gu15VxSS5o5Ig4dVRdbUvtkPReOHb917Mi7UCVlpIMFkcCrgp06amD6QjjhcUt03Z1edwWs8bynqxp0knhqdLUvw6GnkRP)

\
아래 예시와 같이 원래의 바운딩 박스 안에 간단한 정적 애셋이 들어가 게임 메이커에서 확인했을 때 부자연스러운 충돌이 발생하는 것을 확인할 수 있습니다.

![](https://1352604173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyuSOsS6ZU5Q6idzJx5f%2Fuploads%2FRo5T3JsEhGqbiW7wtSmu%2Fchair%20collision.gif?alt=media\&token=3ea3135d-9b0c-46c2-bfc9-83ce1fb3b223)

이제 동일한 의자를 더 타이트한 충돌 볼륨의 여러 개 모델로 나누고 같은 외형이지만 게임 메이커에서 훨씬 더 자연스러운 상호작용 기능을 포함하도록 애니메이터에서 리깅해 보겠습니다.

![](https://1352604173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyuSOsS6ZU5Q6idzJx5f%2Fuploads%2FzjtonmvBVQF1pHGhXQTK%2Fcollisions%202.gif?alt=media\&token=074e580e-d44b-4e66-9b74-44c315d682c4)

{% hint style="info" %}
원래 모델을 복제하고 원하지 않는 복셀을 제거하거나 원하는 복셀을 선택한 다음, 만들고자 하는 각 모델의 '조각'의 편집 메뉴에서 '선택된 복셀 저장하기'를 선택하여 모델을 신속하게 분해합니다. 이러한 조각들은 원본과 동일한 충돌 볼륨 및 피벗 포인트를 가지고 있으므로 볼륨을 트리밍해야 합니다.
{% endhint %}
