For the complete documentation index, see llms.txt. This page is also available as Markdown.

Smart Wearables

Crie Wearables com capacidades interativas

Smart wearables são um tipo de cena global. Assim como experiências portáteis, elas são gameplay que os jogadores levam consigo à medida que se movem pelo metaverso. Por exemplo, enquanto executa uma cena global, um jogador poderia pegar uma bola de neve no chão em Genesis Plaza, afastar-se para outra cena e lançar a bola de neve para outro jogador que também esteja a jogar o mesmo jogo.

Smart wearables são experiências portáteis que são ativadas quando o jogador veste uma determinada peça de roupa. Smart wearables podem conceder aos jogadores novas habilidades, como uma jetpack que lhes permite voar, ou adicionar uma nova camada de conteúdo por cima do resto do mundo, como colocar moedas aleatoriamente para serem coletadas em toda a Genesis City.

Como começar

Usando a CLI

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

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

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

Os ficheiros do template

A pasta de um projeto Smart Wearable totalmente novo é muito semelhante à de uma cena do Decentraland, mas irá notar as seguintes diferenças:

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

  • Existe um modelo 3D placeholder (glasses.glb) e uma miniatura (glasses.png) para um par de óculos escuros. Deve substituí-los pelo wearable real que está a criar

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

Sobre wearable.json

O ficheiro predefinido wearable.json tem o seguinte aspeto:

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

  • id: ID único do smart wearable.

  • name: O nome do wearable que os utilizadores verão no marketplace

  • description: A descrição do wearable que os utilizadores verão no marketplace. Certifique-se de que indica o que o smart wearable pode fazer, uma vez que os utilizadores do marketplace não terão forma de pré-visualizar a sua funcionalidade antes de o comprar.

  • rarity: A raridade da oferta do token. Os valores possíveis são:

    • unique (1 cópia)

    • mythic (10 cópias)

    • exotic (50 cópias)

    • legendary (100 cópias)

    • epic (1000 cópias)

    • uncommon (10.000 cópias)

    • common (100.000 cópias)

Os seguintes campos também podem ser incluídos opcionalmente. Estas definições também podem ser configuradas a partir da UI do Builder, assim que carregar o smart wearable.

  • data: Inclui o seguinte

    • replaces: Lista de categorias de outros wearables que devem ser removidos ao equipar este wearable, além do padrão desta categoria. Ex.: Ao vestir uma capa para a parte superior do corpo, também oculte feet.

    • hides: Lista de categorias de outros wearables que devem ser ocultados (mas não removidos) 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 body shapes masculina e feminina.

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

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

      • overrideHides: Quaisquer exceções ao comportamento predefinido de hide desta categoria de wearable. hide desta categoria de wearable.

      • overrideReplaces: Quaisquer exceções ao comportamento predefinido de hide desta categoria de wearable. replace desta categoria de wearable.

    • category: Que categoria de wearable usar. Os 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 usar no menu “experiences”, para representar esta experiência portátil. Esta imagem deve estar na raiz da sua pasta. O tamanho recomendado da imagem é 256x256.

  • model: O modelo 3D a usar para o wearable. Este ficheiro deve estar na raiz 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 de wearables publicada. Este endereço é atribuído após a publicação; pode deixá-lo em branco.

A miniatura

Tem de incluir uma imagem chamada thumbnail.png na raiz da sua pasta. Esta imagem será mostrada tanto na mochila como no marketplace, para representar o seu wearable em 2D. O tamanho recomendado e obrigatório da imagem é 256x256.

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

O Preview

Executar um Preview de uma experiência portátil é igual a executar o de uma scene; basta clicar Preview no Creator Hub, ou executar npm run start na linha de comando. Se o wearable.json ficheiro estiver corretamente configurado e o projeto for reconhecido como um smart wearable, irá notar que tudo o que vê à sua volta são os parcels vazios predefinidos. Neste modo de Preview, não está limitado a qualquer conjunto de parcels; pode adicionar modelos 3D ou sons em qualquer lugar do mundo.

Para testar como o smart wearable se comporta no contexto de uma scene, pode também executar um Preview do seu wearable ao mesmo tempo que executa um Preview de uma ou várias scenes através de um Workspace. Por exemplo, pode executar o seu smart wearable em conjunto com a Genesis Plaza scene para testar como se comporta numa scene movimentada, enquanto está num elevador, etc.

Dicas

  • Ao posicionar uma Entity, tenha em atenção que as posições são globais, relativas às coordenadas 0,0 da Genesis Plaza.

  • Para reagir aos jogadores próximos:

    • Veja Obter todos os jogadores para saber como obter dados de outros jogadores nas redondezas.

    • Tenha em atenção que o carregamento do smart wearable, das cenas circundantes e de outros jogadores pode ocorrer em ordens diferentes, dependendo da situação. Se o jogador entrar no Decentraland com o smart wearable já colocado, é provável que a sua scene global seja carregada antes dos outros jogadores. Por outro lado, se o jogador carregar primeiro numa scene e depois vestir o wearable, é provável que os outros jogadores já estejam carregados quando a scene do wearable começar a ser executada.

    • Para experiências multijogador, espere até o jogador estar conectado a uma ilha dentro do seu realm. Obtenha os dados do realm e verifique o campo ‘room’. Se o campo ‘room’ for null, o jogador ainda não está ligado a uma ilha e os outros jogadores ainda não serão carregados. Pode verificar isto periodicamente a cada 1 segundo até o campo ‘room’ estar presente, e só então inicializar a sua lógica.

  • Para interagir com as cenas circundantes:

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

    • Pode usar um servidor intermédio para enviar informações entre a experiência portátil e uma cena.

    • Se fizer um raycast, pode detetar impactos contra os colliders de Entities das cenas circundantes. Isto pode indicar-lhe a localização exata do impacto, a direção normal e até o nome da Entity e o nome do Mesh do modelo 3D. Isto só funciona ao atingir Entities em scenes escritas com SDK7.

  • Terminar uma experiência portátil: Execute o kill() método para terminar uma experiência portátil por si própria.

Publicar

Para publicar o seu smart wearable:

  1. Certifique-se de que a informação em wearable.json está correta. Se usou outro projeto como ponto de partida, certifique-se de que o id é um identificador único, não usado por outros wearables.

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

  1. Abra o Builder, abra o separador Collections, clique em + para carregar um novo wearable.

  2. Arraste o ficheiro comprimido smart-wearable.zip para o Builder, verifique se toda a informação está correta.

Nota: Se o seu wearable contiver representações de modelo diferentes, precisa de aplicar 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 na respetiva pasta.

  2. Atualize o seu wearable.json ficheiro

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

  4. Arraste o novo ficheiro smart-wearable.zip para o Builder.

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

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

  3. Clique no ícone dos 3 pontos ao lado de “Mint Items” e selecione “See in world”. Isto abrirá um separador com o Explorer em Sepolia, onde pode experimentar todos os wearables da sua coleção no Decentraland e ver como se comportam num cenário mais real, por exemplo, a correr à volta de Genesis Plaza.

  4. Nesta altura, o seu wearable está pronto para ser publicado.

Ações restritas

Para evitar abusos, certas funcionalidades não são permitidas por predefinição em experiências portáteis e requerem a adição de uma flag de permissão.

Veja Permissões necessárias para mais detalhes.

Limitações

IMPORTANTE: Todo o smart wearable precisa de caber em 3MB. Isto inclui o modelo 3D, a miniatura, o código, as libraries, ficheiros de som, modelos 3D adicionais, imagens da UI, etc. Este limite aplica-se à pasta não comprimida. O Builder não lhe permitirá carregar wearables maiores do que isto. 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. Também pode verificar isto ao descomprimir o ficheiro smart-wearable.zip gerado e verificar o tamanho da pasta.

Os smart wearables executam apenas a experiência portátil para o jogador que está a usar o wearable. Os outros jogadores não veem os efeitos. Por exemplo, se a experiência portátil renderizar um animal de estimação que segue o jogador, os outros jogadores à volta não o verão. No entanto, os outros jogadores verão avatares executar animações que fazem parte da scene do wearable, mesmo animações personalizadas de avatar carregadas como parte dos ficheiros do smart wearable.

Os smart wearables só funcionam quando os jogadores os têm equipados. Por esse motivo, os jogadores só podem ter um número limitado de smart wearables ativados e, dependendo da parte do corpo que ocupem, alguns serão incompatíveis entre si. Por exemplo, não pode ter dois chapéus ao mesmo tempo, nem um capacete e cabelo ao mesmo tempo.

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

Exemplos

Exemplo de smart wearable)

Atualizado