Smart Wearables

Crie wearables com capacidades interativas

Smart wearables são um tipo de cena global. Como portable experiences, eles são jogabilidade que os jogadores levam consigo enquanto se movem pelo metaverso. Por exemplo, enquanto executa uma cena global, um jogador poderia pegar uma bola de neve do chão em Genesis Plaza, caminhar para outra cena e arremessar a bola de neve para outro jogador que também esteja jogando o mesmo jogo.

Smart wearables são experiências portáteis que são ativadas quando o jogador coloca um determinado item de vestuário. Smart wearables podem conceder aos jogadores novas habilidades, como um jetpack que lhes permite voar, ou adicionar uma nova camada de conteúdo sobre o resto do mundo, como posicionar moedas aleatoriamente para serem coletadas por toda a Genesis City.

circle-exclamation

Primeiros passos

Usando o CLI

  1. Abra uma linha de comando em uma nova pasta e execute

npx @dcl/sdk-commands init --project smart-wearable

Este comando cria os arquivos básicos e a estrutura para um novo smart wearable.

Os arquivos no template

A pasta de um projeto Smart Wearable novo é muito similar à de uma Decentraland scene, mas você notará as seguintes diferenças:

  • wearable.json inclui todos os metadados para a experiência portátil

  • Há um modelo 3D placeholder (glasses.glb) e uma miniatura (glasses.png) para um par de óculos escuros. Você deve substituir estes pelo wearable real que está criando

  • scene.json é muito mais curta, não inclui propriedades que são irrelevantes para um wearable, como parcels ou spawn points

Sobre wearable.json

O padrão wearable.json arquivo se parece com isto:

Os seguintes campos são obrigatórios em wearable.json:

  • id: Id único do smart wearable.

  • campo name: O nome do wearable que os usuários verão no marketplace

  • descrição: A descrição do wearable que os usuários verão no marketplace. Certifique-se de indicar o que o smart wearable pode fazer, pois os usuários do marketplace não terão como pré-visualizar sua funcionalidade antes de comprá-lo.

  • rarity: A raridade/suprimento do token. Valores possíveis são:

    • unique (1 copy)

    • mythic (10 copies)

    • exotic (50 copies)

    • legendary (100 copies)

    • epic (1000 copies)

    • uncommon (10.000 copies)

    • common (100.000 copies)

circle-exclamation

Os seguintes campos também podem ser incluídos opcionalmente. Essas configurações também podem ser configuradas a partir do UI do Builder, assim que você fizer upload do smart wearable.

  • dados: Inclui o seguinte

    • replaces: Lista de categorias de outros wearables que devem ser desequipados ao equipar este wearable, além do padrão desta categoria. Ex.: Ao colocar uma capa top-body, também esconder feet.

    • hides: Lista de categorias de outros wearables que devem ser escondidos (mas não desequipados) ao equipar este wearable, além do padrão desta categoria.

    • tags: Tags usadas para tornar o wearable pesquisável no marketplace.

    • representations:

      • bodyShapes: A lista de representações de avatar que podem usar este wearable. Todos os smart wearables devem estar disponíveis para ambas as body shapes masculina e feminina.

      • mainFile: O arquivo principal com o modelo 3D do wearable.

      • contents: A lista completa de arquivos usados para renderizar o modelo 3D do wearable. Por exemplo, o modelo 3D pode incluir texturas como arquivos separados.

      • overrideHides: Quaisquer exceções do padrão hide comportamento desta categoria de wearable.

      • overrideReplaces: Quaisquer exceções do padrão replace comportamento desta categoria de wearable.

    • categoria: Qual categoria de wearable usar. Valores possíveis são:

      • 'eyebrows'

      • 'eyes'

      • 'facial_hair'

      • 'hair'

      • 'mouth'

      • 'upper_body'

      • 'lower_body'

      • 'feet'

      • 'earring'

      • 'eyewear'

      • 'hat'

      • 'helmet'

      • 'mask'

      • 'tiara'

      • 'top_head'

      • 'skin'

      • 'hands_wear'

  • menuBarIcon: Imagem a ser usada no menu “experiences”, para representar esta experiência portátil. Esta imagem deve estar no nível root da sua pasta. O tamanho de imagem recomendado é 256x256.

  • model: O modelo 3D a ser usado para o wearable. Este arquivo deve estar no nível root da sua pasta.

  • bodyShape: O tipo de corpo do avatar com o qual este wearable é compatível. Valores possíveis:

    • male

    • female

    • both

  • collectionAddress: O endereço ethereum da coleção publicada de wearables. Este endereço é atribuído após a publicação, pode ser deixado em branco.

A miniatura

Você deve incluir uma imagem chamada thumbnail.png no nível root da sua pasta. Esta imagem será mostrada tanto na backpack quanto no marketplace, para representar seu wearable em 2D. O tamanho de imagem recomendado é 256x256.

Escolha uma imagem que defina as expectativas do jogador e represente adequadamente sua criação.

A Pré-visualização

Executar uma pré-visualização de uma experiência portátil é como executar a de uma cena, simplesmente clique Run Scene na aba Decentraland, ou execute npm run start na linha de comando. Se o wearable.json arquivo estiver configurado corretamente e o projeto for reconhecido como um smart wearable, você notará que todos os visíveis ao seu redor são os parcels vazios padrão. Neste modo de pré-visualização, você não está restrito a nenhum conjunto de parcels, você pode adicionar modelos 3D ou sons em qualquer lugar do mundo.

Para testar como o smart wearable se comporta no contexto de uma cena, você também pode executar uma pré-visualização do seu wearable ao mesmo tempo em que executa a pré-visualização de uma ou várias cenas usando um Workspace. Por exemplo, você pode executar seu smart wearable junto com a Genesis Plazaarrow-up-right scene para testar como ele se comporta em uma cena movimentada, dentro de um elevador, etc.

Dicas

  • Ao posicionar uma entidade, observe que as posições são globais, relativas às coordenadas 0,0 de Genesis Plaza.

  • Para reagir a jogadores próximos:

    • Veja Buscar todos os jogadores para saber como obter dados de outros jogadores nas proximidades.

    • Tenha em mente que o carregamento do smart wearable, das cenas ao redor e de outros jogadores pode ocorrer em ordens diferentes dependendo da situação. Se o jogador entrar no Decentraland com o smart wearable já ativado, é provável que a cena global do seu wearable carregue antes dos outros jogadores. Por outro lado, se o jogador primeiro carregar em uma cena e então colocar o wearable, é provável que outros jogadores já estejam carregados quando a cena do wearable começar a rodar.

    • Para experiências multiplayer, espere até que o jogador esteja conectado a uma island dentro do seu realm. Busque os dados do realm e verifique o campo ‘room’. Se o campo ‘room’ for null, o jogador ainda não está conectado a uma island e outros jogadores não estarão carregados ainda. Você pode checar periodicamente isso a cada 1 segundo até que o campo ‘room’ esteja presente, e só então inicializar sua lógica.

  • Para interagir com cenas ao redor:

    • Você não pode enviar instruções diretamente para cenas próximas ou outras experiências portáteis, o messageBus está atualmente sandboxed para cada experiência portátil/cena.

    • Você pode usar um servidor intermediário para enviar informações entre a experiência portátil e uma cena.

    • Se você fizer um raycast, pode detectar acertos contra os colliders de entidades das cenas ao redor. Isso pode informar a localização exata do impacto, a direção da normal e até o nome da entidade e o nome da mesh do modelo 3D. Isso só funciona ao atingir entidades em cenas escritas com SDK7.

  • Encerrar uma experiência portátil: Execute o kill() método para auto-terminar uma experiência portátil.

Publicar

Para publicar seu smart wearable:

  1. Certifique-se de que as informações em wearable.json estejam precisas. Se você usou outro projeto como ponto de partida, certifique-se de que o id seja um identificador único, não usado por outros wearables.

  2. Execute npm run pack na pasta do seu projeto. Isso gera um smart-wearable.zip arquivo na pasta do seu projeto.

circle-exclamation
  1. Abra o Builder, abra a aba Collections, clique em + para subir um novo wearable.

  2. Arraste seu smart-wearable.zip compactado para dentro do Builder, verifique se todas as informações estão corretas.

Nota: Se seu wearable contém diferentes representações de modelo, você precisa fazer uma solução alternativa:

  1. No seu projeto, crie uma nova pasta para cada representação (male e female), e coloque o modelo 3D de cada representação em sua pasta correspondente.

  2. Atualize seu wearable.json arquivo para incluir as novas representations.

  3. Execute npm run pack para gerar um novo arquivo smart-wearable.zip.

  4. Arraste o novo arquivo smart-wearable.zip para dentro do Builder.

  1. Abra o editor de wearables e certifique-se de que as categorias “hide” e “remove” estejam corretamente definidas para desativar outras categorias de wearables quando este wearable estiver ativado.

  2. Crie uma nova coleção com este e possivelmente outros wearables.

  3. Clique no ícone de 3 pontos ao lado de “Mint Items” e selecione “See in world”. Isso abrirá uma aba com o Explorer em Sepolia, onde você pode experimentar todos os wearables da sua coleção em Decentraland e ver como eles se comportam em um cenário mais real, por exemplo correndo por Genesis Plaza.

  4. A partir deste ponto, seu wearable está pronto para ser publicado.

Ações restritas

Para evitar abuso, certos recursos não são permitidos em experiências portáteis por padrão, e requerem a adição de uma flag de permissão.

Veja Permissões requeridas para mais detalhes.

Limitações

IMPORTANTE: Todo o smart wearable precisa caber dentro de 3MB. Isso inclui o modelo 3D, miniatura, código, bibliotecas, arquivos de som, modelos 3D adicionais, imagens de UI, etc. Este limite é para a pasta descompactada. O Builder não permitirá que você envie wearables maiores que isso. Para verificar o tamanho da sua experiência portátil, execute npm run pack, o tamanho do projeto é especificado no texto de saída do comando. Você também pode verificar isso descompactando o gerado smart-wearable.zip arquivo e checando o tamanho da pasta.

Smart wearables apenas executam a experiência portátil para o jogador que está usando o wearable. Outros jogadores não veem os efeitos. Por exemplo, se a experiência portátil renderiza um pet que segue o jogador, outros jogadores ao redor não verão esse pet. No entanto, outros jogadores verão avatares executarem animações que rodem como parte da cena do wearable, mesmo custom avatar animations carregadas como parte dos arquivos do smart wearable.

Smart wearables só funcionam quando os jogadores os estão usando. Por esse motivo, os jogadores só podem ter um número limitado de smart wearables ativados, e dependendo de qual parte do corpo ocupam, alguns serão incompatíveis com outros. Por exemplo, você não pode usar dois hats ao mesmo tempo, ou um helmet e hair ao mesmo tempo.

Se um wearable estiver “hidden” mas não “removed” por outros wearables sendo usados, então o smart wearable ainda pode estar ativo, mesmo que o wearable correspondente não esteja visível.

Exemplos

Exemplo de smart wearablearrow-up-right)

Atualizado