Nessito, gracias por el script. Precisamente esta semana hemos estado desarrollando una solución similar en el trabajo (creo): crear una Spline, pero sin Spline, sólo con los puntos: vértices y handles de las tangentes. A través de la fórmula para las curvas Bézier, consigues tener una Spline, pero formada por una cadena de huesos. Puedes controlar los vértices y las tangentes, y es rápido como el diablo.
De nada, para eso estamos.
Es buena idea lo de crear una cadena de huesos controlados por una Spline invisible, pero la única utilidad especial que le veo sobre el Spline IK del 3ds Max sería que hiciera los Bones stretchy al cambiar la longitud de la Spline, y si acaso, la rotación de esos Bones sobre el eje de Spline en cuestión, como un twist. Tendré que apuntarmelo, por si se me ocurre la manera de replicarlo.
Veo que declaras tu script como plugin, pero no veo cómo funciona. El Listener me devuelve la cadena Spline Manipulator, y no veo por ningún lado botones, menús, modificadores o nada parecido. Llámame cateto, pero también pruebo a ejecutar el script a secas, con una curva seleccionada, boca abajo, fumando en pipa, y no pasa nada. ¿Qué estoy haciendo mal, doctor?
Bueno, como le has echado un vistazo al código, te respondo con un par de preguntas (para que le des al coco): ¿si es un plugin dónde está el class id? El número que lo identifica. Y ¿Qué significa invisible:true (auto explicativo, ¿no?)? Ya? ¿no? Bueno, a ver.
Lo de invisible:true es porque puedes crear plugins que no se vean en el panel de creación (o en otras partes, según el tipo de plugin). Por ejemplo, el controlador body del Biped, que no aparece en la lista de controladores asignables a mano. En principio esto está pensado para cosos que no pueden funcionar por sí solos, si no es en conjunto con otras cosas (como el controlador mencionado). Aunque en este caso es por otro motivo, que tiene relación con lo del class id.
No tiene class id por que es un manipulador simple, en contraposición de los manipuladores stand in. Ejemplo: el slider manipulator o el bolean manipulator (otra de mis creaciones), son manipuladores stand-in, o sea plugins con todas las de la ley. Que se manipulan a sí mismos, y que tienes que wirear a otros cosos como quieras. En cambio, no tienes ninguna manera de crear un manipulador de radio, pero cuando creas una esfera aparece un círculo verde que es el manipulador en cuestión. Eso es un manipulador simple. Pues esto es lo mismo, el manipulador solo aparece cuando el tipo de objeto es el apropiado para ser manipulado.
¿Y cuando es eso? Cuando el objeto seleccionado es una editable Spline o una línea (que para el caso son lo mismo) y
cuando el modo manipulate esta activo. No te llamo cateto porque no hace falta.
Ejecuta el script (para que te salga lo de Spline Manipulator en el Listener), crea una línea o cualquier Spline y la conviertes en editable Spline, y dale al
botón manipulate, y oh sorpresa, ahí esta.
Con splineikcontrol no puedes controlar las tangentes de la curva en cada vértice. Creo que con el script de Nessito, sí.
Ahí está el tema.
Por lo del splineikcontrol, de hecho, si puedes controlar las tangentes rotanto los puntos de control que genera ese modificador, pero lo malo es que no puedes alargarlas, aun así, existe otro método. A un Spline se le puede poner un modificador skin, con el cual se pueden controlar los vértices y los puntos de control de las tangentes, asignando pesos a huesos, helpers o cualquier objeto, de esa forma no solo se puede controlar la orientación de las tangentes sino también su tamaño.
Vaya macho. Meterle un skin a una Spline para usarla como hueso deformable en otro skin. Eso sí que es rizar el rizo. No dudo que sea posible, ni tampoco dudo los problemas que puede llegar a dar, pero la idea es hacer las cosas más fáciles, no más complicadas.
Leme un poco más arriba y verás cómo probar el script.
Por cierto, lo he hecho en el 3ds Max 9 - 32bit, y lo he probado en el 9 y en el 8 service pack 3, versiones anteriores, ni idea, aunque creo que también funcionaría, pero con distinto aspecto (de hecho, entre el 8 y el 9 han cambiado algunas cosas).
En fin, a ver si lo podéis probar y me contáis.