Ignitor Docs ← getignitor.com
🇺🇸 EN 🇪🇸 ES

Editor de Personajes#

El Editor de Personajes define el elenco de tu juego — los personajes jugables que controlas y los NPCs que pueblan tus cuartos. Para cada uno fijas su sprite, cómo camina y habla, cómo proyecta su sombra, y (para los NPCs) las rutinas ambientales que sigue cuando no lo estás manejando. Guarda en el characters.json del proyecto.

Llegas a él desde el Hub (con el dev server corriendo). Los personajes se listan a la izquierda; + Add Character crea uno nuevo, y al seleccionar un personaje se abre su panel de detalle. 📥 Import Chars crea un lote desde una carpeta de sprites PNG — un PNG se vuelve un personaje (con los mismos defaults que + Add Character), tras un modal de revisión donde defines el id de cada uno.

La pantalla del Editor de Personajes — la lista de personajes a la izquierda y los ajustes de sprite/comportamiento a la derecha.
Editor de Personajes — lista de personajes, ajustes de sprite y comportamiento.

Sprite y vista previa#

Cada personaje apunta a un sprite mirando a la izquierda (assets/sprites/…) vía el campo de ruta o el selector 📁. El motor deriva las demás orientaciones de ahí — la derecha es espejada, y la carpeta animations/ junto al sprite aporta los clips de caminar e idle. Pulsa en cualquier animación de la lista para reproducirla en el retrato — cicla los cuatro lados por turno y corre al speed del propio clip, así que el ritmo coincide con el del juego.

Bajo el campo de ruta del sprite hay una fila de botones que actúan sobre él: 📁 para elegir otro, para editarlo, y 🎬 para mandarlo a una animación.

lo abre en el modal compartido de pixel-tweak — el mismo workspace de pintar · escalar · rotar · deformar que usan los editores de Animaciones, Ítems y Cursores — así arreglas un píxel perdido o remodelas el arte sin salir a un editor externo; la vista previa se refresca al guardar. Trae un guard específico de personajes: si el sprite no vive en la carpeta assets/characters/<id>/ de este personaje — porque es el sprite default compartido, o uno que reusaste de la carpeta de otro personaje — editarlo cambiaría ese arte para todos los personajes que lo apuntan, así que el editor avisa y te pide confirmar antes de abrir.

🎬 convierte el sprite por defecto en material de animación, que suele ser como arranca la primera animación de un personaje. Eliges una animación y una dirección, y el sprite se añade como último fotograma de ese lado — el editor sugiere el lado que menos fotogramas tiene hasta ahora.

El mismo diálogo ofrece además + nueva animación, así que nunca estás limitado a las animaciones que el personaje ya tiene: al elegirla le pones nombre (idle, walk, blink, o uno propio — sólo se sugieren los nombres que a este personaje aún le faltan), sembrada con el sprite como un solo fotograma en las cuatro direcciones, el lado derecho espejado del izquierdo, lista para abrir en el Editor de Animaciones. Un personaje que sólo tiene ciclo de caminata consigue así su idle o su parpadeo. Si todavía no tiene ninguna animación, el botón va directo ahí.

En los dos casos el sprite se copia al archivo de la propia animación en vez de referenciarlo, así retocar ese fotograma más tarde nunca alcanza al sprite por defecto — ni a ningún otro personaje que lo comparta. Si la copia no se puede hacer, no se añade nada y el default queda intacto, en vez de dejarte un fotograma apuntando a un arte que nunca se duplicó.

Un botón 🎬 junto al sprite envía el sprite por defecto a una de las animaciones del personaje. Si el personaje ya tiene animaciones, abre un selector chico (qué animación, qué lado — sugerido como el lado con menos frames) y agrega el sprite como frame nuevo ahí. Si el personaje todavía no tiene ninguna, ofrece sembrar una desde cero en vez de dejarte en un callejón sin salida: eliges idle, walk, o un nombre propio, y crea una animación en loop con el sprite como frame único en las 4 direcciones (la derecha espeja la izquierda, según la convención del proyecto de que el sprite mira a la izquierda). En cualquiera de los dos casos el sprite se copia a su propio archivo bajo la animación — retocarlo después en el Anim Editor nunca muta el default.png compartido.

Sandbox de vista previa#

🎚️ Preview sandbox abre un panel movible que responde lo que el retrato no puede: ¿de qué tamaño es este personaje contra el mundo, y contra el resto del elenco? Elige un personaje de comparación y los dos quedan parados en el mismo piso — al arrastrar cualquiera, los pies se enganchan a una línea base común para que la comparación sea honesta (mantén Alt para arrastrar libre). Con — piso en blanco — elegido, el readout da la altura en píxeles de cada uno en pantalla y la escala que le aplica el área caminable donde está parado.

Si en cambio eliges un cuarto, el panel compone el frame real del juego alrededor de ellos: la sala recortada en su viewport (con sliders de cámara en salas que scrollean), FX, walk-behinds, capas de parallax, zonas de luz, arte de hotspots y la barra GUI principal real del proyecto — la misma composición que dibuja el sandbox del Editor de Cuartos, por las pasadas del propio motor y no por una maqueta. Cada una es un toggle con repintado inmediato, y el readout pasa a mostrar las dimensiones de la sala, la resolución del proyecto y la GUI en juego. Acá es donde compruebas un tamaño contra la barra que se come el fondo de la pantalla, o contra el walk-behind por detrás del cual tiene que pasar el personaje. Arrastrar es local al sandbox en los dos casos — nunca escribe una posición en ningún lado.

Propiedades#

  • ID — la clave estable del personaje (alex, bern…). Es lo que referencian las reglas, inventarios y tokens de efecto, así que trátalo como permanente; renombrarlo deja huérfano todo lo que lo apunte.
  • Name — el nombre visible en el juego.
  • Initial player — marca el personaje con el que empiezas a jugar. Es exclusivo: marcar uno lo desmarca en todos los demás. Si los dejas todos sin marcar, el motor recurre al primer personaje.
  • Walk speed — un knob rotativo que fija la velocidad de movimiento directamente en píxeles por segundo (walkSpeed, 150–1050); doble-clic para resetear al default de 460.
  • Size adjust — un knob rotativo, un porcentaje relativo a la size class del proyecto (−100…+400, doble-clic resetea a 0). La size class fija la base (un personaje es una fracción del alto lógico de pantalla); esto ajusta a este personaje por encima o por debajo sin re-autorar el sprite. En el extremo inferior del rango (−100) el personaje encoge a ~1% de su size class y queda efectivamente invisible en pantalla — el editor muestra una advertencia en ese valor, tanto al arrastrar el knob hasta ahí como al cargar un personaje ya guardado con ese valor.

El rango llega a +400 (×5) porque el arte de baja resolución en un proyecto de alta necesita más que duplicarse: un sprite de 48px de alto tiene que crecer unas 4× para ocupar el cuarto de pantalla que ocupa un protagonista. Pasado +150 (×2.5) aparece una segunda etiqueta que nombra el factor al que estás — a esa altura estás agrandando píxeles, y lo que realmente se ve bien es redibujar el sprite a la escala a la que corre el proyecto. Para un valor exacto usa la cajita numérica que está al lado del knob: en un rango tan amplio, tipear le gana a arrastrar. - Float height — un knob rotativo (0–1000px, doble-clic resetea a 0) que eleva el sprite dibujado por encima del ancla de suelo sin mover la posición real del personaje — para personajes flotantes/voladores. El ancla de suelo sigue rigiendo los límites caminables, el orden de profundidad y la sombra proyectada; solo el sprite se eleva. - Idle delay — un knob rotativo (0–10s) que mantiene el primer fotograma de la animación idle totalmente quieto ese tiempo tras asentarse el personaje, antes de que arranque su inquietud idle ambiental. Cero = la inquietud empieza de inmediato; un par de segundos hace que un personaje se sienta más calmo y menos nervioso al estar parado. - Speech color — el color del texto hablado (SAY) de este personaje, por selector o hex. Walk speed, size adjust y speech color comparten una fila. - Theme — un tema musical opcional por personaje, elegido de los ids de audio del proyecto. - Shadow — activa/desactiva la sombra proyectada y ajusta su opacidad, offset X/Y y radio. - Speech bubble — un multiplicador de tamaño por personaje más un override de mostrar (inherit / on / off) que gana sobre el ajuste global de bocadillo. El globo ya se ancla solo al pixel visible más alto del sprite; un knob de Ajuste Y afina ese anclaje (+ lo baja, − lo sube; 0 = totalmente automático) para sprites cuyo arte necesita un poco de holgura.

Behaviours (rutinas de NPC)#

La pestaña Behaviours es donde un NPC recibe rutinas ambientales — listas de pasos que se ejecutan solas, dirigidas por el secuenciador core/behaviours.js. Un personaje puede tener varias rutinas con nombre; cada una lleva su propio id, y ese id es exactamente lo que arranca un token de efecto BEHAVIOUR:<id> (y detiene STOPBEHAVIOUR). Las tarjetas de rutina se colapsan para mantener la lista ordenada, y ⧉ Duplicar clona una rutina entera — pasos, loop y velocidad incluidos — como punto de partida para una variante.

Cada rutina es una lista ordenada de pasos, de tres tipos:

  • go — caminar a algún lado: un hotspot, coordenadas fijas o su punto de casa, opcionalmente en otro cuarto.
  • wait — pausar N segundos.
  • do — ejecutar una lista de tokens de efecto (reproducir una animación, decir una línea, encender un flag — cualquier cosa que el sistema de efectos pueda hacer), con un sostén opcional después.

Reordena los pasos con ▲ / ▼, pon la rutina en loop, y opcionalmente dale un override de velocidad (un knob de velocidad de caminata solo para esa rutina). Cuando el NPC está en pantalla camina los pasos con pathfinding real; fuera de pantalla la misma rutina se resuelve como un temporizador de viaje abstracto, así el mundo sigue moviéndose sin renderizarlo.

Flujo de trabajo#

  1. + Add Character y dale un ID y un Name estables.
  2. Apúntalo a su sprite mirando a la izquierda, y revisa la vista previa con .
  3. Ajusta walk speed, size adjust, speech color, shadow y bubble.
  4. Marca Initial player en el que arranca el juego.
  5. Para un NPC, añade una rutina ambiental en la pestaña Behaviours.
  6. Save para escribir characters.json.

El ID es el contrato. Las reglas, inventarios y tokens de efecto (SWITCHCHAR, GIVEITEM:<item>|<personaje>, FOLLOW…) referencian a un personaje por su ID. Elígelo una vez y déjalo — renombrarlo rompe cada referencia, igual que los IDs de verbo y las claves de hotspot.