NPC con AI · qué cambia cuando los personajes piensan

NPC con AI: cómo funcionan los personajes no jugadores impulsados por AI (y cómo crear uno)

Crea tu propio ai npc

Los NPC con AI pueden hablar, recordar y reaccionar. Aprende cómo funcionan los NPC con AI y luego crea uno en una frase y suéltalo en un mundo 3D transitable.

✦Juego
Crea un ai npc

Un NPC con AI es un personaje no jugador cuyo diálogo e intención los produce un modelo de lenguaje en tiempo de ejecución, mientras que el movimiento y las colisiones se mantienen en una trayectoria determinista. La AI decide qué dice y qué quiere el personaje; el motor decide a dónde va el cuerpo. En Neta Studio, describes un personaje en una frase, el Agent Sprite Forge genera un componente low-poly, y ese componente cae en un mundo 3D transitable construido sobre Three.js.

Esa separación importa porque te dice dónde viven los errores. Cuando un NPC atraviesa una pared, la navegación está mal. Cuando un NPC insulta al jugador sin que nadie se lo pida, el contrato del prompt está mal. Esta página cubre la segunda categoría: cómo los sistemas de NPC con AI generan líneas, mantienen parámetros de personalidad, recuerdan una sesión y fallan cuando el modelo planifica y el motor no puede ejecutar.

Respuesta rápida: qué es realmente un NPC con AI

Separa la frase. «AI» aquí significa que un modelo produce texto y una intención de alto nivel. «NPC» significa un controlador de personaje, un colisionador y una máquina de estados de animación. Los dos corren a relojes distintos: el modelo responde en cientos de milisegundos, el controlador se actualiza cada fotograma a 60 Hz. Se comunican mediante una interfaz estrecha, normalmente un pequeño objeto JSON que el controlador consulta.

En la práctica, la interfaz se ve así: el modelo devuelve {line, intent, target}. El controlador lee intent, comprueba si el target es alcanzable en la navmesh y o bien reproduce la línea con una animación correspondiente, o bien sustituye una línea de reserva. Si fusionas esas dos capas, obtienes NPC que se teletransportan, se deslizan o se quedan quietos a mitad de frase mientras el modelo termina de generar.

Así que la definición operativa: un NPC con AI es un NPC cuya salida hablada y cuya selección de la siguiente acción provienen de un modelo generativo, acotado por un conjunto fijo de intenciones legales que el motor puede ejecutar de verdad.

  • Capa de diálogoLlamada al modelo. Latencia de 200–900 ms. Puede fallar, limitarse por tasa o devolver JSON malformado.
  • Capa de intenciónUn enum corto: greet, follow, flee, trade, attack, idle. Todo lo que quede fuera del enum se descarta.
  • Capa de movimientoNavegación por navmesh, colisionador, mezcla de animaciones. Se ejecuta cada fotograma. No llama al modelo.
  • Capa de memoriaUn almacén de clave-valor con los hechos que el NPC tiene permitido recordar, limitado por el presupuesto de tokens.

NPC basados en reglas frente a NPC impulsados por AI

Un NPC basado en reglas elige de una tabla. Tú escribes a mano los estados, las transiciones y las líneas. Es exacto, barato y reproducible: la misma entrada siempre produce la misma salida, lo que hace que sea trivial de probar y trivial de depurar. El techo es tu tiempo de escritura, y el modo de fallo es que un jugador escriba algo que no anticipaste y se quede con la mirada perdida.

Un NPC impulsado por AI genera la línea. Tú escribes un contrato y un conjunto de intenciones legales, y el modelo rellena el espacio entre ellos. Maneja con soltura entradas no previstas, pero la misma entrada puede producir salidas distintas en dos ejecuciones, lo que rompe las pruebas de repetición ingenuas. El coste escala con la duración de la conversación y no con el número de personajes, así que una escena charlatana cuesta más que una silenciosa.

Ninguno es estrictamente mejor. La comparación honesta:

DimensiónNPC basado en reglasNPC impulsado por AI
Origen del comportamientoMáquina de estados y tabla de líneas escritas a manoSalida del modelo acotada por un enum de intenciones
RepetibilidadIdéntico bit a bit entre ejecucionesNo determinista a menos que fijes semilla y temperatura
Forma del costeFijo en tiempo de compilaciónPor token en tiempo de ejecución, crece con la duración de la conversación
DepurabilidadRastrea la transición; el registro es el códigoRegistra prompt, respuesta sin procesar, intención analizada y reserva por separado
Modo de falloRespuesta en blanco o en la rama equivocadaLínea fuera de contrato, pico de latencia o JSON imposible de analizar
Esfuerzo de autoríaAlto por línea, bajo por estadoBajo por línea, alto por restricción

Diálogo dinámico

Un árbol de diálogo es un grafo con nodos escritos a mano. El guionista controla cada palabra, y por eso las misiones, los contratos y las revelaciones críticas para la trama siguen usando árboles. La entrada del jugador se empareja con una de N ramas; todo lo que quede fuera de esas N no está contemplado. Los árboles escalan de forma lineal con el contenido: duplicar la conversación duplica la escritura.

El diálogo generado es distinto en esencia, no solo en volumen. El modelo lee la frase real del jugador, más el contexto que tú inyectas —nombre del NPC, objetivo actual, los últimos tres intercambios— y escribe una respuesta que encaja. Puede manejar una pregunta que nunca anticipaste. También puede manejar esa pregunta mal, con confianza y en personaje, lo que es peor que fallar.

Dónde sigue siendo correcto un árbol: cualquier línea que cargue estado del que dependa el resto del juego. «El código de la puerta es 4417.» No dejes que un modelo invente eso. El patrón fiable es híbrido: el árbol posee los hechos y los puntos de ramificación, el modelo posee la redacción y la charla trivial. En Neta Studio, cuando creas un NPC con AI a partir de una descripción, el componente generado expone un enum de intenciones; los hechos que quieres garantizados van al componente como cadenas fijas, no al prompt como instrucciones.

Una forma de prompt que sobrevive al contacto con los jugadores

Mantén el prompt de sistema por debajo de unos 300 tokens. Rol, tono, tres restricciones y el esquema de salida. Todo lo demás —inventario, estado de la misión, hechos del mundo— va en un bloque de contexto aparte que el motor inyecta en cada turno. Si metes el mundo entero en el prompt de sistema, la latencia sube y el modelo empieza a ignorar las instrucciones posteriores.

Pide siempre salida estructurada. Solicita un objeto JSON con line e intent. Analízalo. Si el análisis falla, descarta la línea y reproduce la reserva. No renderices nunca texto sin procesar del modelo directamente al cuadro de diálogo sin una comprobación de longitud; una generación desbocada producirá un monólogo de 400 palabras que rompe tu interfaz.

Personalidad procedural

Una personalidad no es un párrafo de trasfondo. Un párrafo de trasfondo son datos de entrenamiento para la imaginación del modelo, y se degrada con la longitud: pasados unos pocos centenares de palabras, el modelo empieza a tratarlo como sabor y deriva hacia una amabilidad genérica. Trata la personalidad como tres o cuatro parámetros, cada uno de los cuales cambia un comportamiento observable.

El objetivo es lo que el NPC quiere ahora mismo. El tono es cómo habla: cortante, formal, burlón. La restricción es lo que no hará: no mentirá, no hablará de la guerra, no comerciará. Esos tres caben en una sola línea de prompt y son comprobables por separado. Añade un cuarto solo si puedes describir qué cambia al variarlo.

En Neta Studio, el Agent Sprite Forge acepta una descripción y devuelve un componente low-poly con estos parámetros expuestos como campos del componente. Puedes editar el objetivo sin tocar el prompt del modelo, y puedes clonar un componente y cambiar solo el tono para obtener un segundo NPC. Dos NPC con la misma malla y distinto tono se leen como personajes diferentes en una escena, lo que es más barato que escribir dos sprites.

  • ObjetivoUna frase, en presente. «Consigue que el jugador salga del santuario.»
  • TonoDe dos a cuatro adjetivos. «Cortante, arcaico, impaciente.»
  • RestricciónReglas negativas. «Nunca nombra el río. Nunca acepta un objeto.»
  • Límite de conocimientoAquello a lo que el NPC puede referirse. Todo lo que quede fuera debe producir una evasiva en personaje, no una invención.

Comportamiento adaptativo

La memoria dentro de una sesión es barata y eficaz. Mantienes un búfer rodante de los últimos N intercambios, más un pequeño almacén de clave-valor con los hechos que le han contado al NPC. Un N de 8 a 12 funciona para la mayoría de las escenas; más allá de eso, el prompt crece más rápido que la paciencia del jugador y los turnos antiguos dejan de afectar a la salida de todos modos.

Lo que un NPC puede recordar de forma fiable: el nombre del jugador tal como se dijo, si se le dio o se le rechazó un objeto concreto, si una interacción previa terminó en hostilidad y el último objetivo declarado. Lo que no puede recordar de forma fiable: la redacción exacta de veinte turnos atrás, hechos que nunca se escribieron en el almacén de clave-valor y cualquier cosa a través de una recarga de página a menos que la persistas. La memoria que vive solo en el prompt es memoria que se evapora.

La reacción es la otra mitad. El motor observa los cambios de estado —bajada de salud, transferencia de objetos, umbral de distancia cruzado— e introduce un evento en el contexto del NPC. El modelo entonces elige una intención del enum. Por eso existe el enum de intenciones: el modelo propone, el motor dispone. Un NPC que «decide» atacar todavía debe pasar la comprobación de alcanzabilidad. Si falla, reproduce una línea de advertencia y se queda quieto.

Lo que cuesta de verdad la persistencia

Escribir memoria en el almacenamiento es una línea de código y una decisión de esquema. Mantén las claves cortas y planas: playerName, gaveItem, hostility. Los objetos anidados se hinchan y se pudren. Versiona el esquema desde el principio; un cambio de nombre posterior elimina en silencio las partidas guardadas antiguas a menos que escribas una migración.

Entre sesiones, no intentes reproducir todo el historial de conversación en el contexto. Es caro y hace que el NPC sea repetitivo. Persiste el resumen —de tres a cinco hechos— y empieza de cero con la transcripción.

Crea un NPC con AI en una frase

La cadena de producción en Neta Studio es deliberadamente corta. Escribes una descripción. El Agent Sprite Forge genera un componente low-poly con una malla, una paleta y un modo de comportamiento. Lo sueltas en una escena transitable construida con el 3D Game Builder, y aparece con colisión, navegación y un enganche de diálogo ya conectados.

Una descripción que funciona es específica sobre el rol, el tono y una restricción. «Un farero suspicaz, cortante y del norte, que no hablará del naufragio.» Eso produce un componente cuyo prompt incluye exactamente esos tres parámetros. Algo como «un personaje guay» produce un resultado genérico, porque no hay nada que restringir.

Puedes probar el resultado en dos sitios: The Cyclops' Island, que es la escena transitable de formato largo, y Mini World, que es más pequeña y más rápida para iterar. Ambas corren en el navegador sobre Three.js. Suelta el componente, camina hasta él, escribe una línea y lee la respuesta. Si el tono no da en el clavo, edita el campo de tono en el componente en lugar de reescribir el prompt desde cero.

1

01

Escribe una frase: rol, tono, una restricción.

2

02

Pásala por el Agent Sprite Forge para generar un componente low-poly.

3

03

Abre Mini World o The Cyclops' Island en el 3D Game Builder.

4

04

Suelta el componente en la escena; aparece con colisión y un enganche de diálogo.

5

05

Acércate y escribe una línea. Lee la respuesta y la intención que seleccionó.

6

06

Edita el tono o la restricción en el componente, no en el prompt de sistema.

7

07

Prueba la ruta de fallo: escribe algo fuera de tema y confirma que se dispara la reserva.

8

08

Mueve el componente a la escena más grande una vez que se comporte bien.

Lo que los NPC con AI todavía no pueden hacer

La planificación a largo plazo no funciona. A un modelo al que se le pide planificar treinta pasos a lo largo de una escena le saldrá un plan plausible y luego perderá el hilo en el paso seis, porque nada sostiene el estado entre pasos salvo el prompt, y el prompt se va haciendo más largo y más ruidoso. Si necesitas una misión de varias etapas, escribe las etapas a mano y deja que el modelo rellene el diálogo dentro de cada etapa. No le pidas que sostenga el arco.

Los objetivos realmente abiertos tampoco funcionan. «Haz lo que quieras» produce parálisis o un bucle de amabilidad genérica, porque el modelo no tiene ninguna señal de qué cuenta como progreso. Un objetivo solo es utilizable si el motor puede comprobar si se satisfizo. Si no puedes escribir esa comprobación, no tienes un objetivo, tienes un estado de ánimo.

El control de costes es el hueco de verdad. El coste por turno es pequeño; el fallo está en la conversación que nunca termina. Un jugador que sigue hablando sigue generando factura. Necesitas un tope duro de turnos por interacción, un tope de tokens de contexto y una ruta de degradación: pasado el tope, el NPC cambia a respuestas más cortas y preparadas. Sin esas tres cosas, un solo probador curioso puede quemar más presupuesto que el resto de tu escena junta.

Y los fallos más pequeños: una latencia por encima de 1,5 segundos se lee como un juego roto, no como un personaje reflexivo. El no determinismo rompe las pruebas de repetición a menos que fijes semilla y temperatura. Y cualquier línea generada puede contradecir algo que el árbol ya estableció, y por eso los hechos se quedan en el árbol.

  • Horizonte de planificaciónFiable para 1–2 pasos. Se degrada mucho más allá de eso.
  • Verificación del objetivoDebe poder comprobarlo el motor. De lo contrario, el objetivo es decorativo.
  • Techo de costeNecesita un tope de turnos por interacción, más un tope de tokens y un modo de reserva.
  • Presupuesto de latenciaMenos de 1,5 s para una sensación conversacional; por encima, los jugadores asumen un congelamiento.
  • DeterminismoNo determinista por defecto. Fija semilla y temperatura si pruebas por repetición.
Describe un personaje y aterriza en un mundo transitable: NPC con AI, en una frase.
Little Ritual — la base basada en reglas que un NPC con AI tiene que superar.

Entra en el mundo al que pertenece

Un sprite es un personaje sin sitio donde estar. El último paso es el que nadie más ofrece: coge la hoja que acabas de crear y ponla en un mundo por el que alguien pueda caminar —una isla pequeña, un planeta, una esquina de calle lluviosa. Cada mundo de este sitio se hizo a partir de una descripción escrita y se publicó como una página que puedes jugar.

FAQ

¿Los NPC son AI? +

Tradicionalmente no. Un NPC clásico es una máquina de estados con líneas escritas a mano, y ese sigue siendo el valor por defecto en la mayoría de los juegos publicados. El término «AI NPC» se refiere específicamente a personajes cuyo diálogo o selección de intención produce un modelo en tiempo de ejecución en lugar de elegirse de una tabla.

¿Qué es un NPC con AI? +

Un personaje no jugador cuya salida hablada y cuya elección de la siguiente acción provienen de un modelo generativo, acotado por un conjunto fijo de intenciones que el motor puede ejecutar. El movimiento, la colisión y la animación siguen siendo deterministas; el modelo solo rellena el diálogo y propone una intención.

¿Pueden los NPC con AI recordar cosas? +

Dentro de una sesión, sí: un búfer rodante de los últimos 8 a 12 intercambios más un pequeño almacén de clave-valor de hechos cubre la mayoría de las escenas. A través de una recarga de página, solo si persistes los hechos en el almacenamiento. La memoria que vive solo en el prompt desaparece cuando lo hace el contexto.

¿Puedo crear uno gratis? +

El Agent Sprite Forge y el 3D Game Builder corren en el navegador y te permiten generar un componente a partir de una frase sin una cadena de herramientas local. Las llamadas al modelo en tiempo de ejecución son la parte que tiene coste, y ese coste depende de a qué modelo enrutes y de cuánto duren tus conversaciones.

¿Necesito un motor de juego para crear un NPC con AI? +

No para una escena de navegador. El 3D Game Builder se encarga del renderizado en Three.js y le da al componente generado colisión, navegación y un enganche de diálogo, así que te saltas el paso de configurar un motor. Solo necesitas un motor completo si apuntas a una compilación nativa.

¿Funcionan los NPC con AI en un navegador? +

Sí. La llamada al modelo es una petición de red y el renderizado es WebGL, así que ambos lados corren en el navegador. La limitación práctica es la latencia: mantén el prompt de sistema corto y el bloque de contexto aparte, o las respuestas empezarán a llegar cuando el jugador ya haya asumido que el juego se congeló.

¿Cuánto cuesta ejecutar un NPC con AI? +

Escala con la duración de la conversación, no con el número de personajes que coloques. Un NPC silencioso es casi gratis; uno charlatán factura por turno. El control que importa es un tope duro de turnos por interacción más un tope de tokens, con una reserva de respuestas preparadas una vez alcanzado el tope.

Volver al 3D Game Builder

Los 31 mundos, juegos y escenas 3D terminados viven en una sola página: todos ellos jugables.

Plataforma: Neta StudioPágina: NPC con AI: cómo funcionan los personajes no jugadores impulsados por AI (y cómo crear uno)Leer a continuación: /explore/guide/npc-behavior · /explore/guide/ai-npc · /explore/tool/ai-npc-generator
×