> 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-es/scene-editor/interactividad/smart-items-advanced.md).

# Smart Items - Avanzado

Usa smart items en tu escena para añadir interactividad.

La mayoría de los smart items tienen un módulo básico donde puedes configurar solo los ajustes más comunes de forma sencilla, pero puedes desplazarte hacia abajo más allá del **Avanzado** marcador para personalizar casi cualquier cosa sobre cómo se comporta el objeto.

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

El siguiente objeto tiene un componente Transform y un módulo básico que expone solo los campos básicos para configurar un botón. Pero si te desplazas hacia abajo más allá del **Avanzado** marcador, encontrarás todos los ajustes disponibles.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f2e51018feb637e8aac6ec99a7998f64f416a0bb%2Fadvanced-settings-smart-item.png?alt=media\&token=665dc7bf-5758-4853-9c0c-443b89bf5029)

{% hint style="info" %}
**📔 Nota**: La mayoría de los ajustes del módulo básico también están disponibles en los components más abajo. Los cambios realizados en el módulo básico se reflejan en los components más abajo y viceversa, excepto en algunos casos en los que los ajustes básicos son una abstracción de varios ajustes más abajo. En esos casos, cambiar los ajustes avanzados a valores que no son compatibles con el módulo básico hará que el campo del módulo básico se marque como indefinido.
{% endhint %}

## Configuración avanzada

Las propiedades se agrupan en [**components**](/creator/content-creator-es/scenes-sdk7/arquitectura/entities-components.md). Los distintos smart items pueden tener components diferentes, según su funcionalidad.

El comportamiento de la mayoría de los objetos está controlado por:

* [**Actions**](#actions): El componente Actions define cosas que el objeto puede hacer. Por ejemplo, reproducir un sonido, reproducir una animación, subir o volverse invisible.
* [**Triggers**](#triggers): El componente Triggers asigna qué eventos hacen que esas acciones ocurran. Por ejemplo, cuando el jugador hace clic en el objeto, cuando el jugador entra en un área o cuando la escena se carga por primera vez.

Por ejemplo, en un smart item de puerta, el **Actions** componente incluye las acciones 'Open' y 'Close'. El **Triggers** componente en ese objeto incluye un **On Click** trigger que activa la acción 'Open' cuando el jugador hace clic en la puerta.

Los triggers de un smart item pueden activar acciones en cualquier smart item de la escena, no solo en ese mismo smart item. Por ejemplo, un smart item de botón puede tener un **Triggers** componente que activa la acción 'move up' definida en el **Actions** componente de una plataforma flotante.

Los triggers también pueden ocurrir de forma condicional. Por ejemplo, los smart items de puerta incluyen dos **On Click** triggers en su componente Triggers: uno abre la puerta si esa puerta estaba cerrada, el otro la cierra si estaba abierta. Para más detalles, consulta [Estados y lógica condicional](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md).

## Interacciones entre objetos

Para hacer que los objetos interactúen entre sí:

* Un objeto necesita tener al menos una acción definida en un [Actions](#actions) componente.
* El otro objeto necesita un trigger en el [Triggers](#triggers) componente que apunte a esa acción.

Por ejemplo, para hacer que un botón abra una puerta:

1. Añade cualquier smart item de botón, abre su **Triggers** componente. Tiene un evento trigger predeterminado que reproduce un sonido y una animación para el propio botón.
2. Haz clic en el **+** signo junto a **Assigned Actions**, para añadir una tercera acción en ese mismo evento trigger.
3. Selecciona el smart item de la puerta en el primer desplegable.
4. En el segundo desplegable, selecciona la acción 'Open'.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-110156bc3c8fa17336e61490402e1cb19d83ff47%2Fbutton-to-door.png?alt=media\&token=1e558a4c-9887-435c-96c7-866d51a89cbd)

{% hint style="info" %}
**💡 Consejo**: En su lugar, puedes crear un nuevo evento Trigger que solo gestione la acción de la puerta. Ambos eventos trigger se llaman cada vez que se hace clic en el botón.

<img src="https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-30d3ef36d5482564fd8b67854fdd9e9ab2c16cc7%2Fbutton-to-door2.png?alt=media" alt="" data-size="original">
{% endhint %}

Cualquier objeto puede activar cualquier acción de cualquier otro objeto, siempre que la acción esté definida. Consulta [Triggers](#triggers) para ver más maneras en las que se puede activar una acción.

Puedes usar [estados y lógica condicional](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md) para activar una acción solo si se cumple una condición. La condición incluso puede comprobar el estado de un tercer smart item. Por ejemplo, un botón solo abre la puerta si un smart item personalizado de 'generador de energía' tiene su estado establecido en 'On'.

## Actions

El **Actions** El componente Actions enumera las acciones que el objeto puede realizar. Cada smart item incluye un conjunto de acciones predefinidas. Puedes personalizar acciones existentes o añadir nuevas. Los siguientes tipos de acciones están disponibles:

* **Reproducir animación**: Reproduce una animación en el modelo 3D del objeto. Consulta [Acerca de reproducir animaciones](#about-playing-animations)
* **Detener animación**: Detiene todas las animaciones que esté reproduciendo el modelo 3D del objeto.
* **Reproducir sonido**: Reproduce un sonido desde un archivo, en la ubicación del objeto. Consulta [Acerca de reproducir sonidos](#about-playing-sounds)
* **Detener sonido**: Detiene todos los sonidos que se estén reproduciendo desde el objeto.
* **Iniciar Tween**: Hace un cambio gradual de posición, rotación o escala durante un periodo de tiempo determinado. Consulta [Mover, rotar o escalar](#moving-rotating-or-scaling).
* **Establecer visibilidad**: Hace que el objeto sea visible o invisible.
* **Adjuntar al jugador**: Establece el objeto como hijo del avatar del jugador. Por ejemplo, para llevarlo en la mano o sobre la cabeza.
* **Desvincular del jugador**: Desvincula el objeto del avatar del jugador.
* **Abrir enlace**: Abre un enlace a un sitio web externo en una pestaña del navegador. Se les pregunta a los jugadores si confían en el dominio antes de abrirlo.

{% hint style="info" %}
**📔 Nota**: Esta acción solo puede ocurrir como resultado de hacer clic en un objeto. No puede activarse al entrar en un área de trigger.
{% endhint %}

* **Mover jugador**: Cambia la posición del jugador a un conjunto de coordenadas locales dentro de la escena. Solo es posible mover al jugador dentro de la misma escena.
* **Teletransportar jugador**: Teletransporta a un jugador a otra ubicación en Decentraland. Usa el **Modo de teletransporte** desplegable para enviarlo **A coordenadas** de otra escena en Genesis City, o **A World**, indicando el nombre de un World. Los jugadores aparecerán en el punto de aparición de la escena de destino.
* **Reproducir emote**: Hace que el avatar del jugador realice una de las animaciones de avatar predeterminadas (por ejemplo: saludar o aplaudir).
* **Reproducir emote personalizado**: Hace que el avatar del jugador realice una animación personalizada, desde un archivo subido a la escena.
* **Mostrar texto**: Muestra texto en la UI de la pantalla, para ocultarlo después de unos segundos. Ideal para pistas, líneas de diálogo, notificaciones, etc.
* **Ocultar texto**: Oculta cualquier texto de UI que se esté mostrando actualmente.
* **Iniciar retraso**: Retrasa otra acción del mismo objeto tantos segundos como necesites.
* **Detener retraso**: Cancela cualquier acción retrasada en el objeto.
* **Iniciar bucle**: Reproduce repetidamente una acción del mismo objeto a un intervalo determinado.
* **Detener bucle**: Cancela cualquier acción en bucle del objeto.
* **Reproducir vídeo**: Reproduce un vídeo como material en una forma primitiva.
* **Detener vídeo**: Detiene cualquier vídeo que se esté reproduciendo actualmente.
* **Reproducir stream de audio**: Reproduce un stream de audio.
* **Detener stream de audio**: Detiene cualquier stream de audio que se esté reproduciendo actualmente.
* **Clonar**: Duplica un objeto en la posición designada.
* **Spawn Entity**: Crea una nueva copia de un objeto en la escena, en una posición relativa al objeto que realiza la acción. El objeto que se va a generar no necesita estar colocado en la escena. Consulta [Acerca de generar entidades](#about-spawning-entities).
* **Eliminar**: Elimina un objeto de la escena.
* **Mostrar imagen**: Muestra una imagen en la UI, potencialmente durante un tiempo limitado. También puede incluir subtítulos.
* **Ocultar imagen**: Oculta cualquier imagen que se esté mostrando actualmente en la UI mediante la acción Mostrar imagen.
* **Daño**: Reduce la salud de cualquier barra de salud que esté cerca. La *Layer* property puede determinar si solo actúa sobre las barras de salud del jugador o sobre otros objetos.
* **Mover jugador aquí**: Cambia la posición del jugador a la de este objeto.
* **Colocar en el jugador**: Cambia la posición del objeto a la del jugador.
* **Rotar como el jugador**: Cambia la rotación del objeto a la del jugador.
* **Colocar en la cámara**: Cambia la posición del objeto a la de la cámara.
* **Rotar como la cámara**: Cambia la rotación del objeto a la de la cámara.
* **Establecer posición**: Cambia la posición del objeto a una específica. Puede ser absoluta o relativa a su posición actual.
* **Establecer rotación**: Cambia la rotación del objeto a una específica. Puede ser absoluta o relativa a su rotación actual.
* **Establecer escala**: Cambia la escala del objeto a una específica. Puede ser absoluta o relativa a su escala actual.
* **Seguir al jugador**: Comienza a moverse y girar en dirección a la posición del jugador. Ignora cualquier obstáculo en el camino. Puedes establecer la velocidad y hacer que solo se mueva en ciertos ejes. La Distancia mínima determina hasta qué punto se acercará al jugador.
* **Dejar de seguir al jugador**: Detiene la acción Seguir al jugador.
* **Acción aleatoria**: Una de las acciones enumeradas aquí se reproducirá al azar con la misma probabilidad cada vez que se llame a la acción aleatoria. Puedes enumerar cualquiera de las acciones que pertenezcan al objeto.
* **Acciones por lotes**: Todas las acciones enumeradas aquí se reproducirán simultáneamente cada vez que se llame a la acción por lotes. Puedes enumerar cualquiera de las acciones que pertenezcan al objeto.
* **Curar al jugador**: Restaura salud a la barra de salud del jugador.
* **Objeto frente al jugador**: Hace que el avatar del jugador gire para mirar hacia el objeto.
* **Congelar jugador**: Impide que el jugador se mueva, salte o realice emotes.
* **Descongelar jugador**: Devuelve al jugador la capacidad de moverse después de una acción Congelar jugador.
* **Luces encendidas**: Enciende la **Light Source** componente.
* **Luces apagadas**: Apaga la **Light Source** componente.
* **Modificar luces**: Cambia propiedades del componente **Light Source** , como su color o intensidad.
* **Seleccionar cámara**: Cambia la vista del jugador a una **Virtual Camera**, ya sea en este objeto o en otra Entity.
* **Cambiar texto**: Cambia el texto de un objeto con un componente **Text Shape** . También puede cambiar el tamaño de la fuente y el color.
* **Detener Tween**: Detiene cualquier movimiento tween que esté en progreso en el objeto.
* **Deslizar textura**: Desliza continuamente la textura en el material del objeto en una dirección determinada, para efectos como agua que fluye o cintas transportadoras.
* **Cambiar colisiones**: Habilita o deshabilita los colliders del objeto, tanto para física como para eventos del puntero.
* **Cambiar skybox**: Cambia el skybox de la escena a una hora fija del día, expresada en segundos desde medianoche.
* **Restablecer skybox**: Restaura el skybox de la escena a sus ajustes predeterminados.
* **Registrar en la consola**: Imprime un mensaje en la consola, útil para depurar mientras desarrollas la escena.
* **Delete**: Elimina el objeto y todos sus hijos de la escena.

Consulta [estados y lógica condicional](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md) para aprender sobre otras acciones relacionadas con condiciones lógicas, como **Establecer estado** y las acciones de contador.

El **Actions** componente define acciones posibles, pero estas no hacen nada en la escena a menos que se activen. Las acciones se activan mediante un [trigger](#triggers), ya sea del mismo smart item o de uno diferente.

Para añadir una nueva acción a un objeto, haz clic en el **Añadir nueva acción** botón en la parte inferior del componente Action. Luego dale un nombre a la acción, selecciona un tipo y completa cualquier campo adicional específico del tipo de acción.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-61a40f62dff724b5f7b8b0cda353467230c84880%2Fnew-action.png?alt=media\&token=4c85e615-b847-440b-96b0-532a6814071a)

### Triggers

El **Triggers** componente define eventos trigger, estos activan acciones cuando ocurre un determinado evento. Existen los siguientes tipos de eventos trigger:

* **On Click**: Cuando el jugador hace clic en el objeto. Consulta [Acerca de los triggers de clic](#about-click-triggers)
* **Al realizar una acción de entrada**: Cuando el jugador pulsa un botón de entrada mientras apunta al objeto.
* **Clic global**: Cuando el jugador hace clic en el puntero en cualquier parte, sin necesidad de apuntar al objeto.
* **Primario global**: Cuando el jugador pulsa el botón Primario (E) en cualquier parte.
* **Secundario global**: Cuando el jugador pulsa el botón Secundario (F) en cualquier parte.
* **El jugador entra en el área**: Cuando el jugador entra en un área. Consulta [Trigger Area](/creator/content-creator-es/scene-editor/interactividad/trigger-area.md)
* **El jugador sale del área**: Cuando el jugador sale de un área. Consulta [Trigger Area](/creator/content-creator-es/scene-editor/interactividad/trigger-area.md)
* **Al aparecer**: Cuando la escena empieza, o el objeto aparece en la escena. Consulta [Trigger al aparecer](#trigger-on-spawn)
* **Tras el retardo**: Cuando una **Iniciar retraso** acción en el objeto finaliza su cuenta atrás.
* **En bucle**: En cada iteración de una **Iniciar bucle** acción en el objeto.
* **Al clonar**: Cuando el objeto se clona mediante una **Clonar** acción, la nueva copia activa este trigger.
* **Al hacer clic en la imagen**: Cuando el jugador hace clic en una imagen mostrada por una **Mostrar imagen** acción.
* **Al recibir daño**: Cuando el objeto recibe daño de un **Daño** acción.
* **Al curar al jugador**: Cuando el jugador es curado por una **Curar al jugador** acción.
* **En cada tick**: En cada tick de la escena, una vez por fotograma. Úsalo con precaución, ya que las acciones que activa se ejecutan con mucha frecuencia.

Consulta [estados y lógica condicional](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md) para aprender sobre otros triggers relacionados con condiciones lógicas, como **Cambio de estado**, **Cambio de contador** y **Fin de Tween**.

Para añadir un nuevo trigger, haz clic en el **Añadir nuevo evento trigger** en la parte inferior del componente Trigger. Luego selecciona el tipo de trigger, la Entity que quieres activar y una acción de esa Entity.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-2fc45edced2a86ac3f0b7f03057b38aec3d2f78b%2Fnew-trigger.png?alt=media\&token=4709b9ba-4088-4dbd-be35-f1180655a493)

{% hint style="info" %}
**📔 Nota**: Una acción necesita estar definida en el [Actions](#actions) componente de la Entity antes de que puedas activarla. Los triggers solo pueden afectar a Entities que tengan un componente Actions.
{% endhint %}

## Acerca de reproducir animaciones

Usa una acción de tipo **Reproducir animación** para ejecutar una animación en el modelo 3D del smart item. La animación ya debe existir como parte del archivo del modelo 3D. El **Seleccionar animación** desplegable muestra una lista de todas las animaciones disponibles en el modelo 3D.

El **Modo de reproducción** campo te permite seleccionar si una animación debe reproducirse solo una vez o si debe seguir en bucle.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-0939df49ccfd7b60a07cf435a5244a13e5b30169%2Fplay-animation.png?alt=media\&token=f8bc7d76-87c8-49e2-b16a-11427ce865a1)

Una vez creada la acción, puedes activarla mediante el [Triggers](#triggers) componente de ese mismo objeto o de cualquier otro objeto.

Usa el **Detener animación** acción para detener todas las animaciones del objeto, tanto en bucle como sin bucle.

{% hint style="info" %}
**💡 Consejo**: Para comprobar fácilmente el contenido de un modelo 3D, ver qué animaciones incluye y cómo se ven, una buena herramienta es [Babylon Sandbox](https://sandbox.babylonjs.com/). Solo arrastra el archivo del modelo 3D a la ventana. Debería aparecer abajo un desplegable con una lista de sus animaciones.
{% endhint %}

Para saber más sobre las animaciones y cómo puedes crear las tuyas propias como parte de un modelo 3D, consulta [Animaciones](/creator/content-creator-es/modelado-y-animaciones-3d/animations.md).

## Acerca de reproducir sonidos

Usa una acción de tipo **Reproducir sonido** para reproducir un archivo de sonido. Puedes reproducir cualquier archivo de sonido siempre que esté importado al proyecto de la escena. El sonido se escucha de forma posicional, desde la ubicación del objeto, lo que significa que suena más fuerte si el jugador está más cerca.

{% hint style="info" %}
**💡 Consejo**: En lugar de escribir la ruta al archivo de sonido, puedes arrastrarlo al **Path** campo desde el menú de navegación de archivos en la parte inferior del Scene Editor.
{% endhint %}

Usa el **Modo de reproducción** campo para elegir si reproducir el sonido una vez o en bucle continuo.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-c1b29ddbf0c123f9f4993f8d0eb1cf18ef458ebd%2Fplay-sound.png?alt=media\&token=57469f2f-14dd-4989-a3b2-7104f2ce8b2c)

Una vez creada la acción, puedes activarla mediante el [Triggers](#triggers) componente de ese mismo objeto o de cualquier otro objeto.

Usa el **Detener sonido** acción para detener todos los sonidos del objeto, tanto en bucle como sin bucle. Esto también detiene los sonidos del **AudioSource** componente.

Para hacer que un objeto reproduzca siempre un sonido en bucle, por ejemplo para ambientación o música, es más fácil usar el **AudioSource** componente, en lugar de usar Actions y Triggers. Este componente solo requiere que proporciones una ruta a un archivo y marques las casillas **Start Playing** y **Loop**.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6b18d4644fc30ae00402f4215163feae8e2ed4e5%2Faudiosource.png?alt=media\&token=3142795b-483a-4899-ac2a-82ad4280cbba)

{% hint style="info" %}
**📔 Nota**: Un smart item solo puede reproducir un sonido a la vez. Llamar a un segundo sonido interrumpirá cualquier otro sonido que se esté escuchando actualmente. Esto también se aplica a los sonidos del **AudioSource** componente. Si necesitas que dos sonidos suenen a la vez, considera añadir una Entity invisible en la misma ubicación para alojar un **Reproducir sonido** acción.
{% endhint %}

Consulta [sounds](/creator/content-creator-es/scenes-sdk7/fundamentos-del-contenido-3d/sounds.md) para saber más sobre la reproducción de sonidos en Decentraland.

## Mover, rotar o escalar

Usa una **Iniciar Tween** acción Tween para cambiar la **posición**, **escala**, o **rotación**, del objeto durante un periodo de tiempo. Todas las **Iniciar Tween** acciones Tween comienzan desde el estado original del objeto y cambian a un estado final durante un periodo de tiempo.

Los tweens de posición pueden ser relativos o absolutos. Un tween absoluto de posición mueve el objeto a una posición fija en relación con la escena. El objeto se moverá desde donde esté hasta esa posición. Si ya está allí, no parecerá que se mueva. Un tween relativo de posición mueve el objeto una cierta distancia desde donde está ahora, por ejemplo, un tween a una posición relativa de `1, 0, 0` mueve el objeto 1 metro hacia adelante, en la dirección hacia la que está mirando actualmente. Si ejecutas la acción tween una segunda vez, el objeto se moverá otro metro hacia adelante.

Los tweens de rotación también pueden ser relativos o absolutos. Una rotación relativa se suma a la rotación actual del objeto. Un tween absoluto de rotación hará que el objeto mire hacia una dirección específica, en relación con la escena.

Usa el **Duración** campo para establecer cuánto debe durar todo el movimiento, en segundos. Ten en cuenta que el control deslizante llega hasta 100 segundos, pero también puedes escribir manualmente un número mayor si lo necesitas.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-02dc2650178474b89c0aabbba8b12b917d09bfa1%2Ftweens.png?alt=media\&token=0fab61ce-88d8-442e-9b8c-2dd2062a2b01)

Una vez creada la acción, puedes activarla mediante el [Triggers](#triggers) componente de ese mismo objeto o de cualquier otro objeto.

Los tweens pueden seguir distintos **tipos de curva** que afectan la velocidad de cambio con el tiempo. Una **lineal** curva (predeterminada) significa que la velocidad del cambio es constante de principio a fin. Hay muchas opciones para elegir, que dibujan curvas de formas diferentes según si el inicio y/o el final empiezan lentos, y cuánto. Una **easeinexpo** curva empieza lenta y termina rápido, aumentando la velocidad exponencialmente; por el contrario, una **easeoutexpo** curva empieza rápido y termina lento.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-707c9c44d39111002ea3b1c4b3000a8ab4122d67%2Feasing-functions.jpeg?alt=media\&token=4b2f29bf-0661-4831-94ea-61b9ffece4ea)

{% hint style="info" %}
**💡 Consejo**: Experimenta con distintas curvas de movimiento. Las diferencias suelen ser sutiles, pero interpretamos de forma subconsciente la información a partir de cómo se mueven las cosas, como el peso, la fricción o incluso la personalidad.
{% endhint %}

Usa **Fin de Tween** eventos trigger en el **Triggers** componente para activar una acción después de que un tween haya terminado. Usa [estados y lógica condicional](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md) esto para describir una ruta en bucle para una plataforma flotante, de modo que se mueva constantemente entre dos ubicaciones.

Cuando un objeto realiza un tween, esto afecta a todo el objeto. Por ejemplo, si cambia la escala, cambia la escala de su modelo 3D visible y también la geometría del collider invisible, el tamaño del texto, etc. Si el objeto tiene hijos (anidados en el árbol de entities de la izquierda), estas entities hijas también se ven afectadas por el tween.

{% hint style="info" %}
**📔 Nota**: Cada Entity solo puede realizar un tween a la vez. Por ejemplo, no puedes hacer que un objeto se mueva lateralmente y también rote al mismo tiempo. Como solución alternativa, puedes usar entities con parent. Por ejemplo, puedes tener una Entity padre invisible que se mueva lateralmente, con un hijo visible que rote.
{% endhint %}

## Acerca de generar entidades

Usa una **Spawn Entity** acción para crear una nueva copia de un objeto en la escena mientras se ejecuta. A diferencia de la **Clonar** acción, el objeto que generas no necesita colocarse primero en la escena.

### Hacer un objeto generable

Antes de que un objeto pueda generarse, debe estar disponible en los archivos de tu proyecto. Para añadir un objeto sin colocarlo en la escena:

1. En el **Assets** panel, encuentra el objeto en el catálogo o en tu **Custom Items**.
2. Haz clic derecho en el objeto y selecciona **Añadir al sistema de archivos**.

Esto copia el objeto en tu proyecto para que pueda generarse más adelante. No añade nada visible a la escena. El objeto aparece entonces en el **Source** dropdown de cualquier tipo **Spawn Entity** acción.

### Configura la action

Un **Spawn Entity** action tiene dos campos:

* **Source**: El item a generar. Elígelo de entre los items agregados a los archivos de tu proyecto.
* **Posición**: Las coordenadas X, Y y Z donde aparece la nueva copia, relativas al item que realiza la action.

Si el item que generas es a su vez un smart item, cada copia generada mantiene sus propias actions y triggers funcionando de forma independiente.

{% hint style="info" %}
**💡 Consejo**: Para generar items desde code en su lugar, consulta [Composites](/creator/content-creator-es/scenes-sdk7/arquitectura/composites.md). Los items agregados a los archivos de tu project se almacenan como composites, el mismo formato usado por la función spawn del SDK.
{% endhint %}

## Acerca de los triggers de clic

Para trigger una action al hacer clic en un item, crea un **On Click** trigger. La action se activará cada vez que el jugador haga clic en la entity.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-89527969929c803b930910be068d3fdc569a36d6%2Fon_click.png?alt=media\&token=8d37a0f4-9ec7-4bd6-8ced-ea2ffdc6c9e8)

Consulta [Convierte cualquier item en smart](/creator/content-creator-es/scene-editor/interactividad/make-any-item-smart.md#interactivity) para más detalles.

{% hint style="info" %}
**📔 Nota**: Cuando uses modelos 3D personalizados, el modelo debe tener una geometría collider invisible para que se pueda hacer clic en él. Consulta [colliders](/creator/content-creator-es/scenes-sdk7/fundamentos-del-contenido-3d/colliders.md#pointer-blocking).

Como alternativa, puedes configurar el **GLTF** component del item, para que su **Visible Layer** de collision esté establecido en **Pointer**.

Otra alternativa es añadir un **Click Area** smart item, para dibujar un cubo que se superponga al item que quieres clicar. El smart item Click Area es un [item invisible](#invisible-items).
{% endhint %}

## Trigger al aparecer

Triggers de tipo **Al aparecer** activan una action cuando se carga la scene. En lugar de esperar a que el jugador interactúe con un item, la action se ejecuta enseguida.

Por ejemplo, úsalo para hacer que una plataforma se mueva continuamente. Usa un **Al aparecer** trigger para activar una tween action. Luego usa **Cambio de estado** triggers para mantenerlo en movimiento entre dos o más posiciones.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-e7d8cc0fa522e04b35c949d38884c9134c597d0f%2Fon_spawn.png?alt=media\&token=3fd8eac1-0915-4f16-baba-bf1b5d0589db)

## Multiplayer

Todos los smart items son multiplayer por defecto. Consulta [Smart Items - Básicos](/creator/content-creator-es/scene-editor/interactividad/smart-items.md) para más detalles.

Puedes cambiar o ajustar este comportamiento multiplayer para sincronizar solo ciertos components del item.

En el **Multiplayer** component del item, marca las casillas de los components que quieres compartir.

Por ejemplo, una puerta comparte su `Animator` para que todos vean las animaciones de apertura, su `AudioSource` para que todos oigan su sonido, y su `State` para que todos sepan si está abierta o cerrada en ese momento. La puerta no comparte su `Visibility` component, porque la puerta suele estar siempre visible. Si incluyes actions para activar o desactivar su visibilidad, quizá también quieras marcar este component, para que los cambios se sincronicen entre todos los jugadores.

## Items invisibles

Algunos items no están pensados para que los vea el jugador, pero sí son visibles mientras editas tu scene para que sea más fácil administrarlos. Este es el caso de items como **Ambience**, **Trigger Area**, **Click Area**, etc.

En el modo avanzado, estos items tienen un **Visibility** component configurado como invisible. Este component no afecta la visibilidad de los items en el Scene Editor, pero ningún item configurado como invisible es visto por los jugadores cuando ejecutan un preview.

## Ver también

* [Smart items - Básicos](/creator/content-creator-es/scene-editor/interactividad/smart-items.md)
* [States y condiciones](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md)
* [Hacer smart cualquier item](/creator/content-creator-es/scene-editor/interactividad/make-any-item-smart.md)
* [Combinar con código](/creator/content-creator-es/scene-editor/extender-con-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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-es/scene-editor/interactividad/smart-items-advanced.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
