Ir al contenido

Calidad de Vida en la Interfaz

El panel de autoría del plugin es denso — once tipos de emisores, docenas de propiedades cada uno, gráficos y rangos de tres ejes, una sección de flipbook, una sección avanzada. Sin algunos comportamientos de calidad de vida, te ahogarías en clics repetitivos. Este capítulo cubre el resto de esos comportamientos: los patrones que hacen que las ediciones por eje, la selección de múltiples emisores y la gestión de paneles sean sencillas. Ninguno de ellos es obligatorio para usar el plugin. Todos valen la pena conocerlos porque ahorran tiempo real una vez que has superado lo básico.

Propiedades como Size, Rotation Speed y (en ImageLabel) Size Scale son por eje — tres gráficos independientes, uno para X, Y y Z respectivamente (o dos para el par 2D de ImageLabel). El panel los muestra como una fila con botones de alternancia de eje seguidos de un botón Edit:

Size: [X] [Y] [Z] (Edit)

Haz clic en un botón de eje para seleccionarlo. Haz clic en otro botón de eje para añadirlo a la selección. Luego haz clic en el botón Edit — el Editor de Gráficos se abre, y cualquier cambio que hagas se aplica a todos los ejes seleccionados a la vez.

Esto significa que puedes crear un gráfico y aplicarlo a los tres ejes en una sola edición, en lugar de abrir el editor tres veces y copiar y pegar la misma forma. Útil cuando quieres un comportamiento uniforme: un gráfico de Size que escale de manera idéntica en cada eje, un gráfico de Rotation Speed que gire uniformemente alrededor de los tres.

El primer eje que seleccionas es el primario — el botón Edit muestra el gráfico existente de ese eje como punto de partida. Los ejes subsiguientes heredan la forma del primario cuando confirmas. Un contorno sutil alrededor del botón del primario indica visualmente cuál está liderando.

Cuando hayas terminado, haz clic en cualquier botón de eje para deseleccionarlo. Sin nada seleccionado, el botón Edit está inactivo — no hay nada que editar.

El mismo patrón se aplica a las filas de entrada por eje como Position y Rotation (inicial — bajo Motion en el panel). Alterna X/Y/Z, escribe un valor y se escribe en cada eje seleccionado a la vez.

Selecciona varios emisores en el Explorador de Studio (Ctrl+clic, Shift+clic o selección en banda) y el panel de propiedades se adapta:

  • Las propiedades compartidas por cada tipo seleccionado aparecen, con valores que reflejan el estado común (o en blanco para “valores mixtos”).
  • Las propiedades únicas de un tipo aparecen solo cuando al menos un elemento de ese tipo está en la selección.
  • Las ediciones se aplican a todos los emisores seleccionados simultáneamente.

Puedes seleccionar tipos diferentes juntos — Part + Beam + Trail — y el panel sigue mostrando las propiedades compartidas (Color, Lifetime, Rate). Las filas específicas de tipo como el Blender de Beam solo aparecen cuando hay un Beam en la selección.

ParticleEmitter y Trail de Roblox se unen al mismo modelo de selección cuando la Edición Nativa está activada. Selecciona diez de ellos y edita Rate una sola vez.

Cada panel del plugin — Properties, Toolbench, Inventory, Graph Editor — tiene:

  • Un controlador de arrastre en la parte superior izquierda para moverlo por la ventana gráfica.
  • Una zona de redimensionado por borde (controladores invisibles de unos pocos píxeles de ancho centrados en cada borde del panel) para hacerlo más grande o más pequeño.
  • Una flecha de colapso en la cabecera que oculta el cuerpo y deja solo la barra de cabecera — útil cuando necesitas el espacio en pantalla pero quieres el panel a un clic de distancia.

Las posiciones de redimensionado persisten entre reinicios del plugin mediante la configuración del plugin. Arrastra un panel a una esquina; permanecerá allí en la próxima sesión. Amplía el Inventory para bibliotecas grandes; ese ancho se conserva.

El grupo Settings del QMenu tiene un botón Reset Layout que restaura cada panel a su tamaño y posición predeterminados si has hecho un desorden.

La herramienta Clipboard del Toolbench copia los valores de propiedades de la selección actual a una ranura del portapapeles. Pegar los aplica a una selección diferente.

Lo interesante: el portapapeles es consciente de la selección — solo las propiedades compartidas entre la fuente y el destino se pegan. Copia la configuración de un Part; pega en un Beam; solo aterrizan Color, Lifetime, Rate y otras propiedades compartidas. Width0 específico de Beam no recibe un valor incorrecto de una copia de Part.

El Clipboard también te permite copiar solo una sección (Spawning, Appearance, Movement, etc.) en lugar de todas las propiedades. Útil cuando quieres compartir un aspecto particular entre emisores sin sobrescribir configuraciones no relacionadas como Position o Lifetime.

El panel Properties tiene un cuadro de búsqueda que filtra las filas visibles en tiempo real mientras escribes. Escribe “rot” y solo aparecen Rotation, Rotation Mode, Rotation Speed. Escribe “speed” y solo las filas relacionadas con Speed.

Cuando la búsqueda no está vacía, todas las secciones colapsadas (Movement, Shape, Flipbook, Advanced) se expanden automáticamente para que las filas coincidentes sean visibles. Vacía el cuadro de búsqueda y las secciones vuelven a colapsar al estado en que las tenías antes.

Esto significa que puedes colapsar una sección para ocultarla, buscar una propiedad dentro de esa sección, editarla, borrar la búsqueda y la sección vuelve a estar colapsada sin necesidad de volver a colapsarla manualmente.

Los campos de rango (Lifetime, RotX/Y/Z, etc.) aceptan varios formatos de entrada:

  • 1 — interpretado como 1, 1 (rango puntual)
  • 1, 2min, max explícito
  • 1.5, -0.5 — el plugin ordena para que min ≤ max independientemente del orden de entrada
  • 1..2.. también se acepta como separador (el analizador del plugin es indulgente)

La entrada de un solo valor es el atajo más común: escribe 2 para una vida útil de 2 segundos, sin necesidad de escribir 2, 2.

Las entradas no válidas — abc, 66, 66ab, una cadena vacía, cualquier otra cosa que el analizador no pueda leer — hacen que el campo parpadee en rojo y restauran el valor anterior. Las versiones anteriores sobrescribían silenciosamente el valor con ceros en unos treinta campos del panel; eso ya no es posible. El parpadeo visual es la señal: si ves rojo, el valor no cambió.

Los campos Texture de Beam y Trail rechazan la entrada no numérica de la misma manera (esos campos aceptan IDs de recursos, que son numéricos). Pegar texto no numérico solía borrar silenciosamente el campo; ahora el pegado se rechaza y la textura existente permanece.

Cada entrada se aplica en el momento en que el foco abandona el campo — no se requiere ningún botón Aplicar. Tabulando desde un campo numérico, haciendo clic en otro campo, la edición anterior queda registrada. La siguiente emisión usa el nuevo valor.

Las partículas que ya están en vuelo no se actualizan retroactivamente (tratado en Properties → Live Editing) — se reproducen con sus valores capturados en el momento.

El plugin proporciona un sistema de atajos configurable superpuesto a un pequeño conjunto de integraciones de Studio siempre activas.

AtajoDóndeEfecto
Ctrl+Z / Ctrl+YStudioDeshacer / rehacer cambios de propiedades del plugin (gestionado por el propio ChangeHistoryService de Studio — el plugin establece puntos de control alrededor de cada edición). Un solo Ctrl+Z revierte una selección de Color, incluyendo cualquier acción de tipo cancelar.
C / VSolo en el Graph EditorCopiar / pegar puntos clave entre gráficos mientras el Graph Editor está abierto (teclas solas, sin modificador Ctrl)
EscInventory Detail / Graph Editor / Captura de atajoCerrar el panel Detail, cerrar el Graph Editor o cancelar una vinculación de atajo en curso.

Estos tres están integrados en el tiempo de ejecución del plugin y no aparecen en el panel Shortcuts — se aplican independientemente de las vinculaciones que configures.

Todo lo demás vive en un panel Shortcuts dedicado dentro del menú Settings. El panel lista cada acción del plugin que se puede vincular, agrupada por categoría (UI, Tools, Edit, Animate, Emit) con un botón Bind en cada fila. Haz clic en Bind, pulsa la combinación de teclas que quieras, listo.

El líder con prefijo P. Todos los atajos configurables usan P como líder de tipo mantenido: mantén P presionada, luego pulsa la tecla del acorde que vinculaste, luego suelta. Una vinculación a T se muestra como P + T y se dispara cuando mantienes P y pulsas T juntas (no P-luego-T como secuencia). Esto evita el espacio de nombres saturado de Ctrl/Shift/Alt de Studio y mantiene las teclas del plugin aisladas. P sola no dispara nada — es solo un modificador. Las teclas solas (sin Ctrl/Shift/Alt) y los acordes tradicionales (Ctrl+T, Shift+I, etc.) están ambos soportados, pero el líder P siempre es necesario.

Acciones vinculables. El panel expone 22 acciones: alternancias de panel (UI, Inventory, Properties, Theme Editor, Motion Preview, Resize / Retime / Hue / Clipboard / Shifter / Emit Code / Settings / Randomize / Shortcuts), operaciones de edición (Transform Selection, Repair Selection, Delete Selection), alternancia del modo Animate, y operaciones de emisión (Toggle Enable, Toggle AutoEmit, Emit Now, Stop Emits). Cada acción tiene un ID único; el tiempo de ejecución resuelve una combinación de teclas a como mucho una acción.

Sin valores por defecto al instalar. Las instalaciones nuevas vienen con cero vinculaciones preconfiguradas — vinculas solo las acciones que quieres, y nunca aparecen atajos globales no deseados. Las vinculaciones persisten mediante la configuración del plugin de Studio, así que una vez configuradas sobreviven a las recargas del plugin y a los reinicios de Studio.

Manejo de conflictos + foco. Si vinculas una combinación de teclas que ya está en uso, la vinculación previa se reasigna automáticamente y se muestra una breve advertencia en esa fila. Mientras un TextBox tiene el foco (cuadro de búsqueda, campo de Properties, etc.) todos los atajos se suprimen para que las pulsaciones de teclas lleguen a la entrada. Mientras el panel Shortcuts está abierto, solo Toggle UI y Toggle Shortcuts pueden dispararse — así que tus pulsaciones de teclas mientras configuras no activan acciones no relacionadas.

El diálogo Customize Shortcuts de Studio no se usa. El plugin no registra instancias de PluginAction de Roblox para sus atajos — el diálogo no mostrará entradas para ellos. Esto es deliberado: el despacho de PluginAction de Studio se dispara sin prueba de que P estuviera mantenida, lo que saltaría la política del líder. Toda la configuración de atajos ocurre dentro del panel Shortcuts del plugin.

Etiqueta Cmd de Mac. La API de plugins de Roblox no expone detección del SO anfitrión, así que el panel etiqueta la tecla meta como “Win” por defecto. Los usuarios de Mac que prefieran “Cmd” pueden activar una opción desde la consola de desarrollador de Studio: plugin:SetSetting("DisplayCmdAsMeta", true). Reabre el panel Shortcuts; las etiquetas se actualizan en el siguiente montaje.

Barra lateral de arrastre y redimensionado (solo sitio de documentación)

Sección titulada «Barra lateral de arrastre y redimensionado (solo sitio de documentación)»

Si estás leyendo esto en el sitio de documentación, el chevron de navegación en el borde interior de cada panel lateral cumple una doble función: clic para colapsar el panel, arrastrar para redimensionar, shift+clic para restablecer el ancho predeterminado. El mismo patrón tanto en la navegación izquierda como en el TOC derecho. Persiste en localStorage.

Las ediciones multi-eje son atómicas por eje. Si seleccionas X y Z y editas, el motor escribe el nuevo gráfico en X y luego en Z por separado. No hay ninguna optimización de “ejes 1 y 3” — es lo mismo que editar cada eje una vez, simplemente agrupado en un solo clic. Deshacer restaura ambos ejes en un solo paso.

Las ediciones de un solo emisor no necesitan el portapapeles consciente de la selección. Si solo hay un emisor seleccionado, cada pegado del portapapeles simplemente aterriza tal cual — sin filtrado de propiedades compartidas. El filtrado solo se activa para selecciones múltiples.

El filtrado de búsqueda es por panel. Cada panel tiene su propio cuadro de búsqueda. La búsqueda del panel Properties no filtra la cuadrícula del Inventory, y viceversa.

Las cadenas de rango persisten como rangos numéricos. Incluso si escribiste 1..2, el atributo almacenado es NumberRange.new(1, 2). El plugin lo formatea de nuevo como 1, 2 la próxima vez que se renderiza el campo.

Las etiquetas de Position y Rotation se actualizan al deshacer. Cuando haces Ctrl+Z en un cambio a un campo Position o Rotation, la etiqueta en pantalla se actualiza al nuevo valor en el mismo fotograma — las versiones anteriores podían dejar la etiqueta mostrando el número antiguo después de deshacer hasta el siguiente cambio de selección.

Los selectores de instancias se llevan bien con la Selection de Studio. Abrir cualquier selector de instancia (EmitParent, AccelTarget, Link Dir., campos de Layer/selector en herramientas, etc.) limpia la Selection actual de Studio al abrirse y la restaura cuando haces Set, Clear o Cancel. Mientras un selector está abierto el panel Properties queda congelado para que un clic perdido en el Explorer no te cambie a un emisor diferente a mitad de selección.

Toggle Enable es un solo clic en selecciones mixtas. Seleccionar una mezcla de elementos Enabled y Disabled, y luego hacer clic en Toggle Enable, los pasa todos a un estado consistente en un solo clic — se acabó lo de “haz clic una vez para habilitar los deshabilitados, haz clic otra vez para deshabilitar todo”.

La herramienta Emit Code etiqueta su botón principal como “Select All”. Antes decía “Copy”, pero copiar ocurre con seleccionar-y-luego-Ctrl+C de todos modos; el botón ahora selecciona el fragmento generado para que puedas copiarlo con la pulsación de teclas habitual.

Ya has visto todas las superficies de autoría que el plugin expone de forma principal. La siguiente sección, Hidden Depths, cubre las funciones avanzadas que el plugin no muestra en el panel principal: anidamiento (emisores compuestos), edición nativa de ParticleEmitter / Trail estándar, anclaje de texturas y las matemáticas de GraphBlender detrás de la interpolación por estado de Beam.