Colliders
Saiba como adicionar colliders a modelos 3D importados para o Decentraland.
Para habilitar colisões entre um modelo 3D e os usuários da sua cena, você deve dar coliders ao modelo. Sem um collider, os jogadores conseguem atravessar modelos como se eles não estivessem lá. Colliders também são exigidos para fazer um objeto responder aos eventos de pointer do jogador ou para bloqueá-los, ou para ser intersectado por raycasts ou bloqueá-los. Por razões de desempenho, colliders costumam ser modelados separadamente como uma geometria invisível mais simples que possui menos vértices que a geometria visível.
O modelo pode usar uma geometria invisível como colliders, ou (a partir do SDK7) você pode em vez disso atribuir a geometria visível para se comportar como um collider. Veja Colliders em modelos 3D . Você também pode atribuir camadas diferentes de colisões às diferentes geometrias, para controlar separadamente a física do jogador, eventos de pointer e outras camadas customizadas, veja Colliders em modelos 3D .
Colliders não afetam como modelos e entidades interagem entre si; eles sempre podem se sobrepor. Colliders afetam apenas como o modelo interage com o avatar do jogador.
Para que um objeto seja reconhecido por uma cena do Decentraland como um collider, tudo o que ele precisa é ser nomeado de certa maneira. O nome do objeto deve incluir o sufixo “_collider” no final.
Por exemplo, para criar um collider para um poste de lâmpada você pode criar um objeto caixa simples envolvendo seu tronco. Os jogadores na cena não verão essa caixa, mas ela bloqueará seu caminho.

Nesse caso, podemos nomear a caixa “LampPostcollider” e exportar tanto a árvore quanto a caixa como um único modelo __gltf. A tag *__collider* alerta o engine do Decentraland world que o objeto caixa pertence à coleção de colliders, tornando a malha do collider invisível.
Sempre que um jogador visualizar o modelo do poste de lâmpada na sua cena, ele verá o modelo complexo da sua lâmpada. Contudo, quando ele andar em direção a ele, colidirá com a caixa, não com a árvore.
Restrições Espaciais do Jogador
Ao projetar modelos destinados a serem percorridos por jogadores, você precisa ter em mente as seguintes medidas de referência:
Os jogadores podem subir um degrau de até 30 centímetros de altura sem pular
Os jogadores podem subir rampas com ângulo de até 45 graus sem pular
Os jogadores podem saltar até 1,8 metros de altura
Avatares medem cerca de 1,9 metros de altura, mas considere que eles podem ter chapéus ou outros wearables na cabeça.
Sempre que um jogador visualizar o modelo da árvore na sua cena, ele verá o modelo complexo da sua árvore. Contudo, quando ele andar em direção à sua árvore, colidirá com a caixa, não com a árvore.
Adicionar Um Collider a uma Escadaria
Escadas são um caso de uso muito comum para objetos collider. Para que jogadores subam escadas, deve haver um objeto _collider correspondente sobre o qual os jogadores possam pisar.
Recomendamos usar um objeto rampa para seus colliders de escada; isso proporciona uma experiência muito melhor ao subir ou descer. Quando eles sobem suas escadas, parecerá uma subida ou descida suave, em vez de exigir que “saltem” cada degrau individual.
Usar um objeto rampa também evita criar geometria desnecessária, economizando espaço para outros modelos mais complicados. Tenha em mente que a geometria do collider também é levada em conta ao calcular o limitações da cena
Crie um novo objeto no formato de uma rampa que se assemelhe ao tamanho e às proporções das escadas originais.

Nomeie o objeto rampa com algo similar a Stair_collider. Deve terminar em _collider.
Sobreponha o objeto rampa às escadas de modo que ocupem o mesmo espaço.

Exporte ambos os objetos juntos como um único arquivo glTF modelo.
Agora, quando os jogadores visualizarem as escadas na sua cena, eles verão o modelo mais elaborado das escadas, mas quando as subirem, colidirão com a rampa.
Otimizando Colliders
Prefira usar Box, Sphere e Capsule malhas de colisão, pois será mais performático no carregamento e em tempo de execução.
Considere aproximar uma malha de colisão complexa por várias malhas de colisão Primitive (Box/Sphere/Capsule)

Exemplo: Collider para Anel pode ser composto por várias colisões Capsule ou Box
Coloque a malha de colisão dentro da Hierarchy do objeto ao qual ela está relacionada. Por exemplo Spaceship_collider pode ser uma child dentro do parent Spaceship (do ponto de vista da Hierarchy)
Colliders Convexos vs Côncavos
Se usar uma malha de collider arbitrária for a única possibilidade, então torne a malha de colisão Convex (não Concave). Isso evitará situações físicas estranhas, como trancos, ficar preso dentro do collider ou atravessá-lo. Note que frequentemente é possível imitar uma malha côncava por várias malhas convexas.

Nomeação de Colisão
Use nomes significativos. O nome deve dar contexto de onde o asset é usado ou a qual parte do objeto ele se relaciona.
Para nomeação de assets usamos uma mistura de PascalCase e snake_case, que podemos chamar de PascalSnake_case. Regras básicas ali - nova palavra ou palavra após separador (_) começa com Letra maiúscula.
Collision Mesh é a mesh que é usada como referência para criar um collider no Explorer
Segue os mesmos princípios que as Meshes acima, mas possui
_collidersufixo no final Exemplos: 🟢 Prefira nomes -Tram_Wheel_LeftFront_collider🔴 Evite nomes -Primitive.001_Collider,collider (1),Cylinder.007_collider,
🔥Dica de Otimização🔥
Se um collider puder ser aproximado por uma forma Box, Sphere ou Capsule então use sufixo adicional com uma dessas 3 variações possíveis _box, _sphere ou _capsule. Usar essas 3 formas em vez de uma malha arbitrária para detecção de colisão aumentará o desempenho da sua cena e o tempo de carregamento 💪🚀
Exemplos: 🟢 Teater_MainWall_North_collider_box, Fountain_Statue_collider_sphere
Boas Práticas Para Colliders
Sempre use o menor número de triângulos possível ao criar colliders. Evite fazer uma cópia de um objeto complexo para usar como collider. Colliders simples garantem uma boa experiência ao usuário e mantém sua cena dentro das limitações de triângulos.
Objetos collider não devem ter nenhum material, pois os jogadores da sua cena nunca o verão. Colliders são invisíveis para os jogadores.
Todos os nomes de objetos collider devem terminar com _collider. Por exemplo, Tree_collider.
Se você usar um _plane_** como um collider, ele bloqueará apenas em uma direção.** Se você quiser que colliders bloqueiem de ambos os lados, por exemplo para uma parede, você precisa criar dois planos com suas normais apontando em direções opostas.
Ao duplicar objetos collider, preste atenção aos seus nomes. Alguns programas acrescentam um _1 no final do nome do arquivo para evitar duplicatas, por exemplo tree_collider_1. Objetos com nomes desse tipo serão interpretados pelo Decentraland World Engine como objetos normais, não colliders.
Você pode evitar adicionar uma malha collider se você adicionar um componente invisível
MeshColliderà entidade, que aproxima a forma do modelo 3D.Você também pode evitar adicionar uma malha collider se configurar o componente
GLTFContainerpara usar a geometria visível como um collider. Veja Colliders em modelos 3D .Se você está criando um modelo 3D com muitas formas de mesh que cada uma precisa de seu collider, existem alguns addons úteis que podem ajudar. Para o Blender você pode usar a opção de renomeação em lote dentro do Blender ****para automaticamente adicionar um
_collidersufixo a todos os nomes de mesh em um grupo. Mais sobre essa ferramenta na seção “Usando o Blender para renomear assets”
Atualizado