Express?es ou MaxScript entre dois Custom Attributes

Por: Feitosa  

Em: 06/10/2006 18:34

Olá pessoal, tudo bem? Estou realizando alguns testes com RIG e gostaria de realizar o seguinte processo: - Tenho um Objeto A que possui Custom Attributes que controlam o movimento de alguns objetos B. - Tenho outros Objetos C, D e E que também possuem Custom Attributes que controlam os movimentos dos objetos F, G e H. Dessa forma eu posso manipular os movimentos isoladamente, até este ponto eu utilizo Wire Parameters para criar as associações e tudo funciona perfeitamente. Agora vem a parte complicada: - Eu tenho um objeto I com Custom Attributes que irá controlar os movimentos dos objetos B, F, G e H de uma única vez. Porém eu não posso utilizar Wire Parameters para essa associação porque eu perderei a possilidade de trabalhar nos Custom Attributes dos objetos A, C, D e E isoladamente. - Eu pensei em utilizar Expressions, porém não consegui colocá-las de forma que o objeto I tenha a sua movimentação livre. Porque se eu colocar um Controlador de Expressão, eu perderei os movimentos livres desse objeto I. - Também pensei em utilizar os recursos do Max Script, porém não consegui associar a execução de uma função do Max Script com a alteração do valor do Custom Attributes. Eu gostaria de saber como eu posso resolver esse problema. De forma resumida o que eu preciso é fazer com que um Custom Attribute seja associado a outro Custom Attribute de forma que não restringa a alteração em um dos lados, como acontece com o Wire Parameters. Eu sei que o Wire Parameters tem a possibilidade de liberar as ações dos dois lados, porém isso me restringe em relação aos movimentos isolados de um conjunto de objetos.
Sergio Feitosa
OI Feitosa, tudo bem? Eu entendi o problema, mas não entendi o motivo, porque se tem um Custom Attributes controlando o objeto, porque precisa de outro Custom Attributes para controlar o Custom Attributes anterior, se um está controlando, já será o suficiente, caso contrário, fica redundante e o Wire pode até não aceitar fazer ou quebrar a cadeia de ligações. Me fala exatamente que animação você quer fazer, pode ser que tenha outra forma mais simples de chegar no resultado. Você está animando um rosto? Abraços
Olá André, tudo bem? Eu estou realizando alguns testes com rig dos dedos de um pé de dragão. O que eu desejo é algo que realmente pode parecer redundante, porém irá me ajudar muito a economizar tempo na animação. Eu tenho um controlador para cada dedo do pé, onde os Custom Attributes estão associados aos movimentos das falanges. Com eles eu consigo movimentar isoladamente cada falange de um dedo por vez. Eu precisarei disso funcionando, e já está funcionando. Agora eu também gostaria de ter um outro controlador que permita movimentar todas as primeiras falanges de todos os dedos de uma única vez, através do Custom Attribute desse controlador único. Eu poderia realizar este processo, trabalhando nos controladores de cada dedo, um por um, porém eu gostaria de criar um RIG que permitisse fazer esse movimento em grupo de falanges ou de forma individual.
Sergio Feitosa
Se entendi bem oq vc quer, você está tentando controlar os mesmos parêmetros usando dois ou mais custom attributes. Acho que nesse caso oq vc pode fazer é, controlar os custom attributes intermediarios usando o expression modifier. Com uma hierarquia parecida com essa /ExpressionModifier:CustomAttribute2-Objetos CustomAttribute-- \ExpressionModifier:CustomAttribute1-Objetos nesse expression modifier vocÊ somaria os valores do Custom attributes numerados (filhos) com os valores do Custom Attribute não numerado, pai
n00b
Olá Vympel, tudo bem? A minha idéia é essa mesma. Eu já tentei utilizar expressões, porém quando eu faço isso, eu perco o controle dos controladores filhos. O que eu preciso é que os valores dos Custom Attributes do controladores filhos sejam alterados de acordo com os Custom Attributes do controlador pai, porém eu tenho que permitir a alteração dos controladores filhos, sem alterar o pai. É a mesma relação em termos de objetivo que a clonagem por References. Sobre esse Expression Modifier, pelo menos por esse nome eu não conheço, onde eu encontro ele, porque ele não aparece na minha lista de modificadores.
Sergio Feitosa
hehe, muito tempo sem suar MAX, o nome certo é float expression Olhe o ultimo exemplo, acho que é parecido com oq vc procura http://www.tresd1.com.br/viewtopic.php?t=16625
n00b
Olá Vympel, tudo bem? Eu agradeço pela sua ajuda, mas eu já fiz isso. Nesse caso os movimentos do filho funcionam de acordo com o do pai, porém ficam presos apenas a estes movimentos, não permitindo a sua movimentação individual. Também acho que assim deveria ter funcionado, mas infelizmente é como se fossem cancelados os movimentos individuais do filho, já que ele fica preso aos movimentos do pai. Também pensei em utilizar alguma estrutura de seleção na expressão, porém não estou conseguindo um bom resultado. Se alguém souber como eu faço para uma função em MaxScript ser executada quando eu alterar um valor do Custom Attributes já irá bastar, porque assim conseguirei fazer o que eu desejo. Isso que eu quero pode ser feito manualmente, mas eu gostaria de automatizar isso, para ver até onde eu posso mesclar essas funções, já pensando em diversas soluções futuras.
Sergio Feitosa
Estranho, estou sem o MAX o instalado aqui, mas fiz um teste aqui, usando o MAYA com essa expressão pCube1.translateX= (locator2.translateX*locator2.ZERO) + locator1.translateX; Essa expressão basicamente diz que a translação no Eixo X do Cube1 é igual a soma da translação dos dois Nulls, locators, (sendo um o pai e outro o filho. O null pai (Locator2) tem um outro parâmetro que é o multiplicador (Locator.ZERO), para controlar a influência dele na posição, por exemplo se o valor for zero somente o locator1 (filho) irá controlar o movimento do Cubo.
n00b
Olá Vympel, tudo bem? Obrigado pela ajuda, agora funcionou. O problema é que eu estava utilizando as expressão no controlador filho, dessa forma eu perdia os seus movimentos isolados. O correto é colocar a expressão no objeto controlado pelo controlador filho, dessa forma todos os movimentos são respeitados.
Sergio Feitosa
Você ainda pode fazer dois controles de "influência" para que por exemplo apenas o controlador pai controle o movimento dos dedos, pode ser útil para alinhar os dedos, e vice versa, fazendo com que os controladores filhos funcione
n00b

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717360.

Total de membros registrados: 143150

Últimos membros registrados: thiagodsf, Fernando Ferreira Ventura, GeorgeKing, adasdasdasd, avelinoramos, VigorPeakKapseln565, Robohnson, layfnl2003.

Usuário(s) on-line na última hora: 425

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2026. Todos direitos reservados.