Este tutorial es una introducción a los módulos de bloc de notas en Unreal Engine. Se basa en un único sistema de Niagara para explorar los fundamentos de esta función. El tutorial no se centra tanto en el resultado final como en aprender diferentes maneras de usar la función.
Alcance
Los módulos de bloc de notas son módulos locales de Niagara que puedes crear con grafos de secuenciación de comandos visual. Hay dos tipos de recurso compatibles con la creación de módulos de bloc de notas: los emisores de Niagara y los sistemas de Niagara. El ámbito de los módulos se limita al sistema o emisor en el que se crean, y no aparecen como recursos independientes en el explorador de contenido.
Módulo de bloc de notas basado en emisor
Si se crea un módulo de bloc de notas en un recurso de emisor de Niagara, se aplicará a todos los usos de ese emisor en cualquier sistema de Niagara al que se haya añadido. En el recurso de emisor NE_Example que aparece a continuación, el módulo ScratchModuleInEmitter aparece en la lista de módulos, y su entrada de pila se puede editar en el emisor.
Sin embargo, un módulo de bloc de notas creado en un emisor no puede ser usado por ningún otro sistema o recurso de emisor ni aparece en la lista de módulos de un sistema de Niagara. El siguiente ejemplo muestra el recurso de emisor NE_Example usado en el sistema de Niagara NS_Example. Al igual que otros módulos, el módulo de bloc de notas se bloquea (se puede desactivar, pero no eliminar) cuando el emisor se instancia en un sistema de Niagara.
Módulo de bloc de notas basado en sistema
Si el módulo de bloc de notas se crea en un recurso del sistema de Niagara, puedes usarlo en cualquier emisor de dicho sistema. Como ocurre con el resto de módulos de bloc de notas, no están disponibles para los emisores de otros sistemas de Niagara.
Script de módulo Niagara
Un módulo de bloc de notas se puede exportar como un recurso de secuencia de comandos de módulo de Niagara. Este proceso de exportación se detalla en la sección BLANK de este tutorial. Las secuencias de comandos de los módulos de Niagara son recursos completamente independientes que aparecen en el explorador de contenido y pueden usarse en cualquier emisor o sistema de Niagara de tu proyecto. Esto es similar a cómo los nodos de materiales pueden convertirse en funciones de materiales, que luego se usan en recursos materiales independientes a lo largo de un proyecto.
Primeros pasos
Para crear un módulo de bloc de notas, tendrás que trabajar con un recurso de emisor o sistema de Niagara. Este tutorial utiliza un sistema de Niagara sencillo generado en cuadrícula como base para trabajar con módulos de bloc de notas.
Crear un sistema de Niagara
Esta sección explica cómo crear un sistema de Niagara a los nuevos usuarios y a aquellos que quieren seguir este tutorial de principio a fin. Si ya has creado un sistema de Niagara, puedes usarlo para seguir el resto del tutorial.
Para crear un nuevo sistema de Niagara, sigue estos pasos:
En el explorador de contenido, haz clic con el botón derecho y, a continuación, haz clic en Sistema de Niagara.
En el menú Plantilla, selecciona Mínimo y, a continuación, haz clic en Crear.
Dale un nombre al nuevo sistema de Niagara (por ejemplo, NS_Minimal). Haz doble clic o pulsa Intro para abrir el recurso.
Por defecto, el sistema tendrá un nodo de sistema (azul) y un solo emisor Mínimo (naranja).
Generar partículas
Para que el emisor genere partículas, sigue estos pasos:
Dirígete al emisor Mínimo.
En la sección Actualización del emisor, haz clic en Añadir (+).
Busca y haz clic en la opción Generar partículas en cuadrícula.
Puedes añadir los módulos que más uses en la parte superior del menú Añadir nuevo módulo. Coloca el cursor sobre el nombre del módulo y haz clic en el icono de estrella (⭐). El icono pasará de ser un contorno a una estrella rellena. Cierra y vuelve a abrir el menú para ver tu módulo en la sección Sugerido. Para eliminarlo, haz clic de nuevo en el icono de estrella .
Corregir problema de dependencia
El nuevo módulo tendrá un punto rojo junto a su nombre, que indica un error. En este caso, el módulo Generar partículas en cuadrícula también necesita un módulo Ubicación de la cuadrícula para funcionar correctamente.
Para solucionar este problema, haz clic en el módulo. Revisa el problema en el panel Detalles y haz clic en Corregir problema.
Se añadirá un módulo Ubicación de la cuadrícula a la sección Generación de partículas del emisor. A continuación, se cumplirá la dependencia, y se eliminará el icono de error del módulo Generar partículas en cuadrícula.
Ajustes del emisor
Para configurar el emisor de este tutorial, sigue estos pasos:
En el emisor Mínimo, selecciona Generar partículas en cuadrícula.
En el panel Detalles, haz lo siguiente:
Establece Recuento X en 10.
Establece Recuento Y en 1.
Establece Recuento Z en 1.
Establece Tiempo de generación en 0.
En el emisor Mínimo, selecciona Inicializar partícula.
En el panel Detalles, establece lo siguiente:
Establece Modo de duración en Ajuste directo.
Establece Duración en 5.
Establece Modo de color en Ajuste directo.
Establece Color en 1, 0, 0.
Establece Modo de posición en Posición de simulación.
Establece Compensación de posición en 0, 0, 0.
Establece Modo de masa en Sin definir/(masa de 1).
Establece Modo de tamaño de sprite en Uniforme.
Establece Tamaño de sprite uniforme en 10.
Establece Modo de rotación de sprite en Sin definir.
Establece Modo UV de sprite en Sin definir.
Establece el resto de atributos de malla y cinta en Sin definir.
En este ejemplo, el módulo Ubicación de la cuadrícula se queda con sus valores por defecto.
Crear un módulo de bloc de notas
En el emisor Mínimo, haz clic en Añadir (+) junto al encabezado Generación de partículas. Busca y selecciona la opción Nuevo módulo de bloc de notas.
El grafo del módulo de borrador se abre automáticamente como una pestaña junto a la pestaña original Presentación del sistema. Aparece la pestaña Módulos locales debajo de la ventana Vista previa, junto a las pestañas Parámetros y Parámetros de usuario.
Cambia el nombre del módulo de borrador por otro que sea descriptivo (por ejemplo, ApplyOffset).
Aunque los nombres de los módulos aparecerán como una sola palabra (ApplyOffset) en la lista de módulos, se muestran con espacios en función de las mayúsculas y minúsculas (Aplicar compensación) en los menús de búsqueda y para las entradas de pilas.
En el grafo Presentación del sistema, el módulo Aplicar compensación aparece como un módulo en el emisor Mínimo. El nuevo módulo de borrador también aparecerá en los menús de búsqueda y se etiquetará como elemento de bloc de notas (en lugar de Niagara).
Navegación
Para abrir el grafo del módulo de bloc de notas, puedes realizar una de estas acciones:
Haz clic en la pestaña del módulo de borrador, situada junto a la pestaña Presentación del sistema.
Selecciona el módulo borrador en el emisor y haz clic en el botón del bloc de notas en el panel Detalles.
Haz doble clic en la entrada de pila del módulo de borrador en el emisor.
Haz doble clic en el módulo de borrador en la lista Módulos locales > Módulos.
Flujo de datos
Al igual que otros grafos de Unreal Engine, los datos de un módulo fluyen de izquierda a derecha. Los datos empiezan en el nodo rojo del mapa de entrada, pasan por la línea blanca del mapa de parámetros de Niagara y acaban en el nodo verde del módulo de salida.
Puedes usar nodos Mapa de obtención para extraer datos de esta línea del mapa de parámetros de Niagara y usar nodos Mapa de establecimiento para establecer datos en ella.
Añadir compensación de ubicación
A continuación, añade alguna función al módulo de bloc de notas, empezando por una compensación de ubicación.
Obtener atributo de posición a partir de partículas
En el nodo Mapa de obtención, haz clic en el pin Añadir +, y busca y haz clic en el parámetro Posición de PARTICLES. Consta de datos almacenados en cada partícula individual.
Estos parámetros se escriben como una sola palabra, con un punto entre el espacio de nombres y el nombre ( NAMESPACE.Name). Si accedes a parámetros (especialmente a parámetros de usuario) mediante código o blueprints, usa la versión con el punto, no con espacios.
Añadir un vector de entrada
En el nodo Mapa de obtención, haz clic en el pin Añadir (+), y busca y haz clic en la opción Vector (INPUT.Vector).
Espacios de nombres de datos
El texto que hay dentro de los bloques de colores en los nombres de los parámetros indica de qué espacio de nombres proceden los datos.
La palabra Posición proviene del espacio de nombres PARTICLES, lo que significa que los datos se almacenan en las partículas. Estos datos son persistentes de fotograma a fotograma mientras dura la partícula.
El espacio de nombres INPUT, usado para el vector, indica que los datos provienen del módulo, que un usuario puede modificar directamente.
Calcular la compensación de ubicación
Arrastra desde el pin PARTICLES.Position, y busca y haz clic en el nodo Añadir.
Por defecto, las entradas del nodo Añadir serán de color azul oscuro, lo cual muestra que es un tipo de comodín llamado Numérico de Niagara. Acepta posiciones, vectores, floats y enteros. Cuando se conectan a otros nodos con tipos específicos, el pin y el cable de conexión cambian para reflejar el tipo de datos usado en esos pines.
Arrastra desde el pin INPUT.Vector hasta el segundo pin del nodo Añadir. Cambiará a amarillo para indicar que es de tipo vectorial.
Actualizar datos
Después de añadir la cantidad de compensación (INPUT.Vector) a PARTICLES.Position, los datos de partículas deben actualizarse mediante un nodo Mapa de establecimiento.
En el nodo Mapa de establecimiento existente, haz clic en el pin Añadir (+), y busca y haz clic en PARTICLES.Position.
Conecta la salida del nodo Añadir al pin Posición de PARTICLES del nodo Mapa de establecimiento. Esto actualizará (sobrescribirá) el valor de PARTICLES.Position (al que se accede desde el nodo Mapa de obtención) con el nuevo valor.
Aplicar cambios al grafo
Haz clic en el botón Aplicar o en Aplicar y guardar para confirmar los cambios del grafo al módulo de borrador y sus entradas de pila en el sistema de Niagara.
En el grafo Presentación del sistema, selecciona la entrada Aplicar compensación de la pila de módulos de borrador en el emisor Mínimo. La entrada Vector creada en los pasos anteriores ahora es una entrada de módulo válida.
Para probar la función del módulo, introduce un valor en la entrada Vector y observa cómo cambia la salida visual del sistema en el visor del sistema de Niagara. En este ejemplo, cambiar el valor Z de 0 a 200 mueve las partículas rojas 200 unidades (centímetros) hacia arriba.
Contexto del módulo
Puedes configurar módulos para que sean visibles y utilizables solo en contextos de emisor específicos.
Establecer máscara de bits de uso del módulo
En el grafo del módulo Aplicar compensación, haz clic en cualquier parte del fondo del grafo. Esto abre los ajustes del módulo en el panel Detalles. El primer ajuste de la lista es Máscara de bits de uso del módulo, que define dónde se puede crear y mover el módulo. Haz clic en el menú desplegable para comprobar, buscar y establecer las distintas opciones de contexto.
Los siguientes contextos están disponibles:
Función
Módulo (activado por defecto)
Entrada dinámica
Secuencia de comandos de generación de partículas (activado por defecto)
Secuencia de comandos de actualización de partículas (activado por defecto)
Secuencia de comandos de evento de partículas (activado por defecto)
Secuencia de comandos de fase de simulación de partículas (activado por defecto)
Secuencia de comandos de generación de emisor
Secuencia de comandos de actualización de emisor
Secuencia de comandos de generación del sistema
Secuencia de comandos de actualización del sistema
Puedes limitar dónde y cómo se puede usar el módulo si marcas o desmarcas los diferentes elementos del menú desplegable.
Para probar esto, desactiva la opción Secuencia de comandos de actualización de partículas y pulsa el botón Aplicar.
Dirígete a la vista de grafo Presentación del sistema e intenta arrastrar la entrada de pila del módulo Aplicar compensación a la sección Actualización de partícula. La línea azul brillante no aparecerá entre las entradas del emisor, pero se mostrará una burbuja informativa con la advertencia «El módulo no se puede mover a esta sección de la pila porque no es válido para este contexto de uso».
Además, esta limitación de contexto se aplica a los resultados de búsqueda de esa sección restringida. En este caso, el módulo Aplicar compensación no aparece en la búsqueda de la sección Actualización de partícula.
El módulo Aplicar compensación seguirá estando disponible en los resultados de búsqueda de Generación de partículas.
Activa el contexto de la secuencia de comandos de actualización de partículas para continuar con este tutorial.
Generación de partículas y Actualización de partícula
Los módulos ubicados en la sección Generación de partículas del emisor solo se ejecutan cuando se crea (se genera) la partícula.
Los módulos ubicados en la sección Actualización de partícula del emisor se ejecutan cada tic.
Como demostración, arrastra la entrada de pila Aplicar compensación desde Generación de partículas hasta un punto de la sección Actualización de partícula. Cambia el valor Z de la entrada Vector a 1. En el visor, los puntos rojos se moverán hacia arriba, ya que la compensación de 1 cm se aplica a las partículas con cada tic.
Cuando hayas terminado, arrastra de nuevo a la sección Generación de partículas para seguir con el tutorial.
Compensación de rotación
Hay varias formas de permitir que el usuario (en este caso, un artista VFX) rote la compensación alrededor de un eje. En esta sección, añadirás rotación dentro del módulo. Más adelante en este tutorial, aprenderás a aprovechar las entradas dinámicas para los datos introducidos por los usuarios.
Añadir nodo
Haz clic con el botón derecho en el fondo del grafo, busca «rotación» y, a continuación, haz clic en XYZRotationToQuaternion.
Crear entradas
El siguiente paso es crear entradas a las que el usuario pueda acceder y donde pueda introducir valores. La forma más sencilla es arrastrar una línea desde el pin deseado (en este ejemplo, x, Y y Z) hasta el icono Añadir (+) en el nodo Mapa de obtención. Esto crea un parámetro de entrada correspondiente con el mismo nombre y el tipo correcto. Haz lo mismo para los tres valores float (pines verdes, XYZ) en el nodo Rotación a cuaternión.
Calcular compensación de rotación
Arrastra desde el pin INPUT.Vector de Mapa de obtención, y busca y haz clic en el nodo Multiplicar vector con cuaternión. Arrastra el pin de salida del nodo XYZRotation a cuaternión hasta el pin de entrada de Cuaternión en el nodo Multiplicar vector con cuaternión.
Conecta el pin de salida del nodo Multiplicar vector con cuaternión al segundo pin del nodo Añadir. Reemplaza el valor simple de INPUT.Vector con el nuevo valor multiplicado de Vector y Cuaternión.
Aplicar cambios de compensación de rotación
Haz clic en Aplicar y guardar y abre el grafo Presentación del sistema.
Selecciona la entrada de pila Aplicar compensación (ubicada en la sección Actualización de partícula del emisor) y establece el valor Y en 30. Esto hace que las partículas rojas se muevan hacia arriba y hacia la derecha.
Pestañas de parámetros
Hay dos pestañas debajo del visor de un sistema de Niagara con diferentes datos y opciones de interacción.
Parámetros
La pestaña Parámetros enumera todos los parámetros incluidos en un sistema de Niagara. Entre estos aspectos se incluyen:
Atributos de sistema (como SYSTEM.Age, SYSTEM.LoopCount)
Atributos de emisor (como EMITTER.Age, EMITTER.DistanceTraveled)
Atributos de partículas (como PARTICLES.Position, PARTICLES.SpriteSize)
Salidas del módulo (por ejemplo, OUTPUT.GRIDLOCATION.GridSpacing, OUTPUT.PARTICLESTATE.FirstFrame)
Motor proporcionado (como ENGINE.DeltaTime, ENGINE.EMITTER.NumParticles, ENGINE.OWNER.Velocity)
Valores transitorios de la fase (como TRANSIENT.FirstFrame, TRANSIENT.ScalabilityExecutionState)
También hay títulos en esta pestaña que estarán vacíos por defecto:
Usuario expuesto (igual que en la pestaña Parámetros de usuario)
Sensible al contexto de pila
Colección de parámetros de Niagara
Parámetros de usuario
La pestaña Parámetros de usuario enumera todos los parámetros de usuario creados en un sistema de Niagara. Está vacía por defecto. Los parámetros de usuario aquí son los mismos que en la sección Usuario expuesto de la pestaña Parámetros.
Cambios y nuevos nombres dependientes de la vista
Cuando estés visualizando el grafo de un módulo específico, como en el caso de Aplicar compensación, la lista Parámetros se filtrará según las entradas que tengas disponibles en ese momento.
En estas pestañas, puedes cambiar el nombre de tus entradas (por ejemplo, INPUT.RotationAngleX). Al igual que con otras partes de Unreal Engine, haz clic dos veces en el nombre de la entrada o pulsa F2.
Al hacer clic en Aplicar y guardar, los nuevos nombres se muestran en la entrada de pila del módulo.
Herramienta Editar jerarquía
En la ventana Editar jerarquía, puedes ordenar las entradas, añadir burbujas informativas y gestionar dependencias.
Para acceder a la interfaz Editar jerarquía, abre el módulo de bloc de notas que quieras editar (en este caso, el módulo Aplicar compensación).
En la pestaña Parámetros, haz clic en Editar jerarquías de entrada.
Esto abre la ventana Editar jerarquía.
En la columna de la izquierda, arrastra las entradas relevantes hasta la columna del centro, donde aparece el resaltado azul.
Arrastra las entradas en la columna central para reordenarlas.
Valores predeterminados
Al igual que en el panel Detalles, puedes acceder a los ajustes de las variables y los valores por defecto del elemento.
Modo por defecto: entre las opciones disponibles están Vinculación, Personalizado, Error si no se define antes y el valor por defecto.
Valor por defecto: basado en el tipo, como float o vector.
Burbuja informativa (y opciones de localización): añade detalles de implementación útiles, unidades, advertencias u otras notas que sean valiosas para los usuarios.
Unidad de visualización: las opciones disponibles son Centímetros, Lúmenes, Horas, Gigabytes, Gramos, Grados y la opción por defecto, Sin especificar.
Visualización avanzada: por defecto, False.
Mostrar en la pila de presentación: por defecto, False.
Prioridad de orden de los parámetros en línea: por defecto, Desactivado.
Editar condición y condición visible (nombre de entrada y valores objetivo): por defecto, ninguno y 0 elementos.
Metadatos de propiedad: por defecto, 0 elementos.
Atajos alternativos para la variable: por defecto, 0 elementos.
Tipo de widget: por defecto.
Valor mínimo: por defecto, 0.
Valor máximo: por defecto, 1.
Anchura de paso: por defecto, 1.
Transmisión de cambio de valor solo al confirmar: False (se establece como True si solo quieres que los valores se actualicen al confirmar, no al escribir).
Burbujas informativas
Añade texto en el campo Burbuja informativa de la entrada Ángulo de rotación X y haz clic en Aplicar o Aplicar y guardar.
A continuación, ve al grafo Presentación del sistema, selecciona el módulo Aplicar compensación y coloca el cursor sobre la opción Ángulo de rotación X en el panel Detalles. Tu burbuja informativa será la primera línea de la ventana emergente, seguida del nombre y el tipo de información de la entrada sobre la que estás moviendo el cursor.
Unidad de visualización
En la ventana Editar jerarquía (o en el panel Detalles), cambia la unidad de visualización del valor. Selecciona la entrada Ángulo de rotación X y cambia la unidad de visualización de Sin especificar a Grados.
Después, cambia la unidad de visualización de la entrada de Vector a Centímetros.
Parámetros locales
Al crear módulos complejos, puedes aprovechar los parámetros locales para que el grafo del módulo esté organizado y sea fácil de leer. Separar el grafo por medio de operaciones es un método común y generalmente recomendado.
Los parámetros locales solo existen en el módulo y no son persistentes de un fotograma a otro. Suelen usarse para almacenar valores temporales dentro de un grafo.
Dividir entradas entre diferentes mapas de obtención y mapas de establecimiento
Haz clic derecho en el pin PARTICLES.Position del mapa de obtención y haz clic en Eliminar. Desconecta el nodo (Alt + clic).
Cerca del nodo Multiplicar vector con cuaternión, añade un nodo Mapa de establecimiento (que aparece como Mapa de establecimiento de parámetros en el menú contextual). Conéctalo a la línea del mapa de parámetros de Niagara, entre el nodo Entrada y el nodo Mapa de establecimiento.
Arrastra el pin de salida Multiplicar vector con cuaternión hasta el icono Añadir (+) en Mapa de establecimiento. Esto crea un parámetro local con el mismo nombre y tipo que el pin del que lo extrajiste. En este caso, crea un LOCAL.Vector. Dale un nombre más descriptivo (por ejemplo, LOCAL.Offset).
En la parte derecha del nodo Mapa de establecimiento, arrastra desde el pin blanco Dest, y busca y haz clic en la opción Mapa de obtención.
Haz clic en Añadir (+), y busca y selecciona el LOCAL.Offset creado en el paso anterior.
Ya puedes usar ese valor de compensación almacenado en la caché en otra sección organizada del grafo.
Romper y reorganizar
Al reorganizar o añadir nodos en cualquier grafo de Unreal Engine, puede que debas desconectar los cables que conectan nodos específicos. Usa Alt + clic izquierdo en un pin o un cable para desconectarlo.
Para agarrar y mover una conexión de pin, mantén pulsado Ctrl + clic izquierdo y coge el cable. Libera sobre un pin válido. La conexión se eliminará si liberas espacio vacío del grafo.
Para eliminar, cambiar el nombre, reordenar o realizar otras acciones en un pin, haz clic con el botón derecho, abre un menú y, a continuación, haz clic en la acción deseada.
Espacio de transformación y compensación de posición
Hay tres tipos distintos de espacios de transformación:
Simulación: los cálculos se realizan en cualquier contexto (local o del mundo) que se establezca en la sección Propiedades del emisor, donde Espacio local se establece como true o false.
Mundo: los cálculos se realizan en el contexto de los valores del mundo.
Local: los cálculos se realizan en el contexto del propio sistema, independientemente de en qué parte del mundo te encuentres.
Espacio de transformación establecido por el usuario
En este ejemplo, vamos a dar al usuario la opción de elegir qué espacio de transformación desea usar en el módulo.
Crea un nodo Transformar vector. Arrastra el pin de compensación de Mapa de obtención hasta el pin InVector del nodo Transformar vector.
Para que el usuario pueda establecer el Espacio fuente como entrada, arrastra el pin Transformar Espacio fuente de Transformar vector hasta el icono Añadir (+) del nodo Mapa de obtención. Esto crea una entrada con el mismo nombre y tipo.
Añade otro nodo Mapa de establecimiento y conéctalo entre el conjunto de mapas anterior y el conjunto de mapas final. Crea una entrada LOCAL.Offset en el nodo Mapa de establecimiento y arrástrala al pin OutVector de Transformar vector.
Volver a implementar la compensación de posición
En el nuevo nodo Mapa de establecimiento, crea un nodo Mapa de obtención y haz clic en el botón Añadir (+) para acceder a la variable LOCAL.Offset.
A continuación, haz clic en el botón Añadir (+) para acceder al parámetro PARTICLES.Position.
Añade LOCAL.Offset a PARTICLES.Position con el nodo Añadir.
Si quieres cambiar el orden de los elementos de un nodo, haz clic con el botón derecho en uno de los elementos y, a continuación, en Subir pin.
Conecta el nodo Añadir al nodo Mapa de establecimiento usando el pin PARTICLES.Position, y arrastra Dest hasta el módulo de salida final.
Aplicar cambios
Haz clic en Aplicar o Aplicar y guardar, y abre el grafo Presentación del sistema. Selecciona el emisor Mínimo y luego selecciona la entrada de pila Aplicar compensación. En el panel Detalles, ahora hay una opción de entrada Espacio fuente.
Añadir comentarios
Los comentarios agrupan visualmente los nodos y, a menudo, incluyen texto para describir esa parte del grafo o cualquier otra nota pertinente a esa sección. Al igual que con el código de texto, se recomienda dejar comentarios en todo el trabajo. Los comentarios facilitan que otros desarrolladores entiendan tus decisiones.
Abre el grafo Módulo de borrador. Selecciona los nodos del grafo y pulsa la tecla C para crear un comentario. Dale un nombre descriptivo (por ejemplo, Vector de compensación inicial).
Con el cuadro de comentarios seleccionado, el panel Detalles muestra los ajustes disponibles: Color, Tamaño de fuente, Mostrar burbuja al acercar, Color de burbuja, Modo de movimiento y el campo Detalles.
Los comentarios proporcionan información visual y textual sobre lo que ocurre en cada sección del grafo. Algunos comentarios sobre este grafo de ejemplo podrían ser: Vector de compensación inicial, Transformar en espacio y Establecer posición. Aquí, cada cuadro de comentario incluye el nodo Mapa de obtención inicial y el nodo Mapa de establecimiento siguiente, donde el nodo Mapa de obtención siguiente inicia la próxima sección.
Salidas del módulo
Las salidas del módulo pueden proporcionar datos adicionales al usuario sin tener que rellenar los datos de partículas. Dado que las entradas de la pila del emisor se ejecutan de arriba a abajo, los datos de salidas del módulo solo están disponibles para las entradas de la pila que se encuentran debajo. Conocer las salidas y otros parámetros escritos en ellas puede ser útil para descifrar cómo trabajar con los datos de tu sistema de partículas.
Mostrar escrituras de parámetros
Selecciona cualquier módulo del emisor Mínimo. En el panel Detalles, selecciona el icono de engranaje (⚙️) y activa Mostrar escrituras de parámetro. La sección Escrituras de parámetros está oculta por defecto. Haz clic en la flecha (🔽) para expandir la lista y ver todas las salidas a las que escribe la entrada de pila.
En la entrada de pila del módulo de bloc de notas Aplicar compensación que aparece a continuación, la sección Escrituras de parámetros solo incluye PARTICLES.Position.
Usar salidas de módulo
Selecciona la entrada de pila del módulo Ubicación de cuadrícula y expande la sección Escrituras de parámetros. Escribe en PARTICLES.Position, así como en otros parámetros de OUTPUT.
Como ejemplo, usaremos OUTPUT.GRIDLOCATION.GridUVW para cambiar el color de las partículas.
Para demostrarlo, abre la entrada de pila Generar partículas en cuadrícula y cambia los valores X, Y y Z a 10. Verás un grupo de partículas en forma de cubo, en lugar de una línea.
Después, en la sección Generación de partículas del emisor, haz clic en el botón Añadir (+) para crear un módulo Color.
En el menú desplegable que hay junto a la muestra de color , busca y haz clic en Crear color lineal desde vector y Float.
En el menú desplegable que hay junto al nuevo campo Vector (RGB), busca y haz clic en OUTPUT.GRIDLOCATION.GridUVW.
Ahora, los valores RGB están determinados por la información de OUTPUT.GRIDLOCATION.GridUVW.
Crear salidas de módulo
Abre el grafo del módulo de bloc de notas Aplicar compensación. En la sección de comentarios de Establecer posición (el último mapa de obtención y mapa de establecimiento), arrastra el pin LOCAL.Offset de Mapa de obtención hasta el pin Añadir (+) del nodo Mapa de establecimiento.
Haz doble clic en un cable de conexión para crear un nodo de redirección. A continuación,, muévelo según sea necesario para reducir el solapamiento y aumentar la visibilidad en el grafo. También puedes crear manualmente nodos de redirección a través del menú contextual del grafo.
Haz clic derecho en el nuevo pin LOCAL.Offset del nodo Mapa de establecimiento. Haz clic en Cambiar espacio de nombres > OUTPUT.
Esto cambia el espacio de nombres LOCAL a OUTPUT. También añade un modificador de espacio de nombres (por ejemplo, MODULE) y añade el nombre del módulo (Aplicar compensación). El resultado es OUTPUT.MODULE.Offset en el nodo Mapa de establecimiento.
Haz clic en Aplicar y abre el grafo Presentación del sistema. Selecciona la entrada de pila Aplicar compensación del emisor Mínimo y expande la sección Escrituras de parámetros en el panel Detalles. El parámetro OUTPUT.APPLYOFFSET.Offset se mostrará en la lista y estará disponible para que lo use cualquier entrada de pila de módulos que haya debajo.
Establecer parámetro directamente
Por ejemplo, vamos a consultar la compensación. Haz clic en el botón Añadir (+) para crear una entrada de pila Establecer parámetros debajo de la entrada de pila Aplicar compensación. Este módulo como Establecer parámetro nuevo o existente directamente en el menú de búsqueda.
En el panel Detalles, haz clic en el botón Añadir (+) para crear un elemento de vector (PARTICLES.Vector) en la lista.
En la nueva entrada, haz clic en la flecha para abrir el menú de tipos, y busca y haz clic en OUTPUT.APPLYOFFSET.Offset.
Entradas del módulo dinámico
Al escribir la secuencia de comandos de un módulo, hay varias opciones para configurar la funcionalidad. Hay muchas entradas dinámicas disponibles, que ofrecen al usuario más opciones y potencia cuando se implementan.
Por ejemplo, puedes modificar el cuaternión en el módulo Aplicar compensación. Abre el grafo Aplicar compensación y dirígete al primer mapa de obtención del grafo (el que tiene las entradas x, Y y Z independientes conectadas al nodo Cuaternión).
Manejar el cuaternión de esta manera tiene algunas limitaciones. El ángulo de rotación se expone por separado como X, Y y Z, y se asume que el tipo de ángulo está en grados. Estas son las únicas opciones disponibles para el usuario.
Sería más eficaz para el usuario exponer el cuaternión como una entrada y, luego, dejar que las entradas dinámicas preexistentes hagan el trabajo por él. En este caso, puedes usar el cuaternión directamente, en lugar de los ángulos de rotación del primer Mapa de obtención.
Configurar entradas dinámicas
Haz clic con el botón derecho y elimina cada uno de los pines X, Y y Z del primer nodo Mapa de obtención. Además, elimina el nodo XYZRotation a cuaternión.
En Mapa de obtención, haz clic en el pin Añadir (+) para buscar y, a continuación, haz clic en INPUT.Quaternion (cuaternión). Dale un nombre descriptivo (por ejemplo, INPUT.RotationQuaternion). Arrastra ese pin hasta el pin Cuaternión del nodo Multiplicar vector con cuaternión.
Haz clic en Aplicar y abre el grafo Presentación del sistema. Ahora, el cuaternión de rotación está disponible en el panel Detalles del módulo Aplicar compensación. También se han eliminado las opciones x, y, z independientes.
Usar entradas dinámicas
En la entrada de pila Aplicar compensación del emisor, abre el menú desplegable del elemento Cuaternión de rotación, y busca y haz clic en Crear cuaternión.
Ahora un usuario puede elegir cualquiera de las opciones predefinidas por la entrada dinámica. Pueden cambiar el tipo de ángulo, seleccionar Rotaciones XYZ como el cuaternión de origen y especificar un espacio de coordenadas diferente. Todas estas son opciones integradas que proporciona Niagara.
Consideraciones
Al decidir cómo crear y presentar los módulos, pregúntate qué te resultará más fácil de gestionar y qué será más eficaz o utilizable para el usuario. Intenta encontrar un equilibrio entre lo que es flexible para el usuario final sin ser demasiado abierto.
En este caso, el inconveniente es que un cuaternión de rotación puede resultar algo esotérico o poco claro para el usuario.
Para solucionar estos posibles obstáculos, añade burbujas informativas a tus entradas. Selecciona la entrada en la lista Parámetros e introduce una burbuja informativa en el campo Burbuja informativa del panel Detalles. Para esta entrada, puedes escribir algo como «Usar entrada Crear cuaternión dinámico». Esto le indica al usuario cuál es el próximo paso.
Haz clic en Aplicar. Abre el grafo Presentación del sistema, selecciona el módulo Aplicar compensación y coloca el cursor sobre el elemento Cuaternión de rotación en el panel Detalles. El texto personalizado aparecerá en la primera línea de la burbuja informativa.
Notas del módulo
Todos los módulos, incluidos los módulos de bloc de notas, tienen un campo Nota disponible. Estas notas sobre el uso del módulo aparecen en la parte superior del panel Detalles cuando se selecciona la entrada de pila de un módulo en un emisor. Aquí puedes poner información sobre cómo funciona el módulo, incluidas peculiaridades sobre su uso o notas sobre las dependencias.
Añadir notas del módulo
Para buscar y editar esta opción, haz clic en el fondo del grafo y anula la selección de los nodos. Esto rellena el panel Detalles con información sobre el módulo en su conjunto, en lugar de sobre una parte específica. Introduce información sobre el módulo en el campo Mensaje de nota.
En el caso del módulo de borrador Aplicar compensación, podría servir la burbuja informativa: «Este módulo aplica una compensación a la posición de la partícula. Usa la entrada dinámica Crear cuaternión como una utilidad para proporcionar el cuaternión».
Ver notas del módulo
Haz clic en Aplicar y abre el grafo Presentación del sistema. Selecciona la entrada de pila del módulo de borrador Aplicar compensación; la nota de uso del módulo estará en la parte superior del panel Detalles.
Ignorar y mostrar notas
Las notas (y otras notas o advertencias) en la parte superior del panel Detalles se pueden ocultar haciendo clic en Ignorar.
Las notas se pueden volver a mostrar haciendo clic en el icono de engranaje (⚙️) en la parte superior del módulo, así como enNo ignorar todos los problemas de la pila.
Cuando se ignora en una entrada de pila, la sección Notas aparecerá en las nuevas entradas de la pila del mismo tipo de módulo.
Cómo gestionar parámetros
Todos los parámetros y entradas se enumeran en la pestaña Parámetros.
La lista podría incluir parámetros y entradas que ya no se usan en tu módulo.
Estadísticas de uso de parámetros
La forma más sencilla de identificar qué parámetros y entradas deben limpiarse es comprobar el campo a la derecha de cada entrada. Muestra las referencias de las lecturas y escrituras de cada entrada. En este caso, los tres parámetros INPUT.RotationAngle (X, Y y Z) no están en uso, ya que todas esas entradas aparecen con 0 lecturas y 0 escrituras (0|0).
Eliminar parámetros sin usar
Aunque se eliminen los usos en el grafo de un módulo, los parámetros permanecerán en la lista Parámetros. Debes eliminarlos manualmente cuando ya no los necesites.
Para eliminar parámetros no usados como estos, selecciónalos en la lista de parámetros y pulsa la tecla Eliminar o haz clic con el botón derecho en el parámetro y haz clic en Eliminar.
Interfaces de datos
Estos tipos de datos especiales toman información del editor general y la pasan a Niagara, de modo que puedas usarla para dirigir partículas o influir en tu simulación.
Acceder a interfaces de datos
Para acceder a las interfaces de datos, abre tu grafo de módulo de borrador. En un nodo Mapa de obtención, haz clic en el pin Añadir (+) para abrir el menú desplegable Crear nuevo. Haz clic en Interfaz de datos para mostrar una lista de opciones.
La mayoría de estas interfaces de datos ya tienen módulos escritos para ellas en el motor. A veces, puede que quieras añadir esa función directamente a tu módulo de borrador.
Trabajar con interfaces de datos
En este ejemplo, crea un espacio entre las secciones Transformar en espacio y Establecer posición del grafo.
Añade un nodo Mapa de establecimiento antes de la sección Establecer posición y redirige los pines. Conecta el mapa de establecimiento de Transformar en espacio al nuevo nodo Mapa de establecimiento y arrastra el pin Dest del mapa de establecimiento al Mapa de obtención en Establecer posición y al siguiente Mapa de establecimiento.
Crea un nodo Mapa de obtención y añade una entrada INPUT.CameraQuery.
Arrastra el pin INPUT.CameraQuery hasta un espacio vacío del grafo para abrir el menú Filtrado por fuente. La primera entrada es específica de la interfaz de datos seleccionada y, al expandirse, enumera todos los métodos disponibles en esa interfaz de datos.
En este ejemplo, haz clic en Obtener propiedades de cámara CPU/GPU. Proporciona la posición de la cámara, el vector hacia delante, el vector hacia arriba y el vector hacia la derecha (todos en el contexto del mundo). Puedes usar estos datos para aplicar una compensación que acerque o aleje la cámara.
Añade INPUT.Float al mapa de obtención y dale un nombre descriptivo (por ejemplo, CameraOffsetScale).
Usa un nodo de multiplicación para multiplicar el mundo de vector de avance por el nuevo float INPUT.CameraOffsetScale .
Añade LOCAL.Offset al nodo Mapa de obtención. Añádelo al resultado del nodo de multiplicación.
En el nodo Mapa de establecimiento de esta nueva sección, añade LOCAL.Offset. Después, conecta el resultado del nodo Añadir a ese pin LOCAL.Offset.
Usar la interfaz de datos
Haz clic en Aplicar y abre el grafo Presentación del sistema. Selecciona la entrada de pila Aplicar compensación del módulo de borrador. El panel Detalles ahora incluye una sección Consulta de cámara con más opciones para el usuario, como la entrada de float Escala de compensación de cámara.
Cambia la escala de la compensación de cámara a -200 para ver la compensación en acción.
Ocultar campos
Como autor del módulo, puedes ocultar campos que no esperas o que no quieres que el usuario cambie.
En este ejemplo, puedes esperar que el usuario no necesite editar los campos Índice del controlador de jugador o Requerir datos del fotograma actual. Por lo tanto, puedes ocultar estas opciones.
Abre el grafo del módulo de bloc de notas Aplicar compensación. En el panel Detalles (o en la vista Editar jerarquía), activa la opción Visualización avanzada. Determina si esta entrada debe ser visible si el usuario ha expandido la sección Avanzado.
En el grafo Presentación del sistema, selecciona la entrada de pila Aplicar compensación. En el panel Detalles, la información adicional de la interfaz de datos ahora está oculta en la sección Opciones avanzadas. La información se puede consultar en la sección Avanzado del panel. Haz clic en el botón de flecha para expandir esta sección y haz clic de nuevo para ocultarla.
Esta configuración permite a los usuarios más avanzados cambiar estos ajustes como si estuvieran trabajando con un juego en pantalla dividida y quisieran establecer manualmente la cámara, pero a la mayoría de los usuarios no les hará falta cambiar esos ajustes.
Puedes usar la interfaz Editar jerarquía para que la entrada Escala de compensación de cámara esté disponible en el panel Detalles, aunque tu consulta de cámara esté establecida en la sección Avanzado.
En el grafo del módulo de bloc de notas, abre la pestaña Parámetros y, a continuación, el panel Editar jerarquías. Arrastra INPUT.CameraOffsetScale desde la columna de la izquierda hasta la columna del centro para cambiar el orden.
Haz clic en Aplicar. En el grafo Presentación del sistema, selecciona la entrada de pila del módulo Aplicar compensación. En el panel Detalles, la entrada Escala de compensación de cámara se incluirá en la lista principal de entradas, aunque el panel Avanzado esté oculto.
Parámetros de usuario
Los parámetros de usuario permiten cambiar los ajustes de Niagara sin tener que abrir y editar repetidamente el sistema de Niagara o el grafo del módulo. Cuando se añade un sistema de Niagara a un nivel, los parámetros de usuario están disponibles en el panel Detalles del recurso. Esto puede acelerar los procesos de trabajo, ya que los usuarios pueden ajustar esos parámetros directamente en el contexto de la escena.
Hay un coste asociado a los parámetros de usuario. Cada vez que se ajusta un parámetro de usuario, los parámetros se aplican al contexto de ejecución correspondiente y se actualizan todos los parámetros de ese mismo contexto:
Generación de sistemas y emisores
Actualización de sistemas y emisores
Generación de partículas y actualizaciones de partícula (por emisor)
Etapas de la simulación
Por lo general, se desaconseja usar una interfaz de datos como parámetro de usuario por cuestiones de rendimiento. El motor hace una copia de la interfaz de datos por instancia y, como son UObjects, se recogen como basura. El principal coste de una interfaz de datos se registra al crear una instancia. Una vez creada, tiene la misma sobrecarga que si estuviera en cualquier otro lugar de la pila.
Ascender entrada de módulo
Las entradas del módulo se pueden convertir en parámetros de usuario. Para ascender una entrada de módulo, sigue estos pasos:
En el emisor Mínimo del grafo Presentación del sistema, selecciona la entrada de pila Aplicar compensación.
Haz clic en el desplegable Entrada dinámica que hay junto a la entrada Escala de compensación de cámara.
Busca y haz clic en el parámetro Lectura desde nuevo usuario.
Se crea un nuevo parámetro de usuario con el mismo nombre y valor que el campo del panel Detalles. El nombre en pantalla de este parámetro es Escala de compensación de cámara del usuario. Si quieres acceder a este u otros parámetros de usuario en código o blueprints, debes formatearlo como USER.CameraOffsetScale o User.CameraOffsetScale.
Editar parámetros de usuario
La pestaña Parámetros muestra los parámetros de usuario, pero no se pueden editar en esa interfaz. La pestaña Parámetros del usuario proporciona un campo para editar valores. Para este tutorial, cambia Escala de compensación de cámara del usuario de nuevo a 0.
Usar parámetros del usuario
Abre un nivel y arrastra el sistema de Niagara (en este ejemplo, NS_Minimal) a la escena. Selecciona el sistema de Niagara en el esquematizador. En el panel Detalles, expande la sección Parámetros del usuario. El parámetro del usuario Escala de compensación de cámara se incluye en la lista. Esto significa que un usuario puede establecer estos parámetros de forma interactiva, en el contexto del mundo, en lugar de en el visor de Niagara.
Interruptores estáticos
Los interruptores estáticos controlan el flujo de la secuencia de comandos. Son útiles cuando quieres compilar ciertas partes del grafo fuera del módulo, excepto en algunas circunstancias.
Implementar interruptores estáticos
En este ejemplo, cambia el parámetro USER.CameraOffsetScale. Podría ser algo que un usuario final utilizaría en contadas ocasiones, por lo que el código no tendría que estar disponible en el emisor la mayor parte del tiempo.
Abre el grafo del módulo de borrador Aplicar compensación, y ve a la sección que contiene USER.CameraOffsetScale.
En esta sección, haz clic con el botón derecho y crea un nodo Interruptor estático.
Dale un nombre más descriptivo (por ejemplo, Usar compensación de cámara) al interruptor estático.
El interruptor estático espera un tipo (normalmente numérico, pero no siempre). Añade un tipo haciendo clic en el pin Añadir (+). A continuación, busca y selecciona el tipo Mapa de parámetros de Niagara para este ejemplo.
Arrastra la salida Mapa de establecimiento de compensación de cámara hasta el nodo estático. A continuación, arrastra la salida del interruptor estático hasta Mapa de obtención y Mapa de establecimiento en la sección Establecer posición.
Pulsa Ctrl + clic para recoger los cables de conexión y moverlos a un pin diferente.
Después, conecta el pin Mapa de establecimiento de la sección Transformar en espacio al pin False del nodo Interruptor estático.
Si el interruptor estático es false, omitirá (compilará fuera) la sección Compensación de cámara e irá directamente desde la sección Transformar en espacio hasta el interruptor y la siguiente sección Establecer posición. Si es true, se usarán los nodos Compensación de cámara.
Ajustes del interruptor estático
Por defecto, el tipo Interruptor estático es un booleano. Hay otras opciones disponibles, pero usa el booleano por defecto para este ejemplo. El valor por defecto puede establecerse como true o false, pero en este ejemplo lo dejaremos en false. El pin Exponer como también puede dejarse en false para este tutorial. Si se establece como true, se expondrá un pin para los ajustes en el nodo del grafo, lo que creará una forma de establecer ese valor usando los datos del grafo.
Usar el interruptor estático
Abre el grafo Presentación del sistema y selecciona la entrada de pila de módulo de borrador Aplicar compensación. El panel Detalles ahora incluirá la opción Usar compensación de cámara. Si se establece como false, no aparecerán otras opciones de compensación de cámara en la lista y los nodos omitidos no afectarán al emisor. La información de la interfaz de datos de la Cámara también se ha eliminado de la sección Opciones avanzadas.
Si se establece en true, los nodos Compensación de cámara se compilan y todas las opciones relevantes (tanto dentro como fuera de la sección Avanzado) están disponibles en el panel Detalles.
Compartir módulos de borrador
Para compartir tu módulo de borrador con otros sistemas de Niagara o con el resto del equipo, debes exportarlo como recurso de secuencia de comandos de módulo de Niagara.
Abre el grafo Aplicar compensación y haz clic en la pestaña Módulos locales. Haz clic con el botón derecho en el nombre del módulo de la lista y, a continuación, haz clic en Crear recurso.
Esto abre la ventana Crear secuencia de comandos como. Asigna un nombre a tu módulo (por ejemplo, NMS_ApplyOffset) y selecciona la carpeta donde quieres que se encuentre este recurso. A continuación, haz clic en Guardar.
Se creará el recurso, al que podrás acceder desde el explorador de contenido.
A continuación, el motor abre automáticamente el nuevo recurso de secuencia de comandos del módulo de Niagara.
Exposición de biblioteca
Lo primero que querrás cambiar en el recurso de secuencia de comandos del módulo de Niagara es el indicador Visibilidad de la biblioteca en el panel Detalles de la secuencia de comandos.
Por defecto, está establecido en No expuesta, por lo que no aparece en los menús ni en las búsquedas con la opción Solo biblioteca activada (que es el caso por defecto).
Para demostrarlo, abre tu sistema de Niagara y usa el botón Añadir + para buscar ApplyOffset. El único resultado será el bloc de notas, no el recurso de NMS que acabamos de crear (que aparecería como Juego).
Hay dos formas de gestionar esto, según lo reconocible que quieras que sea el recurso de secuencia de comandos del módulo de Niagara.
No expuesta y Solo biblioteca desactivados
Una opción es dejar el módulo configurado como No expuesto y cambiar la opción Solo biblioteca a false en el área de trabajo. Esto puede ser preferible si no quieres o necesitas que el módulo sea fácilmente accesible para los usuarios con los ajustes de filtro por defecto. Si alguien más quiere usar este módulo, tendría que desmarcar la opción Solo biblioteca en la ventana Añadir nuevo módulo.
Expuesto y Solo biblioteca activados
La otra opción es cambiar el valor Visibilidad de la biblioteca del recurso de secuencia de comandos del módulo de Niagara a Expuesta. Esto haría que el módulo fuera mucho más reconocible, ya que aparecería en el menú Añadir nuevo módulo con las opciones de filtrado por defecto (Solo biblioteca establecida como true). Esto es ideal para módulos a los que quieras que tu equipo u otros usuarios finales puedan acceder fácilmente.
Abre el recurso de secuencia de comandos del módulo de Niagara, cambia Visibilidad de la biblioteca a Expuesta, y haz clic en Compilar y Guardar.
Para ver esto en acción, abre cualquier sistema de Niagara y haz clic en el botón Añadir (+) para buscar Aplicar compensación. A diferencia de antes, el recurso del módulo de Niagara (con la etiqueta Juego) se incluye en los resultados de búsqueda, mientras que la opción Solo biblioteca está establecida como true.
Máscara de bits de uso del módulo
Comprueba la Máscara de bits de uso del módulo del nuevo recurso de secuencia de comandos del módulo de Niagara y asegúrate de que los ajustes de visibilidad sean los adecuados para la función prevista de este módulo.
Campo Descripción
El texto del campo Descripción en la secuencia de comandos del módulo de Niagara se incluye en la burbuja informativa que aparece al pasar el cursor sobre el módulo en el menú Añadir nuevo módulo. Incluye aquí cualquier información que pueda ayudar a un usuario a decidir si usar o no este módulo. Por ejemplo, explica para qué sirve, en qué circunstancias es más o menos ideal que se use este módulo y qué otros factores podrían hacer que sea más o menos relevante para los objetivos creativos o técnicos de tus usuarios.
Mensaje de nota
Si se crea un módulo de secuencia de comandos de Niagara a partir de un módulo de borrador, el campo Nota se rellena automáticamente con el texto que se haya incluido en el módulo de borrador. Si tu módulo de borrador no incluía ningún texto de nota, aparecerá en blanco. Este mensaje aparece en la parte superior del panel Detalles cuando se selecciona la entrada de pila del módulo en un emisor.
Palabras clave
Las palabras clave ayudan a que la secuencia de comandos del módulo de Niagara sea más visible durante las búsquedas en el menú. Las palabras clave deben estar separadas por espacios. El campo Palabras clave del módulo de secuencia de comandos de Niagara Aplicar compensación podría incluir «compensar posición de cámara», que permitiría a un usuario final buscar la «compensación de cámara» y mostrar Aplicar compensación como opción en el menú.
Conclusión
Puedes usar módulos de bloc de notas para añadir directamente nuevas funciones a tus emisores y sistemas de Niagara mediante secuenciación de comandos visual.
Para obtener más información sobre el uso de Niagara, consulta las secciones Cómo crear efectos visuales y Referencia del editor de secuencia de comandos de Niagara.