Gracias Gracias:  0
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 25

Tema: [MaXScript] :: Simple Spline manipulator

  1. #1
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    [MAXScript] :: Simple Spline manipulator

    Bueeeeno, aquí estamos de nuevo.

    A ver, background:
    En revisando los rigs faciales que se hace la peña con huesos, me planteé la cuestión: ¿No es una cagada tener que meter entre 8 y 12 huesos para hacerse el orbicular de la boca por ejemplo? ¿Y que hay de las cejas, otros 3 o 4 bones para cada una?
    Pienso que es más practico hacerse una spline para estos menesteres, ya que tanto skin como physique permiten meter splines como huesos con la particularidad de que los envelopes en estos casos no son "capsulas", si no más bien "musculos" (al estilo de los metamuscles de metareyes).
    Peeeero, tienen un inconveniente: Es un coñazo animar una spline. Vete a modify, metete en subobjeto vertice, toquetea, sal, vuelve a entrar...
    Y comentandolo con un colega animador se me ocurrió la idea de hacer un manipulador para manejar las splines sin tener que andarse con tanta historia.

    No lo he probado y seguro que tiene algunas pegas que no se me han ocurrido, pero es un primer intento. Tengo en mente meterle algunas cosas mas, como por ejemplo que guarde poses concretas para poder volver a ellas en cualquier punto. De ese modo, podría crearse una serie de poses para los fonemas, expresiones, etc. y reutilizarlos cuando se quisiera, pero con la particularidad de que los puedes modificar a tu gusto en cualquier momento. Como el morpher pero mejor y más flexible, pienso yo

    En fin, lo probais y me contais, y en la medida de lo posible y si tiene aceptacion se le irán metiendo más cosas.
    Archivos adjuntados Archivos adjuntados
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  2. #2
    Senior Member
    Fecha de ingreso
    Sep 2004
    Ubicación
    Madrid
    Mensajes
    855

    Re: [MAXScript] :: Simple Spline manipulator

    Ole y Ole! ya sabes que yo no voy a probar tu script, pero me encanta que sigas haciendo cosas para tu CV. Tío tu tienes talento y es un "pecado" que no lo aproveches. Loas y alabanzas aparte, creo que la lógica que hay detrás de la idea de tu script es valida y supongo que puedes ser una herramienta muy útil para los meneadores de monigotes

    Aprovechando el post, perdona por el offtopic nessito, dejo en el aire dos ideas para scrits, macros o como se llamen:

    Uno fácil de explicar pero (imagino) bastante más difícil de programar: Un hacedor de tejados. Con la fiebre constructora que no invade creo que hasta seria comercialmente viable un plugin que hiciese cubiertas de teja. Podría funcionar algo así como: Seleccionas el tipo de teja ( árabe, francesa, romana, etc), indicas el plano a cubir (indicando un poligono o sus vértices, como sea más factible), a base de mucho [] () / if do y demás conjuros el script calcula las filas y columnas necesarias, la inclinacion, las coloca y recorta los sobrantes. Tendria su modulo para hacer cumbreras. Permitiria tener distintos niveles de detalle en visores y render. Y seria un plus un botón para transformar el resultado en un Vrayproxy.

    El otro más fácil (creo) de programar pero más complicado de explicar. La idea es un script que te permita "conservar" el área seleccionada en un render tipo crop. Me explico. Como sabéis la mayoría, el max tiene distintos tipos de render en función de cómo especificamos el área que se va a renderizar: View, Region Selected, Crop, etc. El caso es que el render crop es muy útil en ciertos casos en los que no es posible utilizar el ajuste de perspectiva, permitiendo simular el funcionamiento de los objetivos fotográficos con el plano focal desplazado (creo que se llaman así) que se utilizan para fotografía arquitectónica. El problema que se presenta cuando tienes que repetir una imagen que has obtenido mediante este sistema ( porque la cuarcita naranja de leshoto tiene unas vetas distintas de la que tu has puesto, por ejemplo), es la dificultad para volver a ajustar exactamente el mismo recorte que seleccionaste en el visor. El script que os propongo es uno que permita conservar los valores de ese recorte para una vista de cámara determinada y ya de paso los valores del tamaño de render que se habían seleccionado. Si alguno que se plantee el hacerlo necesita más información, que lo diga y buscaré la forma de explicarlo mejor (dibujitos y todo eso).

    Volviendo al tema original del mensaje, a ver si alguno de los que os decis animadores probais el script y le echais una mano en el proceso de refinado, que luego la herramienta vais a poder utilizarla por la patilla (o no, glup).

    Lo dicho, que me alegro de que la desidía no haga mella y dile a tu colega animador (si es quien creo que es) que a ver si se suma a la próxima quedada y nos tomamos una cervezas.

    Un saludazo
    "Tienes quince segundos para imaginar; si no se te ha ocurrido nada, a lo mejor deberías ver menos la tele" La Bola de Cristal

  3. #3
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    Re: [MAXScript] :: Simple Spline manipulator

    Bueno, bueno, mira a quien tenemos por aquí!

    Voy a ir en sentido inverso:
    El colega animador es quien tu crees, seguro. Cervezas? Solo es proponerselo, ya le conoces. La historia esta del manipulador es una pergeñada para su "Piarida" versión 2.0. Parece que se lo quiere tomar en serio esta vez, y le he dicho que me encargo de las herramientas que le puedan hacer falta. Esto es un primer intento de colaboracion en serio.

    Por la "patilla"? pos claro, pero la primicia la tiene él, que me va a hacer de beta tester con un caso real (si de verdad se pone).

    En configuración de la vista (botón derecho sobre los botones de navegación), tienes una pestaña que se llama "Regions". Tienes un "blowup Region" y un "Sub Region". "Sub Region" es la region para los modos de render region y crop.
    Lo que tu pides es guardar esos cuatro números? No sé, me parece muy simple, tanto que no sé si es útil . Siempre puedes coger lápiz y papel, y apuntartelos.

    Lo de los tejados, tendría que verte hacerlo a pedales, para entender exactamente que es lo que se podría automatizar con script, pero así, a priori, tampoco parece muy complicao, es una especie de scater, no? Lo de los niveles de detalle distintos en visores y render tiene más miga, hay que sustituir geometría en un pre-render callback, y me da que tendría que ser tirando de librerías (del estilo de los árboles del foliage que trae el MAX). Lo dicho, un scater, o si lo prefieres un facedor de arrays de tejas, con parámetros especializados en el tema. VRay-proxysí Ya sabes que yo del VRay solo sé que existe, pero si tiene soporte script, supongo que sería sustituir un tipo por otro.

    Resumiendo, ambas dos de tus ideas me parecen factibles a primera vista, luego te metes en el fregao y aparecen problemas por todas partes, peeeero, así es esto.
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  4. #4
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: [MAXScript] :: Simple Spline manipulator

    Nessito, gracias por el script. Precisamente esta semana hemos estado desarrollando una solución similar en el curro (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.

    Veo que declaras tu script como plugin, pero no veo cómo funciona. El Listener me devuelve la cadena 'splinemanip', y no veo por ningún lado botones, menúses, modificadores o nada parecido. Llamame 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?

    Por cierto, infinitas gracias por comentar el código. Te cae una cerveza pero ya

  5. #5
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: [MAXScript] :: Simple Spline manipulator

    La verdad es que me acabo de enterar que se puede asignar un spline en el modificador skin.

    A ver si le echo un vistazo al código, que nunca he creado un manipulador.

    Thanks for share!.

  6. #6
    Senior Member Avatar de Birkov
    Fecha de ingreso
    Dec 2004
    Ubicación
    Coruña - Barcelona
    Mensajes
    874

    Re: [MAXScript] :: Simple Spline manipulator

    Yo no es por ser tocapelotas, pero lo que hace el script ( por lo que entendí de la explicación, todavía no he mirado el código ) no es el mismo resultado que crear una spline y asignarle un modificador "Spline IK Control", esto te crea ayudantes asociados a cada vértice de la spline, de esa forma al mover los ayudantes deformas la spline.

    Si no es eso me callo y santas pascuas
    _________________________________________________
    Reloj de pulsera /\ Marine Starcraft 2 WIP /\ Motorola L6 /\ Canon Ixus II /\ La vigilante /\ Dragon WIP ________________________________________________

  7. #7
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: [MAXScript] :: Simple Spline manipulator

    Con SplineIKControl no puedes controlar las tangentes de la curva en cada vértice. Creo que con el script de Nessito, sí...

  8. #8
    Senior Member Avatar de phoelix
    Fecha de ingreso
    May 2005
    Ubicación
    Bogotá, Colombia
    Mensajes
    321

    Re: [MAXScript] :: Simple Spline manipulator

    buenas

    por lo de el 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, asignandoles pesos a huesos, helpers o cualquier objeto. de esa forma no solo se puede controlar la orientacion de las tangentes si no también su tamaño.

    es super la idea de controlar el rostro directamente con splines, lo malo de eso, es que los splines no son muy estables a la hora de deformar una malla con skin, pasa a veces que cuando un spline alcanza sierto grado de doblez genera un flip sobre los vértices de la malla skineada, por eso generalmente se usan cadenas de huesos restringidas sobre splines, ya que con ellos puedes tener mucho más control y evitar que sucedan ese tipo de errores

    bueno.... chao

    ahhh... por sierto.... tampoco supe como utilizar el script de nessito, seria chevere poder probarlo.
    Última edición por phoelix; 01-11-2006 a las 20:30
    Nuestro corto basado en Matrix - TRICKSTER - wip:
    thetricksterproject.blogspot.com

    website personal:
    www.joleanes.com

  9. #9
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    Re: [MAXScript] :: Simple Spline manipulator

    Cita Iniciado por ikerCLoN
    Nessito, gracias por el script. Precisamente esta semana hemos estado desarrollando una solución similar en el curro (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 MAX sería que hiciera los bones strechy al cambiar la longitud de la spline, y si acaso, la rotación de esos bones sobre el eje de spline en cuestion, como un twist. Tendré que apuntarmelo, por si se me ocurre la manera de replicarlo.
    Cita Iniciado por ikerCLoN
    Veo que declaras tu script como plugin, pero no veo cómo funciona. El Listener me devuelve la cadena 'splinemanip', y no veo por ningún lado botones, menúses, modificadores o nada parecido. Llamame 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 (pa que le des al coco ): ¿Si es un plugin donde esta el class ID? El numerito que lo identifica. Y ¿que significa "invisible:true" (autoexplicativo, ¿no?)?. Ya?. No?. Bueeeno, 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 esta pensado para cosos que no pueden funcionar por si 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 contraposicion de los manipuladores "stand in". Ejemplo: El slíder manipulator o el boolean manipulator (otra de mis creaciones), son manipuladores "stand-in", o sea plugins con todas las de la ley. Que se manipulan a si 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 cuestion. 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 pal caso son lo mismo) y cuando el modo "manipulate" esta activo. No te llamo cateto por que no hace falta .
    Ejecuta el script (para que te salga lo de splinemanip en el listener), crea una línea o cualquier spline y la conviertes en editable spline, y dale al botón "manipulate", y oooh sorpresa! ahí esta!
    Cita Iniciado por ikerCLoN
    Con SplineIKControl no puedes controlar las tangentes de la curva en cada vértice. Creo que con el script de Nessito, sí...
    Ahí esta el tema
    Cita Iniciado por phoelix
    por lo de el 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, asignandoles pesos a huesos, helpers o cualquier objeto. de esa forma no solo se puede controlar la orientacion de las tangentes si no también su tamaño.
    Joder macho! Meterle un skin a una spline para usarla como hueso deformable en otro skin. Eso si 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.
    Leeme un poco más arriba y veras cómo probar el script.

    Por cierto, lo he hecho en el MAX 9 - 32bit, y lo he probado en el 9 y en el 8 sp3. 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 contais.
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  10. #10
    Senior Member Avatar de phoelix
    Fecha de ingreso
    May 2005
    Ubicación
    Bogotá, Colombia
    Mensajes
    321

    Re: [MAXScript] :: Simple Spline manipulator

    Cita Iniciado por Nessito
    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.
    bueno la idea no era hacer las cosas más complicadas si no posibles, si no existiera un script como el tuyo sseria una forma de hacerlo, pero ya que existe....

    por sierto, me funciono el script de la forma que mencionas , me sale el manipulador sobre el spline monstrando unos controles para los vértices y las tangentes, pero podrías explicar como mover los controles, ya que intento con la herramienta "move" sobre los controles del manipulador y no lo logro.

    thnx
    Nuestro corto basado en Matrix - TRICKSTER - wip:
    thetricksterproject.blogspot.com

    website personal:
    www.joleanes.com

  11. #11
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    Re: [MAXScript] :: Simple Spline manipulator

    Si ves el manipulador, es que lo puedes manipular. No hay que mover, solo manipular. Te pones encima de un punto de control (veras que cambia de color) y arrastras. Y ya ta!
    Bueno, ya ta no. Aquí se precisa cierta aclaracion. Los puntos manipulables son solo vértices y tangentes, teniendo en cuenta que:
    • El plano de manipulacion es el plano de construcción de la vista activa. Por ejemplo en una vista top mueves las cosas en X e Y, en una front mueves en X y Z, etc
    • Los vértices son siempre manipulables
    • Las tangentes solo son manipulables si son manipulables (obvio). Me explico: un vértice puesto en corner no tiene tangentes que manipular, ya que las calcula el propio max. Mi manipulador dibuja siempre todas las tangentes, pero lo hace de forma distinta según el tipo de vertice. A saber:
      • Los vértices bezier o bezier corner aparecen con tangentes (manipulables) como cuadraditos pequeños (como en el MAX 8 y anteriores).
      • Los vértices corner aparecen con tangentes en X (como aparecían cuando ponias un segmento en linear), para mostrar que no se pueden tocar.
      • Los vértices smooth aparecen con tangentes en circulito, que tampoco se pueden tocar, pero que se mantienen tangentes a la curva.

    De ese modo, y de un vistazo puedes ver que vértices son manipulables y cuales no, y de que modo cada uno.
    Tengo planeado meterle además colorines para distinguir las diferentes cosas, pero es un coñazo de programar y no he tenido ganas de hacerlo aún. En cualquier caso el funcionamiento sería el mismo.
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  12. #12
    Senior Member Avatar de phoelix
    Fecha de ingreso
    May 2005
    Ubicación
    Bogotá, Colombia
    Mensajes
    321

    Re: [MAXScript] :: Simple Spline manipulator

    debo estar haciendo algo mal, porque no logro moverlos (manipularlos), los vértices se ponen rojitos y todo cuando les pongo el cursor encima pero cuando hago clik y arrastro no pasa nada.
    Nuestro corto basado en Matrix - TRICKSTER - wip:
    thetricksterproject.blogspot.com

    website personal:
    www.joleanes.com

  13. #13
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: [MAXScript] :: Simple Spline manipulator

    Yo tampoco puedo manipularlos. Uso la versión 8 de MAX. Tal vez sea por eso...

  14. #14
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    Re: [MAXScript] :: Simple Spline manipulator

    Juas! probado aquí en el curro. En el 5 (flipa), en el 7, en el 8 y en el 9. Ningun problema, en ninguno de ellos. No se que puede ser, a menos...
    En que vista lo intentais? top, por ejemplo?
    Me despista el asunto de que si se pongan rojitos los puntos. Eso significa que la cosa rula, pero si no podéis moverlos, es un problema del mousemove,y ahí si que lo flipo...
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  15. #15
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: [MAXScript] :: Simple Spline manipulator

    El problema es que si por ejemplo creamos una spline en la vista front e intentamos manipularla, esta línea del event handler onMouseMove:

    Código:
    isOK = pl.intersect viewray &projectedpoint
    siempre devuelve false ya que la dirección del rayo y la normal del plano son perpendiculares. O sea que no hay intersección y por lo tanto no se entra en el case posterior, con lo que el vértice/tangente no se mueve.

    Lo mismo ocurre si después intentamos manipularla en la vista top (nuevamente los vectores son perpendiculares). No ocurre así en la vista left, pues ahí los vectores no son perpendiculares o paralelos (y en el mismo sentido). Lo mismo pasa en la vista en perspectiva, ahí también funciona.

    Incluso si en la vista front se rota la spline, también funciona. Se ve que el plano cambia y por lo tanto los vectores dejan de ser perpendiculares.

    Saludos.

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. spline maxscript
    Por neobarry en el foro Modelado
    Respuestas: 14
    Último mensaje: 05-09-2015, 23:44
  2. Campo de Batalla: Simple simulacion simple de masas
    Por lisux en el foro Partículas y Dinámicas
    Respuestas: 22
    Último mensaje: 24-01-2007, 21:50
  3. Maxscript: acceder al path de un Loft como spline
    Por cluezz en el foro Programación y Scripts
    Respuestas: 1
    Último mensaje: 28-12-2006, 12:34
  4. [MaXScript] :: Stand-in Spline manipulator
    Por Nessito en el foro Programación y Scripts
    Respuestas: 5
    Último mensaje: 21-11-2006, 16:31
  5. [MaXScript] :: Boolean manipulator
    Por Nessito en el foro Programación y Scripts
    Respuestas: 0
    Último mensaje: 02-11-2006, 11:22

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •