Publicado en 28 de marzo, 2017
Unity – Posicionamiento de pies a suelo con IK
Los IK de Unity es una herramienta que permite poder controlar a donde mira la cabeza o posicionar los pies o las manos a una posición o rotación y se mezcla con las animaciones, no explicare usar los IK pero aquí dejo la documentación oficial.
Se pueden utilizar los IK para posicionar el pie a la altura de la plataforma donde está tocando y también que tome la rotación de la plataforma. Entonces la lógica consiste en lanzar un RayCast desde la posición del pie hacia abajo y en donde impacte el Raycast, y posicionar el pie con IK en donde impacto el Raycast, esto es la teoría básicamente.
Ahora puntos importantes a considerar:
- Al posicionar el pie en donde impacto el Raycast el pie estará dentro del suelo un poco porque los huesos del pie no están exactamente en la planta del pie (Imagínate si es una mujer con tacones), entonces tienes que sumarle un offset para compensar esta parte.
- El Raycast tiene que ser lanzado desde donde se encuentra el pie y un poco más arriba. Esto se puede solucionar usando ‘GetIKPosition(AvatarIKGoal.RightFoot);’ del animator.
- El Raycast es recomendable usar con LayerMask para evitar que termine colisionando con el mismo personaje.
- Si el Raycast no impacto con nada, no asignamos una posición (Se deja según la animación indique).
Mi proyecto consiste en un script que solo es necesario poner en un personaje junto el Animator para que empiece a funcionar y una pequeña escena (el gif) para verlo en acción.
El proyecto lo tengo en GitHub: IKFoot_Floor-Unity
Gracias por tomarte tu tiempo en explicar, llevo días buscando y solo veo como usarlo, no explicaciones de que es exactamente