NOVEDADES IMPORTANTES

Acceso a todos los contenidos

Hace unos meses decidimos suspender nuestra actividad de formación online en Digital Learning SL (propietaria de esta web).

Desde entones hemos mantenido operativos nuestra plataforma de teleformación y webs de contenidos Academia Android y Digital Learning, habilitando un acceso libre y gratuito a todos estos recursos, incluyendo cursos y contenidos Premium que antes requerían un registro y pago previo, lo que ha propiciado un volumen de visitas constante de usuarios que consultan esta formación.

Venta-traspaso de los contenidos

Creemos que estas webs por sus contenidos, posicionamiento SEO y atracción de tráfico (junto a sus cuentas en redes sociales asociadas, incluyendo Twitter y Facebook de nuestro curso de Community Manager) pueden ser una oportunidad para emprendedores o compañías de diversos ámbitos (formación, marketing y publicación online, desarrollo software,…) que quieran:

  • Captar usuarios, alumnos o clientes para sus proyectos, productos y servicios.
  • Comercializar los contenidos bajo múltiples fórmulas: venta de publicidad, modelos freemium o de pago, suscripciones…
  • Crear un nuevo proyecto a partir de esta infraestructura de recursos.

Si tú o tú empresa estáis interesados en adquirirlos, ofrecemos su traspaso en propiedad exclusiva. Puedes contactar conmigo en «contacto@digitallearning.es» (por favor entiende que los correos que no vengan suficientemente identificados no vamos a atenderlos). Gracias.

Manuel Cabello (Socio-Director de Digital Learning/Academia Android)

Este es el número de tutoriales publicados:

Pincha en los textos de los contadores de Tutoriales publicados, Premium o Series de tutoriales para tener un detalle de las publicaciones que comprenden.

Desde hace unos meses, todos los contenidos, incluidos los Premium, son accesibles libre y gratuitamente.

  • Premium
  • Acceso libre
130
Acceso libre
126
Premium

Algunos datos sobre los contenidos que hemos publicado hasta la fecha:

74
Videos
61
Proyectos descargables
contacto[arroba]digitallearning.es

Físicas en Unity 3D: Asistente Ragdoll

Post Series: Conociendo Unity3D (VI)

Continuamos con la implementación de físicas en personajes y objetos de un videojuego en Unity 3D describiendo el asistente Ragdoll. Haremos primero una breve introducción de esta funcionalidad, mostrando en un pequeño video el efecto que produce, para luego continuar con la descripción de su implementación.

Descripción de Asistente Ragdoll

El asistente Ragdoll nos permite simular de manera más realista un cuerpo inerte (modelo de personaje humanoide) cayendo al suelo de la escena, sin necesidad de tener que construir una animación que represente dicha acción. Nos facilita por tanto la interacción de nuestro personaje con el medio que le rodea, aplicando físicas y restricciones a las diferentes partes de ese modelo (pelvis, hombros, manos, brazos, dedos etc.) dotándola a cada una de su propia respuesta ante físicas de dicho medio.

Antes de pasar a describir la implementación del asistente Ragdoll, podemos hacernos una idea de este efecto en el siguiente video:

Implementación Asistente Ragdoll

Se comenzará en primer lugar por seleccionar el asistente Ragdoll a través del menú GameObject > 3D Object > Ragdoll…

Menu Ragdoll

Se mostrará la siguiente ventana donde se podrán establecer las referencias a las distintas partes de modelo humanoide:

Wizard Ragdoll

Para mayor claridad, se mostrará el proceso completo a partir del recurso «Raw Mocap Data», que nos proporciona un humanoide a modo de prototipo, y que podrá descargarse gratis desde la asset store de Unity: https://www.assetstore.unity3d.com/en/#!/content/5330

Humanoide Raw Mocap Data

Una vez se ha descargado y añadido a la escena el humanoide, se deberán establecer las referencias de las partes del modelo al asistente Ragdoll, arrastrando y soltando cada uno de los objetos desde la ventana «Hierarchy». Desde el propio asistente se recomienda que el modelo esté en posición de T (de pié y brazos abiertos), y que los ejes estén en la dirección correcta.

Además de las referencias a las diferentes partes del modelo establecidas, deberán indicarse una serie de valores para las propiedades Total Mass (masa a repartir entre todos los huesos del modelo, que el propio asistente se encargará de aplicar de manera lógica), Strength (resistencia del modelo) y Flip Forward (si se activa se basculará el personaje hacia adelante).

Para comprender de manera de una manera más óptima la asignación de las referencia a partir del modelo descargado, se recomienda revisar el tutorial sobre Mecanim, que publicaremos más adelante en este mismo curso, con las convenciones propuestas por Unity para la estructura de modelos

Convencion EstructuraWizard Ragdoll Referencias

Finalmente, se pulsará sobre el botón «Create» del asistente, y a continuación si pasamos al modo juego, se podrá apreciar como el personaje caerá al suelo desplomado (ver video del inicio). Para el funcionamiento del asistente Ragdoll con el modelo seleccionado, no deberá reproducir ninguna animación de manera automática.

Una vez realizados estos pasos, será posible crear un prefab en los recursos del proyecto, arrastrando el personaje gestionado con el asistente Ragdoll, y así poder instanciarlo cada vez que se estime oportuno.

Como se puede apreciar en el siguiente diagrama, cada una de las referencias establecidas en el asistente, implementarán nuevos componentes por cada una de las partes del modelo utilizado. Se utiliza como ejemplo el GameObject «Spine», dónde podrá apreciarse como tras crear un personaje Ragdoll, cada uno de las partes referenciadas implementará tres componentes, además del Transform por defecto:

Diagrama Antes y Despues de Ragdoll

  • Box Collider: colisionador que define un área con forma de cubo alrededor del objeto.
  • Rigidbody: componente que permite añadir a un GameObject algunas características que tendría un cuerpo en la realidad, como podrían ser masa, gravedad, fricción, etc.
  • Character Joint: componente que permite limitar la unión entre dos objetos, de gran utilidad para diseñar articulaciones que giren alrededor de un eje (se recomienda visualizar los apartados referentes a los componentes Fixed Joint e Hinge Joint para comprender con más exactitud su finalidad)

En la siguiente tabla se describen las propiedades que pueden configurarse dentro del componente Character Joint:

Propiedad
Función
Connected Body Referencia al objeto que implemente un rigidbody para la articulación. En caso de no asignarse ninguna referencia, se conectará con el mundo.
Anchor Punto del espacio local del GameObject alrededor del cual girará el conjunto.
Axis Giro de los ejes.
Auto Configure Connected Anchor Al activar esta opción, la posición del ancla conectado será calculada automáticamente para coincidir con la posición global de la propiedad anchor.
Connected Anchor Configuración manual de la posición del ancla conectado.
Swing Axis Dirección del eje en el espacio local, a partir del cual se producen las oscilaciones del objeto.
Swing Axis Define los valores para el eje de oscilación.
Low Twist Limit Límite inferior de la articulación.
High Twist Limit Límite superior de la articulación.
Swing Limit Spring Esta propiedad define los límites el movimiento del eje, estableciendo los valores de fuerza del muelle necesaria para mantener dos objetos unidos (spring) y la fuerza de amortiguación utilizada para disminuir el resorte (damper).
Swing 1 Limit Límite inferior definido alrededor de la oscilación del eje.
Swing 2 Limit Límite superior definido alrededor de la oscilación del eje.
Enable Projection Esta opción permite activar la proyección en las articulaciones.
Projection Distance Distancia de proyección de la articulación.
Projection Angle Ángulo de proyección de la articulación.
Break Force Fuerza que debe aplicarse para romper la unión.
Break Torque Torsión que debe aplicarse para romper la unión.
Enable Collision Si se activa esta opción, se habilitará la detección de colisiones entre cuerpos conectados por una articulación.
Enable Preprocessing Opción que permite ayudar a un procesamiento previo para configuraciones no posibles.

Nota: las propiedades de tipo limit (Low Twist Limit, High Twist Limit, Swing 1 Limit y Swing 2 Limit) permiten definir valores límite (limit), rebote (bounciness) y distancia de contacto (contact distance).

En la siguiente publicación mostraremos todo este proceso de implementación en un videotutorial.