Nesta página, você encontra informações sobre funcionalidades que aparecem tanto na Unreal Engine quanto no Unreal Editor para Fortnite (UEFN).
A página foi originalmente criada para a Unreal Engine, portanto, algumas descrições e capturas de tela podem não corresponder ao que você vê no UEFN.
Clique aqui para voltar à documentação principal do UEFN.
Niagara é o sistema VFX de última geração do Unreal Engine. Com o Niagara, o artista técnico tem a capacidade de criar funcionalidades adicionais por conta própria, sem a ajuda de um programador. O sistema é adaptável e flexível. Iniciantes podem começar modificando modelos ou exemplos de comportamento, e usuários avançados podem criar seus próprios módulos personalizados.
Componentes principais do Niagara
No sistema Niagara VFX, existem quatro componentes principais:
- Sistemas
- Emissores
- Módulos
- Parâmetros
Sistemas
Um sistema Niagara é um recipiente para tudo que você precisará para construir esse efeito. Dentro desse sistema, você pode ter diferentes ladrilhos de construção que se acumulam para ajudá-lo a produzir o efeito geral.
É possível modificar alguns comportamentos no nível do sistema que serão aplicados a tudo nesse efeito.

O painel Linha do Tempo no Editor do Sistema mostra quais emissores estão contidos no sistema e pode ser usado para gerenciar esses emissores.
Emissores
Os emissores são onde as partículas são geradas em um sistema Niagara. Um emissor controla como as partículas nascem, o que acontece com essas partículas à medida que envelhecem e como as partículas se parecem e se comportam.
O emissor é organizado em uma pilha. Dentro dessa pilha há vários grupos, dentro dos quais você pode colocar módulos que realizam tarefas individuais. Os grupos são os seguintes.

-
Geração de Emissores
Este grupo define o que acontece quando um emissor é criado pela primeira vez na CPU. Use este grupo para definir configurações iniciais e padrões.
-
Atualização de Emissores
Este grupo define módulos de nível de emissor que ocorrem a cada quadro na CPU. Use este grupo para definir a geração de partículas quando desejar que elas continuem a ser geradas em cada quadro.
-
Geração de Partículas
Este grupo é chamado uma vez por partícula, quando essa partícula nasce. É aqui que você vai querer definir os detalhes de inicialização das partículas, como o local onde elas nascem, de que cor são, o tamanho e muito mais.
-
Atualização de Partículas
Este grupo é chamado por partícula em cada quadro. Você vai querer definir aqui qualquer coisa que precise mudar quadro a quadro à medida que as partículas envelhecem. Por exemplo, se a cor das partículas for mudando com o tempo. Ou, se as partículas forem afetadas por forças como gravidade, ruído de rotação ou atração pontual. Você pode até querer que as partículas mudem de tamanho com o tempo.
-
Manipulador de Eventos
No grupo Manipulador de Eventos, você pode criar eventos Gerar em um ou mais emissores que definem determinados dados. Em seguida, você pode criar eventos Escuta em outros emissores que acionam um comportamento em reação a esse evento gerado.
-
Renderizar
O último grupo é o grupo Renderizar. É aqui que você define a exibição da partícula e configura um ou mais renderizadores para suas partículas. Você pode querer usar um renderizador de Malha se quiser definir um modelo 3D como base de suas partículas, sobre as quais você pode aplicar um material. Ou você pode querer usar um renderizador de sprite e definir suas partículas como sprites 2D. Existem muitos renderizadores diferentes para escolher e experimentar.
Módulos
Os módulos são os ladrilhos básicos de construção dos efeitos no Niagara. Você adiciona módulos a grupos para fazer uma pilha. Os módulos são processados sequencialmente de cima para baixo.

Você pode pensar em um módulo como um contêiner para fazer algumas contas. Você passa alguns dados para o módulo, então, dentro do módulo, faz algumas contas sobre esses dados e, em seguida, grava esses dados de volta no final do módulo.
Os módulos são construídos usando Linguagem de Sombreamento de Alto Nível (HLSL), mas podem ser construídos visualmente em um gráfico usando nós. Você pode criar funções, incluir entradas ou gravar em um valor ou mapa de parâmetros. Você pode até escrever código HLSL embutido, usando o nó CustomHLSL no Gráfico.
Você pode clicar duas vezes em qualquer módulo de um emissor no Niagara para dar uma olhada na matemática que está acontecendo lá dentro. Você pode até copiar e criar seus próprios módulos. Por exemplo, se você clicar duas vezes no módulo Adicionar Velocidade para dar uma olhada, poderá inspecionar o fluxo de dados.
Clique na imagem para ampliar.
O script começa recuperando entradas — a entrada de velocidade e o espaço de coordenadas. Em seguida, obtém a velocidade atual das partículas, bem como um fator de escala inserido. Em seguida, a velocidade de entrada é dimensionada, transformada no espaço de coordenadas correto e adicionada à velocidade atual das partículas. Uma vez que o trabalho for concluído, a nova velocidade da partícula será gravada de volta para que quaisquer módulos que precisem de informações de velocidade mais abaixo na pilha possam recuperá-la.
Todos os módulos são construídos com essa metodologia básica, embora para alguns a matemática interna possa ser mais complexa.
Parâmetros e tipos de parâmetros
Parâmetros são uma abstração de dados em uma simulação Niagara. Os tipos de parâmetro são atribuídos a um parâmetro para definir os dados que esse parâmetro representa. Existem quatro tipos de parâmetros:
- Primitivo: Esse tipo de parâmetro define dados numéricos de precisão variável e larguras de canal.
- Enum: Esse tipo de parâmetro define um conjunto fixo de valores nomeados e assume um dos valores nomeados.
- Estrutura: Esse tipo de parâmetro define um conjunto combinado de tipos Primitivo e Enum.
- Interfaces de Dados: Esse tipo de parâmetro define funções que fornecem dados de fontes de dados externas. Podem ser dados de outras partes do UE4 ou dados de um aplicativo externo.

Você pode adicionar um módulo de parâmetro personalizado a um emissor clicando no ícone sinal de mais (+) e selecionando Definir parâmetro novo ou existente diretamente. Isso adiciona um módulo Definir Parâmetro à pilha. Clique no ícone sinal de mais (+) no módulo Definir Parâmetro e selecione Adicionar Parâmetro para definir um parâmetro existente ou Criar Novo Parâmetro para definir um novo parâmetro.
Modelos, assistentes e exemplos de comportamento
Quando você cria pela primeira vez um emissor Niagara ou um sistema Niagara, uma caixa de diálogo é exibida oferecendo várias opções para o tipo de emissor ou sistema que você deseja criar.
É possível alterar qualquer um dos parâmetros no modelo. Você pode adicionar, modificar ou excluir qualquer um dos módulos. Em um modelo de sistema, você também pode adicionar, modificar ou excluir qualquer um dos emissores. Os modelos existem apenas para impulsionar sua criatividade e fornecer algo com o qual você possa trabalhar imediatamente.
Assistente do sistema
Para criar um novo sistema Niagara, clique com o botão direito do mouse no Navegador de Conteúdo e localize FX > Sistema Niagara.
Clique na imagem para ampliar.
O Assistente do Sistema oferece as seguintes opções para criar um novo sistema:
-
Novo sistema a partir emissores selecionados: Se você selecionar esta opção e clicar em Avançar, e uma lista de emissores disponíveis será exibida. Esta lista inclui emissores existentes em seu projeto e emissores de modelo. Selecione os emissores que deseja incluir no novo sistema e clique no ícone verde sinal de mais (+) para adicioná-los. Em seguida, clique em Concluir para criar o sistema. Se você escolher um emissor existente, o sistema herdará desses emissores. Se você escolher um emissor de modelo, o sistema não terá heranças. Além disso, o emissor do modelo é uma instância que pode ser estritamente local para esse sistema ou você pode salvá-lo como um recurso emissor separado.
Clique na imagem para ampliar.
-
Novo sistema a partir de um modelo ou exemplo de comportamento: Se você selecionar esta opção e clicar em Avançar, poderá escolher em uma lista de modelos ou exemplos de comportamento que representam vários sistemas de efeitos comumente usados. Assim como os modelos de emissores, essa lista pode ser selecionada por líderes de arte ou diretores de criação. Se você é novo no UE, esta opção lhe dará um exemplo de como os sistemas FX são construídos no Niagara. Exemplos de comportamento são exemplos simples projetados para apresentar um aspecto isolado do sistema Niagara, os quais você pode examinar para ajudar a desmistificar esse comportamento.
Clique na imagem para ampliar.
-
Copiar sistema existente: Se você selecionar esta opção e clicar em Avançar, uma lista de sistemas existentes será exibida. Escolha um deles para copiar e clique em Concluir.
Clique na imagem para ampliar.
-
Criar sistema vazio: Se você selecionar esta opção, seu sistema não conterá emissores ou modelos de emissor. Esta opção é útil se você deseja criar um sistema totalmente diferente de seus outros sistemas.
Clique na imagem para ampliar.
Assistente do emissor
Para criar um novo emissor, clique com o botão direito do mouse no Navegador de Conteúdo e selecione FX > Emissor do Niagara.
Clique na imagem para ampliar.
O Assistente do Emissor oferece as seguintes opções para criar um novo emissor:
-
Novo emissor a partir de um modelo: Se você selecionar esta opção, poderá escolher em uma lista de modelos que apresentam vários tipos de efeitos comumente usados. Em um grande estúdio de desenvolvimento, líderes de arte ou diretores criativos podem selecionar a lista de modelos, garantindo que as práticas recomendadas da empresa sejam inseridas nos modelos. Esses modelos também oferecem um ótimo ponto de partida se você for novo no UE.
Clique na imagem para ampliar.
-
Herdar de um emissor existente: Se você selecionar esta opção, poderá criar um novo emissor que herda as propriedades de um emissor existente. Esta opção torna o novo emissor um filho do emissor existente que você selecionou. Se você precisa de muitos emissores com certas propriedades em comum, esta é uma boa opção para escolher. É possível fazer alterações no emissor pai, e todos os emissores filhos refletirão essas alterações. Selecione um emissor pai para usar esta opção.
Clique na imagem para ampliar.
-
Copiar emissor existente: Se você selecionar esta opção, poderá criar um novo emissor que seja uma cópia de um emissor já criado. Isso pode ser útil se você precisar criar vários emissores semelhantes. Clique em Avançar após selecionar essa opção, e uma lista de emissores disponíveis será exibida. Você pode então escolher qual deseja copiar.
Clique na imagem para ampliar.
Fluxo de trabalho de VFX do Niagara
Criar sistemas
Primeiro crie um sistema Niagara no qual você pode adicionar um ou mais emissores. Você pode então configurar as propriedades de cada emissor.
Criar ou adicionar emissores
No Editor Niagara, ajuste seu emissor alterando as propriedades dos módulos já existentes nele ou adicione novos módulos para o efeito desejado. Você também pode copiar emissores e adicionar vários emissores em um único sistema Niagara. Para obter um exemplo disso, consulte o tutorial do Sparks.
Criar ou adicionar módulos
No seu emissor, adicione módulos existentes do Niagara clicando em Mais (+) no grupo onde deseja adicionar o módulo. O Niagara vem com muitos módulos pré-existentes e, na maioria das circunstâncias, você poderá criar efeitos sem precisar fazer nenhum design de módulo personalizado.
No entanto, se deseja criar seus próprios módulos, pode ser útil entender como os dados fluem por um módulo.
Fluxo de dados através de um módulo. Clique na imagem para ampliar.
- Os módulos se acumulam em um namespace temporário, então você pode empilhar mais módulos juntos. Desde que contribuam para o mesmo atributo, os módulos serão empilhados e acumulados adequadamente.
- Ao escrever um módulo, existem muitas funções disponíveis para você usar:
- Operadores booleanos
- Expressões matemáticas
- Expressões trigonométricas
- Funções personalizadas
- Nós que facilitam as funções padronizadas
- Depois de criar um módulo, qualquer pessoa pode usá-lo.
-
Todos os módulos usam HLSL. O fluxo lógico é o seguinte:
Fluxo lógico de HLSL. Clique na imagem para ampliar.
Lembre-se de que cada módulo, emissor e sistema que você cria utiliza recursos. Para economizar recursos e melhorar o desempenho, consulte os módulos já incluídos no Niagara para ver se é possível atingir seu objetivo sem criar um novo módulo. Entradas Dinâmicas podem ser usadas com grande efeito aqui.
Paradigmas do Niagara
Herança
- Com uma hierarquia plana, você não pode localizar e usar efetivamente os recursos que já possui em sua biblioteca, o que leva as pessoas a recriar esses recursos. A duplicação de esforços diminui a eficiência e aumenta os custos.
- A herança hierárquica aumenta a capacidade de descoberta e permite a reutilização efetiva de recursos existentes.
- Qualquer coisa herdada pode ser substituída por um emissor filho em um sistema.
- Os módulos podem ser adicionados ou podem ser revertidos para o valor pai.
- Isso também é verdade com comportamentos no nível do emissor, como geração, tempo de vida, looping, rajadas e assim por diante.
Entradas dinâmicas
- As entradas dinâmicas são construídas da mesma forma que os módulos são construídos.
- Entradas dinâmicas dão aos usuários extensibilidade infinita para herança.
- Em vez de atuar em um mapa de parâmetros, as entradas dinâmicas atuam em um tipo de valor.
- Qualquer valor pode ser direcionado pela lógica do Gráfico e valores voltados para o usuário.
- As entradas dinâmicas têm quase o mesmo poder que a criação de módulos, mas podem ser selecionadas e colocadas na pilha sem realmente criar novos módulos.
- Os módulos existentes podem ser modificados e customizados de várias maneiras usando e encadeando Entradas Dinâmicas; isso pode reduzir o inchaço do módulo e melhorar o desempenho.
Microexpressões
- Qualquer valor embutido pode ser convertido em um trecho de expressão HLSL.
- Os usuários podem acessar qualquer variável na partícula, emissor ou sistema, bem como qualquer função HLSL ou VM.
- Isso funciona bem para funcionalidades pequenas e únicas que não precisam de um novo módulo.
Eventos
- Eventos são uma forma de comunicação entre elementos (como partículas, emissores e sistemas).
- Os eventos podem ser qualquer tipo de dados, compactados em uma carga útil (como uma estrutura) e enviados. Então, qualquer outra coisa pode escutar esse evento e agir.
- Opções que você pode usar:
- Execute o evento diretamente em uma partícula usando Particle.ID.
- Execute o evento em cada partícula em um sistema.
- Defina as partículas para gerar em resposta ao evento e, em seguida, execute alguma ação nessas partículas.
- Os eventos são um nó especial no gráfico (estruturas). Como usar o nó Evento:
- Nomeie o evento.
- Adicione quaisquer dados que você deseja.
- Adicione um manipulador de eventos na pilha do Emissor.
- Defina as opções para o Manipulador de Eventos.
- Existe uma pilha de execução separada para eventos.
- Você pode colocar lógica de gráfico elaborada em Manipuladores de Eventos.
- Você pode ter todo um sistema de partículas configurado, com lógica complexa, e então ter todo um conjunto separado de comportamentos que ocorrem quando o evento é acionado.
Interfaces de dados
- Existe um sistema extensível para permitir o acesso a dados arbitrários.
- Dados arbitrários incluem dados de malha, áudio, informações DDC externas, objetos de código e contêineres de texto.
- As interfaces de dados podem ser escritas como plug-ins para maior extensibilidade no futuro.
- Os usuários podem obter quaisquer dados associados a uma malha esquelética usando uma interface de dados de malha esquelética.
Houdini
- Usando Houdini, você pode calcular pontos de divisão, locais de geração, posições de impacto, velocidade de impacto, normais e assim por diante.
- Você pode exportar esses dados do Houdini para um formato de contêiner comum (CSV).
- Você pode importar esse CSV para o Niagara em seu projeto do UE4.