Grillo Tools for Unity - Documentación

Unity Tool Documentation

Polybrush Scatter Tool

Scatter pictorico de prefabs sobre superficies.

Portada wiki / Polybrush Scatter Tool

Demo Video

Video de demostración

El video demo puede mostrar scatter manual sobre terreno o arquitectura y compararlo con placement guiado.

Tool 09

Polybrush Scatter Tool es la herramienta de scattering manual de Grillo Tools for Unity. Está pensada para pintar prefabs directamente sobre superficies de la escena mediante un flujo interactivo de brocha dentro de la Scene View.

Su valor principal está en combinar rapidez, control artístico y contexto espacial real. En lugar de colocar props uno a uno o depender solo de distribuciones automáticas, permite poblar superficies pintando instancias sobre la escena con variación de escala, orientación y densidad.

Importante: Aunque su nombre remite a un flujo de tipo Polybrush, la herramienta no modifica meshes ni datos de Polybrush. Su función es instanciar objetos sobre geometría existente.

Polybrush Scatter Tool está orientada a tareas como:

  • Poblar rápidamente terrenos, suelos o superficies con prefabs.
  • Hacer dressing orgánico de vegetación, piedras, debris o props secundarios.
  • Distribuir elementos de forma más libre que en un placement por guía.
  • Aplicar variación visual mediante escala, yaw y tilt.
  • Limitar el scattering a una selección concreta de superficies o abrirlo a toda la escena cargada.

Es especialmente útil cuando el objetivo no es una distribución exacta y repetible, sino una colocación manual asistida, más natural y más rápida de ajustar visualmente.

Cómo funciona

La herramienta necesita dos cosas:

  • Una lista válida de prefabs fuente.
  • Un conjunto de superficies objetivo donde pintar.

Una vez configuradas, se activa Paint Mode y el scattering pasa a la Scene View. A partir de ahí, el usuario pinta con clic o arrastre, y la herramienta genera instancias sobre la geometría bajo el cursor.

Puntos importantes de funcionamiento:

  • Solo instancia objetos; no modifica las mallas objetivo.
  • Usa raycasts por intersección de triangulos sobre los MeshFilter objetivo.
  • Puede trabajar solo sobre la selección actual o sobre todas las superficies activas de la escena.
  • Las instancias se agrupan en un contenedor llamado PrefabScatterInstances.
  • El modo de pintura se controla desde escena con Left click, drag, Esc y navegación normal con Alt.

1. Target Surfaces

Target Surfaces

Esta sección define sobre qué superficies puede pintar la herramienta.

Selection only

Define el alcance de las superficies objetivo.

  • Cuando está activado la herramienta solo usa como targets los MeshFilter encontrados en la selección actual y en sus hijos activos.
  • Cuando está desactivado la herramienta recopila todos los MeshFilter activos de escenas cargadas y válidas.

Target MeshFilters

Muestra el número de superficies objetivo detectadas actualmente. Es un indicador muy útil para confirmar que la herramienta está apuntando a los targets correctos antes de empezar a pintar.

2. Actions

Actions

Esta sección controla la activación del modo de pintura y la gestión de targets. También muestra un banner visual cuando el modo de pintura está activo.

Start Paint Mode / Stop Paint Mode

Activa o desactiva el modo interactivo de scatter en Scene View.

Comportamiento importante:

  • El botón solo se habilita si existe al menos un prefab fuente válido.
  • Al activarse, la herramienta refresca la lista de superficies objetivo.
  • Mientras el modo está activo, la Scene View muestra un overlay con información del brush y de los targets.

Refresh Targets

Vuelve a recopilar las superficies objetivo según la configuración actual.

Es especialmente útil cuando:

  • Has cambiado la selección de objetos.
  • Has activado o desactivado Selection only.
  • La escena ha cambiado y quieres actualizar el conjunto de targets.

Clear Targets

Vacía la lista actual de superficies objetivo. Esto no borra geometría ni instancias ya creadas; solo limpia el conjunto de mallas sobre las que la herramienta puede pintar.

Controles en Scene View

Controles en Scene View

Cuando Paint Mode está activo, el flujo real se traslada a la escena:

  • Left click: pinta una pasada.
  • Left drag: pinta de forma continua.
  • Esc: sale de Paint Mode.
  • Alt: mantiene la navegación habitual de la escena.

Además, la herramienta dibuja:

  • Un disco de brush sobre la superficie.
  • Una línea que indica la normal del punto bajo el cursor.
  • Un overlay informativo con número de prefabs y targets.

3. Brush Settings

Brush Settings

Esta sección define como se comporta la brocha de scattering.

Muchos de estos controles incluyen un botón R para restaurar su valor por defecto.

Brush Radius

Define el radio del área de pintura alrededor del punto de impacto principal.

  • Valores más bajos dan un scattering más concentrado.
  • Valores más altos abren más el área de distribución.

Prefabs Per Stroke

Define cuántas instancias intenta crear la herramienta en cada pasada de brocha. Esto afecta directamente a la densidad de cada golpe de pintura.

Min Spacing

Marca la distancia mínima permitida entre nuevas instancias.

Comportamiento importante:

  • La herramienta compara la nueva posición tanto con instancias ya existentes en el contenedor como con las creadas en la misma pasada.

Esto ayuda a evitar acumulaciones excesivas y solapes visuales.

Normal Offset

Desplaza la instancia a lo largo de la normal de la superficie.

Max Slope

Limita la pendiente máxima sobre la que se permite pintar.

La herramienta compara la normal detectada con Vector3.up, por lo que este control es muy útil para decidir si ciertos objetos deben aparecer solo en zonas relativamente horizontales o también en superficies inclinadas.

Align To Normal

Si está activado, orienta las instancias según la normal de la superficie.

Random Yaw

Activa rotación aleatoria alrededor del eje principal de colocación.

  • Si Align To Normal está activo el yaw se aplica respecto a la normal de la superficie.
  • Si está desactivado el yaw se aplica respecto al eje vertical global.

Yaw Range

Define el rango mínimo y máximo de la rotación aleatoria en yaw.

Sirve para controlar cuánta variedad angular introduce cada instancia.

Max Tilt

Introduce una inclinación aleatoria adicional.

Esto ayuda a romper patrones demasiado perfectos y a dar una lectura más orgánica al conjunto.

Scale Range

Define el rango de escala aleatoria aplicado a cada instancia.

Es una de las formas más efectivas de evitar repetición visual cuando se reutiliza el mismo prefab muchas veces.

4. Source Pattern

Source Pattern

Esta sección define la librería de prefabs que la herramienta puede pintar. También incluye un área de drag and drop con preview visual.

Add Selected Prefabs

Añade a la lista los prefabs asset que estén seleccionados en ese momento.

Comportamiento importante:

  • Solo acepta prefabs válidos del proyecto.
  • No añade duplicados si ya están presentes en la lista.

Add Slot

Añade una ranura vacía manualmente para asignar un prefab después.

Clear

Limpia toda la lista de fuentes.

Esto no elimina instancias ya creadas; solo vacía el patrón de entrada de prefabs.

Drop Sources Here

El área central permite arrastrar prefabs directamente para construir el patrón de scattering.

Cada tile muestra:

  • Preview del prefab.
  • Campo de referencia.
  • Indice de la ranura.
  • Botón X para eliminar esa entrada.

Más información

Notas de comportamiento

  • La herramienta crea y reutiliza un contenedor llamado PrefabScatterInstances.
  • El scattering se hace sobre MeshFilter activos y válidos.
  • Si Selection only está activo, la herramienta refresca targets cuando cambia la selección.
  • El brush usa la normal de la superficie para preview y para parte de la orientación cuando procede.
  • La distribución se basa en instanciación aleatoria dentro del radio de brocha, no en un patrón exacto.

Limitaciones

  • No modifica geometría ni datos de Polybrush.
  • No incluye modo borrador ni limpieza automática de instancias creadas.
  • No ofrece un sistema de pesos por prefab dentro del patrón.
  • Depende de que existan MeshFilter activos y accesibles como targets.
  • En escenas muy densas, el proceso de detección de impacto puede ser más costoso.