Cómo hacer un NPC en Unity
Summary
TLDREn este tutorial de Unity para principiantes, se presenta cómo crear una Inteligencia Artificial básica para videojuegos. Se utiliza la versión 2022.3 de Unity, que incluye un nuevo sistema de navegación mejorado. El tutorial guía a los usuarios a través del proceso de instalación del paquete de navegación, creación de un agente de navegación humanoide y configuración de la superficie de navegación. Luego, se crea un script simple para hacer que el agente navegue hacia un objetivo. Se discute cómo hacer que el agente siga un objetivo que se mueve y cómo utilizar etiquetas para que la IA busque un jugador o cualquier otro objeto etiquetado. Finalmente, se ofrece una visión general de cómo este conocimiento básico de IA puede ser aplicado en el desarrollo de videojuegos para crear enemigos o compañeros de IA que persigan al jugador.
Takeaways
- 🎮 Hola jóvenes, este es un tutorial de Unity para crear una IA básica para videojuegos.
- 📈 Se está utilizando Unity 2022.3, donde el sistema de navegación ha mejorado significativamente.
- 🔍 Para usar el nuevo sistema de navegación, se debe buscar y instalar la versión actual a través del package manager.
- 🚶♂️ Se creará un agente de navegación humanoide para el personaje en el tutorial.
- 🧩 Se agregará un componente de navegación a los objetos del escenario para que el agente pueda moverse.
- 💠 Se usará un área azul para representar las áreas de navegación permitidas en la escena.
- 📏 Se creará un cilindro como referencia para el espacio de navegación del agente.
- 📄 Se escribirá un script simple llamado 'Navigator' para controlar el movimiento del agente.
- 🎯 El agente se configurará para moverse hacia un objetivo específico usando un vector3.
- 🔄 Cuando el agente alcanza su objetivo, se actualizará el destino en el método Update para seguirlo.
- 🏷️ Se agregará una etiqueta 'Player' al objetivo para que el agente pueda seguirlo sin necesidad de referenciar un transform específico.
- 📝 Se sugiere agregar comentarios y suscripciones para recibir actualizaciones sobre futuras tutoriales.
Q & A
¿Qué versión de Unity se utiliza en el tutorial?
-Se utiliza la versión 2022.3, p3 de Unity.
¿Cómo ha cambiado el sistema de navegación en Unity en la versión mencionada?
-El sistema de navegación en Unity ha cambiado completamente, ofreciendo una implementación mejorada y más precisa para programar la navegación de los personajes.
¿Dónde se encuentra el nuevo sistema de navegación en Unity?
-El nuevo sistema de navegación ya no se encuentra en la pestaña de Window, sino que se accede a través del package manager en Unity Registry.
¿Cómo se instala el paquete de navegación en Unity?
-Se busca la navegación (navigation) en el package manager, se selecciona la versión actual y se hace clic en 'Install' para instalarlo.
¿Qué componentes se deben agregar a un objeto para habilitar su navegación en Unity?
-Se debe agregar un componente de 'NavMeshSurface' al objeto para que forme parte de la superficie de navegación.
¿Qué es un 'NavMeshAgent' y cómo se utiliza en el tutorial?
-Un 'NavMeshAgent' es un componente que permite a un objeto moverse de manera inteligente a través de una superficie de navegación. En el tutorial, se agrega a la cápsula para que pueda navegar hacia un objetivo.
¿Cómo se define el objetivo que el 'NavMeshAgent' debe seguir en el tutorial?
-Se crea una variable de tipo 'GameObject' llamada 'target' en el script y se le asigna un objeto vacío (empty) como destino. Este objeto se posiciona en el lugar donde se desea que el agente navegue.
¿Qué sucede cuando el agente llega a su objetivo y cómo se resuelve?
-Inicialmente, el agente se detiene y no hace nada más una vez que alcanza el objetivo. Para resolver esto, se cambia el evento de 'Start' a 'Update' en el script, lo que permite que el agente siga el objetivo aunque este se mueva.
¿Cómo se hace para que el agente siga a un jugador en el tutorial?
-Se modifica el script para que la variable 'target' busque un objeto con la etiqueta 'Player' utilizando 'GameObject.FindWithTag("Player")'. Luego, se le asigna esta referencia al agente para que lo siga.
¿Qué se debe hacer si se quiere que el agente siga un objeto con un nombre diferente a 'Player'?
-Se debe cambiar la etiqueta de búsqueda en el script de 'Player' a cualquier otro nombre o etiqueta que se desee. Luego, se debe asignar esa etiqueta al objeto que se quiere que el agente siga.
¿Qué tipo de inteligencia artificial se está creando en el tutorial?
-Se está creando una inteligencia artificial básica que permite a un agente seguir un objetivo y actualizar su ruta si el objetivo se mueve.
¿Qué se aborda en el próximo tutorial después de este?
-En el próximo tutorial se abordará la creación de una inteligencia artificial más avanzada, posiblemente con animaciones, para un zombie o una entidad similar que pueda ser utilizada en un juego.
Outlines
🎮 Introducción a la Inteligencia Artificial en Unity
Este primer párrafo aborda la introducción a la creación de una Inteligencia Artificial (IA) básica en Unity para principiantes. Se menciona que se iniciará con una IA simple y luego se profundizará en IA más compleja para diferentes tipos de entidades como zombies, soldados y animales. Se destaca el cambio en el sistema de navegación de Unity en la versión 2022.3, y cómo se puede acceder a través del package manager para instalar y utilizarlo. Además, se indica que se creará un agente de navegación humanoide y se explicará cómo configurar la navegación en la escena y generar los links y el Bake para definir las áreas de navegación.
📝 Creando un Script para la Navegación de la IA
El segundo párrafo se enfoca en la creación de un script en Unity para que el agente de IA pueda navegar hacia un objetivo. Se describe el proceso de crear un script llamado 'Navigator', el cual utiliza la librería de navegación de Unity para implementar la funcionalidad de movimiento. Se detalla cómo obtener una referencia al agente de navegación, establecer un objetivo para el agente y cómo hacer que el agente siga el objetivo utilizando el método 'setDestination'. Se menciona un problema donde el agente se detiene al llegar al objetivo y cómo se puede solucionar moviendo el objetivo para que el agente intente seguirlo. Finalmente, se resalta la necesidad de cambiar el evento de 'Start' por 'Update' para que el agente siga al objetivo después de alcanzarlo.
🎯 Sigue al Objetivo: Etiqueta y Referencia del Jugador
El tercer párrafo explica cómo hacer que la IA siga un jugador en el juego. Se sugiere que el objetivo (que podría ser el jugador) tenga una etiqueta para que la IA pueda encontrarlo y seguirlo. Se describe el proceso de modificar el script para que la IA busque un objeto con una etiqueta específica (en este caso, 'Player') y cómo asignar esa etiqueta a un objeto en la escena. Se menciona que esta funcionalidad es útil para crear IA que sigan al jugador o cualquier otro objeto etiquetado, permitiendo así una IA más interactiva y dinámica en el juego. El párrafo termina con una invitación a los espectadores para dejar comentarios, dar like y suscribirse para recibir actualizaciones sobre futuras tutoriales.
Mindmap
Keywords
💡Unity
💡Inteligencia Artificial
💡Navegación
💡Nav Mesh
💡Agente de IA
💡Componente
💡Scripting
💡Eventos de Unity
💡Objetivo
💡Etiquetas
💡Tutorial
Highlights
Bienvenidos a un nuevo tutorial de Unity para principiantes.
Se creará una Inteligencia Artificial básica para videojuegos.
Se utilizará Unity 2022.3, p3, con un nuevo sistema de navegación.
El sistema de navegación de Unity ha mejorado en precisión y especificidad.
Para usar el nuevo sistema de navegación, se debe instalar a través del package manager.
Se debe buscar y agregar el paquete de navegación en el Unity Registry.
Se creará una configuración de navegación específica para los personajes humanoides.
Se agregará un componente de navegación a los objetos de la escena.
Se generará la superficie de navegación con el componente Nav Mesh Surface.
Se usará un agente Na Mesh Agent para la navegación.
Se creará un script simple para hacer que el agente navegue.
Se implementará la biblioteca de navegación y se referenciará el agente.
Se establecerá un objetivo para el agente a través de un Game Object.
Se agregará un componente de script al GameObject de la cápsula.
Se solucionará el problema de que el agente se detenga al llegar al objetivo.
Se cambiará el evento Start por Update para que el agente siga al objetivo.
Se usará una etiqueta para hacer que el agente busque un jugador.
Se agregará una etiqueta 'Player' al objetivo para que el agente lo siga.
Se puede cambiar la etiqueta para adaptar la IA a diferentes objetos o jugadores.
Se ha creado una IA básica que sigue a un objetivo etiquetado como 'Player'.
Se pronostica el desarrollo de una IA más avanzada con animaciones para futuros tutoriales.
Transcripts
Hola jóvenes ilustres Cómo están
Bienvenidos a este nuevo tutorial de
Unity para principiantes hoy vamos a
hacer una Inteligencia artificial muy
muy básica para dar el primer paso en su
desarrollo de videojuegos posteriormente
estaremos viendo cómo hacer un una
Inteligencia artificial un poco más
trabajada como puede ser un zombie eh un
soldadito y hasta animales o incluso
vehículos pero de momento vamos a hacer
algo muy sencillo para que vayan
familiarizándose un poco con esto de la
navega
estoy usando la versión de Unity 2022.3
p3 como ustedes ya se habrán dado cuenta
el sistema de navegación de Unity ha
cambiado completamente A diferencia de
las versiones anteriores este nuevo
sistema de navegación Sí es bastante
mejor Está un poco mejor e implementada
hasta incluso puedes ser un poco más
preciso Al momento de estar programando
tu navegación y un poco más específico
en cuanto a tus personajes que quieras
incluir dentro del sistema de navegación
de Unity hoy para poder hacer uso de ese
nuevo sistema de navegación Ya no lo
vamos a encontrar Lamentablemente en la
pestaña de window sino que es decir
ahora tenemos que ir al package manager
que es en window package manager vamos a
buscar aquí seguramente les va a abrir
en en package en project Así que vamos a
cambiar a Unity registry vamos aquí a
buscar la navegación que es a navigation
vamos a escribir Si no los encontramos
Si no los ubicamos vamos a simplemente
escribir ahí
navigation y aquí nos va a salir la
versión actual que se encuentra y
podemos instalarla simplemente vamos a
dar clic en
install y vamos a esperar hasta que se
instale Pues muy bien Ya se instaló
ahora lo que tenemos que hacer es bueno
ya podemos cerrar nuestro package
manager ahora eh Para hacer uso de esta
nueva Inteligencia artificial si bien ya
nos puedes salir aquí el el navigation
el Ai navigation y el obsoleto y bueno
el obsoleto pues como bien ya sabemos
está obsoleto Entonces no lo vamos a
usar más simplemente vamos a dar en
cerrar ahora para poder usar nuestra
sistema de navegación vamos a tener que
crear uno precisamente nosotros podemos
crear varios eh los que queramos
específicamente para ciertos carácteres
o ciertas cosas que quieras que ocupen
este sistema Por ejemplo ahorita vamos a
usar solamente uno vamos a dar click en
window ahí navigation y aquí nos va a
aparecer la ventana de navegación aquí
está preconfigurada con una llamada
humanoid pero Podemos agregar más
configurarla como robot
eh otra Como
bices vehículos este Otra como npc
Otra como Monsters dependiendo con esto
vamos a hacerle saber a Unity que
nuestro sistema de navegación va a usar
ciertos factores para que cierto eh tipo
de agente pueda Navegar en ciertas áreas
o no es decir ahorita vamos a usar
solamente la de humanoid de momento
vamos a borrar todas estas que yo las
creé las Acabo de crear y nos vamos a
quedar con la preconfigurada de humanoid
ya que la tenemos configurada
simplemente vamos a cerrarla podemos
editar el tiempo que queramos podemos
anclarlo simplemente arrastramos la
ventana hacia un lado para que se nos
quede anclado en nuestro Inspector o en
donde queramos situarla pues vamos a
empezar vamos a crear primero una
cápsula aquí en vamos al click de más o
simplemente click derecho 3D object eh Y
cápsula ya que tenemos nuestra cápsula
vamos a vamos a ponerla en nuestro
escenario en en mi caso yo tengo este de
Aquí vamos a seleccionar las cosas que
serán usadas para navegación en nuestra
escena que en mi caso es todo esto lo
seleccionamos y le añadimos un
componente de navigation y le vamos a
Añadir el nmes surface ahora podremos
ver que se nos pusieron estos iconos y
esto nos indica que ya estamos usando
los componentes en nuestra escena y aquí
en nuestro componente de Nat mesh
surface nos va a aparecer qué agente es
el que vamos a usar para esta área en
nuestro caso vamos a usar el humanoid
que es el humanoid ig cable que es decir
el área donde se puede caminar Vamos a
darle en generate links vamos a cliquear
esta casilla para no generar error y
ahora vamos a y vamos a presionar el
botón Bake ahora mismo vamos a ver que
se nos ha puesto como una superficie
azul arriba de nuestros objetos eso
indica las áreas en las que podemos
pasar o no ahora ya que tenemos nuestra
área preconfigurada nos falta la
Inteligencia artificial vamos a ir a
nuestra cápsula le vamos a renombrar le
vamos a poner un nombre Eh Yo le voy a
poner este
a y le vamos a Añadir un componente de
napm agent na mesh agent este de aquí le
damos click y se nos va a crear una
especie de cilindro que va a ser usado
como referencia eh Por la navegación
para que nosotros podamos ver cuánto
espacio ocupa Y cuánto es la altura que
le estamos dando a nuestro espacio de
navegación ahora vamos a crear una
Script sencilla para hacer Que navegue
vamos a ir a nuestro navegador de
proyecto vamos a dar clic derecho create
c Script y le vamos a poner el nombre
que queramos yo en mi caso voy a usar a
Navigator vamos a abrir la Script
Entonces vamos a empezar con sacar estos
dos métodos que no nos hacen falta estas
dos librerías Perdón luego sacamos estos
dos métodos que no me gusta tenerlos ahí
pero igual lo pueden dejar de momento
Así que vamos a referenciar aquí arriba
nuestra librería de Inteligencia
artificial que es el sistema de
navegación vamos a decirle que vamos a
implementar la librería de navigation
using navigation no perdón es Unity
engine
a ahora vamos a referenciar nuestro
agente nuestro agent para que podamos
Navegar que es
el
agent
vamos a llamarlo simplemente agent vamos
a crear un void Start o un void awake
como ustedes gusten Aunque yo les
recomendaría sí voy the way que está
bueno de momento aquí nos aparece una
sugerencia que es agent es igual a get
component n agent vamos a dar
simplemente Tab en versiones anteriores
a a visual Studio 2022 probablemente
tenga que escribirlo que o simplemente
les aparezcan las sugerencias en mi caso
me deja autocompletar entonces
simplemente presion Tab ahora ya que
declaramos que vamos a buscar el agente
dentro de nuestro game object vamos a
crear en el en el evento Start void
Start vamos a referenciar un objetivo
aquí arriba en nuestra Script vamos a
crear una variable de tipo Game object
public Game object o transf simplemente
transf y lo vamos a llamar como target
ya que tenemos nuestra variable
referenciada vamos a decirle que nuestro
agent
set
destination va a buscar dentro de los
paréntesis aquí nos está pidiendo un
vector 3 que va a ser Nuestro objetivo
en este caso vamos a usar nuestro vector
3 que es el
target vamos a decirle Target punto
position para usar el vector 3 vamos a
guardar
esto vamos a regresar a Unity ahora
seleccionamos nuestro nuestra
inteligencia vamos a agregar nuestra
Script y vamos a agregar un Target vamos
a crear uno aquí arriba Vamos a crear un
empty o simplemente vamos a crear un
cubo ya que lo tengamos vamos a a
posicionar Nuestro objetivo en algún
lugar que queremos que alcance vamos a
llamar esto como
objetivo y se lo vamos a referenciar en
nuestro espacio que está aquí en en la
variable que nosotros le dimos que es de
tipo transform se lo lo arrastramos lo
soltamos y le vamos a dar Play para ver
qué pasa voy a posicionar la cámara un
poco más arriba voy a ponerla aquí
justamente voy a presionar control shift
F y ahora ya vemos que la cámara está
situada en este lugar ahora simplemente
vamos a dar a Play y vamos a ver que
nuestro nuestra navegación va a empezar
a caminar solita y va a buscar la manera
de llegar hasta ese
objetivo listo ha llegado al objetivo
cor correctamente pero ahora tenemos un
problema que cuando llega a su objetivo
simplemente se va a detener y no va a
hacer nada más vamos a ir a la escena y
vamos a tratar de mover Nuestro
objetivo vamos a vamos a moverlo y vemos
que ya no hace nada más ya no puede
seguirlo ni intentar buscarlo ni nada
simplemente nuestro nuestra inteligencia
se queda ahí parada y no hace nada más
de hecho nosotros si lo movemos un poco
va a intentar regresar al lugar va a
estar así como va a estar así como el
personaje de Los Simpson que tratan de
sacarlo y se aferra a volverse a meter a
un lugar no vemos que simplemente se
está quedando ahí no hace nada más okay
vamos a solucionar eso con la siguiente
fórmula vamos a regresar a viso al
estudio vamos vamos a cambiar este
evento Start por un evento
update y vamos a guardar vamos a dar
Play vamos a ver que empieza a a
seguirlo lo empiezo a buscar vamos a
mover un poco nuestro game object a un
lado un lado más enfrente digamos ahora
vamos a hacerlo más para
atrás vamos a seguir moviendo este
objeto y vemos que simplemente lo está
siguiendo lo está buscando como
loco ven simplemente nuestra nuestra
Inteligencia artificial está buscando
Nuestro objetivo que bien Podría ser tu
jugador ahora vamos a referenciar un
jugador por ejemplo supongamos que tú lo
quieres para tu tu Player precisamente
vamos a regresar a visual Studio y vamos
a decirle que nuestro Target tiene que
tener un tag o un nombre una etiqueta
que sea para nuestro jugador vamos a
quitar el public simplemente lo vamos a
borrar aquí en nuestro evento await
vamos a Añadir una instrucción que va a
decirle que nuestro Target
es igual a un gain
object find tag vamos a
abrir los paréntesis vamos a escribir
Target no Player
Perdón punto
transform cerramos la
instrucción guardamos regresamos a Unity
ahora Nuestro objetivo le vamos a Añadir
una etiqueta que va a ser la de Player
que está aquí Player simpe se la
añadimos vamos a dar Play y vamos a ver
lo que pasa ahora mismo nuestra
Inteligencia artificial está buscando a
Nuestro objetivo que tiene la etiqueta
de
Player así si tú creas tu propia
inteligencia no tendrás que estar
referenciando ningún otro ningún otro
transform para que puedas Buscar tu
jugador simplemente añades la etiqueta
Player a lo que quieras que siga y ya
prácticamente lo estaría siguiendo igual
puedes cambiar la etiqueta si tú quieres
en vez de ponerle un Player le puedes
poner el nombre de tu jugador el nombre
de algún objeto y la Inteligencia
artificial va a buscar el objeto que
tenga esa etiqueta o ese nombre que tú
le diste genial ya tenemos una
Inteligencia artificial básica y bueno
jóvenes ilustres eso ha sido todo Espero
que les haya gustado este tutorial eh
nos vemos para el próximo tutorial
porque la verdad vamos a hacer un un
zombie vamos a hacer una inteligencia ya
con animaciones vamos a ser posiblemente
una persona o un zombie porque lo
podemos usar tanto como para un zombie
como para una Inteligencia artificial
compañera que básicamente la
Inteligencia artificial compañera es que
te siga y tú debas proteger a esa
inteligencia algo así como eh tipo
Ashley en Resident Evil 4 por favor deja
un comentario abajo si es que te
funcionó el tutorial o si tienes alguna
duda No olvides dejar tu like y
suscribirte para estar al tanto y nos
vemos hasta el próximo
video
[Música]
[Música]
Weitere ähnliche Videos ansehen
5.0 / 5 (0 votes)