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

Mapas de mosaicos

El sistema de tilemap te permite pintar mundos basados en tiles usando máscaras de auto-tilado, múltiples capas y extrusión de paredes con generación de colisiones integrada.

Añadir un tilemap

Añade un Tilemap_Component a cualquier entidad. El tilemap se centra en la posición de la entidad y abarca una cuadrícula de chunks (cada uno de 32×32 tiles). El tamaño total en tiles es width_in_chunks × 32 por height_in_chunks × 32.

Propiedades del tilemap

Propiedad
Descripción

Ancho / Alto en chunks

Tamaño de la cuadrícula de tiles. Cada chunk es de 32×32 tiles. Un tilemap de 10×10 da 320×320 tiles.

Las capas se configuran individualmente una vez que entras en modo de edición (ver abajo).

Scripting en tiempo de ejecución

Tilemap_Component expone los mismos datos persistentes de capa que usa el editor. Las capas se direccionan mediante un índice basado en cero. Al eliminar una capa, cada índice posterior se desplaza una posición hacia abajo, así que no conserves un índice tras eliminar una capa a menos que lo actualices.

CSL

tilemap := entity.get_component(Tilemap_Component);
ground := tilemap.add_layer(.GROUND);
tilemap.set_layer_tile_size(ground, 1.5);
tilemap.set_layer_tint(ground, v4{0.8, 0.9, 1, 1});
tilemap.add_layer_texture(ground, get_asset(Texture_Asset, "tiles/grass.png"), 1);
tilemap.set_layer_mask(ground, get_asset(Texture_Asset, "$AO/tile_mask.png"));
tilemap.set_tile(ground, 10, 12);

world_position := tilemap.tile_to_world(ground, 10, 12);
tile_x, tile_y := tilemap.world_to_tile(ground, world_position);

Las mutaciones del tilemap en CSL son estado de escena normal. Participan en la predicción, el rollback y la reconciliación del servidor igual que otros estados de juego de CSL.

C#

Las llamadas de C# solo mutan la simulación actual. Para un cambio en tiempo de ejecución multijugador, usa el flujo RPC existente del juego para invocar la misma mutación en cada par; la API del tilemap no crea un nuevo canal de replicación.

La API en tiempo de ejecución incluye:

  • Redimensionado, dimensiones de chunk/tile y conversión de coordenadas locales/globales con conocimiento de la capa.

  • Adición, eliminación, vaciado, tipo, modo/orden de renderizado, tamaño del tile, tinte, máscaras, contornos, ajustes de pared y ajustes de colisión.

  • Adición, reemplazo, reajuste de peso, eliminación y búsqueda de texturas ponderadas.

  • Operaciones individuales de consulta, establecimiento y borrado de tiles.

Los tilemaps tienen al menos 2×2 chunks. Al redimensionarlos se conserva el centro del mapa, se desplazan las coordenadas de tile existentes según la mitad de la diferencia de tamaño y se recortan los tiles que quedan fuera de los nuevos límites. Las escrituras de tiles fuera de los límites no hacen nada y las consultas devuelven false. Los pesos de textura deben ser no negativos y cada capa admite como máximo 256 texturas.

Los índices de capa o textura inválidos y los ajustes de capa inválidos se rechazan en el límite del scripting. C# lanza una ArgumentOutOfRangeException (o ArgumentException para el límite de cantidad de texturas), mientras que CSL informa de un error de script que contiene el valor inválido y el rango válido.

El tinte de capa multiplica la capa completa, incluyendo contornos y partes superiores de las paredes. Los cambios de tinte se aplican como un uniforme de renderizado y no vuelven a hornear los tiles ni reconstruyen la colisión. Los múltiples cambios de tiles y colisión realizados antes de la siguiente actualización del tilemap se consolidan en una sola reconstrucción de geometría/colisión.

Modo de edición

Selecciona la entidad del tilemap y haz clic en el Editar botón del inspector para entrar en el modo de edición del tilemap. Haz clic en Cancelar para salir. El modo de edición se desactiva automáticamente si deseleccionas la entidad.

Mientras editas, un borde rojo delimita los límites del tilemap y se dibuja una cuadrícula superpuesta en la vista de escena.

Herramientas

El editor del tilemap tiene tres modos de herramienta, que se cambian mediante atajos de teclado:

Herramienta
Tecla rápida
Descripción

Pincel

B/W

Pinta tiles haciendo clic y arrastrando.

Borrador

E

Elimina tiles haciendo clic y arrastrando.

Sello

S/R

Selecciona una región para copiarla y luego pégala en otro lugar.

También puedes mantener pulsado Shift mientras estás en modo Pincel para borrar temporalmente.

Pintado con pincel

Haz clic y arrastra para pintar tiles en la capa seleccionada. El pincel usa interpolación de línea de Bresenham entre fotogramas, así que nunca te saltas tiles aunque te muevas rápido.

El tamaño del pincel se ajusta con [ y ] (rango 1–32). El pincel es circular: los tiles dentro del radio se ven afectados.

Alt+clic dibuja una línea recta desde tu última posición de clic hasta el tile actual, útil para bordes largos y rectos.

Ctrl+arrastrar cambia al modo de relleno rectangular: arrastra para definir un rectángulo y todos los tiles de la región se rellenan (o se borran si también se mantiene pulsado Shift) al soltar.

Capas

Cada tilemap admite múltiples capas. Haz clic en una capa en el inspector para seleccionarla para pintar. La capa seleccionada se resalta en azul.

Añadir y eliminar capas

  • Haz clic en Añadir capa en la parte inferior para crear una nueva capa.

  • Haz clic en Eliminar capa dentro del panel de una capa para borrarla.

Propiedades de la capa

Propiedad
Descripción

Tipo

Suelo o Pared. Los tiles de suelo son planos; los tiles de pared se extruyen verticalmente.

Modo de capa

Predeterminado usa capas automáticas (suelo detrás del jugador, paredes ordenadas por Y). Manual te permite establecer un valor fijo de capa de renderizado.

Capa manual

Solo se muestra en modo Manual. El valor explícito de capa de renderizado.

Tamaño del tile

Tamaño visual de cada tile en unidades del mundo.

Tinte

Multiplicador de color para la capa completa, incluidas las partes superiores de las paredes y los contornos.

Texturas

Una o más texturas con pesos para variedad aleatoria. El motor calcula un hash de las coordenadas del tile para elegir determinísticamente una variante de textura por tile según los pesos.

Máscara

Una textura de cuadrícula 8×8 usada para el auto-tilado. Cada celda corresponde a una configuración diferente de adyacencia (bordes, esquinas, aislado, etc.). Se incluye un mapa predeterminado $AO/tile_mask.png

Contorno

Color para los contornos de los tiles (alfa 0 = sin contorno).

Variedad de múltiples texturas

Cada capa puede tener varias texturas con pesos. Los tiles seleccionan de forma determinista una variante de textura basada en un hash de sus coordenadas de cuadrícula, de modo que el patrón es estable entre guardados y no cambia cuando añades o eliminas tiles.

Ajusta el valor de peso junto a cada textura para controlar con qué frecuencia aparece en relación con las demás.

Auto-tilado

Los tiles seleccionan automáticamente la celda de máscara correcta según su configuración de vecinos en 8 direcciones. El sistema:

  1. Comprueba los 8 vecinos (N, NE, E, SE, S, SW, W, NW).

  2. Los vecinos diagonales solo cuentan si ambos vecinos cardinales adyacentes están presentes (evita artefactos visuales en las esquinas).

  3. Mapea la máscara de adyacencia de 8 bits resultante a una de 64 celdas de la textura de máscara 8×8.

Esto significa que solo necesitas pintar la presencia de tiles: los visuales correctos de borde, esquina e interior se calculan automáticamente.

Capas de pared

Establecer el tipo de una capa en Pared habilita la extrusión vertical. Los tiles de pared se colocan en la cuadrícula igual que los tiles de suelo, pero cada tile colocado genera una columna de tiles de cuerpo que se extiende hacia arriba por la Altura de pared.

Propiedades de pared

Propiedad
Descripción

Altura de pared

Número de tiles de alto que tiene cada columna de pared (mínimo 2).

Textura superior

Textura separada para la fila superior de la pared (la «tapa»).

Máscara superior

Textura de máscara para la parte superior de la pared (usa el mismo auto-tilado de 8 vecinos que el suelo).

Contorno superior

Color del contorno para los tiles superiores de la pared.

Los cuerpos de las paredes usan la textura principal de la capa. Las partes superiores de las paredes usan los vecinos de la fila base, lo que mantiene limpios los bordes de la tapa.

Las paredes se ordenan por Y según su fila base, así que los jugadores caminan detrás de las paredes que están por encima de ellos y delante de las que están por debajo.

Colisión de pared

Propiedad
Descripción

Colisión

Genera bordes de obstáculos para la reconstrucción de la malla de navegación.

Inset

Reduce hacia dentro los bordes de colisión desde los límites del tile para una colisión más ajustada.

Desplazamiento

Desplaza todos los bordes de colisión por una cantidad fija.

Dibujo de depuración

Dibuja bordes de colisión verdes en la vista de escena para depuración.

Cuando la colisión está activada, el motor construye bordes de obstáculo a partir de los límites expuestos de los tiles. Las mallas de navegación con reconstrucción automática activada incorporan esos bordes.

Herramienta Sello (copiar y pegar)

Pulsa S para cambiar al modo Sello. Esto habilita un flujo de trabajo de selección de región:

  1. Seleccionar: Haz clic y arrastra para resaltar una región rectangular. Los tiles seleccionados se copian al portapapeles. Un mensaje emergente «Copiado» confirma la acción.

  2. Pegar: Pulsa Ctrl+V para entrar en modo fantasma. Una vista previa translúcida del portapapeles sigue el cursor.

  3. Girar: Usa la rueda del ratón para girar la vista previa fantasma en incrementos de 90 grados.

  4. Colocar: Haz clic para estampar los tiles. Mantén pulsado Shift mientras haces clic para colocar varias copias sin salir del modo fantasma.

  5. Cancelar: Pulsa Escape para salir del modo fantasma sin colocar nada.

Mantén Ctrl mientras inicias una selección de sello para copiar tiles de todas las capas a la vez, conservando las estructuras de múltiples capas.

Resumen de atajos de teclado

Atajo
Acción

B o W

Cambiar a la herramienta Pincel

E

Cambiar a la herramienta Borrador

S o R

Cambiar a la herramienta Sello

Shift (mantenida)

Borrar temporalmente mientras estás en modo Pincel

[ / ]

Disminuir / aumentar el tamaño del pincel

Ctrl+arrastrar

Relleno rectangular con la herramienta Pincel o Borrador activa

Alt+clic

Dibujar una línea recta desde el último clic

Ctrl+V

Entrar en modo pegar/fantasma

Rueda del ratón

Girar la vista previa fantasma (en modo fantasma)

Shift+clic

Colocar varias copias (en modo fantasma)

Escape

Cancelar el modo fantasma

Última actualización