Hay tres pasos principales creando un personaje humanoid animado desde cero: modelar, rigging y skinning.
Este es el proceso para crear su propio humanoide mesh en un paquete 3D de modelado - 3DSMax, Maya, Blender, etc. Aunque este es un tema aparte, hay varios pasos que puede seguir para asegurar que un modelo animado funcione bien en un proyecto de Unity.
Este es el proceso de crear un esqueleto con articulaciones para controlar los movimientos de su modelo.
Los paquetes 3D proveen un número de maneras para crear articulaciones para su rig humanoide. Esto va desde esqueletos bípedos ya hechos que usted escala para que encajen con su mesh, hasa las herramientas para la creación individual de huesos y apadrinamiento para crear su propia estructura de huesos. Para que funcione en Mecanim, las caderas deberían ser el elemento raíz de la estructura de huesos. Un mínimo de cincuenta huesos son requeridos en el esqueleto.
La jerarquía de huesos/articulaciones debería seguir una estructural natural para el personaje que está creando. Dado que los brazos y las piernas vienen en pares, usted debería utilizar una convención consistente para nombrarlas (eg, “arm_L” para el brazo izquierdo, “arm_R” para el brazo derecho, etc). Unas estructuras posibles para la jerarquía serían:-
Es el procesos de adjuntar el mesh al esqueleto.
Skinning involucra unir los vértices de su mesh a los huesos, ya sea directamente (rigid bind) o con influencias para mezclar a un número de huesos (soft bind). Diferentes paquetes de software utilizan diferentes métodos, eg, asignar vértices individuales y pintando el peso de la influencia por hueso al mesh. La configuración incial es típicamente automatizada, digamos encontrando la influencia más cercana o utilizando “heatmaps”. Skinning usualmente requiere una cantidad justa de trabajo y de pruebas con animaciones con el fin de asegurar resultados satisfactorios para la deformación de la piel. Algunas pautas generales para este proceso incluye:
Con el fin de sacarle ventaja al sistema de animación de humanoides de Mecanim y del “retargeting”, usted necesita tener un mesh tipo humanoide rigged y skinned.
El model de un personaje está por lo general hecho de polígonos en un paquete 3D o es convertido a polígono o un mesh triangular, de un tipo de mesh más complejo antes de ser exportado.
Una joint hierarchy o skeleton que defina los huesos dentro del mesh y su movimiento en relación de uno con el otro, debe ser creada para controlar el movimiento de un personaje. El processo para crear la joint hierarchy es conocido como rigging.
El mesh o skin (piel) debe estar conectada a la joint hierarchy con el fin de definir qué partes del mesh del personaje se van a mover cuando una articulación (joint) determinada es animada. El proceso de conectar el esqueleto al mesh es conocido como skinning.
Hay tres maneras principales de obtener modelos humanoides con el Sistema de Animación de Mecanim:
Utilice un sistema de personaje procesal o un generador de personajes como lo es Poser, Makehuman o Mixamo. Algunos de estos sistemas van a rig, y skin su mesh (eg, Mixamo) mientras que otros no lo harán. Adicionalmente, estos métodos pueden requerir que usted reduzca el número de polígonos en su mesh original para que sea adecuado su uso en Unity.
Compre ejemplos demos y contenido de los personajes de la Unity Asset Store.
También, usted puede obviamente preparar su personaje desde 0.
Unity importa un número de diferentes formatos de archivos 3D genéricos y nativos. El formato que recomendamos para exportar y verificar su modelo es FBX 2012 ya que le permite a usted:
El Character Controller es principalmente utilizado para controles de jugador de tercera o primera persona que no hace uso de la física del Rigidbody.
Propiedad: | Función: |
---|---|
Slope Limit | Limita el collider para que solo suba pendientes que sean menos empinadas (en grados) que un valor indicado. |
Step Offset | El personaje va a configurar una escalera solamente si está cerca al piso que el valor indicado. Este no debe ser mayor que la altura del Character Controller o va a generar error. |
Skin width | Dos Colliders pueden penetrarse entre sí tan profundo como el ancho de su piel (Skin Width). Mayores Skin Widths van a reducir la fluctuación de fase. Bajo Skin Width puede causar al personaje en quedarse atrapado. Un buen ajuste es hacer este valor 10% del Radius. |
Min Move Distance | Si el personaje intenta moverse debajo del valor indicado, no se moverá en absoluto. Esto puede ser utilizado para reducir la fluctuación de fase. En la mayoría de situaciones este valor no debería ser dejado en 0. |
Center | Esto va a desplazar el Capsule Collider en el espacio del mundo, y no va a afectar qué tanto el Personaje hace pivotes. |
Radius | Longitud del radio del Capsule Collider. Este es esencialmente el ancho del collider. |
Height | La altura de la Capsule Collider del personaje. Cambiar esto va a escalar el collider a lo largo del eje Y en ambas direcciones positivas y negativas. |
Los controles tradicionales de primera persona estilo Doom no son físicamente reales. El personaje corre 90 millas por hora, para inmediatamente y se convierte en una moneda de diez centavos. Debido a que es tan ficticio, el uso de Rigidbodies y física para crear este comportamiento es impráctico y se sentirá mal. La solución es el Character Controller especializado. Es simplemente una cápsula con forma de Collider que se le puede decir que se mueva en alguna dirección desde un script. El Controller luego va a llevar a cabo el movimiento pero se limitado por las colisiones. Éste se deslizará a lo largo de paredes, caminar escaleras (si son más bajas que el Step Offset) y caminar en pendientes dentro de un _Slope Limit.
El Controlador (Controller) no reacciona a fuerzas por sí mismo y no empuja automáticamente los Rigidbodies.
Si usted quiere empujar los Ridibodies u objetos con el Charaacter Controller, usted puede aplicar fuerzas a cualquier objeto que colisione vía la función OnControllerColliderHit() a través de scripting.
Por otro lado, si usted quiere que su personaje del jugador sea afectado por física entonces usted podría mejor utilizar un Rigidbody en vez de un Character Controller.
Usted puede modificar la Height y el Radius para que encaje con el mesh de su personaje. Es recomendado siempre utilizar acerca de 2 metros para un personaje que se parezca a un humano. Usted puede también modificar el Center de la cápsula en caso de que su punto de pivote no esté exactamente en el centro de su Personaje.
Step Offset puede afectar esto también, asegúrese de que este valor esté entre 0.1 y 0.4 para un humano de tamaño de 2 metros.
Slope Limit no debería ser muy pequeño. A veces utilizar un valor de 90 grados funciona mejor. El Character Controller no será capaz de escalar paredes debido a la figura de la cápsula.
El Skin Width es una de las propiedades más críticas para tenerla bien cuando ajuste su Character Controller. Si su personaje se queda atrapado, esto debe ser debido a que su Skin Width sea muy pequeño. La Skin Width le permitirá a sus objetos poco a poco entrar el Controller pero quita la fluctuación de fase y previene que se quede atrapado.
Es una buena práctica mantener su Skin Width al menos mayor que 0.01 y más que el 10% de su Radius.
Nosotros recomendamos mantener Min Move Distance en 0.
Vea la referencia de script del Character Controller Aquí
Usted puede descargar un proyecto ejemplo mostrando la per-configuración animada y character controllers moviéndose del área Resources en nuestra página web.
Hola a todos,una vez mas vengo con este tutorial de unity en el que les voy a enseñar a agregar un personaje 3d (en tercera persona) ya que un user me ha pedido ayer que le enseñe y eso es lo que
are,y también a agregar ese famoso mini mapa que se puede encontrar en muchos juegos tipo grand theft auto,etc. Bueno empecemos.
Agregando un personaje 3D.
Bueno antes que nada decir que yo no me descargare ningún personaje,ya que usare el que viene por defecto pero ustedes pueden usar cualquier personaje descargado.
Bueno primero nos vamos a la pestaña "all prefab" para encontrar al personaje 3d.(lo señalo en la imagen).
Después mantenemos click izquierdo sobre el personaje y lo arrastramos hasta el terreno.
Ahora movemos el personaje hacia arriba ya que si se fijan bien la mitad del personaje esta bajo el suelo y si lo dejamos ahí se bugueara todo.
Bueno una vez echo esto solo queda presionar control + P para empezar a jugar.
Agregando un mini mapa.
Bueno para agregar un mini mapa antes que nada hay que agregar un personaje yo en este caso agregare al first person controller.
Bueno una vez agregado el jugador nos vamos a la pestaña "GameObject" después a "create other" y por ultimo seleccionamos "camera".
Bueno si se fijan en la parte de abajo a la derecha muestra lo que la cámara ve,debemos enfocar la cámara para que vea la cabeza del personaje, para esto tenemos las teclas W,E para acomodar la
cámara
Bueno una vez que hallan acomodado la cámara como les guste fijensen que en el inspector de la cámara a la derecha hay una opcion que se llama "Depth" y tiene un valor de 0
Ese 0 lo deben cambiar por un 4.
Una vez echo esto fijensen a la izquierda verán la cámara y el personaje.
devén mantener el click izquierdo sobre la cámara y arrastrarla arriba del personaje.
Bueno ahora vamos a la pestaña "game"
y verán que la vista de la cámara ocupa toda la pantalla,asi que hay que ajustarla con las opciones "X" e "Y" que están a la derecha hasta que la camara se acomode a donde les guste.
y ya tendrán su mini mapa echo.
1) Arranco con Zspheres
para darle ver bien las dimensiones que va a tener, como pueden ver va a ser un PJ SD.
2) Adaptative Skin, subdivido y despues acomodo un poco los poligonos.
Esto lo hago asi por que despues el modelo lo duplico, y sobre el duplicado uso dynamesh, asi no deformo nada al final con zremesh.
3) Dynamesh
Acá empiezo a retocar el tamaño por si algo no me gusto (como el tamaño de la cabeza xD)
4) Esculpido Cuerpo con Dynamesh
Acá ya agregue en otra subtool los ojos y deje la forma final del cuerpo.
5) Pinte el cuerpo para ver como iba quedando, y empece a agregar mas subtools para la ropa y accesorios
6) Personaje Final
Detalles High Poly = 3.067.008 Entre todas las subtools
Low Poly = 2.996 Entre todas las subtools
Después de Esto saque los UV del Normal map y el Texture map, lo hice automático con el plug del zbrush no junte nada eso lo hago en el personaje final.
7) GoZ a Maya
Sin Mapas
Con Mapas
8) El Rigg lo hice con Advanced Skeleton, es un plugg gratuito de auto rigg que te arma los Joints, IK y FK.
9) Controles Listos
10) Final: Personaje importado a Unity, con los mapas y las animaciones
Saque foto de estas animaciones por que no daba para hacer un video de 2 seg para mostrarlas, pero se ve bien que estan andando en Unity
Mi Charla de Desarrollo videogame en la CURN, en Cartagena.