Unity Tool Documentation
Randomize Transform Tool
Variación controlada de posición, rotación y escala.
Demo Video
Video de demostración
El video demo puede enseñar una misma distribución antes y después de randomizar para visualizar el valor del acabado.
Tool 05
Randomize Transform Tool es una herramienta sencilla, pero muy efectiva para introducir variación controlada dentro de Unity. Su valor está en convertir composiciones técnicamente correctas en composiciones visualmente más ricas, sin obligar a editar objeto por objeto. Para acabado, dressing y ruptura de repetición, es una utilidad muy práctica dentro de Grillo Tools for Unity.
Sirve para:
- Introducir pequeñas variaciones de posición.
- Romper repeticiones demasiado perfectas.
- Aplicar rotaciones discretas por pasos.
- Ajustar escala de forma más orgánica.
- Dar un acabado menos mecánico a distribuciones repetidas.
Es una herramienta de refinado, no de colocación base. Normalmente aporta más valor cuando se usa después de haber alineado, duplicado, instanciado o distribuido elementos con otras herramientas.
Cómo funciona
La herramienta se divide en tres bloques principales:
- Translation
- Rotation
- Scale
Cada bloque puede activarse o desactivarse por separado. Cuando el usuario pulsa Apply Randomization, la herramienta recorre la selección actual y aplica aleatoriedad solo en los bloques que estén activos.
Esto permite trabajar de forma muy controlada:
- Solo posición.
- Solo rotación.
- Solo escala.
- O cualquier combinación entre ellas.
1. Translation
Este bloque aplica variación de posición sobre los objetos seleccionados.
Cuando Translation está activo, la herramienta suma un desplazamiento aleatorio a la posición local de cada objeto seleccionado. Eso significa que la variación se aplica sobre localPosition, no sobre una recolocación absoluta.
Ejes
Puedes decidir en qué ejes se permite la variación (X, Y, Z). Si un eje está desactivado, no se modifica.
Negative max y Positive max
Estos campos definen el rango aleatorio permitido en cada eje.
Comportamiento real:
- El valor negativo se usa como límite hacia el lado negativo.
- El valor positivo se usa como límite hacia el lado positivo.
- El resultado final es un valor aleatorio dentro de ese rango.
Por ejemplo:
- Negative max X = 1
- Positive max X = 2
Permitiria mover cada objeto aleatoriamente entre -1 y +2 en el eje X.
2. Rotation
Este bloque aplica rotaciones aleatorias, pero con una filosofía distinta a la traslación y la escala: trabaja por pasos en grados de rotación. Cuando Rotation está activo, la herramienta aplica una rotación aleatoria alrededor de cada eje habilitado.
Ejemplo:
- Si en Y defines un Degree step de 90, la herramienta puede aplicar giros múltiples de 90 grados.
Esto es muy útil en objetos modulares o props que necesitan variedad, pero manteniendo coherencia estructural.
Cómo calcula la rotación
La herramienta no rota simplemente sobre el pivote del objeto. Calcula primero un centro geométrico basado en los renderers hijos y usa ese punto como centro de rotación.
Eso hace que el comportamiento sea más útil en objetos cuyo pivote no está perfectamente colocado para este tipo de variaciones.
Si el objeto no tiene renderers hijos:
- Usa la posición del propio transform como referencia.
Degree steps
Cada eje tiene un valor propio de paso angular.
Comportamiento real:
- La herramienta multiplica ese paso por un valor aleatorio entero dentro de un rango interno.
- El resultado son rotaciones discretas, no completamente libres.
Esto favorece resultados más controlados que una rotación totalmente caótica.
3. Scale
Este bloque aplica variación de escala. Cuando Scale está activo, la herramienta suma un valor aleatorio a la escala local del objeto.
Importante:
- La variación se aplica sobre localScale.
- No reemplaza la escala actual: la modifica incrementalmente.
Ejes
Puedes activar o desactivar cada eje de escala por separado.
Esto permite:
- Escala uniforme aproximada si activas varios ejes con rangos equivalentes.
- Escala no uniforme si buscas deformaciones controladas.
4. Apply Randomization
Este es el botón que ejecuta la herramienta.
Comportamiento:
- Solo se activa si hay objetos seleccionados.
- Recorre toda la selección actual.
- Aplica Translation, Rotation y Scale solo en los bloques que estén activos.
Más información
Notas de comportamiento
- La herramienta trabaja sobre la selección actual.
- Translation modifica localPosition.
- Scale modifica localScale.
- Rotation rota alrededor del centro geométrico del objeto cuando hay renderers disponibles.
- Cada eje puede activarse o desactivarse individualmente.
- Los bloques son independientes entre sí y pueden combinarse libremente.
Limitaciones
- No ofrece previsualización antes de aplicar cambios.
- No incluye semillas ni control de repetibilidad del resultado.
- La rotación está pensada como sistema por pasos, no como ángulo libre continuo.
- Una escala demasiado agresiva puede romper proporciones o crear resultados poco deseables.
- Una traslación demasiado alta puede arruinar distribuciones que dependan de precisión espacial.