Mel / Python - Procedimiento - Cadena de Cubos

Hola, en esta oportunidad realizare un ejercicio en el que pondremos en practica el envió de datos a un procedimiento o función, el cual usara estos datos para personalizar una cadena de n cubos.

El enunciado seria el siguiente:
  1. Se necesita crear una cadena de cubos alineados consecutivamente.
  2. La cantidad de cubos es variable.
  3. Estos deben estar emparentados correctamente desde su base a su extremo más lejano.
  4. El tamaño de los cubos no afecta su distribución
Para resolverlo necesitaremos:
  1. Un procedimiento que reciba tres atributos
    • limiteX: nos indica cuantos cubos crearemos.
    • sizeCubo: tamaño de los cubos que crearemos.
    • nomCubo: nombre que le asignaremos a los cubos.
  2. Comando For para repetir las instrucciones.
  3. Comando If para evaluar y asignar los parents.
Comenzaremos definiendo el procedimiento "cadenaCubos" que recibirá los tres valores para configurar nuestra cadena, luego usaremos el comando "For" para repetir "n" veces la instrucción y finalizaremos con el comando "If" para generar el parent solo después de haber creado el primer cubo.

El resultado usando Mel seria el siguiente:
  1. proc cadenaCubos(int $limiteX,float $sizeCubo,string $nomCubo){

  2.     for ($x=0;$x<$limiteX;$x++)
  3.     {
  4.     polyCube -h $sizeCubo -w $sizeCubo -d $sizeCubo -n ($nomCubo+"_"+$x);
  5.     move 0 ($x*$sizeCubo) 0;

  6.     if($x>0)
  7.         {
  8.             parent ($nomCubo+"_"+$x) ($nomCubo+"_"+($x-1));
  9.         }
  10.     }
  11. }
  12. cadenaCubos(10,1,"cubo");


        Su equivalente en Python seria así:
        1. import maya.cmds as cmds

        2. def cadenaCubos(limiteX,sizeCubo,nomCubo):

        3.    for x in range(limiteX):
        4.       cmds.polyCube(name=(nomCubo+'_'+str(x)),depth=sizeCubo,height=sizeCubo,width=sizeCubo)
        5.       cmds.move(0,(x*sizeCubo),0)

        6.       if x>0:
        7.          cmds.parent(nomCubo+'_'+str(x),nomCubo+'_'+str(x-1))

        8. cadenaCubos(10,1,"cubo")

                El resultado es una cadena de cubos emparentados que ya podemos animar.
                Ejemplo animado.

                Espero les sea útil este pequeño ejercicio, un saludo.

                Comentarios

                Entradas populares de este blog

                Autodesk Estudiantil

                After Effects: Shortcuts

                3ds Max - Modificadores