> 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-es/modelado-y-animaciones-3d/colliders.md).

# Colliders

Aprende cómo añadir colliders a los modelos 3D importados a Decentraland.

Para habilitar colisiones entre un modelo 3D y los usuarios de tu escena, debes asignarle colliders al modelo. Sin un collider, los jugadores pueden atravesar los modelos como si no estuvieran allí. Los colliders también son necesarios para que un objeto responda a los eventos de puntero del jugador o los bloquee, o para que sea intersectado por raycasts o los bloquee. Por razones de rendimiento, los colliders suelen modelarse por separado como una geometría invisible más simple que tiene menos vértices que la geometría visible.

{% hint style="info" %}
**💡 Consejo**: Instala el [plugin Decentraland Tools para Blender](https://extensions.blender.org/add-ons/decentraland-tools/). Incluye varias funciones útiles para ayudarte a editar y exportar modelos 3D, wearables y emotes.
{% endhint %}

El modelo puede usar una geometría invisible como colliders, o (a partir de SDK7) puedes asignar la geometría visible para que se comporte como un collider. Ver [**Colliders en modelos 3D**](https://docs.decentraland.org/creator/development-guide/sdk7/colliders/#colliders-on-3d-models) . También puedes asignar distintas capas de colisión a las diferentes geometrías para controlar por separado la física del jugador, los eventos de puntero y otras capas personalizadas; consulta [**Colliders en modelos 3D**](https://docs.decentraland.org/creator/development-guide/sdk7/colliders/#collision-layers) .

Los colliders no afectan cómo los modelos y las entidades interactúan entre sí; siempre pueden superponerse. Los colliders solo afectan cómo el modelo interactúa con el avatar del jugador.

Para que una escena de Decentraland reconozca un objeto como collider, solo necesita tener un nombre de una forma determinada. El nombre del objeto debe incluir el sufijo “\_collider” al final.

Por ejemplo, para crear un collider para un poste de luz puedes crear un objeto de caja simple que rodee su tronco. Los jugadores de la escena no verán esta caja, pero bloqueará su camino.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-0d12445032edb8460857129dfe4a6c0d755b79be%2F25-collider.png?alt=media\&token=dcb5f7c4-be34-4523-81f8-e2773196a24d)

En este caso, podemos nombrar la caja “LampPost*collider” y exportar tanto el árbol como la caja como un único modelo \_\_gltf. La etiqueta \*\_\_collider*\* etiqueta alerta al motor del mundo de Decentraland que el objeto de caja pertenece a la colección de colliders, haciendo invisible la malla del collider.

Cada vez que un jugador vea el modelo del poste de luz en tu escena, verá el modelo complejo de tu lámpara. Sin embargo, cuando lo atraviese, chocará con la caja, no con el árbol.

## Restricciones espaciales del jugador

Cuando diseñas modelos pensados para que los jugadores caminen alrededor de ellos, debes tener en cuenta las siguientes medidas de referencia:

* Los jugadores pueden subir un escalón de hasta 30 centímetros de altura sin saltar
* Los jugadores pueden subir pendientes con un ángulo de hasta 45 grados sin saltar
* Los jugadores pueden saltar hasta 1,8 metros de altura
* Los avatares miden alrededor de 1,9 metros de altura, pero ten en cuenta que podrían llevar sombreros u otros wearables en la cabeza.

Cada vez que un jugador vea el modelo del árbol en tu escena, verá el modelo complejo de tu árbol. Sin embargo, cuando atraviese tu árbol, chocará con la caja, no con el árbol.

### Añadir un collider a una escalera

Las escaleras son un caso de uso muy común para los objetos collider. Para que los jugadores puedan subir escaleras, debe haber un objeto \_collider correspondiente sobre el que puedan pisar.

Recomendamos usar un objeto de rampa para los colliders de tus escaleras; esto ofrece una experiencia mucho mejor al subir o bajar. Cuando suban tus escaleras, parecerá un ascenso o descenso suave, en lugar de obligarlos a “saltar” cada escalón individual.

Usar un objeto de rampa también evita crear geometría innecesaria, dejando espacio para otros modelos más complicados. Ten en cuenta que la geometría de colisión también se toma en cuenta al calcular el [**limitaciones de la escena**](https://docs.decentraland.org/creator/development-guide/scene-limitations/)

1. Crea un nuevo objeto con forma de rampa que se asemeje al tamaño y las proporciones de las escaleras originales.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-680fdc067ef8fcd1c4d80d31710709b558e7c067%2F26-collider-2.png?alt=media\&token=e197970c-6e79-412d-b480-7a0ebeef8ba3)

2. Nombra el objeto de la rampa con algo similar a S*tair\_collider*. Debe terminar en \_*collider*.
3. Superpone el objeto de rampa sobre las escaleras para que ocupen el mismo espacio.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-71a830ef0313ecf3d6b5232ecc2e742ce5bdc46a%2F27-collider.png?alt=media\&token=e25bc179-b5e7-4702-ac25-4ebc891a04dd)

4. Exporta ambos objetos juntos como un único *glTF* modelo.

Ahora, cuando los jugadores vean las escaleras en tu escena, verán el modelo más elaborado de las escaleras, pero al subirlas chocarán con la rampa.

## Optimización de colliders

* Prefiere usar **Box**, **Sphere** y **Capsule** mallas de colisión, porque tendrán mejor rendimiento al cargar y en tiempo de ejecución.
* Considera aproximar una malla de colisión compleja mediante varias mallas primitivas de colisión (**Box**/**Sphere**/**Capsule**)

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-8f2976bacdcec721dd9dc34b023f2e006f33e4d7%2F28-optimizing-colliders.png?alt=media\&token=81bcf3dd-540e-4baf-817f-e3df19a890f7)

*Ejemplo: un collider para un anillo puede componerse de varios colliders Capsule o Box*

* Coloca la malla de colisión dentro de la jerarquía del objeto al que está relacionada. Por ejemplo, Spaceship\_collider puede ser un hijo dentro del padre Spaceship (desde el punto de vista de Hierarchy)

### Colliders convexos frente a cóncavos

Si usar un collider de malla arbitraria es la única posibilidad, entonces haz que la malla de colisión sea Convex (no Concave). Esto evitará situaciones físicas extrañas, como tirones, quedarse atascado dentro del collider o atravesarlo. Ten en cuenta que a menudo es posible imitar una malla cóncava con varias mallas convexas.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-33cc04ac9bf25f8d342724d7a4760b78a48bcabf%2F29-convex-collider.png?alt=media\&token=ec3da8ea-0b06-474a-99f3-309e05dbdaba)

## Nomenclatura de colisión

**Usa nombres significativos. El nombre debe dar contexto de dónde se usa el activo o a qué parte del objeto se relaciona.**

Para la nomenclatura de assets usamos una combinación de `PascalCase` y `snake_case`, al que podemos llamar `PascalSnake_case`. Las reglas básicas allí son: una palabra nueva o una palabra después de un separador (`_`) comienza con **letra mayúscula.**

Collision Mesh es la malla que se usa como referencia para crear un collider en el Explorer

* Sigue los mismos principios que las Meshes anteriores, pero tiene `_collider` un sufijo al final **Ejemplos:** 🟢 **Prefiere** nombres - `Tram_Wheel_LeftFront_collider` 🔴 **Evita** nombres - `Primitive.001_Collider`, `collider (1)`, `Cylinder.007_collider`,

{% hint style="warning" %}
**🔥Consejo de optimización🔥**

Si un collider puede aproximarse con una forma Box, Sphere o Capsule, entonces usa un sufijo adicional con una de estas 3 posibles variaciones: \_box, \_sphere o \_capsule. Usar estas 3 formas en lugar de una malla arbitraria para la detección de colisiones aumentará el rendimiento de tu escena y el tiempo de carga 💪🚀

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

## Buenas prácticas para colliders

* **Usa siempre la menor cantidad posible de triángulos al crear colliders.** Evita hacer una copia de un objeto complejo para usarla como collider. Los colliders simples garantizan una buena experiencia de usuario y mantienen tu escena dentro de los límites de triángulos.
* **Los objetos collider no deberían tener ningún material**, ya que los jugadores de tu escena nunca lo verán. Los colliders son invisibles para los jugadores.
* **Todos los nombres de los objetos collider deben terminar en \_*****collider*****.** Por ejemplo, T*ree\_collider*.
* **Si usas un \_plane**\_\*\* como collider, solo bloqueará en una dirección.\*\* Si quieres que los colliders bloqueen desde ambos lados, por ejemplo en una pared, necesitas crear dos planos con sus normales orientadas en direcciones opuestas.
* Al duplicar objetos collider, presta atención a sus nombres. Algunos programas añaden un \_*1* al final del nombre de archivo para evitar duplicados, por ejemplo *tree\_collider\_1*. Los objetos nombrados así serán interpretados por el Decentraland World Engine como objetos normales, no como colliders.
* Puedes evitar añadir una malla de collider si añades un componente invisible `MeshCollider` al Entity, que aproxima la forma del modelo 3D.
* También puedes evitar añadir una malla de collider si configuras el `GLTFContainer` component para usar la geometría visible como collider. Ver [**Colliders en modelos 3D**](https://docs.decentraland.org/creator/development-guide/sdk7/colliders/#colliders-on-3d-models) .
* Si estás creando un modelo 3D con muchas formas de malla que necesitan su propio collider, hay algunos add-ons muy útiles que pueden ayudar. En Blender puedes usar la opción de cambio de nombre por lotes dentro de Blender \*\*\*\*para añadir automáticamente un `_collider` sufijo a todos los nombres de malla de un grupo. Más sobre esta herramienta en la sección “**Usar Blender para renombrar assets”**


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-es/modelado-y-animaciones-3d/colliders.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
