Gracias Gracias:  0
Resultados 1 al 5 de 5

Tema: python : obtener camaras desde un maya ma

  1. #1
    Miembro Nuevo
    Fecha de ingreso
    Feb 2009
    Mensajes
    3

    python : obtener cámaras desde un maya.ma

    Hola, estoy intentando realizar un script en python ( soy novato programando), donde pueda obtener una lista de las cámaras que hay en un maya.ma.

    Hasta ahora he conseguido isolar las líneas del archivo donde están los nodos de la cámara, pero no se como obtener el nombre de las mismas que hay al final de la línea e introducirlo en una lista:


    Ejemplo:

    #linea del archivo maya.ma:

    createNode camera -s -n "perspShape" -p "persp"


    y el script que tengo hasta ahora:

    def file():

    fName = open(' ubicación archivo en mi pc', 'r')
    cameras = []

    for line in fName:
    if ' createNode camera' in line:

    # aquí es donde debiera obtener el nombre de la cámara

    cameras.append()

    return cameras



    Gracias por la ayuda

    Borja

  2. #2
    Senior Member Avatar de Sayden
    Fecha de ingreso
    Dec 2007
    Ubicación
    Pepino´s Land
    Mensajes
    681

    Re: python : obtener cámaras desde un maya.ma

    Cita Iniciado por borparo Ver mensaje
    Hola, estoy intentando realizar un script en python ( soy novato programando), donde pueda obtener una lista de las cámaras que hay en un maya.ma.

    Hasta ahora he conseguido isolar las líneas del archivo donde están los nodos de la cámara, pero no se como obtener el nombre de las mismas que hay al final de la línea e introducirlo en una lista:


    Ejemplo:

    #linea del archivo maya.ma:

    createNode camera -s -n "perspShape" -p "persp"


    y el script que tengo hasta ahora:

    def file():

    fName = open(' ubicación archivo en mi pc', 'r')
    cameras = []

    for line in fName:
    if ' createNode camera' in line:

    # aquí es donde debiera obtener el nombre de la cámara

    cameras.append()

    return cameras



    Gracias por la ayuda

    Borja
    Hola y bienvenido :D

    Yo también soy novato programando pero, en donde pones cameras.append() no deberías añadir exactamente qué quieres agregar?

    Quiero decir, en este caso no debería ser algo como cameras.append(line) (es que este comando no sé si puedes meterle argumentos)

    Por lo que creo, estas comprobando si la línea tiene ese string y, si lo tiene, agrega un índice a la lista, pero cual?

    Recalco que yo también soy novato y puedo estar equivocado.
    Última edición por Sayden; 09-02-2009 a las 11:08
    "Todo el mundo necesita un Grid en su vida"
    - Will Cunningham "The Magic Of Houdini"

    Mis blogs:
    http://houdini3d.blogspot.com - Blog dedicado a Houdini
    http://mariocaster.blogspot.com - Blog dedicado al 3D en general

    ¿Quieres aprender Renderman, el motor de render de Pixar?

  3. #3
    Miembro Nuevo
    Fecha de ingreso
    Feb 2009
    Mensajes
    3

    Re: python : obtener cámaras desde un maya.ma

    Hola!
    Tienes razón, en cuanto al uso de append (en el script falta el argumento).
    El for loop busca las líneas de texto que contienen "createNode Camera", donde al final de la línea pone el nombre de la cámara que contiene la escena " -p "perspective", -p "front" etc...
    Donde me lio es intentando meter el valor de "-p" en una variable que seria el argumento usado en el append, para añadir las cámaras a la lista.

    Por ejemplo:


    def file():

    fName = open(' ubicación archivo en mi pc', 'r')
    cameras = []

    for line in fName:

    #esta línea la he puesto para que solamente se lean las líneas del archivo donde
    #esta el nombre de la cámara (-p "nombre")
    if ' createNode camera' in line:

    # no se exactamente como hacerlo pero el script debería tomar el valor de "-p" por cada #linea que contenga 'createNode camera' y usarlo para crear la lista

    cameras.append('-p')

    return cameras

    #["front","top","side", "perspective", "rendercam","projectcam"..."n"]

  4. #4
    Senior Member Avatar de Sayden
    Fecha de ingreso
    Dec 2007
    Ubicación
    Pepino´s Land
    Mensajes
    681

    Re: python : obtener cámaras desde un maya.ma

    Pero tiene que ser desde un archivo .ma obligatoriamente? Es que es mucho más sencillo hacerlo desde la línea de comandos de Python de maya sería algo así como:

    #importa el intérprete de comandos mel a python
    import maya.cmds as cmds

    #crea una lista con los objetos cámaras (y sus atributos)
    lista[] = cmds.ls (cameras=True)

    Y tendrías una lista con los objetos cámaras

    Sino, para hacerlo como dices, deberías meterte en la API de Python a mirar la zona de strings y ficheros de tal manera que:

    Que encuentre las líneas con 'createNode camera'
    Que recoja el valor en string '-p' + strings hasta el final de línea
    Que cuente 3 caracteres ("-" "p" y "[espacio]") y te devuelva el string que hay hasta el final de la línea.

    Seguro que hay otra forma más sencilla, o un comando que lo hace directo, como ya te he comentado, échale un ojo a la API:

    http://docs.python.org/contents.html
    "Todo el mundo necesita un Grid en su vida"
    - Will Cunningham "The Magic Of Houdini"

    Mis blogs:
    http://houdini3d.blogspot.com - Blog dedicado a Houdini
    http://mariocaster.blogspot.com - Blog dedicado al 3D en general

    ¿Quieres aprender Renderman, el motor de render de Pixar?

  5. #5
    Miembro Nuevo
    Fecha de ingreso
    Feb 2009
    Mensajes
    3

    Re: python : obtener cámaras desde un maya.ma

    Hola!

    Al final es más simple de lo que creia (como suele ser :

    simplemente usando un split y usando un print desde el final de la lista:


    for line in fName:
    if ' createNode camera' in line:
    lista = line.split()
    print lista[-1:]

    nos serviría para obyener el nombre de las cámaras

    Gracias por la ayuda y las sugerencias.

    Borja

Temas similares

  1. Maya Como puedo obtener este material en maya
    Por diego_o_franco en el foro Render, Iluminación y Cámaras
    Respuestas: 0
    Último mensaje: 08-10-2015, 05:27
  2. mi blog sobre maya, python, pipeline y paranoyas varias
    Por larryvm en el foro Esta es mi página...
    Respuestas: 1
    Último mensaje: 06-11-2010, 14:18
  3. Respuestas: 0
    Último mensaje: 01-06-2010, 23:36
  4. como obtener MaYa 3D PRO
    Por hicham en el foro Cortos de Animación
    Respuestas: 3
    Último mensaje: 24-09-2009, 12:46
  5. Respuestas: 4
    Último mensaje: 27-04-2006, 22:02

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •