Ir al contenido

Contenidos

1. Introducción

text

Revisaremos al comenzar el máster los conceptos básicos del medio.

Historia, características y filosofía del lenguaje

Es necesario conocer los orígenes de Python, las características del mismo y su filosofía.

  • Orígenes e historia del Python.
  • Características de Python: paradigmas, tipado, extensión…
  • Filosofía: legilibilidad y transparencia. Principios del lenguaje.
  • Implementaciones.

Preparación del entorno de trabajo

Estudiaremos cómo preparar el entorno de trabajo para el desarrollo con Python.

  • Modo interactivo.
  • Editores de desarrollo: IDEs.
  • Estándares de codificación PEP.
  • Configuración de Maya y conexión con el editor de desarrollo.
  • Nociones básicas de programación en Maya.
  • Import de los módulos principales de Maya.
  • Configuración de Nuke y conexión con el editor de desarrollo.
  • Nociones básicas de programación en Nuke.
  • Import de los módulos principales de Nuke.
  • Configuración de Houdini y conexión con el editor de desarrollo.
  • Nociones básicas de programación en Houdini.
  • Import de los módulos principales de Houdini.

2. Elementos del lenguaje

text

Comenzamos aprendiendo fundamentos de programación a través de los elementos que conforman el lenguaje de programación Python. El aprendizaje se realizará en función del software con el que más cómodo se sienta el alumno (Maya, Nuke o Houdini).

  • Biblioteca estándar.
  • Bloques: tabulaciones.
  • Operadores.
  • Comentarios.
  • Variables.
  • Tipos de datos.
  • Condicionales.
  • Bucles: For y While.
  • Listas y Tuplas.
  • Diccionarios (equivalencia con JSON).
  • Conjuntos.
  • Switch Case.
  • Listas por comprensión.
  • Funciones.
  • Módulos de funciones.
  • Decoradores.
  • Clases: métodos, atributos, propiedades, constructores, herencia…
  • Excepciones.

Prácticas a desarrollar durante la clase:

  • Aplicación del aprendizaje teórico mediante la ejecución práctica.

Prácticas a desarrollar fuera del horario lectivo:

  • Realización de un módulo de funciones desde cero, todas ellas relacionadas con un tema en concreto y con una finalidad específica. El alumno elegirá el software (Maya, Nuke o Houdini).
  • Realización de un conjunto de clases con herencia que implementen una serie de métodos y a su vez lean de módulos de funciones externos (preferiblemente el realizado en la práctica anterior). El alumno elegirá el software (Maya, Nuke o Houdini).

3. Módulos comúnmente utilizados

text

Aprenderemos los módulos de funciones de Python más utilizados y extendidos. El aprendizaje se realizará en función del software con el que más cómodo se sienta el alumno (Maya, Nuke o Houdini).

Prácticas a desarrollar durante la clase:

  • Aplicación del aprendizaje teórico mediante la ejecución práctica.

4. Utilidades de Python

text

Revisaremos los usos de Python que serán útiles en el futuro.

  • Lectura, modificación y creación de ficheros.
  • Uso de contextos.
  • Llamada a procesos externos a Maya.
  • Conexión con bases de datos.
  • Conexión con API rests.
  • Logs.
  • Tests.

Prácticas a desarrollar durante la clase:

  • Aplicación del aprendizaje teórico mediante la ejecución práctica.

5. PySide

text

Vamos a utilizar el framework PySide para la creación de interfaces gráficos, uno de los más extendidos y considerado por ello un estándar. PySide está integrado en Maya, Nuke y Houdini.

  • Historia.
  • Objetivos.
  • Instalación.
  • Configuración.
  • Qt Multibinding.
  • Test de funcionamiento.
  • Application.
  • Dialogs.
  • Layouts.
  • Widgets.
  • Signals.
  • Qt Designer.
  • Carga de archivos .ui en Python.
  • Conversión de archivos .ui en .py.
  • Resumen de todos los tipos de layout y widget disponibles a través de Designer.
  • Módulo Python para gestionar controles de Pyside recursivamente.
  • Estilos .qss en PySide.
  • Iconos.

Prácticas a desarrollar durante la clase:

  • Aplicación del aprendizaje teórico mediante la ejecución práctica.

Prácticas a desarrollar fuera del horario lectivo:

  • Ejecución de una pequeña aplicación con UI poniendo en práctica los módulos vistos de PySide según enunciado del tutor. El alumno elegirá el software (Maya, Nuke o Houdini).

6. Programación en Maya

text

Aprenderemos a realizar herramientas con UI en Maya orientadas a un área, disciplina o departamento.

  • Gestión de atributos personalizados.
  • Listar conexiones.
  • Crear / Eliminar conexiones.
  • Identificadores únicos de objetos.
  • Almacenamiento de metadata en la escena.
  • Trabajar con transformaciones de los objetos.
  • Claves de animación.
  • Nodos de expresión para operaciones complejas
    de Rig.
  • PySide en Maya.
  • Integrar widgets de PySide en el UI de Maya (Dock).
  • Embeber ventanas nativas de Maya en herramientas personalizadas de PySide.
  • Referenciar código externo en Maya.
  • Plugins realizados en Python en Maya.

Set de herramientas de Rig

  • Herramienta de align.
  • Herramienta de keep transforms.
  • Herramienta de instanciar shapes.
  • Herramienta de shapes para rig, etc.

Set de herramientas de Animación

  • Herramienta de sets de controles de animación.
  • Herramienta de Transform to zero.
  • Herramienta de Inbetween.
  • Herramienta de bake constraints, etc.

Set de herramientas de Iluminación

  • Herramienta de carga de sets de luces.
  • Herramienta de link de luces a geometría, etc.

Prácticas a desarrollar durante la clase:

  • Aplicación del aprendizaje teórico mediante la ejecución práctica.

Prácticas a desarrollar fuera del horario lectivo:

  • Realización de un script con funciones útiles dentro de Maya siguiendo el enunciado del tutor.
  • Realización de una pequeña aplicación con UI en Pyside dentro de Maya, siguiendo el enunciado del tutor.
  • Realización de una herramienta para el departamento de Rig según enunciado del tutor.
  • Realización de una herramienta para el departamento de Animación según enunciado del tutor.
  • Realización de una herramienta para el departamento de Iluminación según enunciado del tutor.

7. Programación en Nuke

text

Aprenderemos a realizar herramientas con UI en Nuke orientadas a un área, disciplina o departamento.

  • Import de las librerías de programación en
    Nuke.
  • Nukescript.
  • Documentación online de los comandos de
    programación en Nuke.
  • Listar nodos de la escena (por nombre, tipo…).
  • Crear / Eliminar nodos.
  • Selecciones.
  • Identificador único de nodos por escena.
  • Acceso y manipulación de propiedades de los nodos.
  • Conexiones entre nodos.
  • Nodos personalizados en Nuke.
  • Atributos personalizados en los nodos.
  • Creación de gizmos personalizados y gestión de los mismos por código.
  • PySide en Nuke.
  • Dependencia de la ventana principal de Nuke.
  • Integrar widgets de Pyside en el UI de Nuke (Tabs).
  • Referenciar código externo en Nuke.
  • Cargar menús personalizados en Nuke.
  • Autocarga de tabs personalizados al abrir Nuke.
  • Adaptación de la herramienta de gestión de scripts y herramientas de Maya para Nuke.

Set de herramientas de composición

  • Herramienta de alineación de nodos.
  • Herramienta de carga de gizmos personalizados.
  • Herramienta de carga de templates de composición.
  • Herramienta de recarga de Readers.
  • Herramienta de replace de orígenes de frames de los readers.

Prácticas a desarrollar durante la clase:

  • Aplicación del aprendizaje teórico mediante la ejecución práctica.

Prácticas a desarrollar fuera del horario lectivo:

  • Realización de un script con funciones útiles dentro de Nuke siguiendo el enunciado del tutor.
  • Realización de una pequeña aplicación con UI en Pyside dentro de Nuke, siguiendo el enunciado del tutor.
  • Realización de una herramienta para el departamento de Composición según enunciado del tutor.

8. Programación en Houdini

text

Aprenderemos a realizar herramientas con UI en Houdini orientadas a un área, disciplina o departamento.

  • Import de las librerías de programación en Houdini.
  • Documentación online de los comandos de programación en Houdini.
  • Listar nodos de la escena (por nombre, tipo…).
  • Crear / Eliminar nodos.
  • Selecciones.
  • Identificador único de nodos por escena.
  • Acceso y manipulación de propiedades de los nodos.
  • Conexiones entre nodos.
  • Nodos personalizados en Houdini.
  • Atributos personalizados en los nodos.
  • Código Python en los nodos de Houdini.
  • PySide en Houdini.
  • Dependencia de la ventana principal de Houdini.
  • Integrar widgets de PySide en el UI de Houdini (Dock).
  • Referenciar código externo en Houdini.
  • Cargar menús personalizados en Houdini.
  • Autocarga de herramientas personalizados al abrir Houdini.
  • Adaptación de la herramienta de gestión de scripts y herramientas de Maya para Houdini.

Set de herramientas para FX en Houdini

  • Herramienta de sustitución de orígenes de Alembic de forma masiva en la escena.
  • Herramientas de activación / desactivación de partes de la escena basadas en tipos de objetos o en naming convention.
  • Herramienta de renombrado.
  • Herramientas de carga de elementos de otros departamentos y programas en el plano, basado en la información de producción.

Prácticas a desarrollar durante la clase:

  • Aplicación del aprendizaje teórico mediante la ejecución práctica.

Prácticas a desarrollar fuera del horario lectivo:

  • Realización de un script con funciones útiles dentro de Houdini siguiendo el enunciado del tutor.
  • Realización de una pequeña aplicación con UI en Pyside dentro de Houdini, siguiendo el enunciado del tutor.
  • Realización de una herramienta para el departamento de FX según enunciado del tutor.

9. Desarrollo del Proyecto Final de Máster (PFM)

text

El objetivo del PFM es desarrollar un proyecto propio a lo largo de toda la formación, pudiendo aplicar todos los conocimientos y herramientas que vamos adquiriendo a lo largo del Máster.

  • Elección del proyecto.
  • Planteamiento del proyecto.
  • Seguimiento del proyecto.
  • Evaluación del proyecto.

confirmación