De dónde el script saka el valor para saber si debe hacerlo stretchable.
En un Rig nunca nunca nunca escales los huesos usando escalar. Todos los huesos tienen una propiedad llamada length, no height, que no se puede animar, pero sí consultar. En una cadena de huesos (1>2>3>4), la longitud del hueso 1 viene dada por la posición x del hueso dos, y así sucesivamente. Dependiendo si la cadena de huesos es FK o IK la expresión que usaras para la posición x de ese hueso 2 será distinta, pero parecida.
Si quieres un sistema IK autostretchable, haz lo siguiente:
-Crea un sistema de tres huesos (dos + nub) + IK.
- Lo que quieres es un sistema que al mover el IK más, allá del brazo estirado, éste se escale. Es decir, si:
A = longitud del hueso 1
B = longitud del hueso 2.
C = a + b = distancia máxima del IK hasta el hueso 1 sin escalar.
Entonces.
Código:
If (distance start, pues end, pos) > ($bone01.length + $bone02.length)
Then (distance start, pues end, pues - $bone01.length + $bone02.length) /2
Else $bone01.length
éste es el código que usaras en el segundo y el tercer hueso de la cadena. Es decir, si la distancia que hay entre el primer hueso y el IK es mayor que la suma de la longitud de los huesos, entonces la posición del segundo hueso equivale a esa distancia menos la suma de las longitudes partida por dos.
Si sólo haces en el hueso 2 verás cómo el hueso se queda corto al estirar el manipulador IK, con lo cual debes copiar y pegar este controlador en el hueso 3 también. Vaya, ten en cuenta que start, Pos y end, Pos equivalen a la posición de las variables start y end, que son respectivamente el hueso 1 y el IK.