Parte del Animator, pero en 3D#
Ya viste el Animator (estados, transiciones, parámetros). En 3D con personajes humanoides se añaden tres piezas: el Avatar (esqueleto), los Blend Trees (mezcla suave) y el root motion (el movimiento sale de la animación). Y para ajustes finos, el IK.
Humanoid y Avatar: reutilizar animaciones#
Cuando importas un modelo de personaje, en sus Import Settings → pestaña Rig, pon Animation Type → Humanoid. Unity crea un Avatar: un mapa de "este hueso es el brazo izquierdo, este la cabeza...".
Con Avatares humanoides, una animación hecha para un personaje funciona en cualquier otro humanoide, aunque tengan proporciones distintas. Puedes comprar un pack de animaciones (de Mixamo, por ejemplo) y aplicarlas a tu personaje sin rehacerlas. Esto se llama retargeting y ahorra una cantidad brutal de trabajo.
Blend Trees: mezclar locomoción#
Un Blend Tree mezcla varias animaciones según un parámetro, en vez de saltar bruscamente entre estados. El caso estrella: caminar/correr.
- 1D: un parámetro (
Velocidad) mezcla Idle → Andar → Correr. A velocidad 0 se ve Idle; a 0,5 una mezcla de andar; a 1 correr. - 2D: dos parámetros (
VelocidadX,VelocidadY) mezclan movimiento en 8 direcciones (strafe), típico en shooters en tercera persona.
Se crea dentro del Animator: clic derecho → Create State → From New Blend Tree. Desde código solo alimentas los parámetros:
anim.SetFloat("Velocidad", velocidadNormalizada, 0.1f, Time.deltaTime); // con suavizadoSetFloat("Velocidad", valor, tiempoDeAmortiguacion, Time.deltaTime) suaviza el cambio en vez de saltar de golpe. Da transiciones de locomoción mucho más naturales que asignar el valor directamente.
Root Motion: ¿quién mueve al personaje?#
Dos filosofías para el desplazamiento:
| Root Motion | Movimiento por código | |
|---|---|---|
| Quién mueve | La propia animación | Tu script (Move, velocidad) |
| Precisión | Menos control, muy realista | Control total |
| Deslizamiento de pies | Mínimo (bien hecho) | Posible si no cuadra la velocidad |
| Ideal para | Animaciones cinemáticas, melee | Plataformas, shooters, control preciso |
Se activa con la casilla Apply Root Motion del Animator. Para juegos de acción con control fino, muchos prefieren mover por código y desactivar root motion; para animaciones muy realistas (ataques con desplazamiento), root motion brilla.
IK: ajustar poses en tiempo real#
El IK (Inverse Kinematics) coloca partes del cuerpo hacia un objetivo: los pies que se adaptan al terreno inclinado, la mano que agarra un pomo exacto, la cabeza que mira al jugador. En Unity moderno se hace con el paquete Animation Rigging (constraints como Two Bone IK, Multi-Aim), más potente y visual que el viejo OnAnimatorIK.
El problema clásico en terreno irregular: los pies atraviesan el suelo o flotan. Un Two Bone IK Constraint por pierna, con un raycast al suelo, ajusta cada pie a la altura real. Es lo que separa un personaje que "pisa" de uno que "patina".
Errores frecuentes#
- No configurar el Rig como Humanoid y perder el retargeting.
- Saltos bruscos entre andar y correr por no usar Blend Trees.
- Mezclar root motion con movimiento por código sin querer (el personaje se mueve el doble o "patina").
- Esperar IK sin instalar Animation Rigging.
- Escala del modelo incorrecta al importar (animaciones que se ven raras).
Ponte a prueba#
Resumen#
Para animar personajes 3D: configura el modelo como Humanoid (Avatar) para reutilizar animaciones (retargeting), usa Blend Trees (1D/2D) para mezclar locomoción con SetFloat amortiguado, decide entre root motion (realista) y movimiento por código (control), y añade IK con Animation Rigging para pies en el terreno o manos precisas. Todo se apoya en el Animator.