1 Archivos adjunto(s)
Orden interno del calculo de constraints
Buenas a todos. Hoy vengo con una duda, seré breve porque no tengo tiempo. (Primero, miramos la imagen adjunta). Ahora os identifico cada cosa.
null1 y null2 : son dos nulls animados, se mueven y tal y cual.
imp : es un implicito cubo con un 2 points constraint balanceado a 50%. Teniendo como objetivos a null1 y null2. Este constraint solo afecta a la posición de imp, pero no a su orientación.
root : pues eso, el root de una cadena de huesos de 1 solo hueso.
ef : el efector de dicha cadena. Con un position constraint a imp.
bone : es el hueso. La longitud del cual, es equivalente a la distancia entre root y imp (se puede decir, que es un hueso elástico). Bone es el padre de imp, de esta forma, imp mantiene siempre la misma orientación respecto bone.
¿Todo bien por ahora? Supongo que ya os imagináis cómo funciona eso, ¿verdad?
Pues no, no funciona, al menos, a veces. Tengo una docena de jerarquías identicas a esa. De las cuales, 2 o 3, siempre fallan. Y no tiene por qué ser las mismas, ni la misma cantidad. A veces es solo 1, y otras 4.
Lo curioso es que el problema creo que se viene dado al orden en los que XSI calcula los constraints de 2 points y position. Lo que ocurre, es que el ef, que en teoría debería estar siempre en la misma posición que imp. Aparece siempre en la posición del frame anterior, bueno, para liar más la marrana, cuando digo anterior, me refiero en donde estaba instantes antes. Osea, cuando el time line avanza, ef en el frame 45 está en la posición que tenía imp en el frame 44. Si el time line retrocede, ef en el frame 93, está en la posocion de imp en el frame 94.
Parece como si primero calculase el constarint de posición de ef y después el del imp, sin volver a actualizar ef, que queda desfasado.
Puedo prosegir con los expedientes-x.
Si arreglo una de esas jerarquías (borro y creo de nuevo el constraint de posición de ef), el 95% de las veces, se arregla en ese ef, pero peta automáticamente otra jerarquía que hasta el momento funcionaba correctamente.
Qué más puedo decir, la verdad es que ya no se ni cual es mi duda. Solo digo que aceptaría todo tipo de comentarios, sugerencias o ayudas que hagan avanzar mi maldito setup. Que es muy frustrante atascarse con misterios como ese. Gracias de antemano.
-- IMÁGENES ADJUNTAS --
https://foro3d.com/attachment.php?attachmentid=19906
Orden interno del calculo de constraints
Vaya, los misterios de los softwares, entiendo lo que te pasa, pero en teoría debería funcionar, a no ser que algún componente lo tengas enlazado con otro sin querer o algo así. Comprueva la expresión de longitud del hueso. Lo estas usando para simular algún musculo? Por experiencia te digo, que a veces, cuando creas un setup, no por ser más enrevesado funciona mejor, yo intentaría simplificar la cosa porque si haces una gran combinación de constrains, jerarquías y expresiones es muy probable que en algún punto falles o que al prog se le valla la olla. Si estas simulando músculos intenta probar con el addon de músculos que hay en xsibase, com. Ánimo.
Orden interno del calculo de constraints
Quel, yo no uso XSI, pero me imagino que será igual que max, prueba a hacer lo siguiente: En vez de hacer hijo el root al imp, haz una cosa, ¿supuestamente ef y imp están exactamente en la misma posición y rotación ¿no?
Métele un look at constraint a root dirigido a ef(en vez de vincularlo directamente). Creo que así debe solucionarse tu problema. Saludos.
Orden interno del calculo de constraints
Cita:
Buenas a todos.
ef : el efector de dicha cadena. Con un position constraint a imp.
[.
Hacer un constraint de un efector con otro objeto que a su vez tiene constrains es una peligrosa carambola. El efector siempre hace caso al hueso antes que cualquier cosa, yo he seguido tus pasos y la longuitud del hueso no cambia, (la manera de cambiar la longuitud del hueso que yo conozco es Control +). Podrías publicar la escena tan simple como la describes para que te intentemos ayudar, es una idea, en cualquier caso, no me hago a la idea del problema que quieres solucionar con esta combinación. Desde luego XSI tiene expedientes x a patadas, pero creo que es más bien que el programa es más grueso de lo que parece a priori, quiero decir, mírate la línea de comandos que ejecuta cuando quieres alargar un hueso porque a lo mejor lo que necesitas es un script. Saludos.
Orden interno del calculo de constraints
Blast2003, si la longitud del hueso no te cambia, será que no tienes metida correctamente la expresión que calcula la distancia entre el root y el implicito. Osea que nada de scripts ni cosas por el estilo, una expresión (distance center todo center) de toda la vida y de lujo, oiga.
Nota : si usas la expresión de distancia entre el root i el efector directamente, creas un círculo de dependencias, por eso hay el implicito que hace de intermediario. Para romprer el círculo.
Orden interno del calculo de constraints
Yo lo que digo es que, si ese hueso pesa algo y cambiar de longitud puede hacer un descojono importante, por algo lo llamron Bones ¿no? Y los programaron como Bones ¿no? Y si le preguntas al que lo programó como Bones te dirá de lujo no, de piel de cojón de pato, oiga.
No uses un bone para lo que no es, ¿no?
Orden interno del calculo de constraints
Blast, los Bones son para todo los que los puedas usar, principalmente deformar mallas, y hacer un bone elástico es muy usado para simular tendones o simplemente para hacer setups avanzados donde puedas aplicar quik stretch.
Quel, he estado haciendo pruebas y según tu configuración, a mí me va de lujo, no sé porque se ralla.
Orden interno del calculo de constraints
Optare por cambiar esas piezas de setup completamente. No serán más simples ni más complejas, pero si diferentes, a fer si hay suerte.
Orden interno del calculo de constraints
No se las peculiaridades de XSI, pero creo que si en la posición inicial emparentas el ef a imp directamente no debería de darte problemas, eliminas un constraint y ef seguiría siempre a imp.
Otra cosa seria en lugar de un efector orientar directamente el hueso con un constraint look at al imp, así no entraría en el cálculo de la cinemática inversa y seria todo por constraints, o hacerle los constraints directamente a ef.
Orden interno del calculo de constraints
Cita:
Lo curioso es que el problema creo que se viene dado al orden en los que XSI calcula los constraints de 2 points y position. Lo que ocurre, es que el ef, que en teoría debería estar siempre en la misma posición que imp. Aparece siempre en la posición del frame anterior.
Bueno, para liar más la marrana, cuando digo anterior, me refiero en donde estaba instantes antes. Osea, cuando el time line avanza, ef en el frame 45 está en la posición que tenía imp en el frame 44. Si el time line retrocede, ef en el frame 93, está en la posocion de imp en el frame 94.
Por lo que cuentas, parece claro que lo haces bien, de hecho, la cosa no parece tener mucho misterio. Me da la impresión de que si actualizas el frame, o simplemente si redibujas el interfaz, el hueso mejorara su posición y se irá adaptando a la correcta.
Yo uso Blender y estas cosas suelen pasar cuando la IK se complica, pero sólo sucede en tiempo de trabajo: durante el render la cosa se pone derecha y lo hace bien. Igual es una pregunta estúpida, pero ¿cómo se ve si renderizas?
Orden interno del calculo de constraints
Cita:
No se las peculiaridades de XSI, pero creo que si en la posición inicial emparentas el ef a imp directamente no debería de darte problemas, eliminas un constraint y ef seguiría siempre a imp.
Primera particularidad de las cadenas de huesos en XSI.
Tanto el bone como el ef, son hijos de root. Y es una jerarquía que no conviene rompre. Por eso el propio XSI te sugiere usar constraint sobre el ef antes de romper si vinculo familiar son su papaito.
Klópes, lo probaré, a ver qué tal.
Orden interno del calculo de constraints
Al lo mejor el constraint de orientation como dice Larry te puede funcionar.
Orden interno del calculo de constraints
Nada, ya está arreglado he borrado todo lo que daba problemas y lo he rehecho diferente. No es ni más ni menos complejo que antes, pero ahora es sutilmente distinto y funciona igual. Por ahora, parece no dar problemas, aún que ya veremos, el sistema anterior, no dio problemas hasta después de varios días.
Orden interno del calculo de constraints
Nada, ya está arreglado he borrado todo lo que daba problemas y lo he rehecho diferente. No es ni más ni menos complejo que antes, pero ahora es sutilmente distinto y funciona igual. Por ahora, parece no dar problemas, aún que ya veremos, el sistema anterior, no dio problemas hasta después de varios días.
Orden interno del calculo de constraints
Orden interno del calculo de constraints
Es lo mismo, pero con solo null1 y cambiando el 2 point constraint por un position constraint. Los huesos no quedan donde quería en un principio, pero una vez pesado, no se nota si el hueso esta aquí o 2 centímetros a la derecha.
Posdata : por si alguien se lo pregunta, estoy invetigando e indagando en los misterios de los setups faciales.
Orden interno del calculo de constraints
La maldita jererquia se puede ver en trabajos en proceso.