Ir al contenido

Vista Previa de Movimiento

La creación de partículas es básicamente adivinar y volver a adivinar. Estableces un gráfico de Speed, un vector de Acceleration, un SpreadAngle, luego activas Enabled y entrecierras los ojos ante la nube resultante tratando de descubrir qué propiedad está haciendo qué. La Vista Previa de Movimiento elimina ese ciclo. Selecciona un emisor y el plugin dibuja varias trayectorias variantes — caminos reales que seguiría una partícula — directamente en el viewport. Modifica una propiedad y las líneas se actualizan en tiempo real.

El HUD del plugin tiene un botón Motion Preview. Haz clic para activarlo. Mientras está activo, cada emisor seleccionado tendrá sus variantes de trayectoria dibujadas sobre el viewport.

Haz clic en el botón para desactivarlo cuando hayas terminado. Las líneas desaparecen inmediatamente.

Cada línea es el camino de una partícula de muestra a través del espacio, trazado desde donde aparecería hasta donde llegaría al final de su posición en Lifetime. Un pequeño chevron en la punta de la línea muestra la dirección del movimiento. Linger (retención post-vida) no extiende la línea — Linger mantiene la partícula estática en su posición final, por lo que no hay movimiento adicional que dibujar.

El plugin dibuja varias variantes por emisor. Cada variante genera valores aleatorios nuevos a partir de tu cono de SpreadAngle, tus rotaciones iniciales RotX/Y/Z, tus rangos de desplazamiento PosX/Y/Z, y cualquier rango de envolvente en los gráficos. Así, el conjunto de líneas que ves es una muestra representativa de la distribución que producirá tu emisión en vivo — estrecha cuando el spread es ajustado, amplia cuando es holgado.

Dado que la misma física ejecuta tanto la vista previa como la emisión en vivo, lo que ves es lo que obtienes. La vista previa reutiliza la rutina de movimiento real del motor — el mismo camino de código que decide dónde estaría una partícula emitida real en cualquier momento de su vida. No hay un segundo simulador que pueda discrepar.

Edita cualquier propiedad — Speed, Drag, Acceleration, SpreadAngle, cualquier cosa que afecte el movimiento — y las líneas se redibujan.

Las actualizaciones están debounced: el plugin espera una breve ventana tras tu último cambio antes de volver a ejecutar la simulación, para que no pagues el costo de una resimulación completa en cada pulsación de tecla o tick del deslizador. Mantén un deslizador presionado y verás las líneas actualizarse a una frecuencia constante, no 60 veces por segundo.

El presupuesto total de líneas es adaptativo al tamaño de la selección, no fijo por emisor. Con un emisor seleccionado, obtienes un conjunto más denso (alrededor de 20 líneas) que dibuja la distribución completa de variantes. Con cinco o más emisores seleccionados, esas ~20 líneas se comparten entre la selección — cada emisor recibe menos líneas para que el viewport no se llene. El conjunto escala con el tamaño de la selección; para un pase enfocado en un solo emisor ves la muestra completa, y para vistas generales de muchos emisores ves un boceto representativo por emisor.

La Vista Previa de Movimiento es compatible con los tipos de workspace que tienen trayectorias significativas:

  • Part — simulado mediante la rutina de movimiento por fotograma del motor, por lo que cualquier combinación de Speed/Drag/Acceleration/RotMode/DirMode/SpreadAngle es respetada.
  • Attachment — simulado mediante la variante local-del-padre de la misma rutina, que respeta el encadenamiento de CFrame local del padre.
  • Model — mismo simulador que Part, ya que los Models heredan el modelo de movimiento de Part.

Los tipos que no se mueven no muestran vista previa:

  • Beam, Trail — geometría fija, sin trayectoria por partícula.
  • PointLight — anima Range/Brightness/Color en su lugar; no es una pregunta de “hacia dónde vuela”.
  • Blur, Bloom, ColorCorrection, Atmosphere — espacio de pantalla, no en 3D.
  • ImageLabel — movimiento de GUI 2D; requeriría un sistema de superposición de viewport separado para visualizarse.

Las selecciones de ParticleEmitter de Roblox también obtienen vista previa, con un simulador en línea que refleja el propio modelo de movimiento de partículas de Roblox.

Las líneas son instancias LineHandleAdornment agrupadas en un pool bajo workspace.Terrain.MotionPreview. La carpeta se crea de forma diferida en el primer uso y está marcada como Archivable = false — por lo que no aparece en la vista de archivo de tu Explorer, no se guarda con tu archivo de lugar y no contamina tu historial de deshacer. Cuando desactivas el botón, las líneas se ocultan; cuando lo vuelves a activar, se reutiliza el mismo pool.

Si alguna vez notas una carpeta MotionPreview bajo Terrain, ese es el pool. No la toques; el plugin gestiona su ciclo de vida.

El chevron en la punta de cada línea consiste en dos segmentos de trazo cortos que forman una forma <. En cada fotograma, esos trazos se reorientan para que el plano del chevron siempre mire hacia la cámara — como un pequeño billboard — de modo que la dirección de la flecha sea legible desde cualquier ángulo de visión. Esta es una conexión RenderStepped que solo se ejecuta mientras la vista previa está activa.

Cada variante es una simulación hacia adelante de un solo paso a través de varias docenas de puntos de muestra. Para una selección típica de emisores (algunos elementos, varias variantes cada uno), eso es bien menos de un milisegundo por debounce. El costo visual — el dibujo de líneas — está acotado por el tamaño del pool de líneas, no por el número de variantes.

Para selecciones muy grandes, el plugin limita cuántos elementos se procesan a la vez, manteniendo el conjunto visible acotado sin saturar el viewport.

La herramienta de Vista Previa de Movimiento traza líneas en el espacio, pero el contenido de cada partícula (su textura, sus fotogramas de flipbook) proviene de una biblioteca separada. El siguiente capítulo — El Inventario — cubre esa biblioteca: catálogo en la nube, assets locales de Studio, búsqueda, selección múltiple, inspección.