Python para Maya: programación amigable para el artista | Dhruv Govil | Skillshare

Velocidad de reproducción


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Python para Maya: programación amigable para el artista

teacher avatar Dhruv Govil

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

67 lecciones (7h 24min)
    • 1. ¡Introducción!

      1:17
    • 2. Descripción de los materiales de los cursos

      1:17
    • 3. Uso del editor de script

      2:05
    • 4. Hola mundo

      0:55
    • 5. Hola Cube: un mundo de Hola en 3D

      1:07
    • 6. Proyecto 1: crear un pelote de cubo

      11:42
    • 7. Variables y tipos

      8:43
    • 8. Descripción de los idiomas de programación de Maya, bibliotecas

      5:44
    • 9. Nodos en maya

      1:11
    • 10. Python 2 Python

      2:15
    • 11. Guardar tus guiones

      2:00
    • 12. Proyecto 2: Renamer de objetos

      1:30
    • 13. Encontrar ayuda

      2:58
    • 14. El comando de la lista

      2:24
    • 15. Si estados

      5:54
    • 16. Para bucles

      2:58
    • 17. Mientras bucles

      0:57
    • 18. Encontrar tipos de objetos

      4:55
    • 19. Si, Elif y otros declaraciones

      3:43
    • 20. Configuración de PyCharm

      6:03
    • 21. Funciones

      3:27
    • 22. Dictionaries: de claves y valores

      17:44
    • 23. Formateo de String

      5:43
    • 24. Scopes de Python

      3:36
    • 25. Proyecto 3: creador de equipos

      1:30
    • 26. Hacer un script de Python

      2:24
    • 27. Crear un equipo

      13:22
    • 28. Modificar el equipo

      12:15
    • 29. CLASde de tipos y interfaces en Python

      10:40
    • 30. Convertir nuestras funciones a clases

      13:51
    • 31. Proyecto 4: Tweener de animación

      1:30
    • 32. Descripción de las bibliotecas de contactos de usuarios en Maya

      2:32
    • 33. Obtener datos para la función de Tween

      7:01
    • 34. Setting clave con la función de de la función de interpolar

      15:08
    • 35. Crear un interfaz de usuario

      14:21
    • 36. Reutilización de nuestro interfaz para el creador de equipos

      15:22
    • 37. Agregar nuestros guiones a la plataforma de maya

      3:25
    • 38. Proyecto 5: biblioteca de controladores

      1:30
    • 39. Descripción de la biblioteca de Qt Interface

      5:57
    • 40. Qt vs Cmds

      1:54
    • 41. Typing de patato

      2:56
    • 42. Qt.py: uso de Qt en Python

      2:47
    • 43. Importar módulos de Qt

      3:29
    • 44. Crear el directorio de biblioteca

      8:27
    • 45. Guardar los archivos

      6:25
    • 46. Encontrar archivos

      7:00
    • 47. Cargar controladores

      2:18
    • 48. Nuestro primer error

      1:25
    • 49. JSON: lectura y escritura de datos

      11:26
    • 50. Captura de capturas de pantalla

      8:00
    • 51. Documentación de Qt

      3:12
    • 52. Muestra una ventana de Qt

      10:55
    • 53. Construir el interfaz de Qt

      8:53
    • 54. Hacer una galería para nuestros controladores

      7:24
    • 55. Señales y ranuras

      1:40
    • 56. Hacer que nuestro interfaz funde

      19:31
    • 57. Proyecto 6: el gerente de luz

      1:17
    • 58. PyMel: una API Alternate Maya

      4:38
    • 59. Comenzar la interfaz y los elementos

      13:52
    • 60. Widgets y lambdas

      13:23
    • 61. Agrega visibilidad e intensidad a nuestro Widget

      15:32
    • 62. Agregar color a nuestro Widget

      15:06
    • 63. Código y registro portátil

      8:58
    • 64. MQtUtil: combinar Qt con controles de Maya

      13:27
    • 65. Prueba y excepción: manipular errores

      6:07
    • 66. Exportar luces

      10:40
    • 67. Importar luces

      12:35
  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

407

Estudiantes

--

Proyectos

Acerca de esta clase

En Python para Maya: Programación de la persona y pretende, procurando llevarte de experiencia de programación a de interfaces avanzados que puedes usar en la producción de inmediato.

Tanto si eres un principiante absoluto como un intermedio de buscar intermediate sus habilidades, esta clase te enseñará muchas técnicas de programación profesional para ayudarte a hacer tus propias herramientas.

Conoce a tu profesor(a)

Teacher Profile Image

Dhruv Govil

Profesor(a)

Calificaciones de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%
Archivo de reseñas

En octubre de 2018, actualizamos nuestro sistema de reseñas para mejorar la forma en que recopilamos comentarios. A continuación, se muestran las reseñas escritas antes de esa actualización.

¿Por qué unirse a Skillshare?

Toma las galardonadas clases originales de Skillshare

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Toma clases sobre la marcha con la aplicación Skillshare. Transmite o descarga para verlas en el avión, el metro o donde aprendas mejor.

Transcripciones

1. ¡Introducción!: bienvenidos a pelear por Maya. En esta introducción amigable artista a la programación, te estaré caminando a través de tu primera línea de mordida en todo el camino a crear interfaces de usuario de violencia. Aprendes habilidades para ayudarte a trabajar, fomentar y agregar valor en el mercado laboral. Bajo Global Elite, Pipeline Developer está trabajando en películas como Guardianes de la Galaxia, Spider Man y Cloudy con la posibilidad de albóndigas, también. Hablé yo mismo cuando era artista, y ahora mis herramientas las usaban cientos de artistas cada día. Te estaré enseñando con la metodología estatal que solía aprender python creando proyectos realmente geniales que podría hacerte de manera inmediata. Aprende a programar la creación de geometría, crear herramientas de animación, mayor control, una biblioteca y un gestor de iluminación todo mientras aprendes los fundamentos de mis proyectos son complejidad dividida para que puedas saltar en independientemente de su nivel de experiencia. Ya sea principiante o intermedio que busca perfeccionar sus habilidades, puntuación debe ofrecer valor para todos. La programación, especialmente con python, es una habilidad cada vez más valiosa, y creo que con mi curso, cualquiera puede aprender 2. Descripción de los materiales de los cursos: en este proyecto, aprendimos a crear un gestor de luz para gestionar las luces y se ven. Aprenderemos a combinarlo con mis elementos A tú para que podamos atracar y desacoplarlo del maya tú. Yo Adicionalmente, podremos controlar. Adicionalmente, aprenderemos a activar y desactivar nuestras luces de la U I. Solo ellas, eliminarlas y también la engancharemos para controlar la intensidad de la luz así como el color apagado de las luces. En este proyecto, aprendimos a usar Pi Mel como una alternativa orientada a objetos a la biblioteca de Comandos Maya. Aprendimos algunas funcionalidades de python ligeramente más avanzadas, como funciones anónimas, usando Parcial y Lambda, además de usar la biblioteca logger dentro de Python. También aprenderemos a usar partes de la Maya abierta, un p I para interactuar entre son lindos tú elementos y nuestro Maya te manda elementos. Esto será un poco más avanzado que nuestros proyectos anteriores, pero lo desglosaré a cada paso para que siga siendo fácil de seguir. Junto con eso, empecemos 3. Uso del editor de script: Si estás tomando este curso, supongo que estás algo familiarizado con Maya y su usuario y cara. Usted, sin embargo, puede que no esté familiarizado con el editor de guiones. Se puede acceder de tres maneras. Conoces editor de guiones de Editores Generales de Windows, que lo abrirá en una ventana separada. Puedes hacer lo mismo haciendo click en el botón de acceso directo aquí. Adicionalmente, si tiene varios puertos, puede convertir uno de ellos al editor de scripts yendo al editor de scripts del panel Paneles, que cambiará el puerto Ver a un editor de scripts. El editor de guiones se desglosa en dos partes. ¿ La ventana de salida, que representa todo lo que haces en Maya? Por ejemplo, si tuviera que hacer clic en este modelo, se puede ver que dice Seleccionar cuerpo humano. Y si hiciera clic en las gafas, haría lo mismo por las gafas de abajo. Esa es la ventana de entrada ahí. Dos torres por defecto, están Mel y Python. Estos son los dos idiomas. De Maya apoya un scripting. Puedes crear más pestañas y elegir un idioma haciendo clic en el icono pequeño más. Adicionalmente, también puedes ingresar código aquí abajo en la entrada en la línea de entrada y elegir un idioma haciendo clic en la palabra Mellor python para ejecutar cualquier código. Cocinas la flecha doble aquí, y si estás harto de ver la salida aquí, puedes hacer clic en el botón de borrar aquí, y despejará el historial. En el siguiente video, repasaré cómo crear tu primer programa Python muy sencillo dentro de Maya. 4. Hola mundo: Creo que será un video muy, muy corto porque vamos a crear nuestro primer programa Python en el editor de script Maya , elegir la pestaña python y escribir print, seguido de unas comillas de espacio. Hola. Mi nombre es y ponlo en tu propio nombre. Mi nombre es a través de alguien bajado por fin para ejecutarlo. Vamos a dar click en las horas dobles aquí arriba. Al hacer clic en eso, verás los informes de Mayer de vuelta. Hola. Mi nombre es a través. Enhorabuena. Acabas de escribir tu primer programa por Tom continuando desde aquí. Nosotros, por supuesto, vamos a hacer mucho más programas de villanos, pero pensé que te mostraría lo simple que realmente puede ser pitón. 5. Hola Cube: un mundo de Hola en 3D: conseguir mi huella de mi nombre no es tan emocionante. Entonces vamos a crear algo con él en su lugar para un paseo que es deshacerse de este texto. Entonces necesitamos que Python sepa cómo contratar. Admire. Entonces tenemos que conseguir la biblioteca de comandos mayas. Esto lo hacemos escribiendo desde Maya importacion C M. D. S C. Los mDs es abreviatura de comandos. A continuación queremos crear un cubo. Entonces decimos que los comandos puntan Polly Cube y le dan monedas. Te lo explicaré. Estaban diciendo desde la biblioteca de comandos, conseguir el Comando Poly Cube y ejecutarlo dándole a los padres ve le estaban diciendo que lo ejecutara . Entonces ahora vamos a dar click en las flechas dobles y ver qué pasa. He aquí, Maya te crea un abadejo para nosotros. Todavía no súper emocionante. Entonces en nuestro próximo video, te voy a mostrar cómo tomar esto y sacar provecho automáticamente para la animación. 6. Proyecto 1: crear un pelote de cubo: manera tener un cubo. Eso no es todo tan emocionante. Lo que quiero hacer con este cubo, es que quiero parentar debajo de un controlador de círculo para que pueda usarlo como prop de animación . Pero tenemos un problema. Creamos este cubo y mi llamada uno peaky. Pero recordemos si volvemos a llamar a este comando , creará Peak. Tú también. Por lo que en realidad no sabemos el nombre del objeto de mi va a crear. Esto en realidad no es cierto. Lo que por un hace es cuando llamamos a este comando, nos devuelve el nombre de la Cuba creada. Y podemos almacenar esto en algo que python llama una variable. Ahora te mostraré un ejemplo. Entonces si digo cubo es igual a comando. Entonces Polly Cube, déjame deshacerme de estos viejos cubos muy rápido. Y cuando lo ejecutan ahora estoy dirigiendo cosas seleccionándolas y golpeando el control. Entra, Por cierto, si lo hubiera corrido ahora conseguiré un cubo. Y si veo imprimir Cubo, se puede ver que el cubo es igual a algo. En ninguna parte nos dice es que el cubo es igual a P Q uno y Polly Cube uno. Eso es un poco extraño. El motivo es pico. Uno es el nombre del Cubo y Cubo Público. Uno es un nombre fuera del nodo maya que creó el Cubo. Se puede ver que si vuelvo a ejecutar esto, el NASCAR P se queda a y Polly Cube, también. Esto significa que cada vez que lo ejecutes, Cuba igualará el nombre real al objeto. Pero en realidad no queremos al constructor. Simplemente queremos el cubo real en sí. Entonces digamos que la forma del cubo es igual al Cubo cero. Déjame explicarte qué está pasando aquí. Cube es igual a dos cadenas. Una cadena es una palabra o frase. Se puede decir que es una cadena porque está dentro de comillas. ¿ Oyes? Simplemente significa que es una cadena Unicode, y es algo que Maya hace que podemos ignorar. Entonces para todos los propósitos y propósitos, es un dos cuerdas dentro de corchetes. Entre corchetes significa que es una lista de lista es un objeto que puede contener otros objetos. En este caso que contiene dos cadenas, podemos acceder a la lista y obtener un elemento específico mediante el uso de los corchetes. Entonces decimos cubo y entre corchetes y luego damos el número cero. Y si ejecutamos eso, se puede ver que es igual a P Cube, también, que es el primer elemento. Aguanta. Dije cero. Yo no dije una. Y esto se debe a que las computadoras empiezan a contar un cero. Entonces cuando digo cero, en realidad estoy diciendo, Dame el primer objeto. Si fuera a decir si yo era solo uno y vuelvo a ejecutar esto, ahora me da el segundo objeto porque en las computadoras parten de cero. No parten de uno. Entonces cuando digo una, en realidad soy mala con eso es algo confuso, pero tienes que usarlo. Entonces lo que digo es, dame el primer objeto y asignémoslo a forma de cubo. Entonces ahora si reimprimo forma de cubo y eso podría hacer esto, dirá P cubed al cual, si recuerdas, fue el primer objeto fuera de la lista. Llamar Cubo. No, podemos hacer lo mismo con un círculo. Entonces digamos círculo. Es igual al mando. Comienza círculo imprimir círculo para que puedas ver que creamos el círculo de nuevo. Recuerda el Comando Círculo de la biblioteca de comandos y firmamos Lo que Meyer nos regala a la variable círculo. Y luego imprimimos la variable círculo, que nos da una lista de otras dos cuerdas. El primero es un nodo círculo que se puede ver ahí. Y el segundo es de nuevo un objeto de construcción. Círculo es una lista. Te puedo mostrar esto diciendo type circle y puedes ver type is list. Si quiero conseguir el primer objeto en círculo, hago círculo cero, que me da un círculo nervioso uno. Y si hago tipo de eso, me da Unicode. Unicode es un tipo de cadena. Entonces para todos los propósitos y propósitos, sólo lo llamaremos una cadena. Mi amex todas las cadenas Unicode porque así lo maneja bajo el capó. Pero no necesitas preocuparte por eso. Por lo que ahora vamos a obtener forma de círculo es igual al círculo cero. Por lo que ahora tenemos el cubo en forma de círculo. Bueno, tenemos que hacer es el padre uno debajo del otro, así que voy a usar el comando de los padres. Pero si uso el comando parent, nos da un error. Cuando lo ejecuto. Dice no suficientes objetos de valores. Entonces el padre, vamos, en realidad espera a variables. El primero es el niño. En este caso, debo decir forma de cubo. El segundo son los padres. Voy a decir forma de círculo. Y ponemos esto dentro de los paréntesis porque estamos diciendo a los padres cómo correr. Estaban diciendo poner esto debajo de esto. Entonces para ejecutarlo. Ups. En realidad nunca asigné forma de círculo. Déjame correr esto otra vez y luego déjame correr esto otra vez y puedes ver que el cubo está ahora bajo el círculo. Esto es genial porque eso significa que puedo mover el círculo en el Cubo se mueve con él. Pero hay un problema. Si muevo el cubo, todavía se puede mover sin el círculo. Y no quiero eso. Entonces lo que vamos a hacer es que vamos a bloquear los atributos de los cubos para que vayamos a la caja del canal y me dejen aclarar la historia aquí haciendo clic en los iconos del corredor solista. Te puedo mostrar lo que te voy a mostrar. Por lo que vamos a dar click derecho en traducir X y voy a decir bloqueo seleccionado. Ahora, esto nos dijo exactamente lo que hizo, excepto que nos dice en Mel, que no es todo tan útil, pero todavía podemos usarlo del punto de partida. Por lo que sabemos que utilizó el set a sus órdenes. Entonces dijimos comandos que le acaban de decir Sabemos que usó P Cube también. El T X, que es la abreviatura de traducir X como se puede ver por ahí. Y sabemos que dicho candado es cierto. Entonces decimos que el bloqueo es verdadero. ¿ Ver? Por lo que Maya nos contó cómo se ejecuta en Mel, y es realmente sencillo convertirlo a Python. Entonces si ejecuto esto Pero cambiemos TX a t por qué se puede ver que un bloqueado el traducir ¿Por qué canal? Pero aguanta. Pasamos por todo este trabajo para que nunca tendríamos que llamar realmente al Cubo por su nombre real. Y tienes razón. Entonces vamos a deshacernos de esto que vamos a decir es sabemos que el nombre de los cubos se almacenará en forma de cubo. Se pueden agregar cadenas junto con el signo más. Entonces estamos diciendo forma de cubo más pato T y y qué nos va a dar esto si corro esto Bueno, danos p cubed to don t y exactamente como aquí arriba Esto se debe a que las cuerdas se pueden sumar junto con el símbolo más. Pero no quiero sólo hacer t Por qué quería a todos los traductos. Entonces digamos traducir. Y entonces vamos a ejecutar esto y yo encerré las tres traducciones. No, vamos a copiar esto y cambiamos esto para rotar y esto sólo escala y vamos a correr estas dos líneas que acabamos de hacer. Ahora todos los atributos están bloqueados para que pueda mover el cubo. Puedo escalarlo un icono girado, pero puedo rotar, mover y escalar círculo. Entonces ahora solo pasemos por todo esto juntos otra vez. Déjame crear un nuevo archivo de escena que hayas visto, y voy a usar las flechas dobles para correr todo. Y si bien eso fue realmente rápido así que tenemos el cubo, podemos mover el cubo volverse rotado, y no podemos escalarlo en el contorno. Er, el cubo está bajo el círculo, así que podemos ¿quién? El círculo gira el círculo y lo escala y la cola sigue a lo largo. Pero te das cuenta de que cuando hicimos esto, la Cuba seleccionada no sería bueno simplemente poner la cereza en la parte superior para que realmente podamos seleccionar directamente el cubo. Ah, lo siento. Es decir, seleccionar directamente el círculo. Por lo que dijimos comandos confianza. Seleccionar porque estamos llamando al comando select, y le decimos que seleccione una forma de círculo. Entonces ahora cuando lo ejecutamos haciendo clic en la flecha doble, es elige una forma de círculo, y podría moverla, rotarla y escalarla. Entonces en unos minutos, hemos ido y creado un guión. Crearán un cubo, crearán un círculo bien, parent, el cubo debajo del círculo, y luego bloquearemos todos los valores de traducción de cubos para que podamos admitirlo en él. Y por último, real seleccione un círculo. Enhorabuena. Acabas de hacer tu primer programa de Python real en mi, uh 7. Variables y tipos: otro combate de cerveza en pitón un poco. Me gustaría introducir algunos conceptos básicos. En el primer otoño, verás la palabra clave print. Imprimirán cualquier cosa después en este caso, la cadena Hello World cadenas aire denotado por sus comillas. Cualquier cosa en comillas simples o dobles de la cadena. Entonces si digo imprimir tipo hola mundo, se puede ver que el tipo de cadena. A medida que estoy escribiendo, verás el encanto de pastel dándome auto completado para ayudarme a escribir Foster. Entonces si digo imprimir tipo 22 se puede ver que el tipo de 22 enteros enteros los números enteros . Pero si digo un 22.1 ahora está a flote porque flota cualquier cosa con el punto decimal. Otros tipos son falsos, que es un boule y verdadero, que también es boule boule. Corto de lingotes, pueden ser o verdaderos o falsos. Por último, el tipo simple de ley no es ninguno. Ninguno significa que no se asigne nada. Es de tipo monja. Nos han introducido variable así que puedo decir que la comida es igual a hola. Si digo imprimir, Foo imprimirá hola porque hola se está asignando a Fu y estamos imprimiendo Fu, que imprime el valor de hola siguiendo los tipos simples. Ahora tenemos tipos complejos por lo que puedo decir que mi lista es igual a hola 22 y las listas falsas se denotan por los corchetes y básicamente pueden contener cualquier otro objeto dentro de ellos , en este caso, una cadena, un inter y un lingote. Entonces si diría imprimir mi lista fuera, conseguir una lista que contenga la cadena el Inter durante el booleano que le di, y contiene otras variables puedo decir que Fu es igual a verdadero Y si agrego esto al final, si puedo escriba correctamente, se puede ver que ahora incluye el valor de Fu. Puedo cambiar objetos en una lista diciendo mi lista dot append y puedo despedirme. Y si imprimo mi lista, puedes t que ahora incluye la palabra adiós. Puedo acceder a los objetos de una lista dando corchetes a la lista y dando un número. Entonces si digo el número dos que sé se hacen falsos. Si creo que el número uno consigo 20 para saber por qué es este el número uno debe ser. Hola, ¿verdad? Porque es el primer objeto. No, en Python y otros lenguajes informáticos, empiezan a contar desde el número cero. Entonces vaya 0123 Así que cuando decimos el número uno, en realidad no nos referimos al segundo objeto, que es 22. De igual manera, podemos reasignar cosas dentro de una lista para que podamos decir mi lista número cero es igual a no lo sé. Digamos que suficiente spam. Tú imprimes mi lista. Eso se puede ver en especie de. Hola. Es un spam. Es Vamos a aclarar esto. No, existen diferentes tipos de listas. Tenemos una lista sencilla con corchetes. Tenemos unas listas más complejas, que son las dos personas que ha hecho con corchetes o paréntesis, por lo que podemos hacer lo mismo. Fu bam 22. Falso, Verdadero. Al igual que un puñetazo de valores. Entonces decimos, imprime mi para tirar y teclea para jalar un mi para tirar. Se puede ver que obtenemos el para tirar hacia atrás, y de hecho es de tipo tirar a lo que hace un to pull diferente a una lista. Bueno, no puedo hacer mi para tirar de punto upend porque dos piscinas no tienen atributo. Un lápiz e icono reasignaron cualquier cosa privilegiada para tirar porque el para tirar no admite asignación de elementos. De igual manera, tenemos un objeto llamado conjunto. También es especial en que entra en contacto con duplicados del mismo valle. Entonces digamos que tengo a Fu. Vamos a cambiar el spam demasiado pocos también. Entonces si fuera a imprimir mi para tirar, ya verás que ahí, también, también, para ahí a los alimentos 22 de False en. Cierto. Si convierto el conjunto de tensiones usando la función set, puedes ver que se establece un olor que es falso. La verdadera comida y 22 juegos no tienen un pedido, pero también son únicos para que te pongas en contacto con múltiples alimentos y no puedes de múltiples 20 dos, por ejemplo. Por último, tenemos otro tipo de colección llamado diccionario. Un diccionario es algo así como lo que esperarías en inglés. Tienes una definición fuera de python, por ejemplo, y dirías que es ah, lenguaje de programación excepto así Básicamente tendrías una clave y un valor. Entonces definamos nuestra primera victoria. Decimos que mi polla es igual a, y le das llaves para diccionario dices nombre dentro de comillas y este será el colon clave y sus corchetes. Diremos que condujo. Le daremos una coma y dirás: Rodar y otra vez colon y guardar tubería TD otra vez. Tienes la clave, el valor otra clave, otro valor. Y al igual que las listas, diccionarios pueden contener tipos de variables. Entonces de nuevo tenemos un entero en lugar de solo cadenas. Y podemos guardar imprimir mi adicto Así que algo que sabes, diccionarios como conjuntos no se ordenan como conjuntos que no pueden compartir. No pueden tener más que el mismo Ah kee Así que, un conjunto no podría tener el mismo valor varias veces. La adicción no puede tener la misma clave varias veces. Mira, sólo puedo tener un nombre, un rollo en una edad para acceder al diccionario. Lo usan como una lista. Pero en lugar de dar un número, doy la clave a la que quiero acceder. Entonces cuando un nombre de acceso. Entonces le pregunté su nombre y me dan nombre y el valor de a través. Si quiero cambiar eso, puedo decir que me llamo Cartman. Si imprimo mi polla No, me llamo Cartman. Por lo que diccionarios de listas similares. Pero en especie de tener números como sus índices, tienen palabras. Esto completa una mirada rápida a algunos conceptos básicos de python que necesitaremos para continuar por el camino. 8. Descripción de los idiomas de programación de Maya, bibliotecas: desgaste ahora va a ir por encima de todos los lenguajes de programación y ojos AP dentro de Maya, mi tiene a un P i bibliotecas. El primero es una biblioteca de comandos o C M. D. S para abreviar. Consiste en comandos de tamaño de mordida que los artistas pueden usar para unir juntos para hacer aplicaciones y herramientas más grandes . la otra biblioteca dentro de Maya se le llama el Open Maya a P I. Esto le da a los desarrolladores técnicos acceso profundo la arquitectura interna de Jeremiah, pero viene a costa de la complejidad, y no es muy adecuado para que los artistas recojan rápidamente . Pero el resto de este curso se centrará principalmente en la biblioteca Comandos. Mi tiene cuatro lenguajes de programación. El primero es Mel. Mel es un lenguaje específico maya que pretende ser simple para que los artistas lo recojan, y sólo puede usar los comandos de la biblioteca melas, siendo un lenguaje interactivo que se debilita. Escríbalo y vea los resultados en tiempo real. Este es un póster el otro idioma primario de Maya, C plus plus que se utilizó para crear mi propio. C plus plus es un lenguaje más complejo, y solo puede acceder a ti abrir mi A p I. Adicionalmente, C++ requiere compilarse con anticipación, lo que significa que solo se puede distribuir. Es plug ins y no se puede desarrollar en tiempo real. Al igual que C ++, Maya tiene otro lenguaje llamado C Sharp C. El soporte Sharp en Maya se limita a Windows, y tiene las mismas advertencias. A C plus tiene que ser compilado y sólo se puede acceder al open my A P I. En el lado flip, C Sharp es bastante más fácil de usar que C plus, y es bastante popular en la comunidad de juegos. Por último, el lenguaje de programación perdido y Maya. Y el foco de este curso es Python. Python se encuentra en una posición única porque puede acceder tanto a la biblioteca Open my A P I como a la biblioteca Comandos. Es el único lenguaje dentro admirar que es capaz de hacer esto. A diferencia de Mel, Python es utilizado por programadores fuera de Maya también. Similar a C plus y C Sharp Fight on es bastante popular en la comunidad de programación. Google lo ha elegido por sus tecnologías de aprendizaje automático. Dropbox lo usa ampliamente, y los científicos lo usan para la investigación científica. Lo que esto significa es que Python tiene una comunidad muy Voss con muchas bibliotecas que podemos aprovechar para usar dentro de Maya para herramientas. Adicionalmente, esto significa que hay mucho recurso es para el tiempo del pastel. El motivo de la popularidad de los pitones es porque es un lenguaje intuitivo, vez que proporciona muchas características avanzadas que tienen tanto C plus plus como C sharp. Esto viene a costa del desempeño. Python está en medio de la carretera. Es mucho más fácil de usar y C plus y C agudo, pero puede ser mucho más lento. Por lo general, este es un comercio que vale la pena hacer, porque el código python es bastante fácil de escribir, y muchas veces no necesitas la velocidad que C más una oferta aguda de C. Insider Maya. En realidad hay cuatro bibliotecas AP I que Python puede hacer uso de la primera de la biblioteca Comandos. Esto fue diseñado originalmente para Mel, pero podemos usarlo desde dentro de Python también. El comando Lavery es bastante rendimiento, pero debido a su patrimonio como ser creado para Mel, parte de la sintaxis y uso puede hacer que sea bastante verboso de usar en python. Esto no es ideal, pero tampoco es un rompetrato. El otro un PR que ya mencioné es el Maya abierto, un P I. En realidad hay dos versión de este abierto Maya uno y abrir mi A para abrir Mi A one fue diseñado originalmente para C plus plus y otra vez, como comandos. No es completamente platónico. Esto significa que a menudo estarás escribiendo cosas que no tienen sentido en Python, pero habría tenido sentido en un mundo C plus plus en reacción a este Autodesk hizo abierta Maya demasiado abierta Mi A two es un poco más platónico y sencillo de usar dentro de un tiempo de tarta. Desafortunadamente, aún no tiene función completa, por lo que aún tendrás que usar una abierta Maya. En algunos casos, el Lost A p I el Python puede usar. Insider Maya es un AP híbrido que creé por Loom. Un lanzador llamado Time L Primal fue renunciado desde cero para proporcionar una interfaz muy parecida a pitón dentro de Python. Esto hace envolver la biblioteca Comandos y el Open Maya AP I en una interfaz que podemos usar. Primal es un placer usar porque puede recortar el código que tenemos que escribir y hace que sea mucho más fácil interactuar con objetos dentro de Maya. Esta flexibilidad viene a un costo pi Millikan muchas veces ser más lento que tanto masculino como el abierto mi i p I. Adicionalmente, algunos estudios no permiten primal por las preocupaciones de velocidad y por algunas preocupaciones de estabilidad. Generalmente, si estás escribiendo tiras, molino de tartas está bastante bien de usar. Pero para este curso me estaré centrando principalmente en la biblioteca de comandos porque es más importante aprender. Tendremos un proyecto que usará brevemente tanto el abierto Maya FBI así como un metal za pi , un p I para todo el proyecto. Con esto cubierto, sigamos con nuestros próximos proyectos. 9. Nodos en maya: cuando necesitamos afectar objetos dentro, un maya estará afectando principalmente atributos sobre estos objetos. Estos atributos son a menudo referidos por el nombre del objeto, seguido de un punto y luego finalmente seguido por el propio nombre del atributo. Cada objeto en Maya es en realidad un nodo. Se puede ver esto dentro del editor de notas, pero te voy a mostrar un diagrama simplificado. Cada nodo tiene varios atributos para reconectarlo. Podemos acceder a estos atributos en nuestros scripts mediante el uso del nombre del objeto dot y el nombre de los atributos. Pero en el nodo, los objetos aparecen llamados enchufes. Los enchufes pueden tener un valor establecido en ellos, y eso es lo que a menudo hacemos con el script. También podemos teclearlos, pero también podemos crear conexiones entre un nodo, enchufes y otros. Es así como la mayoría, si no todos, los objetos dentro de Maya interactúan entre sí. También es cómo se estará interactuando principalmente con objetos dentro de un maya. Al cambiar estos valores, usar nuestros scripts 10. Python 2 Python: en este video, estaremos repasando las dos versiones diferentes de Python en el Wild. Las dos versiones actuales de Python, Our Fight on 2.7 y Python 3.5 Python 2.7 es la última en la python a Siri y Python 3.5 es la última versión en el Python tres. Siri's Fight on two no verá un desarrollo más activo fuera de simples arreglos de seguridad y recibirá un fin de vida en el próximo par de años. La Fundación Python ha decidido que Python tres es un camino a seguir. No, ¿por qué hay diferentes versiones de Python? Bueno, esto se debe a que python a y python tres cuántos romper cambios entre ellos. Esto significa que Python a código no está garantizado para ejecutarse bajo Python tres. Adicionalmente, Python tres tiene muchas características nuevas que no pueden ser utilizadas por python a esto significa que aunque el lenguaje es muy similar entre Python a y python tres y en la mayoría las instancias ni siquiera se puede decir la diferencia, sí significa que python to y python tres no están garantizados para ser compatibles entre sí . Mi originalmente lanzó con Python en mi 8.5 con Python versión 2.4 punto tres en Mi A 2000 y nueve, la actualización de la versión de Python 22.5, y Maya 2011. Se actualizaron nuevamente a 2.6. Por último, en mi 2014 han actualizado a Python para luchar en 2.7. Esta es la versión más reciente de Patan en la pitón a Siri y probablemente será el Lost. El sector de los efectos visuales ha decidido quedarse con Python 2.7 todo el tiempo que puedan. Esto se debe a la importante inversión en la python a ecosistema, que sería difícil de portar a Python tres. La plataforma VFX ha decidido que bite on 2.7 es una versión de Python que todo el software debería estar usando. Por lo tanto, siempre que estemos desarrollando para Maya, estaremos usando Python 2.7 11. Guardar tus guiones: video. Voy a repasar cómo guardar el guión y luego despacio o o sentarme de nuevo para que vayamos al script seguro de archivos . Esto trae hasta arriba el navegador de documentos, los documentos destruidos en diferentes ubicaciones en diferentes sistemas operativos antes de Windows. Está bajo documentos. Maya, tú, mi aversión y guiones. Si estás usando Mac OS o Lennix, me aseguraré de haberlos mencionado en el video. Voy a guardar el script como objeto renombrar, er ejemplo punto pastel y golpear Guardar otro. Guarda el guión. Yo puedo deshacerme de esto. Ahora que el guión se ha ido, puedo decir archivo, voto script, voto script, Encuéntralo de nuevo y se cargó en la pestaña actual. Alternativamente, puedo decir script de fuente de archivos, y es una especie de cargarlo en. Lo que haré es que lo ejecuten de inmediato. Esto es un ideal porque, como puedes ver, ha cambiado todos los nombres de mis objetos. Y no quería que En nuestro próximo video, voy a repasar cómo componer nuestro guión en funciones que no se ejecutarán de inmediato pero estarán disponibles para que llamemos con facilidad. Una última forma de llamar a un script es porque se guardó en un directorio Scripts, se puede decir importar objeto renombrar er ejemplo, y lo que hará es importar eso, igual que reimportó la biblioteca de comandos Maya, y ahora el guión ha sido importado a Maya. Pero desafortunadamente, Import también ejecuta un script, lo que hace que vuelva a ejecutarse. En nuestros próximos videos, vamos a repasar cómo componerlo y funciones que solo se ejecutarán cuando se llame. 12. Proyecto 2: Renamer de objetos: a través de este proyecto estará aprendiendo a crear una biblioteca de controladores usando lindo. Nuestra biblioteca de controladores será flexible y soportará miniaturas. Podemos importar cualquiera de los objetos que guardamos, y también podríamos crear los objetos nuevos que queramos. En este caso, voy a decir esto como la prueba, y cuando golpee guardar, verás que aparece dentro de para nuestra ventana. Aprendimos a guardar datos como Jason y archivos así como cargarlos de nuevo en ¿Eres tú? Voy a estar usando lindo proporcionado por lado pi al interior de mi 2017 y lado de pastel. En versiones anteriores de Maya, repasaremos las diferencias entre lindo cuatro y lindo cinco, así como las diferencias entre el pastel lindo y el lado del pastel y el pastel, Cute five y el lado del pastel, también. También estaré repasando una popular biblioteca linda que es utilizada por Disney, WETA, Sony Imageworks y más. Ahí nos ayudará a escribir código que se puede utilizar el lindo tanto en Maya 2017 como en versiones anteriores de Maya. En el siguiente video, voy a hacer una breve introducción a lindo on. Las diferentes versiones son lindo uso dentro de las diferentes versiones de Maya 13. Encontrar ayuda: Antes de continuar más, me gustaría mostrarles cómo pueden obtener información sobre cada uno de los comandos de Maya. Dentro de Maya, puedes ir al menú de ayuda, ir a mis referencias a scripting y dar click en la referencia de Comando Python. Esto abrirá la documentación de Autodesk, y enumerará todos los comandos que Maya tiene para ofrecer. Quiero mirar el comando padre, y por aquí puedo ver que el comando padre toma dos objetos el hijo y el padre y otra serie de parámetros desplazándose hacia abajo. Podemos ver cada uno de los parámetros con este nombre largo y un nombre corto así como un tipo. Está rodando hacia abajo aún más. Confinamos ejemplos documentados de cómo usarlo de nuevo en Maya. También podemos encontrar ayuda dentro del editor de guiones. Por ejemplo, si quiero ayuda en el comando padre, puedo seleccionarlo click derecho e ir demasiado rápido. Ayuda. Esto enumerará todas las banderas con los nombres cortos y los nombres largos. Tradicionalmente, también puedo habilitar la autoterminación. Puedo ir a este menú y puedo habilitar ven al finalizar y mostrar ayuda de punta de herramienta. Ahora, cuando escriba, intentaremos y auto completar para mí. Y cuando esté dentro de un mando, enumerará todas las banderas que tome. personal, me gusta desactivar esto porque puede ponerse bastante ocupado dentro de Maya, aunque lo dejo habilitado dentro de un encanto de pastel. Si alguna vez golpeaste la documentación en línea puede ser de gran ayuda. Mi ha ayudado. Las características se limitan solo a las bibliotecas mayas, pero a menudo necesitarás buscar información sobre la propia python. El sitio web python dot org tiene una gran documentación sobre todo dentro de Python, por ejemplo, esta es la página y todos los tipos de variables. También puedes acceder a la ayuda dentro de mi por ejemplo, si ejecuto ayuda y le doy un objeto, imprimirá toda la información sobre ese tipo de objeto. En este caso, estoy buscando la documentación de ayuda para una lista. En ocasiones ya tienes un objeto definido, y quieres buscar lo que puedes hacer con ese objeto. En ese caso, puede utilizar el comando de IR. Lo que hará el comando D I R es que te darán una lista de todos los objetos y atributos que están asociados al objeto para darle. En este caso, ¿quién puede ver que el objeto de lista asignado a la variable A tiene todas estas funciones dentro ? Si es y podemos ver que podemos anexarlo, podemos contarlo, insertar índice, etcétera. Ambas funciones son muy útiles, ya que puedes buscar información sobre la marcha mientras estás escribiendo un guión. 14. El comando de la lista: para comenzar nuestro curso, necesitaremos obtener una lista de los artículos que estarán operando en mi escena. Tengo que unirme a cadenas. Un cubano, un grupo, pero podrías tener lo que quieras. En primer lugar, necesitamos volver a obtener la biblioteca de comandos mayas. Quién dirá, de mayas comunas importadoras dentro de la biblioteca de comandos es una función de lista. Si ejecutamos esto e imprimiré el atuendo, se puede ver que nos devuelve una lista de todos los objetos de la escena. Al final, se pueden ver los objetos de los que estamos hablando, pero también obtenemos un montón de objetos que en realidad no me importan. Se trata de objetos ocultos dentro de Meyer. Entonces lo que podemos hacer es llenar el objeto ls para usar únicamente la selección que queremos. Entonces busquemos la documentación para el comando L s. Si hace doble clic en él y luego haga clic derecho, puede seleccionar. Vamos, Documentación. Esto abrirá el navegador para el comando L S. Aquí abajo, se puede ver el parámetro de selección, y si hago clic, nos llevará a la documentación para el parámetro de selección. Se puede ver que el nombre largo es selección y el nombre corto es SL. Es de tipo booleano, lo que significa que podría ser cierto o falso. Y si es cierto, enumerará los objetos que están actualmente seleccionados. Por lo que de vuelta en Maya ahora vamos a darle al comando L s el parámetro de selección. Entonces decimos que la selección es igual a verdadera. Y ahora se puede ver que sólo enlista el objeto que he seleccionado en este caso Joint one. Entonces vamos a guardar esto dentro de una variable. Dirá que la selección es igual al comando. La selección de Zarrella es igual a verdadera. Pero ¿y si no tenemos nada seleccionado? Si ahora imprimo selección sin nada seleccionado, puedes ver solo obtenemos una lista vacía porque no se selecciona nada. Y si lo rehago con algo seleccionado, recuperaremos ese objeto. Si no tenemos algo seleccionado, quiero hacer algo diferente. Por lo que se nos presentará a la declaración s en el próximo video 15. Si estados: en este video, estaremos aprendiendo sobre la declaración if, la declaración if. Digamos que si algo es cierto, haz algo más y la sintaxis es bastante simple. Estamos diciendo es que si la afirmación es cierta, sólo entonces se rehará esto y se puede ver que las cosas que vamos a hacer nuestra sangría en python esto se llama alcance. El alcance de esta lógica es éste. Si declaración, todo lo que hay debajo de la declaración segura que está sangrada sólo se ejecutará. Si esta sentencia if es verdadera y si no tiene sangría, entonces se ejecutará sin importar. esto, si la afirmación es cierta, Así que de vuelta en Mayer, vamos a escribir nuestra declaración if. Entonces decimos que si la prestada de la selección es igual a cero, obtendremos una nueva selección. En primer lugar, veamos el símbolo doble igual que usamos. El único símbolo igual significa que estamos asignando algo. El símbolo doble igual significa que estamos comparando algo en valor. Entonces vamos a decir si la longitud de la selección es cero, entonces vamos a conseguir una nueva selección. Entonces diremos comando sort ls Voy a usar dos parámetros que voy a introducir breve. Voy a decir que Dag es verdadero y largo igual. Cierto. Si vuelves a la documentación y miras mucho tiempo, puedes ver que se necesita un booleano y puedes ver que si es cierto, devolverá nombres completos de pot para objetos Dag. No. ¿ Por qué estoy haciendo esto? De vuelta en Maya, usted reconoce que tengo unico uno y me uní a cuatro. Pero debajo de Joint One, también tengo otro antro cuatro Algo así como una obra cuando tienes que John's. Y si dices hola John, ninguno de ellos asegura en cuál debe responder. Maya, Si fuera a decir que se unió a cuatro, ambos conjuntos cuatro intentarán responder, y causará un error. El parámetro largo significa que llevamos las macetas llenas al objeto para que nos unamos cuatro y sepamos que es un niño conjunto uno. ¿ Dónde está este Unidos? Cuatro no tiene padre. Ahora veamos el parámetro Dag de nuevo en la documentación. Podemos desplazarnos hasta Dag y se puede ver que en realidad se llama objetos Dag. Pero he usado una forma corta mordaza esta lista Dag objetos, si algún tipo lo que esto significa es que solo obtendremos objetos que están listados en el er esquema y ninguno de los objetos ocultos dentro de Maya. Entonces si ahora imprimo la selección después de esto, si declaración me di cuenta de que mi declaración impresa está fuera de la declaración if, eso significa ahí si o no si hombres heterosexuales corre esta impresión seguirá funcionando esta noche. Si ejecuto esto, se puede ver que sólo va a usar la selección que tengo porque tengo más un objeto de aplazamiento seleccionado. Esta afirmación es falsa. Si selecciono nada y ahora corro, se puede ver que se enumera cada objeto en el contorno. Er, esto se debe a que si la sentencia es falsa y no se ejecuta, esto se debe a que la sentencia if es verdadera. El izquierdo de la selección es cero. Por lo tanto, obtendremos la nueva selección, que enumerará todo en el esquema. Er pero se puede ver que el orden de la lista no nos resulta particularmente útil. El problema es que si renombramos unimos cuatro, pero tiene la parte completa que se ha sumado a uno se ha sumado a cuatro. Eso está bien. Pero si renombramos uno conjunto. A la postura se sumó cuatro. Ahora cambia. Esto significa que ya no podemos encontrar articulación para. Por lo tanto, necesitamos ordenarlo primero con los Niños y los padres al final. De vuelta en Maya, lo que voy a hacer es que voy a ordenar la selección. Entonces antes de esta declaración de impresión, voy a decir que la selección no ordena porque la selección es lista y tiene un método de ordenación. Si ahora imprimo selección, se puede ver que en realidad se ordena la lista, pero eso los ordena alfabéticamente. Ese es el comportamiento por defecto para ordenar. Esto no nos sirve. En cambio, necesitamos decirle a Sort que use la izquierda de los objetos. Esto se debe a que los Niños tendrán un nombre completo más largo que los padres porque cuanto más abajo, por ejemplo, Joint Four incluirá a Joint One en su parte, fue Joint One no tendrá nada porque es el top más objeto, por lo que le diremos a la selección que no ordena usar. El largo es la clave para ordenar, por lo que diremos clave es igual a prestar. Y ahora si ejecutas esto, puedes ver que los objetos surgieron de más corto a más largo otra vez. Eso no es lo que queríamos. Queríamos lo contrario. También podemos decirle a Sort que lo invierta. Por lo que decimos inverso es verdadero. Y ahora si lo ejecutas, puedes ver que los objetos más largos están al final y los objetos más cortos están en el otro extremo. Lo que esto significa es que se actuará sobre los Niños primero y después sobre los padres, con lo cual no afectarán las partes a los Niños. En el siguiente video, repasaremos cuatro bucles y cómo podemos pasar por todos los elementos de la lista y hacer algo con ellos. 16. Para bucles: en este video se introducirá al bucle de cuatro. El bucle de cuatro dice pues, ítem en mi lista. Haz algo con este artículo otra vez. Se puede ver que la lógica está sangrada. Esto significa que sólo se ejecutará en el alcance del bucle de cuatro. Cualquier cosa fuera del bucle está sin sangría porque correrán fuera del bucle cuatro. El sintaxis del bucle cuatro dice cuatro ítem donde item es el nombre para variable temporal y item podría llamarse cualquier cosa que quieras dentro de mi lista donde mi lista es una lista que quieres mirar a través Vamos a hacer algo con ese ítem No, vuelta en Maya que vamos a hacer es sólo vamos a ir a través de cada artículo dentro de nuestra selección y encontrar el nombre corto para este ítem. Entonces vas a decir que cuatro serán J cortos de objeto en selección, que es la lista que tenemos fuera. Todos son objetos seleccionados. Vamos a ahorrar impresión O B J. Suficiente. Yo dirijo esto. Se puede ver que imprime nuestros nombres. Los nombres son un poco largos en la parte superior. Tienen este símbolo de pipa para mostrar que tienen este símbolo de pipa para mostrar la parte del objeto. Lo que queremos es dividir la cuerda. ¿ Por qué el símbolo de pipa? Afortunadamente, O B J es un objeto de cadena, por lo que podemos decir imprimir O. B. J no se divide, y la operación de división por defecto funciona en espacios. Pero tenemos que decirle que funcione en el símbolo de la tubería en su lugar. Entonces le damos el símbolo de pipa, comillas de información privilegiada, y ejecutamos esto. Ahora puedes ver que cada objeto está ahora lista de cada palabra dividida por el símbolo de tubería. Pero no queremos cada palabra. Sólo queremos la palabra perdida. Entonces como es una lista ya sabemos acceder a los objetos dentro de ella, usamos los corchetes y le damos un número. Pero el problema es que cada una de estas listas tiene una longitud variable. Algunos de ellos son sólo un objeto largo y algunos de cuatro objetos largos. Afortunadamente, Python nos permite iterar hacia atrás a través de una lista, un oleaje, así que si le diste menos uno, significa que tomaremos el objeto muy perdido dentro de la lista. Entonces ahora si se ejecuta esto, se puede ver que sólo tenemos una palabra. Y la palabra es la palabra perdida dentro de la lista. Tomaremos esto y lo asignaremos al nombre corto variable en el siguiente video. Buscaremos sobre la eliminación de este bucle de cuatro al renombrar estos objetos de acuerdo a su tipo. 17. Mientras bucles: Me gustaría hacer una pausa aquí y hablar de un tipo diferente de bucle con Wild Loop. El bucle while es muy similar a la sentencia if y el bucle for combinado. Lo que hace es que diga si esta afirmación es cierta, siga haciendo esta acción hasta que la declaración ya no sea cierta. Adicionalmente, puedes salir del bucle while o incluso un bucle de cuatro por cosa break Break dice pelear on para salir del bucle que está actualmente en. Por qué bucles un poderoso para cuando no sabemos por cuánto tiempo debe correr en acción. Pero sabemos cuando queríamos parar, estaremos cubriendo mientras bucles más adelante en el curso. Pero pensé que era útil mencionarlo ahora para que estés al tanto de ellos. Si los ves en alguna de la documentación 18. Encontrar tipos de objetos: en este video, vamos a tratar de obtener los tipos de objetos de cada uno de los elementos de nuestra lista. Empezaremos diciendo comandos de impresión tipo de objeto del objeto en esta lista. Y cuando ejecutemos esto con este cubo seleccionado, nos va a devolver transformada. Ahora puede que te estés preguntando, ¿por qué es una transformación cuando claramente es un objeto de malla? Bueno, en el esquema er, si hacemos clic derecho en, digamos formas, se puede ver que cada forma es en realidad una transformación y una forma. Esto es sólo un Maya representan sus objetos. Entonces, vamos a deshacernos de las formas por ahora. Y tenemos que realmente encontrar a los Niños fuera de la transformación y luego sacar el tipo de objeto los Niños. Entonces vamos a aclarar esto y vamos a buscar a los Niños. Podemos hacer esto con un comando, familiares más cool, y vamos a guardar esto dentro de variable llamada Niños dentro de la lista familiares. Démosle el objeto por el que queremos conseguir a los familiares. Entonces digamos que sólo queremos a los Niños. También le digamos que queremos la olla llena a cada uno de los Niños. Si corro esto ahora y déjame imprimir Niños para que veamos lo que obtenemos. Yo dirijo esto. Ahora se puede ver que este grupo de sombreado, que está seleccionado, no tiene Niños. Pero si selecciono P Q. Uno, se puede ver que realmente consigue el P Cube forma uno en su lugar. Si elijo este grupo vacío, se puede ver que en lugar de la lista, obtenemos el objeto monja. Esto es un poco molesto en Maya, porque a pesar de que el comando dice lista cuando no tiene nada que devolvernos, no nos da ninguno. Esto significa que todo nuestro código necesitaría comprobar si no es ninguno o una lista, pero podemos hacer un simple truco. Al final de este comando, sólo puede escribir o y para corchetes. Lo que estamos diciendo es que si los familiares de la lista están vacíos o ninguno, entonces hagámosla una lista vacía, que se denota con los dos corchetes. Entonces, no importa lo que hagamos, siempre estamos seguros de que Children estará fuera de la lista de tipos de objeto. Entonces vamos a deshacernos de la impresión Niños y quitarle el tipo de objeto al niño. El problema es que solo quieres obtener el tipo de objeto del niño si es el único hijo debajo del padre, por lo que usaremos una declaración if. Ya veremos si el prestado de la lista Niños es igual a uno de nuevo. Tenga en cuenta que se utilizaron para igualar símbolos para comparar en lugar de un símbolo igual para asignar, obtendremos el niño de la lista de Niños. Conseguiré al primer hijo, que ojalá también sólo sea el único hijo diciendo cero otra vez. Recuerda la lista. Empieza a contar desde cero en lugar de uno, y diremos que la variable de tipo Theo BJ es igual a comandos. Tipo de objeto fuera del niño. De lo contrario, diremos que el tipo LBJ es igual a comandos un tipo de objeto fuera del padre en este caso, O B J. Por aquí, se puede ver la sentencia else. Se ejecuta la sentencia else si la sentencia if no es verdadera. Entonces si la longitud de los Niños es menor o más de uno, vamos a ejecutar esta declaración aquí en su lugar. Pero si la longitud de Niños es una, correremos esto. Esto nos permite configurar condiciones para cómo se ejecutará el código en función de los valores en tiempo de ejecución. Ahora que tenemos el tipo de objeto. Podemos imprimirlo y ver que si selecciono el Cubo, obtendré malla. Y si selecciono el antro, me pondré articulación. Y si selecciono, el grupo vacío se transformará porque eso es lo que es. En el siguiente video, iremos a donde más complejas sentencias si utilizando el tipo de objeto para determinar a qué se debe renombrar los objetos. 19. Si, Elif y otros declaraciones: manera tener el tipo de objeto. Averigamos cuál debe ser nuestro Suffolk, para que podamos usar unas cuantas declaraciones si para resolver esto. Por lo que podemos decir si OVI J Type es igual a malla otra vez, anote el símbolo doble igual en lugar del único. Bueno decir sufijo es igual a geo. De lo contrario, si el tipo de objeto es igual a la articulación, bueno, digamos que el sufijo es igual a la articulación. Esta es la palabra clave LF como la palabra clave else. Sólo se ejecutará si la sentencia if es falsa. Pero a diferencia de la declaración else , proporciona otra declaración para comprobar. En este caso, estamos diciendo, si el tipo de objeto es de malla, entonces el de Suffolk será geo. Si el tipo de objeto no es MASH, haremos la siguiente comprobación para comprobar si el tipo de objeto es articulado. Si no es conjunta, entonces seguiremos bajando la cadena. Si y l declaraciones. Por lo que siguiendo esto tendremos otro LF y guardarás el tipo de objeto es igual a la cámara. En realidad no quiero hacer nada si es una cámara así que puedo decir imprimir saltar cámara y la puedo ver continuar en lo que estamos haciendo con continue es que estamos diciendo al cuatro loop para continuar con el siguiente ítem y no realizar ninguna de las otras lógicas en este cuatro. Busca el artículo actual. A continuación, tendremos la declaración else, que sólo se ejecutará si todas las demás declaraciones de este si LF y Elstree son caídas, diremos. Si ninguna de estas otras afirmaciones es cierta, el Suffolk es igual a grupo. Por último, decimos que el nuevo nombre es igual al nombre corto más Underscore más sufijo porque tanto nombre corto como Suffolk es nuestras cadenas, podemos agregarlas con el operador plus, y esto creará una cadena combinando ellos. Si digo imprimir tu nombre y ejecutarlo, podemos ver el P Cubed One será renombrado a peaky one g R P. Porque es un grupo. Pero si uso peaky, gané el representa a un cubano aquí y luego corro esto, podemos ver que se le renombrará a Geo. Ahora vamos a hacer el real renombrar recon say command are renombrar y le damos el viejo nombre en este caso te dará el parque completo, que está representado por O. B. J. Y le daremos el nuevo nombre que es retiro recién construido. Entonces si ejecuto esto ahora, puede ver el PQ one ha sido renombrado a peaky uno subrayado Geo Y si d seleccionado y me deja deshacer Y ahora si lo ejecuto, se puede ver el peaky tiene el sufijo Cada articulación también tiene el sufijo en absoluto grupos también tienen los Suffolk correctos Pero como dijimos, ninguna de las cámaras se ha visto afectada en esto es exactamente lo que queríamos. 20. Configuración de PyCharm: cosa va a ser un pequeño video sobre cómo instalar el encanto de pastel y ponerlo configurado correctamente para tu sistema. En la página web encanto de pipa Edie. Da click en Descargar y elige tu plataforma. Estoy en Windows y sólo vamos a descargar la versión de Windows. Una vez que su cochecito esté abierto, haga clic. A continuación, elija del directorio en el que desea que esté. El defecto debe estar bien. El sexo es el importante. Te pediré que elijas tu versión python. Asegúrate de instalar Fight en 2.7 y no Python 3.5. Mis usos muerden el 2.7, así que es importante que nos mantengamos sincronizados con él. Una vez estan simplemente haga clic en siguiente y luego simplemente continuar con el resto del instalador tardará un poco en instalarlo. Y cuando esté hecho, deberías tener el encanto de tarta listo para salir. En este video, voy a repasar como configurar I charm et you para Maya. Si estás usando un editor diferente, repasaré los editores comunes en otro video y cómo configurarlos con Maya. Pero por ahora, centrémonos en el gráfico circular. En primer lugar, tendremos que configurar el intérprete de Python. Si vas a configurar y ajustes o si ya tienes algún código abierto, puedes ir a la configuración del archivo. Abriremos la ventana de configuración predeterminada. Si vas a Project Intérpreter en el lado izquierdo, traerán este panel con un desplegable donde podrás elegir diferentes versiones de python para usar. Bueno, queremos hacer es usar la versión de Maya Python en su lugar. Por lo que vamos a dar clic en este pequeño icono de engranaje y decir, Añadir local. Tendremos que navegar hasta donde está instalado Maya en Windows. Esto estará en tu unidad C. Lo que sea que haya instalado sus ventanas en debajo de los archivos de programa. Autodesk, mi 2017 sido y habrá una llamada de objetos Maya Pie en Mac OS y Linux Axis estará en diferentes ubicaciones que se mostrarán en el video. Si te desplazas hacia abajo, encontrarás el pastel Maya y puedes seleccionarlo, y esto le dirá al encanto pastel que use mi una piadosa Es la versión Python. En cambio, vuelve al icono del engranaje y haz clic en Mawr. Haga clic en el pastel Maya que acabamos de agregar y golpeamos el lápiz. Llamemos a esto el Eitan Maya 2017, para que sepamos cuál estás usando. Por último, necesitamos configurar auto completo dentro de un encanto de tarta. Si estás usando mi A 2015 y debajo de la cubierta lo con los barcos auto completos con Meyer. Si utilizas My 2016 o Maya 2017 tendrás que descargar la librería auto completa en mi página de levantarte . Se listan los kits de Dev, así que usemos la descarga Maya 2017. Haremos clic en el enlace y nos llevará a través de la tienda de Autodesk App en la tienda de Autodesk App. Puedes descargarlo yendo a la derecha y dando click en descargar. Cuando esto termine de descargar, se te presentará un archivo ZIP para tu sistema operativo. Dentro del archivo ZIP estará la base de niños sordos. Debes volver a encontrar tu directorio de instalación Maya. Esto será en Windows Undersea. Será en sus archivos de programa bajo Autodesk Maya 2017 y todo lo que necesita hacer es extraer todos estos en ese directorio justo en la ruta a ese directorio, no en ningún subdirectorio. Si vuelves a usar Mac Os o Lennix, el bote será diferente, pero lo mencionaré en el video, uno tan extraído. Abre tu configuración de encanto de pastel otra vez hizo clic en un pequeño ícono en la parte inferior derecha? Se te presentará un montón de macetas para que las use python. Vamos a agregar una vez o hacer clic en plus otra vez, iremos a ver y navegaremos a los directorios que acabamos de extraer. Entonces iremos a Autodesk mi 2017 e iremos al kit de muerte dentro del kit de sordos. Vaya a otros extras primales y finalización, luego haga clic en pastel, la P Y. Y luego solo agregue este directorio haciendo clic en Aceptar, finalmente, finalmente, simplemente haga clic en Aceptar, vuelva a pulsar Ok y golpee. Postúlate ahora. Pie charm sabrá usar una pitón Maya en lugar de tu tiempo de tarta del sistema, y podremos autocompletar a medida que escribas. Entonces vamos a cerrar estos ajustes y voy a hacer clic en fondo para que no me tome tiempo y abriremos un proyecto. Iremos a tus documentos donde restauraron tus guiones mayas. Esto será diferente en Mac OS o Lennox, pero de nuevo me aseguraré de mencionarlo. Iremos a Maya. Eres mi aversión. 2017 y abriremos el directorio de guiones. Voy a dar clic, OK, para abrirlo. Voy a ampliar mi término de tarta. Y para el resto de este curso, estaré usando pi charm y modo de presentación para que no te veas más esto yo Pero por ahora, si amplío esto, puedes ver nuestro objeto renombrar o ejemplo por ahí. Si hago doble clic en él, se abrirá y podrás ver todo nuestro código desde Maya dentro aquí. 21. Funciones: como mostré en el ejemplo anterior. Siempre que obtengo un script ya sea haciendo clic en script fuente y eligiendo el script o importándolo, se ejecuta inmediatamente renombrando o volviéndose a ver, cual no es lo que quiero. Entonces déjame deshacer esto y cambiar de nuevo al encanto de pipa en pastel. Tom, puedes ver todo nuestro código que anteriormente escribimos. Lo que está sucediendo es que siempre que las importaciones o fuentes de Maya sean script, cada línea de código se va a ejecutar de arriba a abajo. Esto no es lo que queremos porque no quieres que se ejecute cuando importamos. Esto significa que nunca podremos reutilizar nuestro guión fácilmente. Entonces lo que vamos a hacer, se pone todo para código dentro de una función para crear un tipo de función muerte para definir. Y luego el nombre de la función en este caso, renombrar y vamos a dar. Aprendiz E es decir que es una función. Por último, pondremos un colon, y como todo lo demás en Python, el alcance se denota por sangría. Por lo que seleccionaremos todo lo que previamente escribimos y golpearemos Tab Tabal lo sangró debajo de nuestra definición fuera de la función. Eso significa que todas estas cosas sólo se ejecutarán cuando se ejecute la función, nuestra función es creada por la palabra muerte para definir. Este es el nombre de la función renombrar Los paréntesis son lo que usamos para mostrar qué parámetros son tomas funcionales En este caso, nuestra función no toma parámetros. Por lo que sólo tendremos al príncipe vacío ve seguido del colon y luego seguido de todo nuestro código de vuelta en Maya. Si volvemos a importar esto, no pasa nada esta vez. Pero ahora sabemos que nuestro objeto renombrar er ejemplo es una biblioteca con el renombrado Función dentro de ella. Entonces si lo ejecutamos, dirá que el objeto modelo no tiene atributos renombrar. Eso se debe a que Python está tratando de ser eficiente. Ya lo sabe. ¿ Ya has importado objeto renombrar nuestro ejemplo así que no intentarás importarlo de nuevo. En cambio, lo que tenemos que hacer es decirle que lo recargue. Diremos recarga, objeto renombrar er ejemplo. No lo sé yo no sé tú, pero ese es un nombre bastante largo para escribir y ya lo hemos escrito en tres ocasiones. Entonces lo que voy a hacer no es uno un apodo it ¿Dónde está el objeto de importación? Renombrar nuestro ejemplo como O. R. E objeto de insuficiencia Renombrar er ejemplo. Entonces en lugar de decir Recargar, objeto, objeto, renombrar nuestro ejemplo. Eso es un bocado. Se puede decir Recargar Ory. Y por aquí lo puedes ver para E ni renombrar a nadie. Recuerda esto. puede ver que se ejecuta, y cambia el nombre de todos nuestros objetos de nuevo. Esta es tu primera función, y ésta será todo para este video. En el siguiente video, repasaremos cómo hacer que nuestra función sea más robusta. 22. Dictionaries: de claves y valores: vuelta en tarta término. Nuestro primer paso será asegurarnos de que si el sufijo ya está en el extremo del objeto que no le volvamos a cambiar el nombre y añadir el doble el sufijo. Esto es simple porque el tipo de objeto de una cadena podemos decir si o b j punto termina con alguna corrección, continuar y se puede ver la tarta Charm es auto Completando a medida que escribo. El encanto alto tiene auto completado realmente potente, razón por la cual me gusta enseñar con él porque es realmente útil si eres principiante así como si estás de antemano TD. De todos modos, digo, Si objeto termina con Suffolk, Sui continuará y saltará el resto de esta lógica, incluyendo el paso donde renombramos el objeto. Esto significa que si el objeto termina con él, no tendrá que tiempos de Suffolk cada vez que ejecutemos esto. Entonces si vuelves a Maya y vuelves a ejecutar esta función, puedes ver que no afecta a ninguno de estos objetos. Pero si creo un cubo nuevo, vamos a moverlo aquí, que no tiene los Suffolk, y ahora corro esto. Se puede ver que se agrega solo a ese cubo porque el Cubo no lo tenía antes. Pero si lo vuelvo a ejecutar, no lo hará. Agregado de nuevo, Este es nuestro primer avance en el guión. Nuestro próximo avance es que quiero agregar más Suffolk Stripes eventualmente. Pero esto si las declaraciones ya se están haciendo bastante largas, y si tuviéramos una nueva para cada tipo de objeto individual, se va a poner una especie de locura. Entonces lo que vamos a hacer es hacer un diccionario donde debilitar definan todos los sufijos que queremos para que podamos teclear. Sufijos es igual a y para hacer un diccionario hará llaves. El motivo por el que estoy haciendo esto mayúsculas es porque está fuera de una función, y por lo general es agradable. No son necesarios para hacer que las variables que estén fuera de la función o cualquiera de los alcances sean mayúsculas. Dentro de este diccionario de cosas X, vamos a crear una nueva clave llamada Mesh. Nos sentaremos de colon y haremos malla igual a Geo. A continuación, crearemos un tipo de articulación y diremos que la articulación tendrá un sufijo jmt y tú haces una cámara y dirás que las cámaras no tendrán ninguna. Esto lo explicaré en un rato. A continuación, voy a hacer un sufijo por defecto y voy a llamar a este grupo de sufijos por defecto. Están aquí abajo. El problema es, tengo que decir que Suffolk es igual a este Suffolk Sequels que varias veces. ¿ Y si hago un error tipográfico? Estoy escribiendo la misma lógica varias veces con pequeñas variaciones. Idealmente, solo escribiría esto una vez y solo usaría eso para no tener que seguir repitiéndome, por lo que puede deshacerse de todas estas declaraciones if. En cambio, usaremos el diccionario que solo definimos para buscar el sufijo. Entonces diremos que Suffolk es igual al de Suffolk es nuestro diccionario y dirás abrumado porque estamos tratando de obtener un valor del diccionario. Ahora get toma un valor por defecto. Como puedes ver, Pie Charm nos está diciendo la clave, y usaremos el tipo de objeto. La segunda clave es la predeterminada. Si el diccionario no tiene la clave, el Riaz para ello nos dará un default back en este caso, ninguno. Pero lo que realmente queremos hacer es recuperar el valor predeterminado. El default de Suffolk de Suffolk es igual a grupo. Lo que estamos diciendo es, si el diccionario no tiene el tipo de objeto gira para. Asumamos que es un grupo y obtenemos el valor predeterminado. vuelto Suffolk. Pero recordarán que dije, Camera no es ninguna y esto es porque no quiero poner un Suffolk. Si es una cámara, ¿ entonces qué? Lo voy a hacer en alguna parte. Diga, si Lot Suffolk continúa. Y lo que estamos diciendo es que si el sexo Suffolk no es cierto, esto una taquigrafía bien, digamos continuar y saltarse el resto de esta lógica difieren para la cámara. El diccionario nos devolverá el valor ninguno, y ninguno no es cierto. Entonces vamos a decir que continúes si vuelves a Maya y si vuelvo a ejecutar esto, dirá sintaxis inválida en línea para apagar mi código. Y eso es porque aquí yo señor Khama y se puede ver el encanto de pastel estaba destacando. Empezó. Si me quito eso, se puede ver que dice que es rojo y moda la coma. Dice que está bien. Ahora volveré a Maya. Si vuelvo a ejecutar esto, esta vez funciona y se puede ver que todo funciona. Todo bien aquí. Si creo un nuevo tipo de objeto. Digamos que crear luces una luz ambiental. El ambiente de luz está apagado tipo poco. Ver, la luz ambiental es de tipo luz ambiental. Si vuelves al encanto de pastel, puedo añadir el tipo de luz ambiental aquí ambient flight. Y puedo decir que quería ser un G T. Si vuelvo a Maya y ejecuto mi guión, puede ver que se le ha renombrado mi ambient Light con el nuevo L G T Suffolk que proporcioné. Y se puede ver la ventaja de usar este diccionario para mantenerlo, porque no tengo que agregar otra declaración FL por cada sufijo único. Corta hacia abajo en dos líneas de código por cada sufijo único. Eso es mucho cuando agregas muchos más tipos de objetos, lo siguiente que queremos hacer es asegurarnos de que se pueda decir a nuestra función si usar la selección o no. Entonces vamos a agregar un parámetro a nuestra función. Vamos a decir que el nombre de los parámetros es la selección es igual a, y vamos a decir que es falso por defecto para que no use la selección por defecto. Eso es un poco molesto porque la selección ya se usa como nombre de variable aquí, y este nombre de parámetro se pasará a la función. Y puedes ver la señorita de encanto de pastel resaltando cada uso de esta variable ahora y eso no es lo que queremos. Por lo que voy a seleccionar esta palabra en encanto de pastel, clic derecho re factor. Y voy a renombrarlo y lo vamos a cambiar el nombre de los objetos del dedo del pie y se puede ver el pastel Charm ha encontrado cada instancia de esa variable y la renombró. Pero también se agarró este. Entonces solo voy a renombrar esto de nuevo a selección. Y lo que vamos a hacer es decir que los objetos son iguales a comandos, ¿no? Ls selección es igual a verdadero. Esto es lo que teníamos antes. Pero en lugar de usar el valor codificado duro de true, vamos a usar la selección como su entrada por defecto. Es falso. Pero si un usuario proporcionó verdadero, entonces la selección aquí será cierta y será verdad. Aquí está bien otra vez, sólo nos interesan los objetos dag a sólo en los nombres largos. Eso significa que podemos deshacernos de esto. Pero y si el usuario ha dicho selección es verdadera y no hay selección actualmente. Bueno, tenemos que hacer es airear temprano para que no corremos el resto para nuestro código porque el resto de nuestro código puede tardar mucho tiempo en ejecutarse si tenemos muchos objetos. Entonces, vamos a errar temprano. Diremos, si la selección y no los objetos. Y lo que estamos diciendo es que si la selección es verdadera y los objetos no son ciertos, estoy por eso nos referimos a que los objetos están vacíos. No hay objetos. Vamos a plantear un error de tiempo de ejecución y real decir que tú no tengo nada seleccionado. ¿ Cómo te atreves? Y este es nuestro primer error que vamos a lanzar. Estamos viendo subir porque vamos a plantear un error igual que tú planteaste una denuncia contra alguien. O el trabajo por tener pies malolientes estaban levantando una cosa de error de tiempo de ejecución. Que hemos encontrado un error durante nuestro tiempo de ejecución. Y luego damos más detalles al respecto. No tienes nada seleccionado. ¿ Cómo te atreves? Voy a guardar esto y volver a mudarme a Maya donde si ahora no tengo nada seleccionado. Pero digo que la selección es verdadera y ejecuto esto, puedes ver que obtengo un error de tiempo de ejecución ¿De qué? Nuestro guión. Nos dice en qué línea las flechas sobre dónde está el guión. Y amabilidad nos dice error que le dimos. No tienes nada seleccionado. ¿ Cómo te atreves a dejarme seleccionar algo y correr de nuevo? Esta vez no obtengo un error. Alternativamente, si digo que la selección es igual a false, ese es el valor predeterminado. En realidad ni siquiera necesito decir esto. Déjame quitármela. Y correrá con selección, igual a falso por defecto y correrá a través de todo de nuevo en encanto de pastel. Lo siguiente que tenemos que hacer es cambiar cómo sucede este formato. Esto está bien, pero tenemos dos símbolos más y múltiples cuerdas. Esto es algo ineficiente y pitón. Una mejor manera de hacerlo y un poco más compleja es con un símbolo de por ciento s. Parece un emoji raro, pero lo que estamos haciendo es hacer una sustitución de cuerdas. Entonces voy a decir nuevo nombre es igual a por ciento s subrayado por ciento s y le darán un símbolo por ciento y le daremos el nombre corto y los Suffolk. Y la razón por la que te estoy mostrando esto es que no tiene tanto sentido para una cuerda corta. Pero cuando empiezas a hacerlo mucho y sobre muchos objetos, la otra forma de hacerlo puede ponerse realmente pesada. Pero esta es una forma realmente ligera de hacerlo. Entonces lo que realmente está sucediendo es que este porcentaje s está siendo reemplazado por nombre corto, y este por ciento s está siendo reemplazado por el de Suffolk. Al final, crea la misma cadena. Pero esto es un poco más eficiente, y lo estaré usando para la mayoría de mis ejemplos. Entonces creo que es un buen ejemplo para mostrar ahora mismo. El otro es, si el objeto termina con sufijo, en realidad podría ser un nombre de objeto válido y necesita un Self X añadido lo que realmente necesitamos hacer . Es comprobar si termina con el guión bajo y el sufijo. Y esto significará que en realidad no tiene el sufijo adecuado, igual que los comandos mayas nos devuelven una lista de objetos en los que se ejecutaron. Será bonito de nuestro objeto puede hacer lo mismo en la función under four fuera de for four loop, voy a decir que devuelven objetos objetos va a decirle a nuestra función que cuando esté hecho , seguro giró el lista de objetos que tiene. Pero el problema es que la lista de objetos no representa los nuevos nombres, así que cambiemos eso. Saquemos el índice del elemento actual de la lista de objetos. Vamos a hacer esto diciendo que índice es igual a objetos índice de puntos oferta objeto actual. Lo que esto hace es devolvernos el valor de índice del objeto de la lista Are objects. Entonces si es un primer objeto, regresaremos. Cero. Si es nuestro segundo objeto, recuperaremos uno y así sucesivamente y así sucesivamente. Usaremos esto para saber a qué objeto reemplazar dentro de la lista a objetos reales Index es igual, y ahora vamos a reemplazar el objeto que hay dentro. Entonces diremos que el objeto reemplazaría. Y ahora vamos a reemplazar una cadena para que tenga un nuevo nombre en su interior. Por lo que diremos objeto hacia reemplazar nombre corto nombre nuevo. Y lo que esto hará está en la lista de objetos. En ese punto de índice, lo reemplazará por el nombre del objeto donde el nombre del objeto ha tenido reemplazado el antiguo nombre corto por un nombre nuevo. Entonces eso significa que nuestra lista tendrá todos los objetos que operaron en cualquier momento en que hayamos renombrado un objeto. Habrá sido sustituido en la lista por este nuevo nombre. Entonces si vuelves a Maya, eso es una impresión o no cambias el nombre. Se puede ver que obtengo una lista de todos los objetos de vuelta con sus nuevos nombres, así como los objetos a los que no ha renombrado con sus nombres antiguos. Por último, necesitamos asegurarnos de que nuestra función sea fácil de usar. Las personas que usan nuestra biblioteca de códigos no quieren estar mirando nuestro código. Simplemente, ya sabes, función dura funciona. Si digo ayuda de impresión en esta función, no me da nada atrás porque no hay ayuda para esta función. ¿ Cómo brindamos ayuda para una función? Esto es sencillo. Nosotros lo llamamos Doc String. En primer lugar, dentro de un encanto de tarta. Cambiemos el formato de doctorado. Vamos a la configuración de archivos, y dentro de esto, voy a ir herramientas, python, python, herramientas integradas y el invierno cambiarlo de texto de reestructuración a Google, Google es mucho más fácil de leer que reestructurar texto, haga clic en Aceptar, y volveré a mi función después de nuestra función. Voy a golpear, entrar y escribir tres comillas dobles 123 y luego voy a golpear, entrar y verás que los encantos de pastel automáticamente lo llenaron un poco. A esto se le llama doctorado. El primer comentario después de una función con citas triples será lo que se presenta cuando llames ayuda en una función. Entonces voy a decir que esta función cambiará el nombre de cualquier objeto para tener el Suffolk correcto. Diremos para un argumento de selección si usamos o no la selección actual y para devoluciones, diremos una lista de todos los objetos en los que operamos. Si vuelvo a Maya y ellos vuelven a ejecutar el comando de ayuda, se puede ver que ahora consigo el anillo del doc que escribimos. Dice Disfunción cambiará el nombre de cualquier objeto para tener los Suffolk correctos y nos da información sobre cómo usar la función. Esta es una forma de documentar tu código, doc strings air realmente útil cuando otras personas tienen que usar tu función, o incluso si estás usando una función en el camino y olvidaste cómo la escribiste. Esta es una forma de comentar. La otra forma de comentar en python es con hashtag esto no es como Instagram o Twitter . En cambio, estos hashtags representan la intención del código. Entonces por tipo de etiqueta hash y luego puedo escribir cualquier cosa. Ofrécelo, y éstos no se ejecutarán con el programa ahí, simplemente hay otros programadores a mirar. Es una piedad. La disfunción hashtag no puede ejecutarse si no hay selección y no hay objetos. El punto de los comentarios es un posterior cuando tienes que mirar tu código o alguien más tiene que mirar tu código. No tienen que leer cada línea de código para entender lo que intentabas hacer . Es realmente útil también para ti, porque estás obligado a olvidar las obras de código superior. Te recomiendo agregar comentarios trío código para que sea fácil de seguir. Todo mi código en el get hub Repo para este proyecto será documentado con comentarios sobre cómo usarlo. Lo que estoy haciendo y carreras altas, ya sabes, tienen una función que se puede reutilizar en otros proyectos también. Se llama por su cuenta para organizar tu escena y dijo: Oh, Oh, Maya en nuestro próximo proyecto estará mirando cómo crear árbol dramático procedimentalmente 23. Formateo de String: un lanzador común. Hacer python es crear cadenas. Por ejemplo, déjame crear una cadena que diga Hola. Se acabó mi nombre y tengo 26 años pero quiero cambiar este Seiken. Utilizar diferentes nombres de usuario y una edad diferente. Entonces vamos a crear una variable para usuario y la llamaré a través y una variable para la edad. Sé que establece esto para 26. Ahora lo que puedo hacer es saludar. Mi nombre es plus user plus y soy plus age. Y si sé correr, Esto nos dirá si no puedes agregar una cadena en un in TOB comprobado por lo que nos requiere convertir este entero en una cadena y ahora funcionará. Pero esto podría ponerse muy engorroso porque ambos necesitamos conocer el tipo de la variable y necesitamos seguir sumando cadenas juntas, lo cual podría ser algo costoso de hacer. Otra opción es la sustitución de cadenas. Para que podamos saludar. Mi nombre es por ciento s y soy por ciento s. entonces cerramos la cadena, damos otro signo por ciento y luego nosotros en príncipes daremos los valores a usar en este caso a menos que una edad de coma de usuario. Y lo que esto hará es reemplazar la prueba del primer por ciento por el primer valor en el 2do 1 segundo valor y así sucesivamente y así sucesivamente. Si ahora ejecuto esto, se puede ver que no necesitaba preocuparme por mi tipo de variable, y es muy sucinto de definir. También podemos hacer esto con búsqueda de nombres usando un diccionario en lugar de un to pull. Por ejemplo, Si digo nombre una edad, puedo darle un diccionario. Ahora, con nombre una edad Lo sentimos que debe ser nombrado y usuario y se puede ver que ahora son funciona. Esta forma de usar la sustitución de cadenas es una que era muy popular en tiempo de tarta. Desafortunadamente, medida que avanzas, a medida que creas cadenas más largas, puede volverse bastante ilegible. Y es bastante frecuente que tengas una sustitución de cadenas como esta, donde no es posible averiguar qué va hacia dónde. Una forma definitiva de hacerlo es usar el operador de formato. Para que puedas saludar. Mi nombre es, y luego le damos a los tirantes rizados y yo soy y le damos a chica llaves otra vez. Y luego decimos formato. Y dentro de un formato para Givet Usuario y la Edad y funciona exactamente igual. Pero esto no es una enorme mejora. Es el mismo número de caracteres que por ciento s y todavía tenemos el mismo problema que no sabemos qué va a donde sin tener que leer toda la frase. En cambio, también podríamos hacer algo como esto. Podemos decirle qué valor usar y tenemos el mismo atuendo. Pero lo bueno es que ahora puedo cambiar mi cadena y referirme a ellos fuera de servicio. Hola, soy y mi nombre es y esto es realmente genial porque no pude definir exactamente a dónde irán mis valores y hace que sea mucho más fácil de leer y mantener. También significa que puedo reutilizar cualquiera de estos valores. Si solo digo 00 solo usaré el primer valor varias veces mientras que con la sustitución de cadenas crece con el método por ciento s, tendría que redefinir usuario varias veces cada uso. También puedo hacer esto con un diccionario. Mira hacia arriba también desde especie de decir hola. Mi nombre es algo y soy algo que puedo decir Hola. Mi nombre es Usuario y tengo edad, y entonces solo puedo dar estos como argumentos a la función de formato. Suficiente. Yo lo ejecuto. Funciona exactamente igual si estás haciendo mucha construcción de cuerdas y por tiempo, en mi opinión, usar las llaves es la mejor manera de ir usando el operador de formato. Es eficiente, y te da mucha más funcionalidad que usar el símbolo por ciento s. Dicho esto, si solo estás usando un solo valor por ciento s puede ser muy conveniente, también es común verlo usado en muchas bibliotecas python como la biblioteca de registro. Esto se debe a que ha existido mucho más tiempo y estas bibliotecas hacen uso de su legado. Funcionalidad, para nuestro curso será más o menos usando el formato por ciento s. Pero quiero que conozcas también la opción de formato de punto, porque es más útil 24. Scopes de Python: en este video, vamos a estar repasando el alcance de la lógica y la función de python python seguir reglas simples para buscar variables. Primero se ve en variables locales. Se trata de variables que se asignan dentro de la función o del alcance actual. Por ejemplo, este es el alcance fuera de la función interna, cualquier cosa que esté sangrada debajo de la declaración de alcance. En este caso, la declaración de función es la declaración de alcance. Entonces estamos diciendo que cualquier cosa debajo de esto que también esté sangrada estará dentro del alcance y por lo tanto cuando busques variables, primero buscará hacia arriba dentro de este alcance y luego buscará en el alcance por encima de él, que es este alcance de la función externa. Y luego finalmente miramos por encima de eso y solo miran dentro de una pitón en sí para que puedas ver esto descrito aquí. A esto se le llama regla L E G B. Por lo que l es para nombres locales a un lado y de cualquier manera dentro de una función. La variable más interna es una función local dentro de inter función en función de cierre. Esto significa que se puede acceder a las funciones que están fuera de este ámbito. Por lo que inter variable es una variable fuera de este ámbito. Pero es indio cierre alcance G para globales son variables de nivel de módulo. Un archivo python. Se llama el módulo Python, y esto está fuera de cualquier función. Por lo tanto, es una variable de nivel de módulo. Por último, puedes usar tipos de python construidos, que son solo variables de Patan que vienen con python. Así que vamos a deshacernos de la documentación aquí arriba y debajo de esto, vamos a asegurarnos de llamar a nuestra función externa. Y ahora si ejecuto esto, se puede ver que la inter función puede acceder a la variable más interna, inter variable, la variable externa y la python global. Si nos saqué del alcance, puede ver que ya no puedo acceder a la variable más interna por encanto es lo suficientemente inteligente como para decirme esto. Si intento ejecutar esto, se generará un error. Dice que no puede encontrar la variable más interna en ningún nivel superior a éste. Entonces si saco eso, se ejecutará. De igual manera, Si ahora saco esto fuera del alcance de la función externa, puedes ver que ahora es unsangría relativa a la función externa. Ya no podía acceder a la variable interna. Si ejecuto esto, se va a error, Así que déjame deshacerme de eso y del TLCAN en esto, se puede ver que funciona perfectamente de nuevo. Esto se debe a que pasamos de locales dos cerrados a Global dos construidos en. Esto es lo que llamamos el L E g b principal off lookups. 25. Proyecto 3: creador de equipos: a través de este proyecto estará aprendiendo a crear una biblioteca de controladores usando lindo. Nuestra biblioteca de controladores será flexible y soportará miniaturas. Podemos importar cualquiera de los objetos que guardamos, y también podríamos crear los objetos nuevos que queramos. En este caso, voy a decir esto como la prueba, y cuando golpee guardar, verás que aparece dentro de para nuestra ventana. Aprendimos a guardar datos como Jason y archivos así como cargarlos de nuevo en ¿Eres tú? Voy a estar usando lindo proporcionado por lado pi al interior de mi 2017 y lado de pastel. En versiones anteriores de Maya, repasaremos las diferencias entre lindo cuatro y lindo cinco, así como las diferencias entre el pastel lindo y el lado del pastel y el pastel, Cute five y el lado del pastel, también. También estaré repasando una popular biblioteca linda que es utilizada por Disney, WETA, Sony Imageworks y más. Ahí nos ayudará a escribir código que se puede utilizar el lindo tanto en Maya 2017 como en versiones anteriores de Maya. En el siguiente video, voy a hacer una breve introducción a lindo on. Las diferentes versiones son lindo uso dentro de las diferentes versiones de Maya 26. Hacer un script de Python: en este video. En lugar de crear el script insider Mayas propio editor de guiones, en su lugar estaremos usando Pi Charm para crear el script. En un pre en un video anterior, configuramos I charm para apuntar a nuestro directorio Maya Scripts. Si no recuerdas dónde está esto, puedes decir archivo abierto y ir del dedo del pie. Consulta tu carpeta de documentos Maya 2017 en el directorio Scripts debajo Ahí. Si estás en Juegos Olímpicos de Mac, me aseguraré de mencionar dónde está bien tu directorio Zara, en una superposición En el video, puedes ver nuestro guión anterior que escribimos aquí, el objeto renombrar er, pero vamos crear un nuevo script. Bueno, di archivo nuevo y diremos, archivo Python. Llamaremos a este creador de engranajes y diremos OK, y ya verás porque dijimos que es un archivo python que términos pastel ya agregaron el sufijo de punto p y . A continuación, necesitamos cargar el centro Maya. Entonces vamos a escribir una pequeña declaración Prince que podemos usar para probar a Maya cargando nuestro guión. Así que digamos imprimir y entre comillas en Hola, Maya y guardarlo ahora vuelve a entrar a Maya y decir, importar creador de engranajes y ejecutarlo y puedes ver a los mayas dijo Hola, Maya. Aquí abajo. Si lo vuelves a ejecutar, puedes ver que no se imprime. Hola, Mi otra vez. Esto se debe a que Maya cobrará la importación por lo que no tiene que volver a importarla. Esto significa que a medida que nos estamos desarrollando, Maya no recogerá nuestros cambios. Entonces lo que tenemos que hacer es en la declaración de recarga. Entonces ahora si ejecutas esto, puedes ver que lo ha importado de nuevo y correr. Hola, Maya. Si vuelvo al encanto de pastel y cambio esto para decir por mi ojo en su lugar y ahora en él, se puede ver que voy a decir por Meyer ahora. 27. Crear un equipo: vamos a repasar cómo realmente creamos un engranaje. Entonces primero voy a ir a crear, y luego voy a elegir una tubería poligonal. Podemos establecer cuántos ejes de subdivisión tiene cambiándolo en la caja del canal. Ahora mismo tiene 20. Seleccionamos cada cara alterna para crear los dientes. Entonces los extrudimos y esto crea nuestro engranaje. Ahora, el problema con esto es que realmente no podemos cambiar cuántos dientes tiene el engranaje. Si cambio las subdivisiones, se puede ver que la extrusión ahora se está confundiendo porque está apuntando a polígonos y ya no existen donde deberían estar. Entonces cuando crees nuestro script, tendremos que asegurarnos de que podamos controlar cuántos dientes tiene el caimán, así como cuánto tiempo tiene el zar de extrusión y tenemos que darle la capacidad de cambiar los dientes numéricos más adelante. Entonces volvamos a entrar en el encanto de pastel. Voy a ampliar un poco mi editor de guiones. Voy a derrumbar mi caja de canal. Deshacernos del guión que ya tenemos. Vamos a importar la biblioteca de comandos Maya, así que vamos a decir desde los comandos de importación maya y de nuevo, se puede ver el encanto de pastel dándome auto completo a medida que tipeo. Vamos a crear bien nuestra función temporal, ajuste la muerte para definir la función. Le daremos el nombre, crearemos engranaje. Le daremos el príncipe ve dentro del cual le dará los parámetros son primer parámetro . Si dientes y le vamos a dar un valor por defecto de 10 nuestro siguiente parámetro se presta y le daremos un valor por defecto de 0.3 thes valores por defecto de aire que creo que son buenos para un caso de uso dentro de esto dirá imprimir, crear engranajes. Y entonces sólo voy a dar los dos parámetros que ya tenemos Poco después ejecuto el guión, insider. Maya, puedes ver que no pasa nada. Esto se debe a que en realidad no estamos llamando a esta función al igual que llamamos a funciones dentro de la biblioteca C. M. M. D s. Necesitamos llamar a la función dentro de una biblioteca de creador de engranajes. Entonces va a decir, creador de engranajes que crean engranajes. Y vamos a decir que los dientes son iguales a 20. Y ahora para en esto se puede ver lo que sucede con los valores por defecto. Estamos anulando el valor de los dientes porque le dijiste a un 20 en lugar de 10. Pero mantenemos la longitud del valor predeterminado en 0.3 porque no lo hemos especificado dentro de Maya , y se puede ver que la función se está ejecutando claramente porque imprime la sentencia creando engranaje en los dos parámetros. El número de dientes es una subdivisiones multiplicadas por dos. Entonces llamemos a los spans. Bueno, digamos que los tramos son iguales a los dientes. Veces dos. Recuerde, este es un entero, y podemos multiplicar enteros sin los enteros. Entonces ahora si decimos Príncipe prohíbe y ejecuta esto dentro de Maya, se puede ver que evalúan 40 porque le estamos dando el valor de 20. Voy a deshacerme de este defecto. Y si vuelves a ejecutar esto, nos dará un valor de 20 porque el valor predeterminado es 10. Dejemos un comentario para que alguien editando nuestro guión más tarde pueda recordar lo que pretendíamos . Cuando se utiliza el símbolo hashtag y voy a decir dientes, nuestra cada cara alterna así se extiende por dos, entonces vamos a crear el objeto pipa. Hacemos esto, pero usando los comandos, el objeto poli pipe y le damos un parámetro llamado subdivisiones access y le decimos el número de tramos si quieres. Si ejecuto esto ahora y borro mi viejo engranaje, se puede ver que hemos creado una tubería. Déjame borrar esto y le darás un nuevo valor para los dientes y yo diré 30. Entonces ejecuto esto. Se puede ver que tenemos esos muchos tramos a través de él. Si abro la caja del canal, se puede ver que el tubo Poly tiene 60 porque tenemos dos veces el número de dientes para nosotros bandas. Permítanme borrar esto. A continuación, necesitamos asegurarnos de que nos aferramos a la transformación y al constructor de esto. A continuación obtenemos una selección de las caras que queremos en el costado de la tubería. Entonces decimos caras laterales. Este será el nombre de una variable, y utilizamos la función de rango. La función de rango nos da números entre el primer número en el segundo número. En este caso, vamos a decir que se extiende por dos y se extiende por tres. Déjame entrar en por qué estamos haciendo esto. Si creo otra pipa, déjame crear una, y selecciono cada cara que queremos para nuestro té y otra vez. Esto se crea con el valor predeterminado de 20 divisiones. Entonces si selecciono estas caras, si tecleo ls Russia Cell y corro, me va a devolver las caras. Puedo copiar esto en el encanto de pastel, así que es más fácil para nosotros verlo. Y cuando un copiarlos en término pastel, se puede ver que comenzaron la cara 40. Ve al 42 44 así sucesivamente y así sucesivamente. Déjame deshacerme de esta línea. Eso significa que si estamos empezando con 20 tramos, nuestras caras comienzan que abarca estofado tiempo, que igualará 40 y el final que abarca fans tres, que igualará 60 Si vuelvo a mi y ahora corro esto, se puede ver que Empecé 40 pero voy subiendo en incrementos de uno. Pero termino correctamente en 59 que es justo antes de tramos. Tiempos tres, que es lo que queremos. El valor del rango también toma 1/3 argumento, que son los pasos que deben tomar, lo que significa que nos daré cada segundo número. Si ahora ejecuto esto, déjame guardarlo. Si ahora en esto, se puede ver que nos da 40 42 44 46 así sucesivamente y demás, cuáles serán los valores correctos que esperamos? No, elijamos estos rostros. Entonces primero, vamos a borrar cualquier selección que tengamos algunos comandos básicos o seleccionar clear igual a True. Y decimos para cara dentro de caras comanda dot select y le vamos a dar una cuerda . Y lo que estamos haciendo con la cadena es que vamos a decir por ciento s punto f y entre corchetes dentro de los corchetes ahorrará por ciento s, y vamos a usar la sustitución de cadenas para crear la cadena que Meyer necesita seleccionar los rostros. Entonces lo vamos a dar para transformar y la fe. Y por aquí se puede ver que esto será sustituido por eso y que esto será sustituido por el segundo valor. Y también le vamos a decir Maya que haga es agregar la selección en lugar de reemplazarla. Si simplemente lo ejecutara sin el parámetro de anuncio, cuando mi oh do es cada vez que va por el bucle, solo seleccionaría esa cara específica. Pero te estamos diciendo que hagas es agregarla cada vez Así que si ahora ejecuto esto, puedes ver que he creado una pipa y seleccionado cada otra cara del costado, igual que esperábamos. A continuación, vamos a extruir estos rostros. Permítanme eliminar este polígono aquí y volver en la extrusión de encanto de tarta que será un nombre variable toehold extrusión else comanda dot Polly extrude face. Este es un comando para extruir objetos poligonales. Voy a darle un parámetro fuera local translate Z y le estamos diciendo que use length como el valor de este parámetro y más digamos print extrusion para ver lo que este comando realmente nos devuelve. Entonces si ahora ejecuto esto y nos dieron un error porque no soy tipo esto correctamente porque no es poli extrusión cara. Pero, ¿qué es? Entonces en mi, uh si realmente extruyo la cara, se puede ver que el comandado corrió fue Polly extrusión faceta no cara. Entonces déjame copiar eso atrás y reemplazarlo dentro de un amuleto de pastel. Permítanme borrar este objeto. Y ahora, si lo ejecutas, hemos creado un engranaje y nos devuelven una lista que dice Polly extrusión cara uno. Dado que nuestra lista solo contendrá un objeto. Sólo regresemos el primer objeto dentro de él. Lo haremos poniendo los corchetes después de llamarlo y volveremos a dar el valor cero . Lo que estamos haciendo es saber que esto nos devuelve una lista y podemos acceder a eso usando el mismo acceso para revisión de métodos visto Phyllis, que es usar los corchetes y usar el cero para acceder al primer elemento. No asignamos todo esto a la variable de extrusión. Si elimino esto de nuevo y ejecuto el script, se puede ver que ahora obtenemos la cara de extrusión de poli uno, que fue el primer elemento de esa lista. Por último, para una función, devolvamos tres objetos importantes que necesitarán hacer uso más adelante. Vamos a ahorrar retorno y vamos a tomar el constructor de transformación y el nodo de extrusión. Entonces si elimino este engranaje en la escena y lo vuelvo a ejecutar, Pero esta vez voy a decir imprimir lo que sea que nos dé esta función. Si lo ejecuto, se puede ver que nuestra función devuelve un para sacar el nodo de transformación, el constructor y la cara de extrusión de poli. Y ahí tienes. Tenemos una función que puede crear un engranaje y nos devuelve datos útiles que podemos usar para manipular el engranaje en el siguiente video Antes de terminar el video, tengamos alguna documentación a nuestra función para que la gente pueda usarlo fácilmente, ofrecer la definición de la función, poner tres comillas dobles y golpear enter y pastel Charm debería completarlo automáticamente por ti. Si no, sólo copia. Sea lo que sea que diga mi video, diremos que esta función creará un engranaje con los parámetros dados. Diremos que los arcos o los parámetros son dientes, el número de dientes a crear y la longitud de los dientes. Y diremos que devuelve un para sacar el constructor de transformación y extruir nodo. Por lo que ahora cualquiera que llame a nuestra función simplemente puede llamar ayuda en nuestra función y ver qué nos va a devolver. Y por último, es importante señalar que no debe usar. El príncipe ve dentro de la ayuda porque lo que esto hace es que ejecuta esto y luego se ejecuta la ayuda. En realidad te da para ayudar por las dos personas que es devuelta por esto sin que el príncipe vea. No lo estás ejecutando, y solo estás dando ayuda. En su lugar la función real 28. Modificar el equipo: para recapitular nuestro video de pérdida, hemos creado una función que puede generar un engranaje basado en los parámetros que le damos. Si voy a correr esto, conseguirás un engranaje con un número variable de dientes. En este video, te mostraremos cómo modificar el engranaje que acababa de crear. La función que creamos vuelve para transformar el constructor y el nodo de extrusión . Estos serán útiles porque necesitamos modificarlos en la siguiente función. Entonces vamos a poner estos dentro de variables dentro de Meyer, vamos a decir transformar, constructor y extruir son iguales a nuestra función. Y si ahora ejecuto esto y digo imprimir, transformar, imprimir constructor y debo decir transformar constructor print extrusión. Si ahora ejecuto esto, se puede ver que dice que la transformación es P pipe al constructor es Polly Pipe to y extrusión es probablemente extruir cara a. Entonces, eliminemos estos engranajes. Vamos a crear un nuevo engranaje. Voy a expandir Maya. Si vas a la caja del canal, puedes ver que la tubería de polity uno tiene el acceso de subdivisiones que podemos cambiar para cambiar el número de Pete que tendrá el engranaje. Pero si lo cambias, puedes ver que el se puede ver que el nodo de extrusión de poli ya no sabe qué caras editar, y obtienes formas realmente funky. Entonces, cuando cambies esto, también necesitamos cambiar el nodo de extrusión de poli. Pike Charm creará una nueva función para hacer esto. Entonces vamos a crear un engranaje otra vez. Y ahora los restaurados estos valores. Pongamos un hashtag para comentarlo para que podamos volver a ejecutar este comando accidentalmente en la siguiente línea. Llamemos a una función que estamos a punto de hacer. Diremos creador de engranajes Cambio de pato y luego le daremos el constructor y la extrusión que también le iban a dar, es el número de dientes. Entonces, ¿cuándo vamos a decir que queremos hacer 40 de ellos? Entonces tenemos la escena. Vamos a crear una nueva función. Bueno, digamos que la muerte cambió de calor porque ese es el nombre de la función que creamos. Tomará dos parámetros, tomará el constructor y la extrusión. Se necesitará el número de dientes para crear y la longitud imprimiremos el constructor e imprimiremos la extrusión para que podamos ver que está obteniendo los valores correctos. Y este es un buen momento para introducir los dos tipos de parámetros dentro de una python si no das un valor predeterminado pero dando el símbolo igual y un valor Python los convierte argumentos posicionales, lo que hace un obligatorio si llamas al cambiar la función de los dientes. Tienes que dar estos valores porque no tienen valores por defecto. Pero Python necesita saber a qué igual. obstante, no necesitas obtener estos dos porque ya tienen un valor predeterminado, que significa que Python sabe exactamente a qué son iguales. Entonces si corres esto ahora, puedes ver que tenemos el Poly Pipe uno y el Poly extrusión cara uno. Si elimino la extrusión y luego la ejecuto, nos va a dar una era, dice Change. El calor se lleva al menos dos argumentos, y no hemos dado el número necesario de argumentos. Lo que vamos a hacer ahora es cambiar el número de caras en el tubo de poli. Por lo que de nuevo diremos que se extiende igual Pete Times dos No conseguimos los comandos. Pipa de acebo Dup. Voy a darle el constructor cuando digas editar igual a verdadero y vamos a decir que las subdivisiones acceden a intervalos iguales. Entonces lo que estamos viendo ahora es que volveré a utilizar el Comando Poly Pipe con la tubería de polity que tenemos esta vez le damos la bandera de edición para que sepa y especie de crear una nueva para editar la existente. Entonces si ahora en esto, se puede ver que ha cambiado el número de tramos en esto. Pero la cara de extrusión de Poli está todo mal porque no sabe qué caras extruir con precisión ¿Cómo ves lo que está usando en realidad? Destruir estos valores? Bueno, si dices Polly extruir cara y vamos a usar la lista a su comando dentro de un pitón así que en una nueva línea, voy a decir comandos. En primer lugar, déjame importar los comandos, Lavery. Por lo que diremos de Maya Import Ramone y notaremos que comanda el adder de lista. Y luego le doy la cara de poli extrusión uno. Ahora ejecutamos esto. No nos devuelve nada. Eso es porque tenemos que imprimirlo también. Si seleccionamos esto y luego ejecutamos, nos devuelve una lista de todos los atributos por los que son demasiados para pasar. Entonces les diré, el que se interesa en ello se llama Componente. Se llama componentes de entrada, que confinaste aquí mismo podemos usar para llegar a su comuna para ver a qué es igual. Decimos Obtener en su polity extrusión cara de un punto componentes de entrada. Y si ahora ejecuto esto, se puede ver que es igual a los valores faciales que tenemos para que podamos usar al igual que solíamos ponernos a sus órdenes. Podemos usar el set en nuestro compromiso para volver a configurarlo, por lo que crearemos una lista, destruiremos todas las caras. Y al igual que antes, diremos que las caras laterales es igual al rango se extiende veces a ti se extiende por tres y a otra vez. Esto significará que pasaremos por la primera cara, que será el número de tramos veces para ti. Entonces vamos a dar un paso cada dos valores como lo da esto. Perdón, esto debería ser lapos Tiempos tres. Estas serán las caras que queramos y vamos a cambiar esta lista para que se llamen nombres faciales para que no nos confundamos. Entonces ahora Lo que vamos a hacer es diremos cuatro caras dentro de las caras cara, nombre es igual a y otra vez ¿Va usted sustitución de cuerdas dirá f y corchetes. Y dentro de eso, diremos por ciento s porque yo por ciento s va a ser sustituido por este siguiente valor dentro de estas impresiones ve cuál será cara si digo imprimir cara y ahora corro esto, déjame deshacerme de esto. En primer lugar, permítanme simplemente copiar esto para que podamos ver los valores que se esperan. ¿ Puedo tenerla en esto? Se puede ver que nos está devolviendo los nombres, los números de las caras, lo que en realidad quería con el nombre de la cara. Baste imprimir eso fuera. Ahora se puede ver que dice f y luego entre corchetes el nombre de la cara que queremos. Entonces lo que vamos a hacer es añadir esto a la lista de nombres faciales. Por lo que decimos los nombres de las caras dot upend y de nuevo, puedes ver el encanto del pastel dándonos una finalización útil, y vamos a guardar el nombre de la cara. Entonces ahora si digo nombres de caras impresas y corro esto, se puede ver que es muy similar a la lista que tenemos aquí ahora Lo que vamos a hacer es como lo hicimos antes. Ahora vamos a establecer los atributos que iban a decir, Vamos. Entonces ponte en ella otra vez, sustituirás de cuerdas? Porque no sabemos cuál es el nombre de la nota de extrusión. Mientras estaban ejecutando la función, voy a poner darle el nodo de extrusión y luego el siguiente argumento que necesita es cuántos ítems hay en la lista de darle. Entonces diremos Len, y le voy a dar la lista de nombres faciales. Y lo que esto hará es que obtengan la longitud de la lista de nombres de caras y se la den al set fuera de función. A continuación necesita una lista de caras viejas que estarán usando tan debilitado do es expandir la lista de nombres de caras . Hacemos esto, pero dando el asterisco y decimos nombres faciales. Y lo que esto hace es, en lugar de darle la lista de nombres faciales, expande para que cada uno de ellos sea un parámetro. Esto es lo mismo que decir f 1 60 aquí y luego dar otro parámetro diciendo f 1 62 y así sucesivamente. Y así sucesivamente. Lo que estamos haciendo es y empezamos a darles a cada uno individualmente. Estamos ampliándolo de la lista para que no tengamos que hacerlo manualmente. Y finalmente, la variable de pérdida es tipo porque tenemos que decirle qué tipo de tipo es el atributo. Y vamos a decir lista de componentes. Debo decir esto. Y si aclaro aquí la historia y luego ejecuto el guión, se puede ver que nuestro engranaje ha sido editado para tener el número correcto de dientes. También queremos poder cambiar la longitud, y esto vuelve a ser muy similar. Entonces decimos comandos nepalí extruir faceta porque es un comando que usamos para crear el extremo le damos nodo de extrusión. Y al igual que lo hicimos antes con el Poly Pipe, decimos que editar es cierto porque quieres editarlo y necesitamos saberlo, y necesitamos hacerle saber a mi Yo sé que queremos editarlo. Y a continuación vamos a utilizar una forma corta para la variable de usado antes. Vamos a decir lt Z es igual a prestar. Esta es una forma corta fuera del parámetro local translate Z usted concede los nombres cortos dentro de la documentación Maya. Yo sólo lo voy a usar aquí para ser perezoso. Entonces si nunca vuelvo a ejecutar esto, funciona como esperamos. Puedo cambiar nuevamente el número de dientes 10 y ejecutarlo. Y los cambios eso y puede cambiar la longitud a 0.5. Si lo ejecuto ahora, se puede ver que se extiende la longitud y se puede cambiar hacia abajo realmente pequeño. Y así, tenemos una función. Hemos creado un engranaje, y ahora podemos modificar el mismo engranaje que hemos creado. 29. CLASde de tipos y interfaces en Python: No voy a estar aprendiendo sobre cláusulas. Las cláusulas están lejos dentro de una pitón para generar tipos personalizados en este caso estarán generando un tipo llamado Animal. Creamos las garras animales mediante el uso de la palabra clave cláusula dándole el nombre de la misma llamada dándole el nombre animal. Y luego le decimos de qué heredar. En este caso, estamos heredando del objeto python, que es el tipo de nivel más bajo dentro de una python. Esto significa que animal tomará todos los rasgos que objeto tenemos aprendiendo más sobre esto en un poco dentro de una cláusula? Debilitar definir métodos. Estas son similares a las funciones, pero tienen que vivir dentro de una cláusula. Y todos se toman a sí mismo como primer argumento. Aparte de eso, todos se comportan exactamente como funciones. Creamos una instancia fuera del objeto animal de la misma forma que creamos instancias fuera de cualquier otro tipo dentro de una pitón. Entonces si quisiera crear una lista, diría que mi lista es igual a lista. Le doy el tipo que quiero crear y luego paréntesis y luego lo guardo en una variable llamada mi lista. Entonces si quiero crear un nuevo animal. Puedo decir algo como Tiger es igual a animal y darle monedas de la misma forma que nosotros creadores lista. Estamos creando una nueva instancia animal diciéndole el tipo dando paréntesis para indicar que estamos creando una nueva instancia y luego almacenándola en una variable llamada tigre. Si digo imprimir el tipo de tigre, se puede ver que es una cláusula de animal almacenado dentro de un principal. Esto es un relevante ahora mismo, pero lo aprendemos más adelante. Hemos aprendido a llamar a funciones con objetos tan antes. Si quisieras decir algo para hablar, diríamos hablar y darle el objeto que queremos y darle el objeto sobre el que queremos realizar esta acción. Por ejemplo, hemos estado haciendo cosas como pensar, manda a ese padre y luego darle un objeto como tigre en lugar de hacer esto. Donde estamos pasando donde estaban pasando son variables en una función. Python tiene alguna programación orientada a objetos tinkle. programación orientada a objetos nos permite realizar acciones con el objeto tigre en lugar de realizar acciones sobre el objeto tigre. Por lo que en lugar de decir hablar y darle la variable tigre podemos decir en lugar de tigre dot speak. Y si ahora dirijo esto, dirá que no sé hablar. Esto se debe a que definimos este comportamiento aquí mismo. Otro aspecto de las clases es el hecho de que se pueden crear múltiples instancias de una. Entonces en lugar de tener hablar, digamos no sé hablar, digamos que mi nombre es y luego vamos. Y entonces hagamos que se refiera a un nombre muy bíblico y diremos nombre es igual a ninguno porque aún no hemos definido el nombre. Esta es nuestra introducción a la palabra clave self. Lo que esto nos permite hacer es referirnos a una instancia fuera de Kloss. Entonces ahora mismo, si digo Tiger no habla, dirá que mi nombre no es ninguno porque el nombre autodidacta no es ninguno. Si le creo a los animales y les digo y les digo a ambos que hablen hasta otra vez, ambos dicen que el nombre no es ninguno. Pero ahora puedo hacer algo especial. Puedo ver el nombre del punto tigre es igual a Tiger y Buffalo. Hecho. Nombre es igual a búfalo, y si ejecuto esto ahora, se puede ver que esta instancia del objeto animal se imprimirá. Mi nombre es Tiger porque el método de hablar se refiere al nombre autodidacta, que se está poniendo aquí en esta instancia específica. Esto significa que podemos reutilizar el comportamiento de una clase mientras solo cambiamos ciertos aspectos fuera de ella como nos parezca conveniente. Esto nos da la capacidad de definir mucho comportamiento reutilizable hemos visto que su animal hereda del objeto, pero podemos crear otros tipos que heredan del animal. Por ejemplo, vamos a crear un perro y en lugar de objeto, le diré que herede de animal. Y no voy a definir nada aquí. Entonces vamos a crear un perro nuevo. Yo lo voy a llamar. Fido es igual a perro otra vez. Estamos creando una nueva instancia de perro y luego almacenándola en la variable de combate. Si digo Fido dot speak, va a decir que mi nombre no es ninguno porque está usando porque está usando el método definido aquí arriba. En cambio, quería decir Wolf, alguien lo diga ahora voy a redefinir, hablar y voy a decir imprimir vale. Y ahora para en esto va a decir lobo, y esto es porque hemos redefinido sólo el método de hablar de esta clase de aquí arriba. Pero si ahora digo luchador punto respirar, pesar de que no hemos definido el método de raza para perro, va a heredar esos rasgos de animal. En este caso definimos Respirar aquí arriba y se puede ver que dice que no sé respirar aquí abajo justo lo mismo A dice no sé respirar Aparecen. Esto se debe a que el perro hereda cada rasgo del objeto animal, y esto se debe a que definimos al animal como la base para el perro. Podemos explorar esto más allá diciendo imprimir tipo un luchador, y voy a decir que está fuera del perro garras. Pero decimos que la impresión es instancia Fido off animal. Dirá verdad, porque Fido es una instancia de perro así como de animal, porque luchador hereda tanto el perro como los rasgos animales. Si definimos más métodos en esto para anular, podemos decir caminar y yo diré imprimir. Camino en cuatro piernas y ahora si corro luchador no camine. Dirán que camino sobre cuatro patas, pero otra vez, si digo luchador, no respires, se va a sacar el método del animal Kloss en vez de de de la clase de perros. Por último, también podemos añadir siempre nuestros propios métodos. Cualquier sub cerca. En este caso, digamos qué es la raza y diremos imprimir raza autoestrella. Y definamos una raza aquí arriba y diremos, raza como ninguna. Entonces si digo Fido, entonces ¿qué es la raza? puede ver que nos devuelve ninguno, pero si lo hiciera ahora. Pero si ahora pongo este valor y emergencia, y voy a decirle que sea un Doberman, si ahora corro, me dirá que es un Doberman. Pero si cambio luchador de un perro a solo un animal normal y luego lo ejecuto, se puede ver que dice que el objeto animal no tiene atributos. ¿ Qué es la raza? Esto se debe a que lo que es raza sólo se define en el objeto perro y no en el animal. Kloss. Por lo que sólo funcionará si Fido es para perro y no sólo para un animal. Lo que esto nos permite hacer es definir el comportamiento común en una base. Kloss, en este caso, animal que todos los animales pueden compartir, y podemos definir un comportamiento más especializado dentro de una subclase como perro. Ahora si crea una nueva cláusula, por ejemplo, pez y le diremos que sea un animal, y podríamos simplemente redefinir el método de respirar, y le voy a decir que respiro bajo el agua. Si creo un pez nuevo y le digo que respire, va a decir que respiro bajo el agua porque está heredando de animal. Y si le digo que hable, diré que mi nombre no es ninguno porque está heredando de animal. Lo que esto nos ha permitido hacer es encontrar dos tipos diferentes de sub animales perro y peces que el barco heredan de animal. Pero definen su propio comportamiento donde es adecuado, pero ambos heredan un comportamiento común como recapitulación para mostrar varias razones. Mis clases son muy útiles una. Nos permite definir un comportamiento reutilizable que podemos personalizar usando instancias. Una instancia variables a ella nos permite agrupar comportamientos comunes. Juntos Se relaciona con un solo tipo de objeto en este caso, fuera de los tipos de animales y tres. Nos permite heredar y extender cualquiera de estas clases. Podemos anular cualquiera de los métodos que se definieron, o podemos agregar nuestros propios nuevos métodos para agregar más funcionalidad a una cláusula sin tener que afectar a cualquier otro tipo de subclase que haya 30. Convertir nuestras funciones a clases: no vamos a convertir nuestras funciones de creación de engranajes y modificación de engranajes en un paño con el que podamos interactuar más fácilmente en término pastel, crear un nuevo archivo. Van a archivar nuevo y decir archivo python. Bueno, digamos paños de engranajes, creador. En cambio, tenemos razón. Haga clic en la pestaña y diga: Dividir verticalmente. Esto dividirá nuestro código verticalmente entre el creador de engranajes y el Creador de Cláusula de Gear que ahora estará creando para la mayoría de este video se quedará dentro de un encanto de pastel. Aún así, tenemos que volver a Maya porque la funcionalidad es bastante sencilla. En primer lugar, digamos de Maya Import. Ver MDS. Crearemos una clase y nombraremos un engranaje y heredaremos del objeto python. Dentro de esto, vamos a crear una nueva función o método, y lo llamaremos Crear engranaje. Como puedes ver, pastel charm agrega automáticamente una palabra clave auto para que sepamos referirnos a nosotros mismos dentro de la clase. Usaremos los mismos parámetros que antes, y se puede ver el código antiguo de la izquierda. Diré que los tramos es igual a los dientes. Veces dos. Escribiré el mismo código exacto de nuevo transformado y constructor es igual a comandos. Duck, Polly Pipe y déjame sólo ver las banderas que usaban. Sólo voy a copiar eso a través y vamos a decir Caras laterales es igual a rangos dos tramos dedo del pie tres y dile otra vez Bueno, dile que despeje la selección y diremos cuatro caras dentro de caras. Y déjame simplemente copiar esto el resto del código de esta función y asegurarme de que esté sangrada para que esté en línea con la función create gear o en este caso, es un método. A continuación, vamos a crear el método de cambio de dientes lo copiará a través, y sólo me aseguraré de que todo esté sangrado correctamente seleccionándolo y golpeando Tab. Sé que manualmente agregar la palabra clave self al principio, así que esto no es muy útil. Acabamos de tomar el mismo código y lo ponemos dentro de un objeto de engranaje. Si vuelves a mi, uh, podemos importar esto diciendo creador de telas de engranajes como creador de engranajes, lo que estamos haciendo es importar el nuevo módulo, pero como este nombre de módulos para que no tengamos que cambiar el resto de nuestro código. Y si trato de ejecutar esto Ahora, déjame solo comentar. Remolcó esta línea. Si intento ejecutar esto ahora, dirá que no hay método de creación de engranaje si, esto es porque ahora está dentro de una cláusula. Entonces vamos a crear el Kloss. Bueno, digamos que el engranaje es igual a engranaje. Y si ahora ejecutamos esto Oh, lo siento. Tenemos que decir que el engranaje está dentro del engranaje Creador y si ahora corro esto, se puede ver que funciona. Todavía tenemos que manejar todos estos fuera de para paños. Eso no nos resulta muy útil. Entonces de vuelta en el encanto de pastel, cambiemos esto. En primer lugar, tenemos el yo. ¿ Qué significa esto? Esto significa que cuando estamos dentro de aquí, engranaje se refiere a esta instancia de engranaje y nuestros métodos saben cómo acceder a él. Otra cosa que cierran es que lo hagamos almacenar valores dentro de nosotros mismos. Entonces probemos esto ahora. Entonces lo vamos a hacer es que van a decir, auto pato transformado y auto constructor punto y aquí abajo lo cambiarás a auto punto transformado, y no devolveríamos nada esta vez. Adicionalmente, cambiémoslo a extrusión de auto punto, y lo que estamos haciendo aquí es que estamos diciendo que es una especie de tener esta variable almacenada dentro de la función de justicia. Pongamos la puerta de esta variable él mismo. Esta es una forma destruida variables fuera de esta función, y es un buen ejemplo de python. Alcance es un ejemplo de una variable que existe sólo dentro de esta función. No podemos acceder a ella fuera de esta función. La segunda disfunción termina caras laterales ya no existe. En cambio entendemos, o esta variable en la instancia de paños misma mediante el uso de auto. Eso significa restaurar esta variable en sí mismo. Entonces ahora, si vuelves a Maya y yo corro esto, déjame borrarlo. En primer lugar, dirás que ningún tipo no está en terrible porque estamos tratando de expandirnos para devolver valores. Y, como puede ver, eliminamos el valor de retorno. Originalmente, teníamos esto. Ya no regresamos nada, así que déjame deshacerme de ese enfermo. Simplemente digo engranado o crear engranajes. Pero ahora aquí está la parte genial. Puedo decir print gear dot transform. Y si ejecuto esto, se puede ver que dice P pipe uno. Eso se debe a que he establecido esos atributos en esta instancia fuera de marcha, y ahora puedo acceder a este atributo en esta instancia de engranaje un oleaje. De igual manera, puedo decir imprimir la extrusión y otra vez cept en el engranaje. Yo, sin embargo, no puedo acceder a la variable caras laterales. A ver si intento eso. Dice que Gear no tiene atributos. Caras laterales. Eso se debe a que la variable de caras laterales se limita a la función de justicia, y así es como lo queremos por ahora. Entonces ahora que no estamos recuperando la transformación del constructor y extruir como éramos antes, no tiene sentido tener esto aquí. Entonces, vamos a deshacernos de estas variables. Y ahora, si vuelves al gráfico circular, también vamos a deshacernos de estos parámetros, y simplemente podemos referirnos a ellos usando uno mismo de nuevo. Entonces es decir, constructor autodidacta, que obtiene este valor y de nuevo aquí abajo podemos decir duda de uno mismo, extruir y duda de uno mismo extruir otra vez, diciendo Busca el valor del yo sobre nosotros mismos. Esto significa que miramos fuera de la función y en su lugar miramos a la clase. Entonces si vuelves a aquí y ahora corres esto, déjame primero borrar esto y si ahora corro todo esto, puedes ver que tenemos un engranaje por aquí. Con estos cambios aplicados, ahora puedo cambiar el número de dientes y la longitud. Si vuelvo a correr esta línea, se puede ver que sólo estamos modificando el mismo engranaje. Y si fuera a decir tipo de impresión de engranaje, se puede ver que es off type gear del creador de paños Gear. Por lo tanto, se puede sentir la tela de una realmente buenas maneras de contener la lógica dentro de sí misma. En lugar de tener que llamar a su función como en nuestro ejemplo anterior y almacenar los valores que obtuvieron de él y luego usar esos valores para alimentarlo de nuevo a otra función. Podemos simplemente aferrarnos al objeto de un engranaje, y sabe interactuar consigo mismo. Si vuelves al encanto de pastel, puedes ver que estos valores solo se establecen cuando es un año creativo. Pero no están ahí por defecto antes de ejecutar este método. Entonces si entro a Maya y creo un engranaje nuevo y dije que el engranaje se extrudió, esto era algo que podríamos haber conseguido antes. Pero si nunca en él, se puede ver que el objeto engranaje no tiene extrusión de atributos. Esto se debe a que por defecto en la creación de los atributos hasta que se ejecute esta función. Entonces si dices engranaje, crea engranaje y ahora ejecútalo bien, recupera el valor en su lugar, establecemos estos valores por defecto. Dentro de un encanto de tubería creará una función llamada en él. Entonces para crear esta reciente muerte, como al igual que creamos todas las funciones de los métodos. Pero esta vez escribimos doble en las partituras y en ella y pipa encanto te lo sugerirá , seguido de dos subrayados más. Por lo que doble guión bajo i n I t Seguido de dos subrayados más. Nosotros le damos el valor del yo. Y entonces aquí solo decimos autodoctrinas. La forma es igual a ninguna. La extrusión de punto auto es igual a ninguno, y yo, ese constructor es igual a ninguno. No, estaba diciendo, es cuando primero inicializamos un nuevo engranaje y luego podemos consultar extrusión orientada. Ah, lo siento. Después de recargar esto primero, déjame recargarlo. Y si creé nueva instancia de engranaje y luego corro orientado hacia fuera extrusión, se puede ver que no se imprime nada. De hecho, puedo decir print gear dot extrusión y no dirán ninguna. Esto se debe a que de vuelta en el encanto de pastel. Estamos poniendo la duda de sí mismo. Extrusión igual a ninguno. Pero si fuera a decir Geared, creo engranaje y corro esta línea ahora orientada hacia fuera extrusión tiene valor. Pero lo que esto significa es que si no hemos corrido, creamos engranajes, todavía podemos obtener el valor de la extrusión de punto de engranaje y volver a término circular. Por fin puedo explicar lo que hace la función de la unidad. Thean it método se ejecuta cada vez que se crea una nueva instancia del objeto. Entonces cada vez que hacemos esto, en realidad estamos ejecutando el método innit. Te puedo mostrar esto de manera bastante sencilla. Si digo imprimir corriendo el método innit, Siempre que creo un nuevo objeto de engranaje, se puede ver que dice, ejecutando el método de la unidad. Entonces déjame crear un nuevo objeto de engranaje. Puedo intentar imprimir orientado hacia fuera extremo, y voy a decir ninguno porque todavía está establecido en ninguno. Pero cuando dije engranado o crear engranaje y ahora sí imprimir engranaje orientado hacia fuera extrusión, tiene valor porque yo método crear engranaje ha cambiado el valor del punto de engranaje extremo. Por lo tanto, se puede ver el valor del método thean it al permitirnos establecer valores y comportamientos predeterminados . Cuando se crea un cierre y ante cualquiera de sus métodos o correr finalmente para documentar la clase de engranaje , creamos la documentación debajo de la palabra Kloss, igual que hacemos para una función. Entonces vamos a añadir tres comillas dobles, y podemos decir que se trata de un objeto de engranaje que nos permite crear y modificar un engranaje por aquí. Dejemos un comentario para decir el método innit. Vamos a un conjunto de valores predeterminados, y luego, si tienes ganas de agregar documentación para estos, puedes hacerlo de la misma manera. Y ahí tienes. Hemos creado una primera tela al convertir las funciones que aprendimos en nuestro primer video y usarlas para componer esta cláusula llamada Gear. Hemos aprendido sobre el auto y sobre el método de la unidad y sobre lo cerca que están los valores de consentimiento sobre ellos mismos y luego acceder a los valores sobre ellos mismos para que no tengamos que postular variables propias fuera de las funciones 31. Proyecto 4: Tweener de animación: a través de este proyecto estará aprendiendo a crear una biblioteca de controladores usando lindo. Nuestra biblioteca de controladores será flexible y soportará miniaturas. Podemos importar cualquiera de los objetos que guardamos, y también podríamos crear los objetos nuevos que queramos. En este caso, voy a decir esto como la prueba, y cuando golpee guardar, verás que aparece dentro de para nuestra ventana. Aprendimos a guardar datos como Jason y archivos así como cargarlos de nuevo en ¿Eres tú? Voy a estar usando lindo proporcionado por lado pi al interior de mi 2017 y lado de pastel. En versiones anteriores de Maya, repasaremos las diferencias entre lindo cuatro y lindo cinco, así como las diferencias entre el pastel lindo y el lado del pastel y el pastel, Cute five y el lado del pastel, también. También estaré repasando una popular biblioteca linda que es utilizada por Disney, WETA, Sony Imageworks y más. Ahí nos ayudará a escribir código que se puede utilizar el lindo tanto en Maya 2017 como en versiones anteriores de Maya. En el siguiente video, voy a hacer una breve introducción a lindo on. Las diferentes versiones son lindo uso dentro de las diferentes versiones de Maya 32. Descripción de las bibliotecas de contactos de usuarios en Maya: antes de empezar a diseñar. ¿ Son ojos? A mí me gusta ir por encima de las diversas bibliotecas Tú I dentro admiro mi tiene a ti I bibliotecas. unicidad, parte de la biblioteca de comandos que ya estaban familiarizados con la otra se basa en algo llamado Cute. Es hechizo Q T. Pero la pronunciación oficial es linda, así que ten conmigo ya que usaré que toda mi interfaz de usuario está construida sobre Cute. Cute es una biblioteca C Plus plus que permite a los desarrolladores de aplicaciones desarrollar para un sistema operativo y tener un tú que pueda parecer nativo en cualquier otro sistema operativo. Si desarrollé algo en Windows, puedo reutilizar el mismo código en Mac OS o Lennox, y mi aplicación parecerá que pertenece a ese sistema operativo. Adicionalmente, brinda muchas otras funciones para ayudarnos a desarrollar aplicaciones multiplataforma. Antes de mi 2011 cuando mi A switch to cute Maya tenía diferentes yo bibliotecas para cada sistema operativo. Esto significaba como desarrollador de U I, estás obligado a usar la biblioteca de Comandos Maya donde los comandos usarían la biblioteca respectiva en cada sistema operativo, por lo que no tendrías que saber qué estaba usando. Esto provocó muchas discrepancias visuales y discrepancias conductuales. Adicionalmente, la biblioteca de Comandos Maya solo ofrece un pequeño subconjunto de lo que lindo ofrece. Por lo que pierdes el control a expensas de no tener que entender los detalles subyacentes. Cuando mi A 2011 vino alrededor mi tuve un nuevo oscuro tú yo usando la linda biblioteca, esta mental Maya derramó lo mismo que yo codifico en cada sistema operativo, y significaba que finalmente podríamos usar algo llamado Pike UT o pastel. Cute Pi cute es una encuadernación pitón alrededor de la linda biblioteca. Esto significa que podemos usar todo lo que las pruebas Q u ofrecen dentro de Python. De repente, esto te dio. Yo los diseñadores bloquean más control y flexibilidad por ahí, ustedes porque ya no tenían que usar la biblioteca Comandos, que era un envoltorio alrededor. Lindo. En fin, significó que conseguiste mucho más control sobre cada cosita que creaste en este primer proyecto. Te estaré mostrando cómo crearlos chicos con la biblioteca de Comandos Maya y en los próximos dos proyectos ofrecen que vamos a cambiar a usar el pastel lindo competidores er, los barcos con Maya llamados pie side, también 33. Obtener datos para la función de Tween: estaremos empezando creando nuestro guión que podemos importar a Maya. Por lo que hago clic en su directorio de scripts, viendo Nuevo y archivo Python, y vamos a nombrar este tweener te lo doc pie. Empezaremos creando entre función que podemos usar dentro. Admire. Entonces digamos de Maya Import C. M. D s. Entonces vamos a crear la función Tween. Entonces decimos muerte entre otra vez. La muerte es corta para definir entre es nuestro nombre de función y en el príncipe ve Vamos a dar los parámetros que necesitamos. En primer lugar, entre ng necesitamos saber qué porcentaje entre dos. Entonces necesitamos saber qué objeto hay entre. Pero hagamos de esto un defecto de ninguno. Queremos saber qué atributos hay entre, pero bueno otra vez decir que esto no es ninguno. Por último, podemos decir que la selección es igual a true, porque por defecto queremos que la función Tween toe trabaje en la selección actual. Pero antes de continuar, creo que es importante demostrar que aquí podemos tener argumentos conflictivos. Si digo que la selección es igual a false y no especifico objeto, no tendré nada en qué ejecutarme. Entonces pongamos un error al principio de por código, para que no pasemos tiempo ejecutando todo solo para descubrir que no podíamos correr en primer lugar. Entonces voy a decir si no sobre J y no selección, entonces vamos a decir error de valor de pastoreo y diremos que no se le dio ningún objeto a Tween. Entonces si ejecuto esto ahora mismo, se puede ver que toma al menos un argumento, Así que vamos a darle un porcentaje. Y la única razón por la que soy capaz de ejecutar esto dentro del encanto de pastel en este momento es porque no estoy usando ninguna de la biblioteca de comandos. Entonces digamos entre lo que decimos, selección es falsa. Y ahora cuando se ejecuta esto, se puede ver que dice que no se le dio ningún objeto a Tween. Ahora bien, ¿cómo funciona este cheque? Bueno, estamos diciendo, si no objeto, lo que significa que si objeto es igual a falso ahora, objeto no es igual a caídas, pero ninguno es falso ish, lo que significa que si lo convertí a un balazo sería falso y de igual manera la selección es falsa. Entonces estamos diciendo si no el objeto es verdadero, lo que significa que el objeto es falso y no la selección es verdadera, lo que significa que la selección es falsa. Entonces vamos a plantear, evaluar error evaluar error es un error que se presentará de inmediato a cualquiera llame a nuestra función y nos dará detalles sobre lo que salió mal. Diremos que ningún objeto dado entre y elevar medios para plantear este error de inmediato y detener la ejecución fuera de su código. Siguiente. Se quiere decir que si no se da ningún objeto, así que si no o b j, diremos O b J es igual a comandos conseguidos LS y selección igual a uno. Lo sentimos, la selección es verdadera. Y luego conseguiremos el primer objeto en la selección. No, vamos a comentar esto tan bien como vamos. Así es decir, si objeto Si no se da LBJ y selección, se establece en falso error temprano. no si se especifica No O. B. B. J, obtenerlo de la primera selección. A continuación, necesitamos hacer lo mismo para los atributos para que podamos averiguar qué ADDers usar. Entonces diremos si no ADDers. ADDers es igual a comandos. Got list adder porque queremos enumerar los atributos que están disponibles en este objeto. Entonces diremos objeto y Keeble equivale a verdadero. Entonces vamos a Entonces vamos a consultar el objeto que obtuvimos de la selección y tomamos el primer elemento de la selección porque esto es una lista. Entonces vamos a enumerar todos los atributos en él que son capaces. Entonces ahora solo voy a imprimir el O. B. J y los ADDers solo para asegurarme de que estamos consiguiendo las cosas correctas. Por lo que de vuelta en Meyer, te voy a ejecutar el tweener de importación. Oí que es un nombre para módulo. Voy a decir Recargar, limpiador. Tú yo y yo debo decir, tweener te docto Tween y le voy a dar algún porcentaje imaginario de 50. Entonces si nunca en él, obtendremos todos estos atributos que se pueden animar en P Cube uno. En este caso, es todo en la caja del canal. Entonces ahora tenemos que averiguar exactamente qué necesitamos hacer para crear un Tween. Y esto podría ser alguna lógica ligeramente avanzada. Entonces, en primer lugar, necesitamos encontrar nuestra hora actual. El tiempo actual depende del deslizador aquí. Si estamos por aquí, bueno, entre entre esta llave y esta llave. Pero si por aquí, bueno, bueno, entre ing entre las otras dos claves, déjame simplemente deshacerme de las claves en otros canales para que podamos simplemente enfocarnos en el X Channel de vuelta en encanto de pastel. Saquemos la hora actual de Maya's, dijo Hui. El tiempo actual es igual a comandos dot tiempo de carton y verás que una consulta es igual a true porque no queremos cambiarla. No lo vamos a consultar. Entonces ahora vamos a asegurarnos de que estamos llegando en el momento correcto. Por lo que decimos Imprimir tarjeta en tiempo y de vuelta en Maya. Si ejecutamos esto, se puede ver que el tiempo actual es 28 porque el marco derecho 28. Si voy al cuadro 80 y lo ejecuto, dice Frame 80. A continuación tenemos que hacer es pasar por cada atributo en Buscar la clave anterior y siguiente. 34. Setting clave con la función de de la función de interpolar: primero, vamos a crear un bucle de cuatro al igual que hemos creado cuatro Luke antes de decir cuatro en ER en ADDers, donde ADDers es una lista. Ahora, antes de hacer esto, es importante mencionar que si List Adder no recupera ningún atributo de Keeble, no va a devolver su lista. Maya devuelve molesto un tipo de monja, lo que significa que podemos usar un bucle for y nuestro código se producirá un error por ahora. Esto está bien porque se espera un error, pero volveremos a esto más adelante. Entonces primero, vamos a crear el completo a su nombre. Entonces diremos Adder lleno y otra vez voy a sustituir cadenas y le voy a dar sobre J un adder. Entonces vamos a reemplazar este por ciento s por O. B. J y este por ciento s por el adder en nuestro bucle actual. En el símbolo por ciento es simplemente decirle que reemplace las cosas de la izquierda con cosas de la derecha. Y la razón por la que estoy creando el completo a su nombre es porque muchos de los comandos mayas requieren este formato, y en lugar de crearlo en todas y cada una de las llamadas de comando, es mejor simplemente crear aquí. Por lo que podemos reutilizarla más tarde. Por ahora, vamos a obtener una lista de todos los fotogramas clave de los atributos. Por lo que decimos los fotogramas clave es igual a los comandos. Cuadros de patito adder. consulta completa es igual a verdadera, y lo que esto hará es que nos devuelva una lista de todos los fotogramas clave en la toma para los atributos específicos. Entonces si guardamos imprimir fotogramas clave y volvemos a Maya y ejecutamos esto, dice, Model tiene los atributos, marcos clave. Entonces hicimos un error tipográfico en alguna parte. Ah, marcos clave históricos muy simples. Se llama Key Frame otra vez. Yo confiné esto hacia fuera buscando la documentación del lodo. Entonces volvamos a Maya y ejecutemos esto de nuevo, y se puede ver que todos los demás atributos de cable nos devuelven ninguno en lugar de una lista, mientras que el único atributo que se puede teclear nos devuelve los números de fotogramas para las claves. Entonces no tiene sentido continuar con el resto de nuestra lógica si no tenemos ningún fotograma clave para en el medio. Entonces lo que voy a decir es, si no los fotogramas clave, en otras palabras, si los fotogramas clave no son ciertos, entonces sigamos con el siguiente objeto. Y lo que esto le dice al bucle es que si esta afirmación no es cierta, entonces continúe con el siguiente objeto y omita todo lo que está debajo de mí. Esto nos puede ayudar a ahorrar tiempo porque no lo hacemos No vamos a estar ejecutando lógica en algo que no lo necesita. Por lo que ahora necesitamos obtener nuestro fotograma clave anterior. Entonces vamos a recoger todos los fotogramas clave anteriores. Entonces ahora vamos a mirar a través de todas las claves en la lista de fotogramas clave, así que vamos a decir cuatro K en fotogramas clave. Si K es menor que el tiempo actual, lo que significa que es un fotograma clave anterior, vamos a decir fotogramas clave anteriores dot upend que. Ahora, antes de continuar más, solo comentemos esto voy a decir, construya el nombre completo fuera de los atributos con su objeto. Voy a decir, saca los fotogramas clave de los atributos de este objeto. Si no hay fotogramas clave, entonces continúe y así sucesivamente y así sucesivamente. Es importante hacer esto para que puedas volver y hacer referencia a tu código y entender lo que está pasando. Por lo general, no voy a comentar cada línea pero voy a comentar un gran trozo de código y se puede ver esto en mis ejemplos get hub para este video. Voy un poco exagerado con mis comentarios para poder demostrar lo que está pasando. De acuerdo, ahora te estaré presentando a un concepto de comprensión Kalis. Por aquí, puedes ver que hemos creado una lista en lista vacía, y después hemos pasado por todos los fotogramas clave en fotogramas clave para cada clave. Si es menor que la hora actual, entonces lo vamos a agregar a la lista de fotogramas clave anterior. Pero se trata de 1234 líneas de código solo para averiguar qué fotogramas clave son antes de la hora actual . Por lo que Python tiene un concepto, la lista de comprensión. Simplemente Podemos usarlo así más adelante. Marcos clave es igual a marco cuatro fotogramas en fotogramas clave. Efraim es mayor que el tiempo actual, y esto es exactamente lo mismo que lo que hicimos aquí sólo en una línea de código. Entonces estamos diciendo por enmarcar fotogramas clave de la misma manera que hicimos cuatro fotogramas K y clave. De hecho, déjame renombrar este K dos fotogramas para que puedas enmarcar y puedes ver que es una redacción similar . Por lo que estamos diciendo para enmarcar fotogramas clave, Efraim es mayor que el tiempo actual. Agregar marco a esta lista vacía. Es un poco una sintaxis confusa, pero podría ser muy útil si solo quieres hacer declaraciones si simples dentro de un bucle de cuatro y luego construir una lista a partir de ella. Adicionalmente, la comprensión de listas es así a menudo son fomentados que ejecutar una lista completa como esta. Ahora tenemos que comprobar si no hay amigos clave antes o después. Esto es muy raro, pero aún vale la pena revisarlo. Entonces decimos, si no los fotogramas anteriores y no los fotogramas clave continúan. Entonces estamos diciendo, si no hay fotogramas clave anteriores y no hay fotogramas clave posteriores, entonces continúe. El y palabra clave aquí significa que tanto esto como esto deben ser verdad. Entonces ambos amigos clave anteriores deben estar vacíos y luego los amigos clave deben estar vacíos antes continuar con el siguiente ítem de la lista y continuar solo significa que nos estamos saltando toda la lógica que seguirá esto para que podamos empezar de nuevo con el siguiente objeto en la lista. Por ejemplo, esto continúa si se activa, saltaremos todo esto y solo empezaremos de nuevo desde aquí con el siguiente ítem de la lista ADDers. A continuación, tenemos que averiguar cuál sea nuestro marco anterior más cercano. Entonces decimos si el fotograma clave anterior el así que es, si hay fotogramas clave anteriores que el fotograma anterior es igual a Max fuera de los fotogramas anteriores . Otro tipo de aquí. Entonces sólo voy a arreglarlo. Y lo que esto hará es pasar por todos los objetos de la lista de fotogramas clave anterior, y obtendremos el valor máximo una caída de ellos. Si necesitamos encontrar el más cercano de los fotogramas anteriores, necesitamos encontrar el que sea más alto, que por lo tanto es el más cercano a la salud de Estados Unidos. Si no hay fotogramas clave anteriores, entonces diremos que el fotograma anterior es igual a ninguno, lo que significa que no se ha vuelto a configurar. Se trata de cuatro líneas para una evaluación tan simple. Podemos condensarnos hacia abajo en una línea, así que decimos que el siguiente cuadro es igual a los hombres más adelante. Los fotogramas clave, si después hay fotogramas clave lo contrario, no serán ninguno. Y esta es la misma lógica. Estamos viendo que si hay fotogramas clave posteriores, igual que dijimos, Si hay fotogramas clave anteriores, el siguiente cuadro será igual al mínimo fuera de los marcos clave posteriores que nos darán el fotograma más cercano a nuestro hora actual. De lo contrario, de nuevo, como la declaración else aquí, diremos que el próximo cuadro no será ninguno. Y esta es una buena característica dentro de Python, donde podemos condenar las declaraciones simples si else hasta una sola línea. Entonces imprimamos el anterior gratis y el siguiente cuadro y volvamos a Maya para asegurarnos de que todo esté funcionando. Entonces si ahora corro esto, se puede ver ahí nos da 47 113. En efecto, si selecciono este marco, fue Frame 113. Y si selecciono este marco, es gratis y 47. Pero, ¿qué pasa cuando estamos en un marco específico y luego lo ejecutamos? Nos da uno, y ella y 13 eso es perfecto, nos está dando dos fotograma anterior y el siguiente. ¿ Y si no hay más fotogramas anteriores? Vayamos al primer fotograma y lo ejecutemos. Ahora tenemos ninguno y 47 y esto es porque estábamos diciendo que si no hay más fotogramas clave anteriores , entonces se lo dijo a ninguno Y otra vez, si decimos que no hay más fotogramas después de esto y luego lo ejecutamos, estamos de nuevo diciendo que los siguientes fotogramas clave no son ninguno. Queremos decir que si no hay más valores después o valores normales antes de lo real simplemente ignorar entre operación ng no cambio la clave porque es un extremo. Entonces digamos que si no es anterior, mantén el fotograma anterior o no. Siguiente marco. Continúa de nuevo. Esto es similar a aquí arriba, donde estamos viendo si no hay fotogramas clave anteriores y no hay marcos clave posteriores continúan. Pero ahora estamos usando la palabra clave o o medios es que si no hay fotogramas anteriores o no hay siguiente fotograma, entonces continúe. Cualquiera de estos podría ser cierto para satisfacer esta sentencia si causando que esto siga disparando a continuación, necesitamos obtener el valor tanto en el fotograma anterior en el siguiente fotograma. Bueno, digamos que el valor anterior es igual a los comandos. Consigue adder porque vamos a conseguir los atributos y diremos al máximo. Y entonces diremos que el tiempo es igual al fotograma anterior sobre lo que esto hará es que consulten los atributos en el momento dado. Siguiente valor es el oro a los comandos. Pero ponte en ER y luego volveremos a decir exteriormente ful porque queremos una consulta que y esta vez dirás que el tiempo es una cultura próximo marco. Entonces ahora solo comprobemos que estamos obteniendo los valores correctos en cada uno de estos fotogramas. Entonces volvamos a Maya y vamos a correr aquí. Si ejecuto esto, nos da menos 29 algo el otro, que, como se puede ver, es el valor aquí arriba como también diciendo el siguiente valor es 1.344 que es. Por lo que podemos decir con confianza que estamos obteniendo los valores correctos. Entonces, lo que a continuación tenemos que hacer es averiguar la diferencia entre el siguiente valor y el valor anterior. Entonces decimos que la diferencia es igual al siguiente valor Linus valor anterior, y diremos que la diferencia ponderada es igual a tiempos de diferencia. El porcentaje que nos dieron dividido por 100 cuando cero, y esto nos dará la cantidad que necesitamos sumar al valor anterior para obtener nuestro valor actual. Entonces diremos que el valor actual es igual al valor anterior más diferencia esperada. Y luego finalmente dijimos Comandos sí establece marco clave porque se quiere establecer un marco clave. Obviamente, con este nuevo valor, diremos a su totalidad porque esos son los atributos que queremos cambiar. Diremos que el tiempo es igual a la hora actual. Diré que el valor es igual al valor actual. Y ahora, si vuelves a Maya, veamos si todo lo que hemos escrito funciona. Entonces tenemos este año, vamos a sesgar 20 lo que significa que van a ser 20% de esta manera, donde cero significará que es igual a esto en 100amplitud igual a eso. Entonces vamos a correr esto Y ahí vas. Es sesgada el 20% del camino, y lo ejecutamos de nuevo, como era. Cero ahora es cero sesgado, y si decimos 100 es sesgo es 100. Pero un sesgo más agradable probablemente ganaría 90 lo que nos daría una bonita caída hacia él. Y aquí atrás podemos decir 30 y si lo corres, es por un 30% del camino menos tu 10% en lugar y nos da una bonita caída. Y ya puedes ver cómo esto nos puede ayudar con nuestras curvas. Entonces en este video hemos repasado cómo simplificar nuestro código usando la comprensión de listas y en línea. Si las declaraciones y creamos nuestra función de Tween en el siguiente video, estaremos repasando cómo crear el tú I. 35. Crear un interfaz de usuario: Creo que este video estará creando nuestro tweener. Tú primero echemos un vistazo a la documentación para el comando de ventana. Iremos a ayudar. Iremos a mi culo scripting referencia Python Referencia común. Ahora iremos a las ventanas del dedo del pie y por aquí puedes ver el comando de la ventana Si nos desplazamos todo el camino hacia abajo y hay muchos parámetros, puedes ver este ejemplo de aquí. Copiemos esto y volvamos a Maya. Voy a acelerar esto aquí y se incrementa mi tamaño de guión y luego correré esto. Y lo que ven aquí es una pequeña ventana que creó. Ahora déjame guiarte por el código de esta ventana. Decimos que creamos una ventana usando los comandos, el comando window. Le damos un título, que es nombre largo, Como se puede ver aquí, podemos darle una Nikon y algunas dimensiones. Por último, le damos un diseño de columna, que es solo un diseño vertical que dice, al agregar objetos a través de la ventana, ponerlos verticalmente hacia abajo. Creamos un botón que dice No hacer nada. Otro botón que dice cerrado con un comando para borrar el tú finalmente dijimos su padre a la ventana Maya, que se denota por punto Esto no es importante. Y luego le diremos que muestre la ventana ahí que creamos aquí. Esto parece bastante sencillo. Empecemos a crear nuestra propia ventana ahora. Eso lo cerraremos. Despejaré esto y diría entre ventana. Entonces, obviamente, si ejecuto esto, dirá que la ventana de Tween no existe. Entonces volvamos al encanto de pastel y creamos ventana de Tween. Crearemos una cláusula llamada Ventana de Tween y heredaremos del objeto, y por ahora, no haremos nada. Y cuando no haces nada, simplemente escribes la palabra pausa. Pausa significa que vas a pausar y no haces nada. Yo quiero volver a mi, uh, están en esto. Ya no se quejará, pero tampoco haría nada. Entonces, en realidad mostremos ventana Primero. Vamos a crear el método show, y de nuevo creamos una cláusula. Pero usando la palabra paños, llamamos Ventana de Tween y heredamos del objeto. Entonces nosotros, en Dent on puedes crear métodos que son funciones dentro de la tela sobre el similar a todas las funciones aceptadas. Toma el auto guardo, excepto que toman primero el auto argumento, que le dice cómo referirse a sí mismo. Entonces cuando digas show, voy a decir, Vamos, ventana de nieve, ventana de nieve igual que hicimos es igual a ventana de tweener y luego voy a decir comandos la ventana de show por defecto. Esto mostrará la ventana anterior que creamos. Entonces si vuelvo a Maya y digo criatura, estás entre ventana dot show Y si corro esto se abre en más leve monitor esta gran ventana en blanco con la palabra Tween una ventana ahí. Si vuelvo a ejecutar esto, abre otra ventana. No quiero esto. Quiero asegurarme de que sólo puede existir una ventana a la vez. Entonces lo que hacemos es volver en el encanto de pastel. Voy a crear una variable a nivel de clóset. Esto significa que es una variable que no cambiará como las cláusulas corriendo. Entonces voy a decir entre tu ventana porque esta es una variable que una estática Eso significa que no cambiará sin importar a qué me pueda referir. Vuela solo diciendo yo el nombre de la ventana. Pero ahora voy a hacer algo diferente. Voy a decir que si esta ventana ya existe, vamos a eliminarla. Entonces decimos, si vuelve a mandar la ventana, Si creaste algo con un comando, a menudo puedes consultarlo de nuevo con el mismo comando para revender. Consulta de nombre de ventana TLC es igual a true y existe igual. Cierto. Entonces lo que estamos diciendo es que si existe una ventana con este nombre de ventana, entonces hagámosle algo. Y vamos a decir lo siento. Vamos a decir comandos no te borran. Yo mismo el nombre de la ventana, y además no puedes tener un espacio en el nombre de la ventana. Entonces, vamos a deshacernos de ese espacio. Y cuando vuelvas a Maya y ejecutamos esto, puedes ver que crea mi Tween una ventana. Y si pudiera y si vuelvo a ejecutar esto, lo elimina y luego lo vuelve a recrear para mí. Entonces volvamos a Pie Charm. Entonces ahora quiero realmente poner cosas dentro de mi ventana antes de mostrar la ventana. Llamemos a un método que acabaremos de crear oro te construiremos I Este es un método que real desafiándonos a nosotros mismos, y de nuevo se toma a sí mismo como su primer argumento, por lo que su nariz para referirse a sí mismo primero, igual que en el ejemplo, Vamos a crear un Coum Lee fuera de nuevo. Un diseño de columna solo significa que cualquier objeto que agregue a esta ventana se agregará verticalmente , uno debajo del otro. No, vamos a crear una etiqueta de texto Ahí le dirá a nuestro usuario cómo usar, ¿verdad? Diré Usa un deslizador para establecer entre cantidad y vuelves a Maya y luego ejecutas esto. Se puede ver que ahora tenemos poco texto. Esto es usar un deslizador para establecer entre cantidad. Ahora lo que quiero hacer es que quiero agregar a Niños, también, ¿verdad? Yo quiero anuncio el deslizador y la verdad ¿verdad? No voy a añadir el botón de reinicio. Esto significa que el diseño de columna no funcionaría muy bien porque los agregaría uno debajo del otro. Por lo que tenemos que hacer es crear el desenrollado el desenrollamiento, A diferencia del diseño de columna, los colocará horizontalmente. Entonces decimos que Ro es igual que los comandos se están extendiendo, y decimos número de columnas es igual a dos porque necesitamos tener dos columnas dentro de él. De lo contrario no sabrá qué tan ancho hacerse, y luego creamos un encendedor, y voy a almacenar el slider sobre nosotros mismos para que podamos acceder a él más adelante. Somerset comanda los flotadores más ligeros porque se trata de un deslizador con valores flotantes de nuevo, números flotantes con puntos decimales. Y debo decir que los hombres son iguales a cero porque ese es el valor mínimo. Max es igual a 100 y nuestro valor predeterminado. Pongamos un cuadrado en el medio a los 50. Y por paso, digamos uno. Eso significa que puede subir y bajar un paso a la vez y ha cambiado de mando. Digamos que llame entre función. Lo que esto significa es que creamos un deslizador flotante y nos lo asignaron a la duda de uno mismo. Slider. El deslizador flotante tendrá un valor mínimo cero un máximo 400 un valor de 50. Por defecto, dará un paso hacia arriba y hacia abajo de uno a la vez, y siempre que haya cambiado, llamará entre comando en su lugar. A continuación, agreguemos un reinicio botones verdaderos enfermos. Amman no botón y ya veremos. Etiqueta es igual a entre comillas. Reinicia y te sentarás. Comando es igual a auto el reset, y este es un método que aún no hemos desarrollado. Entonces hagamos esta muerte y diremos Reset. Y luego diremos Pausa porque no queremos hacer nada. No obstante, antes de continuar, me gustaría mencionar por qué, cuando estoy dando estas funciones para que venga y cambie de comando, no estoy dando paréntesis. Si yo diera paréntesis, realidad ejecutaría disfunción en lugar de dar la función sin que el príncipe ve en realidad le decían que ejecutara esta función en lugar de ejecutarla inmediatamente. Saquemos esta pausa y digamos: Imprimir restablecerte. Yo Volvamos a Maya. Cierra mi viejo tú yo y ejecuto el nuevo y puedes ver tenemos el botón de reinicio y vamos a darle click para ver si funciona. Entonces cuando hago clic en él, dice, toma exactamente un argumento, pero se dieron dos. Esto se debe a que los botones mayas también envían un valor extra a cualquier función a la que están llamando . En realidad no nos importa esto, así que vamos a capturar esto dentro de una variable ARDS. Lo que esto significa es que cualquier argumento extra que se le den a nuestra función se almacenará dentro de nuestros huevos, y la estrella solo significa todo lo que no está especificado en esta función bien recién restaurado en los huevos de arte. Entonces si fuera así si tuviera que decir ahora, Imprimir nuestros huevos cuando volvamos es en realidad una lista lo que se necesita. Entonces cuando ahora hago clic en Reset, funciona en. Lo que puedes ver es que el botón está enviando una llamada de valor false, y no nos importa ese valor. Entonces solo lo voy a poner en nuestros huevos. Con el asterisco encendido. Ellos le dirán que simplemente lo vuelque en esta variable, que nunca necesitamos usar. Por último, digamos a un botón de reinicio que realmente haga algo. Entonces queremos restablecer el deslizador así que diremos, comanda los flotadores más ligeros porque usamos el deslizador a flote para crearlo y diremos auto mejor slider, porque eso es un slider que queremos editar. Como puedes ver de aparecer, dirás que editar es igual a true, y vamos a ahorrar valor es igual a 50. Entonces si vuelves a Maya y corres esto, que volverá a cerrar, eres yo y lo recargas. Cuando cambio mi deslizador, puedes ver que está creando una clave por aquí porque está llamando a nuestra función de Tween cada vez. Entonces si fuera a despejar todas estas teclas, ya has creado y arrastro el deslizador funciona. Los deslizadores se engancharon a nuestra función de interpolación, y esto se debe a que usamos el comando change cuando de los cambios de valor llamarán entre . Y si teníamos reset, cambiaremos el deslizador al valor 50 pero no activará el comando change. Esto es realmente útil porque significa que puedo poner el deslizador hacia atrás de 50 sin realmente establecer una llave. A continuación, necesitamos agregar el botón de cerrar. Ahora. El problema con el botón de cierre es que necesita estar por debajo del deslizador y el botón de reinicio . Pero todo lo que seamos ahora se sumará al rodaje que creamos aquí arriba. Y esto se debe a que la forma en que funcionan los comandos de Maya es que unas tiendas, la disposición perdida que creó y cualquier cosa que se haga fuera a eso se agrega a eso. De igual manera, cuando creaste el diseño de columnas, todo lo que creamos después de que se añadiera al diseño de columnas, incluyendo se están extendiendo. Entonces lo que tenemos que hacer es decirle a Maya que establezca el padre actual en la columna, y luego podemos crear nuestro botón al igual que hicimos arriba. Podemos sentar comandos a un botón y verás una etiqueta igual a cerca. Y luego diremos Comando es igual a auto punto cerrar de nuevo. Es un método que no hemos creado, así que vamos a crearlo. Entonces decimos que la muerte vuelve a cerrarse. Self es el primer argumento, y dirán Comandos que te borran. Yo igual que hicimos arriba y usaremos el nombre de la ventana que usamos. Entonces si has estado cayendo de cerca, sabrás que esto no funcionará. Cuando volvamos y corras esto y vuelvas a pulsar el botón de cerrar, me quedaré cerca. Toma exactamente un argumento a dado si estás haciendo ping. Y si te estás cayendo de cerca, recuerdas que puse esto aquí otra vez. Tengo que poner este año porque el botón de cerrar está enviando los mismos argumentos que queremos ignorar. Entonces ahora si vuelvo a Maya y corro esto, tenemos una ventana con él. Texto sobre cómo usarlo. Cuando arrastramos el deslizador, cambia la tecla o establece una nueva clave. Si hubiéramos restablecido, se restablecerá el deslizador. Y si tuviéramos cerca enfermo, cierra la ventana. Y si lo ejecutamos de nuevo y creamos dos instancias si sólo va a terminar con una ventana de nuevo. Era importante para nosotros crear primero la función de Tween, porque es más fácil probar código sin una u I. Y también significa que si quieres llamar solo funciono dentro de otra biblioteca no necesitas la U I junto con ella es siempre importante separar tu tú yo y tu código lógico. En el siguiente video, repasaremos cómo reutilizar esta ventana para crear y configurar nuestros engranajes. 36. Reutilización de nuestro interfaz para el creador de equipos: Theo thin En este siguiente video estaremos repasando cómo crear una base. Tú yo que podemos reutilizar tanto para nuestro tweener como para nuestra creación de engranajes. Tú ¿Por qué? En primer lugar, vamos a crear un nuevo guión el cual te llamará reutilizable yo en esta importación real entre función de nuestro tweener tú también te diré de tweener te importe Tween y lo que esto significa es que desde el tweener te por qué eso construimos aquí? Podemos importar sólo entre función y nada más. Este es el alcista que estamos importando, justo lo que necesitamos. Pero tiene un inconveniente que ya no tengamos el espacio de nombres agradable antes de que organice nuestras funciones. A continuación, vamos a importar la cláusula de engranajes Así que diremos desde la clase de engranajes Creador de importación engranaje. Y ahora vamos a crear nuestra ventana base para que en realidad pudiéramos copiar mucho para un código de ventana de su tweener Usted. ¿ Por qué? Entonces abrimos entre ¿eres yo y copié la clase? Voy a pasar el ritmo y un espejo renombrar esto a ventana base. Me han renombrado el nombre de la ventana a la ventana base otra vez. No puedes usar bases aquí es decirnos que no tenemos la biblioteca de comandos. Entonces vamos a importar eso. Entonces desde Maya comandos de importación y ahora es feliz de nuevo. Voy a mantener toda esta funcionalidad con cheques de la ventana existe. Y si no lo hace, entonces se elimina a sí mismo. Voy a quedarme con el método de ropa, pero el reinicio y la construcción tú voy a ser diferente entre los dos. Entonces voy a decir pausa para los dos. Y lo que esto hará es que si volvemos a Maya y dirás importarte reutilizable te recargo . reutilizable te reutilizo. Yo ventana basada en puntos sí muestra en una carrera que va a crear nuestra base donde nadie mejor realmente hace mucho más. Entonces ahora volvamos atrás y creemos nuestra ventana de animación. Es lo que podemos hacer es volver a nuestro tweener tú yo y sólo copiar el build you y el reset y la función reset. Entonces vamos a decir, además, screener, screener, tú yo y nosotros vamos a heredar de la ventana base otra vez. Lo que esto está haciendo es decir que vamos a reutilizar toda la estructura que tiene la ventana base y sólo redefinir las partes que necesitamos. Teoh, las partes que necesitamos hacer nuestra redefinió el nombre de la ventana entre su ventana y luego solo copiaremos el build you I y el código de reset de un ejemplo anterior. Entonces ahora si vuelves a Maya una ventana basada en respuestas, voy a importar a Tween una ventana y ejecutarla. Oops, creo que me olvidé de un tweener. Tú lo siento. Y si ejecuto esto, crea la ventana. Si arrastro el control deslizante, puedes ver los valores cambiando aquí. Si reinicio un cuello y cierro Perfecto. Ahora, si vuelvo aquí, sé Quieres crear uno para un engranaje. Entonces lo que voy a hacer es que voy a crear un nuevo paños. Es decir, llama y vamos a llamar a esta ventana de engranajes o vamos a llamar al engranaje tú yo y volveremos a heredar de la ventana base. Dirán que el nombre de la ventana es igual a, y lo vamos a llamar la ventanilla de engranajes otra vez. No se permite espacio, igual que hicimos para la clase A de engranajes. Queremos aferrarnos a algunos valores. Entonces voy a crear mi en ella otra vez. Nuevamente, Esto es doble subrayado en ella. Doble guión bajo, y solo voy a crear una variable de marcador de posición llamada Gear Self Dot que todo se establece ninguno. Entonces quiero redefinir el build you I. Así que primero, vamos a crear otro diseño de columna, igual que lo hicimos antes, y vamos a almacenar esto e invariable de columna de color. Entonces necesitamos crear una etiqueta para decirle a nuestro usuario cómo usar esto. Entonces diremos componentes o texto, y diremos que etiqueta es igual usar el deslizador para modificar el engranaje. Y ahora vamos a crear la puesta en marcha, porque lo que quiero hacer es que quiero tener cuatro objetos en este rodaje. Yo quiero tener un botón que diga Haz tu otro dice Reset. Por último, quiero el control deslizante, y luego quiero un pequeño objeto de texto. Ahí nos dirá el valor del control deslizante, así que primero creemos el objeto de texto de vuelta en giro circular. Digamos yo mismo. El sello, porque voy a editar esta etiqueta de texto golpe comando es igual a 10 y la estoy manteniendo como una variable auto porque quiero acceder más adelante en tu decir auto a. Un deslizador es igual a ordenar comando en más ligero porque no quiero valores flotantes. Quiero valores enteros. Esta vez diré un valor mínimo de cinco para que nuestro slider concreto menos de cinco dientes y un máximo de 30 Vamos a decir que el valor es igual a 10 y el paso es igual a uno. Por lo que los valores predeterminados 10 y subiré y bajaré por uno. Pero esta vez, en lugar del comando change, quiero usar el comando drag. Eso significa que el control deslizante estará en el tracto de la actualización a medida que arrastramos, lo cual es algo genial. Y ahora vamos a crear esta función. Entonces vamos a decir engranaje modificado y lo que hace el aislante es que en realidad nos envía el valor del deslizador, que almacenará en un diente de llamada de valor. Y simplemente por ahora, solo imprimamos este valor y volveremos más adelante a esta función. A continuación, vamos a crear un botón que diga Hacer engranaje. Por lo que decimos etiqueta es igual para hacer año, y damos el comando a sí mismo. No hagas tu vamos a crear esta función aquí y otra vez. El botón nos enviará valores inútiles a la variable son huevos. Entonces vamos a guardar ahí e imprimamos haciendo engranajes. Por último, vamos a crear otro botón llamado Reset, y todavía vamos a etiquetar es igual a restablecer. Y para común. Diremos auto ir reset, y necesitamos redefinir también este año, porque no está definido porque no hace nada en nuestro padre. Además y otra vez, usamos estrella nuestros huevos para asegurarnos de que cualquiera de las variables que el bucking nos da Ari tirado a la variable arts y dirás, print resetting. Siguiente. Tenemos que restablecer a nuestro padre a la columna. Entonces dijimos, manda a un padre conjunto llamarlo y manda una etiqueta de botón igual close command igual auto ropa oscura. Y no necesitamos redefinir esto porque salario definido en nuestra ventana base aquí arriba. Si has estado prestando mucha atención al gráfico circular, notarás que da estos pequeños símbolos alrededor de ciertos métodos porque nos está diciendo que estos aire anularon desde la ventana base. Si vuelves a Maya y lanzas el engranaje, tú te digo reutilizable. Yo empecé aquí usted. Yo paréntesis ningún show y si corremos, l agudo va a crear la ventana de engranajes, pero se puede ver que algo anda mal. Los campos siguen apareciendo verticalmente. Volvamos a ver qué pasó. Esto se debe a que nunca creé el trazado de la carretera. Y de nuevo, se acaba de agregar una y otra vez debajo de la columna. Entonces lo que tengo que hacer es antes de esta etiqueta que dice 10 Vamos a crear la puesta en marcha Así decimos , manda a fondo. En este momento. Tenemos cuatro objetos que queremos a continuación. Era un número de columnas igual a cuatro, y ahora si vuelves a Baia y lo ejecutamos, puedes ver que ahora están dispuestas horizontalmente en lugar de verticalmente. Si hago clic en hacer engranaje, es un año haciendo clic reset, dice reiniciar. Y a medida que deslice esto, se puede ver que está imprimiendo los valores del deslizador. Entonces cerremos esto y volvamos aquí y podemos empezar a implementar esto. Entonces primero necesitamos crear el engranaje a real decir primero necesitamos obtener el valor del slider, así que vamos a decir comandos en slider porque creamos el slider con un slider int, y necesitamos consultarlo. Entonces decimos yo mismo. Una consulta de deslizador es igual a verdadera porque vamos a consultarla. Voy a decir que el valor es igual a True, porque vamos a consultar el valor. Esto nos dará un valor entero para usar para nuestros dientes. A continuación, vamos a crear una instancia de engranajes. Entonces decimos que el engranaje auto excavado es igual a engranaje, y este es un engranaje que hemos importado aparecen de nuestro engranaje anterior. Ejemplo. Ahora que hemos hecho esto, podríamos decir auto equipo de drogas, Doc, crear engranaje y dirás dientes oops es igual a y le daremos el valor que obtuvimos del deslizador. Entonces ahora si vuelves a Maya y corres esto y me dejas solo poner pull up mi ah, déjame solo levantar mi perspectiva. Tú aquí, Nuffer, corre esto y yo digo hacer año. puede ver que está hecho de engranaje ahí mismo para nosotros. Pero si cambio, el deslizador aún no hace nada. Y si hago clic en reiniciar, tampoco hace nada, así que volvamos a continuación. Tenemos que decirle cómo modificar los engranajes. Diremos que si hay un auto de engranajes cavado aquí, bueno, bueno, digamos auto engranaje que cambia los dientes y diremos que los dientes son iguales al valor que tenemos otro. Lo que estamos haciendo es que estamos diciendo que si el engranaje existe por defecto, no hay engranaje porque se lo dijimos a ninguno. Entonces si aún no tenemos equipo, no va a hacer nada. Pero si tenemos un engranaje que fue asignado aquí arriba, va a usar el método de cambio de dientes en el engranaje que creamos. Puedes ver este método por aquí en el creador de la clase Gear y luego Así que si vuelves a Maya y vamos a cerrar esto tú y corriendo de nuevo, si solo arrastro el deslizador, no pasa nada. Déjame simplemente borrar este engranaje. Si creo un engranaje nuevo y luego arrastré un deslizador, se puede ver que es tiempo real actualizando nuestro engranaje con una serie de dientes. Esto es realmente genial, pero todavía no está actualizando el campo de texto todavía un aquí. Volvamos al encanto Pie y arreglemos eso así fuera de esto, si declaración queremos siempre así queremos cambiar siempre el campo de texto independientemente de si hay un engranaje o no. Entonces lo ponemos fuera de la declaración S y decimos comandos doc text y le damos la etiqueta que creamos antes etiqueta Self Bell aparece y decimos editar igual verdadero y decimos etiqueta es igual a dientes. Bueno, volvamos atrás y probemos esto. Entonces si vuelvo a Maya y ahora arrastro el deslizador, puedes ver los valores cambiando. Si digo hacer engranajes, crearemos otro año. Permítanme que suprima ambas. Diré que haga aquí y se puede ver que ambos engranajes Peter cambiando y la u I. Por último, necesitamos que funcione el botón de reinicio. Entonces volvamos a Petra. Y todo lo que tenemos que decir son engranajes de autocuidado. Ninguno, porque queremos no aferrarnos más al engranaje para que el botón Make Gear cree un nuevo engranaje. Queremos restablecer Thean Slider por lo que nos damos un slider. Editar es igual a verdadero, y le devolvemos el valor de 10 y enfermamos cantidades o auto de texto. El sello en ella es igual a etiqueta verdadera igual a 10 porque lo que estamos haciendo aquí es que estamos viendo Lo estamos restableciendo para que no estemos aferrándonos a un engranaje, dice que el deslizador ya no está enganchado a un engranaje. Estamos cambiando el valor predeterminado del control deslizante hacia atrás, y estamos cambiando el texto predeterminado de la etiqueta hacia atrás para que coincida con el control deslizante. No, cuando vuelvas a Ah, Maya y lo ejecutes, déjame borrar esto. Y ahora lo ejecuto. Si hago un engranaje y usaron un deslizador, plomo interactivo cambia ese engranaje. Si hubiera reiniciado el deslizador ya no funciona hasta que haga otro engranaje. Déjame sacar esto del camino. Este es nuestro Año nuevo. Y si dije que este es nuestro nuevo Año y si arrastro el deslizador operará en el nuevo engranaje, y si creo un engranaje nuevo, sólo operará en el propio engranaje. 37. Agregar nuestros guiones a la plataforma de maya: en lugar de tener que correr siempre tu tira desde el editor de guiones, también puedes agregarlas a tu estante. Hay dos formas de agregar tu guión a la estantería de aquí. Lo estaré agregando al estante personalizado, y si selecciono mi guión y clic en el medio, arrástrelo a mi estante y lo suelto. Vamos a añadir un botón por ahí, y puedo hacer click derecho en este botón y pulsar Editar. Esto trae al editor de estanterías. Concedemos el mando que salvamos. Se puede ver que los lenguajes python, y si vas a la pestaña de shells, se puede ver a la izquierda. Aquí tiene nuestra estantería personalizada seleccionada, y nuestro comando aquí aparece es una opción. Podemos cambiar el nombre de este comando haciendo clic en el renombrar y llamarlo tweener you. Yo y crear enter lo cambiaré de nombre a algo más sensato. Esto no cambia nuestro comando aquí, justo lo que se refiere dentro de la estantería aquí abajo, podemos elegir el ícono que queremos. Puedo elegir mi propia imagen haciendo clic en la carpeta aquí o usar una de las imágenes predeterminadas de Maya haciendo clic en este ícono. El psique encendido puede no existir en versiones anteriores de Maya, pero debería estar ahí desde mi 2016 y arriba. Se abre esta otra. Tú, creo, seleccionas cuando dijo el ícono que quiero también lo puedes buscar. Entonces si busco la palabra curva y golpeo entrar, déjame encontrar una que me guste. A mí me gusta el ciclón, así que solo voy a golpear selecto. También puedo agregar una etiqueta de icono. En este caso, voy a decir tweener, y se puede ver que lo agrega como etiqueta a nuestro ícono aquí arriba y cambia el ícono también . Entonces déjame decir, Guarda todos los estantes y se cierra el tú I. La otra forma de añadirlo es si haces click en el icono de engranaje pequeño en tu estante y haz clic en Editor de estanterías, selecciona la estantería a la que quieras agregar o en una nueva estante. Pero haciendo clic en el icono más aquí solo lo voy a agregar al estante personalizado y cuando haga clic, además, además, agrega un nuevo script de usuario para cambiar lo que hace el script. Daré clic en la pestaña de comandos y la cambiaré a Python, y simplemente diré, Imprimir Hola Mundo. También puedo configurar lo que hace cuando hago doble clic en este caso fuera de una impresión doble clic, voy a cambiar, languidecer morder, y también puedes agregar opciones que aparecen al hacer clic derecho en él. Entonces solo voy a decir, Guarda todas las estanterías y puedes ver que está agregada y tu icono ahí para mí. Y cuando hago clic en este nuevo icono, puede ver que se ejecuta imprimir Hello World, que imprime Hello World. Y si hago doble clic en él, dice doble clic en su lugar. Generalmente no uso el estante mientras estoy desarrollando, pero si vas a estar ejecutando el mismo código una y otra vez, a menudo es útil simplemente agregarlo a tu estante aquí arriba. 38. Proyecto 5: biblioteca de controladores: a través de este proyecto estará aprendiendo a crear una biblioteca de controladores usando lindo. Nuestra biblioteca de controladores será flexible y soportará miniaturas. Podemos importar cualquiera de los objetos que guardamos, y también podríamos crear los objetos nuevos que queramos. En este caso, voy a decir esto como la prueba, y cuando golpee guardar, verás que aparece dentro de para nuestra ventana. Aprendimos a guardar datos como Jason y archivos así como cargarlos de nuevo en ¿Eres tú? Voy a estar usando lindo proporcionado por lado pi al interior de mi 2017 y lado de pastel. En versiones anteriores de Maya, repasaremos las diferencias entre lindo cuatro y lindo cinco, así como las diferencias entre el pastel lindo y el lado del pastel y el pastel, Cute five y el lado del pastel, también. También estaré repasando una popular biblioteca linda que es utilizada por Disney, WETA, Sony Imageworks y más. Ahí nos ayudará a escribir código que se puede utilizar el lindo tanto en Maya 2017 como en versiones anteriores de Maya. En el siguiente video, voy a hacer una breve introducción a lindo on. Las diferentes versiones son lindo uso dentro de las diferentes versiones de Maya 39. Descripción de la biblioteca de Qt Interface: este video servirá como un breve panorama de lindo así como de las diferentes versiones agudas en las diferentes versiones de Maya. Lo que es lindo, lindo escrito Q t pero pronuncia lindo fue creado como respuesta a un problema común a principios de los noventa. Si quisieras escribir una aplicación que se ejecutara, múltiples sistemas operativos podrían tener un tiempo realmente difícil porque cada sistema operativo tenía suyo propio. Tú I bibliotecas así como diferentes formas de interactuar con el sistema operativo. Lindo, desarrollado originalmente por Troll Tech, luego comprado por Nokia y finalmente vendido a de Gea, es la biblioteca que permite a los desarrolladores crear una aplicación y la tú me veré nativa sin importar qué sistema operativo se ejecute en y lindo manejará. Abstrar todas las funciones que necesitan interactuar con el sistema operativo facilita enormemente el desarrollo para desarrolladores de múltiples plataformas. Hasta mi 2011 mis adeudos usando diferentes tú yo bibliotecas y código del sistema operativo para cada sistema operativo, esto significaba que Autodesk tenía más código para administrar así como muchos bugs que serían específicos del sistema operativo , empezando por mi A 2011 Autodesk conmutó agudos medios lindos que Autodesk no necesita mantener diferente te gusta el código para cada sistema operativo, y significa que pueden enfocarse en mi mismo. Esto se reduce en gran medida. El número de bugs específicos de Os en Meyer Maya, 2011 usó cuatro lindos, y este ha sido el estándar hasta mi 2016. Mi 2017 usará Cute cinco. Lindo cinco viene en muchos avances. Es mejor desempeño. Cuenta con una nueva biblioteca llamada Cute Quick, que te ayuda a escribir realmente agradable que sabias muy rápidamente que puedes implementar a más sistemas operativos que lindo cuatro Did. Por fin puedes implementar en aplicación a Android e IOS, e incluye nuevo tú me peiné para imitar el diseño de materiales de Google y Microsoft. Universal design cute es predominantemente un C plus un P I. Afortunadamente, una empresa llamada Riverbank hizo un software llamado Pie Cute. Esto nos permite usar lindo dentro de pitón de una manera realmente agradable y sencilla. Actúa y se comporta como una biblioteca de python completamente nativa. Desafortunadamente, Pike, prueba algunos temas de licencia. Aquí es donde entra el lado del pastel. Pi Side es un proyecto respaldado oficialmente por la linda fundación, y viene sin problemas de licencia, y de nuevo es similar al pastel lindo en los permite usar lindo dentro de python. De hecho, para todos los efectos y propósitos, aparte del nombre y la concesión de licencias su enteramente lo mismo. Me gusta cambiar entre lindo cuatro de mi A 2011 a 2016 y el nuevo lindo cinco en mi 2017 hay cambios acompañantes a pie lindo y lado de pastel. Si estás usando lindo en mi 2016 y abajo, mi oh se enviará con lado de pastel. Pero también puedes usar pi cute para con mi A 2017 y superior. Meyer navega con sitio de tarta, también. O también puedes usar pi Cute cinco. Ya que sus cambios significativos entre lindo cuatro y lindo cinco, es difícil escribir código python que corre con barco. Aquí es donde podemos usar una biblioteca de abstracción muy popular llamada linda tarta de pato. Cute Top I es utilizado por muchos estudios grandes, incluyendo Sony Pictures, Imageworks, WETA y Disney. Lo que hace es proporcionar una capa simple por encima tanto lindos cuatro ojos AP y lindos cinco ojos AP solo puedas usar keep dot pie y redirigirá cualquiera de tus llamadas a lo relevante a p I. Estaré usando lindo punto por para el resto de nuestros videos y te recomiendo que lo hagas también porque es bastante útil saber y es lo que muy probablemente estés usando dentro de un estudio. Si no quieres usar lindo punto por favor toma nota. Importar declaración cambia aquí porque esa es la mayoría de los cambios de los que tendremos que preocuparnos. Si estás usando pi Cute four o lado pi, necesitarás importar las bibliotecas Q T booey y Q T core. Si estás usando sitio pi para o te lucio a cinco, necesitarás estar importando los widgets Q T el núcleo Q T en la biblioteca gooey Q t. Se trata de un cambio importante de importación entre ambos. cualquier momento haya un cambio más grande, lo cubriré y se puede ver más documentación tanto en el lindo doc pie get hub, que se vinculará desde mi levántate, así como todo el código en mi get hub para este proyecto. Por último, quiero cubrir un aspecto de lindo que no vamos a estar cubriendo en este curso, pero es bastante común encontrarme con esto se llama agudo Designer. Cute designer es una interfaz de gota de dragón para diseñarte Ojos dentro de Cute. Es bastante fácil de usar y rápido para ponerse realmente bien ¿Ustedes van? Te hubiera estado mostrando linda diseñadora, pero siento que estaría introduciendo solo una herramienta más a un video ya largo. De Siri. Nos estaremos centrando en python y diseñando guapos chicos usando el python AP I en lugar del diseñador. Aún así, quería asegurarme de que sabías del diseñador para que si quieres usarlo, sepas que existe. Si decides usar un diseñador de mantenimiento en el futuro. También sé que cada una de las lindas bibliotecas para Python viene con la aplicación de conversión. Ahí va a convertir el lindo que codigo en código python. Esto no siempre es necesario porque puedes cargar el tú que archivo directamente y engancharlo a un cierre por dentro. Un python, adicionalmente, no estará cubriendo lindo quick porque lindo quick no es una biblioteca python y en su lugar usa javascript, que no es el foco de este curso. 40. Qt vs Cmds: Te recomiendo usar la biblioteca Q two I siempre que sea posible en lugar del comando Maya a mi biblioteca. Tengo varias razones para esto. En primer lugar, la biblioteca Maya Commands fue diseñada originalmente para Mel, y eres tú yo funciones. Envuelve un subconjunto de toda la funcionalidad linda. Bueno, esto puede ser más fácil para los principiantes aprender. Significa que pierdes el acceso a todas las potentes funciones y personalización que ofrecen Q test . En segundo lugar, los mayas te manda I biblioteca se limita a sólo Meyer. Si quisieras escribir un U. Y fuera de Maya, tendrías que usar lindo de todos modos, así que tiene más sentido enfocar tu tiempo aprendiendo lindo en lugar de la biblioteca de comandos Maya . Por último, lindo utiliza un paradigma de diseño llamado tipado de pato. Ya hemos experimentado la tipificación de pato antes, pero nos será de lo más útil cuando te estemos desarrollando ojos. En nuestro ejemplo anterior de U, viste que teníamos que usar las mismas funciones para editar el elemento you I que solíamos crearlo . Eso significa que si teníamos un slider entero o slider a flote, teníamos que usar el respeto a la función para modificarlo. Esto significa que si alguna vez decidimos cambiar nuestro elemento you, potencialmente tenemos que cambiar todas las funciones de edición en muchos lugares diferentes dentro de nuestro código. Esto se vuelve realmente problemático al desarrollar usuarios y caras más grandes. Por el contrario, debido a que los usos lindos en el diseño orientado a objetos, cada elemento tuyo tiene métodos en él que podemos llamar. Entonces, independientemente del tipo de slider o tu elemento que creemos, el a menudo tendrá exactamente los mismos métodos. Por lo que podríamos simplemente usar el método set value en cualquiera de los primeros deslizadores en lindo, sin tener que preocuparse por qué tipo de slider son. 41. Typing de patato: No voy a estar repasando un concepto en Python llamado tipado de pato. tipificación de pato no es exclusiva de Python. De hecho, es bastante común en muchos lenguajes de programación orientados a objetos. La tipificación de pato es un calo kilter que viene de la frase si suena como un pato y camina como un pato, que debe ser un pato. Esto se refiere a una elección de diseño donde muchos tipos diferentes tienen las mismas interfaces que es , diferentes tipos que tienen los mismos métodos en sus clases. Por ejemplo, si creo una nueva cadena y la llamaré nombre y diré, Dave, Dave, si digo nombre imprimirá Oh, Dave y puedo decir que el tipo de nombre es igual a string, pero puedo usar esto igual que yo usaría una lista. Entonces si digo nombre y trato de obtener el índice de cero, obtengo D. De igual manera, si uso, también, obtendré V. Esto es lo mismo que si acabo de crear una lista de caracteres. Entonces si dije lista, nombre es igual a D. Vale, la e y yo dijimos, Vamos a nombrar de nuevo, obtengo V lo que esto nos permite hacer es crear funciones que en realidad no les importa cuál sea el tipo de cuatro parámetros son. Mi función podría tomar una cadena. Podría tomar una lista, A para tirar de un conjunto o un diccionario. Realmente no importa siempre y cuando cualquier objeto que esté obteniendo tenga la misma interfaz. Entonces, por ejemplo, si mi función toma una variable y necesita obtener el índice, no importa si le doy el nombre de la lista, porque podría hacer lista, nombrar uno o si le doy una cadena, porque mientras mi función esté accediendo a estas variables de la misma manera, en realidad no le importa de qué tipo sean, y esto será útil cuando estemos definiendo lindos ojos en lugar de los comandos mayas lejos , editando te elementos donde tenemos que saber qué tipo es el elemento U antes de recordar una función para editarlo en lindo. La mayoría de tus elementos tienen los mismos métodos en ellos. Esto significa que si tuviéramos un slider y lindo porque, digamos, valor del activo del slider 22 en realidad no importa qué tipo sea el slider, podríamos tener muchos tipos diferentes de deslizadores, y todos interactuarían igual el de la misma manera. Si tuviera un cuadro de texto o una etiqueta, no importa, porque solo puedo usar el método de texto para obtener su valor. Esto nos permite realmente simplificar nuestro código y ser un poco más de forma libre en cómo nos desarrollamos . 42. Qt.py: uso de Qt en Python: antes de empezar a diseñar, ¿verdad? I Vamos a descargar mercados dice Lindo pastel abstracción Capa Si vas a conseguir el lema hub dot com Tan lindo pastel puedes encontrar el código para esto. Se puede ver que es un lindo encuadernación. El pastel envuelve lado a lado al lucio, te gustaría pastel extranjero Lindo cinco. Esto significa que en lugar de importar cualquiera de estas fijaciones de python directamente, solo podemos usar lindo pastel e importaremos el mejor encuadernación para nosotros. Estaré usando la linda pila. Estoy de acuerdo para que cualquiera de los pocos viendo este video que, usando mi A 2016 o anterior todavía pueda seguir junto con el código. Y si usar mi A 2017 o superior, debería ser bastante simple. Si decides saltar usando esta capa, repasaré cómo importar correctamente tus módulos en el siguiente video. Pero por ahora, déjame repasar cómo descargar este módulo. Si subes a la parte superior, puedes hacer clic en el botón de clon o descarga y hacer clic en descargar zip. Diré guardar y luego abriré mi cremallera Dentro. Mi archivo es monstruo de pastel agudo Ve dentro de aquí y van a ser archivo de punto de pastel agudo. Abriré mi carpeta Documentos Maya en Windows. Esto estará dentro de tu carpeta de documentos bajo Mayer, pero nuestro Mac Olynyk Esto estará en un directorio diferente, y me aseguraré de tener una superposición que te diga dónde encontrarlos dentro. Directorio Amaya. Entra en la mi aversión que estás usando. Estoy usando 2017 y luego entro al directorio de guiones. Simplemente arrastra el lindo archivo de pastel dentro de aquí. Una vez que esté ahí dentro, puedes cerrar esto. Ahora puedes ir a Maya y abrir el editor de guiones Dentro del editor de guiones, puedes decir importar lindo, y si ejecutas esto, no debería haber errores y va a importar la linda biblioteca. Se puede hacer esto por impresión de cosa. Lindo. Déjame acercar cuando puedas ver que ya ha importado el lado del pastel a módulo para mí. Esto se debe a que lindo elegirá automáticamente la mejor librería pitón Cute para ti. Ahora, si quieres crear una nueva ventana, diremos que ganar es igual a lindo. Lindos widgets Que dialogo y L. A s a win dot show. Y si ejecuto esto, verás que crea una ventana de diálogo vacía En nuestro próximo video, voy a repasar cómo importar los módulos que necesitaremos si no quieres usar una linda capa. 43. Importar módulos de Qt: ahora se va a repasar. Tienes que importar módulos específicos, y estaremos usando de las lindas librerías. Si no lo estás usando, voy a repasar cómo importar desde los diversos enlaces python para lindo directamente. En cambio, los primeros empecemos con lindo pastel. Entonces para empezar, diremos desde linda importación. Lindo. lindos widgets de Brigid son donde vivirán todos los elementos U que veas. También hay lindo núcleo, que incluye mucha de la funcionalidad del núcleo para lindo. Por último, eso es lindo. Gooey, agudo, bobo incluye muchas clases y funciones útiles. El real usado para construir eres sabio, pero no incluye ningún widget real ni tú elementos en sí. Si planeas usar lindo por, esta será nuestra declaración de importación común. Si no estás usando lindo por y un usando mi 2017 y superior, tienes otras dos opciones lindas. En cambio, se puede decir vista frump, también, y el resto del módulo se mantiene igual. Simplemente estás definiendo una biblioteca de padres diferente en lugar de lindo. No estás diciendo hi site to buy sight to viene empacado con Maya, así que estás garantizado que siempre existirá. Tu propio estudio puede, sin embargo, decidir usar pi cute five en su lugar, Pie cute es una alternativa, vinculante para lindo ya que a menudo un poco más maduro, pero no viene enviado con Maya. Hacer temas de licencia. Esto significa que muchas personas prefieren usar por lindo, pero no siempre se garantiza que exista en otro sistema de usuario. Pero si quieres, te pico, te harías cinco. Simplemente cambiamos esta declaración de importación para elegirte cinco. Entonces, independientemente del uso del vigilante, aún importas los mismos sub módulos y solo estás cambiando el módulo padre. Si, sin embargo, tú usando mi 2016 y abajo, que usa lindo para ti, puedes hacer cualquiera de las tres cosas que puedes decir desde Cute y mantener Tu módulo es el mismo porque estamos usando la linda capa de abstracción. Si en cambio quieres usar pi side, que viene enviado con Maya, por lo que siempre está garantizado existir para mi 2016 y por debajo. Puedes usar la misma declaración de importación, pero solo elimina los widgets lindos. Esto se debe a que en lindos cuatro widgets lindos se combinaron por dentro, agudos, pegajosos y agudos cinco jamás se separaron. Por lo que en cualquier momento en el código que veas widgets lindos, puedes reemplazar a un boceto agudo. Si estás usando mi A training 16 y abajo y estás decidiendo no usar la capa de abstracción linda de manera similar en lugar de lado pastel, también puedes usar pi cute para e importar las mismas bibliotecas de nuevo. Similar a Pike, 'd five pi Cute four puede ser más maduro que el lado del pastel, pero no viene enviado con Maya, por lo que usted o su estudio pueden preferir usar pi cute. Sólo ten en cuenta que si distribuyes tu código, no está garantizado estar en todos los sistemas de usuario. Para todos mis videos, estaré usando la linda biblioteca, y la estaré usando como fem usando lindos cinco. Te recomiendo que hagas lo mismo porque te van a facilitar el seguimiento. Mejor también significará que tu código es portátil entre diferentes versiones mayas. Ahora que terminamos con una introducción bastante larga a lindo y lindo dentro de un maya, empecemos realmente a crear la lógica para una biblioteca de controladores 44. Crear el directorio de biblioteca: ahora estará creando la lógica para nuestra biblioteca de controladores. Al igual que hemos visto con nuestro tweener de animación y nuestra herramienta de creación de engranajes. Siempre es de nuestro mejor interés crear la lógica separada de, Are you I The simplifica nuestro desarrollo, y también significa que podemos reutilizar o codificar sin tener que llamar. ¿ Eres yo en el encanto de pastel? Vamos a crear el paquete para que nuestro controlador viva dentro haga clic derecho en el proyecto de guiones y digamos New y Python Package y Real Man Este paquete de biblioteca con están lejos en python para contener código juntos como una biblioteca empaquetada. Se puede ver que el paquete contiene de un directorio con el nombre que le dimos, así como un innit dot pie thean. Tenía pasteles vacíos. Simplemente existe para decirle a Python que este directorio es en realidad un paquete y no solo el directorio. Daremos click derecho en la biblioteca con, y ahora crearemos un archivo python. Llamaremos a este controlador Lavery y dentro de esto, digamos imprimir. Yo soy la biblioteca controladora. Estoy haciendo esto para que cuando importemos en Maya, pueda ver que se está importando desde el paquete de la biblioteca con e importando el módulo de la biblioteca del controlador de vuelta en Maya, digamos de Con Library, que es el nombre de su biblioteca controlador de importación de paquetes. Y si corro esto, se puede ver que una princesa soy el control de biblioteca. Pero si lo vuelvo a ejecutar, no volverá a imprimir nada. Esto se debe a que no hemos metido la recarga. Entonces si digo esto, si digo control de recarga de biblioteca y ahora ejecuto esto, se puede ver que lo imprime de nuevo. Y este yo y esto significa que siempre estará recogiendo los últimos cambios a nuestro código . Por lo que de vuelta en el encanto de pastel, vamos a deshacernos de esta declaración impresa. En primer lugar, vamos a importar parte del módulo dijo que vamos a estar usando el primer otoño. Nosotros,por supuesto, estaremos por supuesto, usando el módulo Maya así que diremos desde los comandos de importación mayas. Estaremos usando el módulo del sistema operativo para interactuar con nuestro sistema operativo, y estaremos usando el módulo Jason para escribir nuestros datos. También estaremos usando un módulo llamado P Print. Esto nos permitirá imprimir bastante muchos de nuestros datos para que nos resulte más fácil leer . Entonces ahora que tenemos las importaciones fuera del camino, ¿cuál es nuestra primera llamada afecto? Bueno, primero, necesitamos crear un directorio donde podamos guardar todos nuestros controladores y sus datos relacionados . Entonces vamos a averiguar primero dónde está ahora el directorio de lodo. Esto será diferente en la máquina de cada usuario, y definitivamente será diferente en cada sistema operativo, por lo que no podemos adivinar dónde estará. Afortunadamente, mi, por supuesto, sabe dónde está esto, y podemos consultarlo para Maya. Entonces voy a hacer usuario después y este será el nombre de una variable y de lo contrario comanda. Consiguió var interno. Voy a consultar al usuario tras variable de Maya. Entonces si digo imprimir usuario después y vuelvo a Maya y ahora ejecuto esto, se puede ver que está impreso el directorio de aplicaciones de usuario, que está bajo mi nombre de usuario, documento y Maya. Y esto, por supuesto, funcionó independientemente del sistema operativo que estés usando. A continuación, necesitamos construir el nombre del directorio antes de crear el directorio real. Entonces vamos a puerta un directorio variable y diremos que es igual a, y ahora necesitamos unirnos a este usuario después con el nombre de Far Directory. Entonces diremos que el pote derecho Oeste se unió, y le daremos las variables usuario después y el nombre de nuestra biblioteca de controladores de directorios . ¿ Sabes qué hace Westra Parts tojoin? Is usará tu separador específico del sistema operativo, que es diferente entre Windows, Lennox y Mac. En Windows, es una barra hacia atrás y nuestro Mac y Linux. Se trata de una barra inclinada hacia adelante, y esto le dirá a Python. Utilice su separador específico del sistema operativo para unir estos dos nombres de directorio juntos. Entonces si ahora digo imprimir directorio, cuando regrese a Maya y ejecuto esto, se puede ver que ahora se creó el directorio según corresponda a nuestro sistema operativo. Puede ser confuso porque está usando la barra inclinada hacia adelante aquí, pero esto se debe a que el directorio que mi contra nosotros hacia atrás está usando barras hacia adelante. Si no estuviera usando que Hi Tom haría el comportamiento correcto y le daría la barra hacia atrás. Podemos crear una función llamada Crear Directorio así que diremos muerte para definir una función y lo llamaremos crear directorio, y le voy a dar una variable llamada directorio y lo voy a Kestel para usar Este es el valor predeterminado. Esto significa que si nadie le da ningún valor a mi función, solo usará esto la próxima vez que digas si no Oh, este pot dot existe directorio, entonces dirás, Oh s dot m Kader, nosotros pensar si este directorio no existe, entonces hacer este directorio. Pero aquí se puede ver un problema. Estamos usando directorio varias veces y podría ser confuso si este directorio significa el argumento que nuestra función está recibiendo o esta variable aquí arriba alguna python. Es bastante común tener variables que están en la cima así ser todas las mayúsculas. Por lo que ahora voy a dar click derecho en él. Voy a ir a re factor y renombrar y en invierno necesidad Y voy a renombrarlo todo Capitals y voy a ella y voy a pegarle tres factor y se puede ver que el encanto de pastel es lo suficientemente inteligente como para renombrarlo tanto aquí como aquí. Pero sabe que no quise usar esto por aquí, así que no ha cambiado estos de manera similar, haré lo mismo para el usuario después de que voy a usar un atajo. Shift F seis, y lo llamaré usuario AP dir y se puede ver que se le ha renombrado tanto aquí como aquí. Por último, antes de continuar, salgamos, Doc Strings a nuestra función. Voy a poner tres comillas y golpear enter y se puede ver que término pastel llena automáticamente nuestros argumentos. Voy a quitar su documentación para devoluciones porque no devuelve nada. Voy a decir que ese directorio es una primavera y es el directorio a crear. Y vamos a decir que la función crea el directorio dado si no existe ya . Entonces volvamos a Meyer. Debo decir, Controlador, biblioteca, oscuro, crear directorio. Y si ejecuto esto y abrí mi archivo Explorer, puedes ver que ha creado el control de directorio de biblioteca Para mí eso no existía antes. Si lo llamo de nuevo, no lo volverá a crear porque está comprobando, pero existe primero. Si elimino esto y luego lo ejecuto de nuevo, puedes ver que se ha creado el directorio de nuevo. 45. Guardar los archivos: ahora estará creando una clase para gestionar nuestros controladores. Esto incluye tanto la búsqueda de controladores seguros existentes como un ahorro de los nuevos. Empecemos por crear nuestra tela y estamos enfermos biblioteca controlador de pérdidas porque nuestras garras se llamarán Biblioteca Controladora. Y quería heredar de dicta dicta dicta corta para diccionario. Y la razón por la que estoy haciendo esto es porque el diccionario es una manera realmente buena de almacenar relaciones entre el nombre de algo y cualquier información que le pertenezca, incluyendo este bote de archivos y cualquier captura de pantalla para otra información que creemos. Ahora, vamos a crear el mismo método. Entonces decimos death save y se puede ver que el gráfico circular agrega automáticamente una palabra clave auto porque sabe que es necesario. Ahora tenemos que considerar los dos parámetros que serán necesarios para guardar nuestro archivo el primero su nombre, porque siempre necesitamos su nombre para saber en qué guardarlo. En el segundo estará directorio para que sepamos dónde guardarlo. No quiero siempre especificar esto. Entonces hagamos que el directorio predeterminado al directorio que definimos aparezca ahora dentro de esta función, no sabemos Si este directorio ya existe, ya hicimos la función de crear directorio. Entonces volvamos a llamarlo y le diremos que use este directorio. Observe que no estoy dando el nombre de palabra clave real aquí. Si no das el nombre de la palabra clave, Python lo hará en orden. Entonces como directorio es la primera palabra clave al dar el valor de directorio aquí se le está dando automáticamente a la palabra clave directorio. A continuación, necesitamos crear la parte que va a estar salvando esto. Hazlo decimos camino es igual y de nuevo, usamos estrógenos. Se unen partes para hacer esto así decimos, Oh, Esther camino para unirse Y diremos el directorio. Vuelvo a ejecutar una sustitución de cadenas. Entonces es un punto por ciento s m a y voy a decir por ciento nombre y luego a continuación voy a tratar guardarlo. Pero primero, repasemos algunos de los parámetros del comando seguro. Abramos la documentación fuera del comando del archivo y desplázate hacia abajo hasta el fondo donde obtenemos ayuda para ello. Se puede ver lo que tenemos que hacer para salvarlo. Primero necesitamos cambiarle el nombre a la ubicación que queremos guardarla y luego tenemos que decirle que guarde, y necesitamos darle el tipo. Mi pregunta: Copiemos esto y volvamos a Pie Charm. Paguemos sistema a encanto de pastel. Entonces estamos viendo el archivo Command Start y le estamos diciendo que lo renombra a fred dot m A. Esto no es lo que queremos. Entonces digámosle que le renombra a este camino que hemos construido y luego le vamos a decir que guarde. Y le decíamos salvar a un Zumaya, pregúntale teclear. También tenemos que decir que la fuerza es verdadera. Esto se debe a que ya existe el archivo. Queremos forzar que ahorremos sobre él. Por lo que hemos construido este camino. Ese es el directorio y el nombre del archivo Maya. Le cambiamos el nombre a ese camino, y luego lo guardamos. Por lo que de vuelta en Maya, voy a crear una nueva instancia fuera de nuestra biblioteca. Es un poco largo, así que por favor aguanta conmigo. Por lo que decimos lib es igual a Controller Library, que es un nombre de módulo control de puntos de biblioteca, que son nuestras garras. Nombre y re Esperance ve crear una nueva instancia fuera de él para financiar un vivido salvarlo y ejecutarlo. Se va a decir que Safe toma los menos dos argumentos, de los cuales sólo se dio uno. Está esperando el nombre. Entonces digamos prueba, Vamos a ejecutar esto. Y si miro hacia atrás en mi directorio Meyer, se puede ver que hay un control de directorio bibliotecario que creamos en su interior. Es una autonomía de prueba, y puedo importarla. Pero está vacío. Probemos esto con algunos datos ficticios. Entonces volvamos a ejecutar esto. Y si abro este archivo, se puede ver que se abrió el Cubo exactamente como esperábamos. Pero digamos que tengo múltiples objetos, pero solo quiero salvar uno de ellos. Entonces si creo una esfera, por ejemplo, y solo quiero salvar este miedo, si ejecuto esto y vamos a crear un nuevo archivo y luego abrimos esta prueba existente Emmy, se puede ver que guardó tanto la esfera como el Cubo. Pero yo sólo quería salvar este miedo. Por lo tanto, agreguemos algunas funcionalidades para ahorrar en Lee. Apenas nuestra selección. Ver de nuevo en encanto de pastel, digamos, en lugar de simplemente guardar decimos, Si los comandos no ls selección es igual a verdadero. Y si recuerdas previamente, lo que estamos haciendo es que estamos viendo si hay una selección, vamos a obtener la lista de las selecciones y en su lugar nos sentaremos comandos archivo punto y obtendrás argumentos muy similares. Diremos fuerza igual a tipo verdadero igual a Maya preguntando porque quieres guardarlo como un mi pregunta. Pero en lugar de guardar, digamos exportar seleccionado es verdadero. Y si no se selecciona nada más, bueno, dile que solo guarde así de vuelta en mi vida. Ahora ejecutamos esto, y si abro el archivo de prueba que salvamos, puedes ver ahí guardar solo un cubo. Pero si también creo un cubo, despejo mi selección y luego ejecuto esto y luego volvamos a abrir el archivo, puedes ver que los guardó a los dos 46. Encontrar archivos: ahora estará revisando cómo encontrar cualquiera de los archivos que guardamos. Entonces de vuelta en Maya, vamos a guardar un par de archivos abajo. Entonces vamos a seleccionar este miedo y vamos a guardarlo usando la esfera guardar. Y luego hagamos lo mismo por el Cubo y lo llamemos Cubo de esta manera dentro de su biblioteca de controladores . Tenemos el Cubo, este miedo y el inicio de prueba Emmy que ya hemos creado Vacuum Pie Charm. Añadamos un método fino así que decimos Muerte hallazgo. Vuelve a darle paréntesis. Pie charm automáticamente como una palabra clave auto, diremos Directorio para buscar en y real haciendo uso del directorio por defecto que hemos creado y por dentro aquí. En primer lugar, vamos a comprobar si el directorio existe, porque si no existe, eso significa que no hay controladores guardados. Entonces diremos si no tú. Ester Park que existe directorio. Eran cosa. Si el directorio puss no existe, simplemente regresa de esa manera. No necesitamos continuar ahora. Enumeremos todos los archivos de este directorio para que digamos que los archivos son iguales a Oeste. Una lista dura, y le daremos el directorio. Vamos a enumerar el directorio. Entonces voy a decir imprimir archivos. Voy a volver a Maya y en lugar de lib dot save, voy a decir lib dot encontrar y ejecutar esto y se puede ver que mi de imprimirá una lista de tres objetos. Ahí hay un cubo, la esfera y la prueba. Estos son exactamente los mismos archivos que tenemos en ese directorio. Pero aquí está el problema. Digamos que creo un nuevo archivo de texto. Voy a llamar a esto el texto ficticio. Si ahora ejecuto esto, se puede ver que me dan el Cubo, el maniquí Texas Fear y la prueba cualquiera No quiero manipear texto revés en encanto de pastel. Vamos a filtrar cualquier cosa que no sea un archivo Maya. Entonces vamos a decir que los archivos Meyer es igual a y al igual que lo hicimos antes, vamos a usar la comprensión de listas. Entonces vamos a decir f para F en archivos si f punto termina con DOT Emmy. Y esto es lo mismo que si dijera que los archivos Maya es igual a una lista vacía. Voy a decir para F y archivos y es importante que no llamemos a este archivo variable porque archivo es en realidad una palabra clave importante dentro de un python. Dirá cuatro f en archivos si f que termina con punto m a. mis archivos dot upend F. Ahora esto es 1234 líneas de código. Dónde está esto es una sola línea y se trata de un simple de leer. Entonces vamos a deshacernos de esto porque esto fue sólo un ejemplo para explicar lo que está pasando aquí. Entonces ahora si imprimo archivos Maya y vuelvo a Maya y corro esto, se puede ver que ya no son incluye el dummy dot txt. Ahora que encontramos estos archivos de Myer, vamos a recorrer los mismos y añadirlos a nuestro diccionario. Quién dirá cuatro m A en mis expedientes. Ahora necesitamos simplemente obtener el nombre sin la extensión para el archivo Maya. Entonces diremos nombre. Extensión de coma es igual a OS Start pop que divide E X D, y vamos a dar em una y lo que esto hace. Dividirá la extensión del archivo y nos devolverá el nombre y la extensión . Entonces si ahora imprimo el nombre y ellos vuelven a Maya y ejecutan esto, se puede ver que se imprime sólo los nombres de los archivos sin su extensión. Entonces ahora que conocemos el nombre del archivo, necesitamos almacenar esto en nuestro diccionario, vinculando a la ruta al archivo. Pero el problema es que si imprimimos M A y volvemos aquí y ejecutamos esto, sólo nos está dando los nombres del archivo real y no el directorio completo. Entonces tenemos que hacer es decir que el camino es igual a nosotros. Ese camino no se une, y le daremos el directorio en el m A. Así que cuando estemos reconstruyendo el nombre completo de la ruta usando EU Pasta joint y el directorio investigado N en el archivo Maya para que podamos decir auto por dentro, corchetes dirán que el nombre es igual a la ruta. Esto podría ser un poco confuso, pero recuerda que en realidad había un diccionario que significa que podemos acceder a nosotros mismos como si fuera un diccionario. Por lo que estaba diciendo entre corchetes que asignaba el nombre clave a este bote. Entonces ahora si vuelvo a Maya y corro esto, no va a imprimir nada, pero si digo print lib. Se puede ver que lo imprime como un diccionario. Tienes la clave y el valor donde la clave es el nombre del controlador, y el valor es una ruta completa al controlador. Mientras nos estamos desarrollando, no quiero tener que imprimir cada vez en Maya. Entonces hagamos que se imprima el método fino. Todo se encuentra al final. Otro problema es que sólo imprimir el diccionario impreso plano así, que hace que sea un poco difícil de leer así que de nuevo en el encanto de pastel fuera del bucle cuatro. Pero dentro del método fino USPI imprimir P imprimir y decir auto. Lo que esto nos permitirá hacer es usar el módulo de impresión bonita para imprimir bastante los contenidos nuestro diccionario, que es auto. Entonces si ahora ejecuto esto, se puede ver que lo imprime en cada línea separada de manera fácil de leer. Entonces nos dieron la clave, y el valor en nuestro próximo video será repasando cómo cargar los archivos de nuevo en 47. Cargar controladores: Este será un video rápido sobre cómo cargar el archivo de nuevo dentro de Maya. Entonces ahora vamos a crear un método de carga dentro de la biblioteca de controladores. Crearemos un nuevo método llamado Load Again by charm como la palabra clave self, y le daremos el nombre para cargar y diremos parte auto escolar. Y debido a que somos un diccionario, podemos buscar nuestros contenidos usando los mismos métodos de diccionario en este caso, los corchetes. Entonces vamos a buscar para ver si tenemos el mismo nombre, instancia de archivo de información privilegiada. Y luego cuando lo digas los comandos no archivan, le vamos a dar las partes para importar. Vamos a decirle que importe. Pero el problema es que el Python uno te deja usar la palabra clave import, así que tenemos que usar una diversión corta, que es I. Así que decimos que soy igual a cierto, y no quiero usar el espacio de nombres. También está usando nombres base falsa. Esto significa que no importará nuestro controlador a un espacio de nombres secundario, lo cual puede ser algo confuso y saber lo que queremos. Entonces de vuelta en Mayer, recarguemos todo. Vamos a crear la instancia. Si una biblioteca vamos a encontrar todos los controladores y se puede ver que se encuentra estos y entonces sólo puedo decir lib, no cargue prueba. Eliminemos estos. Y cuando ejecuto esto, se puede ver que importó el archivo de prueba. Si vuelvo a borrar claves y digo esfera en su lugar, se puede ver que se importó este archivo de miedo, y luego tenemos nuestro código guardando, cargando y encontrando nuestros controladores. No vamos a entrar en guardar datos extra junto con nuestros controladores. Eso podría ser útil en el camino. En el siguiente video, aprendimos a usar el módulo Jason para hacer exactamente eso. 48. Nuestro primer error: nuevo en control de biblioteca guardar método. En primer lugar, quiero llamar nuestra atención sobre un tema. Cuando guardamos algo nuestra biblioteca en realidad no se actualiza. Con esto, puedo mostrar esto haciendo live dot save y lo diré como error. Si hago esto y luego imprimo en vivo, se puede ver que tiene. Cuenta con el controlador de prueba, el controlador de esfera y el controlador Cube. Pero no tiene el controlador de errores que acabamos de guardar. Y puedo buscar esto específicamente. Y diré que hay un error clave porque la clave no existe. Pero si lo hago lib dot find antes de eso y luego corro, va a funcionar muy bien. No quiero tener siempre que ejecutar lib dot find cada vez que guardo un controlador. Entonces, solo actualicemos cada vez que guardamos real, digamos yo y entre corchetes, nombre es igual para acariciar la forma en que siempre estamos actualizando cada vez que ahorramos 49. JSON: lectura y escritura de datos: Ahora que hemos resuelto nuestro primer error, vamos a crear un diccionario para guardar datos para nuestro controlador. En primer lugar, necesitamos saber en dónde guardar estos datos. Entonces voy a crear otra parte. Esta vez lo voy a llamar. Archivo completo es igual a I'm fueron creados de la misma manera que creé la ruta para guardar. Originalmente, voy a usarnos camino estelar para un porro. Yo le voy a dar el directorio. Te volveré a sustituir cadenas, igual que un hecho arriba. Pero esta vez voy a usar la Extensión Jason. Ahora, necesitamos saber qué datos guardar en esto. Pero no quiero tener que especificar todos los datos posibles que podríamos querer guardar. Yo quiero dar la capacidad para que los usuarios guarden cualquier dato que quieran. Podemos hacer esto permitiendo que nuestro método de ahorro tome cantidad arbitraria de la información. Al igual que usamos ARD estrella para almacenar cualquier exceso de variables dentro de la variable arg. Podemos hacer información de doble estrella, destruir cualquier argumento extra dentro de la variable info. Probemos esto justo después del comando seguro. Yo estoy aquí Decir imprimir info. Voy a regresar de inmediato para que el resto de nuestro mando no corra. Volvamos a Maya a probar esto. Entonces si acabo de ejecutar lib, guardar de nuevo, se puede ver que sólo imprime un diccionario vacío. A esto es a lo que la info es igual. Si ahora agrego algún parámetro arbitrario, digamos que el spam es igual a los huevos verdaderos igual a verde, y ahora ejecuto esto. Se puede ver que el diccionario es igual a huevos igual a verde, y el spam es igual a verdadero. Esto se debe a que cualquier argumento que no se defina como parte de nuestro método se almacenará automáticamente dentro del trabajo de la clave info dentro de la variable info. Ah, y como hemos visto, info será un diccionario por defecto para que podamos guardar este diccionario con nuestro archivo cuando queramos. Así que intentemos hacer esto al final de cuatro método Guardar antes de decir antes de añadir el camino a nosotros mismos, digamos a nosotros mismos, , con archivo de información abierto y luego golpear coma y entre comillas, poner W como f y luego en la siguiente línea Jason Volcadura de Dodd. Recuerda que esto tiene que ser sangrada y le diremos que volque la info porque este es un diccionario le dirá que lo volque en F con una indentación apagado. Cuatro. Repasemos esto que estamos viendo con archivo sin abrir y este es un nombre de parte de ese archivo. Lo abriremos en modo escritura. W. Y vamos a almacenar este archivo abierto en una variable temporal llamada F. Y con esta variable ical f, vamos a usar Jason para volcar el en cuatro diccionario que tenemos de aquí en F, que es el flujo de archivos que acabamos de abrir. Y vamos a sangrar todo por cuatro espacios. Lo que ves aquí con open se llama contexto pitón. No los usaremos mucho en nuestro curso aparte de abrir un archivo, pero esencialmente lo que hacen es que ejecutarán código dentro de él, y antes y después de que se ejecute este código, harán algo. En este caso, abrirán el archivo antes de que se ejecute el código y cerrarán la oferta de archivo. El código se hace ejecutándose. Esto es independientemente de si el código falla o no, y es una forma muy conveniente y segura de abrir archivos. Entonces ahora volvamos a Maya y probemos esto otra vez. Tengo mis argumentos arbitrarios a mi función segura. Entonces estoy diciendo que viví a salvo. Voy a llamar a esto la prueba de info e incluso darle a valores arbitrarios. Químicos verdaderos y huevos iguales verdes. Entonces, vamos a ejecutar esto. Si vuelvo a abrir mi directorio, puedes ver que aquí hay un nuevo archivo. Prueba de info de convocatoria sobre Jason. Puedo abrir esto en mi sublime editor de texto, que es otro editor que me gusta, y se puede ver que lo guardó como diccionario. Huevos es igual a verde, y spam es igual a verdadero. Esto significa que podemos guardar cualquier dato que queramos junto a nuestro controlador. Ver, de vuelta en encanto de tarta. Añadamos más información a este archivo info para que siempre la tengamos de que depender porque sabemos que la información es un diccionario que vamos a decir en folk, y vamos a añadir una nueva clave al mismo. Nombre de llamada. Nosotros le decimos que el nombre es el nombre. También vamos a tener que conocer la clave llamada path, y vamos a darle el camino que creamos aparecen de vuelta en Maya. Intentemos ejecutar esto de nuevo. Entonces voy a ejecutar esto y voy a abrir mi sublime texto y se puede ver que ahora guarda el nombre como valor así como la ruta con la ruta completa al archivo que acabo de guardar nuevo en encanto pastel. Hagamos otro método de ajuste o guardar. Actualmente, sólo estamos guardando el nombre de la ruta en nuestra biblioteca de controladores. En cambio, quiero guardar toda la información que también se está almacenando en nuestro Jason. Entonces, en lugar de decir yo y entre corchetes, el nombre es igual a la ruta, hagámoslo igual al diccionario de información en su lugar. De igual manera, en el método fino, Realtor ahora necesita encontrar el Diccionario Jason que creamos. Entonces en el método fino, volver a bajar al bucle de cuatro que teníamos dentro del bucle de cuatro. Vamos a crear una nueva variable, y la llamaremos. Archivo completo es igual a y realmente la sustitución de cadenas de nuevo, y se le llamará el mismo nombre que su archivo Maya. Apenas con una extensión Jason, vamos a comprobar si este archivo info fue encontrado a real decir si archivo info en archivos porque ya hemos enumerado archivos antiguos en el directorio aquí arriba, por lo que no tiene sentido volver a buscar ese archivo. A decir real, si este archivo info está en los archivos puestos en venta, entonces construyamos una parte completa. Entonces diremos info file otra vez porque te vas a os drop path, ¿ verdad? Únete. Y al igual que hicimos aquí arriba, bueno, volveremos a crear la parte con el directorio y el archivo info, y ahora necesitamos volver a leer el archivo. Entonces al igual que hicimos en el método de guardar con el archivo abierto aquí, podemos copiar eso. Pero en lugar de usar W, quiero decir nuestro Así que estamos abriendo este archivo con la bandera de lectura e iniciamos la bandera correcta , y no queremos volcar los datos. , Entonces decimos, Jason la carga. Quiero cargarlo desde F donde f es el flujo de archivos que acabamos de abrir. Entonces eso sólo se está ejecutando en esa declaración if. Y una vez cargamos este Jason Data que queremos almacenar, queremos almacenarlo en una variable llamada info. De lo contrario, digamos que imprimamos no se ha encontrado información. Y además, vamos a p imprimir nuestra info para que podamos ver lo que hemos cargado atrás en Meyer. Es una especie de vivido. Guardar. Digamos que Lib fue multado y volvamos a ejecutar esto y se puede ver que es decir saber, lleno, encontrado, saber, completo encontrado. Y luego de repente es rojo en este diccionario que ahorramos y continúa. Y luego finalmente, imprime todos los objetos que han encontrado, por lo que podemos ver que está encontrando y leyendo en nuestro diccionario Jason. Esto es exitoso, así que sabemos que la información es un diccionario y Jason está cargando el diccionario en él. Entonces vamos a deshacernos de esta p print. Y en la declaración else decir, info es igual a un diccionario vacío. Otra vez. El diccionario vacío está significado por llaves, y lo que somos es, si no encontramos el Jase en el archivo, digamos que la variable Info es un diccionario vacío. De esa manera, sabemos que la información siempre está en diccionario vacío. A continuación, poblemos este diccionario, si acaso la información no está ahí. Entonces diremos Info. Nombre es igual a nombre, y diremos info hat es igual a path de la forma en que sabemos que el nombre y la ruta siempre se dan, y al igual que hicimos en el mismo método. Almacenemos el diccionario de información real en lugar de solo el camino. Entonces, en lugar de decir auto nombre es igual a path, bueno, decir auto nombre es igual a info. Y ahora, si vuelves a Maya, déjame limpiar mi historia y correr esto. Se puede ver que nuestra biblioteca consiste en los nombres de los controladores como las claves, y luego cada una de las claves tiene un diccionario como su valor, con más información, y por defecto, cada una tendrá al menos el nombre en el valor de la ruta. Pero si especificamos mawr y si se encuentra el Jase en archivo, vamos a cargar de nuevo esos valores también. Por último, debido a que hemos cambiado en lo que consiste nuestra biblioteca, también necesitamos cambiar lo que son load Method lo hace en lugar de obtener la ruta del autonombre porque esto ahora es igual al diccionario y no a la ruta que tenemos que decir auto nombre. Y debido a que eso nos está devolviendo un diccionario, podemos consultarlo como un diccionario. Entonces otro corchetes dentro de esto digamos camino y salgamos esto. Vamos a recargar todo esto y de ahí, digamos vivir carga aburrida y digamos que quiero cargar el Cubo. Y si ejecuto esto, bueno, uh, tiene el Cubo de vuelta dentro. 50. Captura de capturas de pantalla: Ahora queremos agregar la capacidad de que una biblioteca guarde una captura de pantalla de los controladores. Es un encanto de espalda en pastel. Volvamos a nuestro método de guardar para una biblioteca de controladores y agreguemos un nuevo parámetro de palabra clave a un método de guardar. Voy a llamar a esta captura de pantalla por defecto. Quería guardar una captura de pantalla que quiero dar la capacidad de desactivarla. Ahora quiero guardar la captura de pantalla después de guardar el controlador real. Pero antes de escribir el archivo Jason, entonces lo que voy a hacer es que salió una nueva línea que dice, Si pantalla impactó como si captura de pantalla se establece en True self sí guarda pantalla impactada, que es un método que aún no hemos creado. No quiero guardarlo con el nombre y al directorio que nos han dado. También imagino que este método nos devolverá la ubicación de la captura de pantalla, cual quiero guardar en nuestro diccionario de info. Entonces voy a decir info y entre corchetes, diré que una captura de pantalla es igual al operador del método. No, encantos correctamente diciendo que este método no existe. Entonces si haces clic en eso y vas al icono de la bombilla, puedes decir agregar método, decir captura de pantalla, y creará un método con los argumentos que acabamos de especificar. Alternativamente. O si estás usando tu propio editor, solo puedes crear esto tú mismo. Pero voy a dejar que Pike Charm haga el trabajo sucio por mí. Necesito cambiarlo un poco. Por lo que ese directorio tiene un valor predeterminado fuera del directorio. Recrea antes, y voy a crear el bote en el que vamos a guardarlo. Creo que OS Dark Path no se une. Y de nuevo, nos limitaremos a llegar con el directorio en el nombre y automáticamente acabaremos de devolver esta ruta para que se guarde dentro para que se guarde dentro del archivo info. A continuación, quiero asegurarme de que la vista Maya encaje exactamente alrededor de nuestro controlador. Mi tiene un comando para este llamado view fit. Voy a llamarlo los hombres cada uno le dicen a Maya cómo guardar la imagen. ¿ Me preguntaba un PNG JPEG, un tiff o algún otro formato de imagen Para este ejercicio? Estaremos usando JPEG, por lo que vamos a establecer el valor Render predeterminado en J. Peg. Este es uno de los muchos raros casos de esquina de Maya y por lo tanto está bastante mal documentado. Entonces tú así sólo tendrás que seguir adelante. Por lo que Music Commons sí establece adder y entre comillas, dicho default, render el formato de imagen acoplada de Global y luego simplemente ve hasta que decidió ocho. No, ¿por qué es esto? Entonces si vuelves a Maya y abrimos la configuración de render predeterminada, voy a borrar mi historial en el editor de guiones para que veas lo que estoy haciendo. Si cambio el formato de imagen a J. Peg, se puede ver que le está haciendo un set. Siguió. Formato de imagen de Render Global ocho. Si cambio esta oleada, si es cero y por cambios a mi I i f. F a las siete. Observe algo. Jif viene antes de J. Peg, que viene de para mi i i f F. Pero ese no es el orden de thes números. Esto se debe a que Autodesk decidió guardar estos en un orden diferente del pie cómo los agrega al menú. Por eso la forma más fácil de establecerlo en J. Peg es simplemente creer ciegamente que ocho es el valor para J. Peg. Entonces vamos a enviárselo de vuelta a J. Peg y volvamos a Pie Charm. Por último, la forma de renderizar esto es usando el comando de vidrio de la placa. Entonces decimos, Vamos, golpeado, juega, explota y luego necesitamos darle varios parámetros. Entonces primero, digamos que el nombre de archivo completo es igual a la ruta porque ese es un nombre de archivo completo que queremos guardar, también. Querías decirle que fuerce, ¿verdad? Quién dirá la sobreescritura de fuerza es cierto. Diremos que el formato es una imagen. Diré que el ancho es de 200 y la altura es de 200 hace una bandera para mostrar adornos. Diré que se trata de falsos adornos de partes del puerto de vista que en realidad no están en tu escena pero son solo unas pocas superposiciones de puerto, así que quiero desactivarlas. Yo solo quiero escribir nuestra única imagen, así que voy a decir que la hora de inicio es igual a una. Un tiempo de fin también es igual a uno. Por último, no quiero realmente abrir esto en ningún espectador. Alguien para salvar ur equivale a falso para que no lleguemos para que no consigamos que el visor de imágenes de Maya o cualquier otro espectador se abra. Entonces si vuelves a Maya y vamos a Skipper a seguir esto y déjame despejar mi selección y diré live dot save, diré test de pantalla. Vamos a guardarlo y se puede ver que cambia de tamaño puede ver puerto para que se ajuste a los controladores, y también lo destelló. Ahora si abrí mis directorios, puedo ver que hay una prueba de pantalla ical de archivo, y eso es algo inútil para mí. Y esto es porque me olvidé de poner una extensión ahí. Déjame borrar esto porque realmente no lo necesito ahora mismo. Volvamos a Pie Charm. Y la razón es que, por aquí, solo tengo nombre y el nombre no tiene extensión. Entonces, usemos de nuevo una sustitución de cadenas. Tan seguro por ciento s Dajae PG por ciento un nombre. Entonces si vuelvo a Maya y vuelvo a ejecutar esto y abrí directorio de mayo, puede ver que hay una prueba de pantalla, RJ Peg y es un clavo itty bitty ton que incluye los controladores que acabamos de ahorrar . Entonces ahora que tenemos trabajando el ahorro. También asegurémonos de que nuestra fina confinó la clavija de la calle después de que hayamos leído en el Jason . Veamos si la captura de pantalla también existe a Diremos pantalla impactada es igual al por ciento sa J. Peck de la misma manera que lo hicimos para el archivo info por ciento nombre. Y diremos que si la captura de pantalla está en los archivos que encontramos arriba, entonces debe existir, ¿ verdad? Quién dirá info Captura de pantalla es igual a. Y luego solo construiremos la parte completa a la captura de pantalla usando partes de arrestador o unirnos . Le daremos el directorio sobre el nombre. Y ahora, si vuelves a Maya y digo lib dot find y ejecuto esto, puedes ver que la prueba de pantalla tiene un valor de captura de pantalla y ninguna de las otras sí, porque es la única que en realidad tiene una captura 51. Documentación de Qt: mucho antes de que nos metamos en la construcción de verdad, ¿verdad? I Es importante hacerte saber dónde puedes encontrar documentación sobre pastel lindo y la actual biblioteca de c++ linda, aunque elijas usar pi side en lugar de pastel. Lindo el lucio. Tu documentación es mucho más profunda que eso. Si la documentación del lado del pastel, puedes encontrar el lucio que la documentación buscando la guía de referencia de tarta Cute. Esto se puede encontrar en pastel, lindo o fuente. Forge dot net slash muelles flash por lindo cinco y si vas abajo, puedes ver todas las diversas cláusulas que están disponibles dentro de un pastel. Lindo. El más común será el Diálogo Q ya que esto creará un diálogo. Observe que todo pastel lindo y de hecho todas las clases agudas comienzan con la letra Q para significar que vienen de la linda biblioteca. Si hace clic en diálogo cue, realidad sólo le dará un enlace a la C plus, más documentación en su lugar, y haciendo clic que le llevará a la documentación aguda real. En la documentación linda real, puedes aprender información sobre la clase de diálogo Q. Se puede ver que se hereda del widget Q y que todos estos otros elementos tú heredan de él. Eso significa que el diálogo lindo es un subtipo de widget Q. Pero todos estos diálogos de archivo Q que diálogo de fuente, etcétera nuestros Niños fuera del diálogo Q. Se pueden ver funciones que están habilitadas en este objeto en Dallas funciones que sobre paseos. Son todas las ranuras y señales. Pero también hay más métodos que en realidad definieron por el widget que original. Voy a bajar. Se pueden ver muchas, muchas funciones más. Esto puede hacer lindo un poco confuso buscar documentación para ello primero, porque es posible que toda la documentación no viva directamente donde esperas que lo haga. Pero con el tiempo aprenderás a apreciar la linda documentación porque divide los contenidos en partes fáciles de digerir. Por último, otro sitio web que encuentro útil para buscar cómo usar pi cute es conocimiento. Tu conocimiento dot com. Puedes buscar cualquiera de las cláusulas que quieras, y te daré códigos de muestra sobre cómo usarlas. En esta página, se puede ver que he buscado el lucio. Tenías cinco widgets lindos que dialogo y me da ejemplos de código que lo están usando. Esto es realmente útil porque a veces la documentación puede ser un poco confusa, y en realidad verlo en uso es una mejor referencia que leer la documentación. Por último, si alguna vez golpeaste con lindo, es una biblioteca muy común, y por lo tanto siempre puedes encontrar ayuda para ello. Usando Google o Stack Overflow, serán enlaces a todos estos sitios web de documentación en mi guitarra Grippo si alguna vez te pierdes . 52. Muestra una ventana de Qt: Ahora que hemos terminado de escribir toda la lógica para el control de biblioteca, empecemos por crear el tú I en tu paquete con library. Haga clic derecho y ver nuevo archivo python. Y llamémoslo biblioteca. Tú yo y pega entrar. Esto creará un nuevo módulo dentro del paquete Biblioteca Farrakhan llamado Biblioteca. ¿ Tú yo aquí? Importemos nuestro control de paños de biblioteca. Diremos desde el controlador Biblioteca, Controlador de importación Biblioteca. Entonces estamos diciendo desde el control del módulo de biblioteca importar el control de clase de biblioteca. A continuación, necesitamos importar los lindos módulos que estarán usando. Entonces, como cubrimos en el video anterior, voy a decir desde importación linda, widgets lindos, núcleo lindo y mantener bocoso. Si no estás usando la linda biblioteca, puedes reemplazar esto por cualquier biblioteca linda de pastel que estés usando. Y si estás usando mi 2016 o anterior reemplazar cualquier uso está apagado. Widgets lindos simplemente con lindo gooey porque los widgets lindos no solían existir. Vamos a crear una cláusula que representaría nuestra biblioteca. Tú yo y lo llamaremos biblioteca controladora. Tú, yo necesitaré heredar del diálogo agudo porque queremos que nuestro control Una biblioteca sea un diálogo. Entonces digamos widgets lindos, Doc. Dialogas otra cola y golpeas. Entra, luego agrega thean it método. Entonces esto es sordo. Subrayar. Subrayar en ella. Subrayado guión bajo. Dentro de esto, llamaremos al super método tan correcto Super. Y si golpeas enter, puedes ver el encanto de pastel completa automáticamente esto. Vamos a explicar lo que acabas de escribir. El doble subrayado innit? El método es un método que tienen todas las clases de python. Tanto si lo implementas como si no, se llama cada vez que creas una nueva instancia de la cláusula dentro de ésta usamos la super función. Lo que super hace es, dice, Vamos a encontrar el super cerrar este paños. En este caso, el super del control de biblioteca usted. Yo soy los closets. Heredar de esto es lindo widgets o diálogo Q. Esto es para que nuestro código nunca necesite saber de qué estamos heredando, y puede averiguarlo mientras se está ejecutando. Esto significa que si quería cambiar de qué hereda esto y cambiarlo a una ventana principal Q en su lugar, no tengo que cambiar todas mis ocurrencias de código que están llamando al super. Entonces vamos a cambiar esto de nuevo al diálogo Q y vamos a seguir explicado el super el siguiente argumento a super sí mismo. Ahora que encontramos el costo que nuestra biblioteca controladora te hereda, necesitamos decirle cómo hacer referencia a la instancia específica. Esto no será necesario en Python tres y superiores. Pero como estamos usando Python a esto sigue siendo una molestia con la que tendremos que convivir. Y habiendo telefoneado el control de biblioteca tú yo y diciéndole que use esta instancia, entonces llamamos es método innit. Esto es lo mismo que haber hecho esto ahora. Esto puede parecer más sencillo de usar ahora, pero como dije, si alguna vez cambiaras lo que heredas entonces tendrías que cambiar cada instancia de esto. En lugar de hacer eso, Usando Super hace un código mucho desde un flexible y escalable. Adicionalmente, la mordida te permite heredar de múltiples cláusulas. Entonces a pesar de que estoy usando Cute, que es crudo tú diálogo podría heredar de cualquier otro paños que yo quiera también y Mike Loss será hijo de ambos. Entonces si agrego una cláusula y en este caso vamos a agregar el str cerrar nuestra biblioteca de control sería tanto diálogo agudo como una cadena que estoy llamando. Esto ignora el hecho de que nuestra clase puede heredar de ambos. Por lo que siempre es mejor usar super donde sea posible porque cuida todos estos pequeños detalles dentro de Python sin que tengamos que preocuparnos por ello. Y como dije, encanto de pastel rellena automáticamente esto en impuestos para ti, así que en realidad no necesitas recordarlo ahora a por qué lo estamos llamando. Estamos llamando al in it porque el diálogo de cola realmente hace alguna lógica dentro de su propia función innit. Pero debido a que estamos redefiniendo nuestro propio método innit aquí, significa que en realidad no estamos llamando al método innit de diálogos Q, como hemos visto en nuestra introducción a las clases antes. Pero debido a que necesitamos ejecutar los diálogos Q en él, usamos el Super para encontrar el diálogo Q y luego correr. Está en ella. Esto significa que llegamos a usar toda la lógica dentro del diálogo Q sin tener que reescribirla nosotros mismos. A continuación, vamos a crear una función para mostrar. ¿ Estás fuera de por paños? Vamos a crear una función independiente fría, mostrarte yo y dentro de esto te diremos. Yo, que es una nueva variable, es igual al control de biblioteca Tú I y usemos Prince ve para crear una nueva instancia fuera ella. Y entonces diremos, tú, yo no muestro con monedas que contar. ¿ Eres yo para exhibir? Y por último, volvamos. ¿ Eres yo a Maya ahora de vuelta en Maya, digamos desde Con Library, porque este es el nombre de para un paquete. Te diremos importar biblioteca Tú, yo y yo vamos a decir recargar biblioteca tú porque quiero recargar cualquier cambio que haga. Y por último, quiero decir biblioteca tú, yo que te muestro yo a llamar a nuestro tú te muestras. Funciono ahora. Si ejecuto esto, podrías haber visto aparecer una ventana pequeña y desaparecer inmediatamente. Déjame correr esto otra vez y prestar mucha atención. Esto se debe a que a pesar de que estamos creando el tú, yo variable aquí tan pronto como termina nuestra función, Python está borrando esta variable de la existencia porque ve que nada realmente la está usando. Esto se llama el recolector de basura, y básicamente es la forma de Python de limpiar variables no utilizadas porque sabias solo usaste dentro de nuestra función python correctamente pero de manera molesta asume que no necesitaremos esta variable y limpia hasta cualquier dato relacionado con ella. Pero la suposición pitones es incorrecta. En nuestro caso, realidad queremos usar la u yo tan simplemente variable creativa dentro de un Maya, podemos llamarlo yo y seguro igual al valor de retorno Off nuestro show you function y porque te muestro función devuelve el tú i variable. Significa que este año yo variable será igual a eso. Entonces ahora si ejecutas esto, puedes ver que la ventana se mantiene viva porque Python lo ve, seguimos usando esto. Tú i variable y no lo está borrando ahora. Este cuadro de diálogo no es muy emocionante. Es sólo una caja gris llana sin título real. Entonces vamos a cerrarlo y personalizarlo de nuevo en término pastel. Vamos a editar el método innit que definimos. En primer lugar, pongamos un título de ventana así que simplemente decimos, duda de sí mismo, establecer título de ventana Y aquí solo voy a decirle que establezca la ventana. Título dos biblioteca controladora. Tú yo siguiente, vamos a almacenar en instancia fuera de nuestra biblioteca dentro de la u I. Así que voy a decir que la biblioteca autohecha es igual para controlar una biblioteca, y voy a crear una nueva instancia fuera de nuestro control de biblioteca. Después de eso, voy a llamar a métodos que aún no he definido. Pero llamémoslos de todos modos. Entonces nos diremos por sí mismo. No te construyas. Yo, que es un método que aún no he definido y yo mismo, no vuelvo a poblar. Otro método de tener que encontrar aún puede notar que el encanto del pastel es incapaz de decirnos si existen estos métodos drone. Esto se debe a que el encanto de pastel se confunde con la biblioteca de abstracción aguda porque no sabe de dónde está importando. Por lo tanto, no lo puede entender. Este es un pequeño precio a pagar, porque lindo nos permite usar nuestro código en cualquier lugar. Pero si quieres volver a usar solo pi side to o lado pastel, por favor siéntete libre también. Haz que el encanto de pastel sea mucho más fácil de usar. Voy a cambiar de nuevo solo para que me sea más fácil demostrarme, Así que si digo de vista a y me quedo con el y se quedan, el módulo es el mismo se puede ver que ahora nos ponemos mejor. Terminar por encanto tardará un poco en pensarlo. Y mientras tanto, vamos a crear estos métodos diciendo Pausa y diciendo No pongamos nada ahí dentro sin embargo sólo queremos ejecutarlos en cuanto se creen nuevas instancias Y de hecho, en lugar de decir pase, yo voy a decir, imprimir edificio tú yo y yo debo decir, imprimir poblando para que puedas ver que están corriendo. Si vuelvo a Maya y ejecuto esto, se puede ver que decía construirte yo y poblando tan pronto como eso creó una nueva instancia y se puede ver que nuestro diálogo ahora tiene un título de ventana que pusimos. 53. Construir el interfaz de Qt: antes de continuar. Echemos un vistazo al tú que estaré diseñando. Entonces tenemos este diálogo con el control de texto vivo para ustedes. Puedo ver que es principalmente vertical, pero tenemos elementos aire dispuestos horizontalmente. Tienes un campo de texto aquí arriba. El campo de estacas será para que las personas ingresen el nombre del controlador. Podemos ver controladores que se han guardado. Y de nuestro video anterior, se puede ver que tenemos muchas sin miniaturas reales a excepción de las pruebas de pantalla donde sí guardamos una captura de pantalla. Por lo que necesitamos apoyar ambas instancias. Si crezco o encojo mi tú, puedo ver que los elementos cambian de tamaño dentro de él. Debajo de eso, se puede ver un botón de actualización en el botón de importación y un botón de cierre dispuesto horizontalmente. Adicionalmente, si paso el cursor sobre alguno de estos elementos, se puede ver una punta de herramienta con la información que leemos desde el Jason en archivo. Déjenme cerrar esto y empecemos a crear esto Primero. Necesitamos crear un layout vertical como nuestro layout maestro. Entonces digamos que el diseño es igual a los widgets lindos. Q. V Boxley en y se puede ver ahora que hemos cambiado de usar la capa de abstracción linda a precio I a directamente por encanto es capaz de auto completar para nosotros de nuevo. Perdemos el beneficio si se usa la linda capa de abstracción. Pero también obtenemos ciertos beneficios mientras desarrollamos, y siempre puedo cambiarnos de nuevo a simplemente lindos. Siempre que libere esto, por supuesto, tendría que probar para asegurarme de que todo siga funcionando. Pero en su mayor parte, todo debería funcionar. Por lo que ahora tenemos un diseño de caja V y el V Boxley Out es la abreviatura de disposición de caja vertical, que es otro nombre para la columna Lee out the Maya usa. Esto significa que cualquier widget que agreguemos a este diseño se agregará verticalmente. También necesitamos decirle a este diseño a qué aplicar en este caso. Le diremos que se aplique a nosotros mismos, que es este que diálogo en el interior que necesitamos agregar línea horizontal para un campo de texto y un bucking para ahorrar nuestro controlador usando ese nombre. Entonces vamos a crear un layout. Habrá horizontal en su lugar. Primero creamos un widget, y voy a llamar a esto seguro que y decimos igual a widgets demasiado lindos, Doc, You widget. A continuación, voy a crear un layout para esto llamado Save Lee. Out es igual a widgets lindos Que cada diseño de caja, que similar al diseño de caja V, es corto de Boxley horizontal hacia fuera que colocará cualquiera de sus Niños horizontalmente de izquierda a derecha otra vez. Tenemos que decirle a qué widget aplicar. En este caso, será el widget de guardar. Y luego agreguemos nuestro nuevo widget de guardar al diseño original de la caja Q V. Disposición surrealista de venta que anuncio rígido. Y voy a decir guardar rígido. A continuación, vamos a crear los artículos que estarán dentro de la segura hacia fuera. En primer lugar, tendremos un campo de nombre. Algunos dirán Guardar nombre. El campo es igual a los widgets lindos, Doc. Te alineas con ello. Tenemos que acceder a este nombre guardado siéntase más adelante. Entonces voy a añadir yo antes de que se auto punto como hemos visto antes. Esto significa que esta variable será accesible dentro de la tela. Posteriormente, lo agregaremos al diseño horizontal que acabamos de crear, y ya se puede ver una gran diferencia entre usar lindo en la biblioteca de comandos Maya. El Mayacamas Lavery agrega automáticamente todo a la disposición perdida creada. Donde es lindo requiere que definas explícitamente esto. Esto puede parecer o inconveniente ahora, pero como su desarrollado más grande usted sabio, la claridad de definir su propia jerarquía es realmente útil y mantiene su código muy limpio y fácil de mantener. A continuación, crearemos el botón guardar diciendo Guardar y luego ser tiene, que uso para forma corta para botones. Entonces voy a decir Lindos widgets, Doc. Presionas botón y dentro el príncipe ve. Nos contaré la textura tiene para el botón y te diré, Guardar. Añadamos esto otra vez puerta salvar Leah dirá, Save Lee Upton. Agregar widget. Eso es guardar botones. Si vuelvo a Maya y ejecuto mi código, puedes ver que mi tú ahora me muestra y tenemos un campo de texto que creamos en el botón de guardar que acabamos de crear. Todavía no van a hacer nada, pero vamos a definir el comportamiento más adelante. A continuación, necesitamos agregar la vista en miniatura para navegar Para todos nuestros controladores, es un encanto de vuelta en pastel. Vamos a crear un nuevo widget. Voy a llamar a esto el widget de lista Porque la vista en miniatura es realmente solo una lista todo lo que queremos. Ya estoy otra vez. Tendré que acceder a esto más tarde. Entonces voy a usar el widget de lista de puntos auto, que será el nombre de una variable. Y vamos a firmar este agudos widgets, Doc, tu widget de lista. Y ahora tenemos que añadir esta lista rígida para ser tú Yo Si digo maquetación que agregan widget y se van a decir un widget de lista, puede ver que ahora tenemos un área para que todos los controladores disparados vivan volviendo a encanto de pastel . Ahora, sumemos todos los botones que queremos en la parte inferior de la u I. Queremos que estos botones se coloquen horizontalmente. Entonces vamos a crear un nuevo widget como si apareciéramos para sostener nuestros botones en algún lugar. Diga, widget de botón es igual y como lo hicimos antes, solo voy a crear un nuevo widget usando widgets lindos, Doc, tú widget. Voy a añadir un layout a esto. Alguien dice que el diseño de botones es igual a widgets lindos, Doc, Usted cada Boxley arriba y luego voy a firmar esto al widget de botón. Eso acabamos de crear. Y antes de que nos olvidemos, agreguemos esto al monstruo Leah. Entonces estamos saliendo con Lee. Agregar widget de botón widget Dentro de este widget de botón. Añadamos tres botones. Voy a crear el bucking de importación, y voy a llamarlo o crear un nuevo pulsador para ello. Y digo, Botón de importación, Es ir demasiado lindo. Widgets, Doc. Presionas botón y dentro de paréntesis. Le daremos el texto que queremos mostrar. Voy a importar con un poco de signo de exclamación por algún estilo. Vamos a agregar esto al diseño de botones, y ahora vamos a crear los otros dos botones de manera similar. Entonces vamos así voy a crear un botón de refrescamiento. Botón de actualización es igual a widgets lindos, Doc. Presionas botón en príncipes y pondremos Refresh. Agregaremos esto al botón. Nosotros no actuamos de la misma manera que antes y por último confiamos en un botón de cierre , ya sabes, y diremos botón cerrar es igual a widgets lindos. Un pulsador que y monedas dirán cerrar. Agregaremos esto para la capa de botones diciendo diseño de botones, no agregar widget. Cierra bucking si vuelves a Maya y huyes, ¿verdad? Ya veo que tenemos el tú que creé muy rápido. Tienes un campo fiscal aquí con el botón Guardar. Contamos con un área nueva para que aparezcan todos los controladores así como tres botones. En realidad no hago nada ahora mismo. Importar, refrescar y ropa dispuestas exactamente como queramos. 54. Hacer una galería para nuestros controladores: Lau ir sobre cómo usar nuestro control. La biblioteca para encontrar y exhibir todos los controladores. ¿ Has guardado previamente acto? Si no has guardado ya ningún controlador, recomiendo volver atrás y ahorrar unos pocos para que podamos usarlos como ejemplos para este You I in pastel charm. Habíamos definido este método poblado. Si voy a ello, se puede ver que actualmente sólo dice poblar y se ejecuta cada vez que creamos una nueva instancia A para ti, I Lo primero que necesitamos hacer es llamar a nuestra biblioteca autohecha. Quiero decir que se encuentre todos los controladores existentes. Entonces necesitamos pasar por todos los controladores que encuentra y agregarlos a la u I. Así que digamos por nombre, comas info en auto entrega que los artículos reales imprimen el nombre y la info. Entonces si lo ejecuto ahora, se puede ver que está imprimiendo toda esta información, el nombre y la válvula y la info. Esto se debe a que la biblioteca de auto giro dos elementos regresa a los objetos por cada cuatro bucle. El clave del valor en este caso, el nombre y la info. Entonces con esto, vamos a crear un nuevo elemento de widget de lista para agregar a nuestro widget de lista. Entonces voy a decir Item es igual a widgets lindos, Doc. Enumeras elemento widget que ve una imprenta. Voy a darle el texto que debería tener en este caso. Voy a escribir nombre porque la variable de nombre es una cadena para el nombre que se debe mostrar. Voy a agregar esto al widget de lista, y voy a decir Widget de lista de dudas Self o ese elemento de elemento. Si vuelves a Maya y ahora corres, ¿verdad? Yo Se puede ver que sólo los está listando verticalmente. ¿ Dónde está mi tú? Los enumeré como Tom Nails y fluirían alrededor como una pequeña vista de galería. Vamos a arreglar esto ahora mismo, pero primero, vamos a tener una captura de pantalla a cada uno de estos elementos. Diremos Captura de pantalla es igual a info dot Obtener y del diccionario de información, obtendrás la variable screenshot. Diremos, si pantalla conmocionada, vamos a crear un nuevo vamos a crear un nuevo iconos dirán icono es igual a lindo gooey porque las telas de icono vive en lindo, bobo y dirás punto que icono y lo diremos que use el bote a la captura de pantalla que acabamos de conseguir a continuación. Le diremos a nuestra lista ítem rígido que acabamos de crear para utilizar este ícono elemento faltante para establecer icono y utilizar el icono Variable. Ahora, si vuelves a mi y corres esto, puedes ver esto. Ahí están itty bitty pequeños iconos a continuación, cada uno de para al lado de cada uno de sus artículos. Por ahora, tan bueno. Pero aún quiero mostrarlos como la vista en miniatura. Esto implica modificar la lista rígida que acabamos de crear. Afortunadamente, esto es realmente fácil y lindo. Entonces vamos a buscar dónde definimos nuestra lista. Widget. Está por aquí. Lista de auto hecho. Rígido insider. El método build you I voy a golpear enter y justo después de crear el widget de lista, voy a decir Self done list widget dot set view mode. Yo soy Go decirle que sea lindo Widgets que lista widget pato modo Icahn y básicamente, de esta lista rígida. Estamos recibiendo esta variable de humor ícono Y lo que esto le dice a nuestro widget de lista que haga es que debería mostrar el estado de ánimo de vista en modo icono Así que si vuelves a Maya y ahora ejecutas esto, puedes ver que los está mostrando como poco iconos, y eso es exactamente lo que queríamos. Pero hay un poco difícil de ver, y queremos que sean mucho más grandes. Sebek en Pie Charm Definamos el tamaño que queremos que sean estos iconos. Voy a crear un nuevo tamaño, muy bíblico, y voy a decirle que sea 64 porque queríamos tener 64 píxeles de ancho. No vamos a decirle a la lista rígida que establezca su tamaño de icono. Entonces diremos y