Como hemos visto, el movimiento y la animación del agente navmesh no funcionan bien juntos por defecto. No podemos editar o anular la clase de agente
navmesh para considerar la animación de nuestro personaje, por lo
que debemos encontrar otro método.
Afortunadamente, Unity proporciona una configuración de animación útil y algunos guiones para principiantes.
Vamos a agregar algunas herramientas proporcionadas por Unity a nuestro personaje zombie para que su animación y
su movimiento navmesh se comuniquen entre sí.
Ahora no necesita saber mucho sobre el sistema de animación para hacer esto, ya que las cosas proporcionadas por Unity
tienen toda la configuración hecha para usted.
Entonces, con esta conferencia, deberá descargar el StrafeSetPackage y arrastrarlo y soltarlo en su
carpeta de Activos.
Una vez que se importe, obtendrá una carpeta 'Animaciones' en sus Activos y
tendrá
todas las herramientas necesarias que necesitamos para animar a Stevie, para que pueda seguirnos adecuadamente y las animaciones se verán
agradables y suaves.
Si quieres usar tu propio personaje, necesitas un archivo FBX y un personaje que esté diseñado
para el sistema humanoide.
Ahora, si no eres un animador, puedes obtener un montón de personajes gratis de Mixamo. com.
Entonces vas a Mixamo. com y puede iniciar sesión con su cuenta de Adobe.
No necesita tener una cuenta paga, por lo que este es un servicio gratuito y puede seleccionar personajes.
También puedes seleccionar animaciones (pero no necesitas ninguna animación para este
ejercicio) y puedes elegir el personaje que más te guste y luego hacer clic en [DESCARGAR] una vez que aparezca
y te dará la opción de descargar Unidad, que está justo ahí y luego obtienes tu personaje y lo arrastras y lo sueltas
en tu carpeta de Activos.
Luego puede arrastrarlo y soltarlo en su escena y luego puede aplicar exactamente los mismos procesos que estamos
haciendo aquí
y también convertirlos en un Agente de malla de navegación.
Cuando traiga por primera vez su archivo FBX de Mixamo a Unity, simplemente arrástrelo y suéltelo desde el
escritorio o donde sea en su carpeta de Activos y le pedirá que arregle lo normal, así que seleccione [Solucionar ahora].
Si no lo hace, perderá todas las conexiones con las texturas, que es algo que no desea.
Vas a terminar con un 'componente modelo' y luego un '. fbm folder 'que contiene todas las texturas y luego
también una' carpeta de materiales '. Entonces este de aquí es el que tiene todas tus
animaciones y componentes y todo lo que está adjunto. Lo que quieres hacer es agarrar eso y arrastrarlo a tu escena, lo que
ahora hará que tu personaje forme parte de tu juego.
Cuando hagas eso, sucederá algo realmente extraño con los materiales y todas las normales habrán cambiado las cosas
al revés y lo harán parecer un poco extraño. Para solucionarlo, vaya a la carpeta Materiales
y seleccione cada uno de los materiales (shift-select), vaya a 'Shader' en el Inspector, 'Legacy Shaders' y seleccione uno de
los shaders heredados. Por lo general, elijo 'Bumped Diffuse', que es el mejor. Eso solucionará tu problema de
sombreado en el personaje.
Ahora hay otras 2 cosas que debes hacer para preparar a tu personaje en el mismo estado
que nuestro personaje zombie que hemos estado usando, para que funcione con esta configuración.
Entonces, seleccione el personaje en la Jerarquía, encontrará el 'Animador' allí y aquí es donde arrastra
ese controlador de Locomoción,
más adelante aquí.
Pero lo importante en este punto es que marque esta casilla 'Aplicar movimiento de raíz' para que sea
la animación la que impulse a su personaje a medida que se mueve.
La otra cosa que debes hacer es convertir a tu personaje en un humanoide. Eso sucede en Activos, donde se selecciona tu
personaje, luego en el Inspector encontrarás 3 pestañas: Modelo, Aparejo y Animaciones. Queremos la pestaña Aparejo y luego ir
a Tipo de animación y establecerlo en 'Humanoide' (por
defecto, aparecerá como 'Genérico') y luego
hacer clic en [Aplicar]. Ahora ese nuevo personaje está listo para hacer exactamente lo que hicimos con nuestro
modelo de zombie, así que desde aquí puedes ir y agregar el Nav Mesh Agent y puedes agregar todos los demás componentes.
Así que es una descripción muy rápida de cómo obtener un modelo de Mixamo aquí y si
no eres un animador, entonces Mixamo es un recurso fantástico para tener acceso.
Entonces tenemos nuestro personaje. Aquí está Stevie configurada exactamente de la misma manera que en la conferencia anterior.
Ella tiene un Animador en ella que controlaba su animación para caminar que ya le di y luego
el script ChasePlayer y el Nav Mesh Agent. Lo que vamos a hacer ahora para
cambiar su comportamiento es modificar el zombi aquí, en el Animador.
Lo que está buscando (en esta nueva carpeta de Animaciones que habría descargado) es
el controlador 'Locomoción'.
Hay 2 en la mía.
Si tienes 2, puede haber uno con un '1' al final.
Solo ignora eso.
De hecho, podría eliminarlo para deshacerme de él.
Solo queremos este que sea LocomotionController.
Ahora con eso, seleccionemos a Stevie nuevamente, desea arrastrar y soltar eso en el lugar
en el Controlador Animator.
Lo último para que esto funcione es ... Si echó un vistazo a su
carpeta de Activos, cuando importó el StrafeSetPackage, también obtendrá una carpeta de Scripts que tendrá algunos scripts.
El que quieres es el LocomotionScript.
Arrástrelo y suéltelo en Stevie y eso permitirá que el sistema de animación que acaba de agregar
hable con el navegador, determine dónde debe estar el personaje y asegúrese
de que la velocidad a la que se mueve esté coordinada con la velocidad.
de la animación Ahora, si presiona Reproducir y sale a caminar (caminaré hacia atrás para que pueda ver lo que está
sucediendo), puede ver que Stevie está castigada. Ella no se está deslizando.
Claro,
sus animaciones han cambiado porque hemos tenido que usar las personalizadas que la unidad nos ha dado para
este paquete en particular.
Observe cómo su cilindro navmesh
(el verde) está en una posición bastante diferente a su posición real porque lo que está sucediendo en ese script es
que está negociando la posición del modelo y el Agente de malla de navegación y está obteniendo
un promedio entre de donde poner los modelos.
Entonces se verá realista mientras se mueve y te persigue al mismo tiempo.
Hay otros dos scripts que vienen con ese StrafeSetPackage.
Hay un script 'ClickToMove' y un script 'LookAt'. El script ClickToMove hará que Stevie se mueva a la ubicación en
la que ha hecho clic en la malla de navegación, como ya lo hicimos en el pasado.
Sin embargo, echemos un vistazo a eso.
Entonces, lo que tendremos que hacer es apagar nuestro controlador en primera persona y agregar otra
cámara a la escena. Entonces, haga clic derecho en la Jerarquía y seleccione Cámara.
Asegúrate de que no esté nada ajustado y probablemente quieras configurar tu cámara
para ver la vista de la escena allí. Con la cámara
seleccionada, GameObject> Alinear con vista.
Ahora, cuando presionamos Reproducir, podremos hacer clic aquí y hacer que Stevie se mueva. Ahora seleccione Stevie y vamos a desactivar
el script ChasePlayer porque ya no podrá encontrarnos para perseguirlo y no
lo usaremos.
Vamos a usar este 'ClickToMove', así que arrástrelo al Inspector y adjúntelo a su agente.
El script ClickToMove usa la cámara principal para proyectar el rayo en el área de navegación y para hacerlo y
encontrarlo, asegúrese de tener su cámara configurada y etiquetada como MainCamera porque hemos apagado el
controlador FPS para que la
cámara principal ahora se habrá ido. Necesitamos crear uno nuevo para asegurarnos de que se
pueda encontrar usando esa etiqueta MainCamera.
OK ahora presione Play y podrá hacer clic en el entorno y Stevie se moverá.
Ahora puede ver que tiene varios tipos diferentes de animaciones que puede usar.
¿Podemos subir las escaleras? Puede moverse hacia los lados y también puede moverse hacia adelante y hacia atrás y
también en el lugar y tiene una animación inactiva para cuando se detiene.
Entonces eso es lo que obtendrás en ese set.
Ahora lo último que tienes también es este script LookAt.
Le permite mover la cabeza de su personaje para mirar hacia dónde va, por lo que lo
hace aún más realista.
Así que agarra esa mirada y vamos a ponerla aquí.
Arrástrelo y suéltelo en Stevie.
Lo que necesita configurar en este LookAt es la cabeza.
Necesita saber dónde está esa articulación en tu personaje.
Entonces, si obtenemos a Stevie y desplegamos la Jerarquía, estás mirando debajo de 'Caderas'.
Así que este es el aparejo que está ocurriendo dentro del personaje (los huesos del personaje). Mire hacia abajo a través
de la columna vertebral y luego cuello y luego cabeza. Obtén la cabeza y arrástrala y suéltala en la 'ranura de la cabeza'
en el script LookAt y esto ahora controlará la cabeza del personaje usando el sistema de cinemática inversa incorporado que
está en la animación.
Así que presiona Play y es muy sutil, pero puedes ver
que ella gira la cabeza en la dirección en la que va.
Muy bien, ahora que tienes 1 Stevie configurado, puedes duplicarlo si quieres y tener 2
o más.
Presiona Play y actuarán como Agentes Nav Mesh ... bien porque son Agentes Nav Mesh. Por lo tanto, mantendrán su
distancia el uno del otro, mientras intentan moverse y también usan ese conjunto de animación que
nos dio Unity.
Si está interesado en agregar sus propias animaciones y tiene sus propias animaciones, necesita
un conjunto de 9 animaciones y se llaman Strafe Set.
Por lo tanto, son movimientos para un estado particular de su agente (por ejemplo, correr) pero hay
9 fases diferentes de ejecución. Así que hay hacia adelante, hacia atrás, corriendo en el lugar y luego
de lado a lado y luego todas las direcciones diagonales también.
Ese es todo el set de strafe. Para saber dónde está configurado,
si va a la carpeta Animaciones y luego hace doble clic en nuestro LocomotionController para abrir
su ventana Animator.
Todo este control que está sucediendo ocurre dentro del estado 'Mover'.
Si hace doble clic en eso y lo abre, encontrará que es un árbol de mezcla.
Es bastante complejo y probablemente no sea una buena idea andar por ahí a menos que sepa sobre árboles de mezcla.
Pero si tiene todas esas animaciones y desea cambiar las animaciones, le sugiero que
no cambie ninguna de las 'configuraciones', pero las animaciones en sí están aquí.
Así que esto es como correr 0 grados, que sería hacia adelante, luego tienes que correr a 90 grados
y luego tienes diagonalmente hacia adelante, diagonalmente hacia atrás ...
Así que esto es lo que se llama Strafe Set y de ahí viene ese nombre.
Si tienes tus propias animaciones, puedes arrastrarlas y soltarlas aquí para configurarlas para tu personaje.
Pero estos han sido creados especialmente para trabajar con este sistema, lo que lo hace ver muy realista.
Entonces, si realmente desea saber más sobre esto, verá un enlace en la pantalla desde donde
se puede descargar este conjunto, en la documentación de Unity.
Si eres un animador familiarizado con todo esto, entonces te ayudará a entenderlo en otro nivel.
De modo que se trata de configurar animaciones complejas de un personaje y usar la navegación por navegación y la navegación para hacer que esas cosas
se comuniquen entre sí y se vean coordinadas.