Octubre 2010 - Leccion 2 - Sesión P&R

Mensajes de los cursos de junio y octubre del año 2010.

Moderadores: David, Tutores

ikerJ
Miembro Vip
Miembro Vip
Mensajes: 212
Registrado: Mar Jun 15, 2010 9:21 pm

Octubre 2010 - Leccion 2 - Sesión P&R

Mensajepor ikerJ » Vie Oct 29, 2010 12:47 am

Voy a ir poniendo aquí las soluciones que vaya hallando para las cuestiones planteadas en la sesión de Preguntas y Respuestas.

- Diferencia entre Gimbal y Parent.

La ayuda de MAX no define nada que no sepamos ya. Añade una cosa a tener en cuenta:
Para las transformaciones MOVER y ROTAR, las coordenadas 'Gimbal' son las mismas que las coordenadas 'Parent'. Cuando un objeto no tiene un controlador de rotación EulerXYZ asignado, la rotación 'Gimbal' equivale es idéntica a la rotación 'Parent'.
Parece ser que la representación de las rotaciones en modo 'Gimbal' tiene más que ver con 'Local' que con 'Parent', ya que 'Gimbal' resulta ser 'Local' pero sin tener necesariamente los tres ejes de rotación perpendiculares entre ellos. El hecho es que 'Parent' y 'Local' pueden cambiar las tres curvas de rotación al manipular únicamente un eje. Con 'Gimbal' esto no ocurre.

Voy a enterarme de qué es lo que ocurre...


- Ejecutar una sóla línea en MAXScript Editor.

-----------------------------------------------------------------------------------------------------------------------------------------------

Además, me he acordado de unos vídeos que explican muy bien (en inglés, pero son muy muy muy gráficos y entendibles, ¡lo prometo!) el tema de las rotaciones en 3D, así como el 'gimbal lock' y cómo entender los 'axis order'.

http://guerrillacg.com/home/3d-rigging/ ... on-problem (comentan en la página que la definición de 'quaternion' no es demasiado precisa)

http://guerrillacg.com/home/3d-rigging/ ... -explained

Más apuntes sobre 'Gimbal Lock' y cómo evitarlo:

http://thinkanimation.blogspot.com/2007 ... no-no.html
----------------------------------------------------------------------------------------------------------------------------------------------

Iré contestando a medida que vayamos resolviendo 'misterios' ;-)

¡Saludos!

AlesDorado
Iniciado
Iniciado
Mensajes: 23
Registrado: Lun Oct 04, 2010 1:24 pm

Re: Octubre 2010 - Leccion 2 - Sesión P&R

Mensajepor AlesDorado » Vie Oct 29, 2010 7:23 pm

Muchas gracias por los enlaces. Pero a mi no me funcionan ni el primero ni el segundo. Puede que la página esta "caída" temporalmente.

Pero bueno, en el tercero deja bastante claro el problema del Gimbal Lock. El eje que da problemas es el eje del medio en el axis order. Por lo tanto hay que dejar el eje con menor movimiento en el medio.

kthalas
Mensajes: 4
Registrado: Mié Oct 06, 2010 10:21 pm

Re: Octubre 2010 - Leccion 2 - Sesión P&R

Mensajepor kthalas » Vie Oct 29, 2010 7:57 pm

Hola Iker, Soy Ronald por costumbre me puse este nick >__< olvidando que debía ser mi nombre... :$ . Bueno tenia una pregunta ahora revisando los diferentes parámetros del Orientation constraint en el panel Motion encontre que entre las ultimas se encuentra La de "Transform Rule" y te da dos opciones una es "World---->World" y la otra "Local---->Local" queria saber cual es la diferencia entre estas :?: .

Bueno por aqui aprovecho a preguntar algo sobre la tarea, es sobre la parte del Bonus 2 de la Tarea 1 y es que no logro entenderla del todo solo le pude agarrar sentido cuando vi el Bonus 3 el cual te pide crear otros controles aparte... Con esto regrese al Bonus 2 y use los controles spinner para controlar el Peso de los constraints ... Esta bien así o es que lo entendí mal :| .

Gracias de antemano.

ikerJ
Miembro Vip
Miembro Vip
Mensajes: 212
Registrado: Mar Jun 15, 2010 9:21 pm

Re: Octubre 2010 - Leccion 2 - Sesión P&R

Mensajepor ikerJ » Sab Oct 30, 2010 1:18 am

Vaya, sí que es casualidad lo de que la página esté caída porque ayer funcionaba perfectamente. Buscad los vídeos en Youtube o en Vimeo bajo el nombre 'GuerrillaCG', y os saldrán. Éstos en concreto explicaban las rotaciones en 3D y ampliaban un poco la información sobre el 'gimbal lock'.

Sobre tus dudas, Ronald:
(traducido de la ayuda de MAX)
Local –>Local
Cuando esta opción esté seleccionado, el 'constraint' usará la transformación LOCAL de los objetos.

World –>World
Cuando esta opción sea la elegida, el 'constraint' usará la transformación PARENT o WORLD en lugar de LOCAL [La verdad es que esto de 'parent' o 'world' es un poco ambiguo...].
Así que voy a intentar explicarlo muy gráficamente:

- Crea 4 puntos un poco separados entre ellos (para que la cosa sea más clara). Por ejemplo, pues algo así como un punto en cada vértice de un cuadrado imaginario.

- Vincula el punto 3 al punto 4. Ahora, a ese punto 3 añádele un 'orientation constraint' y usa como 'targets' los puntos 1 y 2. Asegúrate de que está en 'World -> World'.

- Bien, ahora pensemos... tenemos el punto 3 vinculado al punto 4, de modo que al rotar este último, 3 también debería rotar con él. Es decir, es el hijo, así que es lo lógico, ¿no?... PERO esa rotación está 'sobreescrita' por un 'constraint', de manera que aunque el punto 3 cambie su posición cuando 4 rota, su orientación viene determinada SÓLO por la orientación de los puntos 1 y 2. Compruébalo.

- Ahora, cambia a 'Local -> Local'. Verás que algo pasa y que el punto se voltea. Comprueba que su rotación se sigue viendo afectada por la de los puntos 1 y 2, y ahora prueba a rotar el punto 4. ¡Hey! ¡Pero si el punto 3 también rota con él! O sea, tenemos el comportamiento de 'orientation constraint' mientras mantenemos el de hijo.

A decir verdad, NUNCA he usado este segundo comportamiento, lo cual no quiere decir que esté mal usarlo. Supongo que nunca se me ha ocurrido una aplicación práctica o un sitio donde usarlo. Así que como 13 pares de ojos ven más que 1 y 13 cerebros piensan más que 1 solo, ¿se os ocurre algo que hacer con esto?

Sobre la tarea 1 Bonus 2. La tarea 1 dice que hagamos algo para alinear posición mediante un control. El bonus 1 dice que además usemos ese control también para alinear rotaciones.

El bonus 2 te pide que hagas algo para separar esas dos alineaciones. Es decir, que puedas o hacer una, o la otra, o las dos o ninguna. Creo que vas bien encaminado con lo que me comentas ;-)

El bonus 3 tiene que ver con aquello de tener un controlador que permite tener más controladores dentro y teníamos 3 comportamientos distintos porque teníamos 3 controladores de posición y... está todo en la lección de esta semana :)

ikerJ
Miembro Vip
Miembro Vip
Mensajes: 212
Registrado: Mar Jun 15, 2010 9:21 pm

Problemas al ejecutar una línea en el editor de MAXScript

Mensajepor ikerJ » Sab Oct 30, 2010 1:29 am

He estado hablando con un par de colegas y todos coincidimos en que si al ejecutar tu línea el 'listener' te dice 'OK' es que te está funcionando. Hay un par de casos en los que pulses ENTER NUM o MAYS + ENTER y no te salga absolutamente nada, es decir, no te la ejecute, que puede ser lo que te está pasando y yo te entendí mal.

- Si abres un paréntesis y luego no usas otro para cerrar la sentencia, MAX se queda 'esperando'. Prueba a ejecutar una línea como ésta:

(if selection.count > 0 then print "hey" else print "oooooh"

El 'listener' no debería imprimirte nada. Para decirle a MAX algo como 'tío, deja de esperar un paréntesis cerrado porque no voy a ponerlo', activa la ventana del 'Listener' y pulsa la tecla ESC. Deberías ver unas letras rojas que dicen

** interrupted **

Ahora, asegúrate de que tu línea tiene el mismo número de paréntesis abiertos que de cerrados, y no deberías tener más problemas para ejecutar líneas usando estas combinaciones.

- Lo mismo de arriba puede ocurrir a veces pero con comillas en lugar de paréntesis.

Espero que esto sea la solución al problema.

¡Saludos!

jquinchia
Junior
Junior
Mensajes: 47
Registrado: Lun Oct 04, 2010 5:15 am
Alumno: NO
Ubicación: Medellín (Colombia)

Re: Octubre 2010 - Leccion 2 - Sesión P&R

Mensajepor jquinchia » Sab Oct 30, 2010 5:43 pm

Un saludo a todos. Gracias por los aporte.
Bueno estoy teniendo un gran problema (que seguramente no lo es tanto), resulta que coloco el script "en el MaxScripteditor" que en teoria esta bien escrito y me sale error de sintaxix...

for cadaTetera in selection do
(
cadaTetera.handle = off
)

Me sale este dato
-- Error occurred in anonymous codeblock; filename: ; position: 63; line: 4
-- Syntax error: at ), expected <factor>
-- In line: )

De nuevo Gracias

AlesDorado
Iniciado
Iniciado
Mensajes: 23
Registrado: Lun Oct 04, 2010 1:24 pm

Re: Octubre 2010 - Leccion 2 - Sesión P&R

Mensajepor AlesDorado » Sab Oct 30, 2010 6:07 pm

Jorge, creo que el problema que tienes es debido a que estas ejecutando una línea (o puede que una selección) del código, no todo entero.
Si no os aclaraís con los accesos directos, en el MaxScript Editor, en el menú desplegable Tools, teneís en la primera opción ejecutar todo el código, toda la página, y la segunda opción es ejecutar una línea o una selección.

Yo he provado tu código y me a funcionado perfectamente, no tiene ningún error de sintaxis.

jquinchia
Junior
Junior
Mensajes: 47
Registrado: Lun Oct 04, 2010 5:15 am
Alumno: NO
Ubicación: Medellín (Colombia)

Re: Octubre 2010 - Leccion 2 - Sesión P&R

Mensajepor jquinchia » Sab Oct 30, 2010 6:19 pm

Alejandro muchas gracias me solucionaste el problema....ya me imaginaba que era algo muy sencillo sin embargo e perdido toda la mañana por este problemilla.
Gracias por el aporte y mas en tiempo record


Volver a “Convocatorias 2010”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado