Consulta Maxscript: randomize

Ahí van unas funciones que, aplican distintas transformaciones aleatoriamente:

Código:

Fn randomtranslation deltax deltay deltaz = (t- Recorremos todos los objetos seleccionados tfor obj in selection do (t - El desplazamiento inicial será de 0.0 local dispx = 0.0, dispy = 0.0, dispz = 0.0 t - Determinamos aleatoriamente el desplazamiento para cada eje if deltax.= 0.0 do dispx = random -deltax deltax if deltay.= 0.0 do dispy = random -deltay deltay if deltaz.= 0.0 do dispz = random -deltaz deltaz t - Aplicamos el desplazamiento move obj [dispx, dispy, dispz] t)). Fn randomrotation deltax deltay deltaz = (t- Recorremos todos los objetos seleccionados tfor obj in selection do (t - El ángulo de rotación inicial será de 0.0 local anglex = 0.0, angley = 0.0, anglez = 0.0 t - Determinamos aleatoriamente el ángulo para cada eje if deltax.= 0.0 do anglex = random -deltax deltax if deltay.= 0.0 do angley = random -deltay deltay if deltaz.= 0.0 do anglez = random -deltaz deltaz t - Aplicamos la rotación rotate obj (eulerangles anglex angley anglez) t)). Fn randomscale deltax deltay deltaz = (t- Recorremos todos los objetos seleccionados tfor obj in selection do (t - La escala inicial será 1.0 local scalex = 1.0, scaley = 1.0, scalez = 1.0 t - Determinamos aleatoriamente el factor de escala if deltax.= 1.0 do scalex = random -deltax deltax if deltay.= 1.0 do scaley = random -deltay deltay if deltaz.= 1.0 do scalez = random -deltaz deltaz t - Aplicamos la escala scale obj [1.0 + scalex, 1.0 + scaley, 1.0 + scalez] t).
)

.

Ejemplo de uso:

Código:

- Aplicamos una rotación aleatoria de 10º en x y z. Randomrotation 10.0 0.0 10.0.
-Aplicamos una traslación aleatoria de 2.0 en y, y 3.0 en z. Randomtranslation 0.0 2.0 3.0.
-Aplicamos una escala aleatoria en x, y, y z. Randomscale 0.1 0.2 0.3

.

Evidentemente quedaría mejor con una UI, pero es totalmente funcional. Saludos.

Edito: he modificado una cosa en la función randomscale.