Keep your place in this quest

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

Cave está diseñado para ser simple de aprender, pero aún tiene algunos conceptos importantes que necesitas entender.

Esta lección explica las palabras clave que verás en todas partes en el editor: escena, entidad, componente, activo, plantilla de entidad, transformación, cuerpo rígido, componente de personaje, componente de Python, ladrillo lógico, línea de tiempo y tiempo de ejecución.

Esta es una visión general de alto nivel, y no entra en los detalles de cada palabra, pero es importante comenzar a mejorar tu comprensión del motor. Una vez que estas palabras tengan sentido, el resto del motor se hace mucho más fácil de leer.

La Gran Imagen

La mayoría de los proyectos de Cave se construyen a partir de algunas ideas repetidas:

Concepto Significado Simple
Escena Un nivel, menú, área de prueba o espacio jugable.
Entidad Un objeto dentro de una escena.
Componente Una característica adjunta a una entidad.
Activo Contenido reutilizable del proyecto almacenado en el Navegador de Activos.
Plantilla de Entidad Una configuración de entidad reutilizable, similar a un prefab.

Por ejemplo, imagina una caja de madera en un nivel:

image.png

  • El nivel es una Escena.
  • La caja colocada en el nivel es una Entidad.
  • La posición de la caja se almacena en su Transformación.
  • El modelo visible es manejado por un Componente de Malla.
  • La colisión puede ser manejada por un Componente de Cuerpo Rígido.
  • El modelo, material y textura utilizados por la caja son Activos.

Si deseas reutilizar esa configuración de caja en muchas escenas, puedes guardarla como una Plantilla de Entidad.

Escena

Una escena es una colección de entidades.

Las escenas pueden usarse para:

  • Niveles de juego.
  • Menús.
  • Mapas de prueba.
  • Habitaciones de prototipo.
  • Espacios de cinemáticas.

Solo la escena activa se edita en la vista 3D principal. Cuando pruebas el juego, Cave ejecuta la escena como jugabilidad en lugar de solo contenido del editor.

Al exportar o probar el proyecto como tiempo de ejecución, la configuración del proyecto decide qué escena se utiliza como la escena de inicio. Puedes cambiar eso yendo a la Pestaña de Configuración.

Entidad

Una entidad es un objeto en una escena.

Las entidades pueden ser visibles o invisibles. Pueden ser simples o complejas.

Ejemplos de entidades:

  • Un personaje jugador.
  • Una puerta.
  • Una cámara.
  • Una luz.
  • Un disparador.
  • Un botón de UI.
  • Un punto de aparición.
  • Una carpeta utilizada para organización.

Una entidad por sí sola es principalmente un contenedor. Lo que realmente puede hacer depende de los componentes adjuntos a ella.

Componente

Un componente añade comportamiento o datos a una entidad.

En lugar de tener un tipo de objeto enorme para cada cosa posible, Cave te permite construir entidades combinando componentes. Y esta es precisamente la forma en que debes construir los diferentes elementos de tu juego, al componer las entidades con múltiples tipos de componentes diferentes.

Por ejemplo:

Entidad Componentes Posibles
Pared estática Transformación, Malla, Cuerpo Rígido.
Jugador Transformación, Personaje, Cámara, Python.
Puerta Transformación, Malla, Cuerpo Rígido, Python o Ladrillos Lógicos.
Luz puntual Transformación, Luz.
Botón de UI Elemento de UI.

Esta es una de las ideas más importantes en Cave: Las entidades son contenedores. Los componentes les dan características.

Es importante mencionar aquí que otra forma de componer tus diferentes tipos de objetos es utilizando múltiples entidades en la jerarquía de entidades hijo.

Nomenclatura de Entidades

Cuando creas una nueva entidad, Cave ofrece diferentes tipos de inicio, como Carpeta, Vacío, Malla, Luz Puntual, Cámara, Elemento de UI, Texto y Botón.

Estos no son mundos completamente separados. Son puntos de partida convenientes.

Por ejemplo:

  • Un Vacío es una entidad básica con una transformación.
  • Una entidad de Malla es una entidad preparada para mostrar una malla.
  • Una entidad de Luz Puntual es una entidad preparada para comportarse como una luz.
  • Una entidad de Cámara es una entidad preparada para renderizar una vista.
  • Una Carpeta es una entidad utilizada principalmente para organizar.

Generalmente, puedes añadir, eliminar o editar componentes más tarde, por lo que el tipo de inicio es solo un atajo útil.

Transformación

La transformación le dice a Cave dónde está una entidad y cómo está orientada.

Incluye:

  • Posición.
  • Rotación.
  • Escala.

Casi cada entidad de escena tiene una transformación porque la mayoría de los objetos necesitan existir en algún lugar del mundo. Cuando mueves, giras o escalas una entidad con el gizmo, estás editando su transformación. Cuando una entidad está parentada a otra entidad, su transformación se evalúa en relación con esa jerarquía.

Activo

Un activo es contenido reutilizable del proyecto almacenado en el Navegador de Activos. Es importante mencionar que mientras una Entidad es considerada internamente un Activo, un Activo no es lo mismo que una Entidad.

Por ejemplo:

  • Un activo de malla es los datos del modelo. Una entidad de malla es un objeto colocado en la escena que usa ese activo de malla.
  • Un activo de material define cómo se ve una superficie. Una entidad de malla puede hacer referencia a ese material.
  • Un activo de script de Python contiene código. Un componente de Python puede usar ese script.

Esta separación es poderosa porque un activo puede ser reutilizado muchas veces. Si diez cajas usan el mismo material, editar el activo del material puede actualizar todas ellas.

Plantilla de Entidad

Una plantilla de entidad es una configuración de entidad reutilizable. Revisa la captura de pantalla a continuación. Los Activos de Plantilla de Entidad están marcados con una línea verde debajo de su miniatura:

image.png

Si vienes de otro motor, puedes pensar en ello como similar a un prefab.

Una plantilla de entidad puede almacenar:

  • Una jerarquía de entidades.
  • Componentes.
  • Configuraciones de componentes.
  • Referencias de activos.
  • Entidades hijo.

Esto es útil para cualquier cosa que desees reutilizar:

  • Enemigos.
  • Recolecciones.
  • Puertas.
  • Propiedades.
  • Vehículos.
  • Widgets de UI.
  • Objetos de juego.

En lugar de reconstruir el mismo objeto una y otra vez, lo creas una vez como una plantilla de entidad y colocas instancias donde sea necesario.

Cuerpo Rígido

Un cuerpo rígido le da un comportamiento físico a una entidad. Se utiliza cuando un objeto necesita colisión o movimiento físico.

Ejemplos:

  • Una caja que bloquea al jugador.
  • Una bola que puede rodar.
  • Una puerta con colisión.
  • Una pared que el jugador no puede atravesar.

Los cuerpos rígidos son parte del lado físico del motor. Los usarás cuando los objetos necesiten interactuar físicamente con el mundo.

Componente de Personaje

Un componente de personaje se utiliza para movimiento de estilo personaje. Esto es diferente de un cuerpo rígido regular porque un personaje generalmente necesita un comportamiento especial:

  • Caminar.
  • Deslizarse por las paredes.
  • Manejar pendientes.
  • Saltar.
  • Responder a la entrada del jugador.

Para un jugador o NPC, un componente de personaje es generalmente un mejor punto de partida que intentar hacer que un objeto físico básico se comporte como un personaje.

Cuando hablamos de un Componente de Personaje en Cave, nos referimos a su Física de Personaje, no a la lógica específica del juego (como movimiento, etc.).

Etiquetas y Propiedades

Las etiquetas y propiedades te ayudan a identificar y configurar entidades.

  • Una etiqueta es una etiqueta que puede ayudar a los scripts o lógica a encontrar y categorizar cosas.
  • Las propiedades son valores editables expuestos en el editor. Te permiten ajustar el comportamiento sin reescribir código cada vez.

Por ejemplo, un enemigo podría tener propiedades como:

  • Velocidad de caminar.
  • Salud.
  • Distancia de ataque.
  • Objetivo de patrullaje.

El buen uso de propiedades hace que tu juego sea más fácil de ajustar.

Las propiedades no se limitan a las Entidades: Las Escenas, Ladrillos Lógicos y otros Activos también pueden tenerlas.

Cuando hablamos de propiedades en Cave, nos referimos específicamente a esas propiedades que pueden ser accesibles utilizando diccionarios de Python a través del código. Casi siempre están disponibles en el Editor también.

Componente de Python

Un componente de Python permite a una entidad ejecutar lógica de Python.

Esto es útil cuando deseas un comportamiento personalizado, como:

  • Abrir una puerta.
  • Mover una plataforma.
  • Manejar la entrada del jugador.
  • Generar un objeto.
  • Actualizar texto de UI.
  • Desencadenar eventos.

Los componentes de Python son una de las principales formas de programar la jugabilidad en Cave.

Componente de Código de Python

Un componente de Código de Python se usa cuando el código se almacena directamente en el componente en lugar de estar vinculado como un activo de script separado. Esto puede ser útil para pruebas rápidas, pequeños comportamientos o prototipos.

Para sistemas de jugabilidad más grandes, un activo de script de Python separado es generalmente más fácil de organizar y reutilizar.

Ladrillo Lógico

Los ladrillos lógicos son una forma visual de construir lógica. Son útiles cuando deseas comportamiento sin escribir código Python directamente.

Si conoces los Blueprints de Unreal, los ladrillos lógicos están en una familia de ideas similar: conectas la lógica visualmente en lugar de escribir todo como texto.

Son especialmente útiles para crear cualquier tipo de lógica que desees sin requerir escribir código Python. Por ejemplo, eventos de jugabilidad y lógica, comportamiento de objetos, conectar sistemas entre sí, disparadores, etc.

Los aprenderás más adelante en esta guía.

Línea de Tiempo

Una línea de tiempo es un activo usado para secuencias autoras. Las líneas de tiempo pueden animar o desencadenar cosas a lo largo del tiempo.

Son útiles para:

  • Cinemáticas.
  • Movimientos de cámara.
  • Eventos programados.
  • Secuencias de jugabilidad coordinadas.

Las líneas de tiempo no son necesarias para cada juego, pero son útiles cuando deseas que algo ocurra en un orden autoral específico.

Importante: Las líneas de tiempo no son medios para la edición de animación individual, como editar una animación de Ciclo de Caminata para tu personaje. En este caso, debes usar un software DCC especializado, como Blender, y luego importarlo a Cave.

Jugador y Tiempo de Ejecución del Juego

  • El Editor de Cave es donde construyes el proyecto.
  • El Jugador de Cave es el tiempo de ejecución que ejecuta el juego.

Cuando presionas Reproducir en el editor, Cave ejecuta tu escena en un modo similar al juego dentro del editor. Cuando pruebas como un tiempo de ejecución independiente, Cave lanza el juego en una ventana de jugador separada.

El juego exportado final se ejecuta como una construcción de jugador/runtime, no como el editor. Esta separación es importante porque algunas cosas son solo para el editor (para que puedas depurar y/o desarrollar tu proyecto), mientras que otras son parte del juego real.

La Relación Más Importante

Si recuerdas solo una cosa de esta lección, recuerda esto:

Una escena contiene entidades, las entidades contienen componentes y los componentes a menudo utilizan activos.

Esa es la columna vertebral de un proyecto de Cave.