> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-ko/3d/colliders.md).

# 충돌체

Decentraland에 가져온 3D 모델에 충돌체를 추가하는 방법을 알아보세요.

3D 모델과 씬의 사용자 사이에 충돌을 활성화하려면, 모델에 콜라이더를 지정해야 합니다. 콜라이더가 없으면 플레이어는 마치 아무것도 없는 것처럼 모델을 통과해 걸을 수 있습니다. 콜라이더는 또한 오브젝트가 플레이어의 포인터 이벤트에 반응하거나 이를 차단하게 하거나, 레이캐스트에 의해 교차되거나 이를 차단하게 하려면 필요합니다. 성능상의 이유로, 콜라이더는 종종 더 단순한 보이지 않는 기하형상으로 별도로 모델링되며, 이 기하형상은 보이는 기하형상보다 버텍스 수가 적습니다.

{% hint style="info" %}
**💡 팁**: 다음을 설치하세요 [Decentraland Tools Blender 플러그인](https://extensions.blender.org/add-ons/decentraland-tools/). 여기에는 3D 모델, 착용 아이템, 이모트를 편집하고 내보내는 데 도움이 되는 여러 유용한 기능이 포함되어 있습니다.
{% endhint %}

모델은 콜라이더로 사용할 보이지 않는 기하형상을 사용할 수도 있고, (SDK7부터는) 대신 보이는 기하형상을 콜라이더처럼 동작하도록 지정할 수도 있습니다. 참조 [**3D 모델의 콜라이더**](https://docs.decentraland.org/creator/development-guide/sdk7/colliders/#colliders-on-3d-models) . 또한 서로 다른 기하형상에 서로 다른 충돌 레이어를 지정하여 플레이어 물리, 포인터 이벤트 및 기타 사용자 지정 레이어를 별도로 제어할 수 있습니다. 참조 [**3D 모델의 콜라이더**](https://docs.decentraland.org/creator/development-guide/sdk7/colliders/#collision-layers) .

콜라이더는 모델과 엔티티가 서로 상호작용하는 방식에는 영향을 주지 않으며, 언제나 겹칠 수 있습니다. 콜라이더는 모델이 플레이어의 아바타와 상호작용하는 방식에만 영향을 줍니다.

오브젝트가 Decentraland 씬에서 콜라이더로 인식되려면, 특정 방식으로 이름만 지정하면 됩니다. 오브젝트의 이름에는 끝에 “\_collider” 접미사가 포함되어야 합니다.

예를 들어 가로등 기둥에 대한 콜라이더를 만들려면, 기둥을 둘러싸는 단순한 박스 오브젝트를 만들 수 있습니다. 씬의 플레이어는 이 박스를 보지 못하지만, 이동 경로는 막힙니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-0d12445032edb8460857129dfe4a6c0d755b79be%2F25-collider.png?alt=media)

이 경우 박스의 이름을 “LampPost*collider”라고 지정하고 나무와 박스를 하나의 \_\_gltf 모델로 함께 내보낼 수 있습니다. \*\_\_collider*\* 태그는 Decentraland 월드 엔진에 박스 오브젝트가 콜라이더 컬렉션에 속해 있음을 알리며, 콜라이더 메시를 보이지 않게 만듭니다.

플레이어가 씬에서 가로등 모델을 볼 때마다, 그들은 가로등의 복잡한 모델을 보게 됩니다. 하지만 그 안으로 걸어 들어가면 나무가 아니라 박스와 충돌하게 됩니다.

## 플레이어 공간 제약

플레이어가 주변을 걸어 다니도록 설계된 모델을 만들 때는 다음 기준 치수를 염두에 두어야 합니다:

* 플레이어는 점프하지 않고도 높이 30센티미터까지의 계단을 올라갈 수 있습니다
* 플레이어는 점프하지 않고도 최대 45도 각도의 경사를 올라갈 수 있습니다
* 플레이어는 최대 1.8미터 높이까지 점프할 수 있습니다
* 아바타의 키는 약 1.9미터이지만, 머리에 모자나 다른 착용물이 있을 수 있다는 점을 고려하세요.

플레이어가 씬에서 나무 모델을 볼 때마다, 그들은 나무의 복잡한 모델을 보게 됩니다. 하지만 나무 안으로 걸어 들어가면, 나무가 아니라 박스와 충돌하게 됩니다.

### 계단에 콜라이더 추가

계단은 콜라이더 오브젝트의 매우 흔한 사용 사례입니다. 플레이어가 계단을 오르려면, 플레이어가 올라설 수 있는 대응하는 \_collider 오브젝트가 있어야 합니다.

계단 콜라이더에는 경사면 오브젝트를 사용하는 것을 권장합니다. 이는 올라가거나 내려갈 때 훨씬 더 나은 경험을 제공합니다. 계단을 오를 때 각 개별 계단을 “점프”해야 하는 대신, 매끄럽게 올라가거나 내려가는 것처럼 보입니다.

경사면 오브젝트를 사용하면 불필요한 기하형상을 만드는 것도 피할 수 있어, 더 복잡한 다른 모델을 위한 공간을 절약할 수 있습니다. 콜라이더 기하형상도 계산할 때 반영된다는 점을 기억하세요 [**씬 제한 사항**](https://docs.decentraland.org/creator/development-guide/scene-limitations/)

1. 원래 계단의 크기와 비율을 닮은 경사면 모양의 새 오브젝트를 만듭니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-680fdc067ef8fcd1c4d80d31710709b558e7c067%2F26-collider-2.png?alt=media)

2. 경사면 오브젝트의 이름을 S*tair\_collider*. 반드시 \_*콜라이더*.
3. 경사면 오브젝트를 계단 위에 겹쳐서 같은 공간을 차지하도록 합니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-71a830ef0313ecf3d6b5232ecc2e742ce5bdc46a%2F27-collider.png?alt=media)

4. 두 오브젝트를 하나의 *glTF* 모델로 함께 내보냅니다.

이제 플레이어가 씬에서 계단을 볼 때는 계단의 더 정교한 모델을 보게 되지만, 계단을 올라가면 경사면과 충돌하게 됩니다.

## 콜라이더 최적화

* 다음을 사용하는 것을 권장합니다 **박스**, **구체** 및 **캡슐** 충돌 메시를 사용하세요. 로딩 시와 런타임에서 더 높은 성능을 보입니다.
* 복잡한 충돌 메시를 여러 개의 기본 충돌 메시(**박스**/**구체**/**캡슐**)

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-8f2976bacdcec721dd9dc34b023f2e006f33e4d7%2F28-optimizing-colliders.png?alt=media)

*예: Ring의 콜라이더는 여러 캡슐 또는 박스 콜라이더로 구성할 수 있습니다*

* 충돌 메시를 관련된 오브젝트의 계층 구조 안에 넣으세요. 예를 들어 Spaceship\_collider는 Spaceship 부모 안의 자식이 될 수 있습니다(계층 관점에서).

### 볼록 콜라이더 vs 오목 콜라이더

임의의 메시 콜라이더를 사용하는 것이 유일한 방법이라면, 충돌 메시를 볼록하게(오목하지 않게) 만드세요. 이렇게 하면 끊김, 콜라이더 안에 끼임, 또는 콜라이더를 뚫고 지나감 같은 이상한 물리 상황을 방지할 수 있습니다. 참고로, 오목한 메시는 여러 개의 볼록 메시로 흉내 내는 것이 종종 가능합니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-33cc04ac9bf25f8d342724d7a4760b78a48bcabf%2F29-convex-collider.png?alt=media)

## 충돌 명명

**의미 있는 이름을 사용하세요. 이름은 해당 에셋이 어디에서 사용되는지 또는 오브젝트의 어느 부분과 관련되는지에 대한 맥락을 제공해야 합니다.**

에셋 명명에는 다음을 혼합해서 사용합니다 `파스칼케이스` 및 `스네이크 케이스`, 이를 우리는 `파스칼스네이크 케이스`. 기본 규칙은 다음과 같습니다. 새 단어나 구분자(`_`) 뒤의 단어는 **대문자로 시작합니다.**

Collision Mesh는 Explorer에서 콜라이더를 만들 때 참조로 사용되는 메쉬입니다

* 위의 Meshes와 동일한 원리를 따르지만, 끝에 `_collider` 접미사가 **예:** 🟢 **권장** 이름에 붙습니다 - `Tram_Wheel_LeftFront_collider` 🔴 **피해야 할 것은** 이름에 붙습니다 - `Primitive.001_Collider`, `collider (1)`, `Cylinder.007_collider`,

{% hint style="warning" %}
**🔥최적화 팁🔥**

콜라이더를 박스, 구체 또는 캡슐 형태로 근사할 수 있다면, \_box, \_sphere 또는 \_capsule 중 하나를 추가 접미사로 사용하세요. 충돌 감지에 임의의 메시 대신 이 세 가지 형태를 사용하면 씬 성능과 로딩 시간이 향상됩니다 💪🚀

예시: 🟢 Teater\_MainWall\_North\_collider\_box, Fountain\_Statue\_collider\_sphere
{% endhint %}

## 콜라이더 모범 사례

* **콜라이더를 만들 때는 항상 가능한 한 가장 적은 수의 삼각형을 사용하세요.** 복잡한 오브젝트를 복사해서 콜라이더로 사용하는 것은 피하세요. 단순한 콜라이더는 좋은 사용자 경험을 보장하고 씬을 삼각형 제한 내에 유지해 줍니다.
* **콜라이더 오브젝트에는 머티리얼이 없어야 합니다**, 씬의 플레이어는 이를 절대 보지 못하기 때문입니다. 콜라이더는 플레이어에게 보이지 않습니다.
* **모든 콜라이더 오브젝트 이름은 \_로 끝나야 합니다*****콜라이더*****.** 예를 들어, T*ree\_collider*.
* **\_plane을 콜라이더로 사용하면**\_\*\*를 콜라이더로 사용하면, \*\*한 방향에서만 차단됩니다.\*\* 양쪽 모두에서 차단하려면, 예를 들어 벽의 경우, 법선이 서로 반대 방향을 향하도록 두 개의 평면을 만들어야 합니다.
* 콜라이더 오브젝트를 복제할 때는 이름에 주의하세요. 일부 프로그램은 중복을 피하기 위해 파일 이름 끝에 \_*1* 를 추가합니다. 예를 들어 *tree\_collider\_1*. 이렇게 이름이 지정된 오브젝트는 Decentraland 월드 엔진에서 콜라이더가 아닌 일반 오브젝트로 해석됩니다.
* 보이지 않는 `MeshCollider` 컴포넌트를 엔티티에 추가하면 콜라이더 메시를 추가하지 않아도 되며, 이는 3D 모델의 형태를 근사합니다.
* 구성하면 콜라이더 메시를 추가하지 않아도 됩니다 `GLTFContainer` 컴포넌트가 보이는 기하형상을 콜라이더로 사용하도록 설정하세요. 참조 [**3D 모델의 콜라이더**](https://docs.decentraland.org/creator/development-guide/sdk7/colliders/#colliders-on-3d-models) .
* 각각 콜라이더가 필요한 많은 메쉬 형태로 3D 모델을 만드는 경우, 도움이 되는 유용한 애드온들이 있습니다. Blender의 경우 Blender \*\*\*\*안의 일괄 이름 바꾸기 옵션을 사용해 그룹 내 모든 메쉬 이름에 자동으로 `_collider` 접미사를 추가할 수 있습니다. 이 도구에 대한 자세한 내용은 “**Blender를 사용해 에셋 이름 바꾸기” 섹션에서 확인하세요**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.decentraland.org/creator/content-creator-ko/3d/colliders.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
