Foros 3DPoder.  

Bienvenido a Foros 3DPoder..

Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! !

Si usted tiene algún problema con su registro, por favor , díganoslo aquí. 3d




Retroceder   Foros 3DPoder. > :: Infografia y diseño grafico. > Script
Foro3D Galeria Privada Video3D Blueprints Software Blog3DPoder Buscar Empleo Donaciones


Noticias, Anuncios y Publicidad

Respuesta
 
Herramientas
Antiguo 31 oct 2006   #1
Nessito
Senior Member
 
Fecha de Ingreso: abril-2005
Ubicación: Madrid
Mensajes: 632
Predeterminado [MAXScript] :: Simple Spline manipulator

Bueeeeno, aqui 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 práctico 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 ocurrio 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 más, como por ejemplo que guarde poses concretas para poder volver a ellas en cualquier punto. De ese modo, podria 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 iran metiendo más cosas.
Descargar Directa de Archivos ...
Tipo de Archivo: rar splinemanip.rar (1.8 KB, 53 visitas)
__________________
Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.
Nessito is offline   Responder Con Cita
Enlaces patrocinados
Antiguo 31 oct 2006   #2
GreenPix
Senior Member
 
Fecha de Ingreso: septiembre-2004
Ubicación: Madrid
Mensajes: 875
Predeterminado 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. Tio tu tienes talento y es un "pecado" que no lo aproveches. Loas y alabanzas aparte, creo que la logica que hay detras de la idea de tu script es valida y supongo que puedes ser una herramienta muy util 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 facil de explicar pero (imagino) bastante mas dificil 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. Podria funcionar algo asi como: Seleccionas el tipo de teja (árabe, francesa, romana, etc), indicas el plano a cubir (indicando un poligono o sus vertices, como sea mas factible), a base de mucho [] () / if do y demas 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 boton para transformar el resultado en un Vrayproxy.

El otro mas facil (creo) de programar pero mas complicado de explicar. La idea es un script que te permita "conservar" el area seleccionada en un render tipo crop. Me explico. Como sabeis la mayoria, el max tiene distintos tipos de render en funcion de cómo especificamos el area que se va a renderizar: View, Region Selected, Crop, etc. El caso es que el render crop es muy util en ciertos casos en los que no es posible utilizar el ajuste de perspectiva, permitiendo simular el funcionamiento de los objetivos fotograficos con el plano focal desplazado (creo que se llaman asi) que se utilizan para fotografia 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 camara determinada y ya de paso los valores del tamaño de render que se habian seleccionado. Si alguno que se plantee el hacerlo necesita mas informacion, 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 desidia no haga mella y dile a tu colega animador (si es quien creo que es) que a ver si se suma a la proxima 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
GreenPix is offline   Responder Con Cita
Antiguo 31 oct 2006   #3
Nessito
Senior Member
 
Fecha de Ingreso: abril-2005
Ubicación: Madrid
Mensajes: 632
Predeterminado Re: [MAXScript] :: Simple Spline manipulator

Bueno, bueno, mira a quien tenemos por aqui!

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" version 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 configuracion de la vista (boton 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 util . Siempre puedes coger lapiz y papel, y apuntartelos.

Lo de los tejados, tendria que verte hacerlo a pedales, para entender exactamente que es lo que se podria automatizar con script, pero asi, 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 geometria en un pre-render callback, y me dá que tendría que ser tirando de librerias (del estilo de los arboles del foliage que trae el MAX). Lo dicho, un scater, o si lo prefieres un facedor de arrays de tejas, con parametros 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, asi es esto.
__________________
Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.
Nessito is offline   Responder Con Cita
Antiguo 31 oct 2006   #4
ikerCLoN
8======D
 
Fecha de Ingreso: abril-2002
Ubicación: Granada
Mensajes: 13,373
Predeterminado 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. 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?

Por cierto, infinitas gracias por comentar el código. Te cae una cerveza pero ya
ikerCLoN is offline   Responder Con Cita
Antiguo 01 nov 2006   #5
HalfVector
H = E + L
 
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
Predeterminado 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!.
HalfVector is offline   Responder Con Cita
Antiguo 01 nov 2006   #6
Birkov
Senior Member
 
Avatar de Birkov
 
Fecha de Ingreso: diciembre-2004
Ubicación: Coruña - Barcelona
Mensajes: 807
Entradas de portafolios: 1
Predeterminado 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
__________________
www.rubenlmartinez.com
_________________________________________________
Canon Ixus II /\ La vigilante /\ Dragon WIP ________________________________________________
Birkov is offline   Responder Con Cita
Antiguo 01 nov 2006   #7
ikerCLoN
8======D
 
Fecha de Ingreso: abril-2002
Ubicación: Granada
Mensajes: 13,373
Predeterminado 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í...
ikerCLoN is offline   Responder Con Cita
Antiguo 01 nov 2006   #8
phoelix
Senior Member
 
Avatar de phoelix
 
Fecha de Ingreso: mayo-2005
Ubicación: Bogotá, Colombia
Mensajes: 236
Contactar con phoelix a través de MSN
Predeterminado 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 asi, existe otro metodo. A un spline se le puede poner un modificador skin, con el cual se pueden controlar los vertices 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 tambien 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 vertices de la malla skineada, por eso generalmente se usan cadenas de huesos restringidas sobre splines, ya que con ellos puedes tener mucho mas 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 provarlo.
__________________
www.immersionsoftware.com

Última edición por phoelix fecha: 01 nov 2006 a las 11:30.
phoelix is offline   Responder Con Cita
Antiguo 02 nov 2006   #9
Nessito
Senior Member
 
Fecha de Ingreso: abril-2005
Ubicación: Madrid
Mensajes: 632
Predeterminado Re: [MAXScript] :: Simple Spline manipulator

Cita:
Escritos 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, pa eso estamos.
Es buena idea lo de crear una cadena de huesos controlados por una spline "invisible", pero la unica 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 rotacion 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:
Escritos 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. 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 (pa que le des al coco ): ¿Si es un plugin donde está 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 creacion (o en otras partes, segun 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 relacion con lo del class ID.
No tiene class ID por que es un manipulador "simple", en contraposicion de los manipuladores "stand in". Ejemplo: El slider 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 circulo 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 linea (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 linea o cualquier spline y la conviertes en editable spline, y dale al boton "manipulate", y oooooh sorpresa! ahí está!
Cita:
Escritos 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í está el tema
Cita:
Escritos 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 asi, existe otro metodo. A un spline se le puede poner un modificador skin, con el cual se pueden controlar los vertices 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 tambien 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 faciles, no mas complicadas.
Leeme un poco más arriba y verás 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 tambien funcionaría, pero con distinto aspecto (de hecho entre el 8 y el 9 han cambiado algunas cosas)

En fin, a ver si lo podeis probar y me contais.
__________________
Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.
Nessito is offline   Responder Con Cita
Antiguo 02 nov 2006   #10
phoelix
Senior Member
 
Avatar de phoelix
 
Fecha de Ingreso: mayo-2005
Ubicación: Bogotá, Colombia
Mensajes: 236
Contactar con phoelix a través de MSN
Predeterminado Re: [MAXScript] :: Simple Spline manipulator

Cita:
Escritos 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 faciles, no mas complicadas.
bueno la idea no era hacer las cosas mas 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 vertices y las tangentes, pero podrias explicar como mover los controles, ya que intento con la herramienta "move" sobre los controles del manipulador y no lo logro.

thnx
__________________
www.immersionsoftware.com
phoelix is offline   Responder Con Cita
Antiguo 02 nov 2006   #11
Nessito
Senior Member
 
Fecha de Ingreso: abril-2005
Ubicación: Madrid
Mensajes: 632
Predeterminado 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 vertices y tangentes, teniendo en cuenta que:
  • El plano de manipulacion es el plano de construccion 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 vertices son siempre manipulables
  • Las tangentes solo son manipulables si son manipulables (obvio). Me explico: un vertice 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 segun el tipo de vertice. A saber:
    • Los vertices bezier o bezier corner aparecen con tangentes (manipulables) como cuadraditos pequeños (como en el MAX 8 y anteriores).
    • Los vertices corner aparecen con tangentes en X (como aparecian cuando ponias un segmento en linear), para mostrar que no se pueden tocar.
    • Los vertices 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 vertices son manipulables y cuales no, y de que modo cada uno.
Tengo planeado meterle ademas 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.
Nessito is offline   Responder Con Cita
Antiguo 02 nov 2006   #12
phoelix
Senior Member
 
Avatar de phoelix
 
Fecha de Ingreso: mayo-2005
Ubicación: Bogotá, Colombia
Mensajes: 236
Contactar con phoelix a través de MSN
Predeterminado Re: [MAXScript] :: Simple Spline manipulator

debo estar haciendo algo mal, porque no logro moverlos (manipularlos), los vertices se ponen rojitos y todo cuando les pongo el cursor encima pero cuando hago click y arrastro no pasa nada.
__________________
www.immersionsoftware.com
phoelix is offline   Responder Con Cita
Antiguo 02 nov 2006   #13
ikerCLoN
8======D
 
Fecha de Ingreso: abril-2002
Ubicación: Granada
Mensajes: 13,373
Predeterminado Re: [MAXScript] :: Simple Spline manipulator

Yo tampoco puedo manipularlos. Uso la versión 8 de MAX. Tal vez sea por eso...
ikerCLoN is offline   Responder Con Cita
Antiguo 02 nov 2006   #14
Nessito
Senior Member
 
Fecha de Ingreso: abril-2005
Ubicación: Madrid
Mensajes: 632
Predeterminado Re: [MAXScript] :: Simple Spline manipulator

Juas! probado aqui 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 podeis 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.
Nessito is offline   Responder Con Cita
Antiguo 02 nov 2006   #15
HalfVector
H = E + L
 
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
Predeterminado 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.
HalfVector is offline   Responder Con Cita
Respuesta


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Normas de Publicación
Usted no puede publicar nuevos mensajes.
Usted no puede responder mensajes
Usted no puede publicar archivos adjuntos
Usted no puede editar sus mensajes

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are deshabilitado
Pingbacks are deshabilitado
Refbacks are deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Simple que te quiero simple, (continuación) Hid! Animación 4 08 jun 2006 22:27
Simple que te quiero simple Hid! Trabajos en Proceso 18 02 may 2006 06:27
Problema con Spline Canarion3d Modelado 11 16 ago 2005 11:23
Cámara desvincular de spline Davescambra Animación y Rigging 18 01 jul 2005 12:13
surface... avielracso Modelado 12 07 jun 2004 11:34

google adsense



La franja horaria es GMT. Ahora son las 06:29.