Talleres Unity3D - Zbrush Tema: Agregar Personajes.

Preparando su propio personaje

Hay tres pasos principales creando un personaje humanoid animado desde cero: modelar, rigging y skinning.

Modelado

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.

  • Observe una topología sensible. La naturaleza exacta de una estructura “sensible” para su mesh es bastante sutil, pero por lo general debería tener en cuenta cómo los vértices y triángulos de su modelo serán distorsionados al momento de ser animados. Un topología pobre no le va a permitir mover el modelo sin tener una distorsión fea del mesh. Mucho se puede aprender estudiando los meshes 3D de los personajes existentes para ver cómo la topología es arreglada y por qué es así.
  • Sea consciente de la escala (scale) de su mesh. Haga una prueba de importación y compare el tamaño de su modelo importado con un “cubo de un metro” (meter cube) (el cubo primitivo estándar de Unity tiene un lado de una unidad, el cual puede ser tomado como un cubo de 1m para la mayoría de casos). Revise las unidades que su paquete 3D está utilizando ajuste las configuraciones de exportación para que el tamaño de su modelo esté en la proporción correcta a la del cubo. Si usted no tiene cuidado, es fácil crear modelos sin una noción de su escala y por consiguiente termine con un conjunto de objetos que están desproporcionados de tamaño cuando ellos son importados a Unity.
  • Ajuste el mesh para que los pies del personaje estén parados en el origen local o “punto de anclaje” (anchor point) del modelo. Debido a que un personaje típicamente camina en el suelo estando derecho, es mucho más fácil manejar su punto de anclaje (anchor point) (ie, so posición del transform) si está directamente en ese suelo.
  • Modele en una Pose-T (T-Pose) si puede. Esto ayudará a que el espacio ajuste los detalles del polígono dónde lo necesita (e.g las axilas). Esto también le ayudará posicionar su rig dentro el mesh.
  • Limpie su modelo. Dónde sea posible, cap holes (tape huecos), weld verts (soldé vértices) y remueva rostros ocultos, esto ayudará con el skinning, especialmente los procesos automatizados de skinning.
Skin Mesh, texturado y triangulado
Skin Mesh, texturado y triangulado

Rigging

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:-

  • HIPS (CADERAS) - spine (espina dorsal) - chest (pecho) - shoulders (hombros) - arm (brazo) - forearm (antebrazo) - hand (mano)
  • HIPS (CADERAS) - spine (espina dorsal) - chest (pecho) - neck (cuello) - head (cabeza)
  • HIPS (CADERAS) - UpLeg(Pierna Superior) - Leg (Pierna) - foot (pie) - toe (dedo del pie) - toe_end (extremo de los dedos del pie)
Esqueleto Bípedo, posicionado en una Pose-T
Esqueleto Bípedo, posicionado en una Pose-T

Skinning

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:

  • Utilizar un proceso automatizado inicialmente para configurar algunas cosas del skinning (vea los tutoriales relevantes en 3DMax, Maya, etc).
  • Crear una animación simple para su rig o importar alguna información de la animación para que funcione como una prueba para el skinning. Esto le debería dar una manera rápida de evaluar si el skinning se ve bien en movimiento.
  • Editar de manera incremental y re-afinar sus soluciones de skinning.
  • Apegarse a un máximo de cuatro influencias cuando utilice soft bind, ya que este es el número máximo que Unity puede manejar. Si hay más de cuatro influencias afectando parte de su mesh entonces al menos alguna información será perdida cuando reproduzca la animación en Unity.
Interactive Skin Bind, uno de los muchos métodos de skinning
Interactive Skin Bind, uno de los muchos métodos de skinning

Utilizando Personajes Humanoides

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.

  1. 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.

  2. 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.

  3. 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.

Fases para prepara un personaje (modeling (modelado), rigging, y skinning)
Fases para prepara un personaje (modeling (modelado), rigging, y skinning)

Cómo obtener modelos humanoides

Hay tres maneras principales de obtener modelos humanoides con el Sistema de Animación de Mecanim:

  1. 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.

  2. Compre ejemplos demos y contenido de los personajes de la Unity Asset Store.

  3. También, usted puede obviamente preparar su personaje desde 0.

Exportar & Verificar

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:

  • Exportar el mesh con la jerarquía esquelética, normales, texturas y animación.
  • Re-importar a su paquete 3D para verificar que su modelo animado haya sido exportado como usted esperaba.
  • Exportar las animaciones sin los meshes

Desarrollo Videogame

El Character Controller ( Controlador del personaje)

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.

Propiedades

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.
El Character Controller
El Character Controller

Detalles

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.

Ajustando su personaje

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.

No se quede atrapado

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.

Consejos

  • Intente ajustar su _Skin Width si usted encuentra que su personaje se está quedando atrapado frecuentemente.
  • El Character Controller puede afectar objetos utilizando física si usted escribe sus propios scripts.
  • El Character Controller puede no ser afectado por objetos a través de física.
  • Tenga en cuenta de que cambiar las propiedades del Character Controller en el inspector va a re-crear el controller en la escena, por lo que cualquier existente contacto Trigger se va a perder, y usted no va a obtener cualquier mensaje OnTriggerEntered hasta que el controller se mueva nuevamente.

[Curso unity] parte 3 agregar personaje 3d y un mini mapa

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

[Muestra] Personaje Zbrush a unity

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.

[Muestra] Personaje Zbrush a unity

[Muestra] Personaje Zbrush a unity

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

[Muestra] Personaje Zbrush a unity

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

[Muestra] Personaje Zbrush a unity

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

[Muestra] Personaje Zbrush a unity

[Muestra] Personaje Zbrush a unity

6) Personaje Final

Detalles High Poly = 3.067.008 Entre todas las subtools

[Muestra] Personaje Zbrush a unity

Low Poly = 2.996 Entre todas las subtools

[Muestra] Personaje Zbrush a unity

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

[Muestra] Personaje Zbrush a unity

Con Mapas

[Muestra] Personaje Zbrush a unity

8) El Rigg lo hice con Advanced Skeleton, es un plugg gratuito de auto rigg que te arma los Joints, IK y FK.

[Muestra] Personaje Zbrush a unity

9) Controles Listos

[Muestra] Personaje Zbrush a unity

10) Final: Personaje importado a Unity, con los mapas y las animaciones

[Muestra] Personaje Zbrush a unity

[Muestra] Personaje Zbrush a unity

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.