Controlar atributos por partícula para gravidade seletiva no Maya

Publicado em 25 de January de 2026 | Traduzido do espanhol
Panel de expresiones y atributos per particle en Maya mostrando configuración para gravedad selectiva en instancias de partículas

O dilema da gravidade discriminatória

O problema que você descreve é clássico quando trabalhamos com atributos por partícula no Maya. Você está tentando controlar individualmente cada partícula, mas sua expressão atual está afetando todas simultaneamente porque modifica os campos de força globais em vez dos atributos específicos de cada partícula.

A chave está em entender que GravityField1.magnitude é um atributo global que afeta todas as partículas conectadas a esse campo. O que você precisa é um método onde cada partícula decida individualmente como responder à gravidade, não alterar a gravidade em si.

Nas expressões de partículas, alterar um campo global é como modificar a gravidade terrestre para uma pessoa específica

Solução com atributos dinâmicos personalizados

A forma correta é adicionar um atributo dinâmico personalizado a cada partícula que determine se ela deve ser afetada pela gravidade ou não. Esse atributo é avaliado por partícula, não globalmente.

Configuração correta das expressões

Sua expressão de creation está bem atribuindo o índice aleatório, mas a runtime precisa ser reescrita completamente. Você deve trabalhar com o atributo custom em vez de modificar o campo global.

O problema com seu código atual é que cada partícula que passa pela expressão modifica GravityField1.magnitude para todas as outras, criando esse efeito de mudança constante que você descreve 😅

Conexão com o campo de gravidade

Uma vez que você tem o atributo affectGravity em cada partícula, precisa conectar esse atributo com a influência do campo gravitacional. O Maya permite isso por meio do editor de conexões ou expressões adicionais.

Você pode usar o atributo affectGravity para modular a força que a gravidade aplica a cada partícula individualmente, sem afetar as outras.

Código corrigido passo a passo

Aqui está a implementação completa e corrigida. Siga esta ordem exata para evitar os problemas que você está experimentando.

Comece eliminando sua expressão atual e criando tudo do zero. Às vezes, expressões corrompidas causam comportamentos imprevisíveis.

Otimização para melhor performance

As expressões runtime after dynamics podem ser computacionalmente custosas, especialmente com milhares de partículas. Para sistemas complexos, considere alternativas mais eficientes.

Os particle goals ou os custom fields podem oferecer o mesmo controle com melhor performance em alguns casos. Experimente para encontrar o equilíbrio ideal para sua cena.

Solução alternativa sem expressões

Se as expressões continuarem dando problemas, existe um método alternativo usando dois sistemas de partículas separados. É menos elegante, mas mais estável.

Crie um emissor para objetos com gravidade e outro para objetos sem gravidade, depois combine os resultados no render. Isso evita completamente a necessidade de expressões runtime.

Depois de implementar essas soluções, suas partículas finalmente tomarão decisões independentes sobre a gravidade... embora algumas provavelmente escolham flutuar rebeldes no espaço enquanto outras obedecem às leis da física 🌌