supongamos que una vez que los modeladores han acabado de modelar, sus modelos tienen que ser publicados en un sitio concreto y con estas caracteristicas
- de una solo pieza
- sin historico
- con un locator por encima con el nombre MDL_<nombre del modelo>
y que el script este hecho de tal modo que pueda ejecutarse facilemente desde maya o en modo batch sobre multiples escenas
en primer script lo haremos muy facil, muy parecido al ejemplo que he puesto para el MayaPython
en el lo unico interesante es la llamada a la funcion LVpublicaModelo, a la que le pasamos el nombre que queremos que tenga el modelo, en este caso "cortacesped"
en la clase 'scene' le hemos añadido este metodo, y aunque ya es algo mas complicado seguimos trabajando de un modo mas abstracto
en el llamamos a LVmayaObject que ya lo hemos visto, pero tambien a dos que no hemos visto, el LVmesh y el lvPath
el LVmesh es un descendiende del LVmayaObject donde ejecutamos las tareas propias de los poligonos, y el LVpath es una clase que nos define los path del proyecto como queramos
vemos facil que lo primero que hacemos es crear el nombre del archivo final
luego creamos un objeto de la clase mesh, con el nombre que le hemos dado y llamamos a la funcion combina, esta funcion lo que hace es que le pasamos una lista de objetos de clase 'mesh', nos hace un combine de ellos y nos devuelve un objeto de clase transform, tambien descendiente de LVmayaObject
la lista la hemos generado con un nuevo metodo para la escena, el listade
este metodo nos devuelve una lista de todos los objetos del tipo que busquemos en la escena de maya y nos los devuelve como una lista de mayaObjects o de la clase que necesitemos dependiendo de que tipo de objeto de maya que busquemos
veis que la funcion no es muy complicada, aparte de que nos puede ser muy util en muchos otros casos
ahora creamos el locator que va a ser el padre de este objeto, como aun no hemos definido la clase locator va a tener que ser de clase LVmayaObject, pero de todos modos probamos a tipificarla por si algun dia definimos esa clase
ejecutamos la funcion de creacion
y luego dos funciones que hemos metido nuevas al LVMayaObject, el emparenta, que emparenta un objeto LVmayaObject o un descendiente suyo al objeto actual
y el selecciona, que nos selecciona o añade a la seleccion el objeto actual
al final creamos un nuevo objeto scene llamando al metodo graba_seleccionado en el objeto scena actual
como veis cada una de los metodos nuevos que hemos ido añadiendo a las clases son bastante sencillos, y el metodo publicaModelo no llega a llamar a maya.cmds, estamos abstrayendo las funcionalidades a base
No hay comentarios:
Publicar un comentario