Colliders
Aprende cómo agregar colliders a modelos 3D importados a Decentraland.
Para habilitar colisiones entre un modelo 3D y los usuarios de tu escena, debes darle al modelo colliders. Sin un collider, los jugadores pueden caminar a través de los modelos como si no estuvieran ahí. Los colliders también son necesarios para que un objeto responda a los pointer events del jugador o para bloquearlos, o para ser intersectados por raycasts o bloquearlos. Por razones de rendimiento, los colliders a menudo se modelan por separado como una geometría invisible más simple que tiene menos vértices que la geometría visible.
El modelo puede usar una geometría invisible como colliders, o (a partir de SDK7) en su lugar puedes asignar que la geometría visible se comporte como un collider. Ver Colliders en modelos 3D . También puedes asignar diferentes capas de colisiones a las diferentes geometrías, para controlar por separado la física del jugador, los pointer events y otras capas personalizadas, ver Colliders en modelos 3D .
Los colliders no afectan cómo los modelos y las entidades interactúan entre sí, siempre pueden superponerse. Los colliders sólo afectan cómo el modelo interactúa con el avatar del jugador.
Para que un objeto sea reconocido por una escena de Decentraland como un collider, todo lo que necesita es llamarse de cierta manera. El nombre del objeto debe incluir el sufijo “_collider” al final.
Por ejemplo, para crear un collider para una farola puedes crear un objeto caja simple que rodee su tronco. Los jugadores en la escena no verán esta caja, pero bloqueará su camino.

En este caso, podemos nombrar la caja “LampPostcollider” y exportar tanto el árbol como la caja como un único modelo __gltf. La etiqueta *__collider* alerta al motor de mundos de Decentraland que el objeto caja pertenece a la colección de colliders, haciendo que la malla del collider sea invisible.
Siempre que un jugador vea el modelo de la farola en tu escena, verá el modelo complejo de tu farola. Sin embargo, cuando camine hacia él, colisionará con la caja, no con el árbol.
Restricciones Espaciales del Jugador
Cuando diseñes modelos destinados a 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 pueden llevar sombreros u otros wearables en la cabeza.
Siempre que un jugador vea el modelo del árbol en tu escena, verá el modelo complejo de tu árbol. Sin embargo, cuando camine hacia tu árbol, colisionará con la caja, no con el árbol.
Agregar Un Collider a una Escalera
Las escaleras son un caso de uso muy común para objetos collider. Para que los jugadores suban escaleras, debe haber un objeto _collider correspondiente sobre el que los jugadores puedan pisar.
Recomendamos usar un objeto rampa para tus colliders de escalera; esto proporciona una experiencia mucho mejor al subir o bajar. Cuando suban tus escaleras, parecerá un ascenso o descenso suave, en lugar de requerir que “salten” cada escalón individual.
Usar un objeto rampa también evita crear geometría innecesaria, ahorrando espacio para otros modelos más complicados. Ten en cuenta que la geometría del collider también se tiene en cuenta al calcular el limitaciones de la escena
Crea un nuevo objeto con forma de rampa que se asemeje al tamaño y las proporciones de las escaleras originales.

Nombra el objeto rampa algo similar a Stair_collider. Debe terminar en _collider.
Superpone el objeto rampa sobre las escaleras de modo que ocupen el mismo espacio.

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 cuando las suban colisionarán con la rampa.
Optimización de Colliders
Prefiere usar Box, Sphere y Capsule meshas de colisión, porque será más eficiente en la carga y en tiempo de ejecución.
Considera aproximar una malla de colisión compleja por varias mallas de colisión Primitive (Box/Sphere/Capsule)

Ejemplo: El collider para un Anillo puede componerse de varias cápsulas o colliders 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 la Jerarquía)
Colliders Convexos vs Cóncavos
Si usar una malla de collider arbitraria es la única posibilidad, entonces haz que la malla de colisión sea Convex (no Concave). Evitará situaciones físicas extrañas, como titubeos, quedar atrapado dentro del collider o atravesarlo. Ten en cuenta que a menudo es posible imitar una malla cóncava con varias mallas convexas.

Nomenclatura de Colisiones
Usa nombres significativos. El nombre debe dar contexto de dónde se usa el asset o a qué parte del objeto se relaciona.
Para el nombrado de assets usamos mezcla de PascalCase y snake_case, que podemos llamar PascalSnake_case. Las reglas básicas - una palabra nueva o palabra después del separador (_) comienza con Letra Capital.
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
_collidersufijo al final Ejemplos: 🟢 Prefiere nombres -Tram_Wheel_LeftFront_collider🔴 Evita nombres -Primitive.001_Collider,collider (1),Cylinder.007_collider,
🔥Consejo de optimización🔥
Si un collider puede aproximarse por una forma Box, Sphere o Capsule entonces usa un sufijo adicional con una de estas 3 variaciones posibles _box, _sphere o _capsule. Usar estas 3 shapes en lugar de una malla arbitraria para la detección de colisiones aumentará el rendimiento y el tiempo de carga de tu escena 💪🚀
Ejemplos: 🟢 Teater_MainWall_North_collider_box, Fountain_Statue_collider_sphere
Mejores Prácticas para Colliders
Usa siempre el menor número de triángulos posible al crear colliders. Evita hacer una copia de un objeto complejo para usarlo como collider. Los colliders simples garantizan una buena experiencia de usuario y mantienen tu escena dentro de las limitaciones 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 objetos collider deben terminar con _collider. Por ejemplo, Tree_collider.
Si usas un _plane_** como collider, sólo bloqueará en una dirección.** Si quieres que los colliders bloqueen desde ambos lados, por ejemplo para una pared, necesitas crear dos planos con sus normales apuntando 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 que están nombrados así serán interpretados por el Decentraland World Engine como objetos normales, no como colliders.
Puedes evitar añadir una malla collider si añades un invisible
MeshCollidercomponente a la entidad, que aproxima la forma del modelo 3D.También puedes evitar añadir una malla collider si configuras el
GLTFContainercomponente para usar la geometría visible como collider. Ver Colliders en modelos 3D .Si estás creando un modelo 3D con muchas formas de malla que cada una necesita su collider, existen algunos complementos útiles que pueden ayudar. Para Blender puedes usar la opción de renombrado por lotes dentro de Blender ****para añadir automáticamente un
_collidersufijo a todos los nombres de malla en un grupo. Más sobre esta herramienta en la sección “Usando Blender para renombrar assets” section
Última actualización