Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Entendiendo los Entes

Ahora entendamos el concepto de un Ente en Cave. Los entes son los objetos básicos dentro de una escena de Cave.

Si una escena es un nivel, menú o espacio de prueba, los entes son las cosas que existen dentro de ese espacio. Por ejemplo, un jugador, enemigo, puerta, luz, cámara, activador, botón de interfaz, fuente de sonido y carpeta pueden ser todos entes.

En esta lección, aprenderás sobre:

  • Nombres.
  • IDs.
  • Estado activo.
  • Jerarquía.
  • Carpetas.
  • Orden jerárquico.
  • Etiquetas y propiedades.
  • Instancias de plantillas.

Estos detalles pueden parecer pequeños, pero hacen una gran diferencia cuando una escena pasa de unos pocos objetos a un nivel real.

¿Qué es un Ente?

Un Ente es un objeto en una escena.

Un ente puede representar:

  • Un objeto 3D visible.
  • Un ayudante invisible.
  • Un activador de juego.
  • Un elemento de UI.
  • Una fuente de sonido.
  • O simplemente una carpeta utilizada para organización.

image.png

Por ejemplo, una caja es un ente visible. Un punto de aparición puede ser invisible durante el juego, pero sigue siendo un ente porque marca dónde debería suceder algo.

Cave mantiene esta idea simple: las escenas se construyen a partir de entes.

Los Entes son Contenedores de Componentes

Los entes no hacen mucho por sí solos, sus características provienen de los componentes. Por ejemplo:

Ente Componentes que podría tener
Caja Transformar, Malla, Cuerpo Rígido.
Jugador Transformar, Personaje, Cámara, Python, Audio.
Puerta Transformar, Malla, Cuerpo Rígido, Ladrillos Lógicos.
Antorcha Transformar, Malla, Luz, Audio.
Botón Transformar, Elemento de UI, Ladrillos Lógicos o Python.
---

Por eso los entes son flexibles. Una puerta no es un tipo de objeto codificado por separado. Es un ente hecho de piezas: una malla para verlo, colisión para bloquear al jugador, y lógica para abrir o cerrar.

Cuando entiendes esto, construir objetos se vuelve más práctico. Dejas de preguntar "¿qué tipo de objeto necesito?" y comienzas a preguntar "¿qué componentes necesita este ente?"

Nombres de Entes

Cada ente tiene un nombre. Puedes cambiar el nombre de un ente desde su menú de edición rápida en el Graficador de Escenas o desde la pestaña de Propiedades.

Es importante mencionar que los nombres son para humanos primero:

  • Hacen que el Graficador de Escenas sea más fácil de escanear.
  • Facilitan la depuración.
  • Hacen más fácil hablar sobre objetos con compañeros de equipo.
  • Te ayudan a entender tu propia escena más tarde.

Cave no requiere que cada nombre de ente sea único. Múltiples entes pueden compartir el mismo nombre, lo que es útil para objetos repetidos como rocas, monedas, cajas o enemigos.

Sin embargo, no trates el nombre como el único identificador confiable para un ente.

Los buenos nombres son simples y descriptivos:

Nombre Débil Mejor Nombre
Malla Caja de Madera
Vacío Inicio de Jugador
Luz Luz de Entrada de Cueva
Carpeta Grupo de Enemigos

El objetivo no es hacer los nombres elegantes. El objetivo es que la escena sea legible.

Los nombres de los entes también pueden usarse en código para llevar un ente específico de tu escena, pero dado que ya sabes que múltiples entes pueden tener el mismo nombre, también debes ser consciente de que si llevas un ente por su nombre, si hay múltiples entes con este nombre, puede llevar a un comportamiento indefinido porque no tienes garantía de cuál ente la escena devolverá para ese nombre. Devolverá el primero que encuentre al buscar tu consulta. Así que si es importante para ti obtener un objeto específico a través del código, como el jugador, asegúrate de darle un nombre único.

IDs de Entes

Cave rastrea los entes internamente con IDs únicos.

Normalmente no necesitas editar o preocuparte por esos IDs. Existen para que el motor pueda identificar los entes de manera confiable, incluso cuando los nombres se repiten. Como cuestión de hecho, los IDs únicos son inmutables, lo que significa que no puedes cambiarlos. Se asignan automáticamente por el motor.

Recuerda esto:

Cosa Propósito
Nombre Ayuda a leer la escena.
ID Ayuda a Cave a rastrear el objeto internamente.

Si dos enemigos se llaman ambos Enemigo, Cave aún puede diferenciarlos tras bambalinas.

Estado Activo del Ente

Los entes pueden estar activos o inactivos.

image.png

En el Graficador de Escenas y en la pestaña de Propiedades, esto se muestra con un control activo de estilo ojo.

Estado Significado
Activo El ente participa en la escena normalmente.
Inactivo El ente permanece en la escena, pero está deshabilitado.

Dependiendo del ente y sus componentes, deshabilitar puede afectar:

  • Renderizado.
  • Física.
  • Lógica.
  • Actualizaciones en tiempo de ejecución.
  • Comportamiento de componentes.

Un ente deshabilitado no tendrá actualizaciones de sus componentes llamadas en ningún momento, y en el momento en que desactives un ente, también se llamará al método final del componente, y cuando lo vuelvas a habilitar, se llamará al método de inicio del componente.

Puedes asumir con seguridad que un ente deshabilitado no contribuirá a los cálculos de física de la escena, lógica, activaciones, etc. A menos que consultes manualmente esos entes desde la escena e ignores el hecho de que están deshabilitados, por supuesto.

La idea práctica es simple: inactivo significa "mantenido aquí, pero no participando actualmente."

Deshabilitar vs Eliminar

Deshabilitar y eliminar no son lo mismo.

Acción Resultado
Deshabilitar Mantiene el ente en la escena, pero lo apaga.
Eliminar Elimina el ente de la escena.

Deshabilita un ente cuando puedes quererlo de nuevo más tarde. Elimina un ente cuando estés seguro de que debe ser eliminado.

Para pruebas, deshabilitar suele ser más seguro. Si un encuentro con enemigos se siente demasiado difícil, deshabilita a algunos enemigos primero y prueba el nivel. Si el cambio se siente bien, puedes limpiar la escena más tarde.

Jerarquía de Entes

Los entes pueden ser jerarquizados a otros entes.

Cuando un ente tiene un padre, se convierte en parte de esa jerarquía de padre. Si mueves al padre, los hijos se moverán con él.

El jerarquizado es útil para:

  • Una espada adjunta a un personaje.
  • Una luz adjunta a una antorcha.
  • Una cámara adjunta a un vehículo.
  • Un grupo de props organizados bajo una carpeta.
  • Elementos de UI agrupados bajo un panel padre.

La jerarquía también afecta las transformaciones. La transformación de un ente hijo se evalúa en relación con la jerarquía del padre.

Esta es una de las formas más simples de mantener objetos relacionados juntos.

Entes Carpetas

Los entes carpetas se utilizan para organización. Son especialmente útiles cuando tu escena comienza a contener muchos objetos.

Por definición, lo que hace que un ente sea una carpeta es, en gran medida, la ausencia de componentes en él, particularmente un componente de Transformar y un componente de Elemento de UI, porque si un ente no tiene una transformación en el mundo y no tiene un elemento de UI, probablemente se utilizará como una carpeta. Pero eso es principalmente una convención de nombres, así que tenlo en cuenta.

Los grupos de carpetas comunes incluyen:

  • Entorno.
  • Actuadores de Juego.
  • Enemigos.
  • Props.
  • Iluminación.
  • UI.
  • Audio.
  • Ayudantes de Depuración.

Las carpetas no solo se tratan de orden. Un Graficador de Escenas limpio te ayuda a trabajar más rápido porque puedes encontrar el objeto que necesitas sin buscar entre cientos de entes sueltos.

Orden Jerárquico de Entes

El orden de los entes en el Graficador de Escenas es importante para la organización, y en algunos casos puede ser importante para cómo se procesan o se muestran las cosas.

Si abres una carpeta y ves la estructura a continuación, esto es más difícil de escanear:

Caja
Jugador
Luz
Enemigo
Cámara
Roca
Activador

Pero esto es más fácil:

Jugador
Cámara
Iluminación
Enemigos
Entorno
Activadores de Juego

El objetivo no es hacer la jerarquía elegante, sino hacerla útil.

Si puedes abrir una escena después de una semana lejos y entender inmediatamente dónde están los objetos importantes, tu jerarquía está cumpliendo su trabajo.

Nota importante aquí: debido a cómo el motor optimiza su graficador de escenas interno, el orden en que los entes aparecen a nivel de Protección, es decir, los entes que no tienen padre, será aleatorio, pero los entes hijos, los hijos, pueden tener un conjunto de orden específico y puedes organizarlo haciendo clic derecho en cada ente individual en el editor y moviéndolo hacia arriba o hacia abajo o hacia la parte superior o inferior.

Propiedades y Etiquetas de Entes

Los entes pueden almacenar propiedades y etiquetas personalizadas.

Característica Propósito
Propiedad Almacena un valor editable.
Etiqueta Agrega una etiqueta utilizada para identificación o agrupación.

Por ejemplo, un enemigo podría tener:

  • Una etiqueta Dañable.
  • Una propiedad salud.
  • Una propiedad equipo.
  • Una propiedad radioDePatrulla.

Los scripts y la lógica pueden usar estos datos para tomar decisiones.

Un sistema de daño podría buscar entes con la etiqueta Dañable. Un script de enemigo podría leer radioDePatrulla para decidir qué tan lejos puede vagar el enemigo.

Las propiedades y etiquetas te permiten adjuntar un significado de juego a un ente sin necesidad de un componente especial para cada pequeño dato.

Las etiquetas son más rápidas de consultar que las propiedades, por lo que son mejores, por ejemplo, para identificar un ente que puede recibir daño o es un enemigo, etc. Pero no llevan ningún valor en sí mismas. Una propiedad es más lenta de consultar, pero puedes agregar un valor. En términos de codificación, las propiedades de un ente son literalmente diccionarios de Python.

Vista Previa de Plantillas de Entes

Algunos entes son instancias de Plantillas de Entes. El Jugador que encontrarás en el proyecto nuevo de Cave por defecto, por ejemplo, es una instancia de esta plantilla aquí:

image.png

Las instancias de plantilla se muestran de manera diferente en el Graficador de Escenas, utilizando el color de plantilla de Cave. Esto te ayuda a reconocer que el ente proviene de un activo de plantilla reutilizable.

Cuando un ente es una instancia de plantilla:

  • Sus hijos internos pertenecen a la plantilla.
  • La instancia colocada pertenece a la escena.
  • La estructura de la plantilla se edita abriendo el recurso de la plantilla.
  • Los valores locales aún se pueden ajustar cuando se exponen como propiedades.

La siguiente lección explica las Plantillas de Entidad con más detalle.

El Modelo Mental de la Entidad

Piensa en una entidad como un pequeño contenedor:

  • El nombre te ayuda a entenderla.
  • El ID ayuda a Cave a rastrearla.
  • El estado activo controla si participa.
  • El padre controla dónde pertenece.
  • Los componentes definen lo que hace.
  • Las propiedades y etiquetas describen datos extras del juego.

Ese es el núcleo de la construcción de escenas en Cave.

Una vez que las entidades tengan sentido, el Grafo de la Escena se convierte en mucho más que una lista de objetos. Se convierte en la estructura de tu mundo de juego.