miércoles, 25 de marzo de 2015

Lanza Renders por command line para 3dsmax

Render Automáticos

Todos hemos visto las lineas de comando o de código como si estuviéramos viendo Matrix alguna vez en nuestra vida. Esto ocurre por que o no comprendemos su uso o no le vemos utilidad en nuestro día a día.

Intentare explicar SUPERFICIALMENTE como se usan y las posibles utilidades que puede tener en las tareas cotidianas de un estudio o un profesional.




Este campo es muy grande y se puede afrontar de muchas maneras por lo que voy a poner el foco en lo que considero un ejemplo global que puede ser extrapolado a otras áreas de utilización. Me centrare en el uso de los comandos para 3dsmax al ser de las plataformas mas extendidas.


Contenido

1. Uso del CMD
2. Los comandos contenidos en el 3dsmaxcmd.exe
3. Automatización del comando
4. Creador de scripts con Python


1. Uso del CMD

El CMD es el ejecutor de linea de comandos de Windows. Es una herramientas arcaica pero que sigue siendo necesaria a día de hoy. La podéis ejecutar pulsando el botón de inicio de windows y escribiendo:



Inicio > CMD


Os localizara el CMD.exe y lo ejecutará.


Posicionarte

Lo primero que tenemos que tener en cuenta es que los comandos que demos en este terminal se tendrán en cuenta en función del directorio que tengamos o si ponemos la ruta absoluta. Esto quiere decir que si queremos ejecutar algún fichero que esta en C:\ tenemos dos opciones.

1. Nos movemos hasta C:\ y lo ejecutamos allí:

cd /
dir

2. Lanzamos el comando con la ruta absoluta:

dir "C:\"


El tabulador

Cuando queramos escribir una ruta o un fichero en linea de comandos tenemos el problema que tenemos que poner el nombre literalmente. Esto cuando hay ventanas no hay problema porque vamos eligiendo el fichero.
Por escrito se usa la tecla TAB. Esta tecla servirá para que el terminal busque en la ruta indicada ficheros que empiecen por lo que hemos escrito y nos sugerirá opciones para usar con velocidad.


2. Los comandos contenidos en el 3dsmaxcmd.exe

Visto esto nos vamos al directorio de 3dsmax donde esta el comando que nos interesa. Usaremos en esta ocasión la versión 2015.

cd "C:\Program Files\Autodesk\3ds max 2015"

Aquí tenemos el comando 3dsmaxcmd.exe en el que trabajaremos.

Listar parámetros

Con el CMD posicionado en la carpeta anterior introducimos el nombre del programa con el parámetro -help para que nos diga las opciones que el comando admite.

3dsmaxcmd.exe -help

Como nos aparecerá en pantalla son muchos y podremos ver todo lo que podemos decirle a 3dsmax que haga con solo indicarselo en la linea de comandos. Tened en cuenta que estos parámetros afectan al core de 3dsmax y por lo tanto no aparecerán comandos específicos de plugins instalados adicionalmente. Estos cambios hay que abordarlos por los CMD de estos plugins o por código que se ejecuta desde dentro de la aplicación mientras se ejecuta (eso es otro tema).

Componer un comando de render

Como ejercicio vamos a hacer un pequeño comando de render en un fichero *.bat que lance a render una escena cuando lo ejecutamos.
Usaremos un programa de texto para facilitar su estritura. Recomiendo Notepad++ (http://notepad-plus-plus.org/) o Sublime Text (http://www.sublimetext.com/).

Lo primero que tenemos que tener escrito es la ruta al ejecutable de 3dsmaxcmd.exe. Como no sabemos desde que ruta se va a ejecutar el comando recomiendo usar rutas absolutas en todo momento y así no hay error. El uso de rutas relativas puede ser interesante en el caso de que se quiera reciclar el mismo comanda para que actúe sobre distintas escenas con solo mover le *.bat.
Puesto que va a ser un comando que se ejecutara en CMD debe estar escrito en una única linea de código que incluya todo.

1  "C:\Program Files\Autodesk\3ds max 2015\3dsmaxcmd.exe"

Añadimos la escena a calcular:

1  "C:\Program Files\Autodesk\3ds max 2015\3dsmaxcmd.exe" "C:\xxx\CMD\Test CMD.max"

Ahora entre el ejecutable y la escena podemos darle parámetros para decirle al render que no use lo que esta configurado en la escena sino lo que le ponemos en los parámetros. En el caso de no introducir el parámetro se procesara el que contiene la escena. Voy a destacar algunos:

Cambiamos la ruta, nombre y formato del fichero de salida del render. Ten en cuenta que si el directorio no existe el render fallara en el proceso de escritura y dará un error.
-o "C:\xxx\CMD out\test.png"

Le decimos a max que renderice con una cámara que exista en la escena
-cam Camera001 Camera002

Cambiamos la resolución del render
-w 200
-h 500

Se cambian los frames que se van a procesar. En el caso de dar un rango los frames de salida tendrán la numeración de los frames.
-start 0
-end 100

Se le especifica a max una ruta donde debe buscar las texturas de las escena ademas de las que tiene cargadas en la configuración y en la que esta el fichero max
-bitmapPath "C:\xxx\CMD Txture"


www.RenderFlow.com