Move to object pivot

Hulkong - 02/04/2009 23:20
Hola. A ver si algún ducho del script me puede ayudar. Tengo un script que funciona con versiones anteriores al Maya 2008, que es la que utilizo, el script en cuestión es movetoobjpivot, que mueve objetos al punto pivote de otros objetos. Con la versión 2008 ya no funciona y no he encontrado nada por internet ni en el libro de the art of rigging de CG-Toolkit, que es de dónde lo saqué. (por cierto, recomiendo encarecidamente este libro).
¿Alguien sabe algo? Gracias de antemano.
Sayden - 03/04/2009 09:20
¿O sea que hace coincidir puntos de pivote? Entonces no creo que sea un Mel exclusivo para 8.5. Podrías revisar el código a ver si hay algún chek para comprobar la versión por que yo creo que no tendrá código tan estricto.
Caronte - 03/04/2009 09:46
Vaya, algo tan básico y sencillo no viene en el propio programa de serie? A veces alucino con las cosas que yo siempre doy por hechas y que en los softwares más profesional brillan por su ausencia.
Hulkong - 03/04/2009 11:03
Sayden luego si te pillo te paso el script y me comentas, que yo no tengo ni #¡%* idea. He buscado en highend, pero nada de nada, es realmente algo incomprensible, por lo sencillo y lo útil que es al mismo tiempo.
Sayden - 03/04/2009 11:19

Sayden luego si te pillo te paso el script y me comentas, que yo no tengo ni #¡%* idea. He buscado en highend, pero nada de nada, es realmente algo incomprensible, por lo sencillo y lo útil que es al mismo tiempo.

Te espero en el MSN.

Es cierto que ha Maya le faltan muchos Snaps por ahí, como que lo tiene muy básico.
NOMA Studio - 03/04/2009 21:53
Creo que a mí me pasa lo mismo tengo el script bc_batchrenderview 2.1.0 de Highend3d que sirve para hacer el Batch render en el render view. El caso que no sé si es que no sirve para Maya 2008 o es que lo hago mal, yo lo he metido en la carpeta script lo he cargado en el script editor, lo he arrastrado al shelf, he abierto mi escena, he pulsado el botón y me da este error syntax error ¿Qué puede será.
AbrahamDP - 03/04/2009 22:20
Buenas, poco se de programación, así que supongo que, poco podre ayudar. De todas formas, vomito por aquí un poco, por si sale algo bueno de mis entrañas.

Desde Maya 2008, no rekuerdo ahora si en el 7.5 también se dio el caso, han añadido Python. Y puedes desarrollar scripts tanto en mell como en Python. Solo tienes que klickar en el botón mell, del interfaz, para cambiar de un lenguaje a otro. Si tienes el botón en modo Python e introduces un script en mell, te manda a tomar cervezas.

Por otro lado, el año pasado una persona que kontrolaba muchísimo del tema, me comento que con el tema doble lenguaje, la habían kagado un poco, y de cuando en vez no aceptaba scripts de uno de los dos lenguajes, aunque el código de este, estuviera perfecto.

Hulkong, hola, busca por si andará por el limbo un script del move todo object pivot en Python. He estado buskadolo y no le he encontrado, pero eso no quiere decir que buskando mejor que yo no lo enkuentres.

En fin, espero que lo hallais solucionado. Un saludo.
Cesar Saez - 04/04/2009 09:19
¿Esto no debería hacer lo mismo? No tengo Maya aquí para comprobarlo, pero debería funcionar. Mel:
[code]string $mysel[] = `ls -sl`.

Deleete `pointconstraint $mysel`;[/code]
NOMA Studio - 04/04/2009 13:20

Desde Maya 2008, no rekuerdo ahora si en el 7.5 también se dio el caso, han añadido Python. Y puedes desarrollar scripts tanto en mell como en Python. Solo tienes que klickar en el botón mell, del interfaz, para cambiar de un lenguaje a otro. Si tienes el botón en modo Python e introduces un script en mell, te manda a tomar cervezas.

Por otro lado, el año pasado una persona que kontrolaba muchísimo del tema, me comento que con el tema doble lenguaje, la habían kagado un poco, y de cuando en vez no aceptaba scripts de uno de los dos lenguajes, aunque el código de este, estuviera perfecto.

Gracias puede que haya algo de eso, lo desconozco, aunque creo que es más cosa de la versión, leí que era para Maya 7 y 8 y yo lo estoy ejecutando en el 2008. Aunque he conseguido que no salga el error, recortando parte del código que era meramente explicativo.

De todos modos, creo que hago algo mal, no sé si tengo que escribir algo en código o no sé, en el final viene un comando que dice así.

Print (\n=============render of \ + $layer + \ ended============\n\n).

No sé si tengo que escribir algo ahí.
Sayden - 04/04/2009 20:21

Gracias puede que haya algo de eso, lo desconozco, aunque creo que es más cosa de la versión, leí que era para Maya 7 y 8 y yo lo estoy ejecutando en el 2008. Aunque he conseguido que no salga el error, recortando parte del código que era meramente explicativo.

De todos modos, creo que hago algo mal, no sé si tengo que escribir algo en código o no sé, en el final viene un comando que dice así.

Print (\n=============render of \ + $layer + \ ended============\n\n).

No sé si tengo que escribir algo ahí.

No, parece que esa parte está bien.

Cesar, tengo mis dudas sobre lo que hace el script que has escrito (es que tampoco tengo Maya delante).
¿Crea un array con la selección actual y después borra el que?
¿No debería haber en alguna parte translatex translatey y translatez?
Cesar Saez - 04/04/2009 20:37
Lista la selección, crea un point constraint (que alinea los objetos) y luego lo elimina dejándolos alineados.
Sayden - 06/04/2009 09:01

Lista la selección, crea un point constraint (que alinea los objetos) y luego lo elimina dejándolos alineados.

It works.

Aunque no entiendo muy bien como. Tampoco es que sea muy espabilado con Mel, pero como que lo hace muy al vuelo ¿no?
Vaya. Es como si borrara directamente el pointconstraint antes de crearlo.

Funciona perfectamente, pero, ¿por qué no hay en medio una línea del tipo?:
[code]String $mysel[] = `ls -sl`.

Pointconstraint $mysel[0] $mysel[1].

Deleete `pointconstraint $mysel`.
[/code]
Cesar Saez - 06/04/2009 16:29
Se podría hacer en las 3 líneas, pero la idea es siempre optimizar el código todo lo posible sin llegar a hacerlo poco legible.

Lo de borrar el pointconstraint en la misma línea de su creación pasa porque el comando va entre `, esto implica que lo que le entregamos al comando deleete es el resultado del comando (lo mismo pasa con el `ls -sl`) y por ende podemos borrarlo inmediatemente después de la creación en la misma línea. Saludos.
Sayden - 06/04/2009 17:10

Lo de borrar el pointconstraint en la misma línea de su creación pasa porque el comando va entre `, esto implica que lo que le entregamos al comando deleete es el resultado del comando (lo mismo pasa con el `ls -sl`) y por ende podemos borrarlo inmediatemente después de la creación en la misma línea. Saludos.

Gracias César, no sabía que se podía hacer así también. Es que me he liado mirándolo de forma secuencial y no me he dado cuenta de que era lo mismo que el `ls -sl`, y como encima era un deleete lo que había delante. Mis neuronas han patinado durante unas horas saltando entre la lógica y la magia.