Como ya comente en el post anterior estamos preparando un proyecto para el cual massive va a ser una gran complicacion ya que no es tan facil como meter una agente ya pre-hecho sino que tendremos que diseñar varios agentes distintos para combates y mas, asi que cuanto mas facilitemos el trabajo mejor, una de las ideas es que se puede hacer una buena parte del trabajo en maya de modo que pueda trabajar mas gente sin que tengan que tener obligatoriamente unos conocimientos buenos de massive, para ello primero hemos probado varios renders como Prman, Vray, Air o incluso importar los agentes de massive a maya,
Al principio cada uno nos dio unos problemas, PRman lo lento que es en algunos casos en cuanto se activa el raytrace, el Vray en la version que teniamos no renderizaba mas que a single thread y el Air que para windows (que es en lo que tenemos la farm :( ) no hay version mas que de 32 bits, asi que con cada uno teniamos una limitacion pero en esta actualizacion que hicimos de massive el plugin ya funcionaba bien y ya se puede renderizar en vray sin demasiada complicacion, esto unido a que en la version de vray 2.0 podemos editar las escenas mediante python nos da la posibilidad de crear un modo de trabajo que a mi personalmente me parece muy viable para este tipo de proyectos
Lo que intentabe hacer fue que desde maya, mientras se esta trabajando en el entorno se pudiese cargar en tiempo de render la escena de massive, para ello usamos en las render globals de Vray dentro de la seccion de Mel/Python callbacks la seccion de Post Translate Python Script, en esta seccion podemos editar la escena en python una vez que ya la hemos exportado, nos da la posibilidad de cambiar shaders, eliminar objetos o incluir otras escenas. Esta ultima posibilidad es la que vamos a usar para hacer que nos cargue la escena de massive, para ello en massive tenemos que crear la simulacion y decir que nos genere las vrscenes en vez de los ribs, tendremos que tener todas las variables de entorno seteadas para acceder a los shaders y al render y nuestros agentes deben de tener los shaders de Vray bien seteados en el renderpass correspondiente. y solo necesitamos escribir algo asi en el PTPS
es un poco mas largo de lo exactamente necesario, pero es para poder cargar los distintos frames, segun esta renderizando, ya que el script se ejecuta solo al lanzar el render, con lo que tendremos que lanzar el render a la farm en trabajos de 1 frame
de este modo tenemos una linea de trabajo definida, ahora quedaria exprimirla un poco mas para poder sacar recortes de objetos, modificar shaders en maya y mas
programacion, recursos y tecnicas para solucionar marrones en programacion de vfx
Entradas populares
-
Muchas veces tenemos que crear cadenas de texto a partir de variables que tenemos, estas cadenas de texto pueden ser lineas en un archivo, ...
-
con el cambio de la interface de maya a qt, la creacion de interfaces que era bastante complicada en versiones anteriores se ha simplificado...
-
Como ya comente en el post anterior estamos preparando un proyecto para el cual massive va a ser una gran complicacion ya que no es tan faci...
Mostrando entradas con la etiqueta maya. Mostrar todas las entradas
Mostrando entradas con la etiqueta maya. Mostrar todas las entradas
lunes, 12 de marzo de 2012
miércoles, 3 de noviembre de 2010
configurandolo todo
lo primero comentaros como tengo yo todo preparado para trabajar
suelo trabajar con eclipse como ide para los scripts, con el subversive como conexion a subversion y el pydev.
tambien tengo el qtdesigner para diseñar las interfaces, todo lo podeis descargar y configurar tal y como cuenta en esta pagina
mi modo de trabajar es bastante basico, en eclipse escribo las classes o los metodos y desde maya las llamo, intento no desarrollar nada en maya, sobre todo por lo facil que es perder un script cuando cometes un fallo y el script no acaba
hay tambien una conexion eclipse->maya que esta bastante bien para los scripts en mel
de toda la configuracion lo mas complejo es el autocompletar, me ha dado algunos fallos pero siguendo las instrucciones de la web que he puesto funciona bastante bien
tengo configurado dos interpretes de python en el eclipse, uno el python 2.6 y otro el mayapy del maya 2011 que es con el que suelo correr los scripts, asi desde eclipse puedo lanzar tareas a maya.
luego tengo el script mas importante en este momento de mi arsenal, el que me permite facilmente ejecutar cualquier script dentro de maya, lo copie de esta pagina
este script nos permite definir metodos y funciones que se ejecuten dentro de maya simplemente importando esta funcion y poniendo "@MayaPython" en la linea anterior a la definicion de nuestra clase, por ejemplo
este script nos abrira el archivo y lo lanzara a render, realmente lo que estamos haciendo al poner @MayaPython es pasar la funcion que estamos definiendo como argumento para la funcion MayaPython(), que esta ejecuta al final, asi tenemos un modo muy facil de ejecutar scripts sobre maya sin abrir la interface
suelo trabajar con eclipse como ide para los scripts, con el subversive como conexion a subversion y el pydev.
tambien tengo el qtdesigner para diseñar las interfaces, todo lo podeis descargar y configurar tal y como cuenta en esta pagina
mi modo de trabajar es bastante basico, en eclipse escribo las classes o los metodos y desde maya las llamo, intento no desarrollar nada en maya, sobre todo por lo facil que es perder un script cuando cometes un fallo y el script no acaba
hay tambien una conexion eclipse->maya que esta bastante bien para los scripts en mel
de toda la configuracion lo mas complejo es el autocompletar, me ha dado algunos fallos pero siguendo las instrucciones de la web que he puesto funciona bastante bien
tengo configurado dos interpretes de python en el eclipse, uno el python 2.6 y otro el mayapy del maya 2011 que es con el que suelo correr los scripts, asi desde eclipse puedo lanzar tareas a maya.
luego tengo el script mas importante en este momento de mi arsenal, el que me permite facilmente ejecutar cualquier script dentro de maya, lo copie de esta pagina
import sys, os
SZ_MAYA_LOCATION = 'C:/Program Files/Autodesk/Maya2011'
def MayaPython(func):
def MayaEnvironWrapper(*args):
os.environ["MAYA_LOCATION"] = SZ_MAYA_LOCATION
sys.path.append(os.environ["MAYA_LOCATION"] + "/Python/lib/site-packages")
import maya.standalone
import maya.mel as mel
maya.standalone.initialize(name = 'python')
version = mel.eval('getApplicationVersionAsFloat')
print 'ejecutando maya version %s' % version
# extra initialization scripts
#maya.mel.eval('source "initialStartup.mel"')
return func(*args)
# end of MayaEnvironWrapper
return MayaEnvironWrapper
# end of MayaPythoneste script nos permite definir metodos y funciones que se ejecuten dentro de maya simplemente importando esta funcion y poniendo "@MayaPython" en la linea anterior a la definicion de nuestra clase, por ejemplo
from MItools.maya_tools import MayaPython
import MImayaObjects.scene as MIscene
@MayaPython
def MIrender_vray(path):
scene=MIscene.scene(scenePath = path)
scene.abre_file()
scene.lanza_render()
ERrender_vray('c:/directorio/projecto/archivo.mb')este script nos abrira el archivo y lo lanzara a render, realmente lo que estamos haciendo al poner @MayaPython es pasar la funcion que estamos definiendo como argumento para la funcion MayaPython(), que esta ejecuta al final, asi tenemos un modo muy facil de ejecutar scripts sobre maya sin abrir la interface
Suscribirse a:
Entradas (Atom)