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

Smart Items - Avançado

Usar smart items na sua scene para adicionar interatividade.

A maioria dos smart items tem um módulo básico onde você pode configurar apenas as opções mais comuns de forma simples, mas você pode rolar para baixo além do Avançado marcador para personalizar quase tudo sobre como o item se comporta.

O smart item a seguir tem um componente Transform e um módulo básico que expõe apenas os campos básicos para configurar um botão. Mas, se você rolar para baixo além do Avançado marcador, você encontrará todas as opções disponíveis.



📔 Nota: A maioria das opções no módulo básico também está disponível nos componentes mais abaixo. As alterações feitas no módulo básico se refletem nos componentes mais abaixo e vice-versa, exceto em alguns casos em que as opções básicas são uma abstração de várias opções mais abaixo. Nesses casos, alterar as opções avançadas para valores que não são suportados pelo módulo básico fará com que o campo no módulo básico seja marcado como indefinido.

Configuração avançada

As propriedades são agrupadas em componentes. Smart items diferentes podem ter componentes diferentes, dependendo da sua funcionalidade.

O comportamento da maioria dos itens é controlado por:

  • Actions: O componente Actions define coisas que o item pode fazer. Por exemplo, reproduzir um som, reproduzir uma animação, mover para cima ou tornar-se invisível.

  • Triggers: O componente Triggers define quais eventos fazem essas ações acontecerem. Por exemplo, quando o player clica no item, quando o player entra em uma área ou quando a scene é carregada pela primeira vez.

Por exemplo, em um smart item de porta, o Actions componente Actions inclui as ações "Open" e "Close". O Triggers componente Triggers nesse item inclui um On Click trigger que ativa a ação "Open" quando a porta é clicada pelo player.

Os triggers de um smart item podem ativar ações em qualquer smart item na scene, não apenas nesse mesmo smart item. Por exemplo, um smart item de botão pode ter um Triggers component que ativa a ação "move up" definida no Actions componente de uma plataforma flutuante.

Os triggers também podem acontecer condicionalmente. Por exemplo, smart items de porta incluem dois On Click triggers em seu componente Triggers: um abre a porta se essa porta estava fechada, o outro fecha a porta se ela estava aberta. Para mais detalhes, veja Estados e lógica condicional.

Interações entre itens

Para fazer itens interagirem entre si:

  • Um item precisa ter pelo menos uma ação definida em um Actions component.

  • O outro item precisa de um trigger no Triggers component que aponta para essa ação.

Por exemplo, para fazer um botão abrir uma porta:

  1. Adicione qualquer smart item de botão, abra seu Triggers component. Ele tem um evento trigger padrão que reproduz um som e uma animação para o próprio botão.

  2. Clique no + sinal ao lado de Assigned Actions, para adicionar uma terceira ação nesse mesmo evento trigger.

  3. Selecione o smart item da porta no primeiro dropdown.

  4. No segundo dropdown, selecione a ação "Open".



💡 Dica: Em vez disso, você pode criar um novo evento Trigger que trate apenas da ação da porta. Ambos os eventos trigger são chamados toda vez que o botão é clicado.



Qualquer item pode acionar qualquer ação de qualquer outro item, desde que a ação esteja definida. Veja Triggers para mais formas pelas quais uma ação pode ser acionada.

Você pode usar states and conditional logic para acionar uma ação apenas se uma condição for atendida. A condição pode até verificar o estado de um terceiro smart item. Por exemplo, um botão só abre a porta se um smart item personalizado "power generator" estiver com seu estado definido como "On".

Actions

O Actions componente lista ações que o item pode executar. Cada smart item inclui um conjunto de ações predefinidas. Você pode personalizar ações existentes ou adicionar novas. Os seguintes tipos de ações estão disponíveis:

  • Play Animation: Reproduz uma animação no modelo 3D do item. Veja Sobre reproduzir animações

  • Stop Animation: Para todas as animações sendo reproduzidas pelo modelo 3D do item.

  • Play Sound: Reproduz um som de um arquivo, na localização do item. Veja Sobre reproduzir sons

  • Stop Sound: Para todos os sons reproduzidos pelo item.

  • Start Tween: Faz uma alteração gradual de posição, rotação ou escala ao longo de um período de tempo. Veja Mover, rotacionar ou escalar.

  • Set Visibility: Torna o item visível ou invisível.

  • Attach To Player: Define o item como filho do avatar do player. Por exemplo, para carregá-lo na mão ou acima da cabeça.

  • Detach From Player: Desanexa o item do avatar do player.

  • Open Link: Abre um link para um site externo em uma aba do navegador. Os players são perguntados se confiam no domínio antes de ele abrir.

📔 Nota: Esta ação só pode acontecer como resultado de clicar em um item. Ela não pode ser acionada ao entrar em uma trigger area.

  • Move Player: Altera a posição do player para um conjunto de coordenadas locais dentro da scene. Só é possível mover o player dentro da mesma scene.

  • Teleport Player: Teleporta um player para outro local em Decentraland. Use o Teleport Mode dropdown para enviá-lo To coordinates de outra scene em Genesis City, ou To World, indicando o nome de um World. Os players aparecerão no spawn-point da scene de destino.

  • Play Emote: Faz o avatar do player executar uma das animações padrão do avatar (por exemplo: acenar ou bater palmas).

  • Play Custom Emote: Faz o avatar do player executar uma animação personalizada, a partir de um arquivo enviado para a scene.

  • Show Text: Exibe texto na UI da tela, para ser ocultado após alguns segundos. Ideal para dicas, falas de diálogo, notificações, etc.

  • Hide Text: Oculta qualquer texto de UI que possa estar sendo exibido no momento.

  • Start Delay: Adia outra ação do mesmo item pelo número de segundos que você precisar.

  • Stop Delay: Cancela qualquer ação adiada no item.

  • Start Loop: Repete uma ação do mesmo item de forma recorrente em um intervalo definido.

  • Stop Loop: Cancela qualquer ação em loop no item.

  • Play Video: Reproduz um vídeo como material em uma forma primitiva.

  • Stop Video: Para quaisquer vídeos sendo reproduzidos no momento.

  • Play Audio Stream: Reproduz um stream de áudio.

  • Stop Audio Stream: Para quaisquer streams de áudio sendo reproduzidos no momento.

  • Clone: Duplica um item na posição designada.

  • Spawn Entity: Cria uma nova cópia de um item na scene, em uma posição relativa ao item que executa a ação. O item a ser spawnado não precisa estar colocado na scene. Veja Sobre spawn de entidades.

  • Remove: Exclui um item da scene.

  • Show Image: Exibe uma imagem na UI, potencialmente por um tempo limitado. Ela também pode incluir legenda.

  • Hide Image: Oculta qualquer imagem exibida atualmente na UI pela ação Show Image.

  • Damage: Reduz a health em qualquer healthbar que esteja por perto. A Layer property pode determinar se ela age apenas em healthbars do player, ou em outros itens.

  • Move player here: Altera a posição do player para a posição deste item.

  • Place on Player: Altera a posição do item para a posição do player.

  • Rotate as Player: Altera a rotação do item para a do player.

  • Place on Camera: Altera a posição do item para a da camera.

  • Rotate as Camera: Altera a rotação do item para a da camera.

  • Set Position: Altera a posição do item para uma específica. Ela pode ser absoluta ou relativa à posição atual.

  • Set Rotation: Altera a rotação do item para uma específica. Ela pode ser absoluta ou relativa à rotação atual.

  • Set Scale: Altera a escala do item para uma específica. Ela pode ser absoluta ou relativa à escala atual.

  • Follow Player: Começa a se mover e virar na direção da posição do player. Ignora quaisquer obstáculos no caminho. Você pode definir a velocidade e fazer com que ele se mova apenas em certos eixos. Min Distance determina o quão perto ele chegará do player.

  • Stop Following Player: Para a ação Follow Player.

  • Random Action: Uma das ações listadas aqui será executada aleatoriamente com igual probabilidade cada vez que a ação aleatória for chamada. Você pode listar qualquer uma das ações que pertencem ao item.

  • Batch Actions: Todas as ações listadas aqui serão executadas simultaneamente cada vez que a batch action for chamada. Você pode listar qualquer uma das ações que pertencem ao item.

  • Heal Player: Restaura a health da health bar do player.

  • Player Face Item: Faz o avatar do player virar para encarar o item.

  • Freeze Player: Impede o player de se mover, pular ou executar emotes.

  • Unfreeze Player: Restaura a capacidade do player de se mover após uma ação Freeze Player.

  • Lights On: Liga o Light Source component.

  • Lights Off: Desliga o Light Source component.

  • Lights Modify: Altera propriedades do Light Source componente, como sua cor ou intensidade.

  • Select Camera: Alterna a visão do player para uma Virtual Camera, seja neste item ou em outra entidade.

  • Change Text: Altera o texto de um item com um Text Shape componente. Também pode alterar o tamanho da fonte e a cor.

  • Stop Tween: Para qualquer movimento tween atualmente em progresso no item.

  • Slide Texture: Desliza continuamente a textura no material do item em uma direção dada, para efeitos como água corrente ou esteiras transportadoras.

  • Change Collisions: Habilita ou desabilita os colliders do item, tanto para física quanto para pointer events.

  • Change Skybox: Altera o skybox da scene para uma hora fixa do dia, expressa em segundos desde a meia-noite.

  • Reset Skybox: Restaura o skybox da scene para suas configurações padrão.

  • Log to Console: Imprime uma mensagem no console, útil para debugging durante o desenvolvimento da scene.

  • Delete: Remove o item e todos os seus children da scene.

Veja states and conditional logic para aprender sobre outras ações relacionadas a condições lógicas, como Set State e as ações de contador.

O Actions componente define ações possíveis, mas elas não fazem nada na scene a menos que sejam acionadas. As ações são ativadas por um trigger, seja do mesmo smart item ou de outro diferente.

Para adicionar uma nova ação a um item, clique no Add New Action botão na parte inferior do componente Action. Depois dê um nome à ação, selecione um tipo e preencha quaisquer campos adicionais específicos do tipo de ação.



Triggers

O Triggers componente define eventos trigger, que ativam ações quando um determinado evento acontece. Existem os seguintes tipos de eventos trigger:

  • On Click: Quando o player clica no item. Veja Sobre trigger de clique

  • On Input Action: Quando o player pressiona um botão de entrada enquanto aponta para o item.

  • On Global Click: Quando o player clica no pointer em qualquer lugar, sem precisar apontar para o item.

  • On Global Primary: Quando o player pressiona o botão Primary (E) em qualquer lugar.

  • On Global Secondary: Quando o player pressiona o botão Secondary (F) em qualquer lugar.

  • Player Enters Area: Quando o player entra em uma área. Veja Trigger Area

  • Player Leaves Area: Quando o player sai de uma área. Veja Trigger Area

  • On Spawn: Quando a scene começa, ou o item é spawnado na scene. Veja Trigger on spawn

  • On Delay: Quando um Start Delay action no item termina sua contagem regressiva.

  • On Loop: A cada iteração de uma Start Loop action no item.

  • On Clone: Quando o item é clonado via uma Clone action, a nova cópia dispara este trigger.

  • On Click Image: Quando o player clica em uma imagem exibida por uma Show Image action.

  • On Damage: Quando o item recebe dano de uma Damage action.

  • On Heal Player: Quando o player é curado por uma Heal Player action.

  • On Tick: A cada tick da scene, uma vez por frame. Use com cautela, pois as ações disparadas por ele executam com muita frequência.

Veja states and conditional logic para aprender sobre outros triggers relacionados a condições lógicas, como On State Change, On Counter Change e On Tween End.

Para adicionar um novo trigger, clique no Add New Trigger Event na parte inferior do componente Trigger. Depois selecione o tipo de trigger, a entidade que você quer ativar e uma ação dessa entidade.



📔 Nota: Uma ação precisa ser definida no Actions componente da entidade antes de você poder acioná-la. Triggers só podem afetar entidades que tenham um componente Actions.

Sobre reproduzir animações

Use uma ação do tipo Play Animation para executar uma animação no modelo 3D do smart item. A animação já precisa existir como parte do arquivo do modelo 3D. O Select Animation dropdown exibe uma lista de todas as animações disponíveis no modelo 3D.

O Play Mode campo permite selecionar se uma animação deve tocar apenas uma vez ou se deve continuar em loop.



Depois que a ação é criada, você pode ativá-la pelo Triggers componente desse mesmo item ou de qualquer outro item.

Use a Stop Animation ação para parar todas as animações do item, tanto as em loop quanto as que não estão em loop.

💡 Dica: Para verificar facilmente o conteúdo de um modelo 3D, para ver quais animações ele inclui e como elas se parecem, uma boa ferramenta é o Babylon Sandbox. Basta arrastar o arquivo do modelo 3D para dentro da janela. Um dropdown com uma lista de suas animações deve aparecer na parte inferior.

Para saber mais sobre animações e como você pode criar as suas próprias como parte de um modelo 3D, veja Animações.

Sobre reproduzir sons

Use uma ação do tipo Play Sound para reproduzir um arquivo de som. Você pode reproduzir qualquer arquivo de som, desde que ele tenha sido importado para o projeto da scene. O som é ouvido de forma posicional, a partir da localização do item, o que significa que ele soa mais alto se o player estiver mais perto.

💡 Dica: Em vez de digitar o caminho para o arquivo de som, você pode arrastá-lo para o Path campo a partir do menu de navegação de arquivos na parte inferior do Scene Editor.

Use a Play Mode campo para escolher se o som será tocado uma vez ou em loop contínuo.



Depois que a ação é criada, você pode ativá-la pelo Triggers componente desse mesmo item ou de qualquer outro item.

Use a Stop Sound : ação para parar todos os sons do item, tanto os em loop quanto os sem loop. Isso também interrompe sons do AudioSource component.

Para fazer um item reproduzir sempre um som em loop, por exemplo para ambiência ou música, é mais fácil usar o AudioSource componente, em vez de usar Actions e Triggers. Esse componente só requer que você forneça o caminho para um arquivo e marque as caixas Start Playing e Loop.



📔 Nota: Um smart item só pode reproduzir um som por vez. Chamar um segundo som interromperá quaisquer outros sons que estejam tocando no momento. Isso também se aplica aos sons do AudioSource componente. Se você precisar de dois sons tocando juntos, considere adicionar uma entidade invisível no mesmo local para conter um Play Sound action.

Veja sons para saber mais sobre como reproduzir sons em Decentraland.

Mover, rotacionar ou escalar

Use uma Start Tween ação para alterar a posição, escala, ou rotação, do item ao longo de um período de tempo. Todas as Start Tween ações começam a partir do estado original do item e mudam para um estado final ao longo de um período de tempo.

As tweens de posição podem ser relativas ou absolutas. Um tween absoluto de posição move o item para uma posição fixa em relação à scene. O item se moverá de onde quer que esteja até essa posição. Se ele já estiver lá, não parecerá se mover. Um tween relativo de posição move o item uma certa distância de onde ele está agora, por exemplo, um tween para uma posição relativa de 1, 0, 0 move o item 1 metro para a frente, na direção para a qual ele está apontando no momento. Se você executar a ação tween uma segunda vez, o item se moverá mais um metro para a frente.

As tweens de rotação também podem ser relativas ou absolutas. Uma rotação relativa é adicionada à rotação atual do item. Um tween absoluto de rotação fará o item apontar para uma direção específica, em relação à scene.

Use a Duration campo para definir quanto tempo todo o movimento deve levar, em segundos. Observe que o slider vai até 100 segundos, mas você também pode escrever um número maior manualmente, se precisar.



Depois que a ação é criada, você pode ativá-la pelo Triggers componente desse mesmo item ou de qualquer outro item.

As tweens podem seguir diferentes Curve Types que afetam a taxa de mudança ao longo do tempo. Uma linear curve (padrão) significa que a velocidade da mudança é constante do início ao fim. Há muitas opções para escolher, que desenham curvas com formatos diferentes dependendo se o início e/ou o fim começam devagar, e em que medida. Uma easeinexpo curve começa devagar e termina rápido, aumentando a velocidade exponencialmente; ao contrário, uma easeoutexpo curve começa rápido e termina devagar.



💡 Dica: Experimente diferentes curvas de movimento. As diferenças geralmente são sutis, mas nós interpretamos subconscientemente informações sobre como as coisas se movem, como peso, atrito ou até personalidade.

Use On Tween End eventos de trigger no Triggers componente para ativar uma ação depois que um tween terminar. Use states and conditional logic para descrever um caminho em loop para uma plataforma flutuante, de modo que ela se mova continuamente entre dois locais.

Quando um item executa um tween, isso afeta tudo sobre o item. Por exemplo, se ele altera a escala, altera a escala do seu modelo 3D visível e também da geometria invisível do collider, o tamanho do texto, etc. Se o item tiver quaisquer children (aninhados na entity tree à esquerda), essas child entities também são afetadas pelo tween.

📔 Nota: Cada entity só pode executar um tween de cada vez. Por exemplo, você não pode fazer um item se mover lateralmente e também girar ao mesmo tempo. Como solução alternativa, você pode usar entities parented. Por exemplo, você pode ter uma parent entity invisível que se move lateralmente, com um child visível que gira.

Sobre spawn de entidades

Use uma Spawn Entity ação para criar uma nova cópia de um item na scene enquanto ela está em execução. Diferente da Clone action, o item que você gerar não precisa ser colocado na scene primeiro.

Tornar um item gerável

Antes que um item possa ser gerado, ele precisa estar disponível nos arquivos do seu projeto. Para adicionar um item sem colocá-lo na scene:

  1. No Assets painel, encontre o item no catálogo ou em seus Custom Items.

  2. Clique com o botão direito no item e selecione Add to filesystem.

Isso copia o item para o seu projeto para que ele possa ser gerado depois. Não adiciona nada visível à scene. O item então aparece no Source menu suspenso de qualquer Spawn Entity action.

Configurar a ação

Uma Spawn Entity ação tem dois campos:

  • Source: O item a ser gerado. Escolha entre os itens adicionados aos arquivos do seu projeto.

  • Posição: As coordenadas X, Y e Z onde a nova cópia aparece, em relação ao item que executa a ação.

Se o item que você gerar for ele próprio um smart item, cada cópia gerada mantém suas próprias ações e gatilhos funcionando de forma independente.

💡 Dica: Para gerar itens a partir de código, veja Composites. Itens adicionados aos arquivos do seu projeto são armazenados como composites, no mesmo formato usado pela função spawn do SDK.

Sobre trigger de clique

Para acionar uma ação ao clicar em um item, crie um On Click gatilho. A ação será ativada toda vez que o jogador clicar na entity.



Veja Tornar qualquer item smart para mais detalhes.

📔 Nota: Ao usar modelos 3D customizados, o modelo deve ter uma geometria de collider invisível para que possa ser clicado. Veja colliders.

Como alternativa, você pode configurar o GLTF component do item, para que sua Visible Layer de collision seja definida como Pointer.

Outra alternativa é adicionar um Click Area smart item, para desenhar um cubo que sobrepõe o item que você quer clicar. O smart item Click Area é um item invisível.

Trigger on spawn

Triggers do tipo On Spawn ativam uma ação quando a scene é carregada. Em vez de esperar que o jogador interaja com um item, a ação é executada imediatamente.

Por exemplo, use isso para fazer uma plataforma se mover continuamente. Use um On Spawn gatilho para ativar uma ação de tween. Depois use On State Change gatilhos para mantê-la se movendo entre duas ou mais posições.



Multiplayer

Todos os smart items são multiplayer por padrão. Veja Smart Items - Básico para mais detalhes.

Você pode alterar ou ajustar esse comportamento multiplayer para sincronizar apenas certos components do item.

No component do item, Multiplayer marque as caixas dos components que você quer compartilhar.

Por exemplo, uma porta compartilha seu Animator para que todos vejam as animações de abertura, seu AudioSource para que todos ouçam seu som, e seu State para que todos acompanhem se ela está aberta ou fechada no momento. A porta não compartilha sua Visibility component, porque a porta normalmente está sempre visível. Se você incluir ações para ativar e desativar sua visibilidade, talvez queira marcar esse component também, para que as mudanças sejam sincronizadas entre todos os players.

Itens invisíveis

Alguns itens não são feitos para serem vistos pelo player, mas ficam visíveis enquanto você edita sua scene para torná-los mais fáceis de gerenciar. É o caso de itens como Ambience, Trigger Area, Click Area, etc.

No modo avançado, esses itens têm um Visibility component definido como invisível. Esse component não afeta a visibilidade dos itens no Scene Editor, mas qualquer item definido como invisível não é visto pelos players ao executar um preview.

Veja também

Atualizado