> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-pt/scene-editor/interatividade/smart-items.md).

# Smart Items - Básico

Usando smart items na sua scene para adicionar interatividade.

Alguns dos itens no catálogo do Scene Editor são **Smart Items**. Os jogadores podem interagir com estes, têm propriedades configuráveis e podem acionar ações noutros smart items. Por exemplo: portas que podem ser abertas e fechadas, plataformas que se movem para cima e para baixo, ou botões e alavancas que podem ativar outros itens.

{% embed url="<https://www.youtube.com/watch?v=z7HF4GR01hE>" %}

Pode reconhecer estes itens no explorador de asset pack porque têm um ícone de relâmpago e um fundo de cor diferente.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f368bfdf7894d18f29875528bdd91cf8429e70b3%2Fsmart-items.jpg?alt=media)

Pode reconhecer quais os itens na sua scene que são smart porque têm o ícone de relâmpago ao lado deles na entity tree.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-26c0c6fbe09714f92806651fe637acf153da0e80%2Fsmart-item-icon.png?alt=media)

## Usar itens

Para usar um smart item, arraste-o para a scene como qualquer outro item. Todos os itens incluem um comportamento predefinido; execute uma pré-visualização da scene para o experimentar.

Aqui estão alguns itens comuns e os seus comportamentos predefinidos:

* **Portas**: As portas são abertas ou fechadas quando clicadas. Pode alterar este comportamento para que sejam abertas por botões, trigger areas, etc.
* **Botões**: Quando clicados, reproduzem som e uma animação como feedback. Adicione mais ações aos seus trigger events para ativar outros smart items.
* **Alavancas**: Quando clicadas, alternam entre dois estados. Faça com que cada posição da alavanca execute ações diferentes noutros smart items.
* **Baús**: Comportam-se como portas; por predefinição, são abertos ou fechados quando clicados. Pode colocar itens mais pequenos dentro deles.
* **Plataformas**: Movem-se entre duas posições. Use as suas ações tween para controlar para onde se movem, a sua velocidade, etc.
* **Área de trigger**: Um item invisível que pode acionar outros smart items quando o jogador entra na sua área. Veja [Sobre áreas de trigger](#trigger-areas).
* **Avatar Modifier Area**: Uma área invisível que altera a forma como os avatares se comportam ou aparecem dentro dela; por exemplo, ocultando avatares ou desativando popups de passaporte. Veja [Modifier Areas](/creator/content-creator-pt/scene-editor/interatividade/modifier-areas.md).
* **Camera Modifier Area**: Uma área invisível que força a câmara do jogador para primeira ou terceira pessoa enquanto está lá dentro. Veja [Modifier Areas](/creator/content-creator-pt/scene-editor/interatividade/modifier-areas.md).
* **Video Player**: Um ecrã para mostrar vídeos ou live streams. Veja [Reproduzir vídeos](#playing-videos).
* **Audio Stream**: Reproduz áudio a partir de um live stream. Veja [Reproduzir áudio streams](#playing-audio-streams)
* **NFT**: Mostra uma imagem de um NFT como um retrato. Veja [Exibir NFTs](#displaying-nfts)

Todos os smart items podem ser configurados para se comportarem de formas personalizadas. Por exemplo, quão longe uma plataforma se move, ou o que um botão ativa.

## Configurar um item

Selecione um item no Scene Editor para ver todas as suas propriedades à direita.

A maioria dos smart items mantém o seu comportamento num [Script component](/creator/content-creator-pt/scene-editor/estender-com-codigo/script-component.md). As suas definições aparecem no **Script** painel, um campo por parâmetro, cada um com uma tooltip a explicar o que faz. Não precisa de escrever qualquer código para os usar.

Alguns campos típicos que pode encontrar em muitos itens são:

* **Texto de hover**: Que texto é mostrado na UI como dica quando o jogador passa o cursor sobre o item. Por exemplo, uma porta pode dizer "Open"
* **Interaction**: Com que botão o item é ativado? Num teclado típico:
  * **Primary** é **E**
  * **Secondary** é **F**
  * **Pointer** é **Botão esquerdo do rato**
  * **Action3** é a tecla **1**
  * **Action4** é a tecla **2**
  * **Action5** é a tecla **3**
  * **Action6** é a tecla **4**
* **Hooks que reagem ao item**: parâmetros onde escolhe uma ação para executar num momento específico. Quais existem num item depende do que ele faz. Um botão tem **onClick**, uma alavanca tem **onActivate** e **onDeactivate**, uma plataforma em movimento tem **onReachStart** e **onReachEnd**, um sino tem **onRing**. Deixe um hook vazio e nada acontece nesse momento.

Cada item tem as suas próprias definições específicas, que podem variar de um item para outro.

Alguns itens mantêm o antigo **Config** painel, em vez disso. As luzes, por exemplo, continuam a definir aí a sua cor e intensidade.

Todos os itens têm um **Advanced Mode** que lhe permite configurar quase tudo sobre eles. Isto inclui coisas como que sons são reproduzidos, ou em que direção uma plataforma se move. Também pode adicionar ações personalizadas que incluem todo o tipo de coisas, como teleportar o jogador, reproduzir animações de avatar, anexar um item às mãos do jogador, etc. Também pode adicionar lógica condicional, para só ativar algo em certos cenários. Veja [Smart Items - Advanced](/creator/content-creator-pt/scene-editor/interatividade/smart-items-advanced.md).

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-958f6f53945e119e770d84f808814c18d173c9c1%2Fadvanced-mode.png?alt=media)

## Chamar uma ação noutro item

Os smart items podem acionar ações noutros smart items, para que aconteçam sempre que o item é ativado. Basta selecionar o item que quer chamar, a partir de uma lista de todos os itens na scene, e depois selecionar uma ação. Itens diferentes expõem ações diferentes.

Por exemplo, aqui está um botão que abre ou fecha uma porta. Cada vez que o botão é pressionado, a porta vai abrir ou fechar.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-110156bc3c8fa17336e61490402e1cb19d83ff47%2Fbutton-to-door.png?alt=media)

Aqui está uma alavanca que abre uma porta quando é ativada e fecha essa porta quando é desativada.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6e4cb24dd1b7e3e9b438b8825c0479672bc2254c%2Flever-to-door.png?alt=media)

Pode adicionar quantas ações diferentes de itens diferentes quiser para serem acionadas em conjunto. Basta clicar **+ Assign Action**.

Remova ações clicando nos três pontos ao lado de uma ação e selecionando *Remover ação*.

As ações que um item expõe mantêm os seus nomes familiares, como **Open**, **Close**, **Sit Here**, **Turn On**, ou **Teleport**, por isso a ligação entre itens funciona da mesma forma de sempre.

Também pode encadear ações. Por exemplo, se o **onActivate** abre uma porta, e o próprio hook dessa porta aciona outra coisa, a alavanca desencadeia indiretamente toda a cadeia.

Se usar o [Advanced mode](/creator/content-creator-pt/scene-editor/interatividade/smart-items-advanced.md) também pode adicionar lógica condicional a estes tipos de ações.

## Smart items especiais

Alguns smart items têm características únicas que os tornam muito úteis para cenários comuns:

### Áreas de trigger

Use o smart item Trigger Area para acionar uma ação quando o jogador entra numa área.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-649dfd99d06849f543399b5b89a6a31a015cb439%2Ftrigger.png?alt=media)

Use os **Player Enters Area** e **Player Leaves Area** tipos de trigger nos **Triggers** componentes do item. As ações nestes trigger events são ativadas sempre que o jogador entra ou sai da área.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f8389cd077c495e0b8ada33ca0da01800eee7dcd%2Fon_player_enters.png?alt=media)

Veja [Área de trigger](/creator/content-creator-pt/scene-editor/interatividade/trigger-area.md) para mais informações.

### Paredes invisíveis

Uma coleção de formas invisíveis que podem bloquear os jogadores de passar através de uma área ou clicar através dela.

Estas paredes invisíveis podem ser úteis ao importar um modelo 3D que não tem uma collider mesh, ou quando quer criar uma parede que não é visível para o jogador.

Veja [Colliders](/creator/content-creator-pt/scenes-sdk7/fundamentos-de-conteudo-3d/colliders.md) para mais informações.

### Área de clique

Um cubo invisível em que os jogadores podem clicar para acionar ações em quaisquer outros smart items. Este item pode ser ativado ou desativado por qualquer outro smart item; quando desativado, não será clicável. Também pode definir o texto que os jogadores veem quando apontam o cursor para ele.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-e8ab432fd689e68f097f47e600c1789404f7ee4c%2Fclick-area.png?alt=media)

### Assentos

Cadeiras, bancos e outros assentos permitem que um jogador se sente ao clicar neles.

* Um assento só fica livre quando o jogador que o ocupou **se afasta** dele, mais de 1,5 metros.
* Num item com vários lugares, como um banco, ao clicar nele senta-o no **lugar livre mais próximo**.
* Quando todos os lugares estão ocupados, o hover text diz **Seat is taken** e clicar não faz nada.

### Teleports

O **Teleport** item envia o jogador para outro lugar quando ele interage com ele.

Defina os parâmetros **x** e **y** para o enviar para um parcel em Genesis City. Para o enviar para um [World](/creator/content-creator-pt/scenes-sdk7/publicacao/publishing-options.md#decentraland-worlds) em vez disso, preencha o parâmetro **world** com o nome do World, como `myname.dcl.eth`, e deixe as coordenadas vazias.

{% hint style="warning" %}
**📔 Nota**: Antigamente existia um item separado **World Teleport** . Foi removido. Use o item **Teleport** com o seu **world** parâmetro em vez disso.
{% endhint %}

### Definições de locomotion

O **Locomotion Settings** item altera a velocidade a que os jogadores se movem e a altura a que saltam enquanto estão dentro da sua scene. Use-o para fazer uma scene parecer leve e flutuante, para abrandar os jogadores num museu, ou para os acelerar ao atravessarem um mapa grande.

Arraste-o para qualquer lugar da sua scene. Ele aplica os seus valores quando a scene começa, e o seu cubo placeholder só é visível no editor, nunca para os jogadores.

Cada campo é um slider, pré-definido com o valor padrão da Decentraland:

| Campo                 | Predefinição | Intervalo |
| --------------------- | ------------ | --------- |
| `walkSpeed`           | 1.5 m/s      | 0 a 10    |
| `jogSpeed`            | 8 m/s        | 0 a 30    |
| `runSpeed`            | 10 m/s       | 0 a 50    |
| `jumpHeight`          | 1 m          | 0 a 10    |
| `runJumpHeight`       | 1.5 m        | 0 a 10    |
| `doubleJumpHeight`    | 2 m          | 0 a 15    |
| `glidingSpeed`        | 6 m/s        | 0 a 30    |
| `glidingFallingSpeed` | 1 m/s        | 0 a 10    |
| `hardLandingCooldown` | 0.75 s       | 0 a 5     |

O jogging é a velocidade a que os jogadores se movem por predefinição. Caminhar e correr é o que obtêm ao manter premidas as teclas Control ou Shift.

O item também expõe duas ações que outros smart items podem chamar:

* `apply`: volta a escrever os valores atuais dos campos para o jogador, por exemplo depois de uma trigger area ou de um botão.
* `restoreDefaults`: limpa os seus valores, para que o jogador volte aos valores predefinidos da Decentraland.

Veja [Locomotion Settings and Restrictions](/creator/content-creator-pt/scenes-sdk7/interatividade/avatars/locomotion.md) para saber em detalhe o que cada definição faz e como alterar estes valores a partir de código.

### Reproduzir vídeos

Reproduza vídeos a partir de:

* **Ficheiros locais**
* **Stream a partir de um URL**
* **Transmitir em direto a partir de** [**Decentraland Cast**](/creator/content-creator-pt/scene-editor/operar-ao-vivo/live-streaming.md#dcl-cast-easy)
* **Transmitir em direto a partir de** [**RTMP Software**](/creator/content-creator-pt/scene-editor/operar-ao-vivo/live-streaming.md#stream-advanced) **(OBS, XSplit, StreamYard, etc.)**

{% hint style="warning" %}
**📔 Nota**: Reproduzir vídeos exige muito desempenho, por isso mantenha baixo o número de vídeos a reproduzir ao mesmo tempo. O engine limita quantos vídeos podem reproduzir em simultâneo com base nas definições de qualidade de cada jogador (1 em baixo, 5 em médio, 10 em alto) e pausa quaisquer vídeos além desse limite. Veja [Reproduzir vídeos](/creator/content-creator-pt/scene-editor/interatividade/video-screen.md#play-videos).
{% endhint %}

Veja [Reproduzir vídeos](/creator/content-creator-pt/scene-editor/interatividade/video-screen.md) para mais informações.

### Reproduzir áudio streams

Reproduza um áudio stream a partir de um URL, usando o smart item **Audio Stream** .

{% hint style="info" %}
**📔 Nota**: Nem todos os serviços de streaming permitem reproduzir o respetivo áudio fora do seu site. Os seguintes são alguns exemplos que funcionam na Decentraland:

```ts
GRAFFITI = 'https://n07.radiojar.com/2qm1fc5kb.m4a?1617129761=&rj-tok=AAABeIR7VqwAilDFeUM39SDjmw&rj-ttl=5'
SIGNS = 'https://edge.singsingmusic.net/MC2.mp3'
DELTA = 'https://cdn.instream.audio/:9069/stream?_=171cd6c2b6e'
JAZZ = 'https://live.vegascity.fm/radio/8010/the_flamingos.mp3'
```

{% endhint %}

Pode ajustar o volume do seu stream. Note que o áudio do stream não é posicional; é ouvido com volume uniforme em toda a sua scene.

### Exibir NFTs

Para mostrar um NFT numa moldura, use o smart item **NFT** . Tem de fornecer os seguintes campos:

* Network

{% hint style="info" %}
**📔 Nota**: Atualmente **ethereum** é a única network suportada.
{% endhint %}

* NFT Collection Contract: O smart contract da coleção NFT.
* Token ID: O ID do token desta NFT collectible em particular.

<img src="https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-a9cb3597437e714e11f51e76c1315a1420e3d93e%2Fnft-shape.png?alt=media" alt="NFT shape" width="400">

Pode obter esta informação a partir de [OpenSea](https://opensea.io), verificando o separador **Details** por baixo da imagem do NFT.

<img src="https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-65a8932cfc446537eb6340c224fa47d067a12143%2Fopensea.png?alt=media" alt="OpenSea details" width="400">

{% hint style="info" %}
**📔 Nota**: Também pode obter esta informação a partir do URL do opensea. Por exemplo, se o URL do NFT for o seguinte:

> `https://opensea.io/assets/ethereum/0x32b7495895264ac9d0b12d32afd435453458b1c6/1956`

Pode preencher os campos com o seguinte:

* Network: ethereum
* Contract: 0x32b7495895264ac9d0b12d32afd435453458b1c6
* Token: 1956
  {% endhint %}

Também pode configurar uma cor de fundo; isto é particularmente útil para NFTs com fundo transparente.

Também pode escolher um **Frame style**, para enquadrar o NFT numa variedade de estilos diferentes, clássicos e modernos.

Veja [NFTs](/creator/content-creator-pt/scene-editor/construir/nfts.md) para mais detalhes.

### Barras de vida

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-7527837b3d800afc079980b60be5474e6d055b56%2Fhealth-bar.png?alt=media)

O **Health Bar** smart item é um ótimo bloco de construção para várias mecânicas de jogo. Pode ser usado de várias formas:

* Aninhe-o por baixo do **Player** para mostrar a vida do jogador sobre o avatar

  ![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4ba51729ed3cbcd78807385e4a315de8ea460a96%2Fnested-under-player.png?alt=media)
* Aninhe-o por baixo do **Camera** para o mostrar fixo na UI

  ![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-3072a9cf441ecc75b66fba64c9ccbb367c4eb4f7%2Fnested-under-camera.png?alt=media)
* Aninhe-o por baixo de literalmente qualquer item na scene para acompanhar a vida desse item

  ![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5c9737b98956f6817efd09ad5de786331cbd9666%2Fnested-under-barrel.png?alt=media)

Outros itens podem interagir com a barra de vida para adicionar ou subtrair vida dela.

* Itens como os **Spikes** ou **Robot Enemy** podem reduzir a vida

  ![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-aed73698225063ac5cdd7257d9de8eb7c571e632%2Freduce-health.png?alt=media)
* itens como **First Aid** ou o **Healing Pad** podem restaurá-la.

  ![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-2c80447061c76ae6b412ecbea4853f34d03469aa%2Frestore-health.png?alt=media)

Tem de configurar o Health Bar para definir o que acontece quando a vida é igual a 0. Pode fazer respawn do jogador na posição de um smart item **Respawn Pad** , reiniciar o contador da sua pontuação, fazer respawn de quaisquer inimigos, mostrar um texto na UI, ou o que fizer sentido na lógica do seu jogo.

Também pode acionar ações quando a vida é inferior a um determinado valor; por exemplo, reproduzir uma música especial ou mostrar uma dica na UI quando a vida for inferior a 3.

As barras de vida podem ser configuradas para afetar qualquer coisa! Por exemplo, adicione uma barra de vida aninhada por baixo do **Wooden Door** smart item. Esta barra pode ter a sua vida reduzida pelo jogador usando o smart item **Sword** , mas também por uma explosão do **Barrel** ou o ataque do **Robot Enemy**. Para isto funcionar, configure a barra de vida para que execute uma ação no seu item pai quando o seu valor for 0.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-88d81e8b8ea6b0985853612179ccbe55fff7e1a4%2Fwall-with-health.png?alt=media)

Armas como o **Sword** podem ser apanhadas pelo jogador e depois usadas para causar dano em qualquer outro item com uma barra de vida que esteja perto do jogador ao executar a ação.

## Multiplayer

Quase todos os smart items têm comportamento multiplayer, para que todos os jogadores na scene partilhem a mesma experiência à medida que os items mudam de estado. Se o jogador A abrir uma porta, o jogador B também vê essa porta abrir. Se o jogador C entrar depois na scene enquanto os outros jogadores ainda lá estão, também verá a porta já aberta.

No entanto, se não houver jogadores perto da scene, a scene é restaurada ao seu estado predefinido. Portanto, se todos os jogadores saírem, mas depois o jogador A voltar, encontrará a porta fechada (se esse for o estado predefinido da porta).

Certifique-se de que projeta a sua scene para que as ações de um jogador não sabotem a scene para outros que cheguem mais tarde. Por exemplo, se a scene for um jogo de puzzle, pode usar uma ação de *delay* num *tools* smart item para fazer com que todos os itens na scene regressem ao seu estado inicial alguns segundos depois de o puzzle ser resolvido.

Também pode desativar o comportamento multiplayer de um item; veja [Smart Items - Advanced](/creator/content-creator-pt/scene-editor/interatividade/smart-items-advanced.md).

## Resolução de problemas

* *Um item na minha scene devia ser clicável, mas não pode ser clicado*.

Certifique-se de que não está obstruído por outra coisa. Não pode clicar através de outros itens. Alguns itens têm uma *collider mesh* que tem uma geometria simplificada que pode estar a obstruir o seu item, mesmo que a sua forma visível não pareça estar a fazê-lo. Tente mover o item para ver o que acontece.

## Veja também

* [Smart items - Advanced](/creator/content-creator-pt/scene-editor/interatividade/smart-items-advanced.md)
* [Estados e condições](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md)
* [Tornar qualquer item smart](/creator/content-creator-pt/scene-editor/interatividade/make-any-item-smart.md)
* [Combinar com código](/creator/content-creator-pt/scene-editor/estender-com-codigo/overview.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.decentraland.org/creator/content-creator-pt/scene-editor/interatividade/smart-items.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
