-
Alinear huesos y piel
Hola a todos, bueno, no sé si mi duda va por aquí. Que montón de mensajes, creo que me va a llevar un par de semanas leérmelo todo.
Tengo una duda muy tonta, pero que llevo dos días dándome contra las paredes. Necesito alinear un objeto con un hueso.
Imaginemos un ejemplo muy tonto: tengo un script que a partir de la selección de un hueso (bone) y una piel (un tubo, por ejemplo) alinea y posiciona la piel con el hueso.
Con el posicionado y la selección no tengo problema, pero no consigo alinear el hueso con el tubo. He intentado eliminar escalas, normalizar, matrices inversas, asignar rotaciones de forma directa, pero nada. Creo que el problema está en los vectores de dirección que no apuntan a donde yo quiero, pero no tengo ni idea de cómo solucionarlo.
A ver si alguien alguna vez lo ha hecho y puede ayudarme, me vendría muy bien. Gracias.
-
Alinear huesos y piel
Si quieres alinear los pivotes de un objeto, ve a la pestaña Hierarchy y escoge la opción affect pivot only. Modifica la orientación del pivote, y listo.
¿Es eso lo que buscas?
-
Alinear huesos y piel
Pues a ver, es una cosa muy sencilla: Creo un hueso, solo uno, en 3d maxstudio 9. Y creo un tubo y me gustaría asignarle la posición y la alineación del hueso de forma automática con el lenguaje Maxscript, o sea, a partir de un script, sin usar la interfaz. La posición no me da problema, pero en cuanto a alinearlos aún no ha habido suerte y he probado con todo:
-Tubo, rotation = bone, rotation.
About bone, pivot rotate tubo bone, rotation.
Tubo, rotation = in cordsys local bone, rotation.
Hasta con un script que pillé por el foro sobre alinear.
Y muchas cosas más, es que ya ni me acuerdo.
Consigo alinear, por ejemplo, dos tubos. Pero un hueso y un tubo no lo consigo. Espero haberme explicado mejor. Gracias. Saludos.
-
Alinear huesos y piel
El problema es que, por defecto, el valor height de las primitivas suele corresponder con el eje Z local. Con los huesos, es el eje por el que apunta en su dirección longitudinal. Prueba con esto a ver qué tal funciona:
Código:
$tube01.transform = $bone01.transform.
$tube01.objectoffsetrot = (eulerangles 0 90 0)
-
Alinear huesos y piel
Intenta esto:
$tubo, transform = $bone, transform.
-
Alinear huesos y piel
Phew_in, eso alinea los pivotes de los objetos, pero el tubo, por sus coordenadas locales, sigue estando perpendicular al hueso. Necesitas rotar el objeto (sin el pivote) 90 grados para completar el proceso.
-
Alinear huesos y piel
Ah, juraría que con asignar la transformación era suficiente, como no tengo un max por aquí supongo que, estas en lo correcto, gracias por la aclaración.